TenantAtlas/specs/089-provider-connections-tenantless-ui/contracts/admin-provider-connections.openapi.yaml
ahmido fb4de17c63 feat(spec-089): provider connections tenantless UI (#107)
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
2026-02-12 16:35:13 +00:00

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)