MIP4-IES / MIM C2 Object Custody
This blueprint describes how nats-sinks can persist custody records for
externally normalized C2 object exchange events derived from MIP4-IES or MIP
Information Model concepts.
nats-sinks is not a MIP4-IES service endpoint, MIP REST implementation, MIM
schema implementation, coalition C2 service, semantic validator, tactical
graphics renderer, or APP-6 implementation. A dedicated external adapter owns
standards-specific exchange, schema validation, semantic mapping,
authorization, and redaction.
flowchart LR
C2[C2 system or exchange service] --> Adapter[External MIP adapter]
Adapter --> JS[NATS JetStream]
JS --> Sink[nats-sinks]
Sink --> Store[Durable custody store]
Object Event Examples
{
"event_id": "synthetic-c2-object-0001",
"operation": "upsert",
"object_id": "object-placeholder-001",
"object_type": "generic-object",
"object_version": 3,
"source_system": "c2-adapter-placeholder",
"owner": "owner-placeholder",
"correlation_id": "correlation-placeholder-003",
"event_time": "2026-05-31T10:20:00Z",
"receive_time": "2026-05-31T10:20:01Z",
"schema_profile": "c2-object-event",
"schema_version": 1,
"payload_sha256": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"normalized_payload": {
"synthetic": true,
"status": "current",
"attributes": {
"placeholder": "value"
}
},
"classification": "NATO UNCLASSIFIED",
"security_labels": {
"profile": "example-security-label-v1",
"handling": "synthetic-only"
},
"data_quality": {
"confidence": 0.8,
"quality_source": "external-adapter-placeholder"
}
}
Relationship changes and tombstones should use the same generic envelope with
operation values such as relationship_upsert or tombstone, plus stable
relationship or object identifiers.
When To Use This Blueprint
Use this pattern for lower-frequency object custody, versioning, and relationship evidence. Use the NFFI / FFTS tracking custody blueprint for high-frequency tracking or position-update custody.
Persistence Guidance
Persist object identifiers, versions, relationship identifiers, schema profile, source system, owner, event time, receive time, correlation ID, and payload hash as searchable metadata where needed. Store profile-specific object content in JSON and use idempotent upsert or no-op behavior on redelivery.