Swishing — Internal Docs
Welcome. This is the internal docs portal for the Swishing platform: one URL for every API contract plus the architecture overview. Internal-only — no public/customer-facing material lives here.
What Swishing is
Multi-tenant SaaS. Each customer ("tenant") gets its own database (in a shared RDS), its own Cognito user pool, and historically its own backend compute. A shared frontend serves them all; a shared auth platform routes users to the right tenant.
Architecture (v3) at a glance
v3 routing in one line: the frontend (or any caller) sends X-Tenant-Id
to gateway.swishing.cards; the api-router looks the tenant up in
DynamoDB TenantDirectory and proxies to the tenant's backend; the backend
loads the tenant's DB pool and Cognito pool by id and serves the request.
For the deeper version — sequence diagram, CORS/auth flow, where tenant identity comes from — see Architecture.
Service map
Mirrors the table in CLAUDE.md at the repo root.
| Path | What it is |
|---|---|
api-router | v3 shared entry point. Single Lambda — reads X-Tenant-Id, looks up TenantDirectory in DynamoDB, proxies to that tenant's backend_base_url. |
swishing-game-backend | The per-tenant backend. index.js = ECS/Express entry. lambda.js = serverless-http wrapper for v3. Both coexist during cutover. |
swishing-game-web | The per-tenant frontend (will be the shared CloudFront app). |
internal-api / internal-web | Operator tooling: tenant provisioning, template tool, admin UI. |
auth-api / auth-web | Cognito-fronted auth that routes users to their tenant. |
provision-worker | SQS-driven tenant provisioning (creates DB, Cognito pool, etc.). |
tenant-teardown | Scheduled tenant lifecycle teardown. |
tenant-health-checker | Tenant uptime / health watcher. |
marketing-api / marketing-web | Public marketing surface. |
demo-api / demo-web | Demo tenant. |
template-tool | Template authoring tool used by ops (also wired into internal-web). |
Where to go next
- Architecture — multi-tenant model, v3 generation, request flow.
- Tenant API (game-backend) — OpenAPI rendering with try-it-out.
Documentation status
This portal is in active build-out (Phase 3.2). Today only swishing-game-backend
has a published OpenAPI spec; other services are scheduled in Phase 3.1 and
will land here as their specs ship. See TODO.md at the repo root for the
current state.