Skip to content

Map the System

Use this map before exposing a service or diagnosing a cross-service failure.

CallerSupported destinationAvoid
Human operatorWeb console on local 3001 or deployed console URLDirect database, Redis, or internal routes
Trusted management automationAdmin API/Admin SDK, or optional Control API on API 3000Runtime CLI product-management commands
Workload needing mandatesSTS POST /oauth/2/token through an SDK or documented clientAPI admin credentials
Protected HTTP clientGateway 8081 with a mandate and resource headerDirect protected upstream when Gateway is the enforcement boundary
Session-aware applicationCoordinator 4000 through an SDK or documented APICoordinator operator tokens in workload source
VerifierSTS JWKS and revocation backend through verification packagesPrivate signing keys

Ports are local Compose defaults, bound to loopback. A production deployment normally places supported public surfaces behind TLS and keeps internal and operator-only routes private.

flowchart TB
  Console --> API
  Console --> Coordinator
  SDK --> STS
  Client --> Gateway
  Gateway --> STS
  Gateway --> Upstream
  API & STS & Gateway & Coordinator & Audit --> PG[(Postgres)]
  API & STS & Gateway & Coordinator & Audit --> Redis[(Redis)]
Visible failureDependency to check
Console cannot list or mutate product objectsAPI auth, API readiness, Postgres, then Redis/outbox
Exchange denies or cannot load policySTS, Postgres policy/product state, Redis invalidation, signing/secret keys
Gateway denies before reaching upstreamInbound mandate, resource binding, revocation, STS, or upstream safety
Sessions or Delegations appear staleCoordinator, Postgres, Redis, outbox, leases/sweepers
Audit search lags behind requestsRedis consumer state, Audit readiness, DLQ, replay volumes, Postgres
  • API, STS, Gateway, Audit, and Coordinator all need Postgres and Redis in the packaged topology; readiness captures more than process liveness.
  • Gateway also depends synchronously on STS for per-request exchange.
  • Console product views depend on API and Coordinator through the auth backend-for-frontend.
  • Control is an optional API plugin, not a separate service or port.

Use Choose a Deployment Profile for deployment choices and Understand Services for service-specific failure posture.

Exchange Tokens.