docs: record core authorization architecture

Adds ADR 0013 documenting the durable Phase 4C decisions (permission
registry, evaluator baselines, grant/scope semantics, platform-owner
bootstrap, shared database pool, Origin enforcement, and what remains
deferred), cross-links it from the authorization/README docs, and
refreshes the pnpm doctor no-DATABASE_URL example output in README.md
and repository-workflow.md to include the authorization migration.
This commit is contained in:
ekklesia
2026-07-23 11:26:47 -05:00
parent 1363608552
commit 967c275027
5 changed files with 230 additions and 15 deletions
+14 -12
View File
@@ -6,8 +6,8 @@ surfaces.
## Current status
Phase 3 is complete, Phase 4A (Core identity foundation) and Phase 4B (identity HTTP transport)
have landed, and Phase 4C (Core authorization) is in progress. The repository includes
Phase 3 is complete, and Phase 4A (Core identity foundation), Phase 4B (identity HTTP transport),
and Phase 4C (Core authorization) have landed. The repository includes
public module contracts, independently versioned capabilities, static module manifests,
deterministic automatic discovery, compiled server loading, a staged capability registry,
dependency-ordered lifecycle with rollback, module-owned Drizzle table contracts, deterministic
@@ -40,15 +40,16 @@ production approval-provider composition, jobs, physical storage provisioning, s
feature modules, remains later vertical slices. Public registration is not yet ready for a real
public launch.
Phase 4C (in progress) adds Core's authorization foundation on top of identity: a schema,
evaluator, and store for platform owners, explicit grants, and relationship-derived grants; a
smallest-possible immutable permission registry; an explicit, single-use, concurrency-safe
platform-owner bootstrap command (`pnpm authorization:bootstrap-owner`, never HTTP-exposed, never
inferred from signup order); and, in `apps/api`, reusable Hono authorization enforcement plus a
narrowly scoped `/api/v1/grants` HTTP API for managing *explicit* grants only, requiring an exact
trusted `Origin` on every mutation. Roles/groups/teams/tenants, an owner-management HTTP endpoint,
service accounts/API tokens, and module-permission registration remain later work. See
[Authorization](docs/development/authorization.md).
Phase 4C adds Core's authorization foundation on top of identity: a schema, evaluator, and store
for platform owners, explicit grants, and relationship-derived grants; a smallest-possible
immutable permission registry; an explicit, single-use, concurrency-safe platform-owner bootstrap
command (`pnpm authorization:bootstrap-owner`, never HTTP-exposed, never inferred from signup
order); and, in `apps/api`, reusable Hono authorization enforcement plus a narrowly scoped
`/api/v1/grants` HTTP API for managing *explicit* grants only, requiring an exact trusted `Origin`
on every mutation. Roles/groups/teams/tenants, an owner-management HTTP endpoint, service
accounts/API tokens, and module-permission registration remain later work. See
[Authorization](docs/development/authorization.md) and
[ADR 0013](docs/architecture/decisions/0013-core-authorization-and-owner-bootstrap.md).
## Quick start
@@ -93,8 +94,9 @@ Data definitions
✓ Schemas validated
0 modules · 0 tables
✓ Migrations validated
1 migration · checksums valid
2 migrations · checksums valid
core:0000_identity_core_tables · f8f2086ef06f
core:0001_authorization_core_tables · 830e1fbc26d0
PostgreSQL
○ Connection check skipped