Implemented the provider/capability cleanup for this item.
Changes:
- Core audit logging now records through the
audit.recordercapability and falls back only to an in-memory/null record ref…
Implemented the remaining tenancy lifecycle/switching work: tenancy now contributes tenant registry/settings/lifecycle routes, deletion plans, non-destructive retirement, guarded empty-tenant…
Completed the platform admin/service/model ownership cleanup targeted by this issue: audit persistence is behind audit capabilities, retention implementation moved to govoplan-policy with a core…
Implemented the remaining ownership cleanup slice: core auth is now a capability-backed facade, access provides the API principal and tenant-context switch capabilities, policy owns the retention…
Progress 2026-07-10: reduced the legacy compatibility surface further. Access now owns access counts/settings/bootstrap behavior that core was previously performing directly, and audit owns SQL…
Progress 2026-07-10: added tenancy-owned lifecycle groundwork for tenant deletion orchestration. New tenancy API surface provides GET /api/v1/admin/tenants/{tenant_id}/deletion-plan and `DELETE…
Progress 2026-07-10: implemented a focused ownership cleanup slice. Core no longer statically imports access ORM/admin/API-key services for tenant counts, user/group privacy settings, or dev…
Review 2026-07-10: keeping this open for now, but it is mostly an umbrella/superseded tracker after the recent ownership split work. The boundary checker is clean and much of the old access…
Review 2026-07-10: keeping this open. The provider/capability pattern exists and is being used (tenant_summary_providers, delete_veto_providers, access DTO/capability names, campaign…
Review 2026-07-10: keeping this open. Tenancy owns tenant list/create/update/settings routes and has capability integration for tenant provisioning/resolution, but tenant switching still lives…
Review 2026-07-10: keeping this open. scripts/check_dependency_boundaries.py passes with 0 transitional exceptions, but strict ownership is not complete yet. Current remaining examples: core…
Review 2026-07-10: keeping this open. The current core Alembic stream still contains ownership-mixed historical migrations: alembic/versions/b57c5b216bce_initial_persistence_models.py creates…