Armory + Universal Runner Execution Fabric

Scope
This document captures Phase 4 Sprint 11-13 implementation boundaries for Armory registry controls, universal runner verification, and QA gates.
Armory Workflow
- Ingest BYOT artifact (
tool_name,image_ref, binary payload). - Compute immutable digest (
sha256). - Generate SBOM metadata.
- Run vulnerability summary pipeline.
- Generate signing metadata (Cosign/Sigstore-equivalent contract).
- Require explicit approval before digest becomes execution-authorized.
Runner Workflow
Runner reference implementation is in Go under src/runner-go.
- Validate compact JWS on edge side.
- Resolve authorized tool digest from Armory.
- Enforce exact digest match against signed manifest.
- Build isolated command contract (
runsc+ AppArmor + read-only + no capabilities + no network baseline). - Execute workload and map output to CloudEvents (
stdout,stderr,exit_code,manifest_jws).
QA Controls (Sprint 13)
- Forged JWS signatures must fail.
- Tampered tool digests must fail.
- Execution output must map to standardized CloudEvents payload.
Current Constraints
- HS256 path is fully verified in deterministic QA suites.
- ES256 verifier backend is not yet wired in Go runtime and remains a planned integration task.