Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
- Added NullAdvisoryObservationEventTransport for handling advisory observation events. - Created IOrchestratorRegistryStore interface for orchestrator registry operations. - Implemented MongoOrchestratorRegistryStore for MongoDB interactions with orchestrator data. - Defined OrchestratorCommandDocument and OrchestratorCommandRecord for command handling. - Added OrchestratorHeartbeatDocument and OrchestratorHeartbeatRecord for heartbeat tracking. - Created OrchestratorRegistryDocument and OrchestratorRegistryRecord for registry management. - Developed tests for orchestrator collections migration and MongoOrchestratorRegistryStore functionality. - Introduced AirgapImportRequest and AirgapImportValidator for air-gapped VEX bundle imports. - Added incident mode rules sample JSON for notifier configuration.
2.0 KiB
2.0 KiB
Concelier Advisory Evidence Attestation
Purpose
- Describe how Concelier returns attestation claims for advisory evidence bundles so downstream services (Advisory AI, Attestor, Console) can verify provenance.
Endpoint
GET /vuln/evidence/advisories/{advisoryKey}- Authentication/tenant headers follow standard Concelier rules (
X-Stella-Tenantortenantquery; authority policies apply). - Response payload:
AdvisoryEvidenceResponse { advisoryKey, records[], attestation? }
Attestation parameters (query)
bundlePath(required to enable attestation): Relative or absolute path to evidence bundle tar.gz. Relative paths are resolved under the configured evidence root (concelier:evidence:root). Paths outside this root are rejected.manifestPath(optional): Defaults to siblingmanifest.jsonnext to the bundle.transparencyPath(optional): Defaults to siblingtransparency.jsonnext to the bundle.pipelineVersion(optional): Defaults toconcelier:evidence:pipelineVersion(e.g.,git:<sha>).
Behavior
- When
bundlePathis omitted, the endpoint returns evidence records only (attestation isnull). - When provided, Concelier builds claims via
EvidenceBundleAttestationBuilderusing the manifest and optional transparency payload; tenant must be lowercase per scope note. - Path safety: All resolved files must live under the evidence root; traversal attempts or missing files silently skip attestation (response remains valid without claims).
Configuration
concelier:evidence:root(defaultout/evidence/bundles, resolved absolute).concelier:evidence:defaultManifestFileName(defaultmanifest.json).concelier:evidence:defaultTransparencyFileName(defaulttransparency.json).concelier:evidence:pipelineVersion(defaultgit:unknown).
References
- Evidence Locker attestation scope:
docs/modules/evidence-locker/attestation-scope-note.md. - Implementation:
src/Concelier/StellaOps.Concelier.WebService/Program.cs,StellaOps.Concelier.Core/Attestation/EvidenceBundleAttestationBuilder.cs.