Domain Catalog
Domain ownership is the fastest way to avoid wrong-layer edits. Most domains follow router.py, service.py, repository.py, models.py, and schemas.py, with route registration happening in create_spaps_app.
This catalog is an ownership map, not a substitute for OpenAPI. Domain routers may share a mount
prefix such as /api; that prefix identifies the namespace only. The complete exact route list lives
in ../sweet-potato/docs/manifest.json and the running service’s /openapi.json.
Current Source Inventory
At Sweet Potato 5b09d3df1194577c5313c865fef1db98f694cdea, the active package contains
44 directories with a router.py:
affiliate_referrals | agent_approvals | app_links | applications |
audit | auth | billing_accounts | capability_graph |
cfo | cfo_roles | contact_leads | cors_contract |
crypto | dayrate | dev | dev_portal |
developer | device_flow | docs | email |
entitlements | issue_reporting_platform | marketing_events | notifications |
passkey_recovery | policies | purchase_journeys | realtime |
registry_access | secure_messages | security | self_service |
sessions | skill_evals | stripe | support_telemetry_platform |
token_gates | usage_control | users | wallets |
webhooks | whitelist | workload_identity | x402 |
Verify the list rather than copying it into a plan:
find packages/python-server-quickstart/src/spaps_server_quickstart/domains \
-mindepth 2 -maxdepth 2 -type f -name router.py -printf '%h\n' \
| xargs -n1 basename | sortManifest Route Categories
The same snapshot has 448 exact method/path entries across 44 manifest categories. Counts below are discovery hints; inspect the manifest or OpenAPI before editing behavior.
| Category | Routes | Category | Routes | Category | Routes |
|---|---|---|---|---|---|
| affiliate-referrals | 18 | agent-approvals | 14 | app-links | 3 |
| audit | 5 | auth | 74 | authentication | 9 |
| billing-accounts | 3 | capability-graph | 9 | cfo | 33 |
| contact-leads | 2 | crypto-payments | 8 | dayrate | 14 |
| dev | 5 | dev-portal | 5 | developer | 4 |
| device-flow | 3 | docs | 10 | 14 | |
| entitlements | 17 | governance | 1 | health | 3 |
| issue-reporting | 18 | marketing-events | 2 | notifications | 8 |
| operations | 1 | other | 14 | payments | 8 |
| policies | 7 | purchase-receipts | 7 | realtime | 1 |
| registry-access | 5 | secure-messages | 2 | security | 2 |
| self-service | 8 | sessions | 6 | skill-evals | 10 |
| stripe | 39 | token-gates | 14 | usage | 5 |
| users | 8 | webhooks | 11 | whitelist | 8 |
| workload-identity | 1 | x402 | 9 |
Regenerate those counts from source:
jq -r '.endpoints | group_by(.category)[] | [.[0].category, length] | @tsv' \
docs/manifest.json | sortCore Ownership Map
These are the most common starting points; use the complete inventory above for newer or specialist surfaces.
| Domain | Responsibility | Primary files |
|---|---|---|
applications | Client application rows, keys, origins, settings | router, service, repository, models, schemas |
auth | Email/password, magic-link, and auth flow orchestration | router, service, repository, schemas |
sessions | JWTs, refresh tokens, session tracking, blacklisting | router, service, repository, models, schemas |
wallets | Solana and Ethereum wallet auth and verification | router, service, repository, models, schemas, chains/ |
stripe | Products, checkout, subscriptions, portal, history, webhooks | router, service, repository, models, schemas |
entitlements | Access grants and product/price mappings | router, service, repository, models, schemas |
secure_messages | Secure message API and storage | router, service, repository, models, schemas |
webhooks | Generic and Mailgun webhook processing | router, service, repository, models, schemas |
email | Transactional email behavior | router, service, repository, models, schemas |
audit | Admin and security audit records | router, service, repository, models, schemas |
security | Security alerts and monitoring surfaces | router, service, repository, models, schemas |
policies | Authorization policy engine | router, service, repository, models, schemas |
device_flow | Device authorization flow | router, service, repository, schemas |
self_service | Operator self-service workflows | router, service, schemas |
dayrate | Buildooor/dayrate integration | router, service, repository, models, schemas |
issue_reporting_platform | Shared issue-reporting API | router, service, repository, models, schemas |
support_telemetry_platform | Support telemetry ingest and query | router, service, repository, models, schemas |
agent_approvals | Consent gateway and approval flows | router, service, repository, models, schemas |
affiliate_referrals | Affiliate, referral, and commission surfaces | router, service, repository, models, schemas |
Flow Owners
Common Mistakes
- Editing router behavior without checking service tests.
- Adding a model without confirming
import_all_models()registration. - Changing endpoint shape without updating docs and manifest entries.
- Treating a shared mount prefix as evidence for a concrete endpoint path.