manta-server 2.0.0-beta.62

Manta HTTP server — single API that proxies to CSM / Ochami backends.
docs.rs failed to build manta-server-2.0.0-beta.62
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

Library root for the manta-server crate.

manta-server is the Axum HTTPS service that brokers between manta-cli clients and the per-site backend implementations (CSM via csm-rs, OpenCHAMI via ochami-rs). Requests arrive at the [server] module's handlers, which delegate to the [service] layer, which in turn dispatches to the chosen backend through [dispatcher::StaticBackendDispatcher] and the trait impls under [backend_dispatcher].

Layering

The crate enforces a strict three-tier shape (see CLAUDE.md for the canonical statement of the rule):

  1. HTTP layer — [server]: Axum handlers, routing, middleware, request/response wire types. Handlers MUST only call functions in [service] (or shared helpers in manta-shared), never the backend directly.
  2. Service layer — [service]: pure business logic + access control, parameterised on a borrowed InfraContext<'_>. All fallible paths return [manta_backend_dispatcher::error::Error].
  3. Backend layer — [dispatcher] + [backend_dispatcher]: the StaticBackendDispatcher enum routes each trait method to the active CSM or OCHAMI backend.

[wire_conv] sits at the service boundary and maps the MantaError produced by manta-shared helpers onto the structured BackendError the service layer uses.

Configuration

Server-side configuration lives in [config::ServerConfiguration] and is loaded once at startup from ~/.config/manta/server.toml. Each request carries an X-Manta-Site header that picks which configured site's backend to dispatch through.

Entry points

The main.rs binary is a thin bootstrap shim that loads config, constructs the per-site backends, and hands off to the router built in [server]. Integration tests under crates/manta-server/tests/ import the library directly via use manta_server::....