Thin concrete struct (not a trait) holding Arc<OperationRegistry> + Arc<dyn IdentityProvider>. Exposes resolve_bearer() (delegates to identity_provider.resolve_from_token) and invoke() which builds a root OperationContext for wire-ingress (internal: false, forwarded_for: None, fresh UUID v4 request_id, deadline now+30s) carrying the registration bundle's composition_authority/capabilities/scoped_env, then calls OperationRegistry::invoke. Dispatches services/list and services/schema unchanged (registered ops); AccessControl filtering in services/list sees the caller's resolved identity. Re-exported from lib.rs. Duplicates Dispatcher::build_root_context construction (the alknet-call version is pub(crate) and tangled with CallConnection peer/session overlays); the invariants (internal: false, forwarded_for: None) are the load-bearing part and identical to the wire-ingress path.
9 lines
327 B
Rust
9 lines
327 B
Rust
//! Gateway: shared dispatch spine (`GatewayDispatch`) and error mapping.
|
|
//!
|
|
//! The 5 fixed gateway endpoints (`/search`, `/schema`, `/call`, `/batch`,
|
|
//! `/subscribe`) are the sole HTTP invoke path (ADR-042/047). See
|
|
//! `docs/architecture/crates/http/http-server.md`.
|
|
|
|
pub mod dispatch;
|
|
|
|
pub use dispatch::GatewayDispatch; |