Loading…
Loading…
This is the fastest path from zero to a published service. You will stand up the standalone Docker Compose stack on a single host, open the admin UI, import a…
This is the fastest path from zero to a published service. You will stand up the standalone Docker Compose stack on a single host, open the admin UI, import a WSDL, point it at a backend, review the generated OpenAPI v3, publish, and make a test call.
Since v1.0 the standalone Docker Compose stack is a supported deployment target. For production, see Installation (GCP, Kubernetes / OpenShift Helm).
This Quickstart uses the Publish direction (REST facade over a SOAP backend). For the Consume direction (SOAP facade over a REST backend), see Onboarding → Consume direction.
Before you start, skim Core concepts so the UI labels — service, operation, mapping version, direction — read cleanly, and confirm your host meets the System requirements.
docker compose version).All values below in <angle-brackets> are placeholders — substitute your own.
# 1. Get the code
git clone <repo-url> soap-to-rest && cd soap-to-rest
# 2. Configure secrets
cp docker-compose.env.example .env
Edit .env and set the two required secrets:
S2R_DB_PASSWORD=<value-from: openssl rand -base64 24>
S2R_CREDENTIAL_KEY=<value-from: openssl rand -base64 32> # 32-byte AES key
S2R_CREDENTIAL_KEYis the AES key used to encrypt backend-profile credentials at rest. Keep it stable — regenerating it invalidates every existing encrypted credential. If it is unset or blank, the services refuse to start (S2R-ADM-0419/S2R-RUN-0419).
For a single-host evaluation behind your own reverse proxy / load balancer, use the standalone compose file (it exposes the admin UI on a plain HTTP host port; TLS terminates at your proxy):
# build images, then start
docker compose -f docker-compose.standalone.yml build
docker compose -f docker-compose.standalone.yml up -d
The stack is PostgreSQL + admin-api + runtime + worker + admin-ui. The first request triggers Flyway migrations, so initial start can take 30–60 s longer than steady state.
Check status and tail boot logs:
docker compose -f docker-compose.standalone.yml ps
docker compose -f docker-compose.standalone.yml logs -f admin-api # Flyway + boot
After ~60 s the admin UI answers on http://<host>:8080/ (the S2R_ADMIN_UI_HOST_PORT,
default 8080). Put a TLS-terminating reverse proxy in front for any reachable deployment —
see the Docker Compose installation guide.
Browse to http://<host>:8080/ (or your proxy hostname). For an evaluation stack you can run
without SSO; for any real deployment, gate the UI with your identity provider (IAP / Azure AD /
SAML / OIDC) and bind operators to roles. See
Security → Authentication and
Security → RBAC & roles.
You land on the Dashboard. For onboarding a single service, go to WSDL Onboarding.
In WSDL Onboarding, import your contract by file, URL, or pasted XML. The platform parses every operation and produces an onboarding review:
GET /customers/{id}), editable,If the WSDL has missing/broken namespace declarations, use namespace repair before continuing. If you re-import a changed contract later, you get a change report (added / removed operations, breaking changes, per-operation deltas) instead of an in-place edit.
Tip: zero-touch autopilot can generate the draft service, operations, and mappings in one step and return a per-operation readiness score — useful for large WSDLs. See Onboarding → Zero-touch autopilot.
Set the backend connection for the service's environment (e.g. dev):
https://<soap-host>/services/<Service>.Run the built-in connection / auth diagnostic (including a WSDL pull check) to confirm the host is reachable and authentication succeeds before publishing.
Backend endpoint and credentials are environment-scoped — you can carry distinct values per
environment. Mapping versions are environment-agnostic, so the same versioned mapping can be
promoted across dev → test → prod. See Core concepts → Environment.
The platform generates a deterministic, full-field mapping from the WSDL/XSD and a standards-compliant OpenAPI v3 document for the service. Review it before publishing:
xsi:type handling.See Onboarding → Generate & review the OpenAPI.
When the publish-readiness gate is satisfied (backend reachable, test passing, mapping
complete, no blocking WSDL drift), save the service as a version (v1) and set it active.
v2) is produced with a
change report; activate it when ready, or roll back to a prior version with one click.See Onboarding → Publish & version a service.
A published Publish-direction service is reachable on the runtime under a direction-segmented path:
POST /publish/<env>/<serviceKey>/<operation-path>
For example, calling a GetCustomer operation published as GET /customers/{id} in the dev
environment:
curl -sS \
"https://<your-host>/publish/dev/<serviceKey>/customers/12345" \
-H "Accept: application/json"
The runtime converts your REST request to SOAP, calls the backend, and converts the SOAP response back to JSON shaped by your conversion options. A few things to know:
publish / consume) is required. A path that omits it returns
S2R-RUN-0405 (HTTP 400). See Error codes.S2R-RUN-0413 (HTTP 413).You can also drive operations from the in-app test harness during onboarding without leaving the UI.
Open Observability to confirm the call:
See Observability.