identity-plan-kit 0.3.3__tar.gz → 0.3.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/PKG-INFO +1 -1
  2. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/pyproject.toml +2 -2
  3. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/handlers/oauth_routes.py +7 -1
  4. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/uv.lock +1 -1
  5. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/.gitignore +0 -0
  6. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/Makefile +0 -0
  7. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/README.md +0 -0
  8. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/alembic/env.py +0 -0
  9. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/alembic/script.py.mako +0 -0
  10. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/alembic/versions/20250124_000000_initial_schema.py +0 -0
  11. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/alembic/versions/20250127_000000_add_password_hash.py +0 -0
  12. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/alembic.ini +0 -0
  13. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/examples/integration/__init__.py +0 -0
  14. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/examples/integration/fastapi_integration.py +0 -0
  15. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/examples/integration/sample_alembic_env.py +0 -0
  16. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/examples/integration/webhook_integration.py +0 -0
  17. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/examples/playing/admin_usage.py +0 -0
  18. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/examples/playing/basic_usage.py +0 -0
  19. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/examples/playing/custom_error_formats.py +0 -0
  20. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/examples/playing/extending_models.html +0 -0
  21. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/examples/playing/extension_example.py +0 -0
  22. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/examples/prod/.env.production.example +0 -0
  23. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/examples/prod/Dockerfile +0 -0
  24. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/examples/prod/docker-compose.yml +0 -0
  25. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/examples/prod/nginx.conf +0 -0
  26. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/examples/prod/production_setup.py +0 -0
  27. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/examples/prod/prometheus.yml +0 -0
  28. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/loadtests/README.md +0 -0
  29. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/loadtests/__init__.py +0 -0
  30. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/loadtests/config.py +0 -0
  31. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/loadtests/locustfile.py +0 -0
  32. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/loadtests/test_auth.py +0 -0
  33. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/loadtests/test_database_stress.py +0 -0
  34. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/loadtests/test_mixed_scenarios.py +0 -0
  35. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/loadtests/test_plans_quota.py +0 -0
  36. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/loadtests/test_quota_direct.py +0 -0
  37. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/loadtests/test_rbac_cache.py +0 -0
  38. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/loadtests/utils.py +0 -0
  39. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/__init__.py +0 -0
  40. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/admin/__init__.py +0 -0
  41. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/admin/auth.py +0 -0
  42. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/admin/views.py +0 -0
  43. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/__init__.py +0 -0
  44. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/dependencies.py +0 -0
  45. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/domain/__init__.py +0 -0
  46. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/domain/entities.py +0 -0
  47. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/domain/exceptions.py +0 -0
  48. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/dto/__init__.py +0 -0
  49. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/dto/requests.py +0 -0
  50. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/dto/responses.py +0 -0
  51. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/handlers/__init__.py +0 -0
  52. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/models/__init__.py +0 -0
  53. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/models/refresh_token.py +0 -0
  54. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/models/user.py +0 -0
  55. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/models/user_provider.py +0 -0
  56. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/repositories/__init__.py +0 -0
  57. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/repositories/token_repo.py +0 -0
  58. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/repositories/user_repo.py +0 -0
  59. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/services/__init__.py +0 -0
  60. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/services/auth_service.py +0 -0
  61. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/services/oauth_service.py +0 -0
  62. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/auth/uow.py +0 -0
  63. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/cli.py +0 -0
  64. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/config.py +0 -0
  65. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/kit.py +0 -0
  66. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/migrations.py +0 -0
  67. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/__init__.py +0 -0
  68. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/cache/__init__.py +0 -0
  69. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/cache/plan_cache.py +0 -0
  70. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/cache/user_plan_cache.py +0 -0
  71. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/dependencies.py +0 -0
  72. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/domain/__init__.py +0 -0
  73. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/domain/entities.py +0 -0
  74. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/domain/exceptions.py +0 -0
  75. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/dto/__init__.py +0 -0
  76. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/dto/responses.py +0 -0
  77. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/dto/usage.py +0 -0
  78. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/handlers/__init__.py +0 -0
  79. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/handlers/plan_routes.py +0 -0
  80. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/models/__init__.py +0 -0
  81. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/models/feature.py +0 -0
  82. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/models/feature_usage.py +0 -0
  83. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/models/plan.py +0 -0
  84. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/models/plan_limit.py +0 -0
  85. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/models/plan_permission.py +0 -0
  86. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/models/user_plan.py +0 -0
  87. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/repositories/__init__.py +0 -0
  88. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/repositories/plan_repo.py +0 -0
  89. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/repositories/usage_repo.py +0 -0
  90. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/services/__init__.py +0 -0
  91. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/services/plan_service.py +0 -0
  92. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/plans/uow.py +0 -0
  93. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/rbac/__init__.py +0 -0
  94. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/rbac/cache/__init__.py +0 -0
  95. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/rbac/cache/permission_cache.py +0 -0
  96. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/rbac/dependencies.py +0 -0
  97. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/rbac/domain/__init__.py +0 -0
  98. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/rbac/domain/entities.py +0 -0
  99. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/rbac/domain/exceptions.py +0 -0
  100. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/rbac/models/__init__.py +0 -0
  101. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/rbac/models/permission.py +0 -0
  102. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/rbac/models/role.py +0 -0
  103. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/rbac/models/role_permission.py +0 -0
  104. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/rbac/repositories/__init__.py +0 -0
  105. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/rbac/repositories/rbac_repo.py +0 -0
  106. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/rbac/services/__init__.py +0 -0
  107. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/rbac/services/rbac_service.py +0 -0
  108. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/rbac/uow.py +0 -0
  109. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/README.md +0 -0
  110. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/__init__.py +0 -0
  111. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/audit.py +0 -0
  112. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/circuit_breaker.py +0 -0
  113. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/cleanup_scheduler.py +0 -0
  114. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/database.py +0 -0
  115. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/error_formatter.py +0 -0
  116. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/exception_handlers.py +0 -0
  117. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/exceptions.py +0 -0
  118. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/graceful_shutdown.py +0 -0
  119. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/health.py +0 -0
  120. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/http_utils.py +0 -0
  121. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/lockout.py +0 -0
  122. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/logging.py +0 -0
  123. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/metrics.py +0 -0
  124. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/models.py +0 -0
  125. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/rate_limiter.py +0 -0
  126. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/request_id.py +0 -0
  127. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/schemas.py +0 -0
  128. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/security.py +0 -0
  129. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/state_store.py +0 -0
  130. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/uow.py +0 -0
  131. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/src/identity_plan_kit/shared/uuid7.py +0 -0
  132. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/__init__.py +0 -0
  133. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/auth/__init__.py +0 -0
  134. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/auth/test_auth_service.py +0 -0
  135. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/auth/test_circuit_breaker.py +0 -0
  136. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/auth/test_csrf_state.py +0 -0
  137. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/auth/test_dependencies.py +0 -0
  138. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/auth/test_domain_entities.py +0 -0
  139. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/auth/test_http_utils.py +0 -0
  140. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/auth/test_lockout.py +0 -0
  141. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/auth/test_lockout_concurrent.py +0 -0
  142. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/auth/test_oauth_service_resilience.py +0 -0
  143. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/auth/test_security_comprehensive.py +0 -0
  144. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/auth/test_token_security.py +0 -0
  145. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/conftest.py +0 -0
  146. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/integration/__init__.py +0 -0
  147. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/integration/conftest.py +0 -0
  148. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/integration/test_concurrent_limit_merge.py +0 -0
  149. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/integration/test_concurrent_plan_operations.py +0 -0
  150. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/integration/test_concurrent_token_operations.py +0 -0
  151. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/integration/test_concurrent_user_creation.py +0 -0
  152. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/integration/test_concurrent_user_deactivation.py +0 -0
  153. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/integration/test_limit_boundaries.py +0 -0
  154. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/integration/test_plan_cache_race.py +0 -0
  155. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/integration/test_quota_concurrency.py +0 -0
  156. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/integration/test_token_cleanup.py +0 -0
  157. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/integration/test_token_repository.py +0 -0
  158. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/integration/test_usage_periods.py +0 -0
  159. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/integration/test_user_repository.py +0 -0
  160. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/plans/__init__.py +0 -0
  161. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/plans/test_dependencies.py +0 -0
  162. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/plans/test_domain_entities.py +0 -0
  163. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/plans/test_period_edge_cases.py +0 -0
  164. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/plans/test_plan_cache_concurrent.py +0 -0
  165. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/plans/test_plan_service.py +0 -0
  166. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/rbac/__init__.py +0 -0
  167. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/rbac/test_permission_cache.py +0 -0
  168. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/rbac/test_permission_cache_concurrent.py +0 -0
  169. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/rbac/test_rbac_cache_stampede.py +0 -0
  170. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/rbac/test_rbac_service.py +0 -0
  171. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/shared/test_audit_pii_masking.py +0 -0
  172. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/shared/test_circuit_breaker_concurrent.py +0 -0
  173. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/shared/test_cleanup_scheduler_concurrent.py +0 -0
  174. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/shared/test_config_validation.py +0 -0
  175. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/shared/test_exception_handlers.py +0 -0
  176. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/shared/test_http_utils_security.py +0 -0
  177. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/shared/test_rate_limiter.py +0 -0
  178. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/shared/test_rate_limiter_concurrent.py +0 -0
  179. {identity_plan_kit-0.3.3 → identity_plan_kit-0.3.4}/tests/shared/test_state_store_concurrent.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: identity-plan-kit
3
- Version: 0.3.3
3
+ Version: 0.3.4
4
4
  Summary: Modern FastAPI library for authentication, RBAC, subscription plans, and usage tracking
5
5
  Author-email: harut <harut.avetisyan2002@gmail.com>
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "identity-plan-kit"
3
- version = "0.3.3"
3
+ version = "0.3.4"
4
4
  description = "Modern FastAPI library for authentication, RBAC, subscription plans, and usage tracking"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -140,7 +140,7 @@ testpaths = ["tests"]
140
140
  addopts = "-v --tb=short"
141
141
 
142
142
  [tool.bumpversion]
143
- current_version = "0.3.3"
143
+ current_version = "0.3.4"
144
144
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
145
145
  serialize = ["{major}.{minor}.{patch}"]
146
146
  tag = true
@@ -48,7 +48,9 @@ def create_auth_router(config: IdentityPlanKitConfig) -> APIRouter: # noqa: PLR
48
48
  router = APIRouter(tags=["auth"])
49
49
 
50
50
  rate_limiter = get_rate_limiter()
51
- state_store = get_state_store()
51
+ # NOTE: Don't capture state_store here - get it lazily inside each endpoint
52
+ # This ensures Redis is connected before the store is used
53
+ # (setup() runs before startup() which connects to Redis)
52
54
 
53
55
  @router.get(
54
56
  "/google/login",
@@ -70,6 +72,8 @@ def create_auth_router(config: IdentityPlanKitConfig) -> APIRouter: # noqa: PLR
70
72
  user_agent_hash = hashlib.sha256(user_agent.encode()).hexdigest()[:16]
71
73
  nonce = secrets.token_urlsafe(8)
72
74
 
75
+ # Get state store lazily to ensure Redis is connected after startup()
76
+ state_store = get_state_store()
73
77
  await state_store.set(
74
78
  f"oauth_state:{state}",
75
79
  {
@@ -126,6 +130,8 @@ def create_auth_router(config: IdentityPlanKitConfig) -> APIRouter: # noqa: PLR
126
130
  )
127
131
 
128
132
  # Atomically get and delete state (one-time use)
133
+ # Get state store lazily to ensure Redis is connected after startup()
134
+ state_store = get_state_store()
129
135
  stored_state = await state_store.get_and_delete(f"oauth_state:{state}")
130
136
  if stored_state is None:
131
137
  # SECURITY FIX: Add diagnostic info for multi-instance deployments
@@ -962,7 +962,7 @@ wheels = [
962
962
 
963
963
  [[package]]
964
964
  name = "identity-plan-kit"
965
- version = "0.3.2"
965
+ version = "0.3.3"
966
966
  source = { editable = "." }
967
967
  dependencies = [
968
968
  { name = "alembic" },