- Implemented ReachabilityCenterComponent for displaying asset reachability status with summary and filtering options. - Added ReachabilityWhyDrawerComponent to show detailed reachability evidence and call paths. - Created unit tests for both components to ensure functionality and correctness. - Updated accessibility test results for the new components.
2.0 KiB
2.0 KiB
Policy + Evidence Composition Contract (draft v0.1)
Scope: provide a single Console-friendly response that combines policy evaluation output with related advisory and VEX evidence linksets for the same findings/component(s).
This contract is intended to reduce UI round-trips by composing existing gateway surfaces:
- Policy + Exceptions (
POST /policy/effective) - Advisories (
GET /advisories) - VEX Evidence (
GET /vex/statements)
Security / headers
Authorization: Bearer <token>(orDPoPwhere configured)X-StellaOps-Tenant: <tenantId>(required)X-Stella-Project: <projectId>(optional)X-Stella-Trace-Id: <traceId>(optional; clients SHOULD send one)- Scopes:
policy:readANDexception:readadvisory:readvex:read
Endpoint
POST /policy/evidence/component— compose policy result + evidence linksets for the supplied findings.
Request/response notes
- Request shape reuses
PolicyFindingReffields from the Policy + Exceptions contract (docs/api/gateway/policy-exceptions.md). - Response includes:
policy(Policy effective view; deterministic ordering byfindingId)advisories(summaries; deterministic ordering byadvisoryId)vexStatements(summaries; deterministic ordering bystatementId)linksetsmapping eachfindingIdto the relatedadvisoryIdsandvexStatementIds
- Implementations MUST NOT invent verdicts; this is a pure composition surface.
Caching & limits
- Composition responses SHOULD be cacheable for a short TTL when inputs are identical.
- Recommended headers:
Cache-Control: private, max-age=30, stale-if-error=120. - Recommended caps (UI/Gateway): findings max
500, advisories max200, VEX statements max200.
Determinism rules
findingssorted by(findingId asc)before evaluation.policy.itemssorted by(findingId asc).advisoriessorted by(advisoryId asc).vexStatementssorted by(statementId asc).- Timestamps: ISO-8601 UTC.
Samples
docs/api/gateway/samples/policy-evidence-component.json