NFFI / FFTS / STANAG 5527 / ADatP-36 Tracking Custody
This blueprint describes a safe custody model for externally normalized
Friendly Force Tracking / Friendly Force Information events. A gateway or C2
adapter owns ADatP-36, NFFI, FFTS, FFI, and terminal-specific behavior.
nats-sinks persists normalized tracking events after they are authorized and
published to JetStream.
flowchart LR
Source[Tracking source or terminal] --> Adapter[External NFFI / FFI adapter]
Adapter --> JS[NATS JetStream]
JS --> Sink[nats-sinks]
Sink --> Store[Oracle / file / object sink]
Store --> Audit[Custody / replay / reporting]
Synthetic Tracking Event
{
"event_id": "synthetic-track-0001",
"source_gateway": "tracking-gateway-placeholder",
"source_system": "tracking-adapter-placeholder",
"tracking_profile": "synthetic-ffts",
"tracking_profile_version": 1,
"track_id": "track-placeholder-001",
"friendly_track_id": "friendly-placeholder-001",
"unit_reference": "unit-placeholder",
"position_reference": "redacted-grid-placeholder",
"position_quality": "reduced-precision",
"event_time": "2026-05-31T10:30:00Z",
"receive_time": "2026-05-31T10:30:02Z",
"correlation_id": "correlation-placeholder-004",
"sequence": "tracking-sequence-001",
"payload_sha256": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"raw_payload_reference": "artifact://synthetic/tracking/0001",
"normalized_payload": {
"synthetic": true,
"status": "active",
"precision_category": "reduced"
},
"classification": "NATO UNCLASSIFIED",
"labels": ["synthetic", "tracking", "custody"],
"security_labels": {
"profile": "example-security-label-v1",
"handling": "synthetic-only"
},
"mission_metadata": {
"profile": "tracking-fix-event",
"profile_version": 1
},
"data_quality": {
"timeliness": 0.9,
"confidence": 0.75
},
"schema_profile": "tracking-fix-event",
"schema_version": 1
}
Operational Guidance
- Treat tracking metadata as sensitive even when examples are unclassified.
- Prefer reduced precision, redacted position references, or external artifact references where policy requires.
- Use idempotency keys based on
source_system,track_id,sequence,event_time, andpayload_sha256. - Preserve event time and receive time separately.
- Do not assume total ordering across gateways; query by explicit timestamps and sequence metadata when reconstructing custody.
Boundaries
This page does not implement NFFI, FFTS, ADatP-36, FFI MTF, APP-11, terminal protocols, tactical track fusion, routing, targeting, or operational movement analysis.