Architecture Overview
Hierarchy
Tenants
A Tenant represents your organization or company account. Each tenant can have:- Multiple team members with different roles
- Multiple projects for different applications
- Shared billing and subscription management
Projects
A Project represents a single application or game. Each project has:- Isolated player data
- Independent configuration (rules, quests, adventures)
- Separate API keys
- Own leaderboards and lobbies
Players, quests, and all gamification data are completely isolated between projects.
This allows you to run multiple games or applications from a single tenant account.
Data Isolation
EngageFabric ensures complete data isolation between projects:| Data Type | Isolation Level |
|---|---|
| Players | Project-level |
| Events | Project-level |
| Quests | Project-level |
| Leaderboards | Project-level |
| Rules | Project-level |
| API Keys | Project-level |
Team Roles
Manage team access with role-based permissions:| Role | Description | Permissions |
|---|---|---|
| Owner | Tenant owner | Full access, billing, delete tenant |
| Admin | Administrator | Manage projects, users, settings |
| Designer | Game designer | Create/edit rules, quests, adventures |
| Developer | Developer | API access, read configs |
| Viewer | Read-only | View dashboards and analytics |
Best Practices
Separate environments
Separate environments
Create separate projects for development, staging, and production environments.
Use test API keys (
ef_test_) for non-production.One project per game
One project per game
Each game or application should have its own project to maintain clean data isolation.
Use meaningful names
Use meaningful names
Name projects clearly (e.g., “MyGame-Production”, “MyGame-Staging”) for easy identification.