## Summary - remove legacy tenant-scoped routing and middleware paths in favor of the current environment/workspace context flow - update Filament pages and resources to use the cleaned-up admin surface and environment filter context - add the related spec 317 artifacts and targeted tests for environment filter state and legacy context cleanup ## Testing - not run as part of this commit/push/PR workflow Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #372
36 lines
8.4 KiB
Markdown
36 lines
8.4 KiB
Markdown
# Spec 317 Legacy Tenant Usage Inventory
|
|
|
|
Status: implementation inventory
|
|
Updated: 2026-05-16
|
|
|
|
This inventory classifies high-risk legacy Tenant platform-context occurrences before cleanup. It is intentionally focused on current runtime, tests, and current product-truth docs. Provider-boundary Tenant terminology is preserved by `tenant-usage-allowlist.md`.
|
|
|
|
| File | Symbol / Method / Route / Label | Current Meaning | Correct Meaning | Classification | Action | Risk |
|
|
|---|---|---|---|---|---|---|
|
|
| `apps/platform/app/Filament/Pages/Reviews/CustomerReviewWorkspace.php` | `tenantPrefilterUrl()` | URL helper for an explicit Managed Environment filter on a workspace hub | Environment filter URL | `rename_to_environment` | Rename to `environmentFilterUrl()` and update callers/tests with no alias | High: old helper name advertises a valid Tenant filter seam |
|
|
| `apps/platform/app/Support/Filament/CanonicalAdminTenantFilterState.php` | `CanonicalAdminTenantFilterState` | Shared sync/reset helper for environment-like Filament table filters | Canonical admin Environment filter state | `rename_to_environment` | Rename to `CanonicalAdminEnvironmentFilterState` and update callers/tests | High: class name suggests Tenant context can seed workspace hub filter state |
|
|
| `apps/platform/app/Filament/Concerns/WorkspaceScopedTenantRoutes.php` | `WorkspaceScopedTenantRoutes` | Resource route helper for workspace/environment route generation | Workspace-scoped Environment routes | `rename_to_environment` | Rename to `WorkspaceScopedEnvironmentRoutes` and update resource usage | High: trait name encodes old Tenant route mental model |
|
|
| `apps/platform/app/Support/Tenants/TenantPageCategory.php` | `TenantPageCategory` and cases `TenantBound`, `TenantScopedEvidence` | Admin surface classification for workspace, environment, and record-viewer context | Admin surface scope; environment-bound categories | `rename_to_environment` | Rename enum to `AdminSurfaceScope` and environment-bound cases | High: shell scope classification is platform-core, not provider Tenant identity |
|
|
| `apps/platform/app/Support/Middleware/EnsureFilamentTenantSelected.php` | `EnsureFilamentTenantSelected` / `ensure-filament-tenant-selected` | Middleware that resolves admin shell/navigation environment context | Ensure environment context selected | `rename_to_environment` | Rename class and middleware alias to `EnsureEnvironmentContextSelected` / `ensure-environment-context-selected` | High: middleware name is an active bootstrapping seam |
|
|
| `apps/platform/app/Support/Workspaces/WorkspaceContext.php` | `LAST_TENANT_IDS_SESSION_KEY`, `lastTenantId()`, `rememberTenantContext()`, `rememberedTenant()` | Per-workspace remembered Managed Environment switcher memory | Last Environment memory, switcher convenience only | `rename_to_environment` | Rename API and session key to Environment wording and update call sites/tests | High: remembered state must not be confused with workspace hub filters |
|
|
| `apps/platform/app/Support/OperateHub/OperateHubShell.php` | `Filament::getTenant()` usage | Filament tenant can represent an environment on environment-owned routes | Valid only for environment-bound pages, invalid for workspace hub scope | `allowed_provider_boundary` | Keep only where scope class permits environment-bound context; add static guard for workspace hub paths | Medium: valid Filament tenancy API but unsafe if used on workspace hubs |
|
|
| `apps/platform/app/Support/OperateHub/OperateHubShell.php` | Query hints `tenant`, `managed_environment_id` | Legacy query hints for non-hub tenant-owned resources | Not valid Workspace hub Environment filters | `remove` | Existing workspace hub short-circuit remains; add Spec 317 guard coverage | Medium: active code already blocks hubs, but regression guard is required |
|
|
| `apps/platform/routes/web.php` | `/admin/t` | Legacy Tenant panel route family | No active route | `remove` | Keep absent and add/extend route guard | High: route family must not return |
|
|
| `apps/platform/bootstrap/app.php` and panel/routes | `ensure-filament-tenant-selected` | Middleware alias for environment selection | Environment context alias | `rename_to_environment` | Replace alias usage with `ensure-environment-context-selected` | Medium: active runtime alias name misleads future work |
|
|
| `apps/platform/resources/views/filament/partials/context-bar.blade.php` | `$lastTenantId` | Last selected Managed Environment memory | Last Environment ID | `rename_to_environment` | Rename local variable and API call | Low: visible copy is already Environment-oriented but variable name is wrong |
|
|
| `apps/platform/app/Filament/Resources/ProviderConnectionResource.php` | `lastTenantId()` fallback in provider policy/resource context | Remembered environment convenience for provider-adjacent behavior | Last Environment ID | `rename_to_environment` | Update API name; do not convert provider tenant IDs into environment filters | Medium: provider-adjacent surface must preserve boundary clarity |
|
|
| `apps/platform/app/Support/EnvironmentDashboard/EnvironmentDashboardSummaryBuilder.php` | `tenantPrefilterUrl()` caller | Environment Dashboard CTA into Customer Review Workspace | `environment_id` filter URL | `rename_to_environment` | Update to `environmentFilterUrl()` | High: generated CTA must be canonical |
|
|
| `apps/platform/app/Support/GovernanceInbox/GovernanceInboxSectionBuilder.php` | `tenantPrefilterUrl()` callers | Governance links into Customer Review Workspace | `environment_id` filter URL | `rename_to_environment` | Update to `environmentFilterUrl()` | Medium: link helper must not preserve old API |
|
|
| `apps/platform/app/Filament/Widgets/ManagedEnvironment/ManagedEnvironmentReviewPackCard.php` | `tenantPrefilterUrl()` callers | Environment-owned review pack link | `environment_id` filter URL | `rename_to_environment` | Update to `environmentFilterUrl()` | Medium: environment-owned CTA link |
|
|
| `apps/platform/app/Filament/Resources/EnvironmentReviewResource.php` | `tenantScopedUrl()` | Canonical URL helper for Managed Environment-owned review pages | Environment-scoped review URL | `rename_to_environment` | Rename to `environmentScopedUrl()` and remove the ignored legacy panel hint parameter | Medium: helper name and ignored panel argument preserved old route mental model |
|
|
| `apps/platform/app/Filament/Resources/ProviderConnectionResource.php` | `lastEnvironmentId()` create/context fallback and `parameters['tenant']` URL alias | Hidden remembered Environment state and legacy parameter alias for Provider Connection context | Explicit `environment_id` filter only | `remove` | Remove remembered-state create fallback and remove array `tenant` URL alias support | High: credential-adjacent Workspace hub must not derive scope from hidden switcher memory |
|
|
| `apps/platform/app/Filament/Resources/*Resource.php` | `tenant` relationship and `managed_environment_id` DB columns | Tenant-owned model relationships and database columns | Current schema truth | `out_of_scope` | Do not perform cosmetic DB/relationship renames in Spec 317 | High if renamed broadly: migration and model churn outside scope |
|
|
| `apps/platform/app/Support/Tenants/*` except surface-scope classifier | Tenant operability services, questions, lanes | Tenant/Managed Environment operability domain vocabulary | Existing domain vocabulary | `out_of_scope` | Only update type references required by renamed surface-scope enum | Medium: broader terminology cleanup requires separate product/domain decision |
|
|
| `docs/product/spec-candidates.md` | Current queue references to Tenant platform context, `tenantPrefilterUrl`, `/admin/t` | Current product-truth docs and old follow-up notes | Workspace-first / Environment-second platform context | `rename_to_environment` | Update current product-truth notes for Spec 317 | Medium: stale docs can reintroduce drift |
|
|
| Completed specs under `specs/313-*` to `specs/316-*` | Historical Tenant references | Historical implementation evidence | Historical context | `allowed_historical_archived_doc` | Do not rewrite completed specs | Low: history remains valid as evidence |
|
|
| `docs/audits/*`, old specs before current truth | Historical audit wording | Historical provider/platform notes | Historical context | `allowed_historical_archived_doc` | Do not rewrite unless referenced as current truth | Low |
|
|
|
|
## Quarantine Decisions
|
|
|
|
No active runtime class/helper is intentionally quarantined at the start of implementation. If a later rename proves too broad for this spec, add a row with `needs_product_decision` or `out_of_scope` before skipping it.
|