spaps-server-quickstart 0.6.1__tar.gz → 0.6.3__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 → spaps_server_quickstart-0.6.3}/CHANGELOG.md +11 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/PKG-INFO +6 -4
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/README.md +1 -1
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/UPGRADING.md +10 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/pyproject.toml +5 -3
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/__init__.py +1 -1
- spaps_server_quickstart-0.6.3/src/spaps_server_quickstart/celery_app.py +11 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/_db/base.py +0 -1
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/_db/model_registry.py +2 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/affiliate_referrals/router.py +18 -36
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/agent_approvals/router.py +14 -28
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/agent_approvals/service.py +1 -2
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/applications/blueprints.py +7 -1
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/applications/router.py +31 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/audit/models.py +20 -0
- spaps_server_quickstart-0.6.3/src/spaps_server_quickstart/domains/audit/platform_events.py +127 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/audit/repository.py +48 -2
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/audit/router.py +28 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/audit/schemas.py +24 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/audit/service.py +91 -1
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/audit/tasks.py +30 -3
- spaps_server_quickstart-0.6.3/src/spaps_server_quickstart/domains/auth/models.py +198 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/auth/repository.py +130 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/auth/router.py +301 -41
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/auth/service.py +41 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/cfo/quickbooks.py +0 -1
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/cfo/router.py +34 -4
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/cfo_roles/service.py +3 -6
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/crypto/router.py +3 -6
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/dev/service.py +2 -1
- spaps_server_quickstart-0.6.3/src/spaps_server_quickstart/domains/device_flow/router.py +185 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/device_flow/service.py +28 -18
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/entitlements/errors.py +5 -2
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/entitlements/repository.py +50 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/entitlements/router.py +236 -21
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/entitlements/schemas.py +3 -1
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/entitlements/service.py +358 -27
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/issue_reporting_platform/errors.py +24 -0
- spaps_server_quickstart-0.6.3/src/spaps_server_quickstart/domains/issue_reporting_platform/models.py +281 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/issue_reporting_platform/repository.py +256 -1
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/issue_reporting_platform/router.py +228 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/issue_reporting_platform/schemas.py +72 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/issue_reporting_platform/service.py +1020 -152
- spaps_server_quickstart-0.6.3/src/spaps_server_quickstart/domains/marketing_events/__init__.py +15 -0
- spaps_server_quickstart-0.6.3/src/spaps_server_quickstart/domains/marketing_events/errors.py +16 -0
- spaps_server_quickstart-0.6.3/src/spaps_server_quickstart/domains/marketing_events/models.py +72 -0
- spaps_server_quickstart-0.6.3/src/spaps_server_quickstart/domains/marketing_events/repository.py +274 -0
- spaps_server_quickstart-0.6.3/src/spaps_server_quickstart/domains/marketing_events/router.py +72 -0
- spaps_server_quickstart-0.6.3/src/spaps_server_quickstart/domains/marketing_events/schemas.py +151 -0
- spaps_server_quickstart-0.6.3/src/spaps_server_quickstart/domains/marketing_events/service.py +465 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/policies/evaluator.py +32 -17
- spaps_server_quickstart-0.6.3/src/spaps_server_quickstart/domains/policies/router.py +403 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/self_service/router.py +148 -14
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/self_service/schemas.py +8 -4
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/stripe/router.py +31 -62
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/stripe/service.py +41 -41
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/stripe/webhook_handler.py +21 -3
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/wallets/chains/dispatcher.py +2 -3
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/webhooks/delivery.py +112 -14
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/middleware/origin_validation.py +43 -7
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/sdk/admin_token_cache.py +18 -1
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/sdk/feature_evaluator.py +8 -2
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/sdk/server_clients.py +76 -6
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/seeds/cli.py +0 -1
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/settings.py +20 -1
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/spaps_app.py +5 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/spaps_settings.py +4 -3
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/startup.py +4 -2
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/testing.py +180 -11
- spaps_server_quickstart-0.6.3/tests/contracts/test_spaps_cors_contract_script.py +359 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/applications/test_router.py +27 -7
- spaps_server_quickstart-0.6.3/tests/domains/audit/test_evidence_custody_contract.py +97 -0
- spaps_server_quickstart-0.6.3/tests/domains/audit/test_migration.py +112 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/audit/test_repository.py +71 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/audit/test_router.py +53 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/audit/test_service.py +85 -0
- spaps_server_quickstart-0.6.3/tests/domains/audit/test_tasks.py +23 -0
- spaps_server_quickstart-0.6.3/tests/domains/auth/test_provider_persistence.py +221 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/auth/test_router.py +199 -85
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/auth/test_user_enumeration_timing.py +28 -15
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/cfo/test_router.py +26 -10
- spaps_server_quickstart-0.6.3/tests/domains/device_flow/test_buildooor_config_migration.py +87 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/device_flow/test_router.py +100 -44
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/device_flow/test_service.py +65 -15
- spaps_server_quickstart-0.6.3/tests/domains/entitlements/test_grant_idempotency_integration.py +521 -0
- spaps_server_quickstart-0.6.3/tests/domains/entitlements/test_manual_crypto_dedupe_migration.py +129 -0
- spaps_server_quickstart-0.6.3/tests/domains/entitlements/test_project_resource_entitlements_migration.py +111 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/entitlements/test_repository.py +71 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/entitlements/test_router.py +403 -112
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/entitlements/test_service.py +288 -44
- spaps_server_quickstart-0.6.3/tests/domains/issue_reporting_platform/test_buildooor_screenshot_smoke.py +209 -0
- spaps_server_quickstart-0.6.3/tests/domains/issue_reporting_platform/test_message_hardening.py +838 -0
- spaps_server_quickstart-0.6.3/tests/domains/issue_reporting_platform/test_message_repository.py +471 -0
- spaps_server_quickstart-0.6.3/tests/domains/issue_reporting_platform/test_message_service.py +914 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/issue_reporting_platform/test_repository.py +265 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/issue_reporting_platform/test_router.py +685 -15
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/issue_reporting_platform/test_service.py +302 -7
- spaps_server_quickstart-0.6.3/tests/domains/marketing_events/__init__.py +1 -0
- spaps_server_quickstart-0.6.3/tests/domains/marketing_events/test_app_wiring.py +29 -0
- spaps_server_quickstart-0.6.3/tests/domains/marketing_events/test_identity_stitch.py +182 -0
- spaps_server_quickstart-0.6.3/tests/domains/marketing_events/test_key_scope.py +20 -0
- spaps_server_quickstart-0.6.3/tests/domains/marketing_events/test_migration.py +175 -0
- spaps_server_quickstart-0.6.3/tests/domains/marketing_events/test_models.py +57 -0
- spaps_server_quickstart-0.6.3/tests/domains/marketing_events/test_repository.py +282 -0
- spaps_server_quickstart-0.6.3/tests/domains/marketing_events/test_router.py +360 -0
- spaps_server_quickstart-0.6.3/tests/domains/marketing_events/test_service.py +407 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/notifications/test_service.py +405 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/policies/test_evaluator.py +109 -9
- spaps_server_quickstart-0.6.3/tests/domains/policies/test_router.py +295 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/self_service/test_router.py +151 -37
- spaps_server_quickstart-0.6.3/tests/domains/stripe/test_webhook_integrity_integration.py +847 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/test_smoke.py +5 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/webhooks/test_delivery.py +38 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/webhooks/test_destination_security.py +1 -1
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/middleware/test_origin_validation.py +42 -1
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_environment_safety.py +46 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_local_mode.py +9 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_primitive_guardrails.py +63 -7
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_sdk.py +124 -5
- spaps_server_quickstart-0.6.3/tests/test_testing_infra_tolerance.py +215 -0
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/device_flow/router.py +0 -110
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/issue_reporting_platform/models.py +0 -128
- spaps_server_quickstart-0.6.1/src/spaps_server_quickstart/domains/policies/router.py +0 -199
- spaps_server_quickstart-0.6.1/tests/domains/policies/test_router.py +0 -78
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/.gitignore +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/.python-version +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/TM-002-IMPLEMENTATION.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/MIGRATION_GUIDE.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/TDD_PLAN.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/TM-ENV-001-checklist.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/TM-ENV-001-email-environment-safety.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/INDEX.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/_archived/diff-mvp-plan.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/security-audit-remediation-2026q1/AUDIT_REPORT.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/security-audit-remediation-2026q1/README.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/security-audit-remediation-2026q1/backend.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/security-audit-remediation-2026q1/flows.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/security-audit-remediation-2026q1/frontend.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/security-audit-remediation-2026q1/plan.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/security-audit-remediation-2026q1/schema.mmd +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/security-audit-remediation-2026q1/shared.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/trust-invariants-kernel/README.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/trust-invariants-kernel/backend.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/trust-invariants-kernel/describe-wave-1-principal-proxy-reuse.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/trust-invariants-kernel/flows.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/trust-invariants-kernel/frontend.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/trust-invariants-kernel/plan.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/trust-invariants-kernel/schema.mmd +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/feature-plans/trust-invariants-kernel/shared.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/messaging-broker-plan.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/docs/security-audit-remediation-2026q1-tm007-tm008.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/scripts/release.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/alembic/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/alembic/naming.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/api/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/api/dependencies.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/api/domains/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/api/domains/health_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/api/domains/metrics_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/api/health.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/api/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/app_factory.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/auth/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/auth/cookies.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/auth/dependencies.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/auth_channels.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/db/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/db/alembic_status.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/db/migration_runner.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/db/session.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/_common/clients.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/_common/pagination.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/_db/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/_db/orm_helpers.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/_db/rls.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/_db/types.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/affiliate_referrals/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/affiliate_referrals/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/affiliate_referrals/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/affiliate_referrals/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/affiliate_referrals/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/affiliate_referrals/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/agent_approvals/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/agent_approvals/authz.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/agent_approvals/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/agent_approvals/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/agent_approvals/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/agent_approvals/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/app_links/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/app_links/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/app_links/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/app_links/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/app_links/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/app_links/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/app_links/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/applications/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/applications/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/applications/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/applications/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/applications/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/audit/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/audit/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/audit/retention.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/auth/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/auth/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/billing_accounts/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/billing_accounts/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/billing_accounts/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/billing_accounts/resolver.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/billing_accounts/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/billing_accounts/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/billing_accounts/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/cfo/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/cfo/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/cfo/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/cfo/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/cfo/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/cfo/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/cfo_roles/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/cfo_roles/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/cfo_roles/me_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/cfo_roles/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/cfo_roles/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/crypto/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/crypto/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/crypto/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/crypto/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/crypto/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/crypto/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/dayrate/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/dayrate/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/dayrate/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/dayrate/pricing.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/dayrate/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/dayrate/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/dayrate/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/dayrate/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/dev/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/dev/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/dev/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/device_flow/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/device_flow/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/device_flow/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/device_flow/store.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/docs/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/docs/discovery.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/docs/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/docs/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/docs/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/docs/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/docs/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/docs/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/email/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/email/config.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/email/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/email/mailgun.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/email/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/email/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/email/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/email/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/email/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/entitlements/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/entitlements/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/events.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/hosted_assets/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/hosted_assets/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/hosted_assets/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/hosted_assets/storage.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/issue_reporting_platform/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/notifications/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/notifications/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/notifications/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/notifications/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/notifications/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/notifications/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/notifications/tasks.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/policies/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/policies/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/policies/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/policies/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/policies/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/policies/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/realtime/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/realtime/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/realtime/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/realtime/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/redirects.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/secure_messages/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/secure_messages/encryption.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/secure_messages/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/secure_messages/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/secure_messages/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/secure_messages/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/secure_messages/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/secure_messages/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/security/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/security/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/security/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/security/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/security/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/security/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/security/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/self_service/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/self_service/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/self_service/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/sessions/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/sessions/admin_detection.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/sessions/blacklist_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/sessions/jwt_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/sessions/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/sessions/nonce_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/sessions/password_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/sessions/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/sessions/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/sessions/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/sessions/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/skill_evals/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/skill_evals/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/skill_evals/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/skill_evals/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/skill_evals/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/skill_evals/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/skill_evals/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/stripe/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/stripe/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/stripe/guest_checkout.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/stripe/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/stripe/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/stripe/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/stripe/tasks.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/support_telemetry_platform/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/support_telemetry_platform/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/support_telemetry_platform/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/support_telemetry_platform/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/support_telemetry_platform/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/support_telemetry_platform/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/support_telemetry_platform/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/usage_control/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/usage_control/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/usage_control/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/usage_control/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/usage_control/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/usage_control/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/usage_control/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/users/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/users/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/users/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/users/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/users/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/users/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/wallets/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/wallets/addressing.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/wallets/chains/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/wallets/chains/ethereum.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/wallets/chains/solana.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/wallets/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/wallets/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/wallets/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/wallets/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/wallets/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/webhooks/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/webhooks/destination_security.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/webhooks/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/webhooks/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/webhooks/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/webhooks/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/webhooks/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/webhooks/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/webhooks/signing.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/webhooks/tasks.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/whitelist/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/whitelist/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/whitelist/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/whitelist/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/whitelist/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/whitelist/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/x402/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/x402/adapter.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/x402/constants.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/x402/errors.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/x402/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/x402/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/x402/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/x402/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/x402/security.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/domains/x402/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/local_mode/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/local_mode/middleware.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/local_mode/personas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/logging.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/middleware/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/middleware/api_key.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/middleware/client_ip.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/middleware/envelope.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/middleware/error_handler.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/middleware/jwt_auth.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/middleware/key_scope.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/middleware/local_mode.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/middleware/rate_limiting.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/middleware/security_headers.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/middleware/spaps_deps.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/middleware.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/money/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/openapi_auth.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/rbac/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/schemas/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/schemas/health.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/sdk/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/sdk/_ttl_cache.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/sdk/role_hierarchy.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/sdk/trusted_service_middleware.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/secure_messaging.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/seeds/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/seeds/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/seeds/validator.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/tasks/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/tasks/celery_factory.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/tasks/health.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/tasks/notifications.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/.pre-commit-config.yaml +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/alembic/env.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/alembic/script.py.mako +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/alembic/versions/.gitkeep +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/alembic.ini +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/docs/templates/API_DOCUMENTATION_TEMPLATE.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/docs/templates/DEBUG_REPORT_TEMPLATE.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/docs/templates/OPERATIONS_PLAYBOOK_TEMPLATE.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/domains/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/domains/admin/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/domains/auth/local_routes.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/domains/users/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/domains/users/models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/domains/users/repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/domains/users/router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/domains/users/schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/domains/users/service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/.env.production.example +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/.githooks/pre-push +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/.github/workflows/deploy.yml +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/.github/workflows/rollback.yml +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/Makefile +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/deploy/deploy.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/deploy/docker-compose.migration.yml +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/deploy/post-deploy-verify.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/deploy/pre-deploy-checks.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/docker-compose.prod.yml +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/scripts/backup-db.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/scripts/dev/await_db.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/scripts/dev/fetch-prod-db.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/scripts/dev/local-debug-loop.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/scripts/dev/start-db.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/scripts/dev/stop-db.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/scripts/new-migration.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/scripts/prepush.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/operations/scripts/restore-db.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/scripts/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/scripts/seeds/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/scripts/seeds/data/users.yaml +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/scripts/seeds/schemas/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/scripts/seeds/schemas/users.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/tests/README.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/tests/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/tests/api/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/tests/api/test_health.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/tests/api/test_users_auth.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/tests/conftest.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/tests/domains/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/tests/domains/example/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/tests/domains/example/conftest.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/tests/domains/users/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/tests/domains/users/conftest.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/tests/integration/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/tests/integration/test_db_connectivity.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/tests/unit/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/templates/tests/unit/test_settings.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/tools/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/src/spaps_server_quickstart/tools/dependency_alignment.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/Makefile +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/docker-compose.yml +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/.env.production.example +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/.github/workflows/deploy.yml +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/Makefile +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/deploy/deploy.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/deploy/post-deploy-verify.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/deploy/pre-deploy-checks.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/deploy/reverse-proxy/README.md +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/deploy/reverse-proxy/certs/.gitkeep +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/deploy/reverse-proxy/docker-compose.yml +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/deploy/reverse-proxy/nginx.conf +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/deploy/reverse-proxy/sites-available/.gitkeep +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/deploy/reverse-proxy/sites-enabled/.gitkeep +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/deploy/reverse-proxy/static/.gitkeep +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/deploy/reverse-proxy/up.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/docker-compose.dev.yml +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/docker-compose.prod.yml +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/scripts/dev/await_db.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/scripts/dev/local-debug-loop.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/scripts/dev/start-db.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/operations/scripts/dev/stop-db.sh +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/templates/tests/conftest.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/conftest.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_app_factory_contract.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_auth_contract.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_celery_contract.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_db_contract.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_dependencies_contract.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_error_copy_contract.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_golden_app_pack.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_health_contract.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_manifest_fastapi_script.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_manifest_parity.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_openapi_auth_metadata.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_oss_hygiene_script.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_pagination_contract.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_router_contract.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_sdk_docs_parity_script.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_settings_contract.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_x402_devnet_prereq_script.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_x402_mainnet_billing_sql_script.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_x402_mainnet_db_script.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_x402_mainnet_env_script.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_x402_mainnet_evidence_script.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_x402_mainnet_live_script.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/contracts/test_x402_production_deployment_script.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/_db/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/_db/test_orm_helpers.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/affiliate_referrals/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/affiliate_referrals/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/affiliate_referrals/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/affiliate_referrals/test_schemas.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/affiliate_referrals/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/agent_approvals/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/agent_approvals/test_authz.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/agent_approvals/test_authz_wiring.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/agent_approvals/test_callback_url_validation.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/agent_approvals/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/agent_approvals/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/agent_approvals/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/app_links/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/app_links/test_blueprints.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/app_links/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/app_links/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/applications/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/applications/test_blueprints.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/applications/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/applications/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/audit/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/audit/test_retention.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/auth/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/auth/test_refresh_token_anomaly.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/auth/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/auth/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/billing_accounts/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/billing_accounts/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/billing_accounts/test_resolver.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/billing_accounts/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/cfo/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/cfo/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/cfo/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/cfo_roles/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/cfo_roles/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/cfo_roles/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/conftest.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/crypto/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/crypto/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/crypto/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/crypto/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/dayrate/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/dayrate/test_allotment_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/dayrate/test_booking_policy_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/dayrate/test_booking_routes.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/dayrate/test_enhanced_booking_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/dayrate/test_pricing.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/dayrate/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/dayrate/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/dayrate/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/dev/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/dev/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/dev/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/device_flow/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/device_flow/test_store.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/docs/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/docs/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/docs/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/docs/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/email/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/email/test_config.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/email/test_env_safety.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/email/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/email/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/email/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/entitlements/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/hosted_assets/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/hosted_assets/test_storage.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/issue_reporting_platform/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/notifications/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/notifications/test_models.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/notifications/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/notifications/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/policies/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/policies/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/policies/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/realtime/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/realtime/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/secure_messages/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/secure_messages/test_encryption.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/secure_messages/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/secure_messages/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/secure_messages/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/secure_messages/test_tm013_security.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/security/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/security/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/security/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/security/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/self_service/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/sessions/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/sessions/test_admin_detection.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/sessions/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/sessions/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/sessions/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/skill_evals/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/skill_evals/test_dogfood_workflow.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/skill_evals/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/skill_evals/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/stripe/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/stripe/test_guest_checkout.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/stripe/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/stripe/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/stripe/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/stripe/test_subscription_application_scoping.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/stripe/test_tasks.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/stripe/test_webhook_handler.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/stripe/test_webhook_hardening.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/support_telemetry_platform/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/support_telemetry_platform/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/support_telemetry_platform/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/support_telemetry_platform/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/test_redirects.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/usage_control/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/usage_control/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/usage_control/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/users/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/users/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/users/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/users/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/wallets/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/wallets/test_addressing.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/wallets/test_chains.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/wallets/test_legacy_routes_tenant_binding.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/wallets/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/wallets/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/wallets/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/webhooks/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/webhooks/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/webhooks/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/webhooks/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/webhooks/test_signing.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/webhooks/test_tasks.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/whitelist/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/whitelist/test_repository.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/whitelist/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/whitelist/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/x402/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/x402/test_facilitator_adapter.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/x402/test_money_contract.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/x402/test_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/domains/x402/test_service.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/middleware/__init__.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/middleware/test_api_key.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/middleware/test_client_ip.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/middleware/test_envelope.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/middleware/test_error_envelope_v1.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/middleware/test_jwt_auth.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/middleware/test_key_scope.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/middleware/test_local_mode.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/middleware/test_rate_limiting.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/middleware/test_security_headers.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/middleware/test_spaps_deps.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/seeds/test_cli.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_alembic_naming.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_alembic_path_bootstrap.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_api_naming_guard.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_api_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_app_factory.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_auth.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_auth_channels.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_auth_cookies.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_auth_dependencies.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_bcrypt_compat.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_db_session.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_dependency_alignment.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_dev_data_pipeline.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_health_router.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_imports.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_logging.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_middleware.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_migration_runner.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_migration_status.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_operations_templates.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_package_metadata.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_rbac.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_readme_snippets.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_secure_messaging.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_seed_validation.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_session_autocommit.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_sessions_blacklist.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_sessions_jwt.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_sessions_nonce.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_sessions_password.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_settings.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_spaps_app.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_startup_validation.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/tests/test_tasks.py +0 -0
- {spaps_server_quickstart-0.6.1 → spaps_server_quickstart-0.6.3}/todo.md +0 -0
|
@@ -6,6 +6,17 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- `entitlements.grant_entitlement` now treats a partial-UNIQUE-index violation (the Stripe entitlement dedupe indexes from migration `000000000044`) as the idempotent "already granted" case: it rolls back the aborted transaction, re-fetches the winning row, and returns it with `created=False`. Previously a concurrent grant for the same checkout/subscription raised an unhandled `IntegrityError` that poisoned the DB session and could wedge Stripe webhook processing (the event was never marked processed, so Stripe retried indefinitely). A genuine non-dedupe integrity error still fails closed (re-raises). (sp-entitlement-grant-integrityerror-idempotency-b5sl)
|
|
12
|
+
|
|
13
|
+
## [0.6.2] - 2026-06-01
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- Raised the FastAPI lower bound to `>=0.120.0` and added an explicit `starlette>=0.49.1,<2.0` dependency floor so downstream services can resolve Starlette security fixes without audit ignores.
|
|
18
|
+
- Raised the `cryptography` lower bound to `>=46.0.7` and relaxed the upper bound to `<49.0` so downstream services can adopt current CVE-fixed releases.
|
|
19
|
+
|
|
9
20
|
## [0.6.1] - 2026-06-01
|
|
10
21
|
|
|
11
22
|
### Changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: spaps-server-quickstart
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.3
|
|
4
4
|
Summary: Shared FastAPI/Celery scaffolding for Sweet Potato service backends.
|
|
5
5
|
Project-URL: Homepage, https://api.sweetpotato.dev
|
|
6
6
|
Project-URL: Repository, https://github.com/sweet-potato/spaps
|
|
@@ -21,11 +21,12 @@ Requires-Dist: asyncpg<0.31,>=0.30.0
|
|
|
21
21
|
Requires-Dist: bcrypt<6.0,>=4.0.0
|
|
22
22
|
Requires-Dist: botocore<2.0,>=1.35.0
|
|
23
23
|
Requires-Dist: celery<6.0,>=5.5.3
|
|
24
|
-
Requires-Dist: cryptography<
|
|
24
|
+
Requires-Dist: cryptography<49.0,>=46.0.7
|
|
25
25
|
Requires-Dist: email-validator<3.0,>=2.1.0
|
|
26
26
|
Requires-Dist: eth-account<1.0,>=0.13.0
|
|
27
|
-
Requires-Dist: fastapi<0
|
|
27
|
+
Requires-Dist: fastapi<1.0,>=0.120.0
|
|
28
28
|
Requires-Dist: greenlet<4.0,>=3.0.3
|
|
29
|
+
Requires-Dist: httpcore<2.0,>=1.0.9
|
|
29
30
|
Requires-Dist: httpx<0.29,>=0.28.1
|
|
30
31
|
Requires-Dist: orjson<4.0,>=3.10.0
|
|
31
32
|
Requires-Dist: packaging<27.0,>=23.0
|
|
@@ -41,6 +42,7 @@ Requires-Dist: slowapi<1.0,>=0.1.9
|
|
|
41
42
|
Requires-Dist: solders<1.0,>=0.21.0
|
|
42
43
|
Requires-Dist: spaps>=0.1.2
|
|
43
44
|
Requires-Dist: sqlalchemy<3.0,>=2.0.30
|
|
45
|
+
Requires-Dist: starlette<2.0,>=0.49.1
|
|
44
46
|
Requires-Dist: stripe<12.0,>=8.0.0
|
|
45
47
|
Requires-Dist: structlog<26.0,>=25.4.0
|
|
46
48
|
Requires-Dist: uvicorn[standard]<0.38,>=0.37.0
|
|
@@ -295,7 +297,7 @@ From the repository root: `make pytest`, `make lint`, `make typecheck`, `make py
|
|
|
295
297
|
## Metadata
|
|
296
298
|
|
|
297
299
|
- `package_name`: `spaps-server-quickstart`
|
|
298
|
-
- `latest_version`: `0.6.
|
|
300
|
+
- `latest_version`: `0.6.2`
|
|
299
301
|
- `minimum_runtime`: `Python >=3.12`
|
|
300
302
|
- `api_base_url`: `https://api.sweetpotato.dev`
|
|
301
303
|
|
|
@@ -216,7 +216,7 @@ From the repository root: `make pytest`, `make lint`, `make typecheck`, `make py
|
|
|
216
216
|
## Metadata
|
|
217
217
|
|
|
218
218
|
- `package_name`: `spaps-server-quickstart`
|
|
219
|
-
- `latest_version`: `0.6.
|
|
219
|
+
- `latest_version`: `0.6.2`
|
|
220
220
|
- `minimum_runtime`: `Python >=3.12`
|
|
221
221
|
- `api_base_url`: `https://api.sweetpotato.dev`
|
|
222
222
|
|
|
@@ -4,6 +4,16 @@ When `spaps-server-quickstart` publishes new releases, dependent services (e.g.
|
|
|
4
4
|
`consumer_server`, `ingredient_server`) need a predictable upgrade cadence. Follow this
|
|
5
5
|
checklist whenever we cut a release or adopt a newer version downstream.
|
|
6
6
|
|
|
7
|
+
## 0.6.2
|
|
8
|
+
|
|
9
|
+
This is a dependency-bound patch release only. It permits FastAPI 0.120+,
|
|
10
|
+
requires Starlette 0.49.1 or newer, and requires `cryptography` 46.0.7 or
|
|
11
|
+
newer without requiring any SPAPS application-code migration.
|
|
12
|
+
|
|
13
|
+
Downstream services should refresh their dependency lockfile after bumping
|
|
14
|
+
`spaps-server-quickstart` to 0.6.2, then run their normal lint, typecheck, test,
|
|
15
|
+
and security-audit gates.
|
|
16
|
+
|
|
7
17
|
## 0.6.1
|
|
8
18
|
|
|
9
19
|
This is a dependency-bound patch release only. It permits FastAPI 0.119.x
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "spaps-server-quickstart"
|
|
7
|
-
version = "0.6.
|
|
7
|
+
version = "0.6.3"
|
|
8
8
|
description = "Shared FastAPI/Celery scaffolding for Sweet Potato service backends."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
|
@@ -23,7 +23,8 @@ classifiers = [
|
|
|
23
23
|
"Topic :: Internet :: WWW/HTTP",
|
|
24
24
|
]
|
|
25
25
|
dependencies = [
|
|
26
|
-
"fastapi>=0.
|
|
26
|
+
"fastapi>=0.120.0,<1.0",
|
|
27
|
+
"starlette>=0.49.1,<2.0",
|
|
27
28
|
"uvicorn[standard]>=0.37.0,<0.38",
|
|
28
29
|
"sqlalchemy>=2.0.30,<3.0",
|
|
29
30
|
"asyncpg>=0.30.0,<0.31",
|
|
@@ -40,6 +41,7 @@ dependencies = [
|
|
|
40
41
|
"celery>=5.5.3,<6.0",
|
|
41
42
|
"redis>=6.4.0,<7.0",
|
|
42
43
|
"httpx>=0.28.1,<0.29",
|
|
44
|
+
"httpcore>=1.0.9,<2.0",
|
|
43
45
|
"orjson>=3.10.0,<4.0",
|
|
44
46
|
"packaging>=23.0,<27.0",
|
|
45
47
|
"spaps>=0.1.2",
|
|
@@ -55,7 +57,7 @@ dependencies = [
|
|
|
55
57
|
# Phase 3-4: Stripe + Entitlements
|
|
56
58
|
"stripe>=8.0.0,<12.0",
|
|
57
59
|
# Phase 7: PII Encryption (AES-256-GCM + HKDF-SHA256)
|
|
58
|
-
"cryptography>=
|
|
60
|
+
"cryptography>=46.0.7,<49.0",
|
|
59
61
|
]
|
|
60
62
|
|
|
61
63
|
[project.optional-dependencies]
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"""Celery application for SPAPS background tasks."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from .spaps_settings import get_spaps_settings
|
|
6
|
+
from .tasks import create_celery_app
|
|
7
|
+
|
|
8
|
+
celery_app = create_celery_app(get_spaps_settings(), task_modules=[])
|
|
9
|
+
celery_app.set_default()
|
|
10
|
+
|
|
11
|
+
__all__ = ["celery_app"]
|
|
@@ -10,6 +10,7 @@ _MODEL_MODULES = (
|
|
|
10
10
|
"spaps_server_quickstart.domains.app_links.models",
|
|
11
11
|
"spaps_server_quickstart.domains.billing_accounts.models",
|
|
12
12
|
"spaps_server_quickstart.domains.applications.models",
|
|
13
|
+
"spaps_server_quickstart.domains.auth.models",
|
|
13
14
|
"spaps_server_quickstart.domains.audit.models",
|
|
14
15
|
"spaps_server_quickstart.domains.cfo.models",
|
|
15
16
|
"spaps_server_quickstart.domains.crypto.models",
|
|
@@ -18,6 +19,7 @@ _MODEL_MODULES = (
|
|
|
18
19
|
"spaps_server_quickstart.domains.email.models",
|
|
19
20
|
"spaps_server_quickstart.domains.entitlements.models",
|
|
20
21
|
"spaps_server_quickstart.domains.issue_reporting_platform.models",
|
|
22
|
+
"spaps_server_quickstart.domains.marketing_events.models",
|
|
21
23
|
"spaps_server_quickstart.domains.notifications.models",
|
|
22
24
|
"spaps_server_quickstart.domains.policies.models",
|
|
23
25
|
"spaps_server_quickstart.domains.secure_messages.models",
|
|
@@ -59,7 +59,7 @@ async def register_affiliate(
|
|
|
59
59
|
user: CurrentUser,
|
|
60
60
|
):
|
|
61
61
|
"""Register as an affiliate with a vanity slug."""
|
|
62
|
-
|
|
62
|
+
return await service.register_affiliate(
|
|
63
63
|
db,
|
|
64
64
|
user_id=UUID(str(user.id)),
|
|
65
65
|
affiliate_type=body.affiliate_type,
|
|
@@ -68,7 +68,6 @@ async def register_affiliate(
|
|
|
68
68
|
payout_wallet_address=body.payout_wallet_address,
|
|
69
69
|
payout_chain=body.payout_chain,
|
|
70
70
|
)
|
|
71
|
-
return result
|
|
72
71
|
|
|
73
72
|
|
|
74
73
|
@affiliates_router.get("/me")
|
|
@@ -79,12 +78,11 @@ async def get_my_affiliate(
|
|
|
79
78
|
agent_id: str | None = Query(default=None),
|
|
80
79
|
):
|
|
81
80
|
"""Get my affiliate profile."""
|
|
82
|
-
|
|
81
|
+
return await service.get_my_affiliate(
|
|
83
82
|
db,
|
|
84
83
|
user_id=UUID(str(user.id)),
|
|
85
84
|
agent_id=UUID(agent_id) if agent_id else None,
|
|
86
85
|
)
|
|
87
|
-
return result
|
|
88
86
|
|
|
89
87
|
|
|
90
88
|
@affiliates_router.put("/me")
|
|
@@ -96,7 +94,7 @@ async def update_my_affiliate(
|
|
|
96
94
|
agent_id: str | None = Query(default=None),
|
|
97
95
|
):
|
|
98
96
|
"""Update my affiliate profile."""
|
|
99
|
-
|
|
97
|
+
return await service.update_my_affiliate(
|
|
100
98
|
db,
|
|
101
99
|
user_id=UUID(str(user.id)),
|
|
102
100
|
agent_id=UUID(agent_id) if agent_id else None,
|
|
@@ -105,7 +103,6 @@ async def update_my_affiliate(
|
|
|
105
103
|
payout_chain=body.payout_chain,
|
|
106
104
|
is_active=body.is_active,
|
|
107
105
|
)
|
|
108
|
-
return result
|
|
109
106
|
|
|
110
107
|
|
|
111
108
|
# ---------------------------------------------------------------------------
|
|
@@ -124,7 +121,7 @@ async def get_commissions(
|
|
|
124
121
|
since: str | None = Query(default=None),
|
|
125
122
|
):
|
|
126
123
|
"""Get commission history."""
|
|
127
|
-
|
|
124
|
+
return await service.get_commissions(
|
|
128
125
|
db,
|
|
129
126
|
user_id=UUID(str(user.id)),
|
|
130
127
|
agent_id=UUID(agent_id) if agent_id else None,
|
|
@@ -133,7 +130,6 @@ async def get_commissions(
|
|
|
133
130
|
limit=pagination.limit,
|
|
134
131
|
offset=pagination.offset,
|
|
135
132
|
)
|
|
136
|
-
return result
|
|
137
133
|
|
|
138
134
|
|
|
139
135
|
@affiliates_router.get("/me/referrals")
|
|
@@ -145,14 +141,13 @@ async def get_my_referrals(
|
|
|
145
141
|
agent_id: str | None = Query(default=None),
|
|
146
142
|
):
|
|
147
143
|
"""Get direct referrals."""
|
|
148
|
-
|
|
144
|
+
return await service.get_my_referrals(
|
|
149
145
|
db,
|
|
150
146
|
user_id=UUID(str(user.id)),
|
|
151
147
|
agent_id=UUID(agent_id) if agent_id else None,
|
|
152
148
|
limit=pagination.limit,
|
|
153
149
|
offset=pagination.offset,
|
|
154
150
|
)
|
|
155
|
-
return result
|
|
156
151
|
|
|
157
152
|
|
|
158
153
|
@affiliates_router.get("/me/tree")
|
|
@@ -163,12 +158,11 @@ async def get_referral_tree(
|
|
|
163
158
|
agent_id: str | None = Query(default=None),
|
|
164
159
|
):
|
|
165
160
|
"""Get referral tree summary (3 levels)."""
|
|
166
|
-
|
|
161
|
+
return await service.get_referral_tree(
|
|
167
162
|
db,
|
|
168
163
|
user_id=UUID(str(user.id)),
|
|
169
164
|
agent_id=UUID(agent_id) if agent_id else None,
|
|
170
165
|
)
|
|
171
|
-
return result
|
|
172
166
|
|
|
173
167
|
|
|
174
168
|
# ---------------------------------------------------------------------------
|
|
@@ -184,14 +178,13 @@ async def request_payout(
|
|
|
184
178
|
user: CurrentUser,
|
|
185
179
|
):
|
|
186
180
|
"""Request USDC payout."""
|
|
187
|
-
|
|
181
|
+
return await service.request_payout(
|
|
188
182
|
db,
|
|
189
183
|
user_id=UUID(str(user.id)),
|
|
190
184
|
agent_id=UUID(body.agent_id) if body.agent_id else None,
|
|
191
185
|
amount_cents=body.amount_cents,
|
|
192
186
|
application_id=UUID(str(application.id)),
|
|
193
187
|
)
|
|
194
|
-
return result
|
|
195
188
|
|
|
196
189
|
|
|
197
190
|
@affiliates_router.get("/me/payouts")
|
|
@@ -204,7 +197,7 @@ async def get_my_payouts(
|
|
|
204
197
|
status: str | None = Query(default=None),
|
|
205
198
|
):
|
|
206
199
|
"""Get payout history."""
|
|
207
|
-
|
|
200
|
+
return await service.get_my_payouts(
|
|
208
201
|
db,
|
|
209
202
|
user_id=UUID(str(user.id)),
|
|
210
203
|
agent_id=UUID(agent_id) if agent_id else None,
|
|
@@ -212,7 +205,6 @@ async def get_my_payouts(
|
|
|
212
205
|
limit=pagination.limit,
|
|
213
206
|
offset=pagination.offset,
|
|
214
207
|
)
|
|
215
|
-
return result
|
|
216
208
|
|
|
217
209
|
|
|
218
210
|
# ===========================================================================
|
|
@@ -242,14 +234,13 @@ async def record_click(
|
|
|
242
234
|
ip_address = request.client.host if request.client else "unknown"
|
|
243
235
|
user_agent = request.headers.get("User-Agent")
|
|
244
236
|
|
|
245
|
-
|
|
237
|
+
return await service.record_click(
|
|
246
238
|
db,
|
|
247
239
|
slug=body.slug,
|
|
248
240
|
application_id=request_application_id,
|
|
249
241
|
ip_address=ip_address,
|
|
250
242
|
user_agent=user_agent,
|
|
251
243
|
)
|
|
252
|
-
return result
|
|
253
244
|
|
|
254
245
|
|
|
255
246
|
@referrals_router.post("/attribute", status_code=201)
|
|
@@ -264,7 +255,7 @@ async def attribute_referral(
|
|
|
264
255
|
The caller must own the referred entity, and click IDs are resolved only
|
|
265
256
|
inside the current API key application.
|
|
266
257
|
"""
|
|
267
|
-
|
|
258
|
+
return await service.attribute_referral(
|
|
268
259
|
db,
|
|
269
260
|
referred_entity_type=body.referred_entity_type,
|
|
270
261
|
referred_entity_id=UUID(body.referred_entity_id),
|
|
@@ -273,7 +264,6 @@ async def attribute_referral(
|
|
|
273
264
|
slug=body.slug,
|
|
274
265
|
application_id=UUID(str(application.id)),
|
|
275
266
|
)
|
|
276
|
-
return result
|
|
277
267
|
|
|
278
268
|
|
|
279
269
|
# ===========================================================================
|
|
@@ -292,13 +282,12 @@ async def list_admin_payouts(
|
|
|
292
282
|
status: str | None = Query(default="requested"),
|
|
293
283
|
):
|
|
294
284
|
"""List payout queue (admin only)."""
|
|
295
|
-
|
|
285
|
+
return await service.list_admin_payouts(
|
|
296
286
|
db,
|
|
297
287
|
status=status,
|
|
298
288
|
limit=pagination.limit,
|
|
299
289
|
offset=pagination.offset,
|
|
300
290
|
)
|
|
301
|
-
return result
|
|
302
291
|
|
|
303
292
|
|
|
304
293
|
@affiliate_admin_router.post("/{payout_id}/approve")
|
|
@@ -309,12 +298,11 @@ async def approve_payout(
|
|
|
309
298
|
user: AdminUser,
|
|
310
299
|
):
|
|
311
300
|
"""Approve a payout request (admin only)."""
|
|
312
|
-
|
|
301
|
+
return await service.approve_payout(
|
|
313
302
|
db,
|
|
314
303
|
payout_id=UUID(payout_id),
|
|
315
304
|
admin_user_id=UUID(str(user.id)),
|
|
316
305
|
)
|
|
317
|
-
return result
|
|
318
306
|
|
|
319
307
|
|
|
320
308
|
@affiliate_admin_router.post("/{payout_id}/complete")
|
|
@@ -326,13 +314,12 @@ async def complete_payout(
|
|
|
326
314
|
user: AdminUser,
|
|
327
315
|
):
|
|
328
316
|
"""Mark payout as completed with tx_hash (admin only)."""
|
|
329
|
-
|
|
317
|
+
return await service.complete_payout(
|
|
330
318
|
db,
|
|
331
319
|
payout_id=UUID(payout_id),
|
|
332
320
|
tx_hash=body.tx_hash,
|
|
333
321
|
application_id=UUID(str(application.id)),
|
|
334
322
|
)
|
|
335
|
-
return result
|
|
336
323
|
|
|
337
324
|
|
|
338
325
|
@affiliate_admin_router.post("/{payout_id}/deny")
|
|
@@ -344,12 +331,11 @@ async def deny_payout(
|
|
|
344
331
|
user: AdminUser,
|
|
345
332
|
):
|
|
346
333
|
"""Deny a payout request (admin only)."""
|
|
347
|
-
|
|
334
|
+
return await service.deny_payout(
|
|
348
335
|
db,
|
|
349
336
|
payout_id=UUID(payout_id),
|
|
350
337
|
reason=body.reason,
|
|
351
338
|
)
|
|
352
|
-
return result
|
|
353
339
|
|
|
354
340
|
|
|
355
341
|
@affiliate_admin_router.post("/{payout_id}/fail")
|
|
@@ -361,12 +347,11 @@ async def fail_payout(
|
|
|
361
347
|
user: AdminUser,
|
|
362
348
|
):
|
|
363
349
|
"""Mark payout as failed (admin only)."""
|
|
364
|
-
|
|
350
|
+
return await service.fail_payout(
|
|
365
351
|
db,
|
|
366
352
|
payout_id=UUID(payout_id),
|
|
367
353
|
reason=body.reason,
|
|
368
354
|
)
|
|
369
|
-
return result
|
|
370
355
|
|
|
371
356
|
|
|
372
357
|
# ===========================================================================
|
|
@@ -385,7 +370,7 @@ async def update_affiliate_config(
|
|
|
385
370
|
user: CurrentUser,
|
|
386
371
|
):
|
|
387
372
|
"""Configure affiliate rates for an application."""
|
|
388
|
-
|
|
373
|
+
return await service.update_affiliate_config(
|
|
389
374
|
db,
|
|
390
375
|
application_id=UUID(application_id),
|
|
391
376
|
user_id=UUID(str(user.id)),
|
|
@@ -397,7 +382,6 @@ async def update_affiliate_config(
|
|
|
397
382
|
attribution_window_days=body.attribution_window_days,
|
|
398
383
|
min_payout_cents=body.min_payout_cents,
|
|
399
384
|
)
|
|
400
|
-
return result
|
|
401
385
|
|
|
402
386
|
|
|
403
387
|
@affiliate_config_router.get("/{application_id}/affiliate-config")
|
|
@@ -407,11 +391,10 @@ async def get_affiliate_config(
|
|
|
407
391
|
application: Application,
|
|
408
392
|
):
|
|
409
393
|
"""Read affiliate config for an application."""
|
|
410
|
-
|
|
394
|
+
return await service.get_affiliate_config(
|
|
411
395
|
db,
|
|
412
396
|
application_id=UUID(application_id),
|
|
413
397
|
)
|
|
414
|
-
return result
|
|
415
398
|
|
|
416
399
|
|
|
417
400
|
# ===========================================================================
|
|
@@ -447,7 +430,7 @@ async def process_commissions(
|
|
|
447
430
|
):
|
|
448
431
|
raise ForbiddenError("Invalid service credentials")
|
|
449
432
|
|
|
450
|
-
|
|
433
|
+
return await service.process_commissions(
|
|
451
434
|
db,
|
|
452
435
|
payer_entity_type=body.payer_entity_type,
|
|
453
436
|
payer_entity_id=UUID(body.payer_entity_id),
|
|
@@ -456,4 +439,3 @@ async def process_commissions(
|
|
|
456
439
|
payment_reference=body.payment_reference,
|
|
457
440
|
application_id=UUID(body.application_id),
|
|
458
441
|
)
|
|
459
|
-
return result
|
|
@@ -168,7 +168,7 @@ async def register_agent(
|
|
|
168
168
|
|
|
169
169
|
Returns agent details including the raw secret (shown once).
|
|
170
170
|
"""
|
|
171
|
-
|
|
171
|
+
return await service.register_agent(
|
|
172
172
|
db,
|
|
173
173
|
application_id=UUID(str(application.id)),
|
|
174
174
|
owner_user_id=UUID(str(user.id)),
|
|
@@ -179,7 +179,6 @@ async def register_agent(
|
|
|
179
179
|
referral_click_id=body.referral_click_id,
|
|
180
180
|
referral_slug=body.ref,
|
|
181
181
|
)
|
|
182
|
-
return result
|
|
183
182
|
|
|
184
183
|
|
|
185
184
|
@agents_router.get("")
|
|
@@ -191,7 +190,7 @@ async def list_agents(
|
|
|
191
190
|
is_active: bool | None = Query(default=True),
|
|
192
191
|
):
|
|
193
192
|
"""List agents owned by the authenticated user (admin sees all)."""
|
|
194
|
-
|
|
193
|
+
return await service.list_agents(
|
|
195
194
|
db,
|
|
196
195
|
application_id=UUID(str(application.id)),
|
|
197
196
|
user_id=UUID(str(user.id)),
|
|
@@ -200,7 +199,6 @@ async def list_agents(
|
|
|
200
199
|
limit=pagination.limit,
|
|
201
200
|
offset=pagination.offset,
|
|
202
201
|
)
|
|
203
|
-
return result
|
|
204
202
|
|
|
205
203
|
|
|
206
204
|
@agents_router.get("/{agent_id}")
|
|
@@ -211,14 +209,13 @@ async def get_agent(
|
|
|
211
209
|
user: CurrentUser,
|
|
212
210
|
):
|
|
213
211
|
"""Get agent details (owner or admin only)."""
|
|
214
|
-
|
|
212
|
+
return await service.get_agent(
|
|
215
213
|
db,
|
|
216
214
|
agent_id=_as_uuid(agent_id, "agent_id"),
|
|
217
215
|
application_id=UUID(str(application.id)),
|
|
218
216
|
user_id=UUID(str(user.id)),
|
|
219
217
|
is_admin=getattr(user, "is_admin", False),
|
|
220
218
|
)
|
|
221
|
-
return result
|
|
222
219
|
|
|
223
220
|
|
|
224
221
|
@agents_router.put("/{agent_id}")
|
|
@@ -230,7 +227,7 @@ async def update_agent(
|
|
|
230
227
|
user: CurrentUser,
|
|
231
228
|
):
|
|
232
229
|
"""Update agent fields (owner or admin only)."""
|
|
233
|
-
|
|
230
|
+
return await service.update_agent(
|
|
234
231
|
db,
|
|
235
232
|
agent_id=_as_uuid(agent_id, "agent_id"),
|
|
236
233
|
application_id=UUID(str(application.id)),
|
|
@@ -242,7 +239,6 @@ async def update_agent(
|
|
|
242
239
|
metadata=body.metadata,
|
|
243
240
|
is_active=body.is_active,
|
|
244
241
|
)
|
|
245
|
-
return result
|
|
246
242
|
|
|
247
243
|
|
|
248
244
|
@agents_router.delete("/{agent_id}")
|
|
@@ -253,14 +249,13 @@ async def deactivate_agent(
|
|
|
253
249
|
user: CurrentUser,
|
|
254
250
|
):
|
|
255
251
|
"""Deactivate an agent (soft delete). Expires pending approvals."""
|
|
256
|
-
|
|
252
|
+
return await service.deactivate_agent(
|
|
257
253
|
db,
|
|
258
254
|
agent_id=_as_uuid(agent_id, "agent_id"),
|
|
259
255
|
application_id=UUID(str(application.id)),
|
|
260
256
|
user_id=UUID(str(user.id)),
|
|
261
257
|
is_admin=getattr(user, "is_admin", False),
|
|
262
258
|
)
|
|
263
|
-
return result
|
|
264
259
|
|
|
265
260
|
|
|
266
261
|
@agents_router.post("/{agent_id}/rotate-secret")
|
|
@@ -271,13 +266,12 @@ async def rotate_secret(
|
|
|
271
266
|
user: CurrentUser,
|
|
272
267
|
):
|
|
273
268
|
"""Rotate the agent secret. Owner only."""
|
|
274
|
-
|
|
269
|
+
return await service.rotate_agent_secret(
|
|
275
270
|
db,
|
|
276
271
|
agent_id=_as_uuid(agent_id, "agent_id"),
|
|
277
272
|
application_id=UUID(str(application.id)),
|
|
278
273
|
user_id=UUID(str(user.id)),
|
|
279
274
|
)
|
|
280
|
-
return result
|
|
281
275
|
|
|
282
276
|
|
|
283
277
|
# ---------------------------------------------------------------------------
|
|
@@ -294,7 +288,7 @@ async def add_approver(
|
|
|
294
288
|
user: CurrentUser,
|
|
295
289
|
):
|
|
296
290
|
"""Add a user or agent as approver. Owner only."""
|
|
297
|
-
|
|
291
|
+
return await service.add_approver(
|
|
298
292
|
db,
|
|
299
293
|
agent_id=_as_uuid(agent_id, "agent_id"),
|
|
300
294
|
application_id=UUID(str(application.id)),
|
|
@@ -307,7 +301,6 @@ async def add_approver(
|
|
|
307
301
|
if body.approver_agent_id
|
|
308
302
|
else None,
|
|
309
303
|
)
|
|
310
|
-
return result
|
|
311
304
|
|
|
312
305
|
|
|
313
306
|
@agents_router.get("/{agent_id}/approvers")
|
|
@@ -319,14 +312,13 @@ async def list_approvers(
|
|
|
319
312
|
pagination: PaginationDep,
|
|
320
313
|
):
|
|
321
314
|
"""List approvers for an agent. Owner or admin."""
|
|
322
|
-
|
|
315
|
+
return await service.list_approvers(
|
|
323
316
|
db,
|
|
324
317
|
agent_id=_as_uuid(agent_id, "agent_id"),
|
|
325
318
|
application_id=UUID(str(application.id)),
|
|
326
319
|
user_id=UUID(str(user.id)),
|
|
327
320
|
is_admin=getattr(user, "is_admin", False),
|
|
328
321
|
)
|
|
329
|
-
return result
|
|
330
322
|
|
|
331
323
|
|
|
332
324
|
@agents_router.delete("/{agent_id}/approvers/{approver_id}")
|
|
@@ -338,14 +330,13 @@ async def remove_approver(
|
|
|
338
330
|
user: CurrentUser,
|
|
339
331
|
):
|
|
340
332
|
"""Remove an approver. Owner only."""
|
|
341
|
-
|
|
333
|
+
return await service.remove_approver(
|
|
342
334
|
db,
|
|
343
335
|
agent_id=_as_uuid(agent_id, "agent_id"),
|
|
344
336
|
approver_id=_as_uuid(approver_id, "approver_id"),
|
|
345
337
|
application_id=UUID(str(application.id)),
|
|
346
338
|
user_id=UUID(str(user.id)),
|
|
347
339
|
)
|
|
348
|
-
return result
|
|
349
340
|
|
|
350
341
|
|
|
351
342
|
# ===========================================================================
|
|
@@ -378,7 +369,7 @@ async def create_approval(
|
|
|
378
369
|
application_id=UUID(str(application.id)),
|
|
379
370
|
)
|
|
380
371
|
|
|
381
|
-
|
|
372
|
+
return await service.create_approval(
|
|
382
373
|
db,
|
|
383
374
|
agent_id=UUID(str(agent.id)),
|
|
384
375
|
application_id=UUID(str(application.id)),
|
|
@@ -394,7 +385,6 @@ async def create_approval(
|
|
|
394
385
|
else None,
|
|
395
386
|
settings=request.app.state.settings,
|
|
396
387
|
)
|
|
397
|
-
return result
|
|
398
388
|
|
|
399
389
|
|
|
400
390
|
@approvals_router.get("/by-code/{code}")
|
|
@@ -408,13 +398,12 @@ async def get_approval_by_code(
|
|
|
408
398
|
# Capability gate: approval_request.read (before participant check)
|
|
409
399
|
await _enforce_read_capability(db, user, application)
|
|
410
400
|
|
|
411
|
-
|
|
401
|
+
return await service.get_approval_by_code(
|
|
412
402
|
db,
|
|
413
403
|
code=code,
|
|
414
404
|
application_id=UUID(str(application.id)),
|
|
415
405
|
user_id=UUID(str(user.id)),
|
|
416
406
|
)
|
|
417
|
-
return result
|
|
418
407
|
|
|
419
408
|
|
|
420
409
|
@approvals_router.get("/{approval_id}")
|
|
@@ -424,12 +413,11 @@ async def get_approval(
|
|
|
424
413
|
application: Application,
|
|
425
414
|
):
|
|
426
415
|
"""Poll approval status. API key auth only; sensitive fields are withheld."""
|
|
427
|
-
|
|
416
|
+
return await service.get_approval(
|
|
428
417
|
db,
|
|
429
418
|
approval_id=_as_uuid(approval_id, "approval_id"),
|
|
430
419
|
application_id=UUID(str(application.id)),
|
|
431
420
|
)
|
|
432
|
-
return result
|
|
433
421
|
|
|
434
422
|
|
|
435
423
|
@approvals_router.post("/{approval_id}/respond")
|
|
@@ -471,7 +459,7 @@ async def respond_to_approval(
|
|
|
471
459
|
|
|
472
460
|
raise UnauthorizedError("Authentication required")
|
|
473
461
|
|
|
474
|
-
|
|
462
|
+
return await service.respond_to_approval(
|
|
475
463
|
db,
|
|
476
464
|
approval_id=_as_uuid(approval_id, "approval_id"),
|
|
477
465
|
application_id=UUID(str(application.id)),
|
|
@@ -485,7 +473,6 @@ async def respond_to_approval(
|
|
|
485
473
|
edited_intent=body.edited_intent.model_dump() if body.edited_intent else None,
|
|
486
474
|
settings=settings,
|
|
487
475
|
)
|
|
488
|
-
return result
|
|
489
476
|
|
|
490
477
|
|
|
491
478
|
@approvals_router.get("")
|
|
@@ -502,7 +489,7 @@ async def list_approvals(
|
|
|
502
489
|
# Capability gate: approval_request.read (before participant check)
|
|
503
490
|
await _enforce_read_capability(db, user, application)
|
|
504
491
|
|
|
505
|
-
|
|
492
|
+
return await service.list_approvals(
|
|
506
493
|
db,
|
|
507
494
|
application_id=UUID(str(application.id)),
|
|
508
495
|
user_id=UUID(str(user.id)),
|
|
@@ -513,4 +500,3 @@ async def list_approvals(
|
|
|
513
500
|
limit=pagination.limit,
|
|
514
501
|
offset=pagination.offset,
|
|
515
502
|
)
|
|
516
|
-
return result
|
|
@@ -118,7 +118,7 @@ def _resolve_approval_jwt_secret(settings: Any) -> str:
|
|
|
118
118
|
|
|
119
119
|
def _agent_to_dict(agent: Any, *, include_secret: bool = False) -> dict[str, Any]:
|
|
120
120
|
"""Convert an Agent model instance to a serialisable dict."""
|
|
121
|
-
|
|
121
|
+
return {
|
|
122
122
|
"id": str(agent.id),
|
|
123
123
|
"name": agent.name,
|
|
124
124
|
"description": agent.description,
|
|
@@ -130,7 +130,6 @@ def _agent_to_dict(agent: Any, *, include_secret: bool = False) -> dict[str, Any
|
|
|
130
130
|
"created_at": agent.created_at.isoformat() if hasattr(agent.created_at, "isoformat") else str(agent.created_at),
|
|
131
131
|
"updated_at": agent.updated_at.isoformat() if hasattr(agent.updated_at, "isoformat") else str(agent.updated_at),
|
|
132
132
|
}
|
|
133
|
-
return result
|
|
134
133
|
|
|
135
134
|
|
|
136
135
|
async def _attribute_agent_referral(
|