pub enum PreopenSurface {
WholeWorkdir,
ScopedSubtree,
Nothing,
RecordsHooks,
}Expand description
The filesystem surface one artifact’s guest is preopened into, as a stable wire name.
The three values are the whole space: a WASI guest either holds a directory descriptor for the
accessible workdir, holds one for a subtree of it, or holds none at all. Which one an entry
resolves to is decided by its role and its capabilities.filesystem.scope in
crate::network_policy::preopen_reports; the baselines the two roles start from are
[crate::network_policy::ToolCapabilityGrant] and
[crate::network_policy::HookCapabilityGrant].
Variants§
WholeWorkdir
The entire accessible workdir, preopened as "." with FsPerms::ReadWrite. The wide
default a runtime: tool or runtime: driver entry with no
capabilities.filesystem.scope resolves to — see
[crate::network_policy::ToolCapabilityGrant] for the threat that default is chosen
against and the threat it is not.
ScopedSubtree
<accessible workdir>/<scope> and nothing above it, preopened as "." with the same
rights. What a declared capabilities.filesystem.scope resolves to, whatever the role.
Nothing
No preopened directory of any kind, so the guest holds no wasi:filesystem descriptor. The
default-deny baseline a runtime: hook entry with no capabilities.filesystem.scope
resolves to — see [crate::network_policy::HookCapabilityGrant].
RecordsHooks
The session’s records directory’s hooks/ and nothing else, preopened as "."
read-write: what a runtime: hook entry declaring capabilities.filesystem.records: true
resolves to, in place of a workdir scope.
Trait Implementations§
Source§impl Clone for PreopenSurface
impl Clone for PreopenSurface
impl Copy for PreopenSurface
Source§impl Debug for PreopenSurface
impl Debug for PreopenSurface
impl Eq for PreopenSurface
Source§impl PartialEq for PreopenSurface
impl PartialEq for PreopenSurface
Source§impl Serialize for PreopenSurface
impl Serialize for PreopenSurface
impl StructuralPartialEq for PreopenSurface
Auto Trait Implementations§
impl Freeze for PreopenSurface
impl RefUnwindSafe for PreopenSurface
impl Send for PreopenSurface
impl Sync for PreopenSurface
impl Unpin for PreopenSurface
impl UnsafeUnpin for PreopenSurface
impl UnwindSafe for PreopenSurface
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more