Skip to main content

Module flow

Module flow 

Source
Expand description

Information-flow admission gate + tool-label loading (EPIC A / A3+A4).

car_verify::check_information_flow is a verified static check for data exfiltration and forbidden tool orderings, but it was never called by the runtime, and it needs per-tool labels (capability, confidentiality, trust, sink) that nothing produced. This module supplies both halves:

  • A3 — labels: a built-in default label table for CAR’s commodity tools, plus a .car/tool-labels.json loader so a project can declare which tools are sinks, which produce confidential data, and what tool orderings are forbidden.
  • A4 — the gate: InformationFlowGate, an crate::admission::AdmissionGate that runs check_information_flowgate_flow on every admitted proposal, blocking exfiltration and escalating forbidden orderings to approval (which fails closed until A7 wires the approval transport).

Structs§

FlowLoadError
Error raised while loading .car/tool-labels.json.
InformationFlowGate
An AdmissionGate that enforces information-flow safety: confidential data must not reach an exfiltration sink, and forbidden tool orderings are escalated to human approval.
ToolLabelConfig
The deserialized .car/tool-labels.json document: per-tool labels plus the flow policy (what counts as a hazard) and the gate policy (what to do about each hazard class). Every field defaults, so a partial file is valid.

Constants§

NET_SEND
The capability that marks a tool as reaching the network.

Functions§

builtin_tool_labels
Default information-flow labels for CAR’s built-in commodity tools.
load_tool_labels
Load tool labels for a project, merging .car/tool-labels.json with the built-in defaults.
tool_output_is_external
Whether a tool’s output should be treated as coming from outside the trust boundary (car#723).