Metadata-Version: 2.4
Name: govoplan-tenancy
Version: 0.1.19
Summary: GovOPlaN tenancy platform module.
Author: GovOPlaN
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: govoplan-core>=0.1.18

# GovOPlaN Tenancy

<!-- govoplan-repository-type:start -->
**Repository type:** module (platform).
<!-- govoplan-repository-type:end -->

`govoplan-tenancy` owns tenant lifecycle, tenant administration API route
contributions, the `tenancy.tenantResolver` capability, and the tenant registry
and tenant settings WebUI panels during the GovOPlaN module split.

`govoplan-access` no longer hard-depends on this module. Access can run in the
single-scope compatibility mode used by the core/access baseline; installing
tenancy adds explicit tenant management and resolver behavior. The shared scope
storage table is core-owned as `core_scopes`; tenancy provides lifecycle and
administration behavior over those rows rather than owning the table.

The `@govoplan/tenancy-webui` package contributes `system-tenants` and
`tenant-settings` through the shared `admin.sections` capability. The Access
module owns the `/admin` shell but does not import these panels. Historical
`access.admin.*` surface identifiers remain stable so existing saved Views keep
working after the ownership move.

The tenant registry and active-tenant settings follow the shared interface
pattern contract documented in
[`docs/INTERFACE_PATTERN_MIGRATION.md`](docs/INTERFACE_PATTERN_MIGRATION.md).
Manifest-provided documentation topics back contextual help for tenant fields,
governance limits, permission blockers, and lifecycle consequences.

Core's `module_entitlements` tenant-setting key is reserved. Generic tenant
updates preserve it even when replacing the remaining settings document;
system and tenant module administrators change it through the Admin module's
dedicated, revision-checked module policy APIs.
