Guide
Organizations
The dashboard ships with optional multi-user organizations: teams that share visibility into task history and approvals.
The dashboard ships with optional multi-user organizations: teams that share visibility into task history and approvals.
Enable organizations
Organizations are off unless AUTH_ENABLE_ORGANIZATIONS is exactly true:
AUTH_ENABLE_ORGANIZATIONS=true
AUTH_ALLOW_ORGANIZATION_CREATION=true # whether any signed-in user may create one
Mail transport requiredEnabling organizations requires a working mail transport, because invitations are delivered by email. The default
MAIL_PROVIDER=console only logs — configure resend or smtp first. See Mails.AUTH_ALLOW_ORGANIZATION_CREATION is ignored while organizations are off. When creation is disallowed, only operators (through the database or a seeded flow) create organizations, and users join by invitation.
How it works
- Organization data (membership, invitations, roles) lives in the Better Auth session store — the same Postgres database, declared in
packages/database's Drizzle schema. - Policy constants such as the membership limit and invitation expiry are defined in
packages/authand composed into the Better Auth options. - The dashboard's organization UI lives in
apps/dashboard/modules/organizations/— pages for creating an organization, managing members, and accepting invitations. - Like every auth capability, the organization feature flags are captured at build time; rebuild after changing them. See Authentication overview.
Organization authority governs the dashboard UI only — it never extends to the control plane or repository policy. See Permissions.