## Summary - add the tenant review domain with tenant-scoped review library, canonical workspace review register, lifecycle actions, and review-derived executive pack export - extend review pack, operations, audit, capability, and badge infrastructure to support review composition, publication, export, and recurring review cycles - add product backlog and audit documentation updates for tenant review and semantic-clarity follow-up candidates ## Testing - `vendor/bin/sail bin pint --dirty --format agent` - `vendor/bin/sail artisan test --compact --filter="TenantReview"` - `CI=1 vendor/bin/sail artisan test --compact` ## Notes - Livewire v4+ compliant via existing Filament v5 stack - panel providers remain in `bootstrap/providers.php` via existing Laravel 12 structure; no provider registration moved to `bootstrap/app.php` - `TenantReviewResource` is not globally searchable, so the Filament edit/view global-search constraint does not apply - destructive review actions use action handlers with confirmation and policy enforcement Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #185
2.3 KiB
2.3 KiB
Quickstart: Tenant Review Layer
Goal
Validate the first slice of the Tenant Review Layer locally in Sail using existing evidence snapshots and review-pack infrastructure.
Prerequisites
- Start Sail and ensure the application database is migrated.
- Seed or create:
- one workspace
- one tenant in that workspace
- one authorized user with tenant access
- one active evidence snapshot for the tenant
- findings, permission posture, Entra admin-role report, baseline/drift posture, and operations summary inputs sufficient for review composition
Happy-path walkthrough
- Open the tenant admin surface for the target tenant.
- Navigate to the tenant review library at
/admin/t/{tenant}/reviews. - Create a review from the latest eligible evidence snapshot.
- Confirm the created review shows:
- executive summary
- open-risk highlights
- accepted-risk summary
- permission posture summary
- baseline/drift posture summary
- operations health summary
- Publish the review once required sections are complete.
- Export an executive pack from the published review.
- Download the resulting artifact and confirm it matches the review detail summary ordering.
Authorization checks
- As a non-member or wrong-tenant user, open the tenant review library URL.
- Expected:
404
- Expected:
- As a tenant member without
tenant_review.manage, attempt create/publish/archive/export.- Expected: UI disabled where applicable, server returns
403on execution.
- Expected: UI disabled where applicable, server returns
- As a workspace-scoped operator entitled to multiple tenants, open
/admin/reviews.- Expected: only entitled tenant rows and filter values are visible.
Immutability checks
- Publish a tenant review.
- Change the underlying findings or posture data.
- Re-open the published review.
- Expected: published review remains unchanged.
- Create a refreshed successor review.
- Expected: the successor uses the updated evidence while the published review remains historical.
Export checks
- Export the executive pack twice from the same unchanged published review.
- Expected: duplicate-prevention semantics avoid creating accidental duplicate final artifacts.
- Attempt export from a review missing required sections.
- Expected: export is blocked with a clear readiness reason.