## 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
6.9 KiB
6.9 KiB
Specification Quality Checklist: Provider Connection Scope & Microsoft Profile Extraction
Purpose: Validate package completeness, boundedness, and readiness before implementation
Created: 2026-05-07
Feature: spec.md
Content Quality
- The package stays on reserved slot
281and does not silently absorb Spec280or Specs282-287. - The stale candidate wording about
provider_connections.tenant_idis explicitly corrected to current repo truth. - The package explicitly documents the second candidate deviation: the raw
provider_key/external_account_id/provider_metadata/ run-context proposal is narrowed to existing repo truth throughtarget_scope,effective_client_identity, nestedprovider_context, and existing provider-owned metadata. - The package stays focused on the verified provider-boundary hotspot instead of reading like a speculative provider-platform rewrite.
- No new provider-profile table, registry, capability engine, or artifact taxonomy is pulled into scope.
plan.md,research.md,data-model.md,quickstart.md, and the contract artifact all describe the same bounded slice.
Requirement Completeness
- No
[NEEDS CLARIFICATION]markers remain inspec.md,plan.md,research.md,data-model.md, orquickstart.md. - Requirements remain testable and bounded to the current provider-connection, target-scope, identity-resolution, onboarding, and operation-start seams.
- Shared
target_scopefields are explicit and neutral across the package. - Provider-specific Microsoft detail is explicitly nested under provider-owned profile or context disclosure instead of shared contract truth.
- Scope boundaries, assumptions, risks, and deferred adjacent candidates remain explicit.
Repo Truth Anchoring
- The package reflects that
ProviderConnectionalready belongs toManagedEnvironmentviamanaged_environment_id. - The package reflects that current platform-core seams still leak Microsoft semantics through
tenantContextandtarget_scope.entra_tenant_id. - The package reflects that
config/provider_boundaries.phpalready classifies provider identity, connection resolution, and operation-start seams as platform-core follow-up hotspots. - The package reflects that
ProviderConnectionResourceexists withCreate,View, andEditpages and remains non-globally-searchable. - The package reflects that
ManagedTenantOnboardingWizardand managed-environment related-context seams already reuse provider summaries and therefore need one summary contract.
Feature Readiness
- Filament v5 and Livewire v4 expectations remain explicit across the package.
- Provider registration location remains explicit as
apps/platform/bootstrap/providers.php. ProviderConnectionResourceglobal-search status and touched searchable-surface notes remain explicit.- Destructive action confirmation and authorization expectations remain explicit for touched provider-connection mutations.
- The unchanged asset strategy and deployment note remain explicit.
- The test strategy and minimal proving commands are explicit and aligned across artifacts.
- The Candidate Selection Gate still explains why
281is chosen now and why282-287are deferred. - The Completed-Spec Guardrail still keeps
279and280separate from this package.
Artifact Alignment
research.mdrecords the same bounded extraction decisions reflected inplan.md.data-model.mdmodels the same neutraltarget_scope, provider-context, effective-client-identity, onboarding, and run-context contracts reflected in the plan and contract file.quickstart.mduses the same bounded reviewer flow and proof commands asplan.md.contracts/provider-connection-scope.logical.openapi.yamlmodels the same shared summary, identity-resolution, provider-profile, onboarding-readiness, and operation-start contracts described in the plan.- Canonical proof commands match across
spec.md,plan.md, andquickstart.md.
Test Governance
- Planned proof stays bounded to focused feature coverage, one browser smoke, and the existing guard concept for Microsoft-shaped shared-contract leaks.
- No new heavy-governance family or broad browser matrix is introduced.
- Workspace, managed-environment, provider-connection, and optional credential fixture cost is acknowledged instead of hidden.
- Reviewer handoff includes exact minimal validation commands and concrete stop questions.
Notes
- Reviewed against
.specify/memory/constitution.md,specs/279-workspace-managed-environment-core/spec.md,specs/280-workspace-tenancy-environment-routing/spec.md,apps/platform/app/Models/ProviderConnection.php,apps/platform/app/Filament/Resources/ProviderConnectionResource.php,apps/platform/app/Filament/Resources/ProviderConnectionResource/Pages/ListProviderConnections.php,apps/platform/app/Filament/Resources/ProviderConnectionResource/Pages/ViewProviderConnection.php,apps/platform/app/Filament/Resources/ProviderConnectionResource/Pages/EditProviderConnection.php,apps/platform/app/Filament/Resources/TenantResource.php,apps/platform/app/Filament/Pages/Workspaces/ManagedTenantOnboardingWizard.php,apps/platform/app/Services/Providers/ProviderConnectionResolver.php,apps/platform/app/Services/Providers/ProviderConnectionResolution.php,apps/platform/app/Services/Providers/ProviderIdentityResolver.php,apps/platform/app/Services/Providers/ProviderIdentityResolution.php,apps/platform/app/Services/Providers/PlatformProviderIdentityResolver.php,apps/platform/app/Services/Providers/ProviderOperationStartGate.php,apps/platform/app/Services/Providers/CredentialManager.php,apps/platform/app/Services/Providers/AdminConsentUrlFactory.php,apps/platform/app/Services/Providers/ProviderGateway.php,apps/platform/app/Support/Providers/TargetScope/ProviderConnectionTargetScopeDescriptor.php,apps/platform/app/Support/Providers/TargetScope/ProviderConnectionTargetScopeNormalizer.php,apps/platform/app/Support/Providers/TargetScope/ProviderConnectionSurfaceSummary.php,apps/platform/app/Support/Providers/TargetScope/ProviderIdentityContextMetadata.php,apps/platform/app/Support/Providers/Boundary/ProviderBoundaryCatalog.php, andapps/platform/config/provider_boundaries.phpon 2026-05-07. - No application implementation, test execution, or runtime validation was performed while preparing this package.
Review Outcome
- Outcome class:
implementation-ready - Workflow outcome:
keep - Test-governance outcome:
keep - Reason: The package turns the ready spec into an implementation-ready plan set that neutralizes shared provider-connection and target-scope contracts, confines Microsoft profile detail to provider-owned seams, and keeps all adjacent routing, taxonomy, RBAC, copy, and quality-gate work deferred.