## Summary - standardize the shared verification report family across operation detail, onboarding, and tenant verification widget hosts - standardize normalized settings and normalized diff family wrappers across policy, policy version, and finding detail hosts - add parity and guard coverage plus the full Spec 197 artifacts, including recorded manual smoke evidence ## Testing - focused Sail regression pack from `specs/197-shared-detail-contract/quickstart.md` - local integrated-browser manual smoke for SC-197-003 and SC-197-004 Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #237
304 lines
8.9 KiB
YAML
304 lines
8.9 KiB
YAML
openapi: 3.1.0
|
|
info:
|
|
title: Verification Report Family Internal Surface Contract
|
|
version: 0.1.0
|
|
summary: Internal logical contract for the shared Verification Report family
|
|
description: |
|
|
This contract is an internal planning artifact for Spec 197. It documents the
|
|
family-owned verification surface used across operation detail, onboarding,
|
|
and tenant verification widget hosts. Rendered routes still return HTML.
|
|
The structured schemas below describe the internal surface contract and the
|
|
allowed host-variation boundaries. This does not add a public HTTP API.
|
|
servers:
|
|
- url: /internal
|
|
x-family-consumers:
|
|
- surface: operation_run_detail
|
|
source: verification_report_surface
|
|
accessPattern: detail_safe
|
|
guardScope:
|
|
- apps/platform/app/Filament/Resources/OperationRunResource.php
|
|
- apps/platform/resources/views/filament/components/verification-report-viewer.blade.php
|
|
requiredMarkers:
|
|
- VerificationReportViewer::surface
|
|
- data-shared-detail-family="verification-report"
|
|
- data-host-kind="operation_run_detail"
|
|
- data-shared-zone="summary"
|
|
- data-shared-zone="diagnostics"
|
|
- surface: onboarding_verification_step
|
|
source: verification_report_surface
|
|
accessPattern: form_embedded_safe
|
|
guardScope:
|
|
- apps/platform/app/Filament/Pages/Workspaces/ManagedTenantOnboardingWizard.php
|
|
- apps/platform/resources/views/filament/forms/components/managed-tenant-onboarding-verification-report.blade.php
|
|
requiredMarkers:
|
|
- VerificationReportViewer::surface
|
|
- data-shared-detail-family="verification-report"
|
|
- data-host-kind="onboarding_wizard"
|
|
- assistActionName
|
|
- technicalDetailsActionName
|
|
x-forbiddenMarkers:
|
|
- needle: "x-data=\"{ tab: 'issues' }\""
|
|
max: 0
|
|
- surface: tenant_verification_widget
|
|
source: verification_report_surface
|
|
accessPattern: widget_safe
|
|
guardScope:
|
|
- apps/platform/app/Filament/Widgets/Tenant/TenantVerificationReport.php
|
|
- apps/platform/resources/views/filament/widgets/tenant/tenant-verification-report.blade.php
|
|
requiredMarkers:
|
|
- VerificationReportViewer::surface
|
|
- data-shared-detail-family="verification-report"
|
|
- data-host-kind="tenant_widget"
|
|
- data-shared-zone="summary"
|
|
- data-shared-zone="diagnostics"
|
|
paths:
|
|
/ui-contracts/verification-report/resolve:
|
|
get:
|
|
summary: Resolve the shared Verification Report family contract for one host
|
|
operationId: resolveVerificationReportSurface
|
|
parameters:
|
|
- name: host
|
|
in: query
|
|
required: true
|
|
schema:
|
|
$ref: '#/components/schemas/VerificationHostKind'
|
|
- name: runId
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
responses:
|
|
'200':
|
|
description: Shared Verification Report surface contract resolved for the current host context
|
|
content:
|
|
application/vnd.tenantpilot.verification-report-surface+json:
|
|
schema:
|
|
$ref: '#/components/schemas/VerificationReportSurfaceContract'
|
|
'403':
|
|
description: Actor is in scope but lacks the capability required for host-owned actions
|
|
'404':
|
|
description: Run or tenant scope is not visible in the current workspace or tenant context
|
|
/admin/onboarding:
|
|
get:
|
|
summary: Onboarding verification host using the shared Verification Report family
|
|
operationId: viewOnboardingVerificationHost
|
|
responses:
|
|
'200':
|
|
description: Rendered onboarding verification step with shared verification family core
|
|
content:
|
|
text/html:
|
|
schema:
|
|
type: string
|
|
/admin/t/{tenant}:
|
|
get:
|
|
summary: Tenant verification widget host using the shared Verification Report family
|
|
operationId: viewTenantVerificationWidgetHost
|
|
parameters:
|
|
- name: tenant
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: Rendered tenant detail page containing the shared verification family widget
|
|
content:
|
|
text/html:
|
|
schema:
|
|
type: string
|
|
components:
|
|
schemas:
|
|
VerificationHostKind:
|
|
type: string
|
|
enum:
|
|
- operation_run_detail
|
|
- onboarding_wizard
|
|
- tenant_widget
|
|
VerificationCoreState:
|
|
type: string
|
|
enum:
|
|
- unavailable
|
|
- completed
|
|
VerificationActionKind:
|
|
type: string
|
|
enum:
|
|
- navigation
|
|
- assist
|
|
- acknowledge
|
|
- refresh
|
|
- technical_details
|
|
VerificationHostVariation:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- ownsNoRunState
|
|
- ownsActiveState
|
|
- supportsAssist
|
|
- supportsAcknowledge
|
|
- supportsTechnicalDetailsTrigger
|
|
properties:
|
|
ownsNoRunState:
|
|
type: boolean
|
|
ownsActiveState:
|
|
type: boolean
|
|
supportsAssist:
|
|
type: boolean
|
|
supportsAcknowledge:
|
|
type: boolean
|
|
supportsTechnicalDetailsTrigger:
|
|
type: boolean
|
|
VerificationAction:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- kind
|
|
- label
|
|
- ownedByHost
|
|
properties:
|
|
kind:
|
|
$ref: '#/components/schemas/VerificationActionKind'
|
|
label:
|
|
type: string
|
|
ownedByHost:
|
|
type: boolean
|
|
VerificationViewZone:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- key
|
|
- label
|
|
- defaultVisible
|
|
properties:
|
|
key:
|
|
type: string
|
|
label:
|
|
type: string
|
|
defaultVisible:
|
|
type: boolean
|
|
optional:
|
|
type: boolean
|
|
VerificationNextStepPlacement:
|
|
type: string
|
|
enum:
|
|
- shared_zone
|
|
- host_action_zone
|
|
VerificationNextStep:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- label
|
|
- placement
|
|
- ownedByHost
|
|
properties:
|
|
label:
|
|
type: string
|
|
placement:
|
|
$ref: '#/components/schemas/VerificationNextStepPlacement'
|
|
ownedByHost:
|
|
type: boolean
|
|
actionKind:
|
|
oneOf:
|
|
- $ref: '#/components/schemas/VerificationActionKind'
|
|
- type: 'null'
|
|
VerificationOptionalZone:
|
|
type: string
|
|
enum:
|
|
- technical_details
|
|
- change_indicator
|
|
- previous_run_context
|
|
VerificationIssueGroup:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- label
|
|
- checks
|
|
properties:
|
|
label:
|
|
type: string
|
|
checks:
|
|
type: array
|
|
items:
|
|
type: object
|
|
VerificationDiagnostics:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- hasTechnicalZone
|
|
properties:
|
|
hasTechnicalZone:
|
|
type: boolean
|
|
fingerprint:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
previousRunUrl:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
operationRunId:
|
|
type:
|
|
- integer
|
|
- 'null'
|
|
VerificationReportSurfaceContract:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- hostKind
|
|
- coreState
|
|
- summary
|
|
- issueGroups
|
|
- passedChecks
|
|
- diagnostics
|
|
- viewZones
|
|
- nextSteps
|
|
- hostVariation
|
|
properties:
|
|
hostKind:
|
|
$ref: '#/components/schemas/VerificationHostKind'
|
|
coreState:
|
|
$ref: '#/components/schemas/VerificationCoreState'
|
|
summary:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- overallLabel
|
|
- counts
|
|
properties:
|
|
overallLabel:
|
|
type: string
|
|
counts:
|
|
type: object
|
|
additionalProperties:
|
|
type: integer
|
|
issueGroups:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/VerificationIssueGroup'
|
|
passedChecks:
|
|
type: array
|
|
items:
|
|
type: object
|
|
diagnostics:
|
|
$ref: '#/components/schemas/VerificationDiagnostics'
|
|
viewZones:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/VerificationViewZone'
|
|
nextSteps:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/VerificationNextStep'
|
|
hostActions:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/VerificationAction'
|
|
hostVariation:
|
|
$ref: '#/components/schemas/VerificationHostVariation'
|
|
optionalZones:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/VerificationOptionalZone'
|
|
emptyState:
|
|
type:
|
|
- object
|
|
- 'null' |