TenantAtlas/specs/117-baseline-drift-engine/contracts/openapi.yaml
ahmido f08924525d Spec 117: Baseline Drift Engine + evidence fidelity/provenance (#142)
Implements Spec 117 (Golden Master Baseline Drift Engine):

- Adds provider-chain resolver for current state hashes (content evidence via PolicyVersion, meta evidence via inventory)
- Updates baseline capture + compare jobs to use resolver and persist provenance + fidelity
- Adds evidence_fidelity column/index + Filament UI badge/filter/provenance display for findings
- Adds performance guard test + integration tests for drift, fidelity semantics, provenance, filter behavior
- UX fix: Policies list shows "Sync from Intune" header action only when records exist; empty-state CTA remains and is functional

Tests:
- `vendor/bin/sail artisan test --compact tests/Feature/Filament/PolicySyncCtaPlacementTest.php`
- `vendor/bin/sail artisan test --compact --filter=Baseline`

Checklist:
- specs/117-baseline-drift-engine/checklists/requirements.md ✓

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #142
2026-03-03 07:23:01 +00:00

83 lines
2.0 KiB
YAML

openapi: 3.0.3
info:
title: TenantPilot — Spec 117 Baseline Drift Engine
version: 0.1.0
description: |
This contract documents existing Filament panel routes and Monitoring surfaces involved
in baseline capture/compare and drift findings. Spec 117 does not add new HTTP APIs.
servers:
- url: /
tags:
- name: Baselines
- name: Findings
- name: Operations
paths:
/admin/baseline-profiles:
get:
tags: [Baselines]
summary: Baseline profiles index (Filament)
responses:
'200': { description: OK }
/admin/t/{tenant}/baseline-compare-landing:
get:
tags: [Baselines]
summary: Baseline compare landing (Filament tenant-context)
parameters:
- name: tenant
in: path
required: true
schema: { type: string }
responses:
'200': { description: OK }
/admin/t/{tenant}/findings:
get:
tags: [Findings]
summary: Findings list (Filament tenant-context)
parameters:
- name: tenant
in: path
required: true
schema: { type: string }
responses:
'200': { description: OK }
/admin/t/{tenant}/findings/{record}:
get:
tags: [Findings]
summary: Finding detail (Filament tenant-context)
parameters:
- name: tenant
in: path
required: true
schema: { type: string }
- name: record
in: path
required: true
schema: { type: string }
responses:
'200': { description: OK }
/admin/operations:
get:
tags: [Operations]
summary: Operation runs list (Monitoring)
responses:
'200': { description: OK }
/admin/operations/{run}:
get:
tags: [Operations]
summary: Operation run detail (Monitoring)
parameters:
- name: run
in: path
required: true
schema: { type: string }
responses:
'200': { description: OK }