S00 Endpoint Contract Ledger v1

Status: Frozen baseline (reconciled with backend implementation) Date: 2026-02-19 Working directory: docs/modules/ui/v2-rewire Template source: S00_contract_ledger_template.md Sprint: 20260218_005, task R0-06

Reconciliation note (2026-02-19)

Status class definitions

Status classMeaning
EXISTS_COMPATEndpoint exists and is compatible with v2 screen needs without schema change.
EXISTS_ADAPTEndpoint exists but requires schema additions, filter/sort extensions, or composition changes for v2.
MISSING_NEWNo endpoint exists; must be designed and implemented before the consuming sprint can complete.

Ledger

DomainScreen/PageCanonical source refsCurrent route/pageCurrent endpoint candidate(s)StatusOwner moduleAuth scope impactSchema delta summaryDecision/risk notesAction ticket
DashboardDashboard v3 mission boardsource-of-truth.md 3.2, authority-matrix.md A: Dashboard, pack-16.md/ (control-plane/dashboard variants)GET /api/v1/dashboard/summary; existing promotion, approval, and scan summary endpointsEXISTS_COMPATWeb (composition) + ReleaseOrchestrator, Policy, ScannerNo new scopes; requires existing viewer scopesImplemented in Platform pack adapters with deterministic data-confidence, CritR env breakdown, B/I/R coverage, and top-driver fields consumed by dashboard v3 cardsRoute finalized to /api/v1/dashboard/summary; validated by PackAdapterEndpointsTestsS00-T05-DASH-01
Release ControlBundle catalog/detail/buildersource-of-truth.md 3.1, authority-matrix.md A: bundles, pack-12.md/release-control/bundles/*GET /api/v1/release-control/bundles; GET /api/v1/release-control/bundles/{bundleId}; GET /api/v1/release-control/bundles/{bundleId}/versions; GET /api/v1/release-control/bundles/{bundleId}/versions/{versionId}; POST /api/v1/release-control/bundles; POST /api/v1/release-control/bundles/{bundleId}/versions; POST /api/v1/release-control/bundles/{bundleId}/versions/{versionId}/materializeEXISTS_COMPATPlatform (StellaOps.Platform.WebService)orch:read (read routes), orch:operate (create/publish/materialize)Implemented with Postgres-backed lifecycle tables (release.control_bundles*) plus deterministic list ordering and idempotent materialization key handlingCollision with Evidence bundle export routes resolved by dedicated /api/v1/release-control/* namespace; frontend bundle surfaces are now API-bound (see sprint 20260219_003 RC3-06)S00-T05-RC-01
Release ControlPromotions list/create/detailsource-of-truth.md 3.1, authority-matrix.md A: releases, pack-13.md/releases/promotions/*GET /api/release-jobengine/approvals (list); GET /api/release-jobengine/approvals/{id} (detail); GET /api/release-jobengine/releases/{releaseId}/available-environments (target preflight); GET /api/release-jobengine/releases/{releaseId}/promotion-preview (gate preflight); POST /api/release-jobengine/releases/{releaseId}/promote (create); POST /api/release-jobengine/approvals/{id}/approve; POST /api/release-jobengine/approvals/{id}/rejectEXISTS_COMPATReleaseOrchestratorExisting orch:read / orch:operateLegacy promotion/approval payloads are enriched with manifest digest, risk snapshot, hybrid reachability coverage, ops confidence, and decision digest via ApprovalEndpoints.WithDerivedSignalsContract fields verified by ReleaseControlV2EndpointsTests; /releases/new now hands users into this surface and /releases/deployments/new is retained only as a compatibility redirect. Bundle/version/hotfix context may be preserved on the handoff page, but the FE no longer aliases those identities into the promotion API’s releaseId parameter.S00-T05-RC-02
Release ControlRun timeline, checkpoints, rollbacksource-of-truth.md 3.1, authority-matrix.md A: run timeline, pack-14.md/deployments/* and run viewsGET /api/v1/runs/{id} (run detail); GET /api/v1/runs/{id}/steps (step list); GET /api/v1/runs/{id}/steps/{stepId} (step detail + logs); POST /api/v1/runs/{id}/rollback (trigger rollback)EXISTS_COMPATReleaseOrchestratorExisting orch:read / orch:operateImplemented v2 run contracts include ordered checkpoints plus explicit evidence-thread and log-artifact links; rollback returns deterministic accepted payload with guard state/api/v1/runs/* and /v1/runs/* compatibility routes are live and test-backed; policy-coupled rollback guard hardening remains future workS00-T05-RUN-01
ApprovalsApprovals v2 tabs and decision packetsource-of-truth.md 3.3, authority-matrix.md A: approvals, pack-17.md/approvals/*GET /api/v1/approvals (queue); GET /api/v1/approvals/{id} (detail); GET /api/v1/approvals/{id}/gates (gate trace); GET /api/v1/approvals/{id}/evidence (evidence packet); GET /api/v1/approvals/{id}/security-snapshot (security tab data); GET /api/v1/approvals/{id}/ops-health (ops/data tab); POST /api/v1/approvals/{id}/decision (approve/reject/defer/escalate)EXISTS_COMPATPolicy + ReleaseOrchestratorExisting policy reviewer / approver scopesv2 approvals adapter routes now return deterministic decision-packet shapes containing digest, gate trace, security snapshot (risk + B/I/R), and ops/data confidence payloadsDeterministic ordering and contract fields are verified in ReleaseControlV2EndpointsTests (queue determinism, gate ordering, decision mutation, not-found behavior)S00-T05-APR-01
EnvironmentEnvironment detail standard tabssource-of-truth.md 3.1 and 3.6, authority-matrix.md A: env detail, pack-18.md/environments/*GET /api/v1/environments/{id} (detail); GET /api/v1/environments/{id}/deployments (deployment history); GET /api/v1/environments/{id}/security-snapshot (security state); GET /api/v1/environments/{id}/evidence (evidence summary); GET /api/v1/environments/{id}/ops-health (data confidence)EXISTS_COMPATReleaseOrchestratorExisting orch:readPack-18 environment tab contracts are implemented with standardized header fields (manifest digest, risk snapshot, B/I/R coverage, ops confidence) and deterministic deployment orderingEnvironment adapters are live under /api/v1/environments/* and validated in ReleaseControlV2EndpointsTestsS00-T05-ENV-01
Security and RiskRisk overview, findings, vulns, vex, exceptions, reachabilitysource-of-truth.md 3.4, authority-matrix.md A: security, pack-19.md/security/*GET /api/v1/security/findings (decision-first grouped); GET /api/v1/security/vulnerabilities; GET /api/v1/security/vex; GET /api/v1/security/reachability; existing risk/scanner endpointsEXISTS_COMPATScannerExisting security viewer scopesSecurity adapter routes now normalize findings/vulnerability/VEX/reachability payloads with deterministic filters and B/I/R confidence fields expected by Pack 19 decision-centric screensScanner routes are validated in SecurityAdapterEndpointsTests; exception lifecycle remains served by Policy endpoints (/api/policy/exceptions) and linked from security flowsS00-T05-SEC-01
Security and RiskAdvisory Sourcessource-of-truth.md 3.4 and 5, authority-matrix.md B: legacy security data split, pack-21.md, S00_advisory_sources_spec.md/security-risk/advisory-sourcesGET /api/v1/advisory-sources; GET /api/v1/advisory-sources/summary; GET /api/v1/advisory-sources/{id}/freshness (Concelier); GET /api/v1/advisory-sources/{id}/impact; GET /api/v1/advisory-sources/{id}/conflicts (Policy)EXISTS_COMPATConcelier (freshness) + Policy (impact/conflicts)advisory:read (Concelier freshness routes), findings:read (Policy impact/conflicts routes); tenant header requiredImplemented with Concelier freshness + signature-stat projections (vuln.source_freshness_sla, vuln.advisory_source_signature_projection) and Policy impact/conflict projections (policy.advisory_source_impacts, policy.advisory_source_conflicts)Ownership split implemented at endpoint boundary; UI composes read-only facts from Concelier + Policy without write side-effects, including backend advisory stats in detail diagnostics (see sprint 20260219_004 SR4-07)S00-T05-SEC-02
Evidence and AuditEvidence home, packs, bundles, export, proof, replay, auditsource-of-truth.md 3.5, authority-matrix.md A: evidence, pack-20.md/evidence/*GET /api/v1/evidence (home); GET /api/v1/evidence/packs (pack list); GET /api/v1/evidence/packs/{id} (pack detail); GET /api/v1/evidence/proofs/{subjectDigest} (proof chain); GET /api/v1/evidence/thread/{id} (evidence thread); GET /api/v1/evidence/audit (unified audit log); GET /api/v1/evidence/receipts/cvss/{id}EXISTS_COMPATEvidenceLocker + AttestorExisting evidence viewer scopesEvidence adapter family is implemented for home/packs/proofs/audit/receipts plus thread lookup with deterministic ordering and explicit not-found contractsRoutes are validated by EvidenceAuditEndpointsTests; trust management remains an Administration owner workflow while evidence APIs stay read-only consumer surfacesS00-T05-EVID-01
AdministrationA0 overview + A1 Identity and Access + A2 Tenant and Branding + A3 Notifications + A4 Usage and Limits + A5 Policy Governance + A6 Trust and Signing + A7 Systemsource-of-truth.md 2.2 and 3.8, authority-matrix.md A: administration, pack-21.md/settings/* migration targets and new /administration/* routesGET /api/v1/administration/summary; GET /api/v1/administration/identity-access; GET /api/v1/administration/tenant-branding; GET /api/v1/administration/notifications; GET /api/v1/administration/usage-limits; GET /api/v1/administration/policy-governance; GET /api/v1/administration/trust-signing; GET /api/v1/administration/system; GET /api/v1/administration/trust-signing/{keys,issuers,certificates,transparency-log}; POST /api/v1/administration/trust-signing/keys; POST /api/v1/administration/trust-signing/keys/{keyId}/rotate; POST /api/v1/administration/trust-signing/keys/{keyId}/revoke; POST /api/v1/administration/trust-signing/issuers; POST /api/v1/administration/trust-signing/certificates; POST /api/v1/administration/trust-signing/certificates/{certificateId}/revoke; PUT /api/v1/administration/trust-signing/transparency-logEXISTS_COMPATPlatform (composition) + Authority + Policyplatform.setup.read for A0/A1/A2/A3/A4/A5/A7 adapters; A6 read routes use platform.trust.read (trust:read), owner mutations use platform.trust.write (trust:write) and platform.trust.admin (trust:admin)Pack adapters now return deterministic A1-A7 payloads plus legacyAliases route-migration metadata for /settings/*, /policy/*, and /admin/*; trust-owner mutation routes persist deterministic state via Platform storesAdapter surface decouples frontend from legacy prefixes while preserving explicit trust-owner boundaries and admin-grade mutation authorization for keys/issuers/certificates/transparency configurationS00-T05-ADM-01
IntegrationsIntegrations taxonomy, hub overview, connector detail, feeds tie-insource-of-truth.md 3.7, authority-matrix.md A: integrations, pack-21.md, pack-10.md/settings/integrations/* and /integrations/* (partially)GET /api/v1/integrations (hub list); GET /api/v1/integrations/{id} (connector detail); GET /api/v1/integrations/{id}/health (health check); GET /api/v1/integrations/{id}/impact (impact map); POST /api/v1/integrations/{id}/test (test connection)EXISTS_COMPATIntegrationsExisting integration admin scopesImpact map contract is implemented at /api/v1/integrations/{id}/impact with deterministic workflow ordering; list/detail/health/test routes remain compatible for pack-21 integration detail tabsEndpoint behavior is validated in IntegrationImpactEndpointsTests; advisory source ownership split remains handled by S00-T05-SEC-02S00-T05-INT-01
Platform OpsData Integrity overview + nightly report + feeds freshness + scan pipeline health + reachability ingest + DLQ + data quality SLOssource-of-truth.md 3.6, authority-matrix.md A: ops, pack-15.md, pack-10.md, pack-21.md/operations/* (current)GET /api/v1/platform/data-integrity/summary (overview cards); GET /api/v1/platform/data-integrity/report (nightly report); GET /api/v1/platform/feeds/freshness (feeds health); GET /api/v1/platform/scan-pipeline/health; GET /api/v1/platform/reachability/ingest-health; existing DLQ and SLO endpointsEXISTS_COMPATOrchestrator + Concelier + ScannerExisting ops viewer scopesPlatform pack adapters now expose the data-integrity aggregate routes required by Packs 15/21 with deterministic card/report ordering and feed/pipeline/reachability drilldown linksEndpoints and tenant-header validation are covered in PackAdapterEndpointsTests; ownership split with Integrations remains explicit per S00_advisory_sources_spec.mdS00-T05-OPS-01

Sign-off requirement

Before readiness closure, frontend and backend leads must confirm:

Sign-off is captured in S00_handoff_packet.md.