Editions & admin identity
Greenlight ships in three editions. Community (this repository) is what you self-host today. Enterprise and Cloud are proprietary and add organization-aware identity, RBAC, and audit. The HTTP API shape is the same across editions; who can sign in and what they can see differs.
At a glance
| Edition | Who runs it | Organizations | Human admins | API keys (today / target) |
|---|---|---|---|---|
| Community self-host | You | One implicit instance (no org UI) | One super admin via /setup | Instance-wide scoped keys |
| Enterprise self-host | Your company | One logical org (not shown in UI) | Multiple users; some can be promoted to admin | Org-scoped keys + richer audit |
| Cloud | Licensor (hosted) | Many orgs; users join several | Per-org roles: admin, member, … | Org-scoped keys; no cross-org access |
See Licensing for what is in the community repo vs commercial editions.
Community self-host (this repo)
Every instance is independent:
- First visit to /setup creates the super admin (
admin_userstable). - That human signs in with NextAuth (
AUTH_SECRET). - The UI calls core with
GREENLIGHT_API_KEY— a database key withadminscopes (bootstrapped fromGREENLIGHT_API_KEYon first boot, or created in Settings). - Agents and automation use their own scoped
X-API-Keyvalues.
There is no organization picker and no multi-user admin in community
today. The whole Postgres database is one tenant. Operators who need a second
human account reset admin_users or use shared credentials (not recommended).
Enterprise self-host
Same deployment model as community (your infrastructure, one Greenlight stack), but with commercial add-ons (commercial license required):
- One organization exists logically; it is not exposed as a separate entity in the UI (no org switcher).
- Multiple human users can sign in — not only the first
/setupaccount. - Role elevation: admins invite users and assign roles (
admin,operator,viewer,member). - Audit log, RBAC, and SSO (OIDC) — unlocked with a valid enterprise
license on the standard
greenlight/greenlight-uiimages.
API keys and channel data still belong to that single company instance; keys should be attributable to teams or integrations, not shared as one global admin secret.
Cloud (hosted)
Multi-tenant SaaS operated by the Licensor:
- A user (identity) can belong to multiple organizations.
- In org A they may be admin; in org B only member (or no access).
- All API and UI operations are scoped to the active organization — no cross-org reads or writes.
- Billing, provisioning, and control-plane are operated by the Licensor (not part of this repository).
Org admins manage members, keys, and settings for their org only. Platform operators have separate internal tooling (not customer-facing).
How this relates to API keys (community today)
Community edition implements scoped API keys at instance scope:
- Keys are rows in
api_keyswith scope arrays (admin,agent,readonly, …). - Outbound messages record
api_key_idwhen stored. GREENLIGHT_API_KEYin env bootstraps the first admin key only when the table is empty.
That matches a single-tenant self-host. Enterprise and Cloud extend the same ideas with organization_id on keys and resources, human actor on UI actions, and a dedicated audit log — see Security.
Edition roadmap (identity & audit)
| Capability | Community | Enterprise | Cloud |
|---|---|---|---|
/setup super admin | Yes | First user + invite flow | Sign-up + org create / invite |
| Multiple human users | No | Yes | Yes |
| Org switcher | No | No (single invisible org) | Yes |
| Scoped API keys | Yes (instance) | Yes (org) | Yes (org) |
api_key_id on outbound messages | Yes | Yes | Yes |
| Full audit trail (who changed what) | Partial | Yes | Yes |
| SSO | No | Yes (OIDC) | Yes |
| RBAC | No | Yes | Yes |
For commercial editions, contact the Licensor — see Licensing.