What SPAPS Is
SPAPS is a FastAPI control plane for identity, payment state, wallet identity, application keys, and entitlement projection. In this repository, the active implementation is the Python package under packages/python-server-quickstart, which can be used both as a reusable service scaffold and as the concrete Sweet Potato Auth And Payment Service.
Why it exists
Downstream apps need one consistent answer to questions such as “who is this user”, “which application is calling”, “what did Stripe say about payment state”, and “which features should this principal access”. SPAPS keeps those answers in a shared backend instead of scattering them across every app.
Two Surfaces
| Surface | Location | Use it for |
|---|---|---|
| Reusable quickstart package | packages/python-server-quickstart/src/spaps_server_quickstart/app_factory.py | Building another FastAPI service with shared settings, CORS, logging, auth middleware, DB helpers, Celery, and templates |
| SPAPS production app | packages/python-server-quickstart/src/spaps_server_quickstart/spaps_app.py | Running the full Sweet Potato service with all domain routers mounted |
What It Owns
SPAPS owns API keys, app records, auth/session flows, wallet verification, Stripe checkout and subscriptions, entitlements, webhook processing, secure messages, audit trails, operational health checks, and several downstream integration domains such as dayrate and CFO support.
What It Does Not Own
It does not own the frontend user experience, app-specific business objects in downstream repos, or the removed legacy Node.js server. Those boundaries matter because payment and entitlement logic should stay in the system of record.
Do not copy patterns from a historical src/ Node tree. This checkout documents and validates the
Python server only.
Next
- Architecture shows how the pieces fit together.
- Request lifecycle traces one request through the app.
- Domain catalog maps owners for feature work.