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
46 lines
1.5 KiB
YAML
46 lines
1.5 KiB
YAML
openapi: 3.0.3
|
|
info:
|
|
title: TenantPilot Admin — Provider Connections (Tenantless)
|
|
version: 0.1.0
|
|
description: |
|
|
Minimal contract for canonical tenantless navigation routes. This does not attempt to model Livewire/Filament internals.
|
|
servers:
|
|
- url: /
|
|
paths:
|
|
/admin/provider-connections:
|
|
get:
|
|
summary: List provider connections (tenantless)
|
|
description: |
|
|
Returns the Provider Connections list UI. Data returned/rendered must be scoped to tenants the actor is a member of.
|
|
parameters:
|
|
- name: tenant_id
|
|
in: query
|
|
required: false
|
|
description: Tenant external ID (UUID). If present, takes precedence over session tenant context.
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
'404':
|
|
description: Not found (non-workspace member)
|
|
'403':
|
|
description: Forbidden (workspace+tenant member but missing required capability)
|
|
|
|
/admin/tenants/{tenantExternalId}/provider-connections:
|
|
get:
|
|
summary: Legacy redirect to canonical tenantless list
|
|
parameters:
|
|
- name: tenantExternalId
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
format: uuid
|
|
responses:
|
|
'302':
|
|
description: Redirects to /admin/provider-connections?tenant_id={tenantExternalId}
|
|
'404':
|
|
description: Not found (non-workspace member or not entitled to the tenant)
|