TenantAtlas/specs/234-dead-transitional-residue/data-model.md
ahmido be314c577f Spec 400: rebuild Tenantial homepage visuals (#387)
## 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
2026-05-18 14:38:11 +00:00

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:

  1. Baseline profile lifecycle truth should flow only through BaselineProfileStatus.
  2. 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:

  • id
  • workspace_id
  • name
  • status
  • capture_mode
  • active_snapshot_id

Validation rules:

  • status is cast to BaselineProfileStatus and 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:

  • id
  • workspace_id
  • name
  • status
  • rbac_status
  • app_status (historical legacy field)

Validation rules:

  • status remains the active tenant lifecycle truth.
  • rbac_status remains a separate active management truth.
  • app_status may 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::TenantAppStatus
  • BadgeCatalog mapper entry for tenant app status
  • TenantAppStatusBadge

Role after cleanup:

  • removed if no runtime consumer remains

Legacy default setup

Artifacts:

  • TenantFactory default app_status => 'ok'
  • SeedBackupHealthBrowserFixture default app_status => 'ok'

Role after cleanup:

  • removed as ambient defaults
  • legacy app_status becomes explicit per-test or per-scenario setup only

Behavioral Rules

  1. Removing dead residue must not change baseline profile archive/list/workspace behavior.
  2. Removing dead residue must not change tenant lifecycle or RBAC truth behavior.
  3. Tests that still need a legacy app_status value must set it explicitly in the scenario.
  4. 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.