pub fn project_gateway_action_catalog(
provider_id: impl Into<String>,
title: impl Into<String>,
actions: &GatewayActionCatalog,
) -> Result<ProviderCatalog, ProviderIdError>Expand description
Projects soma-gateway’s own admin action catalog into a
soma_provider_core::ProviderCatalog, so a host can advertise gateway
administration (list/add/remove/reload upstreams, OAuth lifecycle, …)
through the same drop-in-provider-shaped surface as every other adapter
in this crate.
This is a pure catalog projection, not a wired dispatcher: this crate
has no call() implementation that dispatches through a live
soma_gateway manager instance — crates/soma/runtime constructs the
live GatewayProductState/GatewayManager and crates/soma/integrations
wires it to SomaApplication’s gateway port, but neither routes back
through this projection. Wiring this catalog to a live dispatcher is
deferred to whichever product integration crate needs a drop-in-provider
view of gateway administration (tracked as a PR10 follow-up) — see the
module-level deviation notes.
Returns Err if provider_id is not a valid ProviderId (lowercase,
[a-z0-9-_], no leading/trailing/doubled separators) rather than
panicking — this is a pub fn in a shared library crate and provider_id
may come from caller-supplied configuration, not only compile-time
literals.