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.