Repository navigation
·
14 commits
to integration
since this release
To produce a trace of your own from this release, follow Produce a trace. The committed sample trace shows the output without running anything.
This release changes ACS-Trace for producers and consumers. The specification version stays v0.1.0, so the files at the /schema/v0.1.0/ URIs change in place, and the handshake cannot tell the old rules from the new. Name this release, or its commit, when you claim ACS-Trace conformance.
Changed: Trace (breaking)
- Every step span now requires
acs.request_idandacs.session.id. A reader joins the two parties' spans on that pair. An exporter that omits either no longer conforms (PR #275, issue #228). - The OCSF decision class now requires
finding_info,finding_info.title,action_id,action,disposition_id,disposition,evidencesandmetadata.correlation_uid, and decision events list thesecurity_controlprofile.defermaps todisposition_id99.is_alertis true exactly whenseverity_idis 3 or higher, so deny, ask and defer alert, and allow and modify don't. A decision that arrives late is emitted and flagged infinding_info.types, where it used to be suppressed (PR #275). - A decision event records the Guardian's verdict, not the enforced outcome. A matching
acs.decision.failurein either party's stream means the decision MUST NOT be counted as enforced (PR #275). - The four
policy_referencesfields and the provenancesource_idnow requireminLength: 1(PR #275, issue #263). - The OCSF mapping is pinned to OCSF 1.9.0 and uses its class names. Three rows on class 5001 set
activity_id2, andrequired_fieldsincludesfinding_info(PR #258).
Added
- The
acs.decision.failurespan event, and the extraacs.decisionattributes a reader needs to replay a decision from the trace alone (PR #275). - Per-hook
conditional_attributesinotel-mapping.json(PR #261). - Trace mappings for the skill lifecycle hooks,
steps/skillRegister,steps/skillLoadandsteps/skillUnload, in both OpenTelemetry and OCSF (PR #63, issue #57, issue #58). - The reference Guardian exports OTLP traces to a file and over HTTP, and a converter turns the host adapter's audit log into the same format. It covers the two hook methods the Guardian evaluates and is not an ACS-Trace conformance claim (PR #244, issue #91).
- A committed sample trace, a test that holds the exporter to the mapping, and "Produce a trace", a walkthrough from a fresh clone to a trace file, tested natively and with Docker (PR #277, issue #266).
- "How the reference Guardian produces a trace" on the Trace with OpenTelemetry page, with diagrams of both streams and of one tool call, and a Troubleshooting list in the Guardian README (PR #280).
Changed: reference implementation
- The audit converter's spans carry
service.nameacs-reference-audit-converter, no longer the Guardian'sacs-reference-guardian. A query that filtered on the old value for converter spans needs updating (PR #277, issue #274). - The converter refuses to write to an output file that already exists and exits 1. It used to append, which could write OTLP lines into the audit log or double every span on a rerun (PR #277).
otel-collector.yamlstays on loopback, keeps its file across restarts, writes owner-only, and pins its container image by digest (PR #277, issue #276).OTEL_TRACES_*,OTEL_SPAN_*,OTEL_ATTRIBUTE_*,OTEL_BSP_*and OTLP compression variables no longer change what the Guardian or the converter exports.OTEL_EXPORTER_OTLP_*HEADERSstill apply (PR #277).- A loopback trace endpoint is added to whichever of
NO_PROXYandno_proxyis set, keeping the user's own entries, and the Guardian warns at startup when a proxy is set and loopback isn't exempt. The walkthrough says to stop the Guardian and the collector before deleting.acs(PR #279, issue #274). - The Guardian's
main.ts, not the trace exporter, now reads the proxy environment and applies the loopback exemption, andclose()applies the same bounded drain whether trace export is on or off (Ariel's review on PR #286).
Removed
acs.provenance.lineage_depthandacs.provenance.origins_compactedfrom the OTel mapping (PR #261).
Changed: dependencies
- urllib3 2.7.0 to 2.8.0 (PR #202).