spaps-server-quickstart 0.5.1__tar.gz → 0.6.1__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.
- spaps_server_quickstart-0.6.1/.gitignore +202 -0
- spaps_server_quickstart-0.6.1/CHANGELOG.md +146 -0
- spaps_server_quickstart-0.6.1/PKG-INFO +308 -0
- spaps_server_quickstart-0.6.1/README.md +229 -0
- spaps_server_quickstart-0.6.1/docs/UPGRADING.md +92 -0
- spaps_server_quickstart-0.6.1/pyproject.toml +166 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/__init__.py +128 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/alembic/naming.py +156 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/app_factory.py +187 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/auth/__init__.py +499 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/auth/dependencies.py +64 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/auth_channels.py +345 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/__init__.py +12 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/_common/clients.py +121 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/_common/pagination.py +53 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/_db/__init__.py +7 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/_db/model_registry.py +41 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/_db/orm_helpers.py +28 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/_db/rls.py +65 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/affiliate_referrals/models.py +423 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/affiliate_referrals/repository.py +724 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/affiliate_referrals/router.py +459 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/affiliate_referrals/service.py +1126 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/agent_approvals/authz.py +167 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/agent_approvals/errors.py +185 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/agent_approvals/router.py +516 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/agent_approvals/service.py +1097 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/app_links/__init__.py +2 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/app_links/errors.py +21 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/app_links/models.py +65 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/app_links/repository.py +53 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/app_links/router.py +86 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/app_links/schemas.py +46 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/app_links/service.py +243 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/applications/blueprints.py +654 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/applications/router.py +140 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/applications/schemas.py +118 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/applications/service.py +303 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/audit/models.py +96 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/audit/repository.py +248 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/audit/router.py +87 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/audit/schemas.py +84 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/audit/service.py +283 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/audit/tasks.py +68 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/auth/repository.py +421 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/auth/router.py +472 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/auth/schemas.py +233 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/auth/service.py +1600 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/billing_accounts/__init__.py +5 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/billing_accounts/models.py +81 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/billing_accounts/repository.py +188 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/billing_accounts/resolver.py +426 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/billing_accounts/router.py +58 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/billing_accounts/schemas.py +63 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/billing_accounts/service.py +172 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/cfo/errors.py +43 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/cfo/models.py +136 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/cfo/repository.py +268 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/cfo/router.py +525 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/cfo/schemas.py +221 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/cfo/service.py +974 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/cfo_roles/me_router.py +163 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/cfo_roles/router.py +471 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/cfo_roles/service.py +807 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/crypto/repository.py +201 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/crypto/router.py +282 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/crypto/service.py +305 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/dayrate/errors.py +80 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/dayrate/pricing.py +114 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/dayrate/repository.py +598 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/dayrate/router.py +740 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/dayrate/schemas.py +482 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/dayrate/service.py +2306 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/dev/__init__.py +2 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/dev/router.py +65 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/dev/schemas.py +103 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/dev/service.py +432 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/device_flow/service.py +342 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/docs/repository.py +323 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/docs/router.py +217 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/email/models.py +127 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/email/router.py +363 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/email/schemas.py +199 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/email/service.py +1200 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/entitlements/models.py +205 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/entitlements/repository.py +498 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/entitlements/router.py +466 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/entitlements/schemas.py +290 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/entitlements/service.py +1328 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/errors.py +191 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/hosted_assets/__init__.py +49 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/hosted_assets/errors.py +47 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/hosted_assets/models.py +259 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/hosted_assets/storage.py +297 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/issue_reporting_platform/errors.py +68 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/issue_reporting_platform/models.py +128 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/issue_reporting_platform/repository.py +350 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/issue_reporting_platform/router.py +455 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/issue_reporting_platform/schemas.py +149 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/issue_reporting_platform/service.py +1382 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/notifications/__init__.py +1 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/notifications/models.py +289 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/notifications/repository.py +474 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/notifications/router.py +190 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/notifications/schemas.py +155 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/notifications/service.py +801 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/notifications/tasks.py +39 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/policies/repository.py +135 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/policies/router.py +199 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/policies/service.py +403 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/realtime/__init__.py +23 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/realtime/router.py +45 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/realtime/schemas.py +13 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/realtime/service.py +125 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/redirects.py +157 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/secure_messages/repository.py +86 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/secure_messages/router.py +121 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/secure_messages/service.py +209 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/security/router.py +68 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/self_service/router.py +301 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/self_service/schemas.py +169 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/self_service/service.py +376 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/sessions/blacklist_service.py +358 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/sessions/jwt_service.py +365 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/sessions/nonce_service.py +216 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/sessions/password_service.py +113 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/sessions/repository.py +484 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/sessions/router.py +153 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/sessions/schemas.py +85 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/sessions/service.py +480 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/skill_evals/__init__.py +5 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/skill_evals/errors.py +104 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/skill_evals/models.py +263 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/skill_evals/repository.py +369 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/skill_evals/router.py +316 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/skill_evals/schemas.py +203 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/skill_evals/service.py +1671 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/stripe/errors.py +107 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/stripe/guest_checkout.py +257 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/stripe/models.py +340 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/stripe/repository.py +779 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/stripe/router.py +870 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/stripe/schemas.py +373 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/stripe/service.py +1361 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/stripe/tasks.py +195 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/stripe/webhook_handler.py +841 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/support_telemetry_platform/router.py +263 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/support_telemetry_platform/service.py +619 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/usage_control/__init__.py +5 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/usage_control/errors.py +61 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/usage_control/models.py +85 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/usage_control/repository.py +182 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/usage_control/router.py +155 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/usage_control/schemas.py +206 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/usage_control/service.py +755 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/users/models.py +137 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/wallets/addressing.py +31 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/wallets/repository.py +267 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/wallets/router.py +428 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/wallets/service.py +661 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/webhooks/destination_security.py +63 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/webhooks/repository.py +265 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/webhooks/router.py +197 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/webhooks/service.py +714 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/webhooks/signing.py +214 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/webhooks/tasks.py +31 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/whitelist/repository.py +281 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/whitelist/router.py +232 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/whitelist/service.py +243 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/x402/__init__.py +1 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/x402/adapter.py +846 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/x402/constants.py +42 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/x402/errors.py +88 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/x402/models.py +258 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/x402/repository.py +393 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/x402/router.py +248 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/x402/schemas.py +93 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/x402/security.py +44 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/x402/service.py +1598 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/middleware/envelope.py +176 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/middleware/error_handler.py +151 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/middleware/jwt_auth.py +156 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/middleware/key_scope.py +235 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/middleware/local_mode.py +110 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/middleware/rate_limiting.py +594 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/money/__init__.py +72 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/openapi_auth.py +229 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/settings.py +247 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/spaps_app.py +413 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/spaps_settings.py +225 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/startup.py +572 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/tasks/celery_factory.py +73 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/tools/dependency_alignment.py +302 -0
- spaps_server_quickstart-0.6.1/tests/contracts/test_app_factory_contract.py +87 -0
- spaps_server_quickstart-0.6.1/tests/contracts/test_celery_contract.py +85 -0
- spaps_server_quickstart-0.6.1/tests/contracts/test_error_copy_contract.py +170 -0
- spaps_server_quickstart-0.6.1/tests/contracts/test_manifest_fastapi_script.py +82 -0
- spaps_server_quickstart-0.6.1/tests/contracts/test_openapi_auth_metadata.py +189 -0
- spaps_server_quickstart-0.6.1/tests/contracts/test_pagination_contract.py +94 -0
- spaps_server_quickstart-0.6.1/tests/contracts/test_sdk_docs_parity_script.py +434 -0
- spaps_server_quickstart-0.6.1/tests/contracts/test_x402_devnet_prereq_script.py +734 -0
- spaps_server_quickstart-0.6.1/tests/contracts/test_x402_mainnet_billing_sql_script.py +57 -0
- spaps_server_quickstart-0.6.1/tests/contracts/test_x402_mainnet_db_script.py +101 -0
- spaps_server_quickstart-0.6.1/tests/contracts/test_x402_mainnet_env_script.py +94 -0
- spaps_server_quickstart-0.6.1/tests/contracts/test_x402_mainnet_evidence_script.py +75 -0
- spaps_server_quickstart-0.6.1/tests/contracts/test_x402_mainnet_live_script.py +126 -0
- spaps_server_quickstart-0.6.1/tests/contracts/test_x402_production_deployment_script.py +99 -0
- spaps_server_quickstart-0.6.1/tests/domains/_db/test_orm_helpers.py +56 -0
- spaps_server_quickstart-0.6.1/tests/domains/affiliate_referrals/test_repository.py +148 -0
- spaps_server_quickstart-0.6.1/tests/domains/affiliate_referrals/test_service.py +1356 -0
- spaps_server_quickstart-0.6.1/tests/domains/agent_approvals/test_authz.py +119 -0
- spaps_server_quickstart-0.6.1/tests/domains/agent_approvals/test_authz_wiring.py +466 -0
- spaps_server_quickstart-0.6.1/tests/domains/agent_approvals/test_repository.py +176 -0
- spaps_server_quickstart-0.6.1/tests/domains/agent_approvals/test_router.py +923 -0
- spaps_server_quickstart-0.6.1/tests/domains/agent_approvals/test_service.py +2312 -0
- spaps_server_quickstart-0.6.1/tests/domains/app_links/__init__.py +1 -0
- spaps_server_quickstart-0.6.1/tests/domains/app_links/test_blueprints.py +21 -0
- spaps_server_quickstart-0.6.1/tests/domains/app_links/test_router.py +139 -0
- spaps_server_quickstart-0.6.1/tests/domains/app_links/test_service.py +336 -0
- spaps_server_quickstart-0.6.1/tests/domains/applications/test_blueprints.py +102 -0
- spaps_server_quickstart-0.6.1/tests/domains/applications/test_router.py +983 -0
- spaps_server_quickstart-0.6.1/tests/domains/audit/test_repository.py +335 -0
- spaps_server_quickstart-0.6.1/tests/domains/audit/test_router.py +302 -0
- spaps_server_quickstart-0.6.1/tests/domains/audit/test_service.py +397 -0
- spaps_server_quickstart-0.6.1/tests/domains/auth/test_refresh_token_anomaly.py +400 -0
- spaps_server_quickstart-0.6.1/tests/domains/auth/test_repository.py +470 -0
- spaps_server_quickstart-0.6.1/tests/domains/auth/test_router.py +880 -0
- spaps_server_quickstart-0.6.1/tests/domains/auth/test_service.py +2221 -0
- spaps_server_quickstart-0.6.1/tests/domains/auth/test_user_enumeration_timing.py +146 -0
- spaps_server_quickstart-0.6.1/tests/domains/billing_accounts/__init__.py +1 -0
- spaps_server_quickstart-0.6.1/tests/domains/billing_accounts/test_repository.py +342 -0
- spaps_server_quickstart-0.6.1/tests/domains/billing_accounts/test_resolver.py +548 -0
- spaps_server_quickstart-0.6.1/tests/domains/billing_accounts/test_router.py +207 -0
- spaps_server_quickstart-0.6.1/tests/domains/cfo/test_repository.py +395 -0
- spaps_server_quickstart-0.6.1/tests/domains/cfo/test_router.py +1203 -0
- spaps_server_quickstart-0.6.1/tests/domains/cfo/test_service.py +1560 -0
- spaps_server_quickstart-0.6.1/tests/domains/cfo_roles/test_router.py +880 -0
- spaps_server_quickstart-0.6.1/tests/domains/cfo_roles/test_service.py +1075 -0
- spaps_server_quickstart-0.6.1/tests/domains/crypto/test_repository.py +406 -0
- spaps_server_quickstart-0.6.1/tests/domains/crypto/test_router.py +439 -0
- spaps_server_quickstart-0.6.1/tests/domains/crypto/test_service.py +401 -0
- spaps_server_quickstart-0.6.1/tests/domains/dayrate/test_allotment_service.py +203 -0
- spaps_server_quickstart-0.6.1/tests/domains/dayrate/test_booking_routes.py +162 -0
- spaps_server_quickstart-0.6.1/tests/domains/dayrate/test_enhanced_booking_service.py +819 -0
- spaps_server_quickstart-0.6.1/tests/domains/dayrate/test_pricing.py +554 -0
- spaps_server_quickstart-0.6.1/tests/domains/dayrate/test_repository.py +545 -0
- spaps_server_quickstart-0.6.1/tests/domains/dayrate/test_router.py +1275 -0
- spaps_server_quickstart-0.6.1/tests/domains/dayrate/test_service.py +2064 -0
- spaps_server_quickstart-0.6.1/tests/domains/dev/__init__.py +2 -0
- spaps_server_quickstart-0.6.1/tests/domains/dev/test_router.py +168 -0
- spaps_server_quickstart-0.6.1/tests/domains/dev/test_service.py +66 -0
- spaps_server_quickstart-0.6.1/tests/domains/device_flow/test_service.py +469 -0
- spaps_server_quickstart-0.6.1/tests/domains/docs/test_repository.py +394 -0
- spaps_server_quickstart-0.6.1/tests/domains/email/test_env_safety.py +307 -0
- spaps_server_quickstart-0.6.1/tests/domains/email/test_service.py +1394 -0
- spaps_server_quickstart-0.6.1/tests/domains/entitlements/test_repository.py +576 -0
- spaps_server_quickstart-0.6.1/tests/domains/entitlements/test_router.py +924 -0
- spaps_server_quickstart-0.6.1/tests/domains/entitlements/test_service.py +1603 -0
- spaps_server_quickstart-0.6.1/tests/domains/hosted_assets/__init__.py +1 -0
- spaps_server_quickstart-0.6.1/tests/domains/hosted_assets/test_storage.py +312 -0
- spaps_server_quickstart-0.6.1/tests/domains/issue_reporting_platform/__init__.py +1 -0
- spaps_server_quickstart-0.6.1/tests/domains/issue_reporting_platform/test_repository.py +497 -0
- spaps_server_quickstart-0.6.1/tests/domains/issue_reporting_platform/test_router.py +816 -0
- spaps_server_quickstart-0.6.1/tests/domains/issue_reporting_platform/test_service.py +1669 -0
- spaps_server_quickstart-0.6.1/tests/domains/notifications/__init__.py +1 -0
- spaps_server_quickstart-0.6.1/tests/domains/notifications/test_models.py +33 -0
- spaps_server_quickstart-0.6.1/tests/domains/notifications/test_repository.py +141 -0
- spaps_server_quickstart-0.6.1/tests/domains/notifications/test_router.py +332 -0
- spaps_server_quickstart-0.6.1/tests/domains/notifications/test_service.py +623 -0
- spaps_server_quickstart-0.6.1/tests/domains/policies/test_evaluator.py +469 -0
- spaps_server_quickstart-0.6.1/tests/domains/policies/test_repository.py +89 -0
- spaps_server_quickstart-0.6.1/tests/domains/policies/test_service.py +497 -0
- spaps_server_quickstart-0.6.1/tests/domains/realtime/test_service.py +184 -0
- spaps_server_quickstart-0.6.1/tests/domains/secure_messages/test_repository.py +84 -0
- spaps_server_quickstart-0.6.1/tests/domains/secure_messages/test_router.py +268 -0
- spaps_server_quickstart-0.6.1/tests/domains/secure_messages/test_service.py +279 -0
- spaps_server_quickstart-0.6.1/tests/domains/self_service/test_router.py +1032 -0
- spaps_server_quickstart-0.6.1/tests/domains/sessions/test_router.py +391 -0
- spaps_server_quickstart-0.6.1/tests/domains/sessions/test_service.py +585 -0
- spaps_server_quickstart-0.6.1/tests/domains/skill_evals/__init__.py +1 -0
- spaps_server_quickstart-0.6.1/tests/domains/skill_evals/test_dogfood_workflow.py +597 -0
- spaps_server_quickstart-0.6.1/tests/domains/skill_evals/test_router.py +337 -0
- spaps_server_quickstart-0.6.1/tests/domains/skill_evals/test_service.py +1521 -0
- spaps_server_quickstart-0.6.1/tests/domains/stripe/test_guest_checkout.py +708 -0
- spaps_server_quickstart-0.6.1/tests/domains/stripe/test_repository.py +690 -0
- spaps_server_quickstart-0.6.1/tests/domains/stripe/test_router.py +1242 -0
- spaps_server_quickstart-0.6.1/tests/domains/stripe/test_service.py +1666 -0
- spaps_server_quickstart-0.6.1/tests/domains/stripe/test_tasks.py +171 -0
- spaps_server_quickstart-0.6.1/tests/domains/stripe/test_webhook_handler.py +1286 -0
- spaps_server_quickstart-0.6.1/tests/domains/stripe/test_webhook_hardening.py +448 -0
- spaps_server_quickstart-0.6.1/tests/domains/support_telemetry_platform/test_service.py +450 -0
- spaps_server_quickstart-0.6.1/tests/domains/test_redirects.py +223 -0
- spaps_server_quickstart-0.6.1/tests/domains/test_smoke.py +306 -0
- spaps_server_quickstart-0.6.1/tests/domains/usage_control/test_repository.py +95 -0
- spaps_server_quickstart-0.6.1/tests/domains/usage_control/test_router.py +363 -0
- spaps_server_quickstart-0.6.1/tests/domains/usage_control/test_service.py +543 -0
- spaps_server_quickstart-0.6.1/tests/domains/wallets/test_addressing.py +22 -0
- spaps_server_quickstart-0.6.1/tests/domains/wallets/test_repository.py +399 -0
- spaps_server_quickstart-0.6.1/tests/domains/wallets/test_router.py +758 -0
- spaps_server_quickstart-0.6.1/tests/domains/wallets/test_service.py +902 -0
- spaps_server_quickstart-0.6.1/tests/domains/webhooks/test_destination_security.py +72 -0
- spaps_server_quickstart-0.6.1/tests/domains/webhooks/test_repository.py +420 -0
- spaps_server_quickstart-0.6.1/tests/domains/webhooks/test_router.py +589 -0
- spaps_server_quickstart-0.6.1/tests/domains/webhooks/test_service.py +1181 -0
- spaps_server_quickstart-0.6.1/tests/domains/webhooks/test_tasks.py +25 -0
- spaps_server_quickstart-0.6.1/tests/domains/whitelist/__init__.py +0 -0
- spaps_server_quickstart-0.6.1/tests/domains/whitelist/test_repository.py +701 -0
- spaps_server_quickstart-0.6.1/tests/domains/whitelist/test_router.py +653 -0
- spaps_server_quickstart-0.6.1/tests/domains/x402/__init__.py +1 -0
- spaps_server_quickstart-0.6.1/tests/domains/x402/test_facilitator_adapter.py +686 -0
- spaps_server_quickstart-0.6.1/tests/domains/x402/test_money_contract.py +60 -0
- spaps_server_quickstart-0.6.1/tests/domains/x402/test_router.py +315 -0
- spaps_server_quickstart-0.6.1/tests/domains/x402/test_service.py +1336 -0
- spaps_server_quickstart-0.6.1/tests/middleware/__init__.py +0 -0
- spaps_server_quickstart-0.6.1/tests/middleware/test_api_key.py +387 -0
- spaps_server_quickstart-0.6.1/tests/middleware/test_envelope.py +116 -0
- spaps_server_quickstart-0.6.1/tests/middleware/test_error_envelope_v1.py +252 -0
- spaps_server_quickstart-0.6.1/tests/middleware/test_jwt_auth.py +319 -0
- spaps_server_quickstart-0.6.1/tests/middleware/test_key_scope.py +329 -0
- spaps_server_quickstart-0.6.1/tests/middleware/test_local_mode.py +114 -0
- spaps_server_quickstart-0.6.1/tests/middleware/test_origin_validation.py +227 -0
- spaps_server_quickstart-0.6.1/tests/middleware/test_rate_limiting.py +1160 -0
- spaps_server_quickstart-0.6.1/tests/test_alembic_naming.py +145 -0
- spaps_server_quickstart-0.6.1/tests/test_api_naming_guard.py +52 -0
- spaps_server_quickstart-0.6.1/tests/test_app_factory.py +298 -0
- spaps_server_quickstart-0.6.1/tests/test_auth.py +831 -0
- spaps_server_quickstart-0.6.1/tests/test_auth_dependencies.py +93 -0
- spaps_server_quickstart-0.6.1/tests/test_dependency_alignment.py +265 -0
- spaps_server_quickstart-0.6.1/tests/test_environment_safety.py +461 -0
- spaps_server_quickstart-0.6.1/tests/test_primitive_guardrails.py +508 -0
- spaps_server_quickstart-0.6.1/tests/test_sessions_blacklist.py +365 -0
- spaps_server_quickstart-0.6.1/tests/test_sessions_jwt.py +344 -0
- spaps_server_quickstart-0.6.1/tests/test_sessions_nonce.py +193 -0
- spaps_server_quickstart-0.6.1/tests/test_sessions_password.py +161 -0
- spaps_server_quickstart-0.6.1/tests/test_startup_validation.py +618 -0
- spaps_server_quickstart-0.5.1/.gitignore +0 -187
- spaps_server_quickstart-0.5.1/CHANGELOG.md +0 -128
- spaps_server_quickstart-0.5.1/PKG-INFO +0 -288
- spaps_server_quickstart-0.5.1/README.md +0 -214
- spaps_server_quickstart-0.5.1/docs/UPGRADING.md +0 -82
- spaps_server_quickstart-0.5.1/pyproject.toml +0 -155
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/__init__.py +0 -116
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/alembic/naming.py +0 -137
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/app_factory.py +0 -134
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/auth/__init__.py +0 -457
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/auth/dependencies.py +0 -52
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/auth_channels.py +0 -368
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/__init__.py +0 -8
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/_db/__init__.py +0 -6
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/_db/model_registry.py +0 -37
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/_db/rls.py +0 -61
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/affiliate_referrals/models.py +0 -417
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/affiliate_referrals/repository.py +0 -691
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/affiliate_referrals/router.py +0 -457
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/affiliate_referrals/service.py +0 -1108
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/agent_approvals/errors.py +0 -126
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/agent_approvals/router.py +0 -493
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/agent_approvals/service.py +0 -993
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/applications/blueprints.py +0 -563
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/applications/router.py +0 -138
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/applications/schemas.py +0 -116
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/applications/service.py +0 -293
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/approval_authz_prod_hardening/__init__.py +0 -9
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/approval_authz_prod_hardening/errors.py +0 -82
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/approval_authz_prod_hardening/models.py +0 -131
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/approval_authz_prod_hardening/repository.py +0 -80
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/approval_authz_prod_hardening/router.py +0 -77
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/approval_authz_prod_hardening/schemas.py +0 -89
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/approval_authz_prod_hardening/service.py +0 -214
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/audit/models.py +0 -108
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/audit/repository.py +0 -171
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/audit/router.py +0 -86
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/audit/schemas.py +0 -81
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/audit/service.py +0 -252
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/auth/repository.py +0 -426
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/auth/router.py +0 -465
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/auth/schemas.py +0 -231
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/auth/service.py +0 -1469
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/billing_accounts/__init__.py +0 -5
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/billing_accounts/models.py +0 -55
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/billing_accounts/repository.py +0 -110
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/billing_accounts/resolver.py +0 -272
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/cfo/errors.py +0 -50
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/cfo/models.py +0 -134
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/cfo/repository.py +0 -219
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/cfo/router.py +0 -501
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/cfo/schemas.py +0 -210
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/cfo/service.py +0 -830
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/cfo_roles/deps.py +0 -85
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/cfo_roles/me_router.py +0 -163
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/cfo_roles/router.py +0 -481
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/cfo_roles/service.py +0 -793
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/crypto/repository.py +0 -182
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/crypto/router.py +0 -308
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/crypto/service.py +0 -310
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/dayrate/errors.py +0 -68
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/dayrate/pricing.py +0 -114
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/dayrate/repository.py +0 -605
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/dayrate/router.py +0 -618
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/dayrate/schemas.py +0 -422
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/dayrate/service.py +0 -1858
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/device_flow/service.py +0 -306
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/docs/repository.py +0 -296
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/docs/router.py +0 -214
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/email/models.py +0 -123
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/email/router.py +0 -362
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/email/schemas.py +0 -198
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/email/service.py +0 -1054
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/entitlements/models.py +0 -202
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/entitlements/repository.py +0 -417
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/entitlements/router.py +0 -434
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/entitlements/schemas.py +0 -290
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/entitlements/service.py +0 -1118
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/errors.py +0 -191
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/issue_reporting_platform/errors.py +0 -61
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/issue_reporting_platform/models.py +0 -70
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/issue_reporting_platform/repository.py +0 -189
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/issue_reporting_platform/router.py +0 -338
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/issue_reporting_platform/schemas.py +0 -106
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/issue_reporting_platform/service.py +0 -884
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/policies/repository.py +0 -138
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/policies/router.py +0 -198
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/policies/service.py +0 -323
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/redirects.py +0 -145
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/secure_messages/repository.py +0 -44
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/secure_messages/router.py +0 -117
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/secure_messages/service.py +0 -201
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/security/router.py +0 -67
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/self_service/router.py +0 -299
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/self_service/schemas.py +0 -171
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/self_service/service.py +0 -367
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/sessions/blacklist_service.py +0 -325
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/sessions/jwt_service.py +0 -367
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/sessions/nonce_service.py +0 -214
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/sessions/password_service.py +0 -105
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/sessions/repository.py +0 -484
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/sessions/router.py +0 -152
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/sessions/schemas.py +0 -85
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/sessions/service.py +0 -581
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/stripe/errors.py +0 -102
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/stripe/guest_checkout.py +0 -236
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/stripe/models.py +0 -318
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/stripe/repository.py +0 -666
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/stripe/router.py +0 -835
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/stripe/schemas.py +0 -350
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/stripe/service.py +0 -1064
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/stripe/webhook_handler.py +0 -561
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/support_telemetry_platform/router.py +0 -263
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/support_telemetry_platform/service.py +0 -529
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/users/models.py +0 -134
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/wallets/repository.py +0 -241
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/wallets/router.py +0 -425
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/wallets/service.py +0 -596
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/webhooks/destination_security.py +0 -41
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/webhooks/repository.py +0 -202
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/webhooks/router.py +0 -194
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/webhooks/service.py +0 -686
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/webhooks/signing.py +0 -179
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/whitelist/repository.py +0 -267
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/whitelist/router.py +0 -232
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/domains/whitelist/service.py +0 -244
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/middleware/envelope.py +0 -169
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/middleware/error_handler.py +0 -101
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/middleware/jwt_auth.py +0 -109
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/middleware/key_scope.py +0 -169
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/middleware/local_mode.py +0 -107
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/middleware/rate_limiting.py +0 -491
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/settings.py +0 -240
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/spaps_app.py +0 -340
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/spaps_settings.py +0 -186
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/startup.py +0 -478
- spaps_server_quickstart-0.5.1/src/spaps_server_quickstart/tasks/celery_factory.py +0 -40
- spaps_server_quickstart-0.5.1/tests/contracts/test_app_factory_contract.py +0 -83
- spaps_server_quickstart-0.5.1/tests/contracts/test_celery_contract.py +0 -79
- spaps_server_quickstart-0.5.1/tests/domains/affiliate_referrals/test_service.py +0 -1226
- spaps_server_quickstart-0.5.1/tests/domains/agent_approvals/test_repository.py +0 -77
- spaps_server_quickstart-0.5.1/tests/domains/agent_approvals/test_router.py +0 -911
- spaps_server_quickstart-0.5.1/tests/domains/agent_approvals/test_service.py +0 -2162
- spaps_server_quickstart-0.5.1/tests/domains/applications/test_router.py +0 -948
- spaps_server_quickstart-0.5.1/tests/domains/approval_authz_prod_hardening/conftest.py +0 -54
- spaps_server_quickstart-0.5.1/tests/domains/approval_authz_prod_hardening/test_router.py +0 -322
- spaps_server_quickstart-0.5.1/tests/domains/approval_authz_prod_hardening/test_service.py +0 -380
- spaps_server_quickstart-0.5.1/tests/domains/approval_authz_prod_hardening/test_wiring.py +0 -439
- spaps_server_quickstart-0.5.1/tests/domains/audit/test_repository.py +0 -297
- spaps_server_quickstart-0.5.1/tests/domains/audit/test_router.py +0 -296
- spaps_server_quickstart-0.5.1/tests/domains/audit/test_service.py +0 -359
- spaps_server_quickstart-0.5.1/tests/domains/auth/test_refresh_token_anomaly.py +0 -359
- spaps_server_quickstart-0.5.1/tests/domains/auth/test_repository.py +0 -436
- spaps_server_quickstart-0.5.1/tests/domains/auth/test_router.py +0 -863
- spaps_server_quickstart-0.5.1/tests/domains/auth/test_service.py +0 -1945
- spaps_server_quickstart-0.5.1/tests/domains/billing_accounts/test_repository.py +0 -251
- spaps_server_quickstart-0.5.1/tests/domains/billing_accounts/test_resolver.py +0 -211
- spaps_server_quickstart-0.5.1/tests/domains/cfo/test_repository.py +0 -350
- spaps_server_quickstart-0.5.1/tests/domains/cfo/test_router.py +0 -1024
- spaps_server_quickstart-0.5.1/tests/domains/cfo/test_service.py +0 -1398
- spaps_server_quickstart-0.5.1/tests/domains/cfo_roles/test_router.py +0 -829
- spaps_server_quickstart-0.5.1/tests/domains/cfo_roles/test_service.py +0 -1040
- spaps_server_quickstart-0.5.1/tests/domains/crypto/test_repository.py +0 -373
- spaps_server_quickstart-0.5.1/tests/domains/crypto/test_router.py +0 -465
- spaps_server_quickstart-0.5.1/tests/domains/crypto/test_service.py +0 -359
- spaps_server_quickstart-0.5.1/tests/domains/dayrate/test_allotment_service.py +0 -205
- spaps_server_quickstart-0.5.1/tests/domains/dayrate/test_booking_routes.py +0 -146
- spaps_server_quickstart-0.5.1/tests/domains/dayrate/test_enhanced_booking_service.py +0 -809
- spaps_server_quickstart-0.5.1/tests/domains/dayrate/test_pricing.py +0 -458
- spaps_server_quickstart-0.5.1/tests/domains/dayrate/test_repository.py +0 -479
- spaps_server_quickstart-0.5.1/tests/domains/dayrate/test_router.py +0 -1118
- spaps_server_quickstart-0.5.1/tests/domains/dayrate/test_service.py +0 -1441
- spaps_server_quickstart-0.5.1/tests/domains/device_flow/test_service.py +0 -402
- spaps_server_quickstart-0.5.1/tests/domains/docs/test_repository.py +0 -365
- spaps_server_quickstart-0.5.1/tests/domains/email/test_env_safety.py +0 -306
- spaps_server_quickstart-0.5.1/tests/domains/email/test_service.py +0 -1245
- spaps_server_quickstart-0.5.1/tests/domains/entitlements/test_repository.py +0 -341
- spaps_server_quickstart-0.5.1/tests/domains/entitlements/test_router.py +0 -770
- spaps_server_quickstart-0.5.1/tests/domains/entitlements/test_service.py +0 -1215
- spaps_server_quickstart-0.5.1/tests/domains/issue_reporting_platform/test_router.py +0 -566
- spaps_server_quickstart-0.5.1/tests/domains/issue_reporting_platform/test_service.py +0 -813
- spaps_server_quickstart-0.5.1/tests/domains/policies/test_evaluator.py +0 -375
- spaps_server_quickstart-0.5.1/tests/domains/policies/test_service.py +0 -324
- spaps_server_quickstart-0.5.1/tests/domains/secure_messages/test_router.py +0 -263
- spaps_server_quickstart-0.5.1/tests/domains/secure_messages/test_service.py +0 -233
- spaps_server_quickstart-0.5.1/tests/domains/self_service/test_router.py +0 -1000
- spaps_server_quickstart-0.5.1/tests/domains/sessions/test_router.py +0 -362
- spaps_server_quickstart-0.5.1/tests/domains/sessions/test_service.py +0 -667
- spaps_server_quickstart-0.5.1/tests/domains/stripe/test_guest_checkout.py +0 -643
- spaps_server_quickstart-0.5.1/tests/domains/stripe/test_repository.py +0 -425
- spaps_server_quickstart-0.5.1/tests/domains/stripe/test_router.py +0 -1168
- spaps_server_quickstart-0.5.1/tests/domains/stripe/test_service.py +0 -975
- spaps_server_quickstart-0.5.1/tests/domains/stripe/test_webhook_handler.py +0 -929
- spaps_server_quickstart-0.5.1/tests/domains/stripe/test_webhook_hardening.py +0 -336
- spaps_server_quickstart-0.5.1/tests/domains/support_telemetry_platform/test_service.py +0 -361
- spaps_server_quickstart-0.5.1/tests/domains/test_smoke.py +0 -233
- spaps_server_quickstart-0.5.1/tests/domains/wallets/test_repository.py +0 -403
- spaps_server_quickstart-0.5.1/tests/domains/wallets/test_router.py +0 -758
- spaps_server_quickstart-0.5.1/tests/domains/wallets/test_service.py +0 -776
- spaps_server_quickstart-0.5.1/tests/domains/webhooks/test_repository.py +0 -371
- spaps_server_quickstart-0.5.1/tests/domains/webhooks/test_router.py +0 -562
- spaps_server_quickstart-0.5.1/tests/domains/webhooks/test_service.py +0 -940
- spaps_server_quickstart-0.5.1/tests/domains/whitelist/test_repository.py +0 -635
- spaps_server_quickstart-0.5.1/tests/domains/whitelist/test_router.py +0 -656
- spaps_server_quickstart-0.5.1/tests/middleware/test_api_key.py +0 -389
- spaps_server_quickstart-0.5.1/tests/middleware/test_envelope.py +0 -115
- spaps_server_quickstart-0.5.1/tests/middleware/test_jwt_auth.py +0 -290
- spaps_server_quickstart-0.5.1/tests/middleware/test_key_scope.py +0 -234
- spaps_server_quickstart-0.5.1/tests/middleware/test_local_mode.py +0 -102
- spaps_server_quickstart-0.5.1/tests/middleware/test_origin_validation.py +0 -173
- spaps_server_quickstart-0.5.1/tests/middleware/test_rate_limiting.py +0 -808
- spaps_server_quickstart-0.5.1/tests/test_alembic_naming.py +0 -52
- spaps_server_quickstart-0.5.1/tests/test_app_factory.py +0 -159
- spaps_server_quickstart-0.5.1/tests/test_auth.py +0 -740
- spaps_server_quickstart-0.5.1/tests/test_auth_dependencies.py +0 -77
- spaps_server_quickstart-0.5.1/tests/test_environment_safety.py +0 -446
- spaps_server_quickstart-0.5.1/tests/test_sessions_blacklist.py +0 -344
- spaps_server_quickstart-0.5.1/tests/test_sessions_jwt.py +0 -345
- spaps_server_quickstart-0.5.1/tests/test_sessions_nonce.py +0 -182
- spaps_server_quickstart-0.5.1/tests/test_sessions_password.py +0 -140
- spaps_server_quickstart-0.5.1/tests/test_startup_validation.py +0 -618
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/.python-version +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/TM-002-IMPLEMENTATION.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/MIGRATION_GUIDE.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/TDD_PLAN.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/TM-ENV-001-checklist.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/TM-ENV-001-email-environment-safety.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/INDEX.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/_archived/diff-mvp-plan.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/security-audit-remediation-2026q1/AUDIT_REPORT.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/security-audit-remediation-2026q1/README.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/security-audit-remediation-2026q1/backend.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/security-audit-remediation-2026q1/flows.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/security-audit-remediation-2026q1/frontend.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/security-audit-remediation-2026q1/plan.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/security-audit-remediation-2026q1/schema.mmd +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/security-audit-remediation-2026q1/shared.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/trust-invariants-kernel/README.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/trust-invariants-kernel/backend.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/trust-invariants-kernel/describe-wave-1-principal-proxy-reuse.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/trust-invariants-kernel/flows.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/trust-invariants-kernel/frontend.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/trust-invariants-kernel/plan.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/trust-invariants-kernel/schema.mmd +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/feature-plans/trust-invariants-kernel/shared.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/messaging-broker-plan.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/docs/security-audit-remediation-2026q1-tm007-tm008.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/scripts/release.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/alembic/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/api/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/api/dependencies.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/api/domains/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/api/domains/health_router.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/api/domains/metrics_router.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/api/health.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/api/router.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/auth/cookies.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/db/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/db/alembic_status.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/db/migration_runner.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/db/session.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/_db/base.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/_db/types.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/affiliate_referrals/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/affiliate_referrals/errors.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/affiliate_referrals/schemas.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/agent_approvals/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/agent_approvals/models.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/agent_approvals/repository.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/agent_approvals/schemas.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/applications/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/applications/models.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/applications/repository.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/audit/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/audit/errors.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/audit/retention.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/auth/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/cfo/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/cfo/quickbooks.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/cfo_roles/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/cfo_roles/errors.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/cfo_roles/schemas.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/crypto/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/crypto/errors.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/crypto/models.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/crypto/schemas.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/dayrate/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/dayrate/models.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/device_flow/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/device_flow/repository.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/device_flow/router.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/device_flow/schemas.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/device_flow/store.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/docs/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/docs/discovery.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/docs/errors.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/docs/models.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/docs/schemas.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/docs/service.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/email/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/email/config.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/email/errors.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/email/mailgun.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/email/repository.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/entitlements/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/entitlements/errors.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/events.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/issue_reporting_platform/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/policies/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/policies/errors.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/policies/evaluator.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/policies/models.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/policies/schemas.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/secure_messages/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/secure_messages/encryption.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/secure_messages/errors.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/secure_messages/models.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/secure_messages/schemas.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/security/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/security/errors.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/security/models.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/security/repository.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/security/schemas.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/security/service.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/self_service/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/self_service/errors.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/sessions/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/sessions/admin_detection.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/sessions/models.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/stripe/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/support_telemetry_platform/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/support_telemetry_platform/errors.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/support_telemetry_platform/models.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/support_telemetry_platform/repository.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/support_telemetry_platform/schemas.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/users/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/users/repository.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/users/router.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/users/schemas.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/users/service.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/wallets/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/wallets/chains/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/wallets/chains/dispatcher.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/wallets/chains/ethereum.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/wallets/chains/solana.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/wallets/models.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/wallets/schemas.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/webhooks/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/webhooks/delivery.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/webhooks/errors.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/webhooks/models.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/webhooks/schemas.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/whitelist/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/whitelist/models.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/domains/whitelist/schemas.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/local_mode/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/local_mode/middleware.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/local_mode/personas.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/logging.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/middleware/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/middleware/api_key.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/middleware/client_ip.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/middleware/origin_validation.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/middleware/security_headers.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/middleware/spaps_deps.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/middleware.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/rbac/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/schemas/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/schemas/health.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/sdk/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/sdk/_ttl_cache.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/sdk/admin_token_cache.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/sdk/feature_evaluator.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/sdk/role_hierarchy.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/sdk/server_clients.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/sdk/trusted_service_middleware.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/secure_messaging.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/seeds/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/seeds/cli.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/seeds/schemas.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/seeds/validator.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/tasks/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/tasks/health.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/tasks/notifications.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/.pre-commit-config.yaml +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/alembic/env.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/alembic/script.py.mako +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/alembic/versions/.gitkeep +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/alembic.ini +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/docs/templates/API_DOCUMENTATION_TEMPLATE.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/docs/templates/DEBUG_REPORT_TEMPLATE.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/docs/templates/OPERATIONS_PLAYBOOK_TEMPLATE.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/domains/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/domains/admin/router.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/domains/auth/local_routes.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/domains/users/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/domains/users/models.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/domains/users/repository.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/domains/users/router.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/domains/users/schemas.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/domains/users/service.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/.env.production.example +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/.githooks/pre-push +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/.github/workflows/deploy.yml +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/.github/workflows/rollback.yml +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/Makefile +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/deploy/deploy.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/deploy/docker-compose.migration.yml +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/deploy/post-deploy-verify.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/deploy/pre-deploy-checks.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/docker-compose.prod.yml +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/scripts/backup-db.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/scripts/dev/await_db.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/scripts/dev/fetch-prod-db.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/scripts/dev/local-debug-loop.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/scripts/dev/start-db.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/scripts/dev/stop-db.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/scripts/new-migration.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/scripts/prepush.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/operations/scripts/restore-db.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/scripts/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/scripts/seeds/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/scripts/seeds/data/users.yaml +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/scripts/seeds/schemas/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/scripts/seeds/schemas/users.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/tests/README.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/tests/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/tests/api/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/tests/api/test_health.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/tests/api/test_users_auth.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/tests/conftest.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/tests/domains/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/tests/domains/example/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/tests/domains/example/conftest.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/tests/domains/users/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/tests/domains/users/conftest.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/tests/integration/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/tests/integration/test_db_connectivity.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/tests/unit/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/templates/tests/unit/test_settings.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/src/spaps_server_quickstart/testing.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/contracts → spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/tools}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/Makefile +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/docker-compose.yml +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/.env.production.example +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/.github/workflows/deploy.yml +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/Makefile +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/deploy/deploy.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/deploy/post-deploy-verify.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/deploy/pre-deploy-checks.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/deploy/reverse-proxy/README.md +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/deploy/reverse-proxy/certs/.gitkeep +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/deploy/reverse-proxy/docker-compose.yml +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/deploy/reverse-proxy/nginx.conf +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/deploy/reverse-proxy/sites-available/.gitkeep +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/deploy/reverse-proxy/sites-enabled/.gitkeep +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/deploy/reverse-proxy/static/.gitkeep +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/deploy/reverse-proxy/up.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/docker-compose.dev.yml +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/docker-compose.prod.yml +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/scripts/dev/await_db.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/scripts/dev/local-debug-loop.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/scripts/dev/start-db.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/operations/scripts/dev/stop-db.sh +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/templates/tests/conftest.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/conftest.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/affiliate_referrals → spaps_server_quickstart-0.6.1/tests/contracts}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/contracts/test_auth_contract.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/contracts/test_db_contract.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/contracts/test_dependencies_contract.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/contracts/test_golden_app_pack.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/contracts/test_health_contract.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/contracts/test_manifest_parity.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/contracts/test_oss_hygiene_script.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/contracts/test_router_contract.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/contracts/test_settings_contract.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/agent_approvals → spaps_server_quickstart-0.6.1/tests/domains/_db}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/applications → spaps_server_quickstart-0.6.1/tests/domains/affiliate_referrals}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/affiliate_referrals/test_router.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/affiliate_referrals/test_schemas.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/approval_authz_prod_hardening → spaps_server_quickstart-0.6.1/tests/domains/agent_approvals}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/agent_approvals/test_callback_url_validation.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/audit → spaps_server_quickstart-0.6.1/tests/domains/applications}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/applications/test_repository.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/applications/test_service.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/auth → spaps_server_quickstart-0.6.1/tests/domains/audit}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/audit/test_retention.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/cfo → spaps_server_quickstart-0.6.1/tests/domains/auth}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/crypto → spaps_server_quickstart-0.6.1/tests/domains/cfo}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/cfo_roles/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/conftest.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/dayrate → spaps_server_quickstart-0.6.1/tests/domains/crypto}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/device_flow → spaps_server_quickstart-0.6.1/tests/domains/dayrate}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/dayrate/test_booking_policy_service.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/docs → spaps_server_quickstart-0.6.1/tests/domains/device_flow}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/device_flow/test_router.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/device_flow/test_store.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/email → spaps_server_quickstart-0.6.1/tests/domains/docs}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/docs/test_router.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/docs/test_service.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/entitlements → spaps_server_quickstart-0.6.1/tests/domains/email}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/email/test_config.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/email/test_repository.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/email/test_router.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/policies → spaps_server_quickstart-0.6.1/tests/domains/entitlements}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/secure_messages → spaps_server_quickstart-0.6.1/tests/domains/policies}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/policies/test_router.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/security → spaps_server_quickstart-0.6.1/tests/domains/realtime}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/self_service → spaps_server_quickstart-0.6.1/tests/domains/secure_messages}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/secure_messages/test_encryption.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/secure_messages/test_tm013_security.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/sessions → spaps_server_quickstart-0.6.1/tests/domains/security}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/security/test_repository.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/security/test_router.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/security/test_service.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/stripe → spaps_server_quickstart-0.6.1/tests/domains/self_service}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/users → spaps_server_quickstart-0.6.1/tests/domains/sessions}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/sessions/test_admin_detection.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/sessions/test_repository.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/wallets → spaps_server_quickstart-0.6.1/tests/domains/stripe}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/stripe/test_subscription_application_scoping.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/support_telemetry_platform/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/support_telemetry_platform/test_repository.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/support_telemetry_platform/test_router.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/webhooks → spaps_server_quickstart-0.6.1/tests/domains/users}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/users/test_repository.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/users/test_router.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/users/test_service.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/domains/whitelist → spaps_server_quickstart-0.6.1/tests/domains/wallets}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/wallets/test_chains.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/wallets/test_legacy_routes_tenant_binding.py +0 -0
- {spaps_server_quickstart-0.5.1/tests/middleware → spaps_server_quickstart-0.6.1/tests/domains/webhooks}/__init__.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/webhooks/test_delivery.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/webhooks/test_signing.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/domains/whitelist/test_service.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/middleware/test_client_ip.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/middleware/test_security_headers.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/middleware/test_spaps_deps.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/seeds/test_cli.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_alembic_path_bootstrap.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_api_router.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_auth_channels.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_auth_cookies.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_bcrypt_compat.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_db_session.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_dev_data_pipeline.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_health_router.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_imports.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_local_mode.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_logging.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_middleware.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_migration_runner.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_migration_status.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_operations_templates.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_package_metadata.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_rbac.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_readme_snippets.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_sdk.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_secure_messaging.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_seed_validation.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_session_autocommit.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_settings.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_spaps_app.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/tests/test_tasks.py +0 -0
- {spaps_server_quickstart-0.5.1 → spaps_server_quickstart-0.6.1}/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,146 @@
|
|
|
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.1] - 2026-06-01
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- Relaxed the FastAPI upper bound to `<0.120` so downstream services can adopt FastAPI 0.119 and Starlette security fixes.
|
|
14
|
+
- Relaxed the `cryptography` upper bound to `<46.0` so downstream services can resolve CVE-fixed releases without local pip-audit ignores.
|
|
15
|
+
|
|
16
|
+
## [0.6.0] - 2026-05-29
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- 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.
|
|
21
|
+
- Added reusable hosted-asset storage adapters and issue-reporting screenshot attachment routes backed by private hosted objects.
|
|
22
|
+
|
|
23
|
+
## [0.5.1] - 2026-04-25
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- Hardened request middleware for API keys, key scopes, origin validation, rate limiting, webhook delivery, and self-service access paths.
|
|
28
|
+
|
|
29
|
+
## [0.5.0] - 2026-03-29
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
- End-user issue-reporting flows, runtime token admin support, and support-telemetry helpers for downstream FastAPI services.
|
|
34
|
+
- Browser-friendly device-flow verification and expanded reusable database helper surface.
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
|
|
38
|
+
- Magic-link redirect handling, stale session admin-email behavior, and related auth/session hardening.
|
|
39
|
+
- Hotspot complexity and coverage gaps across webhook, auth, and session paths.
|
|
40
|
+
|
|
41
|
+
## [0.4.0] - 2026-02-11
|
|
42
|
+
|
|
43
|
+
### Added
|
|
44
|
+
|
|
45
|
+
- Full domain rewrite covering auth, sessions, users, wallets, payments, entitlements, dayrate, agent approvals, affiliate referrals, email templates, and related operational domains.
|
|
46
|
+
- Approval capability gates and governance health endpoint.
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
|
|
50
|
+
- Production cutover to Python SPAPS stack (CI/CD, Docker Compose, deploy scripts).
|
|
51
|
+
- Consolidated SPAPS integration patterns into published packages.
|
|
52
|
+
|
|
53
|
+
### Security
|
|
54
|
+
|
|
55
|
+
- Rate limiting by client IP.
|
|
56
|
+
- PII encryption startup checks.
|
|
57
|
+
- Webhook authentication hardening.
|
|
58
|
+
- Row-level locking on refresh tokens.
|
|
59
|
+
- Fail-closed settings defaults.
|
|
60
|
+
|
|
61
|
+
## [0.3.0] - 2026-02-08
|
|
62
|
+
|
|
63
|
+
### Added
|
|
64
|
+
|
|
65
|
+
- Contract tests and shared testing module.
|
|
66
|
+
- Health endpoint enhancements.
|
|
67
|
+
|
|
68
|
+
### Changed
|
|
69
|
+
|
|
70
|
+
- Expanded coverage across settings, middleware, database, Celery, and auth helpers.
|
|
71
|
+
|
|
72
|
+
## [0.2.3] - 2026-01-12
|
|
73
|
+
|
|
74
|
+
### Fixed
|
|
75
|
+
|
|
76
|
+
- `SpapsAuthMiddleware` now skips execution when `authenticated_user` is already populated.
|
|
77
|
+
|
|
78
|
+
## [0.2.2] - 2026-01-11
|
|
79
|
+
|
|
80
|
+
### Added
|
|
81
|
+
|
|
82
|
+
- `fnmatch` glob support for `spaps_auth_exempt_paths`.
|
|
83
|
+
- Set-password endpoint support for authenticated users.
|
|
84
|
+
- Stripe webhook admin tooling for entitlement workflows.
|
|
85
|
+
- Tier 3 templates: seeds, tests, domain examples, docs.
|
|
86
|
+
- Startup validation, Alembic templates, and CI/CD workflow scaffolding.
|
|
87
|
+
|
|
88
|
+
## [0.2.1] - 2025-12-01
|
|
89
|
+
|
|
90
|
+
### Added
|
|
91
|
+
|
|
92
|
+
- Shared pgvector dev scripts: `start-db.sh`, `stop-db.sh`, `await_db.py`.
|
|
93
|
+
- Dynamic DNS resolver support for Docker reverse-proxy setups.
|
|
94
|
+
|
|
95
|
+
### Fixed
|
|
96
|
+
|
|
97
|
+
- nginx DNS caching behavior.
|
|
98
|
+
- HTMA rate-limiting exemption handling.
|
|
99
|
+
|
|
100
|
+
## [0.2.0] - 2025-10-15
|
|
101
|
+
|
|
102
|
+
### Added
|
|
103
|
+
|
|
104
|
+
- Local auth bypass mode with pre-configured admin/user personas.
|
|
105
|
+
- Deployment check scripts (`pre-deploy`, `post-deploy`).
|
|
106
|
+
- Database caching workflow for local debug loops.
|
|
107
|
+
- Operational templates (Makefile, GHCR deploy, compose/reverse-proxy stubs).
|
|
108
|
+
|
|
109
|
+
### Security
|
|
110
|
+
|
|
111
|
+
- Production guardrails for local-auth bypass mode.
|
|
112
|
+
|
|
113
|
+
## [0.1.2] - 2025-10-15
|
|
114
|
+
|
|
115
|
+
### Fixed
|
|
116
|
+
|
|
117
|
+
- CI pipeline trigger scoping and quickstart build stability.
|
|
118
|
+
|
|
119
|
+
## [0.1.1] - 2025-10-14
|
|
120
|
+
|
|
121
|
+
### Changed
|
|
122
|
+
|
|
123
|
+
- Maintenance release to unblock automated PyPI publishing workflow.
|
|
124
|
+
|
|
125
|
+
## [0.1.0] - 2025-10-14
|
|
126
|
+
|
|
127
|
+
### Added
|
|
128
|
+
|
|
129
|
+
- FastAPI lifespan handling for SPAPS auth cleanup.
|
|
130
|
+
- Migration and upgrading guidance for downstream services.
|
|
131
|
+
- Shared refresh-cookie configuration and browser helper exports.
|
|
132
|
+
- Expanded package exports for auth helpers and operational templates.
|
|
133
|
+
- RBAC role helpers and sample domain routers.
|
|
134
|
+
- Comprehensive unit tests across settings, middleware, DB, Celery, and auth helpers.
|
|
135
|
+
|
|
136
|
+
## [0.0.2] - 2025-10-12
|
|
137
|
+
|
|
138
|
+
### Added
|
|
139
|
+
|
|
140
|
+
- Declared the `spaps` Python client dependency for downstream installs and CI runs.
|
|
141
|
+
|
|
142
|
+
## [0.0.1] - 2025-10-14
|
|
143
|
+
|
|
144
|
+
### Added
|
|
145
|
+
|
|
146
|
+
- 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.1
|
|
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<46.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.120,>=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.6.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
|