Skip to main content

Crate nucleus_flow_projection

Crate nucleus_flow_projection 

Source
Expand description

§nucleus-flow-projection — IFC FlowTracker adapter for the substrate

Implements the Flow projection functor from nucleus_substrate_core: lifts a Denning-lattice flow-graph snapshot into the typed body of a Projection::Flow variant.

§What goes in the body

Only the snapshot summary — node count, the session’s confidentiality / integrity / authority ceilings, the Adversarial-bid flag (G8). The full FlowTracker DAG stays server-side; if external verifiers want it, they ask for it separately. The receipt’s job is to commit to the summary so that downstream consumers can refuse to act on a session whose integrity ceiling is Adversarial.

§Why this crate has no nucleus-ifc dependency

nucleus-ifc and portcullis-core are vendored in the umbrella workspace; they aren’t published. The flow projection’s wire format is pure data — strings + ints + bools — so the lifter defines its own typed body and the server (which DOES have nucleus-ifc) is responsible for converting FlowTrackerFlowBody. That keeps the lifter publishable without transitively pulling vendored deps.

§Wire shape

{
  "kind": "flow",
  "body": {
    "version": 1,
    "node_count": 4,
    "session_confidentiality_ceiling": "internal",
    "session_integrity_ceiling": "adversarial",
    "session_authority_ceiling": "no_authority",
    "session_taint_ceiling": "ai_generated",
    "has_adversarial_bid": true,
    "has_ai_derived": true,
    "has_confidential_data": false
  }
}

Structs§

FlowBody
Wire-stable shape for the Flow projection body.

Enums§

FlowVerifyError

Constants§

AUTHORITY_LEVELS
CONF_LEVELS
Snake_case strings for the four lattice levels. Stable wire values — see the corresponding *_LEVELS constants below.
FLOW_BODY_VERSION
INTEG_LEVELS
TAINT_LEVELS

Functions§

flow_projection
Build a Projection::Flow carrying the supplied snapshot.
verify_flow_projection_shape
Verify that a FlowBody is well-formed: version matches the lifter’s, lattice-level strings are in their stable vocabularies, the “any-X” flags are consistent with the ceiling levels.