Skip to content

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.