## Summary - cut over the admin runtime to the workspace-first environment and operations routes from spec 280 - retarget governance artifact resources, related navigation, and operation drillthroughs to the surviving admin panel contract from spec 282 - add focused feature and browser coverage plus spec close-out updates for the shipped 280/282 slice ## Validation - `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent` - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/WorkspaceFoundation tests/Feature/Workspaces tests/Feature/ManagedEnvironment tests/Feature/RequiredPermissions tests/Feature/Operations tests/Feature/MonitoringOperationsTest.php` - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Browser/Spec280WorkspaceTenancyEnvironmentRoutingSmokeTest.php` - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/GovernanceArtifacts/GovernanceArtifactAdminPanelRegistrationTest.php tests/Feature/Filament/GovernanceArtifacts/GovernanceArtifactEnvironmentContextTest.php tests/Feature/Filament/GovernanceArtifacts/GovernanceArtifactDeepLinkContractTest.php tests/Feature/Filament/GovernanceArtifacts/GovernanceArtifactLegacyTenantPanelGuardTest.php` - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Browser/Spec282GovernanceArtifactRetargetingSmokeTest.php` ## Notes - provider registration remains in `apps/platform/bootstrap/providers.php` - Filament stays on v5 with Livewire v4 semantics - touched searchable governance surfaces remain truthful or disabled in the same slice Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #341
56 lines
3.0 KiB
Markdown
56 lines
3.0 KiB
Markdown
# Quickstart: Governance Artifact Retargeting to ManagedEnvironment
|
|
|
|
## Goal
|
|
|
|
Review and later implement the bounded `282` slice that moves existing governance artifact surface families onto the workspace-first admin runtime without changing persistence or lifecycle semantics.
|
|
|
|
## External Prerequisite
|
|
|
|
Do not start runtime implementation until Spec `280` is already merged or otherwise present on the working branch. `282` reuses that route shell; it does not redefine it.
|
|
|
|
## Review Flow
|
|
|
|
1. Read `spec.md`, `plan.md`, `research.md`, `data-model.md`, and `checklists/requirements.md` together.
|
|
2. Confirm the candidate deviation is explicit: persistence is already `managed_environment_id` plus `workspace_id`; `282` is a surface-ownership package.
|
|
3. Confirm the touched resource families stay limited to environment-owned governance artifacts and their drillthrough links.
|
|
4. Confirm Specs `267`, `277`, and `283` through `287` remain explicitly deferred.
|
|
|
|
## Planned Validation Commands
|
|
|
|
Run the same proof commands recorded in `spec.md` and `plan.md`:
|
|
|
|
```bash
|
|
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && REPO_ROOT="$(git rev-parse --show-toplevel)" && \
|
|
(cd "$REPO_ROOT/apps/platform" && ./vendor/bin/sail artisan test --compact \
|
|
tests/Feature/Filament/GovernanceArtifacts/GovernanceArtifactAdminPanelRegistrationTest.php \
|
|
tests/Feature/Filament/GovernanceArtifacts/GovernanceArtifactEnvironmentContextTest.php \
|
|
tests/Feature/Filament/GovernanceArtifacts/GovernanceArtifactDeepLinkContractTest.php \
|
|
tests/Feature/Filament/GovernanceArtifacts/GovernanceArtifactLegacyTenantPanelGuardTest.php)
|
|
|
|
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && REPO_ROOT="$(git rev-parse --show-toplevel)" && \
|
|
(cd "$REPO_ROOT/apps/platform" && ./vendor/bin/sail artisan test --compact \
|
|
tests/Browser/Spec282GovernanceArtifactRetargetingSmokeTest.php)
|
|
|
|
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && REPO_ROOT="$(git rev-parse --show-toplevel)" && \
|
|
(cd "$REPO_ROOT/apps/platform" && ./vendor/bin/sail bin pint --dirty --format agent)
|
|
```
|
|
|
|
## Reviewer Checklist
|
|
|
|
- Do the touched artifact families clearly register on the admin panel rather than hiding behind tenant-panel guards?
|
|
- Does environment resolution on the admin panel stop treating `ManagedEnvironment::current()` as the only valid context source?
|
|
- Do related links and operation drillthroughs avoid `tenant:` and `panel: 'tenant'` destinations?
|
|
- Do touched read-only artifact surfaces preserve their existing semantics without importing lifecycle or reporting scope from other specs?
|
|
- Do touched searchable surfaces remain truthful or stay disabled?
|
|
- Does the plan stay within `282` and avoid `267`, `277`, or `283` through `287` scope creep?
|
|
|
|
## Stop Conditions
|
|
|
|
Stop and split the work if any proposed change requires:
|
|
|
|
- Spec `280` route shell work that is not already present on the branch
|
|
- schema or persistence changes
|
|
- lifecycle or retention state design
|
|
- broad stored-report surface redesign
|
|
- provider-capability, taxonomy, RBAC, or vocabulary redesign
|
|
- compatibility routes or dual-panel fallbacks |