OAK Relay — Compliance / Traceability Matrix

IDEaS CFP 006 · Challenge 17 (W7714-248676/017) · every Essential / Desired / cross-cutting outcome traced to implementing code and V&V evidence. Unclassified · representational.

Ref Type Challenge requirement Status Evidence (module · function) Maturity / notes
E1 Essential Software-based capability (standalone application, plug-in, middleware, or service) Met relay.MessageBridge (library) · relay_service.py (stdlib HTTP middleware) · console/index.html served at / Pure standard-library Python; no dependencies; runs air-gapped.
E2a Essential Supports operations across all domains (land, air, maritime, space, cyber) Met relay_catalogue.default_catalogue(): SITREP (all), CTC (air/maritime/space), FRAGO/MEDEVAC/CFF (land), SPACEEVT (space), CYBERINC (cyber), EMREP (land/air/maritime) Domain tags per message type; codecs are domain-agnostic.
E2b Essential …and functional services (C2, intelligence, logistics, medical, fires) Met service tags: C2 (SITREP, FRAGO) · INTEL (CTC, RFI, SPACEEVT, CYBERINC, EMREP) · FIRES (CFF) · MEDICAL (MEDEVAC) · LOGISTICS (LOGSTAT) Ten representational types; new types are catalogue data. Cyber incidents export/import as OASIS STIX 2.1 (stix_export.py).
E3a Essential Structured, standards-compliant messaging, e.g. MTF-XML Met (representational) mtf_codec.to_xml / from_xml — message→set→field XML binding, catalogue-validated; 10/10 lossless round-trips Structural model + binding aligned to the public USMTF dictionary (NIEM 6.0 mo-usmtf) in M1; a ratified APP-11/ADatP-3 baseline loads via Catalogue.from_json() only if access is arranged (no GFI — Q&A 13/45/77).
E3b Essential Data-exchange protocols, e.g. NIEM Met niem_adapter.to_niem / from_niem — NIEM 6.0 (OASIS PS02): nc:Document + usmtf:MessagePrecedenceCode / MessageSecurityClassificationCode + mo:Unit / mo:Track + NDR-pattern oakr: extension; validate_niem() against the OASIS schemas (9/9 valid); NIEMOpen cmftool x2m/mval/xval pass (docs/CMF_REPORT.md); iepd_manifest() Conformant to the published model; catalogue fields carry NIEM property mappings.
E3c Essential …e.g. NCDF (NATO Core Data Framework) Met (representational seam) ncdf_adapter.to_ncdf / from_ncdf (JSON) + to_ncdf_xml / from_ncdf_xml (NIEM-NDR-style XML per the documented NATO MTF→NCDF pattern) — entities/events/relationships + STANAG 4774-style label bound by SHA-256 (4778-style); tamper detected Ratified NCDF schemas not public; NATO MTF→NCDF work applies the NIEM methodology (public briefing), which this follows; vocabularies re-pointed in M1 (no GFI is furnished — Q&A 46/58).
E3d Essential Documented interfaces for importing, exporting and exchanging data using those standards Met docs/build_icd.py → ICD.md (endpoint table, schema summary, wire examples, IEPD manifest, bearer profiles); relay_service endpoints /ingest /export /bridge ICD generated from the running code so it cannot drift.
E4a Essential Configurable and modular Met one catalogue drives every codec; MessageBridge.register(name, enc, dec); tests register a new format without core change 300 format-pair translations verified in CI.
E4b Essential Supports Character-Oriented Information Exchange (COIE) processing Met coie.to_text / from_text — set/field slash-delimited text form; coie.xml_to_coie / coie_to_xml lossless transcoding on all 10 types Escaping, absent-field markers, repeatable sets, banner lines.
E4c Essential Designed for future extensibility (emerging / disruptive standards) Met Catalogue.from_json() — a new message type from a JSON file works in every codec (test_gfi_seam…); register() for new bindings Extensibility is data + registry, not code.
E5 Essential Documented interfaces and standards-based exchange for integration incl. experimentation, simulation, wargaming Met relay.picture_update() → tracks/alerts/taskings; relay.message_to_cot() (CoT 2.0; suite tactical_interop bridge to Link 16/DIS/VMF/NFFI/OTH-GOLD); ddil_transport.bench_jamming() seeded bearer model CoT events validate against the MITRE public-release CoT 2.0 schema (cot/); TAK protobuf via takproto; relayed both ways through a live third-party TAK server (taky). Demonstrated with OAK BMS / joint wargame seams; ICD §8.
E5b Essential RF data from a sensor receiver converted into the standardized, pan-domain C2 format Met (recorded captures) relay_sensor.read_xhdr / read_xdat / measure / emitter_report → EMREP (sensor + emitter sets); POST /sensor/ingest; docs/SENSOR_EVIDENCE.md Three recorded X-COM IQC5000 + Keysight N9030B captures measured by the bridge: a 1.5 GHz generator capture read blind as Barker-5 (+++−+, 200 ns chips, PW 1.008 µs, PRI 100.00 µs) and confirmed against the operator's setting; a 9.4 GHz scanning X-band radar (staggered PRI); an 8.5 GHz coherent train at 12 dB SNR — each reported, carried through every binding and the HF bearer, placed on the picture. Instrument models only; raw captures off the repository.
D1 Desired Operability in DDIL environments, with scalability Met (modelled bearers) ddil_transport.pack (82–292 B, ×4.1–12.0 vs XML), fragment/reassemble (MTU), PrecedenceQueue, StoreAndForward (selective repeat, pending), Channel/ber_under_jamming; bench(): 100 % to BER 1e-3 s5066.py models the STANAG 5066 service (AComP-5066 Ed A: SAP table, 2048-B MTU, ARQ/non-ARQ, TTL, HFCHAT/COSS) + s5066_wire.py SIS wire client; relay_link.py UDP link with receipts and multi-hop relay; relay_modem.py 2-FSK + FEC waveform (modem-in-the-loop 100 % HF delivery at Eb/N0 14 dB). Waveforms over real HF/UHF/SATCOM radios under emulated jamming in M2.
D2 Desired Enhanced UX: intuitive interfaces, multilingual, automation of routine workflows, decision aids Met console/index.html (EN/FR, draft→compose→send→inbox→picture→export→audit); message_extract.extract() (EN/FR, confidence, evidence, abstain, confirm); alert levels, precedence, bytes/airtime per format speech_front.py: Vosk offline STT (EN/FR) + spoken-form normaliser → same assured draft (ASR 0.92 → MEDEVAC 13/13); MGRS grids. Operator trials + accessibility review in M3.
D3 Desired Documented API to ≥1 service-management / monitoring platform Met (live collector verified) relay_service GET /metrics (Prometheus exposition), GET /integrations/splunk-hec, GET /integrations/servicenow/incidents (auto-opened from CRITICAL alerts) Push clients (relay_integrations.py) verified against a live Splunk-HEC-compatible collector (Vector): acknowledged, wrong token refused; ServiceNow Table API client against the mock receiver. Customer-instance Splunk/ServiceNow integration in M3.
D4 Desired Readiness for AI/ML integration: data fusion, intelligent prioritisation, decision support Met ExtractionResult contract (confidence, evidence, abstain, requires_confirmation); relay_audit.AuditChain; picture fusion; PrecedenceQueue; OAK ai_assurance/ai_calibration on-ramp Learned model plugs in behind the same contract (M3).
X1 Cross-cutting Sovereign Canadian IP, ITAR-free, Canadian Content ≥ 70 % Met 100 % OAK-developed in Canada; stdlib only; no US-origin export-controlled data CanCon certification in the form.
X2 Cross-cutting Integrity and auditability Met relay_audit.AuditChain (SHA-256 hash chain; edit/delete/reorder detected); ncdf_adapter.bind/verify ITSG-33 evidence + independent assessment in M4.
X3 Cross-cutting Verification & validation evidence Met 202 pytest tests; CI Ubuntu+Windows × Py 3.11/3.12; relay_vv.py 110/110 checks traced to EO/DO → RELAY_VV_REPORT.html; vignette.py → VIGNETTE.md; vv_independent.py clean-venv signed bundles Requirement-traced evidence artefact for TRL 5.

Summary: 12 Essential rows met (2 representational, aligned to public standards — no GFI; NIEM 6.0 validated against OASIS) · 4/4 Desired Outcomes addressed · 202 tests · 110/110 V&V checks · 300 format-pair translations · TRL 5.