396 lines
10 KiB
YAML
396 lines
10 KiB
YAML
openapi: 3.1.0
|
|
info:
|
|
title: Evidence Review Trust Surfaces Contract
|
|
version: 1.0.0
|
|
description: >-
|
|
Internal reference contract for the rendered HTML surfaces affected by Spec 174.
|
|
These routes continue to return HTML through Filament and Livewire. The vendor
|
|
media types below document the structured truth payloads that must be derivable
|
|
before rendering. This is not a public API commitment.
|
|
paths:
|
|
/admin/evidence/overview:
|
|
get:
|
|
summary: Canonical evidence overview
|
|
description: >-
|
|
Returns the rendered evidence overview for entitled tenants in the current workspace.
|
|
The vendor media type documents the derived row contract used to communicate
|
|
artifact truth, freshness, and next steps.
|
|
responses:
|
|
'200':
|
|
description: Rendered evidence overview page
|
|
content:
|
|
text/html:
|
|
schema:
|
|
type: string
|
|
application/vnd.tenantpilot.evidence-overview+json:
|
|
schema:
|
|
$ref: '#/components/schemas/EvidenceOverviewPage'
|
|
'404':
|
|
description: Workspace context is missing or the viewer is not entitled to the relevant scope
|
|
/admin/reviews:
|
|
get:
|
|
summary: Canonical review register
|
|
description: >-
|
|
Returns the rendered review register for entitled tenants in the current workspace.
|
|
The vendor media type documents the row-level trust and publication contract.
|
|
responses:
|
|
'200':
|
|
description: Rendered review register page
|
|
content:
|
|
text/html:
|
|
schema:
|
|
type: string
|
|
application/vnd.tenantpilot.review-register+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReviewRegisterPage'
|
|
'404':
|
|
description: Workspace context is missing or the viewer is not entitled to the relevant scope
|
|
/admin/t/{tenant}/evidence/{snapshot}:
|
|
get:
|
|
summary: Tenant-scoped evidence snapshot detail
|
|
parameters:
|
|
- name: tenant
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: snapshot
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: Rendered evidence snapshot detail page
|
|
content:
|
|
text/html:
|
|
schema:
|
|
type: string
|
|
application/vnd.tenantpilot.evidence-snapshot-detail+json:
|
|
schema:
|
|
$ref: '#/components/schemas/EvidenceSnapshotDetailPage'
|
|
'403':
|
|
description: Viewer is in tenant scope but lacks the required manage capability for actions
|
|
'404':
|
|
description: Snapshot is not visible because it does not exist or tenant entitlement is missing
|
|
/admin/t/{tenant}/reviews/{review}:
|
|
get:
|
|
summary: Tenant-scoped review detail
|
|
parameters:
|
|
- name: tenant
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: review
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: Rendered tenant review detail page
|
|
content:
|
|
text/html:
|
|
schema:
|
|
type: string
|
|
application/vnd.tenantpilot.tenant-review-detail+json:
|
|
schema:
|
|
$ref: '#/components/schemas/TenantReviewDetailPage'
|
|
'403':
|
|
description: Viewer is in tenant scope but lacks the required manage capability for actions
|
|
'404':
|
|
description: Review is not visible because it does not exist or tenant entitlement is missing
|
|
/admin/t/{tenant}/review-packs/{pack}:
|
|
get:
|
|
summary: Tenant-scoped review pack detail
|
|
parameters:
|
|
- name: tenant
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
- name: pack
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: Rendered review pack detail page
|
|
content:
|
|
text/html:
|
|
schema:
|
|
type: string
|
|
application/vnd.tenantpilot.review-pack-detail+json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReviewPackDetailPage'
|
|
'403':
|
|
description: Viewer is in tenant scope but lacks the required manage capability for actions
|
|
'404':
|
|
description: Review pack is not visible because it does not exist or tenant entitlement is missing
|
|
components:
|
|
schemas:
|
|
ArtifactTruthSummary:
|
|
type: object
|
|
required:
|
|
- primaryLabel
|
|
- contentState
|
|
- freshnessState
|
|
- actionability
|
|
properties:
|
|
primaryLabel:
|
|
type: string
|
|
primaryExplanation:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
contentState:
|
|
type: string
|
|
freshnessState:
|
|
type: string
|
|
enum:
|
|
- current
|
|
- stale
|
|
- unknown
|
|
publicationReadiness:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
enum:
|
|
- publishable
|
|
- internal_only
|
|
- blocked
|
|
actionability:
|
|
type: string
|
|
enum:
|
|
- none
|
|
- optional
|
|
- required
|
|
nextActionLabel:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
nextActionUrl:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
diagnosticLabel:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
Badge:
|
|
type: object
|
|
required:
|
|
- label
|
|
properties:
|
|
label:
|
|
type: string
|
|
color:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
icon:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
EvidenceOverviewRow:
|
|
type: object
|
|
required:
|
|
- tenantName
|
|
- tenantId
|
|
- snapshotId
|
|
- completenessState
|
|
- artifactTruth
|
|
- freshness
|
|
- nextStep
|
|
properties:
|
|
tenantName:
|
|
type: string
|
|
tenantId:
|
|
type: integer
|
|
snapshotId:
|
|
type: integer
|
|
completenessState:
|
|
type: string
|
|
generatedAt:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
format: date-time
|
|
missingDimensions:
|
|
type: integer
|
|
staleDimensions:
|
|
type: integer
|
|
artifactTruth:
|
|
$ref: '#/components/schemas/ArtifactTruthSummary'
|
|
freshness:
|
|
$ref: '#/components/schemas/Badge'
|
|
nextStep:
|
|
type: string
|
|
viewUrl:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
ReviewRegisterRow:
|
|
type: object
|
|
required:
|
|
- tenantName
|
|
- tenantId
|
|
- reviewId
|
|
- status
|
|
- completenessState
|
|
- artifactTruth
|
|
- publication
|
|
- nextStep
|
|
properties:
|
|
tenantName:
|
|
type: string
|
|
tenantId:
|
|
type: integer
|
|
reviewId:
|
|
type: integer
|
|
status:
|
|
type: string
|
|
completenessState:
|
|
type: string
|
|
generatedAt:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
format: date-time
|
|
publishedAt:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
format: date-time
|
|
artifactTruth:
|
|
$ref: '#/components/schemas/ArtifactTruthSummary'
|
|
publication:
|
|
$ref: '#/components/schemas/Badge'
|
|
nextStep:
|
|
type: string
|
|
viewUrl:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
EvidenceOverviewPage:
|
|
type: object
|
|
required:
|
|
- rows
|
|
properties:
|
|
rows:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/EvidenceOverviewRow'
|
|
ReviewRegisterPage:
|
|
type: object
|
|
required:
|
|
- rows
|
|
properties:
|
|
rows:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ReviewRegisterRow'
|
|
EvidenceSnapshotDetailPage:
|
|
type: object
|
|
required:
|
|
- recordId
|
|
- tenantId
|
|
- completenessState
|
|
- artifactTruth
|
|
properties:
|
|
recordId:
|
|
type: integer
|
|
tenantId:
|
|
type: integer
|
|
status:
|
|
type: string
|
|
completenessState:
|
|
type: string
|
|
generatedAt:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
format: date-time
|
|
artifactTruth:
|
|
$ref: '#/components/schemas/ArtifactTruthSummary'
|
|
linkedReviewUrl:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
linkedRunUrl:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
TenantReviewDetailPage:
|
|
type: object
|
|
required:
|
|
- recordId
|
|
- tenantId
|
|
- status
|
|
- completenessState
|
|
- artifactTruth
|
|
properties:
|
|
recordId:
|
|
type: integer
|
|
tenantId:
|
|
type: integer
|
|
status:
|
|
type: string
|
|
completenessState:
|
|
type: string
|
|
generatedAt:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
format: date-time
|
|
publishedAt:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
format: date-time
|
|
artifactTruth:
|
|
$ref: '#/components/schemas/ArtifactTruthSummary'
|
|
linkedEvidenceUrl:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
linkedPackUrl:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
ReviewPackDetailPage:
|
|
type: object
|
|
required:
|
|
- recordId
|
|
- tenantId
|
|
- status
|
|
- artifactTruth
|
|
properties:
|
|
recordId:
|
|
type: integer
|
|
tenantId:
|
|
type: integer
|
|
status:
|
|
type: string
|
|
generatedAt:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
format: date-time
|
|
expiresAt:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
format: date-time
|
|
artifactTruth:
|
|
$ref: '#/components/schemas/ArtifactTruthSummary'
|
|
linkedReviewUrl:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
linkedEvidenceUrl:
|
|
type:
|
|
- string
|
|
- 'null' |