Secure Software Delivery for Federal Environments Module 6 · Toward Continuous

Wire the Pipeline to the Package

Last reviewed

Advanced

What you'll learn

~18 min
  • Wire pipeline evidence into the control catalog so the package regenerates from delivery events
  • Use deterministic export as the release gate for compliance artifacts
  • Keep the human gates that must survive automation - and remove the ones that should not

Two systems, one wire

Lesson 6.1 located the process gap precisely: evidence arrives continuously, then waits for humans to assemble it into a package on a calendar. This lesson closes that gap with a wire between two systems this training’s ecosystem already built.

On one side: the evidence push pipeline — this site’s DevSecOps Foundations training and its capstone pattern (Evidence as a Push Pipeline — in short, for readers starting here: every pipeline run pushes a bundle — scan outputs, test results, provenance — mapped to control IDs, into an append-only store; evidence models declared as data say what-proves-what with freshness contracts). On the other side: this training’s catalog-driven assessment machinery (2.1’s evidence contracts, 3.1’s collectors and verdicts, 2.3’s deterministic exports). The wire:

pipeline run completes (build/scan/test/deploy)
-> evidence bundle pushed: outputs + control-ID manifest + provenance
(commit, pipeline, artifact hashes) [the DevOps push]
-> bundle lands in the evidence store (3.2): content-addressed,
WORM, provenance digests
-> the CATALOG's evidence contracts (2.1) recognize the bundle:
these entries name pipeline-pushed evidence types alongside
collector-pulled ones - push and pull are PEERS feeding one
contract
-> the evaluator (3.1) re-runs affected controls: strict-AND,
800-53A vocabulary, coverage accounting updated
-> the EXPORTS regenerate (2.3): OSCAL, docs site, Word package
-> byte-equality gate: if nothing assessment-relevant changed,
output is byte-identical -> NO-OP. If something changed ->
a DIFF, routed to humans as a reviewable change

Read the last step twice, because it’s the design’s center of gravity: determinism (2.3) is what makes a self-updating package safe. Without it, every pipeline run would churn the package and reviewers would drown in noise — automation would reduce assurance. With it, the package is quiet until reality changes, and when reality changes, the package diff is the change review: one firewall control’s verdict flipping to partial shows up as three legible lines in a generated SSP, not as a regenerated document nobody re-reads. The byte-equality gate is thereby promoted from CI hygiene to the release gate for compliance artifacts — package versions are cut exactly when reality diffs, at the cadence of change rather than the cadence of quarters. That’s authorization-as-stream’s engineering half: the stream is a sequence of small, reviewed, provenance-carrying package diffs.

Which humans stay in the loop

Automating the assembly line does not automate the judgments — and the design is honest only if it names which gates survive:

SURVIVES AUTOMATION (judgment gates): AUTOMATED AWAY (assembly toil):
- implementation statements: authored - collating evidence into
by humans, always (2.2's line holds - binders by hand
the wire moves evidence, never claims) - re-typing verdicts into
- verdict-flip review: a control changing documents
state is a human-reviewed diff before - regenerating exports and
the package version ships diffing them by eye
- the acceptance itself: the AO (or their - noticing that evidence
ongoing-authorization mechanism) decides; went stale (freshness
the wire feeds the decision a stream contracts page someone
instead of a quarterly binder instead)

The failure mode to design against is the middle one quietly disappearing: a package that re-versions on every verdict flip without review recreates 3.1’s automation theater one level up — tooling attesting to tooling, now with the AO’s signature downstream of it (2.2’s warning, industrialized). The verdict-flip review is cheap (it’s a diff), and it’s the human link that makes the stream trustworthy.

Prompt first: close the loop on one control

Wire one control end-to-end as our pilot - pick SC-7 (it has both
pipeline-pushed and collector-pulled evidence):
1) extend the catalog entry's evidence contract to name the pipeline
bundle types (scan SARIF, deploy manifest) alongside the collector
feeds - schema change reviewed like any code;
2) subscribe the evaluator to store events for those types; re-run
SC-7's checks on arrival; verify strict-AND and coverage.md update;
3) regenerate exports on verdict change ONLY (byte-equality gate
proves the only-ness); route the diff to the ISSO as a PR-style
review titled with the control and the flip;
4) run the drill: introduce a deliberate misconfiguration in staging,
watch the whole wire fire - push, verdict flip, package diff,
review - and MEASURE the latency from pipeline event to reviewable
diff. That number is your evidence-to-package lag; log it in the
gap statement (6.1), because shrinking it IS closing the process leg.

One control first, drilled and measured, then scale by contract — the same pilot discipline every migration in this training family follows.

💡The freshness contract becomes your conmon SLA

The DevSecOps training’s evidence models carry expected cadence and stale-after thresholds per evidence type. Once the wire is live, those freshness contracts are not metadata - they are your continuous-monitoring SLA, mechanically checkable: a control whose evidence goes stale flips to an evidence-gap state (3.1’s warning band) and pages the owner, BEFORE an assessor finds the hole. Quarterly programs discover staleness at reassessment; wired programs discover it at the stale-after threshold. That difference, repeated across every control, is most of what ‘continuous’ means in practice.

KNOWLEDGE CHECK

Six weeks after the wire goes live, a teammate proposes removing the verdict-flip review: 'the evaluator is strict-AND and the exports are deterministic - the review step just adds latency to a mechanically correct pipeline.' What is the strongest correct response?

Key takeaway

The wire joins the DevSecOps Foundations training’s evidence push to this training’s catalog machinery: bundles land content-addressed, contracts recognize them, verdicts re-run, exports regenerate — and the byte-equality gate turns determinism into the release gate, so the package versions exactly when reality changes, as a reviewable diff. Keep the judgment gates (statements authored, flips reviewed, acceptance decided); automate only assembly. Pilot one control, drill it, measure the evidence-to-package lag — that number is the process leg closing. Next: naming the frameworks all this machinery already practices.

Search lessons