add optimistic concurrency guards via expected scheme version id protect draft editor, pricing snapshot, remap and publish flows from stale mutations protect version creation from stale current version state keep backward compatibility with optional query guards verify 409 conflict behavior for stale clients and 200 for valid flows
2.6 KiB
2.6 KiB
API map
app/api/routes/system.py
- GET /
- GET /healthz
- GET /api/v1/ping
- GET /api/v1/auth/me
- GET /api/v1/db/ping
- GET /api/v1/manifest
app/api/routes/uploads.py
- POST /api/v1/schemes/upload
- GET /api/v1/uploads
- GET /api/v1/uploads/{upload_id}
- GET /api/v1/uploads/{upload_id}/normalized
app/api/routes/schemes.py
- GET /api/v1/schemes
- GET /api/v1/schemes/{scheme_id}
- GET /api/v1/schemes/{scheme_id}/current
- GET /api/v1/schemes/{scheme_id}/versions
- POST /api/v1/schemes/{scheme_id}/versions
- GET /api/v1/schemes/{scheme_id}/publish/validation
- POST /api/v1/schemes/{scheme_id}/publish
- POST /api/v1/schemes/{scheme_id}/unpublish
- POST /api/v1/schemes/{scheme_id}/rollback
app/api/routes/structure.py
- GET /api/v1/schemes/{scheme_id}/current/sectors
- GET /api/v1/schemes/{scheme_id}/current/groups
- GET /api/v1/schemes/{scheme_id}/current/seats
- GET /api/v1/schemes/{scheme_id}/current/seats/{seat_id}/price
- GET /api/v1/schemes/{scheme_id}/current/svg
- GET /api/v1/schemes/{scheme_id}/current/svg/display
- GET /api/v1/schemes/{scheme_id}/current/svg/display/meta
app/api/routes/pricing.py
- GET /api/v1/schemes/{scheme_id}/pricing
- POST /api/v1/schemes/{scheme_id}/pricing/categories
- PUT /api/v1/schemes/{scheme_id}/pricing/categories/{pricing_category_id}
- DELETE /api/v1/schemes/{scheme_id}/pricing/categories/{pricing_category_id}
- POST /api/v1/schemes/{scheme_id}/pricing/rules
- PUT /api/v1/schemes/{scheme_id}/pricing/rules/{price_rule_id}
- DELETE /api/v1/schemes/{scheme_id}/pricing/rules/{price_rule_id}
app/api/routes/test_mode.py
- GET /api/v1/schemes/{scheme_id}/test/seats/{seat_id}
app/api/routes/audit.py
- GET /api/v1/schemes/{scheme_id}/audit
app/api/routes/publish.py
- POST /api/v1/schemes/{scheme_id}/draft/pricing/snapshot
- GET /api/v1/schemes/{scheme_id}/draft/publish-preview
- POST /api/v1/schemes/{scheme_id}/draft/remap/preview
- POST /api/v1/schemes/{scheme_id}/draft/remap/apply
app/api/routes/admin.py
- GET /api/v1/admin/schemes/{scheme_id}/current/artifacts
- GET /api/v1/admin/schemes/{scheme_id}/current/validation
- POST /api/v1/admin/schemes/{scheme_id}/current/display/regenerate
- POST /api/v1/admin/display/backfill
- GET /api/v1/admin/artifacts/publish-preview/audit
- POST /api/v1/admin/artifacts/publish-preview/cleanup
Notes
- This file is an operational route index, not a generated OpenAPI export.
- Update this map in the same change set when adding, removing, renaming, or moving routes.
- Editor routes are maintained separately and should be synced from current source before relying on this file as a full route inventory.