## 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
3.3 KiB
Spec 317 Tenant Usage Allowlist
Status: implementation allowlist Updated: 2026-05-16
Spec 317 blocks legacy Tenant language only when it models TenantPilot platform context. Tenant remains allowed when it means external provider identity, historical evidence, or existing domain vocabulary explicitly outside this cleanup.
Scan Paths
Guard tests should scan these current-truth paths:
apps/platform/appapps/platform/resourcesapps/platform/routesapps/platform/tests/Feature/Guardsapps/platform/tests/Feature/Navigationapps/platform/tests/Feature/Reviewsdocs/product/spec-candidates.mddocs/product/roadmap.mddocs/product/principles.mddocs/uidocs/architecture-guidelines.mddocs/filament-guidelines.mddocs/testing-guidelines.md
Completed historical specs, audit archives, and old research reports are not scanned as current product truth unless a current doc links to them as the active contract.
Allowed Provider-Boundary Tenant Usage
These terms are allowed when they clearly mean Microsoft, Entra, Graph, OAuth, or external provider identity:
provider_tenant_idexternal_tenant_idmicrosoft_tenant_identra_tenant_idazure_tenant_idtenantIdin Graph or provider payloads- OAuth authority tenant segments
Microsoft tenantEntra tenantProvider tenant ID- Cross-tenant Microsoft/Entra feature names
- Tenant-level Microsoft 365 configuration when describing provider-native product concepts
Allowed Existing Domain Vocabulary
These remain allowed in Spec 317 unless they become a Workspace hub filter/source:
tenantrelationship methods on tenant-owned Eloquent modelstenantvariables in existing tests that representManagedEnvironmentfixturesTenantOperability*services, questions, outcomes, and existing capability semantics- tenant isolation / tenant-owned data wording in security, architecture, and testing guidelines
Filament::getTenant()on environment-owned pages, widgets, and resources where the route is explicitly environment-bound
Disallowed Platform-Context Usage
These are disallowed for Workspace hub Environment filtering, generated links, shell scope, and current product-truth UI/docs:
tenant,tenant_id,managed_environment_id,tenant_scope,environment, ortableFiltersas public Workspace hub Environment filter keystenantPrefilterUrl()tenantScopedUrl()CanonicalAdminTenantFilterStateWorkspaceScopedTenantRoutesTenantPageCategoryEnsureFilamentTenantSelectedlastTenantId,rememberedTenant,rememberTenantContext, and related session key names- active
/admin/troute family orTenantPanelProvider Filament::getTenant()as a Workspace hub default scope, authorization fallback, URL source, or shell context
Review Rules
- Provider-boundary Tenant language must be specific: use
Microsoft tenant,Entra tenant, orProvider tenant IDwhen visible to operators. - Platform context must use
Workspace,Environment, orManaged Environment. - Do not add compatibility aliases for renamed helpers, classes, routes, or query keys.
- Do not rename provider-boundary columns or Graph payload keys for cosmetic reasons.
- Add a new inventory row before allowing any active runtime Tenant-named platform seam to remain.