## Summary - replace the legacy Tenant and TenantMembership core models with ManagedEnvironment and ManagedEnvironmentMembership - propagate the managed environment naming and key changes across Filament resources, pages, controllers, jobs, models, and supporting runtime paths - add feature 279 spec artifacts and focused managed-environment test coverage for model behavior, route binding, panel context, authorization, and legacy guardrails ## Validation - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/ManagedEnvironment/LegacyTenantCoreGuardTest.php tests/Feature/ManagedEnvironment/ManagedEnvironmentAuthorizationTest.php tests/Feature/ManagedEnvironment/ManagedEnvironmentPanelContextTest.php tests/Feature/ManagedEnvironment/ManagedEnvironmentRouteBindingTest.php tests/Unit/ManagedEnvironment/ManagedEnvironmentContextResolverTest.php tests/Unit/ManagedEnvironment/ManagedEnvironmentModelTest.php` - `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent` ## Notes - branch pushed from commit `1123b122` - browser smoke test file was added but not run in this pass Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #335
4.1 KiB
4.1 KiB
Quickstart: Workspace-first Managed Environment Core Cutover
Reviewer Flow
- Read spec.md, plan.md, research.md, and data-model.md together.
- Confirm the bounded scope: this package owns the breaking core entity cutover only, not the full route/IA/provider/artifact/RBAC pack.
- Confirm the one documented exception: temporary
/admin/t/{environment}retention while the bound model changes toManagedEnvironment. - Confirm the temporary shell bridge is explicit and that the final
WorkspaceFilament-tenancy end state remains deferred to Spec280. - Confirm
ManagedEnvironmentstays provider-neutral and that provider-specific identity remains follow-up work. - Confirm
specs/279-workspace-managed-environment-core/checklists/constitution-scope-001-exception.mdremains the active constitution-gate evidence, or replace it with the actual constitution-amendment reference before treating the package as implementation-startable. - Confirm the planned proof suite below is consistent across
spec.md,plan.md, andtasks.md.
Planned Validation Commands
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/Unit/ManagedEnvironment/ManagedEnvironmentModelTest.php tests/Unit/ManagedEnvironment/ManagedEnvironmentContextResolverTest.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/Feature/ManagedEnvironment/ManagedEnvironmentRouteBindingTest.php tests/Feature/ManagedEnvironment/ManagedEnvironmentAuthorizationTest.php tests/Feature/ManagedEnvironment/ManagedEnvironmentPanelContextTest.php tests/Feature/ManagedEnvironment/LegacyTenantCoreGuardTest.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/Spec279ManagedEnvironmentCoreCutoverSmokeTest.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)
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && REPO_ROOT="$(git rev-parse --show-toplevel)" && rg -n --fixed-strings 'App\Models\Tenant' "$REPO_ROOT/apps/platform/app" "$REPO_ROOT/apps/platform/tests" "$REPO_ROOT/apps/platform/database"
export PATH="/bin:/usr/bin:/usr/local/bin:$PATH" && REPO_ROOT="$(git rev-parse --show-toplevel)" && rg -n -- '->tenant\(Tenant::class' "$REPO_ROOT/apps/platform/app" "$REPO_ROOT/apps/platform/tests" "$REPO_ROOT/apps/platform/database"
Review Questions
- Does the package avoid alias models, dual columns, and dual route families?
- Is the
/admin/t/{environment}exception explicit, bounded, and owned by Spec279only? - Is the temporary ManagedEnvironment-backed shell bridge explicit, and is the final
WorkspaceFilament-tenancy end state still clearly deferred to Spec280? - Does the legacy-core guard prove
tenant_idremoval inside the declared core-owned cutover inventory while leaving Spec281and282residuals explicit? - If any destructive action is touched during implementation, does it still preserve
->requiresConfirmation()and current authorization? - If any globally searchable resource is touched, does it still satisfy Filament’s edit/view eligibility rule or remain out of global search, and did the slice avoid any new asset registration or deployment-step change?
- Does the package keep provider-specific identity off
ManagedEnvironment? - Are Specs
280-287still explicitly deferred instead of being silently absorbed?
Notes
- No application implementation was performed while preparing this package.
- The package is ready with the approved feature-local exception in place while
specs/279-workspace-managed-environment-core/checklists/constitution-scope-001-exception.mdremains the active gate evidence, or once it is superseded by the constitution update itself.