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
-
SandboxPolicy( profile: ExecutionProfile, budget: ResourceBudget, abilities: capability.Policy, direct_host_ffi: Bool, native_jets: Bool, external_executor: option.Option(ExternalExecutor), )
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