svc-infra 0.1.592__tar.gz → 0.1.594__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.

Potentially problematic release.


This version of svc-infra might be problematic. Click here for more details.

Files changed (254) hide show
  1. {svc_infra-0.1.592 → svc_infra-0.1.594}/PKG-INFO +2 -1
  2. {svc_infra-0.1.592 → svc_infra-0.1.594}/pyproject.toml +6 -1
  3. svc_infra-0.1.594/src/svc_infra/apf_payments/README.md +706 -0
  4. svc_infra-0.1.594/src/svc_infra/apf_payments/provider/__init__.py +4 -0
  5. svc_infra-0.1.594/src/svc_infra/apf_payments/provider/aiydan.py +797 -0
  6. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/apf_payments/service.py +113 -20
  7. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/apf_payments/settings.py +22 -2
  8. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/apf_payments/router.py +3 -1
  9. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/apf_payments/setup.py +6 -0
  10. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/add.py +10 -0
  11. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/gaurd.py +67 -5
  12. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/routers/oauth_router.py +76 -36
  13. svc_infra-0.1.594/src/svc_infra/api/fastapi/auth/routers/session_router.py +63 -0
  14. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/settings.py +2 -0
  15. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/db/sql/users.py +13 -1
  16. svc_infra-0.1.594/src/svc_infra/api/fastapi/dependencies/ratelimit.py +66 -0
  17. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/middleware/ratelimit.py +26 -11
  18. svc_infra-0.1.594/src/svc_infra/api/fastapi/middleware/ratelimit_store.py +30 -0
  19. svc_infra-0.1.594/src/svc_infra/api/fastapi/middleware/request_size_limit.py +36 -0
  20. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/setup.py +2 -1
  21. svc_infra-0.1.594/src/svc_infra/obs/metrics/__init__.py +53 -0
  22. svc_infra-0.1.594/src/svc_infra/obs/metrics.py +52 -0
  23. svc_infra-0.1.594/src/svc_infra/security/audit.py +130 -0
  24. svc_infra-0.1.594/src/svc_infra/security/audit_service.py +73 -0
  25. svc_infra-0.1.594/src/svc_infra/security/headers.py +39 -0
  26. svc_infra-0.1.594/src/svc_infra/security/hibp.py +91 -0
  27. svc_infra-0.1.594/src/svc_infra/security/jwt_rotation.py +53 -0
  28. svc_infra-0.1.594/src/svc_infra/security/lockout.py +96 -0
  29. svc_infra-0.1.594/src/svc_infra/security/models.py +245 -0
  30. svc_infra-0.1.594/src/svc_infra/security/org_invites.py +128 -0
  31. svc_infra-0.1.594/src/svc_infra/security/passwords.py +77 -0
  32. svc_infra-0.1.594/src/svc_infra/security/permissions.py +148 -0
  33. svc_infra-0.1.594/src/svc_infra/security/session.py +89 -0
  34. svc_infra-0.1.594/src/svc_infra/security/signed_cookies.py +80 -0
  35. svc_infra-0.1.592/src/svc_infra/obs/templates/sidecars/k8s/__init__.py +0 -0
  36. svc_infra-0.1.592/src/svc_infra/obs/templates/sidecars/railway/__init__.py +0 -0
  37. {svc_infra-0.1.592 → svc_infra-0.1.594}/README.md +0 -0
  38. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/__init__.py +0 -0
  39. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/apf_payments/__init__.py +0 -0
  40. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/apf_payments/alembic.py +0 -0
  41. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/apf_payments/models.py +0 -0
  42. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/apf_payments/provider/base.py +0 -0
  43. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/apf_payments/provider/registry.py +0 -0
  44. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/apf_payments/provider/stripe.py +0 -0
  45. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/apf_payments/schemas.py +0 -0
  46. {svc_infra-0.1.592/src/svc_infra/apf_payments/provider → svc_infra-0.1.594/src/svc_infra/api}/__init__.py +0 -0
  47. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/__init__.py +0 -0
  48. {svc_infra-0.1.592/src/svc_infra/api → svc_infra-0.1.594/src/svc_infra/api/fastapi/apf_payments}/__init__.py +0 -0
  49. {svc_infra-0.1.592/src/svc_infra/api/fastapi/apf_payments → svc_infra-0.1.594/src/svc_infra/api/fastapi/auth}/__init__.py +0 -0
  50. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/_cookies.py +0 -0
  51. {svc_infra-0.1.592/src/svc_infra/api/fastapi/auth → svc_infra-0.1.594/src/svc_infra/api/fastapi/auth/mfa}/__init__.py +0 -0
  52. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/mfa/models.py +0 -0
  53. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/mfa/pre_auth.py +0 -0
  54. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/mfa/router.py +0 -0
  55. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/mfa/security.py +0 -0
  56. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/mfa/utils.py +0 -0
  57. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/mfa/verify.py +0 -0
  58. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/policy.py +0 -0
  59. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/providers.py +0 -0
  60. {svc_infra-0.1.592/src/svc_infra/api/fastapi/auth/mfa → svc_infra-0.1.594/src/svc_infra/api/fastapi/auth/routers}/__init__.py +0 -0
  61. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/routers/account.py +0 -0
  62. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/routers/apikey_router.py +0 -0
  63. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/security.py +0 -0
  64. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/sender.py +0 -0
  65. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/auth/state.py +0 -0
  66. {svc_infra-0.1.592/src/svc_infra/api/fastapi/auth/routers → svc_infra-0.1.594/src/svc_infra/api/fastapi/cache}/__init__.py +0 -0
  67. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/cache/add.py +0 -0
  68. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/db/__init__.py +0 -0
  69. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/db/http.py +0 -0
  70. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/db/nosql/__init__.py +0 -0
  71. {svc_infra-0.1.592/src/svc_infra/api/fastapi/cache → svc_infra-0.1.594/src/svc_infra/api/fastapi/db/nosql/mongo}/__init__.py +0 -0
  72. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/db/nosql/mongo/add.py +0 -0
  73. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/db/nosql/mongo/crud_router.py +0 -0
  74. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/db/nosql/mongo/health.py +0 -0
  75. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/db/sql/README.md +0 -0
  76. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/db/sql/__init__.py +0 -0
  77. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/db/sql/add.py +0 -0
  78. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/db/sql/crud_router.py +0 -0
  79. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/db/sql/health.py +0 -0
  80. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/db/sql/session.py +0 -0
  81. {svc_infra-0.1.592/src/svc_infra/api/fastapi/db/nosql/mongo → svc_infra-0.1.594/src/svc_infra/api/fastapi/docs}/__init__.py +0 -0
  82. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/docs/landing.py +0 -0
  83. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/docs/scoped.py +0 -0
  84. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/dual/__init__.py +0 -0
  85. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/dual/dualize.py +0 -0
  86. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/dual/protected.py +0 -0
  87. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/dual/public.py +0 -0
  88. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/dual/router.py +0 -0
  89. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/dual/utils.py +0 -0
  90. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/dx.py +0 -0
  91. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/ease.py +0 -0
  92. {svc_infra-0.1.592/src/svc_infra/api/fastapi/docs → svc_infra-0.1.594/src/svc_infra/api/fastapi/http}/__init__.py +0 -0
  93. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/http/concurrency.py +0 -0
  94. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/http/conditional.py +0 -0
  95. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/http/deprecation.py +0 -0
  96. {svc_infra-0.1.592/src/svc_infra/api/fastapi/http → svc_infra-0.1.594/src/svc_infra/api/fastapi/middleware}/__init__.py +0 -0
  97. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/middleware/debug.py +0 -0
  98. {svc_infra-0.1.592/src/svc_infra/api/fastapi/middleware → svc_infra-0.1.594/src/svc_infra/api/fastapi/middleware/errors}/__init__.py +0 -0
  99. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/middleware/errors/catchall.py +0 -0
  100. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/middleware/errors/exceptions.py +0 -0
  101. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/middleware/errors/handlers.py +0 -0
  102. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/middleware/idempotency.py +0 -0
  103. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/middleware/request_id.py +0 -0
  104. {svc_infra-0.1.592/src/svc_infra/api/fastapi/middleware/errors → svc_infra-0.1.594/src/svc_infra/api/fastapi/openapi}/__init__.py +0 -0
  105. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/openapi/apply.py +0 -0
  106. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/openapi/conventions.py +0 -0
  107. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/openapi/models.py +0 -0
  108. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/openapi/mutators.py +0 -0
  109. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/openapi/pipeline.py +0 -0
  110. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/openapi/responses.py +0 -0
  111. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/openapi/security.py +0 -0
  112. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/pagination.py +0 -0
  113. {svc_infra-0.1.592/src/svc_infra/api/fastapi/openapi → svc_infra-0.1.594/src/svc_infra/api/fastapi/paths}/__init__.py +0 -0
  114. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/paths/auth.py +0 -0
  115. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/paths/generic.py +0 -0
  116. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/paths/prefix.py +0 -0
  117. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/paths/user.py +0 -0
  118. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/routers/__init__.py +0 -0
  119. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/api/fastapi/routers/ping.py +0 -0
  120. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/app/README.md +0 -0
  121. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/app/__init__.py +0 -0
  122. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/app/env.py +0 -0
  123. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/app/logging/__init__.py +0 -0
  124. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/app/logging/add.py +0 -0
  125. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/app/logging/filter.py +0 -0
  126. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/app/logging/formats.py +0 -0
  127. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/app/root.py +0 -0
  128. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cache/README.md +0 -0
  129. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cache/__init__.py +0 -0
  130. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cache/backend.py +0 -0
  131. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cache/decorators.py +0 -0
  132. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cache/demo.py +0 -0
  133. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cache/keys.py +0 -0
  134. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cache/recache.py +0 -0
  135. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cache/resources.py +0 -0
  136. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cache/tags.py +0 -0
  137. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cache/ttl.py +0 -0
  138. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cache/utils.py +0 -0
  139. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cli/__init__.py +0 -0
  140. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cli/cmds/__init__.py +0 -0
  141. {svc_infra-0.1.592/src/svc_infra/api/fastapi/paths → svc_infra-0.1.594/src/svc_infra/cli/cmds/db}/__init__.py +0 -0
  142. {svc_infra-0.1.592/src/svc_infra/cli/cmds/db → svc_infra-0.1.594/src/svc_infra/cli/cmds/db/nosql}/__init__.py +0 -0
  143. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cli/cmds/db/nosql/mongo/README.md +0 -0
  144. {svc_infra-0.1.592/src/svc_infra/cli/cmds/db/nosql → svc_infra-0.1.594/src/svc_infra/cli/cmds/db/nosql/mongo}/__init__.py +0 -0
  145. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cli/cmds/db/nosql/mongo/mongo_cmds.py +0 -0
  146. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cli/cmds/db/nosql/mongo/mongo_scaffold_cmds.py +0 -0
  147. {svc_infra-0.1.592/src/svc_infra/cli/cmds/db/nosql/mongo → svc_infra-0.1.594/src/svc_infra/cli/cmds/db/sql}/__init__.py +0 -0
  148. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cli/cmds/db/sql/alembic_cmds.py +0 -0
  149. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cli/cmds/db/sql/sql_scaffold_cmds.py +0 -0
  150. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cli/cmds/help.py +0 -0
  151. {svc_infra-0.1.592/src/svc_infra/cli/cmds/db/sql → svc_infra-0.1.594/src/svc_infra/cli/cmds/obs}/__init__.py +0 -0
  152. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cli/cmds/obs/obs_cmds.py +0 -0
  153. {svc_infra-0.1.592/src/svc_infra/cli/cmds/obs → svc_infra-0.1.594/src/svc_infra/cli/foundation}/__init__.py +0 -0
  154. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cli/foundation/runner.py +0 -0
  155. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/cli/foundation/typer_bootstrap.py +0 -0
  156. {svc_infra-0.1.592/src/svc_infra/cli/foundation → svc_infra-0.1.594/src/svc_infra/db}/__init__.py +0 -0
  157. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/crud_schema.py +0 -0
  158. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/__init__.py +0 -0
  159. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/base.py +0 -0
  160. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/constants.py +0 -0
  161. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/core.py +0 -0
  162. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/indexes.py +0 -0
  163. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/management.py +0 -0
  164. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/mongo/README.md +0 -0
  165. {svc_infra-0.1.592/src/svc_infra/db → svc_infra-0.1.594/src/svc_infra/db/nosql/mongo}/__init__.py +0 -0
  166. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/mongo/client.py +0 -0
  167. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/mongo/settings.py +0 -0
  168. {svc_infra-0.1.592/src/svc_infra/db/nosql/mongo → svc_infra-0.1.594/src/svc_infra/db/nosql/mongo/templates}/__init__.py +0 -0
  169. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/mongo/templates/documents.py.tmpl +0 -0
  170. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/mongo/templates/resources.py.tmpl +0 -0
  171. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/mongo/templates/schemas.py.tmpl +0 -0
  172. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/repository.py +0 -0
  173. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/resource.py +0 -0
  174. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/scaffold.py +0 -0
  175. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/service.py +0 -0
  176. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/service_with_hooks.py +0 -0
  177. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/types.py +0 -0
  178. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/nosql/utils.py +0 -0
  179. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/README.md +0 -0
  180. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/__init__.py +0 -0
  181. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/apikey.py +0 -0
  182. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/authref.py +0 -0
  183. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/base.py +0 -0
  184. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/constants.py +0 -0
  185. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/core.py +0 -0
  186. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/management.py +0 -0
  187. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/repository.py +0 -0
  188. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/resource.py +0 -0
  189. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/scaffold.py +0 -0
  190. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/service.py +0 -0
  191. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/service_with_hooks.py +0 -0
  192. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/templates/__init__.py +0 -0
  193. {svc_infra-0.1.592/src/svc_infra/db/nosql/mongo/templates → svc_infra-0.1.594/src/svc_infra/db/sql/templates/models_schemas}/__init__.py +0 -0
  194. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/templates/models_schemas/auth/models.py.tmpl +0 -0
  195. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/templates/models_schemas/auth/schemas.py.tmpl +0 -0
  196. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/templates/models_schemas/entity/models.py.tmpl +0 -0
  197. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/templates/models_schemas/entity/schemas.py.tmpl +0 -0
  198. {svc_infra-0.1.592/src/svc_infra/db/sql/templates/models_schemas → svc_infra-0.1.594/src/svc_infra/db/sql/templates/setup}/__init__.py +0 -0
  199. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/templates/setup/alembic.ini.tmpl +0 -0
  200. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/templates/setup/env_async.py.tmpl +0 -0
  201. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/templates/setup/env_sync.py.tmpl +0 -0
  202. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/templates/setup/script.py.mako.tmpl +0 -0
  203. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/types.py +0 -0
  204. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/uniq.py +0 -0
  205. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/uniq_hooks.py +0 -0
  206. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/sql/utils.py +0 -0
  207. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/db/utils.py +0 -0
  208. {svc_infra-0.1.592/src/svc_infra/db/sql/templates/setup → svc_infra-0.1.594/src/svc_infra/mcp}/__init__.py +0 -0
  209. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/mcp/svc_infra_mcp.py +0 -0
  210. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/README.md +0 -0
  211. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/__init__.py +0 -0
  212. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/add.py +0 -0
  213. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/cloud_dash.py +0 -0
  214. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/metrics/asgi.py +0 -0
  215. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/metrics/base.py +0 -0
  216. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/metrics/http.py +0 -0
  217. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/metrics/sqlalchemy.py +0 -0
  218. {svc_infra-0.1.592/src/svc_infra/mcp → svc_infra-0.1.594/src/svc_infra/obs/providers}/__init__.py +0 -0
  219. {svc_infra-0.1.592/src/svc_infra/obs/metrics → svc_infra-0.1.594/src/svc_infra/obs/providers/compose_cloud}/__init__.py +0 -0
  220. {svc_infra-0.1.592/src/svc_infra/obs/providers → svc_infra-0.1.594/src/svc_infra/obs/providers/compose_cloud/templates}/__init__.py +0 -0
  221. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/providers/compose_cloud/templates/agent.yaml.tmpl +0 -0
  222. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/providers/compose_cloud/templates/docker-compose.cloud.yml.tmpl +0 -0
  223. {svc_infra-0.1.592/src/svc_infra/obs/providers/compose_cloud → svc_infra-0.1.594/src/svc_infra/obs/providers/grafana}/__init__.py +0 -0
  224. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/providers/grafana/dashboards/00_overview.json +0 -0
  225. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/providers/grafana/dashboards/10_http.json +0 -0
  226. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/providers/grafana/dashboards/20_db.json +0 -0
  227. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/providers/grafana/dashboards/30_runtime.json +0 -0
  228. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/providers/grafana/dashboards/40_clients.json +0 -0
  229. {svc_infra-0.1.592/src/svc_infra/obs/providers/compose_cloud/templates → svc_infra-0.1.594/src/svc_infra/obs/providers/grafana/dashboards}/__init__.py +0 -0
  230. {svc_infra-0.1.592/src/svc_infra/obs/providers/grafana → svc_infra-0.1.594/src/svc_infra/obs/providers/grafana/templates}/__init__.py +0 -0
  231. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/providers/grafana/templates/docker-compose.yml.tmpl +0 -0
  232. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/providers/grafana/templates/prometheus.yml.tmpl +0 -0
  233. {svc_infra-0.1.592/src/svc_infra/obs/providers/grafana/dashboards → svc_infra-0.1.594/src/svc_infra/obs/providers/grafana/templates/provisioning}/__init__.py +0 -0
  234. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/providers/grafana/templates/provisioning/dashboards.yml +0 -0
  235. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/providers/grafana/templates/provisioning/datasource.yml +0 -0
  236. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/settings.py +0 -0
  237. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/templates/grafana_dashboard.json +0 -0
  238. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/templates/prometheus_rules.yml +0 -0
  239. {svc_infra-0.1.592/src/svc_infra/obs/providers/grafana/templates → svc_infra-0.1.594/src/svc_infra/obs/templates/sidecars}/__init__.py +0 -0
  240. {svc_infra-0.1.592/src/svc_infra/obs/providers/grafana/templates/provisioning → svc_infra-0.1.594/src/svc_infra/obs/templates/sidecars/compose}/__init__.py +0 -0
  241. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/templates/sidecars/compose/agent.yaml +0 -0
  242. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/templates/sidecars/compose/docker-compose.yml +0 -0
  243. {svc_infra-0.1.592/src/svc_infra/obs/templates/sidecars → svc_infra-0.1.594/src/svc_infra/obs/templates/sidecars/fly}/__init__.py +0 -0
  244. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/templates/sidecars/fly/agent.yaml +0 -0
  245. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/templates/sidecars/fly/fly.toml.fragment +0 -0
  246. {svc_infra-0.1.592/src/svc_infra/obs/templates/sidecars/compose → svc_infra-0.1.594/src/svc_infra/obs/templates/sidecars/k8s}/__init__.py +0 -0
  247. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/templates/sidecars/k8s/configmap.yaml +0 -0
  248. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/templates/sidecars/k8s/deployment.yaml +0 -0
  249. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/templates/sidecars/railway/Dockerfile +0 -0
  250. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/templates/sidecars/railway/README.md +0 -0
  251. {svc_infra-0.1.592/src/svc_infra/obs/templates/sidecars/fly → svc_infra-0.1.594/src/svc_infra/obs/templates/sidecars/railway}/__init__.py +0 -0
  252. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/obs/templates/sidecars/railway/agent.yaml +0 -0
  253. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/py.typed +0 -0
  254. {svc_infra-0.1.592 → svc_infra-0.1.594}/src/svc_infra/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: svc-infra
3
- Version: 0.1.592
3
+ Version: 0.1.594
4
4
  Summary: Infrastructure for building and deploying prod-ready services
5
5
  License: MIT
6
6
  Keywords: fastapi,sqlalchemy,alembic,auth,infra,async,pydantic
@@ -26,6 +26,7 @@ Provides-Extra: pg2
26
26
  Provides-Extra: redshift
27
27
  Provides-Extra: snowflake
28
28
  Provides-Extra: sqlite
29
+ Requires-Dist: adyen (>=13.4.0,<14.0.0)
29
30
  Requires-Dist: ai-infra (>=0.1.63,<0.2.0)
30
31
  Requires-Dist: aiosqlite (>=0.20.0,<0.21.0) ; extra == "sqlite"
31
32
  Requires-Dist: alembic (>=1.13.2,<2.0.0)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "svc-infra"
3
- version = "0.1.592"
3
+ version = "0.1.594"
4
4
  description = "Infrastructure for building and deploying prod-ready services"
5
5
  authors = ["Ali Khatami <aliikhatami94@gmail.com>"]
6
6
  license = "MIT"
@@ -87,6 +87,7 @@ cashews = {extras = ["redis"], version = "^7.4.1"}
87
87
  itsdangerous = "^2.2.0"
88
88
  pyotp = "^2.9.0"
89
89
  stripe = "^13.0.1"
90
+ adyen = "^13.4.0"
90
91
 
91
92
  [tool.poetry.extras]
92
93
  # Postgres v3
@@ -118,6 +119,10 @@ testpaths = ["tests"]
118
119
  python_files = ["test_*.py", "*_test.py"]
119
120
  python_classes = ["Test*",]
120
121
  python_functions = ["test_*"]
122
+ markers = [
123
+ "security: Security and auth hardening tests",
124
+ "ratelimit: Rate limiting and abuse protection tests",
125
+ ]
121
126
  filterwarnings = [
122
127
  "ignore:The `route` decorator is deprecated:DeprecationWarning:starlette.*",
123
128
  ]