# tenant-engine Resource Namespace This document defines the `tenant-engine` protected-system namespace consumed by flex-auth (`FLEX-WP-0008-T01`). Unlike Markitect's document hierarchy or ops-warden's fixed SSH-certificate inventory, `tenant-engine`'s resources (tenants, their role grants, their plan assignments, their guardrails) are created **dynamically** — there is no fixed, pre-registrable resource list to publish a `resource_manifest.yaml` for. Every `CheckRequest` carries the resource identity inline (`resource.id == tenant_id`), and the policy evaluates against `input` directly rather than looking up a registered resource by id. This is a deliberate, documented deviation from the ops-warden pattern, not an omission. ## Resource Types ```text tenant -- a tenant record (existence, grouping) role-grant -- a capability-role grant/revocation plan-assignment -- a tenant's plan/subscription assignment guardrail -- a tenant's resolved ceiling and its provenance ``` All four are `scope_level: Resource`, always accessed within `system: tenant-engine`. A guardrail check still sends `resource.id` equal to the tenant id — there is no separately addressable guardrail object on the wire. ## Ownership Boundary `tenant-engine`'s own boundary contract (`net-kingdom/canon/standards/tenant-engine-boundary-contract_v0.1.md`) already defines these as `tenant-engine`'s owned resource kinds. This namespace only maps that ownership into flex-auth's protected-system vocabulary — it does not redefine ownership. ## Related - `docs/tenant-engine-action-vocabulary.md` — the actions gated on these resource types - `examples/tenant-engine/` — protected-system manifest, subject manifest, policy package, and fixtures - `net-kingdom/docs/adr/ADR-0014-tenant-capability-roles-and-tenant-engine-ownership.md` — the capability-role model (`PLTF`/`IAM`/`VEN`/`CUS`) these resources carry as *tenant* state, distinct from the *operator* authorization this namespace governs (who may call `tenant-engine`'s write API, not what a tenant is allowed to do)