Skip to content

OrbitFabric v0.3.0 — Data Product and Storage Contracts

Status: development preview
Release type: model and documentation release
Primary focus: Data Product and Storage Contracts

Summary

OrbitFabric v0.3.0 introduces the first Data Product and Storage Contract slice.

This release extends the Mission Data Contract beyond payload behavior and into the first concrete layer of the Mission Data Chain:

Payload Contract
        -> Data Product Contract
        -> Storage Intent
        -> Downlink Intent

The main result is that OrbitFabric can now describe optional mission data products produced by payloads or subsystems, validate them structurally and semantically, generate documentation for them and demonstrate them in the synthetic demo-3u mission.

Highlights

  • Optional mission/data_products.yaml model domain.
  • DataProductContract model.
  • Data product producer references.
  • Data product type support.
  • Estimated data product size.
  • Data product priority.
  • Storage intent.
  • Storage class.
  • Retention intent.
  • Overflow policy.
  • Downlink intent.
  • Downlink policy.
  • Semantic lint rules for data products.
  • Generated data_products.md documentation.
  • Invalid data product fixtures and tests.
  • Synthetic demo mission data product.
  • ADR-0008 for Data Product and Storage Contracts.

What Data Product Contracts Describe

Data Product Contracts may describe:

  • data product identity;
  • producer reference;
  • producer type;
  • optional payload reference;
  • product type;
  • estimated size;
  • priority;
  • storage class;
  • retention intent;
  • overflow policy;
  • downlink intent.

What Data Product Contracts Do Not Describe

Data Product Contracts do not describe:

  • real onboard storage runtime;
  • file-system implementation;
  • compression engines;
  • payload data processing pipelines;
  • physical payload simulation;
  • contact window modeling;
  • RF link modeling;
  • downlink runtime;
  • ground segment implementation;
  • runtime skeleton generation.

Demo Mission Addition

The synthetic demo-3u mission now includes one clean-room data product:

data_products:
  - id: payload.radiation_histogram
    producer: demo_iod_payload
    producer_type: payload
    type: histogram
    estimated_size_bytes: 4096
    priority: high
    storage:
      class: science
      retention: 7d
      overflow_policy: drop_oldest
    downlink:
      policy: next_available_contact

This demonstrates the relationship between a payload contract, a produced mission-data object, storage intent and downlink intent.

Positioning

OrbitFabric remains a Mission Data Contract framework.

This release does not turn OrbitFabric into:

  • a flight software framework;
  • an onboard storage runtime;
  • a payload processing pipeline;
  • a physical simulator;
  • a ground segment;
  • a CCSDS/PUS/CFDP implementation;
  • a runtime code generator.

Compatibility

OrbitFabric is still pre-1.0.

The Mission Model, Payload Contract Model and Data Product Contract Model may evolve before v1.0.

Verification

Expected verification commands:

ruff check .
pytest
mkdocs build --strict

The demo mission should also pass:

orbitfabric lint examples/demo-3u/mission/
orbitfabric gen docs examples/demo-3u/mission/
orbitfabric sim examples/demo-3u/scenarios/battery_low_during_payload.yaml