Skip to main content

Capability

Enum Capability 

Source
#[non_exhaustive]
pub enum Capability {
Show 39 variants Network { allow: Vec<SmolStr>, }, Filesystem { read: Vec<SmolStr>, write: Vec<SmolStr>, }, HostQuery { read_only: bool, scopes: Vec<SmolStr>, }, Kms { key_ids: Vec<SmolStr>, }, Secret { ids: Vec<SmolStr>, }, Lock { granularity: LockGranularity, }, Config { keys: Vec<SmolStr>, }, PluginStorage, ScalarFn, AggregateFn, WindowFn, Procedure, ProcedureWrites, ProcedureSchema, ProcedureDbms, LocyAggregate, LocyPredicate, Operator, Index, Storage, Algorithm, Crdt, Hook, Trigger, BackgroundJob { max_concurrent: u32, }, Type, Auth, Authz, Connector, Collation, Cdc, Catalog, PluginDeclare, MemoryBytes(u64), FuelPerCall(u64), WallClockMillisPerCall(u64), ConcurrentInstances(u32), TotalMemoryBytes(u64), MaxResultRows(u64),
}
Expand description

A single permission grant.

Capability is the leaf node of the permission model. A CapabilitySet is a collection of capabilities.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Network

HTTP / TCP egress; allow-list of URI patterns.

Fields

§allow: Vec<SmolStr>

Glob patterns of permitted URIs (https://api.example/**). Defaults to empty (deny-all) so a bare "network" declaration grants no egress until patterns are specified.

§

Filesystem

Filesystem read / write access with per-direction path patterns.

Fields

§read: Vec<SmolStr>

Glob patterns of readable paths (empty = deny-all).

§write: Vec<SmolStr>

Glob patterns of writable paths (empty = deny-all).

§

HostQuery

Invoking Cypher / Locy queries back into the host session.

Fields

§read_only: bool

If true, only read queries are permitted.

§scopes: Vec<SmolStr>

Optional scope-restriction (label / edge-type prefixes).

§

Kms

KMS access for sign / verify operations.

Fields

§key_ids: Vec<SmolStr>

Permitted key identifiers (empty = deny-all).

§

Secret

Acquiring named secret handles (opaque to the plugin).

Fields

§ids: Vec<SmolStr>

Permitted secret identifiers (empty = deny-all).

§

Lock

Explicit lock primitives (host.lock_nodes, host.lock_edges).

Fields

§granularity: LockGranularity

Granularity of locks permitted.

§

Config

Scoped configuration K/V access (host.config_get).

Fields

§keys: Vec<SmolStr>

Patterns of permitted config keys (empty = deny-all).

§

PluginStorage

Per-plugin K/V store (scoped namespace).

§

ScalarFn

Register Cypher scalar functions.

§

AggregateFn

Register Cypher aggregate functions.

§

WindowFn

Register Cypher window functions.

§

Procedure

Register Cypher procedures (read-only mode).

§

ProcedureWrites

Register procedures that may mutate the graph.

§

ProcedureSchema

Register procedures that may issue DDL.

§

ProcedureDbms

Register administrative procedures.

§

LocyAggregate

Register Locy aggregate functions.

§

LocyPredicate

Register Locy predicates (including neural).

§

Operator

Register physical operators / optimizer rules.

§

Index

Register index kinds.

§

Storage

Register storage backends by URI scheme.

§

Algorithm

Register graph algorithms.

§

Crdt

Register CRDT kinds.

§

Hook

Register session / query lifecycle hooks.

§

Trigger

Register fine-grained mutation triggers.

§

BackgroundJob

Register background / scheduled jobs.

Fields

§max_concurrent: u32

Maximum concurrent invocations of this plugin’s jobs.

§

Type

Register logical (Arrow extension) types.

§

Auth

Register authentication providers.

§

Authz

Register authorization policies.

§

Connector

Register wire / connector protocols.

§

Collation

Register collations (sort orders).

§

Cdc

Register CDC output sinks.

§

Catalog

Register catalogs / virtual schemas.

§

PluginDeclare

Authority to call meta-procedures (uni.plugin.declare*).

§

MemoryBytes(u64)

Maximum wasm linear memory per instance.

§

FuelPerCall(u64)

Maximum wasmtime fuel per call.

§

WallClockMillisPerCall(u64)

Maximum wall-clock milliseconds per call.

§

ConcurrentInstances(u32)

Maximum concurrent instances in the wasm pool.

§

TotalMemoryBytes(u64)

Maximum total memory across all instances.

§

MaxResultRows(u64)

Cap on rows yielded by a procedure.

Implementations§

Source§

impl Capability

Source

pub fn network_allows(&self, url: &str) -> bool

True if this is a Capability::Network grant whose allow-list matches url.

Used for layer-3 (call-time) attenuation of uni.http.* host fns: a granted Network { allow } only permits URLs matching one of its patterns. Non-Network capabilities never match.

Source

pub fn kms_allows(&self, key_id: &str) -> bool

True if this is a Capability::Kms grant permitting key_id.

Source

pub fn secret_allows(&self, id: &str) -> bool

True if this is a Capability::Secret grant permitting id.

Source

pub fn filesystem_read_allows(&self, path: &str) -> bool

True if this is a Capability::Filesystem grant whose read allow-list matches path.

Patterns are matched with wildcard_match (path-opaque — * and ** both span /), which suits the /data/**-style grants in use.

Source

pub fn filesystem_write_allows(&self, path: &str) -> bool

True if this is a Capability::Filesystem grant whose write allow-list matches path.

Trait Implementations§

Source§

impl Clone for Capability

Source§

fn clone(&self) -> Capability

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Capability

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Capability

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for Capability

Source§

impl Ord for Capability

Source§

fn cmp(&self, other: &Capability) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 (const: unstable) · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 (const: unstable) · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for Capability

Source§

fn eq(&self, other: &Capability) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for Capability

Source§

fn partial_cmp(&self, other: &Capability) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Serialize for Capability

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Capability

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> DynEq for T
where T: Eq + Any,

Source§

fn dyn_eq(&self, other: &(dyn Any + 'static)) -> bool

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> PluginState for T
where T: Send + Sync + 'static,

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more