Skip to content

Commit bfa7851

Browse files
committed
docs(deployment): document OS_TENANCY_POSTURE alongside the flag it supersedes
The env var gates whether a multi-organization deployment boots, and the boot failure message names it, but it had no entry in the environment-variables reference. Records the three postures, the derivation from OS_MULTI_ORG_ENABLED that keeps existing deployments unchanged, the refuse-to-boot behavior on an unrecognized value, and the enterprise-runtime requirement for both walled postures. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015FebXPaaGrLhGKw1LHPbpL
1 parent d4d9d3d commit bfa7851

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

content/docs/deployment/environment-variables.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ read at startup unless noted otherwise. Boolean variables accept `true` / `false
7979
| `OS_AUTH_GOOGLE_ENABLED` | boolean | settings default | Settings env override for `auth.google_enabled`. Requires Google OAuth credentials from Settings or env. |
8080
| `GOOGLE_CLIENT_ID` | string || Deployment-level Google OAuth client id for the open-source Google login implementation. |
8181
| `GOOGLE_CLIENT_SECRET` | string || Deployment-level Google OAuth client secret for the open-source Google login implementation. |
82-
| `OS_MULTI_ORG_ENABLED` | boolean | `false` | When `true`, expose organization creation/switching UI. When `false`, run in single-tenant mode. |
82+
| `OS_TENANCY_POSTURE` | `single` \| `group` \| `isolated` | derived from `OS_MULTI_ORG_ENABLED` | Which organization wall the authorization kernel enforces (ADR-0105 D1). `single` = no wall. `group` = `organization_id IN accessible_org_ids` — organizations are membership boundaries over one shared dataset, with union read access across every organization the caller belongs to. `isolated` = `organization_id = <active organization>`, the hard legal-entity wall (formerly spelled `multi`). Unset derives from `OS_MULTI_ORG_ENABLED` (`true``isolated`, else `single`), so existing deployments are unchanged. An unrecognized value **refuses to boot** rather than silently falling back to a posture with no wall. Both walled postures require the enterprise `@objectstack/organizations` runtime — without it the request resolves to `single` and boot is refused unless `OS_ALLOW_DEGRADED_TENANCY=1`. |
83+
| `OS_MULTI_ORG_ENABLED` | boolean | `false` | Superseded by `OS_TENANCY_POSTURE`, and still honoured: `true` selects the `isolated` posture. When `true`, organization creation/switching UI is exposed. |
8384
| `OS_OIDC_PROVIDER_ENABLED` | boolean | tracks MCP | When `true`, expose this instance as an OIDC identity provider. When unset it follows the MCP server surface (`OS_MCP_SERVER_ENABLED`, on by default) — the MCP human-client track is OAuth 2.1, so every MCP-enabled deployment is its own authorization server. |
8485
| `OS_COOKIE_DOMAIN` | string || Cookie domain for cross-subdomain session sharing (e.g. `.example.com`). |
8586
| `OS_TRUSTED_ORIGINS` | csv || Comma-separated list of origins permitted for auth callbacks / CSRF. |

0 commit comments

Comments
 (0)