TenantAtlas/specs/185-workspace-recovery-posture-visibility/quickstart.md

106 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Quickstart: Workspace Recovery Posture Visibility
## Prerequisites
1. Start the application services if they are not already running:
```bash
cd apps/platform && ./vendor/bin/sail up -d
```
2. Use a workspace member account with access to at least one visible tenant.
3. Keep the current workspace overview route as the primary verification entry point:
```text
/admin
```
## Focused Automated Verification
Run the existing workspace overview pack first:
```bash
cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/WorkspaceOverviewSummaryMetricsTest.php
cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/WorkspaceOverviewDrilldownContinuityTest.php
cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/WorkspaceOverviewPermissionVisibilityTest.php
cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/WorkspaceOverviewDbOnlyTest.php
cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/WorkspaceOverviewContentTest.php
cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/WorkspaceOverviewEmptyStatesTest.php
```
If the new attention-family coverage is split into a dedicated file, run it as part of the pack. Otherwise extend and rerun the existing governance-attention file:
```bash
cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/WorkspaceOverviewGovernanceAttentionTest.php
```
Run the upstream tenant-truth guards that Spec 185 depends on:
```bash
cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/DashboardRecoveryPosturePerformanceTest.php
cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/DashboardKpisWidgetTest.php
cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/NeedsAttentionWidgetTest.php
```
Format after code changes:
```bash
cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent
```
## Manual Validation Scenarios
### Scenario 1: Mixed workspace with backup and recovery issues
1. Open `/admin` for a workspace with multiple visible tenants.
2. Verify one visible tenant is `absent` on backup health, one is `stale`, one is `unvalidated`, one is `weakened`, and one is calm.
3. Verify the stat strip shows separate backup-attention and recovery-attention counts.
4. Verify `Needs attention` shows the expected tenant order and keeps backup health and recovery evidence separate.
### Scenario 2: Single affected tenant metric drillthrough
1. Seed a workspace where exactly one visible tenant has backup attention or recovery attention.
2. Open `/admin`.
3. Verify the matching summary metric links directly to that tenants dashboard.
4. Confirm the tenant dashboard still shows the same backup or recovery weakness.
### Scenario 3: Multi-tenant metric fallback
1. Seed a workspace where multiple visible tenants are affected.
2. Open `/admin`.
3. Verify the matching summary metric uses the deliberate tenant-entry fallback instead of pretending there is a single canonical tenant.
4. Confirm the operator can still choose the correct tenant from there.
### Scenario 4: Calm workspace with explicit checked domains
1. Seed a workspace where all visible tenants are healthy on backup health and `no_recent_issues_visible` on recovery evidence.
2. Open `/admin`.
3. Verify the workspace may render a calm state.
4. Verify the calmness statement explicitly includes backup health and recovery evidence.
5. Verify the wording stays bounded to visible tenants and does not claim recovery proof.
### Scenario 5: RBAC-limited member
1. Sign in as a workspace member who cannot see some tenants in the workspace.
2. Open `/admin`.
3. Verify hidden tenants do not appear in counts, item labels, or reason text.
4. Verify any calmness claim is explicitly about the visible tenant slice.
5. If a downstream capability is missing, verify the workspace item degrades to a safe disabled or fallback state rather than a dead-end link.
## Non-goals Check
Before considering the slice complete, verify that no workspace surface introduces any of the following:
- `workspace recovery is proven`
- `portfolio restore readiness is guaranteed`
- `healthy backups guarantee successful recovery`
- Any equivalent blended score or proof language stronger than the visible tenant truth supports
## Deployment Note
No new Filament assets are planned for this slice. Deployment keeps the existing asset step unchanged:
```bash
cd apps/platform && php artisan filament:assets
```