spaps-server-quickstart 0.5.0__tar.gz → 0.6.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (921) hide show
  1. spaps_server_quickstart-0.6.0/.gitignore +202 -0
  2. spaps_server_quickstart-0.6.0/CHANGELOG.md +139 -0
  3. spaps_server_quickstart-0.6.0/PKG-INFO +308 -0
  4. spaps_server_quickstart-0.6.0/README.md +229 -0
  5. spaps_server_quickstart-0.6.0/docs/MIGRATION_GUIDE.md +296 -0
  6. spaps_server_quickstart-0.6.0/docs/TM-ENV-001-checklist.md +289 -0
  7. spaps_server_quickstart-0.6.0/docs/feature-plans/INDEX.md +24 -0
  8. spaps_server_quickstart-0.6.0/docs/feature-plans/trust-invariants-kernel/README.md +38 -0
  9. spaps_server_quickstart-0.6.0/docs/feature-plans/trust-invariants-kernel/backend.md +149 -0
  10. spaps_server_quickstart-0.6.0/docs/feature-plans/trust-invariants-kernel/describe-wave-1-principal-proxy-reuse.md +79 -0
  11. spaps_server_quickstart-0.6.0/docs/feature-plans/trust-invariants-kernel/flows.md +60 -0
  12. spaps_server_quickstart-0.6.0/docs/feature-plans/trust-invariants-kernel/frontend.md +34 -0
  13. spaps_server_quickstart-0.6.0/docs/feature-plans/trust-invariants-kernel/plan.md +202 -0
  14. spaps_server_quickstart-0.6.0/docs/feature-plans/trust-invariants-kernel/schema.mmd +61 -0
  15. spaps_server_quickstart-0.6.0/docs/feature-plans/trust-invariants-kernel/shared.md +120 -0
  16. spaps_server_quickstart-0.6.0/docs/security-audit-remediation-2026q1-tm007-tm008.md +156 -0
  17. spaps_server_quickstart-0.6.0/pyproject.toml +166 -0
  18. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/__init__.py +128 -0
  19. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/alembic/naming.py +156 -0
  20. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/api/domains/health_router.py +158 -0
  21. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/app_factory.py +187 -0
  22. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/auth/__init__.py +499 -0
  23. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/auth/dependencies.py +64 -0
  24. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/auth_channels.py +345 -0
  25. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/__init__.py +12 -0
  26. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/_common/clients.py +121 -0
  27. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/_common/pagination.py +53 -0
  28. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/_db/__init__.py +7 -0
  29. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/_db/model_registry.py +41 -0
  30. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/_db/orm_helpers.py +28 -0
  31. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/_db/rls.py +65 -0
  32. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/affiliate_referrals/models.py +423 -0
  33. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/affiliate_referrals/repository.py +724 -0
  34. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/affiliate_referrals/router.py +459 -0
  35. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/affiliate_referrals/service.py +1126 -0
  36. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/agent_approvals/authz.py +167 -0
  37. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/agent_approvals/errors.py +185 -0
  38. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/agent_approvals/router.py +516 -0
  39. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/agent_approvals/schemas.py +341 -0
  40. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/agent_approvals/service.py +1097 -0
  41. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/app_links/__init__.py +2 -0
  42. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/app_links/errors.py +21 -0
  43. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/app_links/models.py +65 -0
  44. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/app_links/repository.py +53 -0
  45. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/app_links/router.py +86 -0
  46. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/app_links/schemas.py +46 -0
  47. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/app_links/service.py +243 -0
  48. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/applications/blueprints.py +654 -0
  49. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/applications/models.py +66 -0
  50. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/applications/repository.py +215 -0
  51. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/applications/router.py +140 -0
  52. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/applications/schemas.py +118 -0
  53. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/applications/service.py +303 -0
  54. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/audit/models.py +96 -0
  55. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/audit/repository.py +248 -0
  56. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/audit/router.py +87 -0
  57. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/audit/schemas.py +84 -0
  58. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/audit/service.py +283 -0
  59. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/audit/tasks.py +68 -0
  60. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/auth/repository.py +421 -0
  61. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/auth/router.py +472 -0
  62. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/auth/schemas.py +233 -0
  63. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/auth/service.py +1600 -0
  64. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/billing_accounts/__init__.py +5 -0
  65. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/billing_accounts/models.py +81 -0
  66. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/billing_accounts/repository.py +188 -0
  67. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/billing_accounts/resolver.py +426 -0
  68. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/billing_accounts/router.py +58 -0
  69. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/billing_accounts/schemas.py +63 -0
  70. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/billing_accounts/service.py +172 -0
  71. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/cfo/errors.py +43 -0
  72. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/cfo/models.py +136 -0
  73. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/cfo/repository.py +268 -0
  74. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/cfo/router.py +525 -0
  75. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/cfo/schemas.py +221 -0
  76. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/cfo/service.py +974 -0
  77. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/cfo_roles/me_router.py +163 -0
  78. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/cfo_roles/router.py +471 -0
  79. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/cfo_roles/service.py +807 -0
  80. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/crypto/repository.py +201 -0
  81. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/crypto/router.py +282 -0
  82. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/crypto/service.py +305 -0
  83. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/dayrate/errors.py +80 -0
  84. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/dayrate/pricing.py +114 -0
  85. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/dayrate/repository.py +598 -0
  86. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/dayrate/router.py +740 -0
  87. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/dayrate/schemas.py +482 -0
  88. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/dayrate/service.py +2306 -0
  89. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/dev/__init__.py +2 -0
  90. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/dev/router.py +65 -0
  91. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/dev/schemas.py +103 -0
  92. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/dev/service.py +432 -0
  93. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/device_flow/router.py +110 -0
  94. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/device_flow/service.py +342 -0
  95. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/docs/discovery.py +50 -0
  96. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/docs/repository.py +323 -0
  97. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/docs/router.py +217 -0
  98. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/docs/schemas.py +210 -0
  99. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/docs/service.py +380 -0
  100. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/email/models.py +127 -0
  101. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/email/router.py +363 -0
  102. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/email/schemas.py +199 -0
  103. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/email/service.py +1200 -0
  104. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/entitlements/models.py +205 -0
  105. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/entitlements/repository.py +498 -0
  106. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/entitlements/router.py +466 -0
  107. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/entitlements/schemas.py +290 -0
  108. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/entitlements/service.py +1328 -0
  109. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/errors.py +191 -0
  110. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/hosted_assets/__init__.py +49 -0
  111. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/hosted_assets/errors.py +47 -0
  112. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/hosted_assets/models.py +259 -0
  113. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/hosted_assets/storage.py +297 -0
  114. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/issue_reporting_platform/errors.py +68 -0
  115. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/issue_reporting_platform/models.py +128 -0
  116. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/issue_reporting_platform/repository.py +350 -0
  117. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/issue_reporting_platform/router.py +455 -0
  118. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/issue_reporting_platform/schemas.py +149 -0
  119. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/issue_reporting_platform/service.py +1382 -0
  120. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/notifications/__init__.py +1 -0
  121. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/notifications/models.py +289 -0
  122. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/notifications/repository.py +474 -0
  123. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/notifications/router.py +190 -0
  124. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/notifications/schemas.py +155 -0
  125. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/notifications/service.py +801 -0
  126. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/notifications/tasks.py +39 -0
  127. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/policies/__init__.py +1 -0
  128. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/policies/errors.py +25 -0
  129. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/policies/evaluator.py +415 -0
  130. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/policies/models.py +115 -0
  131. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/policies/repository.py +135 -0
  132. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/policies/router.py +199 -0
  133. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/policies/schemas.py +124 -0
  134. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/policies/service.py +403 -0
  135. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/realtime/__init__.py +23 -0
  136. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/realtime/router.py +45 -0
  137. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/realtime/schemas.py +13 -0
  138. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/realtime/service.py +125 -0
  139. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/redirects.py +157 -0
  140. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/secure_messages/repository.py +86 -0
  141. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/secure_messages/router.py +121 -0
  142. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/secure_messages/service.py +209 -0
  143. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/security/models.py +56 -0
  144. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/security/repository.py +131 -0
  145. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/security/router.py +68 -0
  146. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/security/service.py +192 -0
  147. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/self_service/router.py +301 -0
  148. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/self_service/schemas.py +169 -0
  149. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/self_service/service.py +376 -0
  150. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/sessions/admin_detection.py +227 -0
  151. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/sessions/blacklist_service.py +358 -0
  152. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/sessions/jwt_service.py +365 -0
  153. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/sessions/nonce_service.py +216 -0
  154. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/sessions/password_service.py +113 -0
  155. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/sessions/repository.py +484 -0
  156. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/sessions/router.py +153 -0
  157. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/sessions/schemas.py +85 -0
  158. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/sessions/service.py +480 -0
  159. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/skill_evals/__init__.py +5 -0
  160. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/skill_evals/errors.py +104 -0
  161. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/skill_evals/models.py +263 -0
  162. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/skill_evals/repository.py +369 -0
  163. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/skill_evals/router.py +316 -0
  164. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/skill_evals/schemas.py +203 -0
  165. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/skill_evals/service.py +1671 -0
  166. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/stripe/errors.py +107 -0
  167. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/stripe/guest_checkout.py +257 -0
  168. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/stripe/models.py +340 -0
  169. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/stripe/repository.py +779 -0
  170. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/stripe/router.py +870 -0
  171. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/stripe/schemas.py +373 -0
  172. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/stripe/service.py +1361 -0
  173. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/stripe/tasks.py +195 -0
  174. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/stripe/webhook_handler.py +841 -0
  175. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/support_telemetry_platform/router.py +263 -0
  176. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/support_telemetry_platform/service.py +619 -0
  177. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/usage_control/__init__.py +5 -0
  178. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/usage_control/errors.py +61 -0
  179. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/usage_control/models.py +85 -0
  180. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/usage_control/repository.py +182 -0
  181. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/usage_control/router.py +155 -0
  182. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/usage_control/schemas.py +206 -0
  183. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/usage_control/service.py +755 -0
  184. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/users/models.py +137 -0
  185. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/wallets/addressing.py +31 -0
  186. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/wallets/repository.py +267 -0
  187. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/wallets/router.py +428 -0
  188. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/wallets/schemas.py +230 -0
  189. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/wallets/service.py +661 -0
  190. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/webhooks/delivery.py +355 -0
  191. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/webhooks/destination_security.py +63 -0
  192. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/webhooks/errors.py +75 -0
  193. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/webhooks/repository.py +265 -0
  194. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/webhooks/router.py +197 -0
  195. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/webhooks/schemas.py +177 -0
  196. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/webhooks/service.py +714 -0
  197. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/webhooks/signing.py +214 -0
  198. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/webhooks/tasks.py +31 -0
  199. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/whitelist/models.py +62 -0
  200. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/whitelist/repository.py +281 -0
  201. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/whitelist/router.py +232 -0
  202. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/whitelist/schemas.py +167 -0
  203. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/whitelist/service.py +243 -0
  204. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/x402/__init__.py +1 -0
  205. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/x402/adapter.py +846 -0
  206. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/x402/constants.py +42 -0
  207. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/x402/errors.py +88 -0
  208. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/x402/models.py +258 -0
  209. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/x402/repository.py +393 -0
  210. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/x402/router.py +248 -0
  211. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/x402/schemas.py +93 -0
  212. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/x402/security.py +44 -0
  213. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/domains/x402/service.py +1598 -0
  214. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/logging.py +93 -0
  215. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/middleware/api_key.py +180 -0
  216. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/middleware/client_ip.py +91 -0
  217. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/middleware/envelope.py +176 -0
  218. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/middleware/error_handler.py +151 -0
  219. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/middleware/jwt_auth.py +156 -0
  220. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/middleware/key_scope.py +235 -0
  221. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/middleware/local_mode.py +110 -0
  222. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/middleware/origin_validation.py +135 -0
  223. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/middleware/rate_limiting.py +594 -0
  224. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/middleware/spaps_deps.py +323 -0
  225. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/money/__init__.py +72 -0
  226. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/settings.py +247 -0
  227. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/spaps_app.py +387 -0
  228. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/spaps_settings.py +225 -0
  229. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/startup.py +572 -0
  230. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/tasks/celery_factory.py +73 -0
  231. spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/tools/dependency_alignment.py +302 -0
  232. spaps_server_quickstart-0.6.0/tests/conftest.py +45 -0
  233. spaps_server_quickstart-0.6.0/tests/contracts/test_app_factory_contract.py +87 -0
  234. spaps_server_quickstart-0.6.0/tests/contracts/test_celery_contract.py +85 -0
  235. spaps_server_quickstart-0.6.0/tests/contracts/test_error_copy_contract.py +170 -0
  236. spaps_server_quickstart-0.6.0/tests/contracts/test_golden_app_pack.py +126 -0
  237. spaps_server_quickstart-0.6.0/tests/contracts/test_pagination_contract.py +94 -0
  238. spaps_server_quickstart-0.6.0/tests/contracts/test_sdk_docs_parity_script.py +278 -0
  239. spaps_server_quickstart-0.6.0/tests/contracts/test_x402_devnet_prereq_script.py +734 -0
  240. spaps_server_quickstart-0.6.0/tests/contracts/test_x402_mainnet_billing_sql_script.py +57 -0
  241. spaps_server_quickstart-0.6.0/tests/contracts/test_x402_mainnet_db_script.py +101 -0
  242. spaps_server_quickstart-0.6.0/tests/contracts/test_x402_mainnet_env_script.py +94 -0
  243. spaps_server_quickstart-0.6.0/tests/contracts/test_x402_mainnet_evidence_script.py +75 -0
  244. spaps_server_quickstart-0.6.0/tests/contracts/test_x402_mainnet_live_script.py +126 -0
  245. spaps_server_quickstart-0.6.0/tests/contracts/test_x402_production_deployment_script.py +99 -0
  246. spaps_server_quickstart-0.6.0/tests/domains/_db/test_orm_helpers.py +56 -0
  247. spaps_server_quickstart-0.6.0/tests/domains/affiliate_referrals/test_repository.py +148 -0
  248. spaps_server_quickstart-0.6.0/tests/domains/affiliate_referrals/test_router.py +768 -0
  249. spaps_server_quickstart-0.6.0/tests/domains/affiliate_referrals/test_service.py +1356 -0
  250. spaps_server_quickstart-0.6.0/tests/domains/agent_approvals/test_authz.py +119 -0
  251. spaps_server_quickstart-0.6.0/tests/domains/agent_approvals/test_authz_wiring.py +466 -0
  252. spaps_server_quickstart-0.6.0/tests/domains/agent_approvals/test_callback_url_validation.py +283 -0
  253. spaps_server_quickstart-0.6.0/tests/domains/agent_approvals/test_repository.py +176 -0
  254. spaps_server_quickstart-0.6.0/tests/domains/agent_approvals/test_router.py +923 -0
  255. spaps_server_quickstart-0.6.0/tests/domains/agent_approvals/test_service.py +2312 -0
  256. spaps_server_quickstart-0.6.0/tests/domains/app_links/__init__.py +1 -0
  257. spaps_server_quickstart-0.6.0/tests/domains/app_links/test_blueprints.py +21 -0
  258. spaps_server_quickstart-0.6.0/tests/domains/app_links/test_router.py +139 -0
  259. spaps_server_quickstart-0.6.0/tests/domains/app_links/test_service.py +336 -0
  260. spaps_server_quickstart-0.6.0/tests/domains/applications/test_blueprints.py +102 -0
  261. spaps_server_quickstart-0.6.0/tests/domains/applications/test_repository.py +402 -0
  262. spaps_server_quickstart-0.6.0/tests/domains/applications/test_router.py +983 -0
  263. spaps_server_quickstart-0.6.0/tests/domains/audit/test_repository.py +335 -0
  264. spaps_server_quickstart-0.6.0/tests/domains/audit/test_router.py +302 -0
  265. spaps_server_quickstart-0.6.0/tests/domains/audit/test_service.py +397 -0
  266. spaps_server_quickstart-0.6.0/tests/domains/auth/test_refresh_token_anomaly.py +400 -0
  267. spaps_server_quickstart-0.6.0/tests/domains/auth/test_repository.py +470 -0
  268. spaps_server_quickstart-0.6.0/tests/domains/auth/test_router.py +880 -0
  269. spaps_server_quickstart-0.6.0/tests/domains/auth/test_service.py +2221 -0
  270. spaps_server_quickstart-0.6.0/tests/domains/auth/test_user_enumeration_timing.py +146 -0
  271. spaps_server_quickstart-0.6.0/tests/domains/billing_accounts/__init__.py +1 -0
  272. spaps_server_quickstart-0.6.0/tests/domains/billing_accounts/test_repository.py +342 -0
  273. spaps_server_quickstart-0.6.0/tests/domains/billing_accounts/test_resolver.py +548 -0
  274. spaps_server_quickstart-0.6.0/tests/domains/billing_accounts/test_router.py +207 -0
  275. spaps_server_quickstart-0.6.0/tests/domains/cfo/test_repository.py +395 -0
  276. spaps_server_quickstart-0.6.0/tests/domains/cfo/test_router.py +1203 -0
  277. spaps_server_quickstart-0.6.0/tests/domains/cfo/test_service.py +1560 -0
  278. spaps_server_quickstart-0.6.0/tests/domains/cfo_roles/test_router.py +880 -0
  279. spaps_server_quickstart-0.6.0/tests/domains/cfo_roles/test_service.py +1075 -0
  280. spaps_server_quickstart-0.6.0/tests/domains/crypto/test_repository.py +406 -0
  281. spaps_server_quickstart-0.6.0/tests/domains/crypto/test_router.py +439 -0
  282. spaps_server_quickstart-0.6.0/tests/domains/crypto/test_service.py +401 -0
  283. spaps_server_quickstart-0.6.0/tests/domains/dayrate/test_allotment_service.py +203 -0
  284. spaps_server_quickstart-0.6.0/tests/domains/dayrate/test_booking_routes.py +162 -0
  285. spaps_server_quickstart-0.6.0/tests/domains/dayrate/test_enhanced_booking_service.py +819 -0
  286. spaps_server_quickstart-0.6.0/tests/domains/dayrate/test_pricing.py +554 -0
  287. spaps_server_quickstart-0.6.0/tests/domains/dayrate/test_repository.py +545 -0
  288. spaps_server_quickstart-0.6.0/tests/domains/dayrate/test_router.py +1275 -0
  289. spaps_server_quickstart-0.6.0/tests/domains/dayrate/test_service.py +2064 -0
  290. spaps_server_quickstart-0.6.0/tests/domains/dev/__init__.py +2 -0
  291. spaps_server_quickstart-0.6.0/tests/domains/dev/test_router.py +168 -0
  292. spaps_server_quickstart-0.6.0/tests/domains/dev/test_service.py +66 -0
  293. spaps_server_quickstart-0.6.0/tests/domains/device_flow/test_router.py +386 -0
  294. spaps_server_quickstart-0.6.0/tests/domains/device_flow/test_service.py +469 -0
  295. spaps_server_quickstart-0.6.0/tests/domains/docs/test_repository.py +394 -0
  296. spaps_server_quickstart-0.6.0/tests/domains/docs/test_router.py +580 -0
  297. spaps_server_quickstart-0.6.0/tests/domains/docs/test_service.py +512 -0
  298. spaps_server_quickstart-0.6.0/tests/domains/email/test_env_safety.py +307 -0
  299. spaps_server_quickstart-0.6.0/tests/domains/email/test_router.py +759 -0
  300. spaps_server_quickstart-0.6.0/tests/domains/email/test_service.py +1394 -0
  301. spaps_server_quickstart-0.6.0/tests/domains/entitlements/test_repository.py +576 -0
  302. spaps_server_quickstart-0.6.0/tests/domains/entitlements/test_router.py +924 -0
  303. spaps_server_quickstart-0.6.0/tests/domains/entitlements/test_service.py +1603 -0
  304. spaps_server_quickstart-0.6.0/tests/domains/hosted_assets/__init__.py +1 -0
  305. spaps_server_quickstart-0.6.0/tests/domains/hosted_assets/test_storage.py +312 -0
  306. spaps_server_quickstart-0.6.0/tests/domains/issue_reporting_platform/__init__.py +1 -0
  307. spaps_server_quickstart-0.6.0/tests/domains/issue_reporting_platform/test_repository.py +497 -0
  308. spaps_server_quickstart-0.6.0/tests/domains/issue_reporting_platform/test_router.py +816 -0
  309. spaps_server_quickstart-0.6.0/tests/domains/issue_reporting_platform/test_service.py +1669 -0
  310. spaps_server_quickstart-0.6.0/tests/domains/notifications/__init__.py +1 -0
  311. spaps_server_quickstart-0.6.0/tests/domains/notifications/test_models.py +33 -0
  312. spaps_server_quickstart-0.6.0/tests/domains/notifications/test_repository.py +141 -0
  313. spaps_server_quickstart-0.6.0/tests/domains/notifications/test_router.py +332 -0
  314. spaps_server_quickstart-0.6.0/tests/domains/notifications/test_service.py +623 -0
  315. spaps_server_quickstart-0.6.0/tests/domains/policies/test_evaluator.py +469 -0
  316. spaps_server_quickstart-0.6.0/tests/domains/policies/test_repository.py +89 -0
  317. spaps_server_quickstart-0.6.0/tests/domains/policies/test_router.py +78 -0
  318. spaps_server_quickstart-0.6.0/tests/domains/policies/test_service.py +497 -0
  319. spaps_server_quickstart-0.6.0/tests/domains/realtime/test_service.py +184 -0
  320. spaps_server_quickstart-0.6.0/tests/domains/secure_messages/test_repository.py +84 -0
  321. spaps_server_quickstart-0.6.0/tests/domains/secure_messages/test_router.py +268 -0
  322. spaps_server_quickstart-0.6.0/tests/domains/secure_messages/test_service.py +279 -0
  323. spaps_server_quickstart-0.6.0/tests/domains/security/test_repository.py +319 -0
  324. spaps_server_quickstart-0.6.0/tests/domains/security/test_router.py +326 -0
  325. spaps_server_quickstart-0.6.0/tests/domains/security/test_service.py +348 -0
  326. spaps_server_quickstart-0.6.0/tests/domains/self_service/test_router.py +1032 -0
  327. spaps_server_quickstart-0.6.0/tests/domains/sessions/test_router.py +391 -0
  328. spaps_server_quickstart-0.6.0/tests/domains/sessions/test_service.py +585 -0
  329. spaps_server_quickstart-0.6.0/tests/domains/skill_evals/__init__.py +1 -0
  330. spaps_server_quickstart-0.6.0/tests/domains/skill_evals/test_dogfood_workflow.py +597 -0
  331. spaps_server_quickstart-0.6.0/tests/domains/skill_evals/test_router.py +337 -0
  332. spaps_server_quickstart-0.6.0/tests/domains/skill_evals/test_service.py +1521 -0
  333. spaps_server_quickstart-0.6.0/tests/domains/stripe/test_guest_checkout.py +708 -0
  334. spaps_server_quickstart-0.6.0/tests/domains/stripe/test_repository.py +690 -0
  335. spaps_server_quickstart-0.6.0/tests/domains/stripe/test_router.py +1242 -0
  336. spaps_server_quickstart-0.6.0/tests/domains/stripe/test_service.py +1666 -0
  337. spaps_server_quickstart-0.6.0/tests/domains/stripe/test_tasks.py +171 -0
  338. spaps_server_quickstart-0.6.0/tests/domains/stripe/test_webhook_handler.py +1286 -0
  339. spaps_server_quickstart-0.6.0/tests/domains/stripe/test_webhook_hardening.py +448 -0
  340. spaps_server_quickstart-0.6.0/tests/domains/support_telemetry_platform/test_router.py +257 -0
  341. spaps_server_quickstart-0.6.0/tests/domains/support_telemetry_platform/test_service.py +450 -0
  342. spaps_server_quickstart-0.6.0/tests/domains/test_redirects.py +223 -0
  343. spaps_server_quickstart-0.6.0/tests/domains/test_smoke.py +306 -0
  344. spaps_server_quickstart-0.6.0/tests/domains/usage_control/test_repository.py +95 -0
  345. spaps_server_quickstart-0.6.0/tests/domains/usage_control/test_router.py +363 -0
  346. spaps_server_quickstart-0.6.0/tests/domains/usage_control/test_service.py +543 -0
  347. spaps_server_quickstart-0.6.0/tests/domains/wallets/test_addressing.py +22 -0
  348. spaps_server_quickstart-0.6.0/tests/domains/wallets/test_legacy_routes_tenant_binding.py +82 -0
  349. spaps_server_quickstart-0.6.0/tests/domains/wallets/test_repository.py +399 -0
  350. spaps_server_quickstart-0.6.0/tests/domains/wallets/test_router.py +758 -0
  351. spaps_server_quickstart-0.6.0/tests/domains/wallets/test_service.py +902 -0
  352. spaps_server_quickstart-0.6.0/tests/domains/webhooks/__init__.py +0 -0
  353. spaps_server_quickstart-0.6.0/tests/domains/webhooks/test_delivery.py +535 -0
  354. spaps_server_quickstart-0.6.0/tests/domains/webhooks/test_destination_security.py +72 -0
  355. spaps_server_quickstart-0.6.0/tests/domains/webhooks/test_repository.py +420 -0
  356. spaps_server_quickstart-0.6.0/tests/domains/webhooks/test_router.py +589 -0
  357. spaps_server_quickstart-0.6.0/tests/domains/webhooks/test_service.py +1181 -0
  358. spaps_server_quickstart-0.6.0/tests/domains/webhooks/test_tasks.py +25 -0
  359. spaps_server_quickstart-0.6.0/tests/domains/whitelist/__init__.py +0 -0
  360. spaps_server_quickstart-0.6.0/tests/domains/whitelist/test_repository.py +701 -0
  361. spaps_server_quickstart-0.6.0/tests/domains/whitelist/test_router.py +653 -0
  362. spaps_server_quickstart-0.6.0/tests/domains/x402/__init__.py +1 -0
  363. spaps_server_quickstart-0.6.0/tests/domains/x402/test_facilitator_adapter.py +686 -0
  364. spaps_server_quickstart-0.6.0/tests/domains/x402/test_money_contract.py +60 -0
  365. spaps_server_quickstart-0.6.0/tests/domains/x402/test_router.py +315 -0
  366. spaps_server_quickstart-0.6.0/tests/domains/x402/test_service.py +1336 -0
  367. spaps_server_quickstart-0.6.0/tests/middleware/__init__.py +0 -0
  368. spaps_server_quickstart-0.6.0/tests/middleware/test_api_key.py +387 -0
  369. spaps_server_quickstart-0.6.0/tests/middleware/test_client_ip.py +89 -0
  370. spaps_server_quickstart-0.6.0/tests/middleware/test_envelope.py +116 -0
  371. spaps_server_quickstart-0.6.0/tests/middleware/test_error_envelope_v1.py +252 -0
  372. spaps_server_quickstart-0.6.0/tests/middleware/test_jwt_auth.py +319 -0
  373. spaps_server_quickstart-0.6.0/tests/middleware/test_key_scope.py +329 -0
  374. spaps_server_quickstart-0.6.0/tests/middleware/test_local_mode.py +114 -0
  375. spaps_server_quickstart-0.6.0/tests/middleware/test_origin_validation.py +227 -0
  376. spaps_server_quickstart-0.6.0/tests/middleware/test_rate_limiting.py +1160 -0
  377. spaps_server_quickstart-0.6.0/tests/middleware/test_spaps_deps.py +692 -0
  378. spaps_server_quickstart-0.6.0/tests/test_alembic_naming.py +145 -0
  379. spaps_server_quickstart-0.6.0/tests/test_alembic_path_bootstrap.py +66 -0
  380. spaps_server_quickstart-0.6.0/tests/test_api_naming_guard.py +52 -0
  381. spaps_server_quickstart-0.6.0/tests/test_app_factory.py +298 -0
  382. spaps_server_quickstart-0.6.0/tests/test_auth.py +831 -0
  383. spaps_server_quickstart-0.6.0/tests/test_auth_dependencies.py +93 -0
  384. spaps_server_quickstart-0.6.0/tests/test_dependency_alignment.py +265 -0
  385. spaps_server_quickstart-0.6.0/tests/test_environment_safety.py +461 -0
  386. spaps_server_quickstart-0.6.0/tests/test_primitive_guardrails.py +508 -0
  387. spaps_server_quickstart-0.6.0/tests/test_sessions_blacklist.py +365 -0
  388. spaps_server_quickstart-0.6.0/tests/test_sessions_jwt.py +344 -0
  389. spaps_server_quickstart-0.6.0/tests/test_sessions_nonce.py +193 -0
  390. spaps_server_quickstart-0.6.0/tests/test_sessions_password.py +161 -0
  391. spaps_server_quickstart-0.6.0/tests/test_spaps_app.py +79 -0
  392. spaps_server_quickstart-0.6.0/tests/test_startup_validation.py +618 -0
  393. spaps_server_quickstart-0.5.0/.gitignore +0 -173
  394. spaps_server_quickstart-0.5.0/CHANGELOG.md +0 -116
  395. spaps_server_quickstart-0.5.0/PKG-INFO +0 -299
  396. spaps_server_quickstart-0.5.0/README.md +0 -226
  397. spaps_server_quickstart-0.5.0/docs/MIGRATION_GUIDE.md +0 -296
  398. spaps_server_quickstart-0.5.0/docs/TM-ENV-001-checklist.md +0 -290
  399. spaps_server_quickstart-0.5.0/docs/TM-ENV-001-summary.md +0 -177
  400. spaps_server_quickstart-0.5.0/docs/feature-plans/INDEX.md +0 -23
  401. spaps_server_quickstart-0.5.0/docs/security-audit-remediation-2026q1-tm007-tm008.md +0 -152
  402. spaps_server_quickstart-0.5.0/pyproject.toml +0 -154
  403. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/__init__.py +0 -116
  404. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/alembic/naming.py +0 -137
  405. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/api/domains/health_router.py +0 -158
  406. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/app_factory.py +0 -132
  407. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/auth/__init__.py +0 -454
  408. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/auth/dependencies.py +0 -52
  409. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/auth_channels.py +0 -368
  410. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/__init__.py +0 -8
  411. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/_db/__init__.py +0 -6
  412. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/_db/rls.py +0 -61
  413. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/affiliate_referrals/models.py +0 -417
  414. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/affiliate_referrals/repository.py +0 -687
  415. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/affiliate_referrals/router.py +0 -452
  416. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/affiliate_referrals/service.py +0 -1075
  417. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/agent_approvals/errors.py +0 -126
  418. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/agent_approvals/router.py +0 -492
  419. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/agent_approvals/schemas.py +0 -317
  420. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/agent_approvals/service.py +0 -975
  421. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/applications/models.py +0 -60
  422. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/applications/repository.py +0 -214
  423. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/applications/router.py +0 -136
  424. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/applications/schemas.py +0 -114
  425. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/applications/service.py +0 -274
  426. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/approval_authz_prod_hardening/__init__.py +0 -9
  427. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/approval_authz_prod_hardening/errors.py +0 -82
  428. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/approval_authz_prod_hardening/models.py +0 -131
  429. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/approval_authz_prod_hardening/repository.py +0 -80
  430. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/approval_authz_prod_hardening/router.py +0 -77
  431. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/approval_authz_prod_hardening/schemas.py +0 -89
  432. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/approval_authz_prod_hardening/service.py +0 -214
  433. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/audit/models.py +0 -108
  434. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/audit/repository.py +0 -171
  435. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/audit/router.py +0 -82
  436. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/audit/schemas.py +0 -81
  437. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/audit/service.py +0 -241
  438. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/auth/repository.py +0 -420
  439. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/auth/router.py +0 -384
  440. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/auth/schemas.py +0 -231
  441. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/auth/service.py +0 -1438
  442. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/cfo/errors.py +0 -50
  443. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/cfo/models.py +0 -134
  444. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/cfo/repository.py +0 -219
  445. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/cfo/router.py +0 -497
  446. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/cfo/schemas.py +0 -207
  447. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/cfo/service.py +0 -795
  448. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/cfo_roles/deps.py +0 -85
  449. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/cfo_roles/me_router.py +0 -163
  450. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/cfo_roles/router.py +0 -481
  451. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/cfo_roles/service.py +0 -793
  452. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/crypto/repository.py +0 -182
  453. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/crypto/router.py +0 -308
  454. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/crypto/service.py +0 -310
  455. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/dayrate/errors.py +0 -68
  456. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/dayrate/pricing.py +0 -114
  457. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/dayrate/repository.py +0 -520
  458. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/dayrate/router.py +0 -547
  459. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/dayrate/schemas.py +0 -375
  460. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/dayrate/service.py +0 -1694
  461. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/device_flow/router.py +0 -108
  462. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/device_flow/service.py +0 -301
  463. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/docs/repository.py +0 -267
  464. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/docs/router.py +0 -184
  465. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/docs/schemas.py +0 -167
  466. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/docs/service.py +0 -359
  467. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/email/models.py +0 -123
  468. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/email/router.py +0 -349
  469. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/email/schemas.py +0 -198
  470. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/email/service.py +0 -1041
  471. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/entitlements/models.py +0 -202
  472. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/entitlements/repository.py +0 -391
  473. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/entitlements/router.py +0 -426
  474. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/entitlements/schemas.py +0 -290
  475. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/entitlements/service.py +0 -1049
  476. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/errors.py +0 -191
  477. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/issue_reporting_platform/errors.py +0 -55
  478. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/issue_reporting_platform/models.py +0 -61
  479. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/issue_reporting_platform/repository.py +0 -164
  480. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/issue_reporting_platform/router.py +0 -277
  481. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/issue_reporting_platform/schemas.py +0 -93
  482. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/issue_reporting_platform/service.py +0 -409
  483. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/secure_messages/repository.py +0 -44
  484. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/secure_messages/router.py +0 -117
  485. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/secure_messages/service.py +0 -201
  486. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/security/models.py +0 -51
  487. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/security/repository.py +0 -117
  488. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/security/router.py +0 -65
  489. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/security/service.py +0 -179
  490. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/self_service/router.py +0 -294
  491. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/self_service/schemas.py +0 -169
  492. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/self_service/service.py +0 -347
  493. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/sessions/admin_detection.py +0 -225
  494. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/sessions/blacklist_service.py +0 -303
  495. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/sessions/jwt_service.py +0 -367
  496. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/sessions/nonce_service.py +0 -214
  497. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/sessions/password_service.py +0 -94
  498. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/sessions/repository.py +0 -484
  499. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/sessions/router.py +0 -152
  500. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/sessions/schemas.py +0 -85
  501. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/sessions/service.py +0 -581
  502. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/stripe/errors.py +0 -102
  503. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/stripe/guest_checkout.py +0 -233
  504. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/stripe/models.py +0 -315
  505. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/stripe/repository.py +0 -629
  506. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/stripe/router.py +0 -764
  507. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/stripe/schemas.py +0 -291
  508. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/stripe/service.py +0 -936
  509. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/stripe/webhook_handler.py +0 -366
  510. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/support_telemetry_platform/router.py +0 -262
  511. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/support_telemetry_platform/service.py +0 -527
  512. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/users/models.py +0 -134
  513. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/wallets/repository.py +0 -241
  514. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/wallets/router.py +0 -431
  515. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/wallets/schemas.py +0 -232
  516. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/wallets/service.py +0 -595
  517. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/webhooks/delivery.py +0 -337
  518. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/webhooks/destination_security.py +0 -35
  519. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/webhooks/errors.py +0 -68
  520. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/webhooks/repository.py +0 -202
  521. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/webhooks/router.py +0 -194
  522. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/webhooks/schemas.py +0 -177
  523. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/webhooks/service.py +0 -669
  524. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/webhooks/signing.py +0 -130
  525. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/whitelist/models.py +0 -62
  526. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/whitelist/repository.py +0 -267
  527. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/whitelist/router.py +0 -213
  528. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/whitelist/schemas.py +0 -167
  529. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/domains/whitelist/service.py +0 -244
  530. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/logging.py +0 -80
  531. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/middleware/api_key.py +0 -165
  532. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/middleware/envelope.py +0 -129
  533. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/middleware/error_handler.py +0 -101
  534. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/middleware/jwt_auth.py +0 -109
  535. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/middleware/key_scope.py +0 -82
  536. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/middleware/local_mode.py +0 -107
  537. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/middleware/origin_validation.py +0 -83
  538. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/middleware/rate_limiting.py +0 -407
  539. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/middleware/spaps_deps.py +0 -252
  540. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/settings.py +0 -239
  541. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/spaps_app.py +0 -256
  542. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/spaps_settings.py +0 -176
  543. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/startup.py +0 -447
  544. spaps_server_quickstart-0.5.0/src/spaps_server_quickstart/tasks/celery_factory.py +0 -40
  545. spaps_server_quickstart-0.5.0/tests/conftest.py +0 -9
  546. spaps_server_quickstart-0.5.0/tests/contracts/test_app_factory_contract.py +0 -83
  547. spaps_server_quickstart-0.5.0/tests/contracts/test_celery_contract.py +0 -79
  548. spaps_server_quickstart-0.5.0/tests/domains/affiliate_referrals/test_router.py +0 -599
  549. spaps_server_quickstart-0.5.0/tests/domains/affiliate_referrals/test_service.py +0 -1200
  550. spaps_server_quickstart-0.5.0/tests/domains/agent_approvals/test_repository.py +0 -77
  551. spaps_server_quickstart-0.5.0/tests/domains/agent_approvals/test_router.py +0 -914
  552. spaps_server_quickstart-0.5.0/tests/domains/agent_approvals/test_service.py +0 -2121
  553. spaps_server_quickstart-0.5.0/tests/domains/applications/test_repository.py +0 -376
  554. spaps_server_quickstart-0.5.0/tests/domains/applications/test_router.py +0 -689
  555. spaps_server_quickstart-0.5.0/tests/domains/approval_authz_prod_hardening/conftest.py +0 -54
  556. spaps_server_quickstart-0.5.0/tests/domains/approval_authz_prod_hardening/test_router.py +0 -322
  557. spaps_server_quickstart-0.5.0/tests/domains/approval_authz_prod_hardening/test_service.py +0 -380
  558. spaps_server_quickstart-0.5.0/tests/domains/approval_authz_prod_hardening/test_wiring.py +0 -439
  559. spaps_server_quickstart-0.5.0/tests/domains/audit/test_repository.py +0 -297
  560. spaps_server_quickstart-0.5.0/tests/domains/audit/test_router.py +0 -287
  561. spaps_server_quickstart-0.5.0/tests/domains/audit/test_service.py +0 -317
  562. spaps_server_quickstart-0.5.0/tests/domains/auth/test_refresh_token_anomaly.py +0 -359
  563. spaps_server_quickstart-0.5.0/tests/domains/auth/test_repository.py +0 -399
  564. spaps_server_quickstart-0.5.0/tests/domains/auth/test_router.py +0 -670
  565. spaps_server_quickstart-0.5.0/tests/domains/auth/test_service.py +0 -1660
  566. spaps_server_quickstart-0.5.0/tests/domains/cfo/test_repository.py +0 -350
  567. spaps_server_quickstart-0.5.0/tests/domains/cfo/test_router.py +0 -1014
  568. spaps_server_quickstart-0.5.0/tests/domains/cfo/test_service.py +0 -1322
  569. spaps_server_quickstart-0.5.0/tests/domains/cfo_roles/test_router.py +0 -829
  570. spaps_server_quickstart-0.5.0/tests/domains/cfo_roles/test_service.py +0 -1040
  571. spaps_server_quickstart-0.5.0/tests/domains/crypto/test_repository.py +0 -373
  572. spaps_server_quickstart-0.5.0/tests/domains/crypto/test_router.py +0 -465
  573. spaps_server_quickstart-0.5.0/tests/domains/crypto/test_service.py +0 -359
  574. spaps_server_quickstart-0.5.0/tests/domains/dayrate/test_allotment_service.py +0 -205
  575. spaps_server_quickstart-0.5.0/tests/domains/dayrate/test_booking_routes.py +0 -146
  576. spaps_server_quickstart-0.5.0/tests/domains/dayrate/test_enhanced_booking_service.py +0 -696
  577. spaps_server_quickstart-0.5.0/tests/domains/dayrate/test_pricing.py +0 -458
  578. spaps_server_quickstart-0.5.0/tests/domains/dayrate/test_repository.py +0 -353
  579. spaps_server_quickstart-0.5.0/tests/domains/dayrate/test_router.py +0 -747
  580. spaps_server_quickstart-0.5.0/tests/domains/dayrate/test_service.py +0 -1223
  581. spaps_server_quickstart-0.5.0/tests/domains/device_flow/test_router.py +0 -380
  582. spaps_server_quickstart-0.5.0/tests/domains/device_flow/test_service.py +0 -354
  583. spaps_server_quickstart-0.5.0/tests/domains/docs/test_repository.py +0 -324
  584. spaps_server_quickstart-0.5.0/tests/domains/docs/test_router.py +0 -514
  585. spaps_server_quickstart-0.5.0/tests/domains/docs/test_service.py +0 -452
  586. spaps_server_quickstart-0.5.0/tests/domains/email/test_env_safety.py +0 -306
  587. spaps_server_quickstart-0.5.0/tests/domains/email/test_router.py +0 -678
  588. spaps_server_quickstart-0.5.0/tests/domains/email/test_service.py +0 -1160
  589. spaps_server_quickstart-0.5.0/tests/domains/entitlements/test_repository.py +0 -341
  590. spaps_server_quickstart-0.5.0/tests/domains/entitlements/test_router.py +0 -719
  591. spaps_server_quickstart-0.5.0/tests/domains/entitlements/test_service.py +0 -1166
  592. spaps_server_quickstart-0.5.0/tests/domains/issue_reporting_platform/test_router.py +0 -405
  593. spaps_server_quickstart-0.5.0/tests/domains/issue_reporting_platform/test_service.py +0 -369
  594. spaps_server_quickstart-0.5.0/tests/domains/secure_messages/test_router.py +0 -263
  595. spaps_server_quickstart-0.5.0/tests/domains/secure_messages/test_service.py +0 -233
  596. spaps_server_quickstart-0.5.0/tests/domains/security/test_repository.py +0 -242
  597. spaps_server_quickstart-0.5.0/tests/domains/security/test_router.py +0 -283
  598. spaps_server_quickstart-0.5.0/tests/domains/security/test_service.py +0 -334
  599. spaps_server_quickstart-0.5.0/tests/domains/self_service/test_router.py +0 -885
  600. spaps_server_quickstart-0.5.0/tests/domains/sessions/test_router.py +0 -362
  601. spaps_server_quickstart-0.5.0/tests/domains/sessions/test_service.py +0 -667
  602. spaps_server_quickstart-0.5.0/tests/domains/stripe/test_guest_checkout.py +0 -495
  603. spaps_server_quickstart-0.5.0/tests/domains/stripe/test_repository.py +0 -399
  604. spaps_server_quickstart-0.5.0/tests/domains/stripe/test_router.py +0 -804
  605. spaps_server_quickstart-0.5.0/tests/domains/stripe/test_service.py +0 -709
  606. spaps_server_quickstart-0.5.0/tests/domains/stripe/test_webhook_handler.py +0 -620
  607. spaps_server_quickstart-0.5.0/tests/domains/support_telemetry_platform/test_router.py +0 -255
  608. spaps_server_quickstart-0.5.0/tests/domains/support_telemetry_platform/test_service.py +0 -358
  609. spaps_server_quickstart-0.5.0/tests/domains/test_smoke.py +0 -233
  610. spaps_server_quickstart-0.5.0/tests/domains/wallets/test_repository.py +0 -403
  611. spaps_server_quickstart-0.5.0/tests/domains/wallets/test_router.py +0 -761
  612. spaps_server_quickstart-0.5.0/tests/domains/wallets/test_service.py +0 -776
  613. spaps_server_quickstart-0.5.0/tests/domains/webhooks/test_delivery.py +0 -438
  614. spaps_server_quickstart-0.5.0/tests/domains/webhooks/test_repository.py +0 -371
  615. spaps_server_quickstart-0.5.0/tests/domains/webhooks/test_router.py +0 -552
  616. spaps_server_quickstart-0.5.0/tests/domains/webhooks/test_service.py +0 -853
  617. spaps_server_quickstart-0.5.0/tests/domains/whitelist/test_repository.py +0 -635
  618. spaps_server_quickstart-0.5.0/tests/domains/whitelist/test_router.py +0 -589
  619. spaps_server_quickstart-0.5.0/tests/middleware/test_api_key.py +0 -358
  620. spaps_server_quickstart-0.5.0/tests/middleware/test_jwt_auth.py +0 -290
  621. spaps_server_quickstart-0.5.0/tests/middleware/test_key_scope.py +0 -110
  622. spaps_server_quickstart-0.5.0/tests/middleware/test_local_mode.py +0 -102
  623. spaps_server_quickstart-0.5.0/tests/middleware/test_origin_validation.py +0 -151
  624. spaps_server_quickstart-0.5.0/tests/middleware/test_rate_limiting.py +0 -710
  625. spaps_server_quickstart-0.5.0/tests/middleware/test_spaps_deps.py +0 -523
  626. spaps_server_quickstart-0.5.0/tests/test_alembic_naming.py +0 -52
  627. spaps_server_quickstart-0.5.0/tests/test_app_factory.py +0 -159
  628. spaps_server_quickstart-0.5.0/tests/test_auth.py +0 -667
  629. spaps_server_quickstart-0.5.0/tests/test_auth_dependencies.py +0 -77
  630. spaps_server_quickstart-0.5.0/tests/test_environment_safety.py +0 -431
  631. spaps_server_quickstart-0.5.0/tests/test_sessions_blacklist.py +0 -254
  632. spaps_server_quickstart-0.5.0/tests/test_sessions_jwt.py +0 -345
  633. spaps_server_quickstart-0.5.0/tests/test_sessions_nonce.py +0 -182
  634. spaps_server_quickstart-0.5.0/tests/test_sessions_password.py +0 -140
  635. spaps_server_quickstart-0.5.0/tests/test_startup_validation.py +0 -591
  636. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/.python-version +0 -0
  637. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/TM-002-IMPLEMENTATION.md +0 -0
  638. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/docs/TDD_PLAN.md +0 -0
  639. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/docs/TM-ENV-001-email-environment-safety.md +0 -0
  640. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/docs/UPGRADING.md +0 -0
  641. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/docs/feature-plans/_archived/diff-mvp-plan.md +0 -0
  642. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/docs/feature-plans/security-audit-remediation-2026q1/AUDIT_REPORT.md +0 -0
  643. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/docs/feature-plans/security-audit-remediation-2026q1/README.md +0 -0
  644. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/docs/feature-plans/security-audit-remediation-2026q1/backend.md +0 -0
  645. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/docs/feature-plans/security-audit-remediation-2026q1/flows.md +0 -0
  646. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/docs/feature-plans/security-audit-remediation-2026q1/frontend.md +0 -0
  647. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/docs/feature-plans/security-audit-remediation-2026q1/plan.md +0 -0
  648. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/docs/feature-plans/security-audit-remediation-2026q1/schema.mmd +0 -0
  649. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/docs/feature-plans/security-audit-remediation-2026q1/shared.md +0 -0
  650. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/docs/messaging-broker-plan.md +0 -0
  651. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/scripts/release.sh +0 -0
  652. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/alembic/__init__.py +0 -0
  653. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/api/__init__.py +0 -0
  654. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/api/dependencies.py +0 -0
  655. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/api/domains/__init__.py +0 -0
  656. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/api/domains/metrics_router.py +0 -0
  657. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/api/health.py +0 -0
  658. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/api/router.py +0 -0
  659. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/auth/cookies.py +0 -0
  660. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/db/__init__.py +0 -0
  661. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/db/alembic_status.py +0 -0
  662. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/db/migration_runner.py +0 -0
  663. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/db/session.py +0 -0
  664. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/_db/base.py +0 -0
  665. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/_db/types.py +0 -0
  666. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/affiliate_referrals/__init__.py +0 -0
  667. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/affiliate_referrals/errors.py +0 -0
  668. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/affiliate_referrals/schemas.py +0 -0
  669. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/agent_approvals/__init__.py +0 -0
  670. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/agent_approvals/models.py +0 -0
  671. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/agent_approvals/repository.py +0 -0
  672. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/applications/__init__.py +0 -0
  673. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/audit/__init__.py +0 -0
  674. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/audit/errors.py +0 -0
  675. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/audit/retention.py +0 -0
  676. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/auth/__init__.py +0 -0
  677. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/cfo/__init__.py +0 -0
  678. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/cfo/quickbooks.py +0 -0
  679. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/cfo_roles/__init__.py +0 -0
  680. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/cfo_roles/errors.py +0 -0
  681. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/cfo_roles/schemas.py +0 -0
  682. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/crypto/__init__.py +0 -0
  683. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/crypto/errors.py +0 -0
  684. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/crypto/models.py +0 -0
  685. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/crypto/schemas.py +0 -0
  686. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/dayrate/__init__.py +0 -0
  687. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/dayrate/models.py +0 -0
  688. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/device_flow/__init__.py +0 -0
  689. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/device_flow/repository.py +0 -0
  690. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/device_flow/schemas.py +0 -0
  691. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/device_flow/store.py +0 -0
  692. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/docs/__init__.py +0 -0
  693. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/docs/errors.py +0 -0
  694. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/docs/models.py +0 -0
  695. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/email/__init__.py +0 -0
  696. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/email/config.py +0 -0
  697. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/email/errors.py +0 -0
  698. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/email/mailgun.py +0 -0
  699. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/email/repository.py +0 -0
  700. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/entitlements/__init__.py +0 -0
  701. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/entitlements/errors.py +0 -0
  702. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/events.py +0 -0
  703. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/issue_reporting_platform/__init__.py +0 -0
  704. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/secure_messages/__init__.py +0 -0
  705. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/secure_messages/encryption.py +0 -0
  706. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/secure_messages/errors.py +0 -0
  707. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/secure_messages/models.py +0 -0
  708. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/secure_messages/schemas.py +0 -0
  709. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/security/__init__.py +0 -0
  710. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/security/errors.py +0 -0
  711. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/security/schemas.py +0 -0
  712. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/self_service/__init__.py +0 -0
  713. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/self_service/errors.py +0 -0
  714. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/sessions/__init__.py +0 -0
  715. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/sessions/models.py +0 -0
  716. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/stripe/__init__.py +0 -0
  717. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/support_telemetry_platform/__init__.py +0 -0
  718. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/support_telemetry_platform/errors.py +0 -0
  719. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/support_telemetry_platform/models.py +0 -0
  720. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/support_telemetry_platform/repository.py +0 -0
  721. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/support_telemetry_platform/schemas.py +0 -0
  722. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/users/__init__.py +0 -0
  723. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/users/repository.py +0 -0
  724. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/users/router.py +0 -0
  725. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/users/schemas.py +0 -0
  726. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/users/service.py +0 -0
  727. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/wallets/__init__.py +0 -0
  728. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/wallets/chains/__init__.py +0 -0
  729. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/wallets/chains/dispatcher.py +0 -0
  730. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/wallets/chains/ethereum.py +0 -0
  731. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/wallets/chains/solana.py +0 -0
  732. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/wallets/models.py +0 -0
  733. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/webhooks/__init__.py +0 -0
  734. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/webhooks/models.py +0 -0
  735. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/domains/whitelist/__init__.py +0 -0
  736. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/local_mode/__init__.py +0 -0
  737. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/local_mode/middleware.py +0 -0
  738. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/local_mode/personas.py +0 -0
  739. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/middleware/__init__.py +0 -0
  740. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/middleware/security_headers.py +0 -0
  741. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/middleware.py +0 -0
  742. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/rbac/__init__.py +0 -0
  743. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/schemas/__init__.py +0 -0
  744. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/schemas/health.py +0 -0
  745. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/sdk/__init__.py +0 -0
  746. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/sdk/_ttl_cache.py +0 -0
  747. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/sdk/admin_token_cache.py +0 -0
  748. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/sdk/feature_evaluator.py +0 -0
  749. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/sdk/role_hierarchy.py +0 -0
  750. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/sdk/server_clients.py +0 -0
  751. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/sdk/trusted_service_middleware.py +0 -0
  752. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/secure_messaging.py +0 -0
  753. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/seeds/__init__.py +0 -0
  754. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/seeds/cli.py +0 -0
  755. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/seeds/schemas.py +0 -0
  756. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/seeds/validator.py +0 -0
  757. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/tasks/__init__.py +0 -0
  758. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/tasks/health.py +0 -0
  759. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/tasks/notifications.py +0 -0
  760. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/.pre-commit-config.yaml +0 -0
  761. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/__init__.py +0 -0
  762. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/alembic/env.py +0 -0
  763. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/alembic/script.py.mako +0 -0
  764. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/alembic/versions/.gitkeep +0 -0
  765. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/alembic.ini +0 -0
  766. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/docs/templates/API_DOCUMENTATION_TEMPLATE.md +0 -0
  767. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/docs/templates/DEBUG_REPORT_TEMPLATE.md +0 -0
  768. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/docs/templates/OPERATIONS_PLAYBOOK_TEMPLATE.md +0 -0
  769. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/domains/__init__.py +0 -0
  770. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/domains/admin/router.py +0 -0
  771. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/domains/auth/local_routes.py +0 -0
  772. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/domains/users/__init__.py +0 -0
  773. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/domains/users/models.py +0 -0
  774. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/domains/users/repository.py +0 -0
  775. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/domains/users/router.py +0 -0
  776. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/domains/users/schemas.py +0 -0
  777. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/domains/users/service.py +0 -0
  778. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/.env.production.example +0 -0
  779. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/.githooks/pre-push +0 -0
  780. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/.github/workflows/deploy.yml +0 -0
  781. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/.github/workflows/rollback.yml +0 -0
  782. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/Makefile +0 -0
  783. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/deploy/deploy.sh +0 -0
  784. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/deploy/docker-compose.migration.yml +0 -0
  785. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/deploy/post-deploy-verify.sh +0 -0
  786. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/deploy/pre-deploy-checks.sh +0 -0
  787. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/docker-compose.prod.yml +0 -0
  788. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/scripts/backup-db.sh +0 -0
  789. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/scripts/dev/await_db.py +0 -0
  790. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/scripts/dev/fetch-prod-db.sh +0 -0
  791. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/scripts/dev/local-debug-loop.sh +0 -0
  792. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/scripts/dev/start-db.sh +0 -0
  793. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/scripts/dev/stop-db.sh +0 -0
  794. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/scripts/new-migration.sh +0 -0
  795. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/scripts/prepush.sh +0 -0
  796. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/operations/scripts/restore-db.sh +0 -0
  797. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/scripts/__init__.py +0 -0
  798. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/scripts/seeds/__init__.py +0 -0
  799. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/scripts/seeds/data/users.yaml +0 -0
  800. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/scripts/seeds/schemas/__init__.py +0 -0
  801. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/scripts/seeds/schemas/users.py +0 -0
  802. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/tests/README.md +0 -0
  803. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/tests/__init__.py +0 -0
  804. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/tests/api/__init__.py +0 -0
  805. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/tests/api/test_health.py +0 -0
  806. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/tests/api/test_users_auth.py +0 -0
  807. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/tests/conftest.py +0 -0
  808. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/tests/domains/__init__.py +0 -0
  809. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/tests/domains/example/__init__.py +0 -0
  810. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/tests/domains/example/conftest.py +0 -0
  811. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/tests/domains/users/__init__.py +0 -0
  812. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/tests/domains/users/conftest.py +0 -0
  813. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/tests/integration/__init__.py +0 -0
  814. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/tests/integration/test_db_connectivity.py +0 -0
  815. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/tests/unit/__init__.py +0 -0
  816. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/templates/tests/unit/test_settings.py +0 -0
  817. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/src/spaps_server_quickstart/testing.py +0 -0
  818. {spaps_server_quickstart-0.5.0/tests/contracts → spaps_server_quickstart-0.6.0/src/spaps_server_quickstart/tools}/__init__.py +0 -0
  819. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/Makefile +0 -0
  820. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/docker-compose.yml +0 -0
  821. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/.env.production.example +0 -0
  822. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/.github/workflows/deploy.yml +0 -0
  823. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/Makefile +0 -0
  824. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/deploy/deploy.sh +0 -0
  825. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/deploy/post-deploy-verify.sh +0 -0
  826. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/deploy/pre-deploy-checks.sh +0 -0
  827. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/deploy/reverse-proxy/README.md +0 -0
  828. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/deploy/reverse-proxy/certs/.gitkeep +0 -0
  829. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/deploy/reverse-proxy/docker-compose.yml +0 -0
  830. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/deploy/reverse-proxy/nginx.conf +0 -0
  831. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/deploy/reverse-proxy/sites-available/.gitkeep +0 -0
  832. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/deploy/reverse-proxy/sites-enabled/.gitkeep +0 -0
  833. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/deploy/reverse-proxy/static/.gitkeep +0 -0
  834. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/deploy/reverse-proxy/up.sh +0 -0
  835. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/docker-compose.dev.yml +0 -0
  836. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/docker-compose.prod.yml +0 -0
  837. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/scripts/dev/await_db.py +0 -0
  838. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/scripts/dev/local-debug-loop.sh +0 -0
  839. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/scripts/dev/start-db.sh +0 -0
  840. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/operations/scripts/dev/stop-db.sh +0 -0
  841. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/templates/tests/conftest.py +0 -0
  842. {spaps_server_quickstart-0.5.0/tests/domains/affiliate_referrals → spaps_server_quickstart-0.6.0/tests/contracts}/__init__.py +0 -0
  843. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/contracts/test_auth_contract.py +0 -0
  844. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/contracts/test_db_contract.py +0 -0
  845. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/contracts/test_dependencies_contract.py +0 -0
  846. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/contracts/test_health_contract.py +0 -0
  847. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/contracts/test_manifest_parity.py +0 -0
  848. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/contracts/test_oss_hygiene_script.py +0 -0
  849. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/contracts/test_router_contract.py +0 -0
  850. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/contracts/test_settings_contract.py +0 -0
  851. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/__init__.py +0 -0
  852. {spaps_server_quickstart-0.5.0/tests/domains/agent_approvals → spaps_server_quickstart-0.6.0/tests/domains/_db}/__init__.py +0 -0
  853. {spaps_server_quickstart-0.5.0/tests/domains/applications → spaps_server_quickstart-0.6.0/tests/domains/affiliate_referrals}/__init__.py +0 -0
  854. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/affiliate_referrals/test_schemas.py +0 -0
  855. {spaps_server_quickstart-0.5.0/tests/domains/approval_authz_prod_hardening → spaps_server_quickstart-0.6.0/tests/domains/agent_approvals}/__init__.py +0 -0
  856. {spaps_server_quickstart-0.5.0/tests/domains/audit → spaps_server_quickstart-0.6.0/tests/domains/applications}/__init__.py +0 -0
  857. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/applications/test_service.py +0 -0
  858. {spaps_server_quickstart-0.5.0/tests/domains/auth → spaps_server_quickstart-0.6.0/tests/domains/audit}/__init__.py +0 -0
  859. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/audit/test_retention.py +0 -0
  860. {spaps_server_quickstart-0.5.0/tests/domains/cfo → spaps_server_quickstart-0.6.0/tests/domains/auth}/__init__.py +0 -0
  861. {spaps_server_quickstart-0.5.0/tests/domains/crypto → spaps_server_quickstart-0.6.0/tests/domains/cfo}/__init__.py +0 -0
  862. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/cfo_roles/__init__.py +0 -0
  863. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/conftest.py +0 -0
  864. {spaps_server_quickstart-0.5.0/tests/domains/dayrate → spaps_server_quickstart-0.6.0/tests/domains/crypto}/__init__.py +0 -0
  865. {spaps_server_quickstart-0.5.0/tests/domains/device_flow → spaps_server_quickstart-0.6.0/tests/domains/dayrate}/__init__.py +0 -0
  866. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/dayrate/test_booking_policy_service.py +0 -0
  867. {spaps_server_quickstart-0.5.0/tests/domains/docs → spaps_server_quickstart-0.6.0/tests/domains/device_flow}/__init__.py +0 -0
  868. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/device_flow/test_store.py +0 -0
  869. {spaps_server_quickstart-0.5.0/tests/domains/email → spaps_server_quickstart-0.6.0/tests/domains/docs}/__init__.py +0 -0
  870. {spaps_server_quickstart-0.5.0/tests/domains/entitlements → spaps_server_quickstart-0.6.0/tests/domains/email}/__init__.py +0 -0
  871. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/email/test_config.py +0 -0
  872. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/email/test_repository.py +0 -0
  873. {spaps_server_quickstart-0.5.0/tests/domains/secure_messages → spaps_server_quickstart-0.6.0/tests/domains/entitlements}/__init__.py +0 -0
  874. {spaps_server_quickstart-0.5.0/tests/domains/security → spaps_server_quickstart-0.6.0/tests/domains/policies}/__init__.py +0 -0
  875. {spaps_server_quickstart-0.5.0/tests/domains/self_service → spaps_server_quickstart-0.6.0/tests/domains/realtime}/__init__.py +0 -0
  876. {spaps_server_quickstart-0.5.0/tests/domains/sessions → spaps_server_quickstart-0.6.0/tests/domains/secure_messages}/__init__.py +0 -0
  877. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/secure_messages/test_encryption.py +0 -0
  878. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/secure_messages/test_tm013_security.py +0 -0
  879. {spaps_server_quickstart-0.5.0/tests/domains/stripe → spaps_server_quickstart-0.6.0/tests/domains/security}/__init__.py +0 -0
  880. {spaps_server_quickstart-0.5.0/tests/domains/users → spaps_server_quickstart-0.6.0/tests/domains/self_service}/__init__.py +0 -0
  881. {spaps_server_quickstart-0.5.0/tests/domains/wallets → spaps_server_quickstart-0.6.0/tests/domains/sessions}/__init__.py +0 -0
  882. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/sessions/test_admin_detection.py +0 -0
  883. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/sessions/test_repository.py +0 -0
  884. {spaps_server_quickstart-0.5.0/tests/domains/webhooks → spaps_server_quickstart-0.6.0/tests/domains/stripe}/__init__.py +0 -0
  885. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/stripe/test_subscription_application_scoping.py +0 -0
  886. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/support_telemetry_platform/__init__.py +0 -0
  887. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/support_telemetry_platform/test_repository.py +0 -0
  888. {spaps_server_quickstart-0.5.0/tests/domains/whitelist → spaps_server_quickstart-0.6.0/tests/domains/users}/__init__.py +0 -0
  889. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/users/test_repository.py +0 -0
  890. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/users/test_router.py +0 -0
  891. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/users/test_service.py +0 -0
  892. {spaps_server_quickstart-0.5.0/tests/middleware → spaps_server_quickstart-0.6.0/tests/domains/wallets}/__init__.py +0 -0
  893. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/wallets/test_chains.py +0 -0
  894. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/webhooks/test_signing.py +0 -0
  895. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/domains/whitelist/test_service.py +0 -0
  896. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/middleware/test_security_headers.py +0 -0
  897. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/seeds/test_cli.py +0 -0
  898. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_api_router.py +0 -0
  899. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_auth_channels.py +0 -0
  900. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_auth_cookies.py +0 -0
  901. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_bcrypt_compat.py +0 -0
  902. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_db_session.py +0 -0
  903. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_dev_data_pipeline.py +0 -0
  904. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_health_router.py +0 -0
  905. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_imports.py +0 -0
  906. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_local_mode.py +0 -0
  907. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_logging.py +0 -0
  908. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_middleware.py +0 -0
  909. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_migration_runner.py +0 -0
  910. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_migration_status.py +0 -0
  911. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_operations_templates.py +0 -0
  912. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_package_metadata.py +0 -0
  913. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_rbac.py +0 -0
  914. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_readme_snippets.py +0 -0
  915. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_sdk.py +0 -0
  916. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_secure_messaging.py +0 -0
  917. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_seed_validation.py +0 -0
  918. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_session_autocommit.py +0 -0
  919. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_settings.py +0 -0
  920. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/tests/test_tasks.py +0 -0
  921. {spaps_server_quickstart-0.5.0 → spaps_server_quickstart-0.6.0}/todo.md +0 -0
@@ -0,0 +1,202 @@
1
+ # Dependencies
2
+ node_modules/
3
+ *.log
4
+ npm-debug.log*
5
+ yarn-debug.log*
6
+ yarn-error.log*
7
+ lerna-debug.log*
8
+
9
+ sweet-potato-threat-model.md
10
+
11
+ # Python
12
+ **/__pycache__/
13
+ *.py[cod]
14
+ *.pyo
15
+ *.pyd
16
+ .venv/
17
+ *.egg-info/
18
+
19
+ # Testing
20
+ coverage/
21
+ coverage-*/
22
+ **/coverage/
23
+ **/coverage-*/
24
+ **/.coverage
25
+ **/.coverage.*
26
+ **/.pytest_cache/
27
+ **/.mypy_cache/
28
+ **/.ruff_cache/
29
+ **/.hypothesis/
30
+ **/.testmondata
31
+ **/.testmondata-shm
32
+ **/.testmondata-wal
33
+ *.lcov
34
+ **/lcov.info
35
+ **/lcov-report/
36
+ .nyc_output
37
+ packages/python-client/.coverage
38
+
39
+ # Production builds
40
+ dist/
41
+ **/dist/
42
+ build/
43
+ out/
44
+ *.tsbuildinfo
45
+
46
+ # Storybook
47
+ storybook-static/
48
+ *.storybook
49
+
50
+ # Environment files
51
+ .env
52
+ .env.*
53
+ *.env
54
+ *.env.draft
55
+ **/.env
56
+ **/.env.*
57
+ .env.development
58
+ .env.production
59
+ .env.staging
60
+ .env.deploy
61
+ .env.local
62
+ .env.development.local
63
+ .env.test.local
64
+ .env.production.local
65
+ # Allow committed templates/examples
66
+ !*.env.example
67
+ !*.env.sample
68
+ !*.env.template
69
+ !**/.env.example
70
+ !**/.env.sample
71
+ !**/.env.template
72
+ !**/.env.*.example
73
+ !**/.env.*.sample
74
+ !**/.env.*.template
75
+ !**/*.env.example
76
+ !**/*.env.sample
77
+ !**/*.env.template
78
+
79
+ # IDE
80
+ .vscode/
81
+ .idea/
82
+ .codex/
83
+ .mcp.json
84
+ .claude/settings.local.json
85
+ .claude/skills/
86
+ .beads/*.db
87
+ .beads/*.db-shm
88
+ .beads/*.db-wal
89
+ *.swp
90
+ *.swo
91
+ *.swn
92
+ .DS_Store
93
+
94
+ # Debug
95
+ debug.log
96
+ *.log
97
+
98
+ # Temporary files
99
+ tmp/
100
+ temp/
101
+ *.tmp
102
+ packages/python-client/**/__pycache__/
103
+
104
+ # Package manager files
105
+ .pnp.*
106
+ .yarn/*
107
+ !.yarn/patches
108
+ !.yarn/plugins
109
+ !.yarn/releases
110
+ !.yarn/sdks
111
+ !.yarn/versions
112
+
113
+ # Next.js specific
114
+ .next/
115
+ next-env.d.ts
116
+ .vercel/
117
+
118
+ # Example projects - ignore build artifacts
119
+ examples/**/.next/
120
+ examples/**/node_modules/
121
+ examples/**/dist/
122
+ examples/**/build/
123
+ examples/**/*.log
124
+ examples/**/.env
125
+ examples/**/.env.local
126
+
127
+ # MCP/Sweetpotato docs build
128
+ mcp-sweetpotato-docs/node_modules/
129
+ mcp-sweetpotato-docs/dist/
130
+ mcp-sweetpotato-docs/build/
131
+ mcp-sweetpotato-docs/.next/
132
+
133
+ # Large test files
134
+ *.jpg
135
+ *.jpeg
136
+ *.png
137
+ *.gif
138
+ *.bmp
139
+ *.mp4
140
+ *.mov
141
+ *.avi
142
+ *.zip
143
+ *.tar
144
+ *.gz
145
+ *.rar
146
+
147
+ # Database files
148
+ *.sqlite
149
+ *.sqlite3
150
+ *.db
151
+
152
+ # Supabase production backups (contain real user data)
153
+ schema.sql
154
+ roles.sql
155
+ data.sql
156
+ backup-feb8.sql
157
+
158
+ # Stripe CLI
159
+ .stripe-listen.pid
160
+
161
+ # Local Solana Devnet keypairs
162
+ *-devnet.json
163
+
164
+ # Local modes/swarm artifacts
165
+ .ntm/
166
+ .skillbox/
167
+ MODES_ANALYSIS_PROGRESS.md
168
+ MODES_OF_REASONING_REPORT_AND_ANALYSIS_OF_PROJECT.md
169
+ MODE_OUTPUT_*.md
170
+ MODES_SWARM/
171
+
172
+ # OS files
173
+ Thumbs.db
174
+ Desktop.ini
175
+
176
+ # Backup files
177
+ *.bak
178
+ *.backup
179
+ *.old
180
+
181
+ # Test output
182
+ test-results/
183
+ playwright-report/
184
+ playwright/.cache/
185
+ tests/artifacts/
186
+
187
+ # Lock files that shouldn't be committed for libraries
188
+ # (keep package-lock.json for applications)
189
+ # yarn.lock
190
+ # pnpm-lock.yaml*.tgz
191
+
192
+ **/coverage.xml
193
+
194
+ context.yaml
195
+ MODES_OF_REASONING_SECOND_PASS_REPORT.md
196
+ skillbox-config/
197
+
198
+ # Simplify/refactor tool run artifacts
199
+ refactor/
200
+
201
+ # bv (beads viewer) local config and caches
202
+ .bv/
@@ -0,0 +1,139 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project are documented in this file.
4
+
5
+ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [Unreleased]
8
+
9
+ ## [0.6.0] - 2026-05-29
10
+
11
+ ### Added
12
+
13
+ - Shared WebSocket connect-auth: `mint_ws_ticket`, `consume_ws_ticket`, and the `resolve_ws_identity` WebSocket helper, plus a `POST /realtime/ws-ticket` route. Browsers cannot set the WebSocket `Authorization` header, so apps mint a short-lived, single-use connection ticket over authenticated HTTP and present it on the socket query string. Built on the existing one-time `AuthToken` primitive (`type="ws_connect"`) — no new table.
14
+ - Added reusable hosted-asset storage adapters and issue-reporting screenshot attachment routes backed by private hosted objects.
15
+
16
+ ## [0.5.1] - 2026-04-25
17
+
18
+ ### Fixed
19
+
20
+ - Hardened request middleware for API keys, key scopes, origin validation, rate limiting, webhook delivery, and self-service access paths.
21
+
22
+ ## [0.5.0] - 2026-03-29
23
+
24
+ ### Added
25
+
26
+ - End-user issue-reporting flows, runtime token admin support, and support-telemetry helpers for downstream FastAPI services.
27
+ - Browser-friendly device-flow verification and expanded reusable database helper surface.
28
+
29
+ ### Fixed
30
+
31
+ - Magic-link redirect handling, stale session admin-email behavior, and related auth/session hardening.
32
+ - Hotspot complexity and coverage gaps across webhook, auth, and session paths.
33
+
34
+ ## [0.4.0] - 2026-02-11
35
+
36
+ ### Added
37
+
38
+ - Full domain rewrite covering auth, sessions, users, wallets, payments, entitlements, dayrate, agent approvals, affiliate referrals, email templates, and related operational domains.
39
+ - Approval capability gates and governance health endpoint.
40
+
41
+ ### Changed
42
+
43
+ - Production cutover to Python SPAPS stack (CI/CD, Docker Compose, deploy scripts).
44
+ - Consolidated SPAPS integration patterns into published packages.
45
+
46
+ ### Security
47
+
48
+ - Rate limiting by client IP.
49
+ - PII encryption startup checks.
50
+ - Webhook authentication hardening.
51
+ - Row-level locking on refresh tokens.
52
+ - Fail-closed settings defaults.
53
+
54
+ ## [0.3.0] - 2026-02-08
55
+
56
+ ### Added
57
+
58
+ - Contract tests and shared testing module.
59
+ - Health endpoint enhancements.
60
+
61
+ ### Changed
62
+
63
+ - Expanded coverage across settings, middleware, database, Celery, and auth helpers.
64
+
65
+ ## [0.2.3] - 2026-01-12
66
+
67
+ ### Fixed
68
+
69
+ - `SpapsAuthMiddleware` now skips execution when `authenticated_user` is already populated.
70
+
71
+ ## [0.2.2] - 2026-01-11
72
+
73
+ ### Added
74
+
75
+ - `fnmatch` glob support for `spaps_auth_exempt_paths`.
76
+ - Set-password endpoint support for authenticated users.
77
+ - Stripe webhook admin tooling for entitlement workflows.
78
+ - Tier 3 templates: seeds, tests, domain examples, docs.
79
+ - Startup validation, Alembic templates, and CI/CD workflow scaffolding.
80
+
81
+ ## [0.2.1] - 2025-12-01
82
+
83
+ ### Added
84
+
85
+ - Shared pgvector dev scripts: `start-db.sh`, `stop-db.sh`, `await_db.py`.
86
+ - Dynamic DNS resolver support for Docker reverse-proxy setups.
87
+
88
+ ### Fixed
89
+
90
+ - nginx DNS caching behavior.
91
+ - HTMA rate-limiting exemption handling.
92
+
93
+ ## [0.2.0] - 2025-10-15
94
+
95
+ ### Added
96
+
97
+ - Local auth bypass mode with pre-configured admin/user personas.
98
+ - Deployment check scripts (`pre-deploy`, `post-deploy`).
99
+ - Database caching workflow for local debug loops.
100
+ - Operational templates (Makefile, GHCR deploy, compose/reverse-proxy stubs).
101
+
102
+ ### Security
103
+
104
+ - Production guardrails for local-auth bypass mode.
105
+
106
+ ## [0.1.2] - 2025-10-15
107
+
108
+ ### Fixed
109
+
110
+ - CI pipeline trigger scoping and quickstart build stability.
111
+
112
+ ## [0.1.1] - 2025-10-14
113
+
114
+ ### Changed
115
+
116
+ - Maintenance release to unblock automated PyPI publishing workflow.
117
+
118
+ ## [0.1.0] - 2025-10-14
119
+
120
+ ### Added
121
+
122
+ - FastAPI lifespan handling for SPAPS auth cleanup.
123
+ - Migration and upgrading guidance for downstream services.
124
+ - Shared refresh-cookie configuration and browser helper exports.
125
+ - Expanded package exports for auth helpers and operational templates.
126
+ - RBAC role helpers and sample domain routers.
127
+ - Comprehensive unit tests across settings, middleware, DB, Celery, and auth helpers.
128
+
129
+ ## [0.0.2] - 2025-10-12
130
+
131
+ ### Added
132
+
133
+ - Declared the `spaps` Python client dependency for downstream installs and CI runs.
134
+
135
+ ## [0.0.1] - 2025-10-14
136
+
137
+ ### Added
138
+
139
+ - Initial `spaps-server-quickstart` scaffold with shared FastAPI/Celery/database utilities.
@@ -0,0 +1,308 @@
1
+ Metadata-Version: 2.4
2
+ Name: spaps-server-quickstart
3
+ Version: 0.6.0
4
+ Summary: Shared FastAPI/Celery scaffolding for Sweet Potato service backends.
5
+ Project-URL: Homepage, https://api.sweetpotato.dev
6
+ Project-URL: Repository, https://github.com/sweet-potato/spaps
7
+ Author-email: buildooor <buildooor@gmail.com>
8
+ License: MIT
9
+ Keywords: celery,fastapi,quickstart,spaps,sweet-potato
10
+ Classifier: Framework :: FastAPI
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3 :: Only
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Topic :: Internet :: WWW/HTTP
17
+ Requires-Python: >=3.12
18
+ Requires-Dist: aioboto3<14.0,>=13.3.0
19
+ Requires-Dist: alembic<2.0,>=1.13.1
20
+ Requires-Dist: asyncpg<0.31,>=0.30.0
21
+ Requires-Dist: bcrypt<6.0,>=4.0.0
22
+ Requires-Dist: botocore<2.0,>=1.35.0
23
+ Requires-Dist: celery<6.0,>=5.5.3
24
+ Requires-Dist: cryptography<45.0,>=42.0.0
25
+ Requires-Dist: email-validator<3.0,>=2.1.0
26
+ Requires-Dist: eth-account<1.0,>=0.13.0
27
+ Requires-Dist: fastapi<0.119,>=0.118.0
28
+ Requires-Dist: greenlet<4.0,>=3.0.3
29
+ Requires-Dist: httpx<0.29,>=0.28.1
30
+ Requires-Dist: orjson<4.0,>=3.10.0
31
+ Requires-Dist: packaging<27.0,>=23.0
32
+ Requires-Dist: pgvector<0.5,>=0.4.1
33
+ Requires-Dist: psycopg[binary]<3.3,>=3.2.10
34
+ Requires-Dist: pydantic-settings<3.0,>=2.3.0
35
+ Requires-Dist: pydantic<3.0,>=2.8.0
36
+ Requires-Dist: pyjwt<3.0,>=2.8.0
37
+ Requires-Dist: python-dotenv<2.0,>=1.0.1
38
+ Requires-Dist: python-multipart<0.1,>=0.0.20
39
+ Requires-Dist: redis<7.0,>=6.4.0
40
+ Requires-Dist: slowapi<1.0,>=0.1.9
41
+ Requires-Dist: solders<1.0,>=0.21.0
42
+ Requires-Dist: spaps>=0.1.2
43
+ Requires-Dist: sqlalchemy<3.0,>=2.0.30
44
+ Requires-Dist: stripe<12.0,>=8.0.0
45
+ Requires-Dist: structlog<26.0,>=25.4.0
46
+ Requires-Dist: uvicorn[standard]<0.38,>=0.37.0
47
+ Requires-Dist: x402[extensions,fastapi,svm]==2.9.0
48
+ Provides-Extra: dev
49
+ Requires-Dist: anyio<5.0,>=4.4.0; extra == 'dev'
50
+ Requires-Dist: bcrypt<6.0,>=4.0.0; extra == 'dev'
51
+ Requires-Dist: coverage<8.0,>=7.4.0; extra == 'dev'
52
+ Requires-Dist: docker<8.0,>=7.0.0; extra == 'dev'
53
+ Requires-Dist: filelock<4.0,>=3.12.0; extra == 'dev'
54
+ Requires-Dist: httpx<0.29,>=0.28.1; extra == 'dev'
55
+ Requires-Dist: mypy<1.12,>=1.10.0; extra == 'dev'
56
+ Requires-Dist: pytest-asyncio<0.24,>=0.23.0; extra == 'dev'
57
+ Requires-Dist: pytest-cov<6.0,>=5.0.0; extra == 'dev'
58
+ Requires-Dist: pytest-testmon<3.0,>=2.1.0; extra == 'dev'
59
+ Requires-Dist: pytest-xdist<4.0,>=3.6.1; extra == 'dev'
60
+ Requires-Dist: pytest<9.0,>=8.2.0; extra == 'dev'
61
+ Requires-Dist: respx<0.23,>=0.22.0; extra == 'dev'
62
+ Requires-Dist: ruff<0.5,>=0.4.1; extra == 'dev'
63
+ Requires-Dist: testcontainers[postgres]<5.0,>=4.0.0; extra == 'dev'
64
+ Requires-Dist: types-pyyaml<7.0,>=6.0.0; extra == 'dev'
65
+ Provides-Extra: release
66
+ Requires-Dist: build<2.0,>=1.2.1; extra == 'release'
67
+ Requires-Dist: twine<6.0,>=5.0.0; extra == 'release'
68
+ Provides-Extra: testing
69
+ Requires-Dist: docker<8.0,>=7.0.0; extra == 'testing'
70
+ Requires-Dist: filelock<4.0,>=3.12.0; extra == 'testing'
71
+ Requires-Dist: httpx<0.29,>=0.28.1; extra == 'testing'
72
+ Requires-Dist: pytest-asyncio<0.24,>=0.23.0; extra == 'testing'
73
+ Requires-Dist: pytest-testmon<3.0,>=2.1.0; extra == 'testing'
74
+ Requires-Dist: pytest-xdist<4.0,>=3.6.1; extra == 'testing'
75
+ Requires-Dist: pytest<9.0,>=8.2.0; extra == 'testing'
76
+ Requires-Dist: respx<0.23,>=0.22.0; extra == 'testing'
77
+ Requires-Dist: testcontainers[postgres]<5.0,>=4.0.0; extra == 'testing'
78
+ Description-Content-Type: text/markdown
79
+
80
+ # spaps-server-quickstart
81
+
82
+ Reusable FastAPI, SQLAlchemy, Celery, auth, and operational scaffolding for SPAPS-aligned Python services. This is the active backend package in this repository.
83
+
84
+ Examples in this README use placeholders such as `https://api.example.test` and local-only database URLs. Replace them with values from your own environment.
85
+
86
+ ## Install
87
+
88
+ ```bash
89
+ pip install spaps-server-quickstart
90
+ ```
91
+
92
+ This package targets Python 3.12+.
93
+
94
+ ## When It Fits
95
+
96
+ | Need | Package gives you |
97
+ | --- | --- |
98
+ | A real FastAPI starting point | `create_app`, settings loaders, request logging, and startup checks |
99
+ | Shared auth and RBAC | SPAPS auth middleware, auth channels, cookies, and role dependencies |
100
+ | Async database plumbing | SQLAlchemy 2 async session helpers and Alembic support |
101
+ | Operational scaffolding | Celery setup, deploy templates, local-mode helpers, and service SDK utilities |
102
+
103
+ ## Quick Start
104
+
105
+ ```python
106
+ from fastapi import APIRouter
107
+
108
+ from spaps_server_quickstart import create_app
109
+ from spaps_server_quickstart.settings import (
110
+ BaseServiceSettings,
111
+ create_settings_loader,
112
+ )
113
+
114
+
115
+ class ExampleSettings(BaseServiceSettings):
116
+ app_name: str = "Example Service"
117
+ spaps_auth_enabled: bool = False
118
+
119
+
120
+ router = APIRouter()
121
+
122
+
123
+ @router.get("/health")
124
+ async def health() -> dict[str, bool]:
125
+ return {"ok": True}
126
+
127
+
128
+ app = create_app(
129
+ settings_loader=create_settings_loader(ExampleSettings),
130
+ api_router=router,
131
+ )
132
+ ```
133
+
134
+ ## What the Package Ships
135
+
136
+ | Area | Highlights |
137
+ | --- | --- |
138
+ | App lifecycle | `create_app`, startup validation, logging, CORS wiring |
139
+ | Auth | `SpapsAuthMiddleware`, auth cookies, auth channel service, local mode |
140
+ | Routing and RBAC | Base router builder, authenticated-user dependencies, `require_roles`, `has_required_roles` |
141
+ | Database | Async sessionmaker factory, migration runner, Alembic helpers |
142
+ | Tasks | Celery app factory plus notification and ping task helpers |
143
+ | Service SDK helpers | Admin token cache, server-side SPAPS clients, trusted-service middleware, feature evaluation |
144
+ | Templates | Domain examples, tests, deployment scaffolding, and local operations helpers |
145
+ | Reference contract | The `golden_path` app blueprint, seeded paid-access policy, and downstream runbook for the core auth -> billing -> entitlement -> access loop |
146
+
147
+ ## Golden App Pack
148
+
149
+ If you want one SPAPS-native reference contract instead of a blank scaffold, start with the `golden_path` blueprint.
150
+
151
+ It is the canonical pack for:
152
+
153
+ - browser auth and session bootstrap
154
+ - Stripe checkout or subscription flows
155
+ - entitlement projection into `paid_access`
156
+ - policy-gated access through the seeded `access-paid-features` rule
157
+ - an operator runbook under `docs/downstream_apps/golden-path-reference/`
158
+
159
+ ## Local Development Mode
160
+
161
+ Set `DEVELOPMENT_ENVIRONMENT=local` to enable local auth bypass in development and tests.
162
+
163
+ ```python
164
+ from spaps_server_quickstart.local_mode import (
165
+ LocalAuthMiddleware,
166
+ get_default_registry,
167
+ )
168
+ from spaps_server_quickstart.settings import BaseServiceSettings
169
+
170
+ settings = BaseServiceSettings(development_environment="local")
171
+
172
+ if settings.is_local_development:
173
+ app.add_middleware(LocalAuthMiddleware, registry=get_default_registry())
174
+ ```
175
+
176
+ Default personas:
177
+
178
+ | Persona | Token | Roles |
179
+ | --- | --- | --- |
180
+ | Admin | `local-admin` | `admin`, `user` |
181
+ | User | `local-user` | `user` |
182
+
183
+ ## Configuration
184
+
185
+ Common settings exposed through `BaseServiceSettings`:
186
+
187
+ | Setting | Purpose |
188
+ | --- | --- |
189
+ | `development_environment` | Enables local bypass mode when set to `local` |
190
+ | `spaps_auth_enabled` | Turns SPAPS auth middleware on or off |
191
+ | `spaps_auth_exempt_paths` | Comma-separated paths that skip SPAPS auth |
192
+ | `cors_allow_origins` | Shared CORS configuration |
193
+ | `database_url` | Async SQLAlchemy database URL |
194
+ | `redis_url` | Redis URL used by Celery defaults |
195
+ | `secure_messages_enabled` | Enables secure-messaging gateway support |
196
+
197
+ For per-process local origins that should not live in environment settings,
198
+ pass them to the app factory:
199
+
200
+ ```python
201
+ app = create_app(
202
+ settings_loader=create_settings_loader(ExampleSettings),
203
+ api_router=router,
204
+ extra_cors_origins=["http://localhost:5173"],
205
+ )
206
+ ```
207
+
208
+ When settings origins are empty, `extra_cors_origins` enables CORS only for
209
+ those explicit origins. It does not add the wildcard origin unless CORS is
210
+ enabled manually without any configured origins.
211
+
212
+ Example environment:
213
+
214
+ ```bash
215
+ DEVELOPMENT_ENVIRONMENT=local
216
+ SPAPS_API_URL=https://api.example.test
217
+ SPAPS_API_KEY=spaps_sec_example
218
+ DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/service
219
+ SPAPS_AUTH_EXEMPT_PATHS=/health,/docs
220
+ CORS_ALLOW_ORIGINS=http://localhost:3000,http://localhost:5173
221
+ ```
222
+
223
+ ## Validation
224
+
225
+ From the repository root, the `Makefile` is the canonical workflow:
226
+
227
+ ```bash
228
+ make install
229
+ make pytest
230
+ make lint
231
+ make typecheck
232
+ make pytest-cov
233
+ make test
234
+ ```
235
+
236
+ Useful additional commands:
237
+
238
+ ```bash
239
+ make pytest-full
240
+ make migrate
241
+ make new-migration MSG="add_example_table"
242
+ make local-up
243
+ ```
244
+
245
+ ## Troubleshooting
246
+
247
+ ### `make pytest` reports no affected tests
248
+
249
+ That is expected when testmon sees no impacted tests. Use `make pytest-full` when you need a full run.
250
+
251
+ ### Local auth bypass is not active
252
+
253
+ Confirm `DEVELOPMENT_ENVIRONMENT=local` is set before application startup and that `LocalAuthMiddleware` is wired into the app.
254
+
255
+ ### Unauthenticated routes still require auth
256
+
257
+ Check `spaps_auth_exempt_paths` and make sure the configured paths match the router paths exactly.
258
+
259
+ ### Startup fails on environment validation
260
+
261
+ Review the required settings and any safety checks triggered during startup.
262
+
263
+ ### I need a new service quickly
264
+
265
+ Start from the included templates, then keep the repo-root validation path intact while adapting domain code and settings.
266
+
267
+ ## Limitations
268
+
269
+ - This package is a scaffold, not a finished application.
270
+ - Downstream services still need their own routers, schemas, repositories, and deployment settings.
271
+ - Some operational templates intentionally need environment-specific edits before production use.
272
+
273
+ ## FAQ
274
+
275
+ ### Is this the active backend package in this repo?
276
+
277
+ Yes. This package replaces the old Node/Express stack as the active backend surface.
278
+
279
+ ### Does it include local auth bypass support?
280
+
281
+ Yes. Set `DEVELOPMENT_ENVIRONMENT=local` and wire in the local-mode helpers.
282
+
283
+ ### Can I use it without Celery?
284
+
285
+ Yes. Celery helpers are included, but you can compose only the pieces your service needs.
286
+
287
+ ### Does it include RBAC helpers?
288
+
289
+ Yes. Use `require_roles`, `has_required_roles`, and the authenticated-user dependencies.
290
+
291
+ ### What is the recommended validation path here?
292
+
293
+ From the repository root: `make pytest`, `make lint`, `make typecheck`, `make pytest-cov`, and `make test`.
294
+
295
+ ## Metadata
296
+
297
+ - `package_name`: `spaps-server-quickstart`
298
+ - `latest_version`: `0.5.1`
299
+ - `minimum_runtime`: `Python >=3.12`
300
+ - `api_base_url`: `https://api.sweetpotato.dev`
301
+
302
+ ## About Contributions
303
+
304
+ > *About Contributions:* Please don't take this the wrong way, but I do not accept outside contributions for any of my projects. I simply don't have the mental bandwidth to review anything, and it's my name on the thing, so I'm responsible for any problems it causes; thus, the risk-reward is highly asymmetric from my perspective. I'd also have to worry about other "stakeholders," which seems unwise for tools I mostly make for myself for free. Feel free to submit issues, and even PRs if you want to illustrate a proposed fix, but know I won't merge them directly. Instead, I'll have Claude or Codex review submissions via `gh` and independently decide whether and how to address them. Bug reports in particular are welcome. Sorry if this offends, but I want to avoid wasted time and hurt feelings. I understand this isn't in sync with the prevailing open-source ethos that seeks community contributions, but it's the only way I can move at this velocity and keep my sanity.
305
+
306
+ ## License
307
+
308
+ MIT