Some checks failed
Main Confidence / confidence (push) Failing after 58s
## Summary - remove deprecated baseline profile status alias constants and keep baseline lifecycle semantics on the canonical enum path - retire the dead tenant app-status badge/default-fixture residue from the active runtime support path - add the `234-dead-transitional-residue` spec, plan, research, data-model, quickstart, checklist, and task artifacts plus focused regression assertions ## Validation - not rerun during this PR creation step Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #270
2.6 KiB
2.6 KiB
Phase 1 Data Model: Dead Transitional Residue Cleanup
Overview
This feature introduces no new table, enum, or persisted artifact. It narrows the active runtime language around two already-existing truth domains:
- Baseline profile lifecycle truth should flow only through
BaselineProfileStatus. - Tenant app-status should remain, at most, historical stored data, not active runtime/support truth.
Persistent Source Truths
BaselineProfile
Purpose: Workspace-owned baseline profile record.
Key fields:
idworkspace_idnamestatuscapture_modeactive_snapshot_id
Validation rules:
statusis cast toBaselineProfileStatusand is the only active lifecycle contract for draft, active, and archived behavior.- Deprecated alias constants on the model are not part of persistent truth and can be removed once no runtime caller depends on them.
Tenant
Purpose: Tenant-owned lifecycle and management record.
Key fields:
idworkspace_idnamestatusrbac_statusapp_status(historical legacy field)
Validation rules:
statusremains the active tenant lifecycle truth.rbac_statusremains a separate active management truth.app_statusmay remain stored historically, but current runtime/support paths must not treat it as active default truth.
Support Artifacts In Scope
Deprecated alias layer
Artifact: BaselineProfile::STATUS_DRAFT, STATUS_ACTIVE, STATUS_ARCHIVED
Role after cleanup:
- removed from active runtime language
Legacy badge layer
Artifacts:
BadgeDomain::TenantAppStatusBadgeCatalogmapper entry for tenant app statusTenantAppStatusBadge
Role after cleanup:
- removed if no runtime consumer remains
Legacy default setup
Artifacts:
TenantFactorydefaultapp_status => 'ok'SeedBackupHealthBrowserFixturedefaultapp_status => 'ok'
Role after cleanup:
- removed as ambient defaults
- legacy
app_statusbecomes explicit per-test or per-scenario setup only
Behavioral Rules
- Removing dead residue must not change baseline profile archive/list/workspace behavior.
- Removing dead residue must not change tenant lifecycle or RBAC truth behavior.
- Tests that still need a legacy
app_statusvalue must set it explicitly in the scenario. - Historical schema and migrations remain historical artifacts, not cleanup targets in this slice.
No New Persistence
- No new table is introduced.
- No new enum or reason family is introduced.
- No new derived readiness or cleanup artifact is introduced.
- No stored field is repurposed into a new active truth contract.