TenantAtlas/specs/124-inventory-coverage-table/contracts/inventory-coverage-page.openapi.yaml
ahmido 3971c315d8 feat: add inventory coverage interactive table (#151)
## Summary
- replace the static Inventory Coverage HTML tables with a Filament native searchable, sortable, filterable table on the existing tenant page
- normalize supported policy types and foundations into one runtime dataset while preserving centralized badge semantics and the documented read-only action-surface exemption
- add the full spec kit artifact set for feature 124 and focused Pest coverage for rendering, search, sort, filters, empty state, and regression-sensitive page copy

## Testing
- `vendor/bin/sail bin pint --dirty --format agent`
- `vendor/bin/sail artisan test --compact tests/Feature/Filament/InventoryCoverageTableTest.php tests/Feature/Filament/InventoryPagesTest.php tests/Feature/Filament/InventoryHubDbOnlyTest.php`

## Filament Notes
- Livewire v4.0+ compliance: yes, this uses Filament v5 table APIs on the existing page and does not introduce any Livewire v3 patterns
- Provider registration: unchanged; Laravel 11+ provider registration remains in `bootstrap/providers.php`
- Globally searchable resources: none changed in this feature; no Resource global-search behavior was added or modified
- Destructive actions: none; the page remains read-only and only exposes a non-destructive clear-filters empty-state action
- Asset strategy: no new panel or shared assets were added, so no `filament:assets` deployment change is required for this feature
- Testing plan delivered: focused Filament/Pest coverage for the page table surface plus existing page-load regressions

## Follow-up
- Manual dark-mode and badge-regression QA from task `T018` is still pending and should be completed before merge if that check remains mandatory in your review flow.

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #151
2026-03-08 18:33:00 +00:00

76 lines
2.4 KiB
YAML

openapi: 3.1.0
info:
title: Inventory Coverage Page Contract
version: 1.0.0
description: |
Existing tenant-scoped Filament page contract for the interactive Inventory Coverage table.
This feature does not add a new API endpoint; it formalizes the page route and supported
table query-state parameters used by the Filament table surface.
paths:
/admin/t/{tenant}/inventory/coverage:
get:
summary: Render the tenant-scoped Inventory Coverage page
operationId: getInventoryCoveragePage
tags:
- Inventory Coverage
parameters:
- name: tenant
in: path
required: true
description: Tenant identifier resolved by the existing Filament tenant route binding
schema:
type: string
- name: tableSearch
in: query
required: false
description: Free-text search across policy type and label columns
schema:
type: string
- name: tableFilters[category][value]
in: query
required: false
description: Selected category filter value
schema:
type: string
- name: tableFilters[restore][value]
in: query
required: false
description: Selected restore-mode filter value when restore metadata is available
schema:
type: string
- name: tableSortColumn
in: query
required: false
description: Active table sort column
schema:
type: string
enum:
- type
- label
- name: tableSortDirection
in: query
required: false
description: Active table sort direction
schema:
type: string
enum:
- asc
- desc
- name: page
in: query
required: false
description: Current pagination page for the interactive coverage table
schema:
type: integer
minimum: 1
responses:
'200':
description: Interactive Filament page rendered successfully
content:
text/html:
schema:
type: string
'403':
description: Tenant member lacks the required capability to view the page
'404':
description: Tenant or workspace context is unavailable or the actor is not entitled to the tenant scope