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.