Kaiten
Self-Hosting

Organizations

How organizations provide multi-tenancy and data isolation in Kaiten.

Organizations

Open-Source Only

The Organization concept is relevant for self-hosted deployments only. If you are using the Kaiten SaaS platform, your organization is managed transparently — you don't need to configure or interact with it directly.

An Organization represents a SaaS vendor using Kaiten to manage its product lifecycle. It is the top-level isolation boundary.

Key Properties

FieldDescription
idUUID, auto-generated
external_idIdentifier from your Identity Provider (e.g. Clerk org_xxx)
nameDisplay name

Isolation Model

  • All data (customers, instances, licenses, entitlements, flags, events) is scoped to an organization
  • Every database query filters by organization_id from the authenticated principal
  • In self-hosted mode, only one organization may exist
  • In SaaS mode, multiple organizations are fully isolated

How Organizations Are Created

Organizations are typically synced from your Identity Provider:

  • Clerk: via incoming webhooks (organization.created, organization.updated, organization.deleted)
  • Other IdPs: via the REST API or custom integration

Users and Membership

Users belong to organizations via the user_on_organization join table. A user can belong to multiple organizations (SaaS mode).

User TypeDescription
humanReal user with email, authenticated via IdP JWT
machineService account with slug, authenticated via API token (ksh_*)

See It in the Console

Service accounts (machine users) are managed under Integrations → Service Accounts. Organization-level settings are managed from the Settings page.

On this page