Loading…
Loading…
Use the SOAP Broker direction to gain observability and access control for existing SOAP services without modifying the contract or message payload.
The SOAP Broker direction configures the platform to act as a passthrough proxy for an existing SOAP service. In this mode, the platform receives a SOAP request, forwards the identical request to the designated backend, and returns the backend's response to the original caller, all without transformation.
The primary purpose of the SOAP Broker is to provide visibility and control over existing SOAP traffic. By routing calls through the platform, API publishers gain access to traffic logs, per-operation metrics, and access control policies for services that they are not yet ready to modernize or modify. This allows for gathering baseline usage data, enforcing security, and gaining operational insight into legacy systems.
The SOAP Broker is one of three operational "directions" for a service, configured during onboarding. It is distinct from the Publish direction (which creates a REST facade for a SOAP backend) and the Consume direction (which creates a SOAP facade for a REST backend).
Use the SOAP Broker direction when the service contract must remain unchanged. Common scenarios include:
If the goal is to expose a SOAP backend via a modern REST/OpenAPI interface, use the Publish direction instead. If a backend has been migrated to REST and legacy SOAP clients must continue to function, use the Consume direction.
The SOAP Broker forwards messages byte-for-byte. It does not parse and re-serialize the SOAP envelope, ensuring that the message content, structure, and encoding are preserved exactly as sent by the consumer.
The following sequence diagram illustrates the data flow for a single request:
sequenceDiagram
participant Consumer as API Consumer
participant Broker as Platform (SOAP Broker)
participant Backend as SOAP Backend
Consumer->>+Broker: SOAP Request (with Consumer Auth)
Note over Broker: Strips inbound Authorization header
Note over Broker: Adds configured backend credential
Note over Broker: Adds/Propagates Correlation ID
Broker->>+Backend: SOAP Request (byte-for-byte body)
Backend-->>-Broker: SOAP Response / Fault
Broker-->>-Consumer: SOAP Response / Fault (with Correlation ID)The broker is designed to be transparent to the message payload and most metadata.
| Element | Treatment |
|---|---|
| SOAP body bytes | Preserved byte-for-byte. The bytes received are the bytes forwarded. |
SOAPAction header | Forwarded verbatim, including any original quoting. |
Content-Type header | Forwarded verbatim, including SOAP 1.2 action=, charset=, and MTOM type=, start=, and boundary= parameters. |
| MTOM / XOP multipart | All parts, boundaries, and part headers are forwarded verbatim. Attachments are never inlined or rewritten. |
| Unrecognized SOAP headers | Security, addressing, and custom headers pass through as opaque bytes and are not interpreted by the broker. |
| SOAP faults | A fault from the backend is treated as a normal response. The original HTTP status and fault payload are returned to the caller without modification. |
Two specific modifications are intentionally made to every request and response:
Authorization header from the API consumer is always stripped. The platform then inserts the backend credential configured for the service. This prevents a consumer from presenting its own credentials directly to the backend system.By routing traffic through the platform, a brokered service gains access to standard operational features:
Operation identity is determined primarily from the SOAPAction header. If this header is not present, the platform performs a bounded read of the beginning of the message to identify the operation by the name of the first element inside the SOAP body. This read does not alter the forwarded message bytes.
The broker can enforce access control for backend services that may lack it. Each brokered service is configured with one of two access modes:
IMPORTANT
The restricted mode (Only the addresses I grant) is fail-closed. Activating this mode with an empty grant list will deny all calls to the service. Access must be explicitly granted.
NOTE
Prerequisite for IP-based grants: To accurately identify callers, the platform must first be aware of any load balancers or proxies in the network topology. This is typically configured automatically from the deployment's ingress settings during startup. If the platform cannot reliably determine the original caller's IP address, it will reject calls to services with restricted access lists rather than risk incorrect enforcement.
SOAPAction or message content.| Error Code | Condition |
|---|---|
S2R-RUN-0404 | No brokered service is registered at the requested address in the current environment. |
S2R-RUN-0413 | The request body exceeded the 30 MB size limit. |
S2R-GW-0403 | The caller is not authorized. This can mean the caller's address is not in the service's grant list, or the platform cannot reliably identify caller addresses for the environment (see prerequisite above). |
For a complete list of platform errors, see the error code reference documentation.