Collects decoded external values crossing storage or process boundaries.
Summary
Functions
Collects boundary-crossing evidence from all source files in a project.
Returns whether boundary evidence has enough fixed-key consumers for policy promotion.
Returns whether a fact preserves a sandbox payload or transient wire envelope.
Types
@type environment() :: %{ optional(atom() | {:reach, :state_callback}) => taint() | {atom(), non_neg_integer()} }
@type taint() :: [Reach.Evidence.ExternalDataBoundary.Origin.t()]
Functions
@spec collect_project(Reach.Project.t()) :: [ Reach.Evidence.ExternalDataBoundary.Fact.t() ]
Collects boundary-crossing evidence from all source files in a project.
@spec fixed_contract?(Reach.Evidence.ExternalDataBoundary.Fact.t(), pos_integer()) :: boolean()
Returns whether boundary evidence has enough fixed-key consumers for policy promotion.
@spec transport_envelope?(Reach.Evidence.ExternalDataBoundary.Fact.t()) :: boolean()
Returns whether a fact preserves a sandbox payload or transient wire envelope.