284 lines
8.2 KiB
YAML
284 lines
8.2 KiB
YAML
openapi: 3.1.0
|
|
info:
|
|
title: Monitoring Page-State Internal Contract
|
|
version: 0.1.0
|
|
summary: Internal logical contract for Spec 198 monitoring page-state behavior
|
|
description: |
|
|
This contract is an internal planning artifact for Spec 198. The affected
|
|
surfaces continue to render HTML through Filament and Livewire. The schemas
|
|
below define the bounded contract for contextual prefilter state, active
|
|
state, draft state, inspect state, shareable/restorable state, and
|
|
deterministic hydration rules across the in-scope monitoring family.
|
|
servers:
|
|
- url: /internal
|
|
x-monitoring-page-state-consumers:
|
|
- surface: operations
|
|
sourceFiles:
|
|
- apps/platform/app/Filament/Pages/Monitoring/Operations.php
|
|
- apps/platform/resources/views/filament/pages/monitoring/operations.blade.php
|
|
mustDeclare:
|
|
- contextual_prefilter
|
|
- active
|
|
- shareable_restorable
|
|
mustNotDeclare:
|
|
- draft
|
|
- competing_same_page_inspect_model
|
|
- surface: audit_log
|
|
sourceFiles:
|
|
- apps/platform/app/Filament/Pages/Monitoring/AuditLog.php
|
|
- apps/platform/resources/views/filament/pages/monitoring/audit-log.blade.php
|
|
- apps/platform/resources/views/filament/pages/monitoring/partials/audit-log-inspect-event.blade.php
|
|
mustDeclare:
|
|
- contextual_prefilter
|
|
- active
|
|
- inspect
|
|
- shareable_restorable
|
|
mustNotDeclare:
|
|
- draft
|
|
- parallel_inspect_world
|
|
- surface: finding_exceptions_queue
|
|
sourceFiles:
|
|
- apps/platform/app/Filament/Pages/Monitoring/FindingExceptionsQueue.php
|
|
- apps/platform/resources/views/filament/pages/monitoring/finding-exceptions-queue.blade.php
|
|
mustDeclare:
|
|
- contextual_prefilter
|
|
- active
|
|
- inspect
|
|
- shareable_restorable
|
|
mustNotDeclare:
|
|
- draft
|
|
- parallel_inspect_world
|
|
- surface: evidence_overview
|
|
sourceFiles:
|
|
- apps/platform/app/Filament/Pages/Monitoring/EvidenceOverview.php
|
|
- apps/platform/resources/views/filament/pages/monitoring/evidence-overview.blade.php
|
|
mustDeclare:
|
|
- contextual_prefilter
|
|
- active
|
|
- shareable_restorable
|
|
mustNotDeclare:
|
|
- draft
|
|
- same_page_selected_record_state
|
|
- surface: baseline_compare_matrix
|
|
sourceFiles:
|
|
- apps/platform/app/Filament/Pages/BaselineCompareMatrix.php
|
|
- apps/platform/resources/views/filament/pages/baseline-compare-matrix.blade.php
|
|
mustDeclare:
|
|
- contextual_prefilter
|
|
- active
|
|
- draft
|
|
- inspect
|
|
- shareable_restorable
|
|
mustNotDeclare:
|
|
- forced_direct_active_filter_model
|
|
- surface: baseline_compare_landing
|
|
sourceFiles:
|
|
- apps/platform/app/Filament/Pages/BaselineCompareLanding.php
|
|
- apps/platform/resources/views/filament/pages/baseline-compare-landing.blade.php
|
|
mustDeclare:
|
|
- contextual_prefilter
|
|
- active
|
|
mustNotDeclare:
|
|
- competing_applied_compare_owner
|
|
paths:
|
|
/internal/page-state/{surface}:
|
|
get:
|
|
summary: Return the logical page-state contract for an in-scope monitoring surface
|
|
operationId: getMonitoringPageStateContract
|
|
parameters:
|
|
- name: surface
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: '#/components/schemas/SurfaceKey'
|
|
responses:
|
|
'200':
|
|
description: Logical state contract and hydration rules for the requested surface
|
|
content:
|
|
application/vnd.tenantpilot.monitoring-page-state+json:
|
|
schema:
|
|
$ref: '#/components/schemas/SurfaceContract'
|
|
'404':
|
|
description: Requested surface is not in the Spec 198 inventory
|
|
components:
|
|
schemas:
|
|
SurfaceKey:
|
|
type: string
|
|
enum:
|
|
- operations
|
|
- audit_log
|
|
- finding_exceptions_queue
|
|
- evidence_overview
|
|
- baseline_compare_matrix
|
|
- baseline_compare_landing
|
|
SurfaceType:
|
|
type: string
|
|
enum:
|
|
- simple_monitoring
|
|
- selected_record_monitoring
|
|
- draft_apply_analysis
|
|
- launch_context_support
|
|
StateClass:
|
|
type: string
|
|
enum:
|
|
- contextual_prefilter
|
|
- active
|
|
- draft
|
|
- inspect
|
|
- shareable_restorable
|
|
QueryRole:
|
|
type: string
|
|
enum:
|
|
- initialization_only
|
|
- durable_restorable
|
|
- scoped_deeplink
|
|
- unsupported
|
|
StateCarrier:
|
|
type: string
|
|
enum:
|
|
- query_param
|
|
- session
|
|
- livewire_property
|
|
- route_context
|
|
- derived_render_state
|
|
InvalidFallback:
|
|
type: string
|
|
enum:
|
|
- discard_and_continue
|
|
- clear_selection_and_continue
|
|
- reset_to_default_scope
|
|
- ignore_unapplied_draft
|
|
- deny_not_found
|
|
InspectPresentation:
|
|
type: string
|
|
enum:
|
|
- none
|
|
- inline_detail
|
|
- queue_summary
|
|
- focused_matrix
|
|
- navigate_to_canonical_detail
|
|
StateFieldDescriptor:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- stateKey
|
|
- stateClass
|
|
- carrier
|
|
- queryRole
|
|
- shareable
|
|
- restorableOnRefresh
|
|
- invalidFallback
|
|
properties:
|
|
stateKey:
|
|
type: string
|
|
stateClass:
|
|
$ref: '#/components/schemas/StateClass'
|
|
carrier:
|
|
$ref: '#/components/schemas/StateCarrier'
|
|
queryRole:
|
|
$ref: '#/components/schemas/QueryRole'
|
|
shareable:
|
|
type: boolean
|
|
restorableOnRefresh:
|
|
type: boolean
|
|
tenantSensitive:
|
|
type: boolean
|
|
invalidFallback:
|
|
$ref: '#/components/schemas/InvalidFallback'
|
|
HydrationRule:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- precedenceOrder
|
|
- appliesOnInitialMountOnly
|
|
- activeStateBecomesAuthoritativeAfterMount
|
|
- invalidRequestedStateFallback
|
|
properties:
|
|
precedenceOrder:
|
|
type: array
|
|
items:
|
|
type: string
|
|
enum:
|
|
- query
|
|
- session
|
|
- default
|
|
appliesOnInitialMountOnly:
|
|
type: boolean
|
|
activeStateBecomesAuthoritativeAfterMount:
|
|
type: boolean
|
|
clearsOnTenantSwitch:
|
|
type: array
|
|
items:
|
|
type: string
|
|
invalidRequestedStateFallback:
|
|
$ref: '#/components/schemas/InvalidFallback'
|
|
InspectContract:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- primaryModel
|
|
- selectedStateKey
|
|
- openedBy
|
|
- presentation
|
|
- shareable
|
|
- invalidSelectionFallback
|
|
properties:
|
|
primaryModel:
|
|
type: string
|
|
enum:
|
|
- none
|
|
- selected_record_inline
|
|
- selected_record_workbench
|
|
- focused_subject
|
|
selectedStateKey:
|
|
type:
|
|
- string
|
|
- 'null'
|
|
openedBy:
|
|
type: array
|
|
items:
|
|
type: string
|
|
enum:
|
|
- query_param
|
|
- inspect_action
|
|
- row_selection
|
|
- cell_focus
|
|
- landing_context
|
|
presentation:
|
|
$ref: '#/components/schemas/InspectPresentation'
|
|
shareable:
|
|
type: boolean
|
|
invalidSelectionFallback:
|
|
$ref: '#/components/schemas/InvalidFallback'
|
|
SurfaceContract:
|
|
type: object
|
|
additionalProperties: false
|
|
required:
|
|
- surfaceKey
|
|
- surfaceType
|
|
- stateFields
|
|
- hydrationRule
|
|
- inspectContract
|
|
- shareableStateKeys
|
|
- localOnlyStateKeys
|
|
properties:
|
|
surfaceKey:
|
|
$ref: '#/components/schemas/SurfaceKey'
|
|
surfaceType:
|
|
$ref: '#/components/schemas/SurfaceType'
|
|
stateFields:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/StateFieldDescriptor'
|
|
hydrationRule:
|
|
$ref: '#/components/schemas/HydrationRule'
|
|
inspectContract:
|
|
$ref: '#/components/schemas/InspectContract'
|
|
shareableStateKeys:
|
|
type: array
|
|
items:
|
|
type: string
|
|
localOnlyStateKeys:
|
|
type: array
|
|
items:
|
|
type: string |