Imp.Execution (Imp v0.5.0)

Copy Markdown View Source

Explicit, protocol-neutral capabilities for one program execution.

Imp.call/2 remains the final-result contract. Hosts that need a per-run security decision use Imp.start_run/3 with :authorize; Imp.Run then passes this value through Imp.Module.execute/3 to runtimes that support the capability. Authority is never recovered from telemetry or the ambient run event context.

Summary

Functions

Returns whether this execution requires an authorization-aware module.

Types

decision()

@type decision() :: :allow | {:deny, term()} | {:cancel, term()}

t()

@type t() :: %Imp.Execution{
  authorization_timeout: pos_integer(),
  authorize: (Imp.Execution.Authorization.t() -> decision()) | nil,
  decision_owner: pid() | nil,
  run_id: String.t()
}

Functions

authorization_required?(execution)

Returns whether this execution requires an authorization-aware module.