gleamunison/sandbox_policy

Types

pub type BoundaryRefusal {
  MissingExternalExecutor
  DirectHostFfiDenied
  NativeJetDenied
  InvalidResourceBudget
}

Constructors

  • MissingExternalExecutor
  • DirectHostFfiDenied
  • NativeJetDenied
  • InvalidResourceBudget
pub type ExecutionProfile {
  Local
  AuthenticatedRemote
  UntrustedExecution
}

Constructors

  • Local
  • AuthenticatedRemote
  • UntrustedExecution
pub type ExternalExecutor {
  ExternalExecutor(
    name: String,
    launcher: fn(String, ResourceBudget) -> Result(String, String),
  )
}

Constructors

  • ExternalExecutor(
      name: String,
      launcher: fn(String, ResourceBudget) -> Result(String, String),
    )
pub type ResourceBudget {
  ResourceBudget(
    deadline_ms: Int,
    max_processes: Int,
    max_memory_bytes: Int,
    max_reductions: Int,
    max_concurrency: Int,
  )
}

Constructors

  • ResourceBudget(
      deadline_ms: Int,
      max_processes: Int,
      max_memory_bytes: Int,
      max_reductions: Int,
      max_concurrency: Int,
    )
pub type SandboxPolicy {
  SandboxPolicy(
    profile: ExecutionProfile,
    budget: ResourceBudget,
    abilities: capability.Policy,
    direct_host_ffi: Bool,
    native_jets: Bool,
    external_executor: option.Option(ExternalExecutor),
  )
}

Constructors

Values

pub fn admit(
  policy: SandboxPolicy,
) -> Result(SandboxPolicy, BoundaryRefusal)
pub fn authenticated_remote(
  abilities: capability.Policy,
) -> SandboxPolicy
pub fn capability_refusals(
  policy: SandboxPolicy,
  denied: List(String),
) -> List(String)
pub fn default_budget() -> ResourceBudget
pub fn execute(
  policy: SandboxPolicy,
  input: String,
) -> Result(String, String)
pub fn local(abilities: capability.Policy) -> SandboxPolicy
pub fn profile_denies_host_authority(
  policy: SandboxPolicy,
) -> Bool
pub fn profile_name(profile: ExecutionProfile) -> String
pub fn refusal_name(refusal: BoundaryRefusal) -> String
pub fn require_no_host_authority(
  keys: List(String),
) -> Result(Nil, String)
pub fn untrusted(
  abilities: capability.Policy,
  external_executor: option.Option(ExternalExecutor),
) -> SandboxPolicy
✨ Search Document