Implements Spec 089: moves Provider Connections to canonical tenantless route under `/admin/provider-connections`, enforces 404/403 semantics (workspace/tenant membership vs capability), adds tenant transparency (tenant column + filter + deep links), adds legacy redirects for old tenant-scoped URLs without leaking Location for 404 cases, and adds regression test coverage (RBAC semantics, filters, UI enforcement tooltips, Microsoft-only MVP scope, navigation placement). Notes: - Filament v5 / Livewire v4 compatible. - Global search remains disabled for Provider Connections. - Destructive/manage actions require confirmation and are policy-gated. Tests: - `vendor/bin/sail artisan test --compact tests/Feature/ProviderConnections` Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #107
1.2 KiB
1.2 KiB
Quickstart — Spec 089 (Provider Connections tenantless UI)
Prereqs
- Docker + Docker Compose
- Laravel Sail (project standard)
Run locally
- Start services:
vendor/bin/sail up -d - Run migrations (if needed):
vendor/bin/sail artisan migrate - Run dev assets (if you’re checking UI):
vendor/bin/sail npm run dev
Key routes
- Canonical list:
/admin/provider-connections - Optional filter:
/admin/provider-connections?tenant_id=<tenant-external-id> - Legacy redirect (must remain ≥2 releases):
/admin/tenants/<tenant-external-id>/provider-connections→ canonical
Run targeted tests
- Full suite (compact):
vendor/bin/sail artisan test --compact
Suggested focused tests (adjust once implementation lands):
vendor/bin/sail artisan test --compact tests/Unit/Filament/ProviderConnectionResourceLivewireTenantInferenceTest.phpvendor/bin/sail artisan test --compact tests/Unit/Policies/ProviderConnectionPolicyTenantResolutionTest.php
Formatting
vendor/bin/sail bin pint --dirty
Notes
- Non-workspace members must get 404.
- Non-tenant members must get 404 for direct record access.
- Tenant members missing capabilities must get 403.
- Global search must not expose Provider Connections.