Organizations & Roles - Entity Enricher Documentation

Organizations & Roles

Entity Enricher uses organization-based multi-tenancy. Every user belongs to one organization, and all data — records, schemas, API keys — is isolated per organization.

Multi-Tenancy

Organizations are the top-level boundary for data isolation. When you sign up, you create a new organization or join an existing one. All enrichment records, schemas, and API keys belong to your organization and are accessible to team members based on their role.

What Belongs to an Organization

Enrichment RecordsAll enrichment results, prompts, and cost data
Saved SchemasJSON schemas created or generated by team members
API KeysOrganization access keys for programmatic integration
Provider KeysLLM provider API keys for per-org billing
UsersTeam members with role-based permissions
SettingsOrganization preferences and usage limits

Role Hierarchy

Entity Enricher uses a 4-tier role hierarchy. Each role includes all permissions of the roles below it:

System AdminLevel 5 · System-wide
  • Manage all organizations and users across the system
  • Cross-organization data access and reporting
  • Access interactive API documentation (Swagger UI, ReDoc)
  • Full system configuration control
OwnerLevel 4 · Organization
  • Full control over the organization
  • Manage team members: invite, approve, change roles, deactivate
  • Create and manage API keys (including organization access keys)
  • Configure organization settings and provider API keys
  • Delete the organization (as last owner)
EditorLevel 2 · Organization
  • Run enrichments (single and batch)
  • Create, edit, and delete schemas
  • Use AI schema generation and editing
  • View all organization records and costs
OperatorLevel 1 · Organization
  • Run enrichments using existing schemas (read-only schema access)
  • View records and cost dashboard
  • Select models and configure enrichment options

Registration

Sign up with Google, GitHub, or email through Firebase authentication. During registration, you choose to either create a new organization or join an existing one.

Create Organization

  1. Sign up with your identity provider
  2. Choose an organization name and URL-safe slug
  3. You become the owner of the new organization
  4. If no system admin exists yet, you become the system admin

Join Organization

  1. Search for the organization by name or slug
  2. Submit a join request
  3. If the organization has no active owner, you are auto-approved as owner
  4. Otherwise, your request is pending until an owner approves it

User Statuses

Users go through an approval workflow when joining an organization:

StatusMeaningCan Log In?
ActiveFull access to the system based on assigned roleYes
PendingJoin request submitted, waiting for owner approvalNo
RejectedJoin request was denied by an ownerNo
DeactivatedAccount was disabled (soft delete, preserves audit trail)No

Leaving an Organization

Any user can leave their organization. The behavior depends on ownership:

Regular Members

Your account is deactivated and you are signed out. Your enrichment records remain in the organization for audit purposes.

Last Owner

If you are the only remaining owner, you must confirm organization deletion. Enrichment records and schemas are detached (not deleted), while users, API keys, and provider keys are removed with the organization.

User Management

Owners access the User Management page to manage their team:

Active UsersView all active team members, change roles, or deactivate accounts
Pending RequestsReview and approve or reject join requests from new users

Safety rules:

  • Users cannot deactivate themselves
  • Users cannot demote themselves below their current role
  • Only owners can promote or demote other members

Authentication

Entity Enricher supports multiple authentication methods:

Social Login

Sign in with Google or GitHub via Firebase. No password needed.

Email + Password

Traditional email and password authentication via Firebase.

API Keys

Programmatic access keys for CI/CD and service integrations.

After authentication, the backend issues short-lived JWT access tokens (15 minutes) and long-lived refresh tokens (7 days). Learn more about programmatic access in the API Keys guide.

Next Steps