Skip to main content

Middleware

Struct Middleware 

Source
pub struct Middleware {
Show 22 fields pub authz: Option<Arc<dyn Authorizer>>, pub auth: Dispatcher, pub auditor: Option<Arc<dyn Auditor>>, pub activity: Option<Arc<dyn ActivityEmitter>>, pub app_id: String, pub default_auth_provider: String, pub output_format: String, pub env: String, pub verbose: String, pub dry_run: bool, pub fields: String, pub filter: String, pub expr: String, pub limit: i64, pub offset: i64, pub reason: String, pub schema: bool, pub timeout: Option<Duration>, pub debug: String, pub search: String, pub schema_registry: SchemaRegistry, pub human_views: HumanViewRegistry,
}
Expand description

Cross-cutting command execution state and dependencies.

Middleware is intentionally a plain, cloneable struct so tests and command handlers can inspect what will be used for a run. Application setup usually mutates it through CliConfig hooks or ModuleContext.

Fields§

§authz: Option<Arc<dyn Authorizer>>

Optional authorization provider.

§auth: Dispatcher

Auth provider dispatcher.

§auditor: Option<Arc<dyn Auditor>>

Optional audit sink.

§activity: Option<Arc<dyn ActivityEmitter>>

Optional activity sink.

§app_id: String

Application id used in output metadata.

§default_auth_provider: String

Fallback auth provider for commands without an explicit provider.

§output_format: String

Output format: json, human, or toon.

§env: String

Selected environment.

§verbose: String

Metadata verbosity selector.

§dry_run: bool

Whether mutating commands should short-circuit.

§fields: String

User field projection.

§filter: String

JMESPath per-item list predicate.

§expr: String

JMESPath whole-result expression.

§limit: i64

Client-side page size.

§offset: i64

Client-side page offset.

§reason: String

User reason passed to authorization and audit.

§schema: bool

Whether schema rendering was requested.

§timeout: Option<Duration>

Optional command deadline.

§debug: String

Debug selector, interpreted by applications.

§search: String

Search query, interpreted before command execution.

§schema_registry: SchemaRegistry

Output schema registry.

§human_views: HumanViewRegistry

Human output view registry.

Implementations§

Source§

impl Middleware

Source

pub fn new() -> Self

Creates middleware with empty registries and default dependencies.

Source

pub async fn run<F, Fut, Output>( &self, request: MiddlewareRequest<'_>, command: F, ) -> Result<MiddlewareOutput>
where F: FnOnce(Option<Credential>) -> Fut + Send, Fut: Future<Output = Result<Output>> + Send, Output: Into<CommandResult>,

Runs the middleware chain for a command.

Trait Implementations§

Source§

impl Clone for Middleware

Source§

fn clone(&self) -> Middleware

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 Middleware

Source§

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

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

impl Default for Middleware

Source§

fn default() -> Middleware

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

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<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<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: 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: 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> 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<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