RLS
All tenant-scoped tables enforce RLS using SET app.current_tenant = '' (set by header X-Tenant or body tenantId in sample routes).
Entities (tables)
Tenancy: tenant, environment
Identity: app_user, credential
Access model: user_group, membership, role, permission, role_permission, user_role, policy
Integrations: service_account, api_key, connector, webhook_endpoint
Platform mgmt: feature_flag, settings_kv, approval_flow
Platform primitives: audit_log, idempotency_key, command_outbox
Endpoints (MVP)
POST /v1/tenants
POST /v1/users
POST /v1/roles
POST /v1/policies
POST /v1/api-keys (returns plaintext token once; stored hashed with salt)