Service catalog¶
Every workload in the cluster sits behind a single GCE Ingress on the
cashless-dev2-ingress static IP, terminated by one Google ManagedCertificate
covering all hosts below. Each row links to the public URL on dev2.mycashless.com.
Frontends¶
-
admin.dev2.mycashless.com/dashboard/→cashless-admin-uiAngular 21 SPA for venue / event operators. Bootstrap 5 + Angular Material 21. Served under
/dashboard/(appbaseHref); the bare host root 404s. -
refund.dev2.mycashless.com/refund/→cashless-refund-uiSelf-service refund portal for cardholders. Served under
/refund/(appbaseHref); the bare host root 404s. -
marketplace.dev2.mycashless.com→marketplace-user-uiCustomer marketplace — Angular 21, Stripe.js, Angular Fire. Currently broken —
baseHref(/account/marketplace/) does not match the nginx serving path, so assets fail and the app renders blank. Needs a build/deploy fix, not a link change. -
pa.dev2.mycashless.com→personalaccount-uiCardholder personal account web app — Angular 21, Stripe.js, Firebase. Currently broken —
baseHref(/account/) does not match the nginx serving path, so assets 404 and the app renders blank. Needs a build/deploy fix, not a link change.
Backends¶
-
api.dev2.mycashless.com/v2→cashless-backend-v2(cm_v2)FastAPI on uvicorn. Admin API + background jobs (notifications, NFC, sales, backups).
-
auth.dev2.mycashless.com→cashless-authFastAPI on uvicorn. Password, phone OTP, Firebase, device, API key, MFA.
-
pa-api.dev2.mycashless.com/v4→personalaccount-api-v4(pa_v4)FastAPI on uvicorn. Cardholder endpoints — balance, top-up, refund, reservations, cart, push preferences.
Mobile¶
These do not have public URLs — they ship as native apps and consume the backend HTTP surfaces above plus the shared Rust SDK.
| App | Platform | Notes |
|---|---|---|
mPOS |
Android / Kotlin | Point-of-sale. Star TSP printer + Stripe Terminal 4.3. |
user_app_android_with_sdk |
Android / Kotlin + Compose | Active cardholder target. Hilt, Room, KSP. |
user_app_ios |
iOS / Swift | Cardholder. Alamofire, Stripe, Firebase. |
user_app_android |
Android / Java | Legacy cardholder (sunset). |
dispatch_app |
Android / Java | Dispatch workflows. Star TSP printer. |
fastpass_app |
Android / Java | Fastpass scanning. CameraX. |
format_app |
Android / Java | Card / token formatting tooling. |
report_app |
Android / Java | Operator reporting. Dropbox SDK. |
Operational services (no public host)¶
| Service | Purpose |
|---|---|
cashless-cron |
Scheduled jobs (backups, batch reconciliation, notifications). |
cashless-worker |
Polling-loop background worker (MySQL-backed, no broker). See Background jobs. |
cashless-redis |
In-cluster Redis for cache + queues. |
cashless-db-backup |
Periodic MySQL backups to GCS. |
cashless-secrets |
External-Secrets operator config (GCP Secret Manager → K8s Secrets). |
cashless-migrate |
One-shot DB migration Job invoked on backend rollouts. |
cashless-ingress |
This LB. GCE Ingress + Google ManagedCertificate. |
otel-collector |
OTLP receiver → Prometheus + Cloud Trace. |
argocd-image-updater |
Auto-bumps image tags on new GHCR builds. |