## Summary - rebuild the public Tenantial homepage around an evidence-first Microsoft tenant governance narrative - replace the old hero visual with a new static dashboard preview and add dedicated Trust Bar and Feature Pillars sections - update the shared public shell, navigation, footer, dark design tokens, assets, and homepage content to match the new brand direction - align website smoke coverage and Spec 400 artifacts with the rebuilt homepage ## Testing - not run in this pass - updated website smoke specs under apps/website/tests/smoke ## Note - `website-dev` was pushed to `origin` so the requested PR base exists remotely - the remote `website-dev` branch is an ancestor of `origin/dev`, so this PR may also show upstream `dev` history relative to that base Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #387
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.