MARS documentation
Rust librariesmars-serverMiddleware

mars-server · middleware::auth

Public declarations and documentation for mars-server::middleware::auth.

Package: mars-server · Workspace version: 0.1.0 · Module: middleware::auth

This reference follows declared modules and public syntax, including public implementation methods. Function bodies and constant values are omitted. Feature conditions are retained. Private-module re-exports and trait resolution require the compiler; not every declaration is a root import.

middleware::auth::MutationContext

Authenticated, route-scoped idempotency context injected into mutation handlers. No actor identity is sourced from the request body.

#[derive(Debug, Clone)]
pub struct MutationContext {
pub route: &'static str,
pub key: String,
pub request_hash: String,
pub expires_at: chrono::DateTime<chrono::Utc>
}

Source line: 30.

middleware::auth::MutationContext::entry_projection_response

Reserve a response reconstructed from the authoritative entry projection after the transaction assigns its registry sequence.

Use only for commands whose successful response body is exactly the committed [mars_protocol::MarsEntry].

#[must_use]
pub fn entry_projection_response(&self, status: u16) -> IdempotencyRequest;

Source line: 44.

middleware::auth::MutationContext::stored_response

Reserve the exact serialized status, content type, and body supplied.

Use for every response that cannot be reconstructed solely from a committed entry projection.

#[must_use]
pub fn stored_response(&self, response: StoredHttpResponse) -> IdempotencyRequest;

Source line: 59.

middleware::auth::CapabilityRequirement

State supplied to one route's capability middleware.

#[derive(Clone)]
pub struct CapabilityRequirement {

}

Source line: 72.

middleware::auth::CapabilityRequirement::for_mutation

pub fn for_mutation(
        app: Arc<AppState>,
        capability: Capability,
        route: &'static str,
        action: AuditAction,
    ) -> Self;

Source line: 80.

middleware::auth::ReadCapabilityRequirement

State supplied to capability-protected read middleware.

#[derive(Clone)]
pub struct ReadCapabilityRequirement {

}

Source line: 97.

middleware::auth::ReadCapabilityRequirement::new

pub fn new(app: Arc<AppState>, capability: Capability) -> Self;

Source line: 103.

middleware::auth::require_capability

Resolve a session and require one explicit capability.

On success the provider-neutral [crate::auth::Principal] is inserted into request extensions. Missing/invalid sessions return MARS-006; valid sessions that lack the route capability return MARS-007.

pub async fn require_capability(
    State(requirement): State<CapabilityRequirement>,
    request: Request,
    next: Next,
) -> Response;

Source line: 113.

middleware::auth::require_read_capability

Require a capability for a protected read without imposing mutation idempotency semantics.

pub async fn require_read_capability(
    State(requirement): State<ReadCapabilityRequirement>,
    mut request: Request,
    next: Next,
) -> Response;

Source line: 332.

middleware::auth::require_operator_capability

Backward-compatible operator-read middleware entry point.

pub async fn require_operator_capability(
    requirement: State<ReadCapabilityRequirement>,
    request: Request,
    next: Next,
) -> Response;

Source line: 371.

Source provenance

Source: mars-server/src/middleware/auth.rs · SHA-256 d1251767a7b7198e780cbc4ca86a9de7504daafb9a62f43d240970d00a28e61b. Package overview.

On this page