## Summary - normalize provider-neutral target-scope and identity contracts across provider connection resolution, operation-start gating, verification reporting, and boundary configuration - align provider connection resource, onboarding, tenant summaries, and operation follow-up on the same shared scope contract while keeping Microsoft-specific profile details in provider-owned metadata - add Spec 281 artifacts and focused feature/browser coverage for the new provider-scope contract - move the tenant dashboard context-chip rail into Filament header widgets so the metadata row renders directly under the page subtitle ## Validation - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Providers/ProviderConnectionTargetScopeNeutralityTest.php tests/Feature/Providers/ProviderIdentityResolutionNeutralityTest.php tests/Feature/Providers/ProviderOperationStartGateTargetScopeContextTest.php tests/Feature/Filament/ProviderConnectionResourceScopeSummaryTest.php tests/Feature/Onboarding/ManagedTenantOnboardingProviderConnectionScopeTest.php tests/Feature/Guards/ProviderConnectionMicrosoftScopeLeakGuardTest.php` - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Browser/Spec281ProviderConnectionScopeSmokeTest.php` - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Dashboard/TenantDashboardProductizationSummaryTest.php` - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Browser/Dashboard/TenantDashboardProductizationSmokeTest.php` - `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent` ## Notes - Filament remains on v5 with Livewire v4-compatible surfaces only. - Provider registration location is unchanged; Laravel 11+ providers stay in `apps/platform/bootstrap/providers.php`. - `ProviderConnectionResource` remains non-globally-searchable and still exposes View/Edit pages. - No new asset registration was added; deploy-time `filament:assets` expectations are unchanged. - No new destructive action path was introduced; existing server authorization and confirmation handling remain in place where applicable. Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #339
4.8 KiB
4.8 KiB
Quickstart: Provider Connection Scope & Microsoft Profile Extraction
Reviewer Flow
- Read spec.md, plan.md, research.md, and data-model.md together.
- Confirm the package stays on reserved slot
281only and treats Spec279as completed context and Spec280as adjacent prepared routing work only. - Confirm the verified current repo truth:
ProviderConnectionalready usesmanaged_environment_id,ProviderConnectionResourceis already non-globally-searchable withCreate,View, andEditpages, andconfig/provider_boundaries.phpalready classifiesprovider.connection_resolution,provider.identity_resolution, andprovider.operation_start_gateas platform-core seams. - Confirm the package does not introduce a provider-profile table, registry, capability engine, or any other speculative multi-provider framework.
- Confirm the canonical shared target-scope contract is explicit and unchanged across artifacts:
provider,scope_kind,scope_identifier,scope_display_name,shared_label, andshared_help_text. - Confirm the shared identity-result contract is explicit and neutral: target scope, effective client identity, credential source, blocked reason, and nested provider-context details; shared
tenantContextis not treated as the long-term platform-core field name. - Confirm the planned
OperationRuncontext rewrite is explicit: sharedtarget_scopebecomes the neutral descriptor shape and provider-specific Microsoft detail moves to nested provider context or profile metadata rather than staying attarget_scope.entra_tenant_id. - Confirm
ProviderConnectionSurfaceSummaryremains the single summary contract forProviderConnectionResource,ManagedTenantOnboardingWizard, and managed-environment related-context provider summaries. - Confirm Filament guardrails remain explicit: Filament v5 stays on Livewire v4, provider registration stays in
apps/platform/bootstrap/providers.php,ProviderConnectionResourcestays non-globally-searchable, destructive provider-connection mutations stay confirmation-protected and server-authorized, and asset strategy remains unchanged. - Confirm no application implementation, test execution, or non-spec artifact modification is included in this prep package.
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/Feature/Providers/ProviderConnectionTargetScopeNeutralityTest.php tests/Feature/Providers/ProviderIdentityResolutionNeutralityTest.php tests/Feature/Providers/ProviderOperationStartGateTargetScopeContextTest.php tests/Feature/Filament/ProviderConnectionResourceScopeSummaryTest.php tests/Feature/Onboarding/ManagedTenantOnboardingProviderConnectionScopeTest.php tests/Feature/Guards/ProviderConnectionMicrosoftScopeLeakGuardTest.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/Spec281ProviderConnectionScopeSmokeTest.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)
Review Questions
- Does the package stay bounded to contract extraction across the current provider seams rather than drifting into a provider framework or profile table?
- Does the package explicitly avoid reintroducing the stale
provider_connections.tenant_idmove? - Does the shared
target_scopeschema stay neutral everywhere in the package instead of carryingentra_tenant_idas shared truth? - Does the identity-result contract make effective client identity and credential source explicit while keeping provider-specific Microsoft detail nested?
- Do provider-connections, onboarding, and related-context summaries all reuse one shared summary adapter?
- Does the start-gate contract clearly replace shared
target_scope.entra_tenant_idwith a neutraltarget_scopeobject plus nested provider context? - Does
ProviderConnectionResourcestay non-globally-searchable while preservingViewandEditpage destinations and the current confirmation-protected actions? - Does the package keep Filament on Livewire v4, keep provider registration in
apps/platform/bootstrap/providers.php, and avoid new asset or deployment steps? - Do Specs
282through287remain explicitly deferred rather than silently absorbed?
Notes
- This prep package changes only planning artifacts under
specs/281-provider-connection-scope/. - No application implementation, tests, or runtime validation were executed while preparing the package.