tempest-fastapi-sdk 0.335.0__tar.gz → 0.337.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/CHANGELOG.md +115 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/PKG-INFO +2 -2
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/README.md +1 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/SHIPPED.md +24 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/integrated.en.md +1 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/integrated.md +1 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/migration.en.md +26 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/migration.md +26 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/auth-flow.en.md +57 -14
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/auth-flow.md +57 -14
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/cli.en.md +16 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/cli.md +16 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/introspection-auth.en.md +53 -5
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/introspection-auth.md +52 -5
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/mercado-pago.en.md +11 -4
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/mercado-pago.md +10 -5
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/push.en.md +8 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/push.md +8 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/sse.en.md +12 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/sse.md +12 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/storage.en.md +3 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/storage.md +4 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/stripe.en.md +36 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/stripe.md +36 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/system-checks.en.md +1 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/system-checks.md +1 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/text-search.en.md +52 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/text-search.md +52 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/webauthn.en.md +2 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/webauthn.md +2 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/webpush.en.md +24 -5
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/webpush.md +26 -5
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/reference.md +3 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/pyproject.toml +1 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/__init__.py +11 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/route_docs/en_us/auth.py +17 -3
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/route_docs/pt_br/auth.py +17 -3
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/introspection.py +76 -6
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/router.py +114 -7
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/schemas.py +22 -3
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/service.py +35 -11
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/checks/builtins.py +10 -3
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/user.py +96 -22
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/repository.py +66 -7
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/search.py +88 -17
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/exceptions/__init__.py +4 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/exceptions/i18n.py +2 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/exceptions/validation.py +21 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/hostbridge/shell.py +27 -2
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/adapters/mercado_pago.py +33 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/base.py +19 -3
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/stripe/__init__.py +4 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/stripe/client.py +110 -12
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/push/service.py +21 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/push/transports/webpush.py +15 -2
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/settings/mixins.py +61 -8
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/sse/broker.py +81 -7
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/storage/minio_client.py +17 -11
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/download.py +11 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/webpush/__init__.py +4 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/webpush/dispatcher.py +86 -13
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/webpush/service.py +49 -1
- tempest_fastapi_sdk-0.337.0/tests/api/test_cors.py +198 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_cookie_delivery.py +31 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_credential_change_revoke.py +100 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_introspection.py +100 -0
- tempest_fastapi_sdk-0.337.0/tests/auth/test_password_change_mfa.py +395 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_router_session_sharing.py +4 -4
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_service.py +2 -1
- tempest_fastapi_sdk-0.337.0/tests/auth/test_signup_mfa_fields.py +202 -0
- tempest_fastapi_sdk-0.337.0/tests/cli/test_user_set_password_passkeys.py +240 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_search.py +120 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/hostbridge/test_shell.py +22 -0
- tempest_fastapi_sdk-0.337.0/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_installments.json +51 -0
- tempest_fastapi_sdk-0.337.0/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_installments_get.json +51 -0
- tempest_fastapi_sdk-0.337.0/tests/integrations/payment/adapters/test_mercado_pago_installments.py +170 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/stripe/test_client.py +78 -0
- tempest_fastapi_sdk-0.337.0/tests/push/test_router_egress.py +212 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/push/test_transports.py +28 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/sse/test_broker.py +125 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/storage/test_minio_client.py +33 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_mfa_token_paths_guard.py +37 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_download.py +11 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/webpush/test_dispatcher_egress.py +33 -2
- tempest_fastapi_sdk-0.337.0/tests/webpush/test_router_egress.py +224 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/uv.lock +1 -1
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/vendor/mercadopago-evidence.md +105 -0
- tempest_fastapi_sdk-0.335.0/tests/api/test_cors.py +0 -101
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/.github/ISSUE_TEMPLATE/docs.yml +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/.github/ISSUE_TEMPLATE/question.yml +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/.github/dependabot.yml +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/.github/workflows/audit.yml +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/.github/workflows/docs.yml +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/.github/workflows/release-pypi.yml +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/.gitignore +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/.python-version +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/CLAUDE.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/LESSONS.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/Makefile +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/CLAUDE.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/admin-showcase.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/admin-showcase.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/architecture.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/architecture.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/changelog.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/changelog.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/contributing.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/contributing.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/fullstack-web.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/fullstack-web.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/genai-examples.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/genai-examples.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/getting-started/first-project.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/getting-started/first-project.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/getting-started/python-versions.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/getting-started/python-versions.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/getting-started/references.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/getting-started/references.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/getting-started/uv.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/getting-started/uv.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/index.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/index.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/installation.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/installation.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/learning/index.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/learning/index.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/learning/marketplace/api.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/learning/marketplace/api.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/learning/marketplace/business-rules.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/learning/marketplace/business-rules.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/learning/marketplace/domain.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/learning/marketplace/domain.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/learning/marketplace/flows.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/learning/marketplace/flows.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/learning/marketplace/index.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/learning/marketplace/index.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/marketplace-local.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/marketplace-local.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/admin-sql-console.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/admin-sql-console.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/admin.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/admin.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/agents-advanced.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/agents-advanced.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/agents-architecture.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/agents-architecture.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/agents-concepts.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/agents-concepts.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/agents-db.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/agents-db.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/agents-prompts.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/agents-prompts.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/agents-testing.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/agents-testing.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/agents-tools.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/agents-tools.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/agents.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/agents.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/app-errors.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/app-errors.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/artifact-registry.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/artifact-registry.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/asyncapi-client.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/asyncapi-client.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/audit-trail.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/audit-trail.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/auth-pages.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/auth-pages.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/authz.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/authz.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/br-helpers.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/br-helpers.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/cache.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/cache.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/chat.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/chat.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/database.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/database.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/deploy-safety.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/deploy-safety.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/downloads.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/downloads.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/email.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/email.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/enum-columns.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/enum-columns.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/faces.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/faces.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/fakes.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/fakes.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/feature-flags.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/feature-flags.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/fields.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/fields.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/file-store.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/file-store.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/firebase-auth.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/firebase-auth.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/genai-hosted.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/genai-hosted.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/genai.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/genai.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/geo.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/geo.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/hostbridge.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/hostbridge.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/http-client.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/http-client.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/http.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/http.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/idempotency.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/idempotency.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/image-generation.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/image-generation.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/index.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/index.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/jobs.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/jobs.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/kestra.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/kestra.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/local-storage.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/local-storage.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/logging.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/logging.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/management-commands.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/management-commands.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/mercado-pago-sandbox.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/mercado-pago-sandbox.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/mercado-pago-webhooks.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/mercado-pago-webhooks.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/metrics.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/metrics.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/mfa.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/mfa.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/migrations.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/migrations.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/model-weights.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/model-weights.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/modelops.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/modelops.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/models.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/models.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/multi-tenant.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/multi-tenant.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/n8n.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/n8n.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/oauth.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/oauth.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/observability.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/observability.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/offline-sync.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/offline-sync.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/openapi-client.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/openapi-client.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/openapi-errors.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/openapi-errors.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/openpix-subscriptions.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/openpix-subscriptions.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/openpix.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/openpix.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/outbox.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/outbox.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/pdf.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/pdf.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/permission-guards.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/permission-guards.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/pix-protocol.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/pix-protocol.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/query-plans.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/query-plans.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/queue-tasks.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/queue-tasks.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/react-spa.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/react-spa.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/realtime.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/realtime.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/refresh-tokens.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/refresh-tokens.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/revenuecat.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/revenuecat.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/reviews.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/reviews.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/security.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/security.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/sessions.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/sessions.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/spreadsheets.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/spreadsheets.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/ssr-actions.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/ssr-actions.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/stored-files.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/stored-files.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/subject-data.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/subject-data.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/tempestweb-frontend.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/tempestweb-frontend.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/testing.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/testing.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/transactions.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/transactions.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/transcription-pipeline.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/transcription-pipeline.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/typing.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/typing.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/ui-css.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/ui-css.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/ui-forms.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/ui-forms.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/ui.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/ui.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/uploads.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/uploads.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/utilities.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/utilities.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/vision.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/vision.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/wallet.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/wallet.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/websocket.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/websocket.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/zap-inbound.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/zap-inbound.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/zap.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recipes/zap.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recommended-architecture.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/recommended-architecture.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/reference.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/roadmap.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/roadmap.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/ssr.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/ssr.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/tutorial.en.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/docs/tutorial.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/mkdocs.yml +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/mkdocs_hooks/llmstxt.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/planning/genai/README.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/planning/genai/manual-validation.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/planning/genai/phase-0.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/planning/genai/phase-1.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/planning/genai/phase-2.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/planning/genai/phase-3.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/planning/genai/validation-strategy.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/scripts/export_order.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/scripts/extract_recipe.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/scripts/face_separation.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/scripts/mercadopago_diff.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/scripts/mercadopago_overlay.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/scripts/openpix_diff.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/scripts/openpix_overlay.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/scripts/overlay_enums.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/scripts/regen_mercado_pago.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/scripts/regen_openpix.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/scripts/regen_stripe.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/scripts/regen_zap.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/scripts/regen_zap_ws.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/actions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/auth.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/config.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/dashboard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/discovery.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/display.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/forms.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/permissions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/session.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/site.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/sql_shell.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/static/admin.css +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/tasks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/templates/_macros.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/templates/autocomplete.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/templates/base.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/templates/dashboard.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/templates/detail.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/templates/form.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/templates/import.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/templates/list.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/templates/login.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/templates/logs.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/templates/mfa.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/templates/sql_shell.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/templates/task_detail.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/templates/tasks.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/admin/theme.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/agents/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/agents/agent.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/agents/builtin.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/agents/fact_stores.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/agents/loop.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/agents/memory.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/agents/multi.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/agents/protocols.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/agents/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/agents/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/agents/skills.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/agents/storage.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/agents/structured.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/agents/testing.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/agents/tools.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/agents/typed.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/cookies.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/dependencies/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/dependencies/_session.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/dependencies/auth.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/dependencies/rate_limit.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/dependencies/signed_url.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/error_docs.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/handlers.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/middlewares/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/middlewares/_credentials.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/middlewares/_exempt.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/middlewares/_streaming.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/middlewares/access_log.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/middlewares/body_size.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/middlewares/cors.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/middlewares/csrf.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/middlewares/error_envelope.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/middlewares/graceful.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/middlewares/honeypot.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/middlewares/idempotency.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/middlewares/public_scheme.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/middlewares/quota.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/middlewares/rate_limit.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/middlewares/request_id.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/middlewares/response_cache.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/oauth.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/oidc_verifier.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/openapi_pruning.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/redaction.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/route_docs/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/route_docs/catalog.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/route_docs/doc.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/route_docs/en_us/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/route_docs/en_us/ai.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/route_docs/en_us/apps.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/route_docs/en_us/platform.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/route_docs/pt_br/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/route_docs/pt_br/ai.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/route_docs/pt_br/apps.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/route_docs/pt_br/platform.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/routers/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/routers/health.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/routers/logs.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/routers/metrics.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/routers/tool_spec.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/server.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/spa.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/static.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/tracing.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/api/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/app_errors/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/app_errors/constants.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/app_errors/models.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/app_errors/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/app_errors/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/app_errors/service.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/artifacts/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/artifacts/actions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/artifacts/digest.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/artifacts/model.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/artifacts/registry.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/asyncapi/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/asyncapi/emit_stream.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/asyncapi/generate.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/asyncapi/ir.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/asyncapi/loader.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/asyncapi/parse.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/_login_flow.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/email_delivery.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/exceptions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/firebase.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/form_csrf.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/guards.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/locale.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/page_renderer.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/pages.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/_auth_layout.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/_email_layout.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/activation.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/activation_error.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/activation_request.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/activation_request_done.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/activation_success.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/email_change.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/email_change_error.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/email_change_success.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/email_changed_notice.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/email_verification.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/email_verification_error.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/email_verification_success.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/login.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/login_mfa.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_error.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_form.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/password_reset_success.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/signup.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/en-US/signup_done.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_error.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_request.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_request_done.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/activation_success.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change_error.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_change_success.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_changed_notice.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification_error.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/email_verification_success.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/login.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/login_mfa.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_error.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_form.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/password_reset_success.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/signup.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/templates/pt-BR/signup_done.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/token_delivery.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/auth/webauthn.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/authz/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/authz/dependencies.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/authz/permissions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/authz/requires.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cache/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cache/decorator.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cache/invalidation.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cache/redis_manager.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/chat/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/chat/constants.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/chat/models.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/chat/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/chat/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/chat/service.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/checks/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/checks/messages.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/checks/registry.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/CLAUDE.md.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/Dockerfile.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/README.md.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/dockerignore.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/env.example.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/gitignore.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/main.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/pyproject.toml.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/api/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/api/app.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/auth.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/controllers.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/api/dependencies/resources.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/api/routers/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/api/routers/api.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/api/routers/service_info.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/controllers/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/controllers/system/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/controllers/system/service_info.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/core/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/core/enums.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/core/exceptions.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/core/settings.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/core/types.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/db/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/db/configs/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/db/configs/names.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/db/models/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/db/models/users/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/db/models/users/user.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/db/repositories/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/schemas/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/schemas/service_info.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/scripts/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/scripts/composition.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/server.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/services/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/src/utils/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/tests/__init__.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/tests/conftest.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/tests/test_schemas.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/_templates/tests/test_smoke.py.tmpl +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/agents.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/cache.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/commands.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/config.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/db.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/docker_compose.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/doctor.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/email.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/entrypoint.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/flags.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/generate.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/integrations.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/layer_lint.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/lint.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/main.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/model.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/new.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/openapi_errors.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/openapi_export.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/openapi_fix.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/pdf.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/permissions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/pr_prompt.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/project.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/queue.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/routes.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/schema_lint.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/secrets.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/serve.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/shell.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/src_layers.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/storage.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/tasks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/cli/voice.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/controllers/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/controllers/base.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/core/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/core/context.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/core/docs_locale.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/core/enums.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/core/logging.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/core/redaction.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/core/typed.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/_alembic_templates/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/_alembic_templates/env.py.template +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/_alembic_templates/script.py.mako +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/alembic_env.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/alembic_hooks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/audit.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/backup.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/connection.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/datetime_type.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/device_token_model.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/enum_migrations.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/enums.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/explain.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/expressions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/integrity.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/migrations.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/mixins.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/model.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/naming.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/outbox.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/signals.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/slow_query.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/tenant.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/transaction.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/user_model.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/user_oauth_account_model.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/user_recovery_code_model.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/user_refresh_token_model.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/user_token_model.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/user_webauthn_credential_model.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/voice_profile_model.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/webhook_inbox.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/db/webpush_subscription_model.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/exceptions/base.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/exceptions/conflict.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/exceptions/factories.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/exceptions/forbidden.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/exceptions/integration.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/exceptions/jwt.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/exceptions/not_found.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/exceptions/oauth.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/exceptions/signed_url.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/exceptions/too_many_requests.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/exceptions/unauthorized.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/exceptions/upload.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/exceptions/value_errors.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/exceptions/wallet.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/faces/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/faces/detector.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/faces/geometry.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/faces/models.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/faces/recognizer.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/faces/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/flags/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/flags/backends.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/flags/dependencies.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/flags/service.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/admin.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/anthropic.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/audio/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/audio/conversation.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/audio/decoding.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/audio/diarization.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/audio/language.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/audio/profiles.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/audio/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/audio/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/audio/speaker_count.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/audio/stt.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/audio/tts.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/audio/voiceprint.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/batching.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/catalog.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/completion.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/embeddings.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/generation_cache.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/hardware.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/hosted.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/hub.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/image.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/inventory.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/metrics.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/moderation.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/ollama.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/onnx_embed.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/openai_compat.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/pipeline.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/providers.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/rag/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/rag/chroma.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/rag/chunking.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/rag/context.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/rag/extract.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/rag/fusion.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/rag/hybrid.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/rag/pdf.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/rag/rerank.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/rag/retriever.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/rag/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/rag/search.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/rag/vectorstore.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/registry.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/structured.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/text.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/tokens.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/tracing.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/usage.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/genai/vision_text.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/geo/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/geo/br.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/geo/cache.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/geo/db.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/geo/distance.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/geo/enums.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/geo/estimate.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/geo/geocoding.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/geo/geometry.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/geo/polyline.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/geo/routing.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/geo/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/hostbridge/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/hostbridge/bridge.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/hostbridge/config.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/hostbridge/exceptions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/hostbridge/paths.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/hostbridge/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/hostbridge/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/CLAUDE.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/messaging/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/messaging/zap/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/messaging/zap/client.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/messaging/zap/inbox.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/messaging/zap/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/messaging/zap/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/messaging/zap/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/messaging/zap_ws/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/messaging/zap_ws/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/messaging/zap_ws/stream.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/adapters/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/adapters/openpix.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/client.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/environment.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/events.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/money.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/mercado_pago/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/openpix/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/openpix/client.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/openpix/environment.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/openpix/events.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/openpix/money.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/openpix/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/openpix/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/routing.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/settlement.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/stripe/environment.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/stripe/events.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/stripe/money.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/stripe/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/payment/stripe/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/subscriptions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/client.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/events.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/snapshot.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/integrations/subscriptions/revenuecat/webhooks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/modelops/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/modelops/_fs.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/modelops/bench.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/modelops/compact.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/modelops/compose.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/modelops/edge.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/modelops/energy.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/modelops/export.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/modelops/monitoring.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/modelops/pickled.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/modelops/quantize.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/modelops/ranking.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/modelops/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/modelops/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/modelops/serving.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/modelops/sklearn.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/modelops/static.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/openapi/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/openapi/emit_client.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/openapi/emit_schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/openapi/generate.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/openapi/ir.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/openapi/loader.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/openapi/naming.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/openapi/parse.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/openapi/source.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/pdf/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/pdf/assets.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/pdf/documents.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/pdf/formatting.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/pdf/pages.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/pdf/qr.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/pdf/reader.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/pdf/renderer.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/pdf/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/pdf/templates/_base.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/pdf/templates/_party.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/pdf/templates/_styles.css +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/pdf/templates/contract.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/pdf/templates/quote.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/pdf/templates/receipt.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/pdf/templates/report.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/pdf/templates/voucher.html +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/privacy/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/privacy/graph.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/privacy/storage.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/push/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/push/dispatcher.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/push/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/push/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/push/transports/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/push/transports/fcm.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/py.typed +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/queue/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/queue/broker.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/queue/consumer.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/queue/dedup.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/queue/manager.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/queue/publisher.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/queue/reliability.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/queue/topology.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/queue/tracing.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/reviews/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/reviews/models.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/reviews/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/reviews/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/reviews/service.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/schemas/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/schemas/base.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/schemas/errors.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/schemas/link_headers.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/schemas/logs.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/schemas/pagination.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/schemas/response.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/services/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/services/base.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/services/file_mixin.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/sessions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/sessions/authenticator.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/sessions/dependencies.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/sessions/middleware.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/sessions/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/sessions/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/sessions/service.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/sessions/store.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/settings/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/settings/base.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/settings/version.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/spreadsheet/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/spreadsheet/formats.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/spreadsheet/google.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/spreadsheet/reader.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/spreadsheet/styles.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/spreadsheet/writer.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/sse/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/sse/event_stream.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/sse/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/sse/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ssr/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ssr/_static/confirm.js +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ssr/_static/htmx.min.js +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ssr/assets.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ssr/attributes.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ssr/errors.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ssr/flashes.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ssr/page.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ssr/redirects.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ssr/response.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ssr/webapp.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/storage/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/storage/_download.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/storage/local_client.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/storage/local_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/storage/presign.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/tasks/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/tasks/cancellation.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/tasks/cron.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/tasks/dead_letter.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/tasks/heartbeat/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/tasks/heartbeat/__main__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/tasks/heartbeat/files.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/tasks/heartbeat/source.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/tasks/jobs.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/tasks/lock.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/tasks/manager.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/tasks/observability.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/tasks/oop.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/tasks/progress.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/tasks/queue.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/tasks/scheduler.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/tasks/stages.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/testing/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/testing/admin.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/testing/database.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/testing/factories.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/testing/fakes/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/testing/fakes/_control.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/testing/fakes/email.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/testing/fakes/genai.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/testing/fakes/geo.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/testing/fakes/payment.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/testing/fakes/push.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/testing/fakes/search.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/testing/fakes/storage.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/testing/fakes/subscriptions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/testing/privacy.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/testing/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/_core.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/components/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/components/alert.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/components/card.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/components/classes.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/components/empty.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/components/flash.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/components/nav.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/components/pagination.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/components/styles.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/components/table.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/css/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/css/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/css/rules.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/css/tokens.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/forms/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/forms/introspect.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/forms/parse.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/forms/render.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/forms/spec.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/forms/styles.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/layout/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/layout/grid.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/layout/shell.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/pages/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/pages/error.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/pages/page.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/ui/stylesheet.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/_egress.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/_http_cache.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/_lifecycle.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/_security_headers.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/_settings_discovery.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/_signature.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/_url.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/client_ip.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/color.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/currency.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/data/br_locations.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/datetime.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/dict.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/email.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/fields.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/file_store.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/forms.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/http_client.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/jwt.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/locations.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/log.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/media_types.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/metrics.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/naming.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/opaque_token.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/password.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/regex.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/retry.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/signed_url.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/storage_backends.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/throttle.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/token_types.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/totp.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/utils/upload.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/vision/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/vision/mapping.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/vision/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/vision/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/wallet/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/wallet/ledger.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/wallet/models.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/wallet/money.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/wallet/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/wallet/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/wallet/service.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/webpush/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/webpush/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/websockets/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/websockets/heartbeat.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/websockets/hub.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/websockets/router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tempest_fastapi_sdk/websockets/schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/CLAUDE.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/_seed.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/_thread_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_actions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_audit_viewer.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_auth.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_auth_role_and_mfa.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_autocomplete_fk.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_csv_import.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_dashboard_cards.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_discovery.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_display.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_display_timezone.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_exclude_fields.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_form_error_rollback.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_forms.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_inlines.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_lenses.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_local_assets.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_login_csrf.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_login_scheme_warning.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_login_throttle.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_logs_nav.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_logs_traceback_export.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_mfa.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_mfa_attempt_limit.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_password_field.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_principal_revalidation.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_rbac.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_rbac_cross_model.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_rich_filters.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_search.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_secret_columns.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_session_revocation.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_site.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_sql_shell.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_sql_shell_page.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_tasks_panel.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_theme.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_upload_field.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_user_model.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/admin/test_widgets_json_time.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/agents/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/agents/test_agent.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/agents/test_agent_limits.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/agents/test_agent_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/agents/test_builtin_tools.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/agents/test_fact_stores.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/agents/test_loop.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/agents/test_memory.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/agents/test_multi_agent.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/agents/test_skills.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/agents/test_structured.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/agents/test_testing.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/agents/test_typed_tools.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/route_docs_apps.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_access_log.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_access_log_capability_urls.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_body_size.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_business_metrics.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_client_error_envelope.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_cookies.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_csrf.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_dependencies_auth.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_error_docs.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_error_envelope.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_error_field.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_graceful.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_handlers.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_health_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_honeypot.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_idempotency.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_jwt_dependency.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_lazy_dependencies.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_log_redaction.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_logs_rotated_backups.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_logs_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_middleware_exempt_semantics.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_oauth.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_oidc_introspection.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_oidc_verifier.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_openapi_pruning.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_outbound_webhooks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_prometheus.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_prometheus_auth.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_public_scheme_middleware.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_quota.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_quota_redis_live.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_rate_limit.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_rate_limit_dependency.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_rate_limit_envelope.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_rate_limit_extras.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_rate_limit_fail_open.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_rate_limit_redis_proxy.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_request_id_middleware.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_response_cache.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_role_dependency.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_route_docs.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_server.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_server_error_notify.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_session_provider.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_signed_path_dependency.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_spa.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_static.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_streaming_passthrough.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_token_type_strict.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_tool_spec.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_tracing.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_validation_envelope.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_webhooks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/api/test_webhooks_rsa.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/app_errors/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/app_errors/test_app_errors.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/artifacts/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/artifacts/support.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/artifacts/test_actions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/artifacts/test_digest.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/artifacts/test_registry.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/asyncapi/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/asyncapi/conftest.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/asyncapi/test_docstring_injection.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/asyncapi/test_generate.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/asyncapi/test_loader.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/asyncapi/test_parse.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_activation_resend.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_auth_pages.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_auth_pages_revoke.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_backend_links_dependencies.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_change_password_mfa.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_consume_token_race.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_current_user_active.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_email_background.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_email_change.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_email_delivery_failure.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_email_integration_disabled.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_email_link_amr.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_email_link_refusal.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_email_recovery_throttle.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_email_templates.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_email_verified_at.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_expire_on_commit.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_firebase.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_guards.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_locale.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_login_throttle.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_me.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_mfa.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_mfa_amr.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_mfa_token_paths.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_oauth_login.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_oauth_mfa.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_oauth_token_login.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_password_reset_mfa.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_password_reset_revoke.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_production_link_surfacing.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_recovery_revokes_passkeys.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_refresh.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_refresh_db.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_refresh_rotation_race.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_refusal_codes.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_signup_extension.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_signup_fields.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_signup_mounting.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_token_supersede.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_webauthn.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/test_webauthn_step_up.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/auth/webauthn_authenticator.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/authz/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/authz/test_dependencies.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/authz/test_permissions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/authz/test_requires.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cache/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cache/test_decorator.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cache/test_invalidation.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cache/test_key_encoding.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cache/test_redis_manager.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/chat/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/chat/test_attachment_uploader_migration.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/chat/test_chat.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/chat/test_isolation.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/chat/test_messenger.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/chat/test_messenger_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/chat/test_router_stream.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/checks/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/checks/test_check_config_cli.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/checks/test_checks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/conftest.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_agents.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_config.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_db.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_db_alembic_errors.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_db_resolution.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_db_seed.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_docker_compose.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_docker_compose_live.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_dockerfile_spa.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_doctor.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_email_storage.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_entrypoint.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_flags_cache.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_generate.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_integrations.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_layer_lint.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_layer_lint_exceptions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_layer_lint_imports.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_layer_lint_injection.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_layer_lint_layout.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_layer_lint_routers.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_layer_lint_structure.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_layer_lint_tests.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_main.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_management_commands.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_model.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_new_required_extras.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_openapi_errors.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_openapi_errors_bare_calls.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_openapi_errors_callgraph.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_openapi_errors_configured.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_openapi_errors_delegation.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_openapi_export.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_openapi_fix.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_permissions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_project_claude_md.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_quality_gate_integration.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_queue_tasks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_routes.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_scaffold_dependencies.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_scaffold_placeholders.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_scaffold_project_version.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_scaffold_quality.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_scaffold_runtime.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_secrets.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_serve.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_shell.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_src_layers_import.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_user.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/cli/test_user_mfa.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/conftest.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/controllers/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/controllers/test_base.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/controllers/test_controller.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/controllers/test_generic_bounds.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/core/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/core/test_context.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/core/test_enums.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/core/test_logging.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/core/test_logging_time_rotation.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/core/test_redaction.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/core/test_typed.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_alembic_env.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_alembic_env_sqlalchemy_matrix.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_alembic_hooks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_audit.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_backup.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_bulk_ops.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_bulk_upsert_conflict.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_connection.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_cursor_types.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_eager_load.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_enum_column.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_enum_downgrade.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_enum_migration_lifecycle.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_enum_migrations.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_explain.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_expressions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_filters_contract.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_integrity.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_integrity_live.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_integrity_sqlalchemy_matrix.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_migrations.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_migrations_async.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_migrations_foreign_keys.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_mixins.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_model.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_naming.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_naming_live.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_none_filter_is_null.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_outbox.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_repository.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_repository_conflict_exceptions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_repository_order_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_safe_upgrade.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_schema_sync.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_session_helpers.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_signals.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_slow_query.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_sqlite_failed_commit.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_sqlite_foreign_keys.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_sqlite_wal.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_table_name.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_tenant.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_transaction.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_utc_datetime.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/db/test_webhook_inbox.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/exceptions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/exceptions/test_exceptions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/exceptions/test_factories.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/exceptions/test_i18n.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/exceptions/test_inherited_code_warning.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/exceptions/test_integration_disabled.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/exceptions/test_value_error_codes.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/faces/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/faces/test_faces.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/flags/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/flags/test_flags.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/_eval/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/_eval/corpus.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/audio/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/audio/test_audio.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/audio/test_audio_runtime_extra.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/audio/test_concurrency.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/audio/test_decoding.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/audio/test_diarization.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/audio/test_diarization_models.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/audio/test_language.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/audio/test_profiles.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/audio/test_speaker_count.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/audio/test_stt_loading.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/audio/test_tts_tempfile.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/audio/test_voice_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/conftest.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_anthropic.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_batching.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_chat_memory.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_chat_memory_ranking.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_completion.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_embedding_cache_redis.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_embeddings.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_env_defaults.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_eval_harness.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_genai_metrics.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_genai_observability.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_generation_cache.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_generation_config.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_generator_defaults.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_gpu_validation.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_hardware.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_hardware_cgroup.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_hardware_nvml.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_hosted.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_hosted_interchangeability.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_hub.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_hybrid.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_image.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_inventory.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_lifecycle.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_moderation.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_ollama.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_onnx_embed.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_openai_compat.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_pipeline.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_pipeline_integration.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_precision_kwarg.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_providers.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_rag.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_rag_extract_pinning.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_rag_identity.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_refinements.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_registry.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_rerank.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_router_limits.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_structured.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_structured_extraction.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_structured_parity.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_structured_retry.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_text.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_text_cancellation.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_text_concurrency.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_text_lifecycle.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_text_seed.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_textgen_embed_metrics.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_tokens.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_tracing.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_usage.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_usage_cache_hit.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_vectorstore.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_vectorstore_ann.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_vectorstore_pg_live.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_vision_text.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/genai/test_vision_text_config.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/geo/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/geo/fixtures/nominatim_reverse_coivaras.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/geo/fixtures/nominatim_reverse_sao_jose_da_tenda.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/geo/fixtures/nominatim_reverse_sao_paulo.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/geo/fixtures/nominatim_reverse_teresina.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/geo/test_br.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/geo/test_db.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/geo/test_db_postgres_live.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/geo/test_distance.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/geo/test_estimate.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/geo/test_geocoding.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/geo/test_geocoding_cache.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/geo/test_geometry.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/geo/test_polyline.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/geo/test_routing.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/geo/test_routing_extra.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/hostbridge/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/hostbridge/conftest.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/hostbridge/test_bridge_files.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/hostbridge/test_bridge_host.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/hostbridge/test_messages.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/hostbridge/test_paths.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/hostbridge/test_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/messaging/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/messaging/zap/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/messaging/zap/test_generated_drift.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/messaging/zap/test_inbox.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/messaging/zap/test_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/messaging/zap/test_webhooks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/messaging/zap_ws/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/messaging/zap_ws/test_generated_drift.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_approved.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_cancel_auth.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_capture.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_get_after_refund.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_manual.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_manual_cancel.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_refund_partial.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_refund_rest.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/card_rejected.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_cancel.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_create.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get_after_cancel.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get_after_partial_refund.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get_after_refund.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get_expired.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_get_paid.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_refund_partial.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_refund_rest.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/fixtures/mercado_pago_orders/pix_refund_unpaid.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/test_mercado_pago_adapter.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/test_mercado_pago_sandbox.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/test_openpix_adapter.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/test_openpix_adapter_wire.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/adapters/test_openpix_payout_wire.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/mercado_pago/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/mercado_pago/fixtures/chargebacks_search.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/mercado_pago/fixtures/users_me.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/mercado_pago/test_deprecations.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/mercado_pago/test_generated_drift.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/mercado_pago/test_mercado_pago.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/mercado_pago/test_overlay.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/mercado_pago/test_provenance.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/mercado_pago/test_sandbox_observations.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/mercado_pago/test_sdk_coverage.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/mercado_pago/test_webhook_dependency.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/openpix/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/openpix/test_generated_drift.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/openpix/test_openpix.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/openpix/test_overlay.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/openpix/test_real_payload_shapes.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/openpix/test_request_body_shape.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/openpix/test_spec_type_conflicts.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/stripe/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/stripe/test_generated_drift.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/stripe/test_money.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/stripe/test_webhooks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/test_contract.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/test_routing.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/payment/test_settlement.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/subscriptions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/subscriptions/revenuecat/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/subscriptions/revenuecat/conftest.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/subscriptions/revenuecat/test_client.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/subscriptions/revenuecat/test_snapshot.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/subscriptions/revenuecat/test_vendored_docs.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/subscriptions/revenuecat/test_webhooks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/integrations/test_path_segments.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/modelops/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/modelops/conftest.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/modelops/test_bench.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/modelops/test_compact.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/modelops/test_compose.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/modelops/test_edge.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/modelops/test_energy.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/modelops/test_export.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/modelops/test_monitoring.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/modelops/test_pickled.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/modelops/test_quantize.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/modelops/test_ranking.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/modelops/test_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/modelops/test_serving.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/modelops/test_sklearn_export.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/modelops/test_static.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/openapi/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/openapi/conftest.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/openapi/test_divergent_success.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/openapi/test_docstring_injection.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/openapi/test_form_bodies.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/openapi/test_generate.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/openapi/test_hostile_spec.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/openapi/test_loader.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/openapi/test_multipart_bodies.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/openapi/test_naming.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/openapi/test_nested_capture.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/openapi/test_parse.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/openapi/test_payload_arrays.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/openapi/test_raw_responses.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/pdf/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/pdf/test_assets.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/pdf/test_formatting.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/pdf/test_pages.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/pdf/test_qr.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/pdf/test_reader.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/pdf/test_renderer.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/pdf/test_router_and_cli.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/privacy/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/privacy/test_graph.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/privacy/test_storage.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/privacy/test_storage_live.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/push/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/push/test_fcm_disabled.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/push/test_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/push/test_router_ownership.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/push/test_service.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/queue/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/queue/test_broker.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/queue/test_consumer.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/queue/test_dead_letter_ack_policy.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/queue/test_dedup.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/queue/test_fanout.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/queue/test_fanout_live.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/queue/test_manager.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/queue/test_prefetch.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/queue/test_publisher.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/queue/test_reliability.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/queue/test_topology.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/queue/test_tracing.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/reviews/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/reviews/test_reviews.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/schemas/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/schemas/test_base.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/schemas/test_cursor_pagination.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/schemas/test_errors.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/schemas/test_link_headers.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/schemas/test_pagination.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/schemas/test_pagination_order_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/schemas/test_response.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/services/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/services/test_base.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/services/test_file_mixin.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/sessions/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/sessions/test_credentials_html.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/sessions/test_session_dependency_factory.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/sessions/test_session_revocation_race.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/sessions/test_sessions.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/settings/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/settings/test_auth_link_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/settings/test_base.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/settings/test_environment.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/settings/test_hosted_genai_settings.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/settings/test_integration_flags.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/settings/test_mixins.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/settings/test_public_scheme.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/settings/test_session_cookie_kwargs.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/settings/test_storage_settings.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/settings/test_trusted_ip_header.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/settings/test_version.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/spreadsheet/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/spreadsheet/test_formats.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/spreadsheet/test_google.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/spreadsheet/test_limits.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/spreadsheet/test_reader.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/spreadsheet/test_reader_async.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/spreadsheet/test_writer.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/sse/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/sse/test_event_stream.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/sse/test_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ssr/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ssr/test_attributes.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ssr/test_confirm.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ssr/test_flashes.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ssr/test_html_errors.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ssr/test_integration.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ssr/test_page.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ssr/test_page_document.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ssr/test_redirects.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ssr/test_response.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ssr/test_web_app_theme.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ssr/test_webapp.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ssr/test_webapp_caching.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/storage/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/storage/test_accel_redirect_live.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/storage/test_disabled_client.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/storage/test_download_live.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/storage/test_local_client.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/storage/test_local_presign.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/storage/test_local_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/storage/test_presign.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/storage/test_presign_live.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/storage/test_signed_url_live.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_cancellation.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_cron.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_dead_letter.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_enqueue_by_name.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_enqueue_by_name_live.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_heartbeat.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_jobs.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_jobs_cancellation.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_jobs_dispatch.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_manager.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_observability.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_oop.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_progress.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_queue.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_queue_from_settings.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_queue_lifecycle_hooks.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_queue_typing.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_scheduler.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_scheduler_lease.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/tasks/test_stages.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_admin_principal_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_agent_docs_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_aiosqlite_thread_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_alembic_env_lint_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_alias_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_cli_extra_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_constraint_shape_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_docs_api_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_docs_build_isolation_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_docs_examples_compile.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_docs_examples_names.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_docs_method_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_docs_organization.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_docs_signature_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_docs_type_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_docstring_example_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_engine_configuration_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_enum_schema_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_factory_param_exports_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_i18n_coverage_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_kwargs_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_lazy_init_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_llmstxt.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_lock_version_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_protocol_shape_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_pydantic_error_types_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_pydantic_mypy_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_reexport_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_reference_coverage.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_release_flow_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_route_docs_coverage_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_schedule_projection_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_sdist_payload.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_session_factory_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_settings_passthrough_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_spreadsheet_event_loop_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_supply_chain_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_testclient_httpx2_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_timeout_method_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_vacuous_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_version_agreement.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_wallet_concurrency_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_wallet_update_shape_guard.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/test_wheel_payload.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/testing/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/testing/test_admin_login_typing.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/testing/test_database.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/testing/test_factories.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/testing/test_fakes_behaviour.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/testing/test_fakes_contract.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/testing/test_schema_metadata.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ui/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ui/test_components.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ui/test_core_contract.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ui/test_css.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ui/test_css_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ui/test_forms_dependency.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ui/test_forms_file.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ui/test_forms_help_text.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ui/test_forms_hidden.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ui/test_forms_introspect.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ui/test_forms_parse.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ui/test_forms_render.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ui/test_integration.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ui/test_layout_and_pages.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/ui/test_stylesheet.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/smtp_server.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_client_ip.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_currency.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_datetime.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_dict.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_email.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_email_disabled.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_fields.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_file_store.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_forms.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_http_client.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_image_media_type.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_image_media_type_field.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_jwt.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_lazy_extras.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_locations.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_log.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_media_types.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_metrics.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_opaque_token.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_password.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_regex.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_retry.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_settings_discovery.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_signed_url.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_storage_backends.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_throttle.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_token_types.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_upload.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_upload_signature_policy.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/utils/test_url.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/vision/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/vision/test_detect_classify.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/vision/test_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/vision/test_vision.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/wallet/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/wallet/support.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/wallet/test_ledger.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/wallet/test_money.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/wallet/test_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/wallet/test_service.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/wallet/test_wallet_live.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/webpush/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/webpush/test_dispatcher.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/webpush/test_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/webpush/test_router_ownership.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/webpush/test_schemas.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/webpush/test_service.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/websockets/__init__.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/websockets/test_heartbeat.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/websockets/test_hub_and_router.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/websockets/test_jwt_bearer_resolver.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/tests/websockets/test_router_live.py +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/vendor/PROVENANCE.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/vendor/mercadopago-openapi.yaml +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/vendor/openpix-evidence.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/vendor/openpix-openapi.json +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/vendor/revenuecat-webhook-event-types.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/vendor/revenuecat-webhook-sample-events.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/vendor/revenuecat-webhooks.md +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/vendor/stripe-api-facts.yaml +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/vendor/zap-asyncapi.yaml +0 -0
- {tempest_fastapi_sdk-0.335.0 → tempest_fastapi_sdk-0.337.0}/vendor/zap-openapi.yaml +0 -0
|
@@ -7,6 +7,121 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.337.0] — 2026-10-30
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- `CardCharge.installment_amount_cents` e `CardCharge.payer_total_cents`: a
|
|
15
|
+
parcela e o total que o pagador deve, com juros. O adapter do Mercado Pago
|
|
16
|
+
lê `payment_method.installment_amount` e o `paid_amount` do pagamento
|
|
17
|
+
(não o `total_paid_amount` da order, que arredonda a oferta um centavo
|
|
18
|
+
abaixo). Valor ausente ou ilegível vira `None`, nunca recusa a order.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- `CardChargeRequest.amount_cents` documentava o valor da oferta de parcelas;
|
|
23
|
+
é o preço, e o provedor soma os juros (medido com 3x de R$ 1.000,00 no
|
|
24
|
+
Amex de teste). A receita do Mercado Pago dizia que as parcelas dependiam
|
|
25
|
+
da conta: dependem do BIN e do valor.
|
|
26
|
+
|
|
27
|
+
## [0.336.0] — 2026-10-30
|
|
28
|
+
|
|
29
|
+
### Security
|
|
30
|
+
|
|
31
|
+
- `CORSSettings.production_violations()` passa a recusar, com
|
|
32
|
+
`CORS_ALLOW_CREDENTIALS=true`: `"*"` em `CORS_ORIGINS` (agora com mensagem própria), `"null"` em
|
|
33
|
+
`CORS_ORIGINS` e um `CORS_ORIGIN_REGEX` que casa com uma origem reservada
|
|
34
|
+
`.invalid` (`.*`, `https://.*`). Com credenciais ligadas, o
|
|
35
|
+
`CORSMiddleware` do Starlette devolve a própria `Origin` do chamador com
|
|
36
|
+
`Access-Control-Allow-Credentials: true`. Vale só sob `ENV=production`;
|
|
37
|
+
desenvolvimento e teste continuam aceitando o par. Docstrings do
|
|
38
|
+
`CORSSettings` e o `hint` do check `security.W003` deixam de afirmar que o
|
|
39
|
+
navegador bloqueia `*` com credenciais.
|
|
40
|
+
- `AsyncMinIOClient.accel_redirect_response` (e `serve_object` com
|
|
41
|
+
`accel_redirect=True`) monta os overrides `response-*` pelo mesmo
|
|
42
|
+
`download_overrides` do `presigned_get_url`: o `media_type=` precisa ser um
|
|
43
|
+
`tipo/subtipo` puro, e qualquer outro valor sobe `ValueError` antes de
|
|
44
|
+
assinar. Mudança de comportamento: um `media_type` com parâmetro (`;
|
|
45
|
+
charset=...`) passa a ser recusado nesse caminho, como já era no link
|
|
46
|
+
presignado. O `inline` (em todo helper de download) deixa de valer para um
|
|
47
|
+
tipo com vírgula ou quebra de linha, que o navegador pode ler como outro
|
|
48
|
+
tipo.
|
|
49
|
+
- Busca textual (`BaseRepository.search`, `search_condition`,
|
|
50
|
+
`full_text_search`, `full_text_condition` e as funções de `db.search`)
|
|
51
|
+
passa a recusar sempre `hashed_password` e as colunas de
|
|
52
|
+
`__secret_columns__` com `422`. Novo `searchable_columns` no
|
|
53
|
+
`BaseRepository` (atributo de classe ou argumento do construtor, no formato
|
|
54
|
+
do `orderable_columns`) e novo `searchable=` em `resolve_search_column`,
|
|
55
|
+
`like_search_condition`, `full_text_condition` e `full_text_rank`
|
|
56
|
+
restringem `fields` a um conjunto declarado. A recusa de campo
|
|
57
|
+
desconhecido deixa de listar todas as colunas do model em
|
|
58
|
+
`details["allowed"]`: a chave só aparece com um conjunto declarado, e
|
|
59
|
+
lista só ele. Mudança de comportamento: a mensagem passa a ser
|
|
60
|
+
`... has no searchable column ...`.
|
|
61
|
+
- Stripe: `create`, `retrieve`, `update` e `delete` dos recursos do
|
|
62
|
+
`StripeClient` conferem o campo `object` da resposta contra o tipo do
|
|
63
|
+
recurso e levantam o novo `StripeObjectMismatchError` (subclasse de
|
|
64
|
+
`StripeError`) quando ele difere ou falta. `StripeResource` ganha
|
|
65
|
+
`object_type=` (default `None`, sem conferência) e `StripeClient.request`
|
|
66
|
+
ganha `expected_object=`. Mudança de comportamento: um `2xx` de outro tipo
|
|
67
|
+
de objeto deixa de ser devolvido.
|
|
68
|
+
- `hostbridge.ps_single_quote` dobra também as aspas tipográficas U+2018,
|
|
69
|
+
U+2019, U+201A e U+201B, que o lexer do PowerShell lê como aspa simples do
|
|
70
|
+
mesmo jeito que `'` — antes só o apóstrofo ASCII era dobrado. Afeta o script
|
|
71
|
+
que `HostBridge.pick_file` gera para `title`, `filter` e `initial_dir`.
|
|
72
|
+
- `SSEBroker.run()` isola cada mensagem do pub/sub: payload que não é o
|
|
73
|
+
envelope do `publish` (não é JSON, não é objeto, `event`/`id`/`retry` com tipo
|
|
74
|
+
errado) é registrado em `WARNING` — canal e tipo do erro, sem o conteúdo — e
|
|
75
|
+
pulado. Antes a exceção encerrava o loop e o worker parava de entregar
|
|
76
|
+
eventos sem aviso.
|
|
77
|
+
- `SSEBroker` com cliente Redis e o `channel_prefix` default `"sse"` registra
|
|
78
|
+
um `WARNING` na construção: pub/sub do Redis ignora o índice de DB, então
|
|
79
|
+
serviços na mesma instância com o mesmo prefixo recebem os eventos uns dos
|
|
80
|
+
outros. O default continua `"sse"` por compatibilidade; a receita de SSE
|
|
81
|
+
passa a usar um prefixo próprio do serviço.
|
|
82
|
+
- Web Push: `WebPushSubscriptionService.subscribe` (e, por ele, o
|
|
83
|
+
`POST /subscribe` do `make_web_push_router`) e o registro `web` do
|
|
84
|
+
`DeviceService.register` / `make_push_router` recusam com
|
|
85
|
+
`422 PUSH_ENDPOINT_NOT_PUBLIC` o endpoint que o dispatcher recusaria na
|
|
86
|
+
entrega — não `https`, ou com host que é ou resolve para endereço não
|
|
87
|
+
público. A checagem é o novo `WebPushDispatcher.check_endpoint`, com o
|
|
88
|
+
mesmo `resolver` e o mesmo `allow_private_networks` do envio; host que não
|
|
89
|
+
resolve no momento é aceito. Novos símbolos: `WebPushEndpointRefusedError`
|
|
90
|
+
(subclasse de `WebPushError`, com `permanent`) e
|
|
91
|
+
`PushEndpointNotPublicException`. Mudança de comportamento: o
|
|
92
|
+
`send_many` passa a devolver para poda o endpoint recusado de forma
|
|
93
|
+
permanente (não `https`, ou IP literal não público), e o
|
|
94
|
+
`WebPushTransport` o traduz em `PushDeviceGoneError`; recusa decidida por
|
|
95
|
+
resposta de DNS continua só no log (#660).
|
|
96
|
+
- `tempest user set-password` passa a apagar as passkeys WebAuthn do usuário
|
|
97
|
+
por padrão, na mesma transação do hash novo, como o `mfa-reset`: a troca
|
|
98
|
+
feita pelo operador é recuperação de conta. Ganha
|
|
99
|
+
`--webauthn-credential-model` (default
|
|
100
|
+
`src.db.models:UserWebAuthnCredentialModel`, usado quando existe) e
|
|
101
|
+
`--keep-passkeys` como saída explícita; as duas juntas saem com código 2, e
|
|
102
|
+
a saída diz quantas passkeys foram apagadas (#659). Mudança de
|
|
103
|
+
comportamento.
|
|
104
|
+
- `POST /auth/password-change` responde **200** com `LoginResponseSchema` em
|
|
105
|
+
vez de `204`, sem nunca abrir sessão mais forte que o `/auth/login` para as
|
|
106
|
+
mesmas provas (#662). A troca continua revogando todas as sessões. Conta sem
|
|
107
|
+
MFA recebe um par novo (em cookies no modo cookie). Conta com MFA: sem o
|
|
108
|
+
novo campo opcional `code` em `PasswordChangeSchema`, a senha muda e a
|
|
109
|
+
resposta é o desafio do login (`mfa_required`, `mfa_token`); com `code`
|
|
110
|
+
válido (TOTP ou recovery code, gasto antes da troca sob o `mfa_throttle`),
|
|
111
|
+
par com `amr` de MFA; com `code` errado, `401` e nada muda. O segundo
|
|
112
|
+
fator do `amr` do access token atual nunca é copiado para o par. Mudança de contrato da rota.
|
|
113
|
+
- `SIGNUP_PROTECTED_FIELDS` passa a incluir as colunas do `MFAMixin`
|
|
114
|
+
(`totp_secret`, `totp_enabled_at`, `totp_last_step`), e o signup recusa
|
|
115
|
+
também toda coluna que o user model declara em `__secret_columns__`. Novo
|
|
116
|
+
`UserAuthService.signup_protected_fields()` devolve o conjunto do model; o
|
|
117
|
+
`signup_schema` do `make_auth_router` descarta esses nomes antes de gravar
|
|
118
|
+
(#663).
|
|
119
|
+
- `IntrospectionAuth` ganha `audiences=` (keyword-only): com ele, a resposta
|
|
120
|
+
do `userinfo` precisa nomear um dos valores em `aud` (string ou lista),
|
|
121
|
+
`azp` ou `client_id`, senão a requisição responde `401` e a resposta não
|
|
122
|
+
entra no cache. Sem ele o comportamento não muda, e a instância registra um
|
|
123
|
+
`WARNING` na construção apontando para a receita.
|
|
124
|
+
|
|
10
125
|
## [0.335.0] — 2026-10-30
|
|
11
126
|
|
|
12
127
|
### Security
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: tempest-fastapi-sdk
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.337.0
|
|
4
4
|
Summary: Shared FastAPI building blocks: base schemas, ORM model, async repository, exceptions, pagination and settings — the conventions used across Tempest projects.
|
|
5
5
|
Project-URL: Homepage, https://github.com/mauriciobenjamin700/tempest-fastapi-sdk
|
|
6
6
|
Project-URL: Repository, https://github.com/mauriciobenjamin700/tempest-fastapi-sdk
|
|
@@ -2694,7 +2694,7 @@ Each mixin owns its own env-var prefix — pick only the ones the service needs:
|
|
|
2694
2694
|
| `WebPushSettings` | `VAPID_PUBLIC_KEY`, `VAPID_PRIVATE_KEY`, `VAPID_SUBJECT`, `WEBPUSH_DEFAULT_TTL_SECONDS` |
|
|
2695
2695
|
| `StorageSettings` | `STORAGE_ENABLED`, `STORAGE_BACKEND` (`s3` / `local`), `STORAGE_ENDPOINT`, `STORAGE_ACCESS_KEY`, `STORAGE_SECRET_KEY`, `STORAGE_SECURE`, `STORAGE_REGION`, `STORAGE_DEFAULT_BUCKET`, `STORAGE_PUBLIC_ENDPOINT`, `STORAGE_PUBLIC_SECURE`, `STORAGE_ACCEL_REDIRECT`, `STORAGE_ACCEL_PREFIX`, `STORAGE_LOCAL_DIR`, `STORAGE_LOCAL_PUBLIC_URL`, `STORAGE_LOCAL_ROUTE_PREFIX`, `STORAGE_LOCAL_SIGNING_SECRET`, `STORAGE_LOCAL_MAX_UPLOAD_BYTES` |
|
|
2696
2696
|
|
|
2697
|
-
**Production guard.** Compose `EnvironmentSettings` and set `ENV=production`: the settings then refuse to build while any composed mixin still holds a development value — SQLite in `DATABASE_URL`, the placeholder `JWT_SECRET`, `"*"` in `CORS_ORIGINS`, an empty `TOKEN_SECRET`, `SERVER_DEBUG` / `SERVER_RELOAD` on, an empty `TASKIQ_BROKER_URL` (the in-memory broker), the `minioadmin` storage keys or `STORAGE_SECURE=false` (with `STORAGE_BACKEND=local`: the placeholder `STORAGE_LOCAL_SIGNING_SECRET`, a plain-HTTP `STORAGE_LOCAL_PUBLIC_URL` or a relative `STORAGE_LOCAL_DIR` instead), a Mailpit/MailHog SMTP host, a placeholder `SMTP_FROM_ADDR` (`noreply@example.com`), a TLS mode swapped with the port (`SMTP_USE_SSL=true` on `587`, `SMTP_USE_TLS=true` on `465`, or both on), or the development-only auth switches `AUTH_AUTO_ACTIVATE=true` and `AUTH_RETURN_TOKEN_IN_RESPONSE=true`. Every offending field is listed in one error, by name, never by value. Each mixin declares its own rules in `production_violations()`; override it (calling `super()`) to add a rule of yours or drop one you accepted on purpose. `BaseAppSettings` also sets `hide_input_in_errors=True`, so no validation error echoes the environment. An integration that ships later is switched off instead of faked: `STORAGE_ENABLED`, `EMAIL_ENABLED`, `FIREBASE_ENABLED` or `REVENUECAT_ENABLED` set to `false` skips that mixin's rules, lists it in `settings.disabled_integrations()`, and makes the client built from the same settings (`AsyncMinIOClient(**settings.storage_kwargs())`, `EmailUtils(**settings.email_kwargs())`, `FirebaseAuth(**settings.firebase_kwargs())`) refuse every call with `IntegrationDisabledException` — `503`, `code="INTEGRATION_DISABLED"`.
|
|
2697
|
+
**Production guard.** Compose `EnvironmentSettings` and set `ENV=production`: the settings then refuse to build while any composed mixin still holds a development value — SQLite in `DATABASE_URL`, the placeholder `JWT_SECRET`, `"*"` in `CORS_ORIGINS` (and, with `CORS_ALLOW_CREDENTIALS=true`, `"null"` or a `CORS_ORIGIN_REGEX` that accepts any origin), an empty `TOKEN_SECRET`, `SERVER_DEBUG` / `SERVER_RELOAD` on, an empty `TASKIQ_BROKER_URL` (the in-memory broker), the `minioadmin` storage keys or `STORAGE_SECURE=false` (with `STORAGE_BACKEND=local`: the placeholder `STORAGE_LOCAL_SIGNING_SECRET`, a plain-HTTP `STORAGE_LOCAL_PUBLIC_URL` or a relative `STORAGE_LOCAL_DIR` instead), a Mailpit/MailHog SMTP host, a placeholder `SMTP_FROM_ADDR` (`noreply@example.com`), a TLS mode swapped with the port (`SMTP_USE_SSL=true` on `587`, `SMTP_USE_TLS=true` on `465`, or both on), or the development-only auth switches `AUTH_AUTO_ACTIVATE=true` and `AUTH_RETURN_TOKEN_IN_RESPONSE=true`. Every offending field is listed in one error, by name, never by value. Each mixin declares its own rules in `production_violations()`; override it (calling `super()`) to add a rule of yours or drop one you accepted on purpose. `BaseAppSettings` also sets `hide_input_in_errors=True`, so no validation error echoes the environment. An integration that ships later is switched off instead of faked: `STORAGE_ENABLED`, `EMAIL_ENABLED`, `FIREBASE_ENABLED` or `REVENUECAT_ENABLED` set to `false` skips that mixin's rules, lists it in `settings.disabled_integrations()`, and makes the client built from the same settings (`AsyncMinIOClient(**settings.storage_kwargs())`, `EmailUtils(**settings.email_kwargs())`, `FirebaseAuth(**settings.firebase_kwargs())`) refuse every call with `IntegrationDisabledException` — `503`, `code="INTEGRATION_DISABLED"`.
|
|
2698
2698
|
|
|
2699
2699
|
**`MinIOSettings` → `StorageSettings`.** The storage mixin speaks to any S3-compatible target, so its variables are now `STORAGE_*`. The old `MINIO_*` names keep working — each field reads `STORAGE_X` first and falls back to `MINIO_X` — and setting both names of a pair to different values refuses to boot instead of silently picking one. `MinIOSettings` stays importable as a deprecated subclass (it emits `DeprecationWarning` and keeps the `settings.MINIO_*` attributes); `minio_kwargs()` returns the same dict as the new `storage_kwargs()`.
|
|
2700
2700
|
|
|
@@ -2472,7 +2472,7 @@ Each mixin owns its own env-var prefix — pick only the ones the service needs:
|
|
|
2472
2472
|
| `WebPushSettings` | `VAPID_PUBLIC_KEY`, `VAPID_PRIVATE_KEY`, `VAPID_SUBJECT`, `WEBPUSH_DEFAULT_TTL_SECONDS` |
|
|
2473
2473
|
| `StorageSettings` | `STORAGE_ENABLED`, `STORAGE_BACKEND` (`s3` / `local`), `STORAGE_ENDPOINT`, `STORAGE_ACCESS_KEY`, `STORAGE_SECRET_KEY`, `STORAGE_SECURE`, `STORAGE_REGION`, `STORAGE_DEFAULT_BUCKET`, `STORAGE_PUBLIC_ENDPOINT`, `STORAGE_PUBLIC_SECURE`, `STORAGE_ACCEL_REDIRECT`, `STORAGE_ACCEL_PREFIX`, `STORAGE_LOCAL_DIR`, `STORAGE_LOCAL_PUBLIC_URL`, `STORAGE_LOCAL_ROUTE_PREFIX`, `STORAGE_LOCAL_SIGNING_SECRET`, `STORAGE_LOCAL_MAX_UPLOAD_BYTES` |
|
|
2474
2474
|
|
|
2475
|
-
**Production guard.** Compose `EnvironmentSettings` and set `ENV=production`: the settings then refuse to build while any composed mixin still holds a development value — SQLite in `DATABASE_URL`, the placeholder `JWT_SECRET`, `"*"` in `CORS_ORIGINS`, an empty `TOKEN_SECRET`, `SERVER_DEBUG` / `SERVER_RELOAD` on, an empty `TASKIQ_BROKER_URL` (the in-memory broker), the `minioadmin` storage keys or `STORAGE_SECURE=false` (with `STORAGE_BACKEND=local`: the placeholder `STORAGE_LOCAL_SIGNING_SECRET`, a plain-HTTP `STORAGE_LOCAL_PUBLIC_URL` or a relative `STORAGE_LOCAL_DIR` instead), a Mailpit/MailHog SMTP host, a placeholder `SMTP_FROM_ADDR` (`noreply@example.com`), a TLS mode swapped with the port (`SMTP_USE_SSL=true` on `587`, `SMTP_USE_TLS=true` on `465`, or both on), or the development-only auth switches `AUTH_AUTO_ACTIVATE=true` and `AUTH_RETURN_TOKEN_IN_RESPONSE=true`. Every offending field is listed in one error, by name, never by value. Each mixin declares its own rules in `production_violations()`; override it (calling `super()`) to add a rule of yours or drop one you accepted on purpose. `BaseAppSettings` also sets `hide_input_in_errors=True`, so no validation error echoes the environment. An integration that ships later is switched off instead of faked: `STORAGE_ENABLED`, `EMAIL_ENABLED`, `FIREBASE_ENABLED` or `REVENUECAT_ENABLED` set to `false` skips that mixin's rules, lists it in `settings.disabled_integrations()`, and makes the client built from the same settings (`AsyncMinIOClient(**settings.storage_kwargs())`, `EmailUtils(**settings.email_kwargs())`, `FirebaseAuth(**settings.firebase_kwargs())`) refuse every call with `IntegrationDisabledException` — `503`, `code="INTEGRATION_DISABLED"`.
|
|
2475
|
+
**Production guard.** Compose `EnvironmentSettings` and set `ENV=production`: the settings then refuse to build while any composed mixin still holds a development value — SQLite in `DATABASE_URL`, the placeholder `JWT_SECRET`, `"*"` in `CORS_ORIGINS` (and, with `CORS_ALLOW_CREDENTIALS=true`, `"null"` or a `CORS_ORIGIN_REGEX` that accepts any origin), an empty `TOKEN_SECRET`, `SERVER_DEBUG` / `SERVER_RELOAD` on, an empty `TASKIQ_BROKER_URL` (the in-memory broker), the `minioadmin` storage keys or `STORAGE_SECURE=false` (with `STORAGE_BACKEND=local`: the placeholder `STORAGE_LOCAL_SIGNING_SECRET`, a plain-HTTP `STORAGE_LOCAL_PUBLIC_URL` or a relative `STORAGE_LOCAL_DIR` instead), a Mailpit/MailHog SMTP host, a placeholder `SMTP_FROM_ADDR` (`noreply@example.com`), a TLS mode swapped with the port (`SMTP_USE_SSL=true` on `587`, `SMTP_USE_TLS=true` on `465`, or both on), or the development-only auth switches `AUTH_AUTO_ACTIVATE=true` and `AUTH_RETURN_TOKEN_IN_RESPONSE=true`. Every offending field is listed in one error, by name, never by value. Each mixin declares its own rules in `production_violations()`; override it (calling `super()`) to add a rule of yours or drop one you accepted on purpose. `BaseAppSettings` also sets `hide_input_in_errors=True`, so no validation error echoes the environment. An integration that ships later is switched off instead of faked: `STORAGE_ENABLED`, `EMAIL_ENABLED`, `FIREBASE_ENABLED` or `REVENUECAT_ENABLED` set to `false` skips that mixin's rules, lists it in `settings.disabled_integrations()`, and makes the client built from the same settings (`AsyncMinIOClient(**settings.storage_kwargs())`, `EmailUtils(**settings.email_kwargs())`, `FirebaseAuth(**settings.firebase_kwargs())`) refuse every call with `IntegrationDisabledException` — `503`, `code="INTEGRATION_DISABLED"`.
|
|
2476
2476
|
|
|
2477
2477
|
**`MinIOSettings` → `StorageSettings`.** The storage mixin speaks to any S3-compatible target, so its variables are now `STORAGE_*`. The old `MINIO_*` names keep working — each field reads `STORAGE_X` first and falls back to `MINIO_X` — and setting both names of a pair to different values refuses to boot instead of silently picking one. `MinIOSettings` stays importable as a deprecated subclass (it emits `DeprecationWarning` and keeps the `settings.MINIO_*` attributes); `minio_kwargs()` returns the same dict as the new `storage_kwargs()`.
|
|
2478
2478
|
|
|
@@ -1650,6 +1650,18 @@ The SDK currently covers (Sep 2025+, post-v0.31.x):
|
|
|
1650
1650
|
declara `AdminAuthBackend[BaseUserModel]`. Runtime intocado; `mypy --strict`
|
|
1651
1651
|
passa a exigir o parâmetro em subclasse de consumidor
|
|
1652
1652
|
(`disallow_any_generics`), o que o guia de migração cobre com a linha exata.
|
|
1653
|
+
- **Segunda rodada de segurança (v0.336.0)** — os 7 achados
|
|
1654
|
+
`needs_validation` da auditoria de 2026-10-29 ganharam conserto do lado do
|
|
1655
|
+
SDK e as issues #659–#663 foram fechadas: guard de produção do CORS cobre
|
|
1656
|
+
`"null"` e regex aberto com credenciais, `accel_redirect` valida o
|
|
1657
|
+
`media_type`, a busca textual exclui colunas secretas e ganha
|
|
1658
|
+
`searchable_columns`, `StripeObjectMismatchError`, `set-password` apaga
|
|
1659
|
+
passkeys, `/auth/password-change` responde `200` (par, ou o desafio do
|
|
1660
|
+
login em conta com MFA sem `code`), `SIGNUP_PROTECTED_FIELDS` cobre o TOTP,
|
|
1661
|
+
`IntrospectionAuth(audiences=)`, `SSEBroker` sobrevive a mensagem malformada,
|
|
1662
|
+
inscrição Web Push recusa endpoint interno (`PUSH_ENDPOINT_NOT_PUBLIC`) e
|
|
1663
|
+
`ps_single_quote` dobra as aspas tipográficas. Defaults trocados em
|
|
1664
|
+
`docs/migration.md` (seções 0.336.0).
|
|
1653
1665
|
- **Release de segurança da auditoria (v0.335.0)** — 45 achados confirmados
|
|
1654
1666
|
da auditoria completa de 2026-10-29 (artefatos fora do repo, em
|
|
1655
1667
|
`~/security-audit-skill/tempest-fastapi-sdk/run-1`), mais três itens que o
|
|
@@ -3966,3 +3978,15 @@ obrigatório em `text` e status sem `update`.
|
|
|
3966
3978
|
- Testes: `tests/integrations/messaging/zap/test_inbox.py`.
|
|
3967
3979
|
- Fora de escopo: decidir a resposta (regra do consumidor) e baixar mídia
|
|
3968
3980
|
(continua `client.get_message_media`).
|
|
3981
|
+
|
|
3982
|
+
## Parcelas do cartão no Mercado Pago, v0.337.0 (2026-10-30)
|
|
3983
|
+
|
|
3984
|
+
Issue #502, segunda metade. A trava de "só 1x" da vendedora de teste era o
|
|
3985
|
+
BIN do Visa de teste, não a conta: o Amex de teste parcela de 1x a 18x, e uma
|
|
3986
|
+
cobrança 3x de R$ 1.000,00 foi medida (`vendor/mercadopago-evidence.md` §10).
|
|
3987
|
+
`CardCharge` ganhou `installment_amount_cents` e `payer_total_cents` (o
|
|
3988
|
+
`paid_amount` do pagamento, juros incluídos); `CardChargeRequest.amount_cents`
|
|
3989
|
+
passou a documentar o que o provedor faz — recebe o preço e soma os juros. A
|
|
3990
|
+
mesma seção registra a conta real liberada para Orders e o shape mínimo do
|
|
3991
|
+
`transaction-intents` em modo de teste (#499, ainda sem `PayoutProvider`).
|
|
3992
|
+
|
|
@@ -29,7 +29,7 @@ cache = AsyncRedisManager(settings.REDIS_URL)
|
|
|
29
29
|
email = EmailUtils(**settings.email_kwargs())
|
|
30
30
|
mq = MessageBroker.rabbitmq(settings.RABBITMQ_URL) # cross-service events
|
|
31
31
|
tq = TaskQueue.rabbitmq(settings.TASKIQ_BROKER_URL) # work off the request
|
|
32
|
-
events = SSEBroker(redis=cache.client_proxy)
|
|
32
|
+
events = SSEBroker(redis=cache.client_proxy, channel_prefix="checkout:sse") # real-time status
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
They all start/stop in the lifespan (`connect`/`disconnect`) — see the
|
|
@@ -29,7 +29,7 @@ cache = AsyncRedisManager(settings.REDIS_URL)
|
|
|
29
29
|
email = EmailUtils(**settings.email_kwargs())
|
|
30
30
|
mq = MessageBroker.rabbitmq(settings.RABBITMQ_URL) # eventos entre serviços
|
|
31
31
|
tq = TaskQueue.rabbitmq(settings.TASKIQ_BROKER_URL) # trabalho fora do request
|
|
32
|
-
events = SSEBroker(redis=cache.client_proxy)
|
|
32
|
+
events = SSEBroker(redis=cache.client_proxy, channel_prefix="checkout:sse") # status em tempo real
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
Todos sobem/descem no lifespan (`connect`/`disconnect`) — veja o
|
|
@@ -2,6 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
Breaking-change walkthroughs grouped by minor release. Stick to the version that matches what you're upgrading **from**. The release sections are listed newest-first, so on a multi-version jump read and apply them bottom-up.
|
|
4
4
|
|
|
5
|
+
## 0.336.0 — security fixes (real time)
|
|
6
|
+
|
|
7
|
+
| Where | What changes | What to do |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| `SSEBroker` with Redis | With the default `channel_prefix` `"sse"`, construction logs a `WARNING`: Redis pub/sub ignores the DB index, and another service on the same instance with the same prefix exchanges events with this one | Pass a service-specific `channel_prefix` (`"orders-api:sse"`) on every worker at once — workers with different prefixes do not see each other |
|
|
10
|
+
| Web Push subscription (`WebPushSubscriptionService.subscribe`, `make_web_push_router`, `web` registration on `make_push_router`) | An endpoint that is or resolves to a non-public address answers `422 PUSH_ENDPOINT_NOT_PUBLIC` and is not stored; `send_many` returns for pruning a previously stored endpoint that is not `https` or whose host is a non-public IP literal | Nothing, if the push service is public. Self-hosted push service on the internal network: `allow_private_networks=True` on the `WebPushDispatcher` opens subscription and delivery together |
|
|
11
|
+
|
|
12
|
+
## 0.336.0 — `password-change` returns a fresh pair, `set-password` deletes passkeys
|
|
13
|
+
|
|
14
|
+
| Where | What changes | What to do |
|
|
15
|
+
| --- | --- | --- |
|
|
16
|
+
| `POST /auth/password-change` | Answers **200** with `LoginResponseSchema` instead of `204` with no body, and the body takes an optional `code`. Account without MFA: a fresh pair, issued after every session is revoked (in cookies for a caller that authenticated with the access cookie). Account with MFA and no `code`: the password changes and the response is the login challenge (`mfa_required: true`, `mfa_token`), with no pair. With a valid `code`: a pair with an MFA `amr`; a wrong `code`: **401** and nothing changes | Bearer client: store the response's pair and drop the old one; on an MFA account, send the `code` along or handle `mfa_required` as at login. A client that treated any `2xx` as success does not break, but still gets signed out when the access token's TTL ends unless it stores the pair |
|
|
17
|
+
| `tempest user set-password` | Deletes the user's WebAuthn passkeys in the same transaction when it finds the table (`--webauthn-credential-model`, default `src.db.models:UserWebAuthnCredentialModel`) | `--keep-passkeys` keeps the old behaviour; tell the user they register their passkey again |
|
|
18
|
+
| `signup(fields=...)` and `signup_schema` | `totp_secret`, `totp_enabled_at`, `totp_last_step` and every `__secret_columns__` column of the user model are refused (`ValueError` in the service, dropped by the route) | Nothing for the MFA columns, which only the enrollment flow writes. If your signup writes a `__secret_columns__` column of your own, move that write to `on_signup` |
|
|
19
|
+
| `IntrospectionAuth` | New `audiences=`; without it, one `WARNING` per instance at construction | Pass `audiences=` with the service's client id at the provider. See [Bind the token to this service](recipes/introspection-auth.md#bind-the-token-to-this-service-audiences) |
|
|
20
|
+
|
|
21
|
+
## 0.336.0 — CORS, storage, text search and Stripe
|
|
22
|
+
|
|
23
|
+
| Where | What changes | What to do |
|
|
24
|
+
| --- | --- | --- |
|
|
25
|
+
| `CORSSettings` with `ENV=production` | With `CORS_ALLOW_CREDENTIALS=true`, `"null"` in `CORS_ORIGINS` or a `CORS_ORIGIN_REGEX` that matches a `.invalid` origin (`.*`, `https://.*`) stop the boot, as `"*"` already did | List the frontend origins in `CORS_ORIGINS`, or anchor the regex to your domain |
|
|
26
|
+
| `accel_redirect_response`, `serve_object(accel_redirect=True)` | A `media_type` outside `type/subtype` (parameter, comma, CR/LF) raises `ValueError`, as in `presigned_get_url`; `text/plain; charset=utf-8` is no longer accepted on this path | Pass the type without parameters (`text/plain`) |
|
|
27
|
+
| Text search (`search`, `search_condition`, `full_text_search`) | `hashed_password` and the `__secret_columns__` answer `422`; the message becomes `... has no searchable column ...`, and `details["allowed"]` only appears when the repository declares `searchable_columns` | If the search takes the field from the request, declare `searchable_columns` on the repository |
|
|
28
|
+
| `StripeClient` | `create`, `retrieve`, `update` and `delete` raise `StripeObjectMismatchError` when the response's `object` is not the resource's | Handle it where you handle `StripeError` today (it is a subclass) |
|
|
29
|
+
| `ps_single_quote` (hostbridge) | Also doubles the typographic quotes U+2018–U+201B | Nothing |
|
|
30
|
+
|
|
5
31
|
## 0.335.0 — `BaseUserModel` gains the `email_verified_at` column
|
|
6
32
|
|
|
7
33
|
`BaseUserModel` now maps `email_verified_at` (timezone-aware timestamp,
|
|
@@ -2,6 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
Passo a passo das mudanças que quebram compatibilidade, agrupadas por release minor. Siga a versão que casa com aquela **de onde** você está atualizando. As seções estão listadas da mais nova para a mais antiga, então num salto de várias versões leia e aplique-as de baixo para cima.
|
|
4
4
|
|
|
5
|
+
## 0.336.0 — correções de segurança (tempo real)
|
|
6
|
+
|
|
7
|
+
| Onde | O que muda | O que fazer |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| `SSEBroker` com Redis | Com o `channel_prefix` default `"sse"`, a construção registra um `WARNING`: o pub/sub do Redis ignora o índice de DB, e outro serviço na mesma instância com o mesmo prefixo troca eventos com este | Passe um `channel_prefix` próprio do serviço (`"orders-api:sse"`) em todo worker ao mesmo tempo — workers com prefixos diferentes não se enxergam |
|
|
10
|
+
| Inscrição Web Push (`WebPushSubscriptionService.subscribe`, `make_web_push_router`, registro `web` do `make_push_router`) | Endpoint que é ou resolve para endereço não público responde `422 PUSH_ENDPOINT_NOT_PUBLIC` e não é gravado; o `send_many` devolve para poda o endpoint gravado antes que não é `https` ou é IP literal não público | Nada, se o push service é público. Push service próprio na rede interna: `allow_private_networks=True` no `WebPushDispatcher` abre inscrição e envio juntos |
|
|
11
|
+
|
|
12
|
+
## 0.336.0 — `password-change` devolve um par novo, `set-password` apaga passkeys
|
|
13
|
+
|
|
14
|
+
| Onde | O que muda | O que fazer |
|
|
15
|
+
| --- | --- | --- |
|
|
16
|
+
| `POST /auth/password-change` | Responde **200** com `LoginResponseSchema` em vez de `204` sem corpo, e o corpo aceita `code` opcional. Conta sem MFA: par novo, emitido depois da revogação de todas as sessões (em cookies para quem se autenticou pelo cookie de acesso). Conta com MFA sem `code`: a senha muda e a resposta é o desafio do login (`mfa_required: true`, `mfa_token`), sem par. Com `code` válido: par com `amr` de MFA; `code` errado: **401** e nada muda | Cliente bearer: guarde o par da resposta e descarte o antigo; numa conta com MFA, mande o `code` junto ou trate o `mfa_required` como no login. Cliente que tratava qualquer `2xx` como sucesso não quebra, mas continua deslogando no fim do TTL do access token se não guardar o par |
|
|
17
|
+
| `tempest user set-password` | Apaga as passkeys WebAuthn do usuário na mesma transação, quando acha a tabela (`--webauthn-credential-model`, default `src.db.models:UserWebAuthnCredentialModel`) | `--keep-passkeys` mantém o comportamento antigo; avise o usuário que ele cadastra a passkey de novo |
|
|
18
|
+
| `signup(fields=...)` e `signup_schema` | `totp_secret`, `totp_enabled_at`, `totp_last_step` e toda coluna de `__secret_columns__` do user model são recusados (`ValueError` no service, descartados pela rota) | Nada para as colunas do MFA, que só o fluxo de inscrição grava. Se o seu cadastro grava uma coluna própria de `__secret_columns__`, mova a escrita para o `on_signup` |
|
|
19
|
+
| `IntrospectionAuth` | Novo `audiences=`; sem ele, um `WARNING` por instância na construção | Passe `audiences=` com o client id do serviço no provedor. Veja [Amarrar o token a este serviço](recipes/introspection-auth.md#amarrar-o-token-a-este-servico-audiences) |
|
|
20
|
+
|
|
21
|
+
## 0.336.0 — CORS, storage, busca textual e Stripe
|
|
22
|
+
|
|
23
|
+
| Onde | O que muda | O que fazer |
|
|
24
|
+
| --- | --- | --- |
|
|
25
|
+
| `CORSSettings` com `ENV=production` | Com `CORS_ALLOW_CREDENTIALS=true`, `"null"` em `CORS_ORIGINS` ou um `CORS_ORIGIN_REGEX` que casa com uma origem `.invalid` (`.*`, `https://.*`) impedem o boot, como `"*"` já impedia | Liste as origens do frontend em `CORS_ORIGINS`, ou ancore o regex no seu domínio |
|
|
26
|
+
| `accel_redirect_response`, `serve_object(accel_redirect=True)` | `media_type` fora de `tipo/subtipo` (parâmetro, vírgula, CR/LF) levanta `ValueError`, como no `presigned_get_url`; `text/plain; charset=utf-8` deixa de ser aceito nesse caminho | Passe o tipo sem parâmetros (`text/plain`) |
|
|
27
|
+
| Busca textual (`search`, `search_condition`, `full_text_search`) | `hashed_password` e as colunas de `__secret_columns__` respondem `422`; a mensagem passa a ser `... has no searchable column ...`, e `details["allowed"]` só aparece quando o repositório declara `searchable_columns` | Se a busca recebe o campo da requisição, declare `searchable_columns` no repositório |
|
|
28
|
+
| `StripeClient` | `create`, `retrieve`, `update` e `delete` levantam `StripeObjectMismatchError` quando o `object` da resposta não é o do recurso | Trate a exceção onde hoje trata `StripeError` (é subclasse dela) |
|
|
29
|
+
| `ps_single_quote` (hostbridge) | Dobra também as aspas tipográficas U+2018–U+201B | Nada |
|
|
30
|
+
|
|
5
31
|
## 0.335.0 — `BaseUserModel` ganha a coluna `email_verified_at`
|
|
6
32
|
|
|
7
33
|
O `BaseUserModel` passou a mapear `email_verified_at` (timestamp com fuso,
|
|
@@ -195,7 +195,7 @@ uv run tempest db upgrade
|
|
|
195
195
|
| GET | `/auth/me` *(v0.198.0+)* | — → `AuthUserSchema` | **Authenticated.** Returns the account owning the bearer token. Never serializes the password hash: the handler returns the whole model and the `response_model` filters. Swap in your own schema with `me_response_model=` to expose extra columns. |
|
|
196
196
|
| POST | `/auth/password-reset/request` | `PasswordResetRequestSchema` → `PasswordResetResponseSchema` | Always HTTP 202 + generic body. Link via email (A/B) or body (C). |
|
|
197
197
|
| POST | `/auth/password-reset/confirm` | `PasswordResetConfirmSchema` → `LoginResponseSchema` | Consumes token + writes new password + revokes sessions + issues JWT pair. With MFA enrolled on the account, it answers the challenge (`mfa_required=true` + `mfa_token`) instead of the pair — finish at `/auth/mfa/verify`. |
|
|
198
|
-
| POST | `/auth/password-change` | `PasswordChangeSchema` → `
|
|
198
|
+
| POST | `/auth/password-change` | `PasswordChangeSchema` → `LoginResponseSchema` | **Authenticated** (bearer token). Change your own password: confirm the current password (and the `code` on an MFA account) + write the new one. No email token. |
|
|
199
199
|
| POST | `/auth/email-change/request` *(v0.92.0+)* | `EmailChangeRequestSchema` → `EmailChangeResponseSchema` | **Authenticated.** Confirm the current password + email a confirmation link to the **new** address. Always 202. |
|
|
200
200
|
| POST | `/auth/email-change/confirm` *(v0.92.0+)* | `EmailChangeConfirmSchema` → `EmailChangeResponseSchema` | Consume the token + apply the new email + (optionally) notify the old address. |
|
|
201
201
|
| POST | `/auth/email-verify/request` *(v0.92.0+)* | — → `EmailChangeResponseSchema` | **Authenticated.** Re-send a verification link to the **current** email. |
|
|
@@ -217,8 +217,9 @@ uv run tempest db upgrade
|
|
|
217
217
|
- **`/auth/password-change`** — the user **remembers** their password
|
|
218
218
|
and is **logged in**. They send the `access_token` in the
|
|
219
219
|
`Authorization: Bearer …` header and re-confirm their
|
|
220
|
-
`current_password`. No email or reset token involved.
|
|
221
|
-
**
|
|
220
|
+
`current_password`. No email or reset token involved. Answers
|
|
221
|
+
**200**: every session is revoked and the caller gets a fresh pair
|
|
222
|
+
(or, on an MFA account without `code`, the login challenge).
|
|
222
223
|
|
|
223
224
|
### Closed system — no registration door *(v0.272.0+)*
|
|
224
225
|
|
|
@@ -427,11 +428,15 @@ catalog=default_message_catalog())` it comes out translated (`Conflito de
|
|
|
427
428
|
recurso` under pt-BR), and `code`, `details` and `field` do not change.
|
|
428
429
|
|
|
429
430
|
!!! warning "A protected column never comes from the body"
|
|
430
|
-
`id`, `email`, `hashed_password`, `is_active`, `is_admin
|
|
431
|
-
`email_verified_at`
|
|
432
|
-
`
|
|
433
|
-
|
|
434
|
-
`
|
|
431
|
+
`id`, `email`, `hashed_password`, `is_active`, `is_admin`,
|
|
432
|
+
`email_verified_at` and the `MFAMixin` columns (`totp_secret`,
|
|
433
|
+
`totp_enabled_at`, `totp_last_step`) — the `SIGNUP_PROTECTED_FIELDS` —
|
|
434
|
+
belong to the SDK, and every column your model declares in
|
|
435
|
+
`__secret_columns__` joins them (`service.signup_protected_fields()`
|
|
436
|
+
returns the set for your model). A `signup_schema` with an `is_admin`
|
|
437
|
+
field promotes nobody, and one with `totp_enabled_at` turns on no
|
|
438
|
+
factor: the route drops those names before writing. Calling the service
|
|
439
|
+
directly, `signup(fields={"is_admin": True})` raises `ValueError`.
|
|
435
440
|
|
|
436
441
|
Annotate the hook with **your** classes — the concrete model and the concrete
|
|
437
442
|
schema — as above: that is what makes `payload.accept_terms` type-check on
|
|
@@ -1269,12 +1274,50 @@ curl -X POST localhost:8000/auth/password-change \
|
|
|
1269
1274
|
-d '{"current_password": "current-pass", "new_password": "new-strong-pass-12"}'
|
|
1270
1275
|
```
|
|
1271
1276
|
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1277
|
+
It **revokes the user's sessions** in the same transaction that writes
|
|
1278
|
+
the new password, like the reset: a refresh token issued before the
|
|
1279
|
+
change — the caller's included — can no longer be exchanged, and the
|
|
1280
|
+
cookie session of the [auth pages](auth-pages.md) ends too. So the device
|
|
1281
|
+
that changed the password stays signed in, the response is **200** with a
|
|
1282
|
+
**fresh pair** (through 0.335.0 it was `204` with no body — see the
|
|
1283
|
+
[migration guide](../migration.md)), issued after the revocation — it is the only
|
|
1284
|
+
refresh token left:
|
|
1285
|
+
|
|
1286
|
+
```json
|
|
1287
|
+
{
|
|
1288
|
+
"user_id": "7d8e4d5a-9f4b-4c3a-bd0a-1234567890ab",
|
|
1289
|
+
"access_token": "eyJhbGciOi…",
|
|
1290
|
+
"refresh_token": "Zm9vYmFy…",
|
|
1291
|
+
"mfa_required": false,
|
|
1292
|
+
"mfa_token": null
|
|
1293
|
+
}
|
|
1294
|
+
```
|
|
1295
|
+
|
|
1296
|
+
Store both and drop the old ones. A caller that authenticated with the
|
|
1297
|
+
access cookie gets the pair in cookies, and the body carries only the
|
|
1298
|
+
`user_id`. Wrong `current_password` → **401**, no pair.
|
|
1299
|
+
|
|
1300
|
+
The rule: the route **never** returns a stronger session than `/auth/login`
|
|
1301
|
+
would for the same proofs. The current password proves the first factor
|
|
1302
|
+
only, so on an account **with MFA**:
|
|
1303
|
+
|
|
1304
|
+
| Body | What happens |
|
|
1305
|
+
| --- | --- |
|
|
1306
|
+
| no `code` | The password changes and the sessions end; the response is the login challenge (`mfa_required: true`, `mfa_token`), with no pair. Finish at `POST /auth/mfa/verify` as after login |
|
|
1307
|
+
| valid `code` (TOTP or recovery code) | The code is spent before the change (the same TOTP step does not work twice); the password changes and a pair with `amr == ["pwd", "otp"]` comes back |
|
|
1308
|
+
| wrong `code` | **401**: nothing changes, neither the password nor the sessions |
|
|
1309
|
+
|
|
1310
|
+
```bash
|
|
1311
|
+
curl -X POST localhost:8000/auth/password-change \
|
|
1312
|
+
-H "Authorization: Bearer eyJhbGciOi…" \
|
|
1313
|
+
-H "Content-Type: application/json" \
|
|
1314
|
+
-d '{"current_password": "current-pass", "new_password": "new-strong-pass-12", "code": "123456"}'
|
|
1315
|
+
```
|
|
1316
|
+
|
|
1317
|
+
The current access token's `amr` is **not** copied into the new pair: on an
|
|
1318
|
+
account without MFA the pair carries `["pwd"]` (or the token's methods that
|
|
1319
|
+
are not a second factor), and the second factor only shows up when a `code`
|
|
1320
|
+
was proved in this request. Calling the
|
|
1278
1321
|
service directly, `change_password(..., revoke_sessions=False)` is the
|
|
1279
1322
|
explicit opt-out. The passkeys stay: the caller just proved the current
|
|
1280
1323
|
password, so this is not account recovery.
|
|
@@ -193,7 +193,7 @@ uv run tempest db upgrade
|
|
|
193
193
|
| GET | `/auth/me` *(v0.198.0+)* | — → `AuthUserSchema` | **Autenticado.** Devolve a conta dona do bearer token. Nunca serializa o hash da senha: o handler entrega o modelo inteiro e o `response_model` filtra. Troque o schema por um seu com `me_response_model=` pra expor colunas próprias. |
|
|
194
194
|
| POST | `/auth/password-reset/request` | `PasswordResetRequestSchema` → `PasswordResetResponseSchema` | Sempre HTTP 202 + corpo genérico. Link via e-mail (A/B) ou no body (C). |
|
|
195
195
|
| POST | `/auth/password-reset/confirm` | `PasswordResetConfirmSchema` → `LoginResponseSchema` | Consome token + grava nova senha + revoga as sessões + emite JWT pair. Com MFA inscrito na conta, responde o desafio (`mfa_required=true` + `mfa_token`) em vez do par — conclua em `/auth/mfa/verify`. |
|
|
196
|
-
| POST | `/auth/password-change` | `PasswordChangeSchema` → `
|
|
196
|
+
| POST | `/auth/password-change` | `PasswordChangeSchema` → `LoginResponseSchema` | **Autenticado** (bearer token). Troca a própria senha: confirma a senha atual (e o `code` numa conta com MFA) + grava a nova. Sem token de e-mail. |
|
|
197
197
|
| POST | `/auth/email-change/request` *(v0.92.0+)* | `EmailChangeRequestSchema` → `EmailChangeResponseSchema` | **Autenticado.** Confirma a senha atual + envia link de confirmação pro **novo** e-mail. Sempre 202. |
|
|
198
198
|
| POST | `/auth/email-change/confirm` *(v0.92.0+)* | `EmailChangeConfirmSchema` → `EmailChangeResponseSchema` | Consome o token + aplica o novo e-mail + (opcional) avisa o e-mail antigo. |
|
|
199
199
|
| POST | `/auth/email-verify/request` *(v0.92.0+)* | — → `EmailChangeResponseSchema` | **Autenticado.** Reenvia link de verificação pro e-mail **atual**. |
|
|
@@ -214,8 +214,9 @@ uv run tempest db upgrade
|
|
|
214
214
|
- **`/auth/password-change`** — o usuário **lembra** a senha e está
|
|
215
215
|
**logado**. Manda o `access_token` no header `Authorization:
|
|
216
216
|
Bearer …` e reconfirma a `current_password`. Não envolve e-mail
|
|
217
|
-
nem token de reset.
|
|
218
|
-
|
|
217
|
+
nem token de reset. Responde **200**: todas as sessões são
|
|
218
|
+
revogadas e quem chamou recebe um par novo (ou, numa conta com MFA
|
|
219
|
+
sem `code`, o desafio do login).
|
|
219
220
|
|
|
220
221
|
### Sistema fechado — sem porta de cadastro *(v0.272.0+)*
|
|
221
222
|
|
|
@@ -420,11 +421,15 @@ catalog=default_message_catalog())` ele sai traduzido (`Conflito de recurso`),
|
|
|
420
421
|
e `code`, `details` e `field` não mudam.
|
|
421
422
|
|
|
422
423
|
!!! warning "Coluna protegida nunca vem do corpo"
|
|
423
|
-
`id`, `email`, `hashed_password`, `is_active`, `is_admin
|
|
424
|
-
`email_verified_at`
|
|
425
|
-
`
|
|
426
|
-
|
|
427
|
-
|
|
424
|
+
`id`, `email`, `hashed_password`, `is_active`, `is_admin`,
|
|
425
|
+
`email_verified_at` e as colunas do `MFAMixin` (`totp_secret`,
|
|
426
|
+
`totp_enabled_at`, `totp_last_step`) — o `SIGNUP_PROTECTED_FIELDS` — são
|
|
427
|
+
do SDK, e toda coluna que o seu model declara em `__secret_columns__`
|
|
428
|
+
entra junto (`service.signup_protected_fields()` devolve o conjunto do
|
|
429
|
+
seu model). Um `signup_schema` com um campo `is_admin` não promove
|
|
430
|
+
ninguém, e um com `totp_enabled_at` não liga fator nenhum: a rota
|
|
431
|
+
descarta esses nomes antes de gravar. Chamando o service direto,
|
|
432
|
+
`signup(fields={"is_admin": True})` levanta `ValueError`.
|
|
428
433
|
|
|
429
434
|
Anote o hook com as **suas** classes — o model concreto e o schema concreto —
|
|
430
435
|
como acima: é o que faz `payload.accept_terms` passar no type-checker do seu
|
|
@@ -1251,12 +1256,50 @@ curl -X POST localhost:8000/auth/password-change \
|
|
|
1251
1256
|
-d '{"current_password": "senha-atual", "new_password": "nova-senha-forte-12"}'
|
|
1252
1257
|
```
|
|
1253
1258
|
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
`
|
|
1259
|
+
**Revoga as sessões** do usuário na mesma transação que grava a senha
|
|
1260
|
+
nova, como o reset: refresh token emitido antes da troca — inclusive o de
|
|
1261
|
+
quem chamou — deixa de ser trocável, e o cookie de sessão das
|
|
1262
|
+
[páginas de auth](auth-pages.md) também cai. Para o dispositivo que trocou
|
|
1263
|
+
a senha continuar logado, a resposta é **200** com um **par novo**
|
|
1264
|
+
(até a 0.335.0 era `204` sem corpo — veja o
|
|
1265
|
+
[guia de migração](../migration.md)), emitido depois da revogação — é o único refresh token que
|
|
1266
|
+
sobra:
|
|
1267
|
+
|
|
1268
|
+
```json
|
|
1269
|
+
{
|
|
1270
|
+
"user_id": "7d8e4d5a-9f4b-4c3a-bd0a-1234567890ab",
|
|
1271
|
+
"access_token": "eyJhbGciOi…",
|
|
1272
|
+
"refresh_token": "Zm9vYmFy…",
|
|
1273
|
+
"mfa_required": false,
|
|
1274
|
+
"mfa_token": null
|
|
1275
|
+
}
|
|
1276
|
+
```
|
|
1277
|
+
|
|
1278
|
+
Guarde os dois e descarte os antigos. Quem se autenticou pelo cookie de
|
|
1279
|
+
acesso recebe o par em cookies, e o corpo traz só o `user_id`.
|
|
1280
|
+
`current_password` errada → **401**, sem par.
|
|
1281
|
+
|
|
1282
|
+
A regra é: a rota **nunca** devolve uma sessão mais forte do que o
|
|
1283
|
+
`/auth/login` devolveria para as mesmas provas. A senha atual prova só o
|
|
1284
|
+
primeiro fator, então numa conta **com MFA**:
|
|
1285
|
+
|
|
1286
|
+
| Corpo | O que acontece |
|
|
1287
|
+
| --- | --- |
|
|
1288
|
+
| sem `code` | A senha muda e as sessões caem; a resposta é o desafio do login (`mfa_required: true`, `mfa_token`), sem par. Complete em `POST /auth/mfa/verify` como depois do login |
|
|
1289
|
+
| `code` válido (TOTP ou recovery code) | O código é gasto antes da troca (o mesmo passo TOTP não vale duas vezes); a senha muda e vem um par com `amr == ["pwd", "otp"]` |
|
|
1290
|
+
| `code` errado | **401**: nada muda, nem a senha nem as sessões |
|
|
1291
|
+
|
|
1292
|
+
```bash
|
|
1293
|
+
curl -X POST localhost:8000/auth/password-change \
|
|
1294
|
+
-H "Authorization: Bearer eyJhbGciOi…" \
|
|
1295
|
+
-H "Content-Type: application/json" \
|
|
1296
|
+
-d '{"current_password": "senha-atual", "new_password": "nova-senha-forte-12", "code": "123456"}'
|
|
1297
|
+
```
|
|
1298
|
+
|
|
1299
|
+
O `amr` do access token atual **não** é copiado para o par novo: numa conta
|
|
1300
|
+
sem MFA o par sai com `["pwd"]` (ou os métodos do token que não são segundo
|
|
1301
|
+
fator), e o segundo fator só aparece quando um `code` foi provado nesta
|
|
1302
|
+
requisição. Chamando o service direto,
|
|
1260
1303
|
`change_password(..., revoke_sessions=False)` é a saída explícita. As
|
|
1261
1304
|
passkeys ficam: quem chama acabou de provar a senha atual, então não é
|
|
1262
1305
|
recuperação de conta.
|
|
@@ -988,6 +988,9 @@ tempest user set-password --email ana@example.com \
|
|
|
988
988
|
# Replace the password and leave the sessions alive (explicit opt-out)
|
|
989
989
|
tempest user set-password --email ana@example.com --keep-sessions
|
|
990
990
|
|
|
991
|
+
# Replace the password and keep the passkeys (explicit opt-out)
|
|
992
|
+
tempest user set-password --email ana@example.com --keep-passkeys
|
|
993
|
+
|
|
991
994
|
# First privileged account born with MFA + audit event in the same transaction
|
|
992
995
|
tempest user create --email staff@example.com --admin --require-mfa \
|
|
993
996
|
--audit-model src.db.models:AuditLogModel --event staff.bootstrapped
|
|
@@ -1069,6 +1072,7 @@ tempest user set-password --email ana@example.com
|
|
|
1069
1072
|
# Confirm:
|
|
1070
1073
|
# Password updated for ana@example.com (id=6f0c...)
|
|
1071
1074
|
# Revoked 2 active refresh token(s).
|
|
1075
|
+
# Deleted 1 passkey(s).
|
|
1072
1076
|
```
|
|
1073
1077
|
|
|
1074
1078
|
!!! check "Changing the password revokes the sessions — by default"
|
|
@@ -1097,6 +1101,18 @@ tempest user set-password --email ana@example.com
|
|
|
1097
1101
|
revoked row is not counted again, so running it twice prints
|
|
1098
1102
|
`Revoked 0 active refresh token(s).`
|
|
1099
1103
|
|
|
1104
|
+
!!! check "And it deletes the passkeys — by default too"
|
|
1105
|
+
The operator's password change is account recovery, like
|
|
1106
|
+
`mfa-reset`: a passkey signs in without the password, and one
|
|
1107
|
+
registered by whoever held the account would survive the new hash. So
|
|
1108
|
+
the command deletes **every** passkey of the user in the same
|
|
1109
|
+
transaction (`UserAuthService.revoke_user_passkeys`), by the same rules
|
|
1110
|
+
as the sessions: `--webauthn-credential-model` (default
|
|
1111
|
+
`src.db.models:UserWebAuthnCredentialModel`; without a table, it says
|
|
1112
|
+
on stderr that no passkey was deleted), `--keep-passkeys` as the
|
|
1113
|
+
explicit opt-out, and both together refused with code 2. The owner
|
|
1114
|
+
registers the passkey again afterwards.
|
|
1115
|
+
|
|
1100
1116
|
!!! tip "The same thing, from code"
|
|
1101
1117
|
`await service.revoke_user_sessions(session, user_id=user.id)` is the
|
|
1102
1118
|
administrative counterpart of `revoke_refresh_token`:
|
|
@@ -984,6 +984,9 @@ tempest user set-password --email ana@example.com \
|
|
|
984
984
|
# Troca a senha e deixa as sessões vivas (opt-out explícito)
|
|
985
985
|
tempest user set-password --email ana@example.com --keep-sessions
|
|
986
986
|
|
|
987
|
+
# Troca a senha e mantém as passkeys (opt-out explícito)
|
|
988
|
+
tempest user set-password --email ana@example.com --keep-passkeys
|
|
989
|
+
|
|
987
990
|
# Primeira conta privilegiada já com MFA + evento de auditoria na mesma transação
|
|
988
991
|
tempest user create --email staff@example.com --admin --require-mfa \
|
|
989
992
|
--audit-model src.db.models:AuditLogModel --event staff.bootstrapped
|
|
@@ -1064,6 +1067,7 @@ tempest user set-password --email ana@example.com
|
|
|
1064
1067
|
# Confirm:
|
|
1065
1068
|
# Password updated for ana@example.com (id=6f0c...)
|
|
1066
1069
|
# Revoked 2 active refresh token(s).
|
|
1070
|
+
# Deleted 1 passkey(s).
|
|
1067
1071
|
```
|
|
1068
1072
|
|
|
1069
1073
|
!!! check "Trocar a senha derruba as sessões — por padrão"
|
|
@@ -1091,6 +1095,18 @@ tempest user set-password --email ana@example.com
|
|
|
1091
1095
|
revogada não é recontada, então rodar de novo imprime
|
|
1092
1096
|
`Revoked 0 active refresh token(s).`
|
|
1093
1097
|
|
|
1098
|
+
!!! check "E apaga as passkeys — também por padrão"
|
|
1099
|
+
A troca feita pelo operador é recuperação de conta, como o
|
|
1100
|
+
`mfa-reset`: uma passkey entra sem a senha, e a que foi cadastrada por
|
|
1101
|
+
quem segurou a conta sobreviveria ao hash novo. Então o comando apaga
|
|
1102
|
+
**todas** as passkeys do usuário na mesma transação
|
|
1103
|
+
(`UserAuthService.revoke_user_passkeys`), pelas mesmas regras das
|
|
1104
|
+
sessões: `--webauthn-credential-model` (default
|
|
1105
|
+
`src.db.models:UserWebAuthnCredentialModel`; sem tabela, avisa no
|
|
1106
|
+
stderr que nenhuma passkey foi apagada), `--keep-passkeys` como saída
|
|
1107
|
+
explícita, e as duas juntas recusadas com código 2. O dono cadastra a
|
|
1108
|
+
passkey de novo depois.
|
|
1109
|
+
|
|
1094
1110
|
!!! tip "O mesmo, de dentro do código"
|
|
1095
1111
|
`await service.revoke_user_sessions(session, user_id=user.id)` é o
|
|
1096
1112
|
par administrativo do `revoke_refresh_token`: logout-everywhere
|