Sweet Potato SPAPS
Customer Path
SPAPS is a proprietary, pre-1.0 hosted SaaS. Customer API access requires an active paid subscription and provisioned application credentials.
- Subscribe at
sweetpotato.dev. - Sign in and provision an application.
- Save the scoped secret key when it is shown.
- Install an authorized TypeScript or Python client.
- Integrate
https://api.sweetpotato.dev.
Repository checkout, Docker, local-runtime, backend, and deployment instructions elsewhere in these docs are maintainer workflows. They are not the customer onboarding path or a right to operate SPAPS.
SPAPS is the shared auth, billing, wallet, entitlement, and service-integration backend used across downstream apps. This site is for Solutions Consultants demoing a governed, revenue-aware app path and for engineers implementing against the active Python server, CLI, and SDKs. Start with the field kit for demos, or jump to the Python server, CLI, SDKs, and production app assembled in spaps_app.py.
The legacy Node.js server has been removed from this checkout. New work should start in
packages/python-server-quickstart.
Current Verification Boundary
This site was checked on 2026-09-03 against Sweet Potato
5b09d3df1194577c5313c865fef1db98f694cdea. Route and package claims match the current upstream
manifest; the documented CLI command families resolve in the current CLI. See
Source truth and verification for exact coverage and explicit non-claims.
Field Demo Path
Pick this if you are a Solutions Consultant showing a customer or stakeholder a governed app path; you will end with a scaffolded React demo, verified runtime, and a printed tools contract.
npx spaps local
npx spaps quickstart --json
npx spaps create governed-demo --template react
npx spaps verify --json
npx spaps tools --jsonEngineering Path
Pick this if you are an engineer changing the Python server or building a mental model before editing code; you will end with the FastAPI service responding on http://localhost:3301/health and the test suite green.
cd path/to/sweet-potato
make install
make local-proof-up
curl http://localhost:3301/health
make pytestHow To Read This Site
- Start with the field kit if you need a customer-demo or implementation-workshop path.
- Read what SPAPS is if you need the product boundary.
- Read the request lifecycle before changing middleware or route dependencies.
- Use the domain catalog when you need to find the owning router, service, repository, or model.
- Keep testing and TDD open while implementing changes.
First-run path
| Reader | Start here | You are done when | Proof command or artifact |
|---|---|---|---|
| Solutions Consultant running a customer demo | /solutions/field-kit | A governed demo app is scaffolded, fixtures are applied, and the next operator skill is selected | npx spaps verify --json plus the field-kit leave-behind |
| Frontend or Node engineer wiring SPAPS into an app | /packages | The local runtime is up, the app contract exists, and the package surface is chosen | npx spaps quickstart --json and npx spaps create demo-app --template react |
| Python engineer building a downstream service | /tutorials/first-service | A tiny FastAPI service runs through create_app without importing the full SPAPS app | uvicorn example:app --reload and curl http://127.0.0.1:8000/health |
| SPAPS maintainer changing the active backend | /tutorials/local-development | The Python server boots locally and affected tests use the repo’s Make wrapper | make local-proof-up, curl http://localhost:3301/health, and make pytest |
First-run proof expectations
Use the scenario manifest validator before treating these paths as current:
npm run first-run:dry-run
npm run first-run:live -- --json| Path | Expected proof shape | If it fails |
|---|---|---|
| Field demo | spaps quickstart --json, spaps verify --json, spaps tools --json, and .spaps/ fixture artifacts | Record the failed command, auth/runtime mode, and next docs page in the leave-behind instead of treating the demo as vague failure |
| Frontend package path | Selected package surface, key type, allowed origin, and verification command are named before app work starts | Check /packages, /packages/local-runtime, and /guides/api-keys-and-origins before changing app code |
| Backend maintainer path | make local-proof-up, curl http://localhost:3301/health, and make pytest prove the Python server path | Treat missing checkout, Docker/runtime failure, or port conflict as an environment blocker; do not replace the Make wrapper with raw pytest |
Source Of Truth
The active entry point is packages/python-server-quickstart/src/spaps_server_quickstart/spaps_app.py. The reusable package API is exported from packages/python-server-quickstart/src/spaps_server_quickstart/__init__.py, and package metadata lives in packages/python-server-quickstart/pyproject.toml.