auth-middleware 0.3.8__tar.gz → 0.4.2__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 (401) hide show
  1. auth_middleware-0.4.2/.vscode/extensions.json +15 -0
  2. auth_middleware-0.4.2/.vscode/settings.json +31 -0
  3. auth_middleware-0.4.2/CHANGELOG.txt +147 -0
  4. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/PKG-INFO +1 -1
  5. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/alembic/versions/de961fac6f27_initial_migration.py +11 -12
  6. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.buildinfo +1 -1
  7. auth_middleware-0.4.2/docs/.doctrees/api.doctree +0 -0
  8. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/cognito_provider.doctree +0 -0
  9. auth_middleware-0.4.2/docs/.doctrees/entra_id_provider.doctree +0 -0
  10. auth_middleware-0.4.2/docs/.doctrees/environment.pickle +0 -0
  11. auth_middleware-0.4.2/docs/.doctrees/exceptions.doctree +0 -0
  12. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/extending-authz-providers.doctree +0 -0
  13. auth_middleware-0.4.2/docs/.doctrees/functions.doctree +0 -0
  14. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/groups-provider.doctree +0 -0
  15. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/index.doctree +0 -0
  16. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/infrastructure/cognito-setup.doctree +0 -0
  17. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/jwks-cache.doctree +0 -0
  18. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/jwt_auth_middleware.doctree +0 -0
  19. auth_middleware-0.4.2/docs/.doctrees/jwt_auth_provider.doctree +0 -0
  20. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/jwt_bearer_manager.doctree +0 -0
  21. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/middleware-configuration.doctree +0 -0
  22. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/permissions-provider.doctree +0 -0
  23. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/services.doctree +0 -0
  24. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/types.doctree +0 -0
  25. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/user-guide.doctree +0 -0
  26. auth_middleware-0.4.2/docs/_modules/auth_middleware/contracts/groups_provider.html +214 -0
  27. auth_middleware-0.4.2/docs/_modules/auth_middleware/contracts/jwt_provider.html +402 -0
  28. auth_middleware-0.4.2/docs/_modules/auth_middleware/contracts/permissions_provider.html +216 -0
  29. auth_middleware-0.4.2/docs/_modules/auth_middleware/exceptions/authentication_error.html +198 -0
  30. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_modules/auth_middleware/exceptions/cognito_exceptions.html +2 -2
  31. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_modules/auth_middleware/exceptions/invalid_authorization_exception.html +2 -2
  32. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_modules/auth_middleware/exceptions/invalid_credentials_exception.html +2 -2
  33. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_modules/auth_middleware/exceptions/invalid_token_exception.html +2 -2
  34. auth_middleware-0.4.2/docs/_modules/auth_middleware/exceptions/password_policy_error.html +200 -0
  35. auth_middleware-0.4.2/docs/_modules/auth_middleware/exceptions/user_not_found_error.html +198 -0
  36. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_modules/auth_middleware/functions.html +2 -2
  37. auth_middleware-0.4.2/docs/_modules/auth_middleware/guards/functions.html +369 -0
  38. auth_middleware-0.4.2/docs/_modules/auth_middleware/guards/group_checker.html +219 -0
  39. auth_middleware-0.4.2/docs/_modules/auth_middleware/guards/permissions_checker.html +222 -0
  40. auth_middleware-0.4.2/docs/_modules/auth_middleware/guards/role_checker.html +219 -0
  41. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_modules/auth_middleware/jwt_auth_middleware.html +3 -5
  42. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_modules/auth_middleware/jwt_bearer_manager.html +9 -11
  43. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_modules/auth_middleware/providers/authn/cognito_authz_provider_settings.html +2 -2
  44. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_modules/auth_middleware/providers/authn/cognito_provider.html +2 -2
  45. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_modules/auth_middleware/providers/authn/jwt_provider.html +2 -2
  46. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_modules/auth_middleware/providers/authn/jwt_provider_settings.html +2 -2
  47. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_modules/auth_middleware/providers/authz/cognito_groups_provider.html +2 -2
  48. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_modules/auth_middleware/providers/authz/groups_provider.html +2 -2
  49. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_modules/auth_middleware/providers/authz/permissions_provider.html +2 -2
  50. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_modules/auth_middleware/providers/authz/sql_groups_provider.html +2 -2
  51. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_modules/auth_middleware/providers/authz/sql_permissions_provider.html +2 -2
  52. auth_middleware-0.4.2/docs/_modules/auth_middleware/providers/aws/cognito_authz_provider_settings.html +230 -0
  53. auth_middleware-0.4.2/docs/_modules/auth_middleware/providers/aws/cognito_exceptions.html +231 -0
  54. auth_middleware-0.4.2/docs/_modules/auth_middleware/providers/aws/cognito_groups_provider.html +243 -0
  55. auth_middleware-0.4.2/docs/_modules/auth_middleware/providers/aws/cognito_provider.html +453 -0
  56. auth_middleware-0.4.2/docs/_modules/auth_middleware/providers/aws/jwt_provider_settings.html +232 -0
  57. auth_middleware-0.4.2/docs/_modules/auth_middleware/providers/azure/entra_id_provider.html +396 -0
  58. auth_middleware-0.4.2/docs/_modules/auth_middleware/providers/azure/settings.html +217 -0
  59. auth_middleware-0.4.2/docs/_modules/auth_middleware/providers/sqlalchemy/sql_groups_provider.html +291 -0
  60. auth_middleware-0.4.2/docs/_modules/auth_middleware/providers/sqlalchemy/sql_permissions_provider.html +296 -0
  61. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_modules/index.html +21 -13
  62. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/api.rst.txt +12 -22
  63. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/cognito_provider.rst.txt +11 -10
  64. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/entra_id_provider.rst.txt +27 -46
  65. auth_middleware-0.4.2/docs/_sources/exceptions.rst.txt +121 -0
  66. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/extending-authz-providers.rst.txt +13 -13
  67. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/functions.rst.txt +72 -90
  68. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/groups-provider.rst.txt +20 -20
  69. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/index.rst.txt +7 -5
  70. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/infrastructure/cognito-setup.rst.txt +3 -3
  71. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/jwks-cache.rst.txt +3 -3
  72. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/jwt_auth_provider.rst.txt +7 -7
  73. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/middleware-configuration.rst.txt +9 -21
  74. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/permissions-provider.rst.txt +15 -15
  75. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/services.rst.txt +1 -1
  76. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/types.rst.txt +1 -1
  77. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/user-guide.rst.txt +12 -22
  78. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/documentation_options.js +1 -1
  79. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/api.html +19 -29
  80. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/auth-authn.html +2 -2
  81. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/cognito_provider.html +69 -68
  82. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/entra_id_provider.html +158 -49
  83. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/exceptions.html +77 -146
  84. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/extending-authz-providers.html +15 -15
  85. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/functions.html +138 -111
  86. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/genindex.html +160 -75
  87. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/groups-provider.html +49 -56
  88. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/index.html +20 -18
  89. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/infrastructure/cognito-setup.html +5 -5
  90. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/infrastructure/entra-id-setup.html +2 -2
  91. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/infrastructure/google-setup.html +2 -2
  92. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/infrastructure.html +2 -2
  93. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/installation.html +2 -2
  94. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/jwks-cache.html +5 -5
  95. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/jwt_auth_middleware.html +4 -4
  96. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/jwt_auth_provider.html +55 -56
  97. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/jwt_bearer_manager.html +4 -4
  98. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/middleware-configuration.html +11 -23
  99. auth_middleware-0.4.2/docs/objects.inv +0 -0
  100. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/permissions-provider.html +40 -47
  101. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/py-modindex.html +33 -8
  102. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/search.html +2 -2
  103. auth_middleware-0.4.2/docs/searchindex.js +1 -0
  104. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/services.html +3 -3
  105. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/types.html +3 -3
  106. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/user-guide.html +14 -24
  107. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/user-property.html +2 -2
  108. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/api.rst +12 -22
  109. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/cognito_provider.rst +11 -10
  110. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/conf.py +34 -34
  111. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/entra_id_provider.rst +27 -46
  112. auth_middleware-0.4.2/docs_source/exceptions.rst +121 -0
  113. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/extending-authz-providers.rst +13 -13
  114. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/functions.rst +72 -90
  115. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/groups-provider.rst +20 -20
  116. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/index.rst +7 -5
  117. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/infrastructure/cognito-setup.rst +3 -3
  118. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/jwks-cache.rst +3 -3
  119. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/jwt_auth_provider.rst +7 -7
  120. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/middleware-configuration.rst +9 -21
  121. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/permissions-provider.rst +15 -15
  122. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/services.rst +1 -1
  123. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/types.rst +1 -1
  124. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/user-guide.rst +12 -22
  125. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/examples/audit_example.py +5 -5
  126. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/examples/auth_examples.py +8 -7
  127. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/examples/jwks_cache_example.py +2 -2
  128. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/examples/m2m_detection_example.py +3 -3
  129. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/examples/metrics_example.py +3 -3
  130. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/examples/rate_limiting_example.py +3 -3
  131. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/pyproject.toml +21 -1
  132. auth_middleware-0.4.2/src/auth_middleware/__init__.py +26 -0
  133. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/auth_provider.py +3 -1
  134. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/basic_auth_middleware.py +10 -8
  135. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/cli.py +1 -1
  136. auth_middleware-0.4.2/src/auth_middleware/constants.py +2 -0
  137. auth_middleware-0.4.2/src/auth_middleware/contracts/__init__.py +27 -0
  138. auth_middleware-0.4.2/src/auth_middleware/contracts/groups_provider.py +25 -0
  139. {auth_middleware-0.3.8/src/auth_middleware/providers/authn → auth_middleware-0.4.2/src/auth_middleware/contracts}/jwt_provider.py +204 -196
  140. auth_middleware-0.4.2/src/auth_middleware/contracts/permissions_provider.py +27 -0
  141. {auth_middleware-0.3.8/src/auth_middleware/providers/profile → auth_middleware-0.4.2/src/auth_middleware/contracts}/profile_provider.py +2 -2
  142. auth_middleware-0.4.2/src/auth_middleware/contracts/roles_provider.py +25 -0
  143. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/exceptions/__init__.py +11 -7
  144. auth_middleware-0.4.2/src/auth_middleware/exceptions/authentication_error.py +9 -0
  145. auth_middleware-0.4.2/src/auth_middleware/exceptions/password_policy_error.py +11 -0
  146. auth_middleware-0.4.2/src/auth_middleware/exceptions/user_not_found_error.py +9 -0
  147. auth_middleware-0.4.2/src/auth_middleware/guards/__init__.py +27 -0
  148. {auth_middleware-0.3.8/src/auth_middleware → auth_middleware-0.4.2/src/auth_middleware/guards}/functions.py +7 -12
  149. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/jwt_auth_middleware.py +1 -3
  150. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/jwt_bearer_manager.py +7 -9
  151. {auth_middleware-0.3.8/src/auth_middleware/providers/cognito → auth_middleware-0.4.2/src/auth_middleware/providers/aws}/__init__.py +1 -1
  152. {auth_middleware-0.3.8/src/auth_middleware/providers/authn → auth_middleware-0.4.2/src/auth_middleware/providers/aws}/cognito_authz_provider_settings.py +1 -1
  153. auth_middleware-0.4.2/src/auth_middleware/providers/aws/cognito_exceptions.py +30 -0
  154. {auth_middleware-0.3.8/src/auth_middleware/providers/authz → auth_middleware-0.4.2/src/auth_middleware/providers/aws}/cognito_groups_as_roles_provider.py +4 -3
  155. {auth_middleware-0.3.8/src/auth_middleware/providers/authz → auth_middleware-0.4.2/src/auth_middleware/providers/aws}/cognito_groups_provider.py +4 -3
  156. {auth_middleware-0.3.8/src/auth_middleware/providers/profile → auth_middleware-0.4.2/src/auth_middleware/providers/aws}/cognito_profile_provider.py +3 -3
  157. {auth_middleware-0.3.8/src/auth_middleware/providers/authn → auth_middleware-0.4.2/src/auth_middleware/providers/aws}/cognito_provider.py +64 -36
  158. {auth_middleware-0.3.8/src/auth_middleware/providers/authn → auth_middleware-0.4.2/src/auth_middleware/providers/aws}/identity_pool_client.py +7 -5
  159. {auth_middleware-0.3.8/src/auth_middleware/providers/authn → auth_middleware-0.4.2/src/auth_middleware/providers/aws}/identity_pool_provider.py +19 -17
  160. {auth_middleware-0.3.8/src/auth_middleware/providers/authn → auth_middleware-0.4.2/src/auth_middleware/providers/aws}/identity_pool_settings.py +6 -5
  161. {auth_middleware-0.3.8/src/auth_middleware/providers/authn → auth_middleware-0.4.2/src/auth_middleware/providers/aws}/jwt_provider_settings.py +3 -1
  162. {auth_middleware-0.3.8/src/auth_middleware → auth_middleware-0.4.2/src/auth_middleware/providers/aws}/services/cognito_auth_models.py +16 -6
  163. {auth_middleware-0.3.8/src/auth_middleware → auth_middleware-0.4.2/src/auth_middleware/providers/aws}/services/cognito_auth_service.py +42 -20
  164. {auth_middleware-0.3.8/src/auth_middleware → auth_middleware-0.4.2/src/auth_middleware/providers/aws}/services/m2m_detector.py +4 -5
  165. {auth_middleware-0.3.8/src/auth_middleware/providers/entra_id → auth_middleware-0.4.2/src/auth_middleware/providers/azure}/entra_id_provider.py +25 -15
  166. {auth_middleware-0.3.8/src/auth_middleware/providers/authz → auth_middleware-0.4.2/src/auth_middleware/providers/sqlalchemy}/async_database.py +10 -4
  167. {auth_middleware-0.3.8/src/auth_middleware/providers/authz → auth_middleware-0.4.2/src/auth_middleware/providers/sqlalchemy}/sql_base_model.py +2 -3
  168. {auth_middleware-0.3.8/src/auth_middleware/providers/authz → auth_middleware-0.4.2/src/auth_middleware/providers/sqlalchemy}/sql_groups_provider.py +11 -9
  169. {auth_middleware-0.3.8/src/auth_middleware/providers/authz → auth_middleware-0.4.2/src/auth_middleware/providers/sqlalchemy}/sql_permissions_provider.py +14 -10
  170. auth_middleware-0.4.2/src/auth_middleware/repository/__init__.py +5 -0
  171. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/repository/json_credentials_repository.py +1 -1
  172. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/services/__init__.py +6 -4
  173. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/services/audit.py +7 -5
  174. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/services/metrics.py +6 -4
  175. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/services/rate_limiter.py +21 -11
  176. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/types/user.py +5 -7
  177. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/commands}/test_cli.py +79 -63
  178. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/contracts}/test_abstract_stubs.py +11 -7
  179. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/contracts}/test_auth_provider.py +12 -13
  180. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/contracts}/test_groups_provider.py +2 -2
  181. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/contracts}/test_jwt_provider.py +8 -8
  182. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/contracts}/test_jwt_provider_settings.py +2 -2
  183. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/contracts}/test_permissions_provider.py +2 -2
  184. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/guards}/test_functions.py +454 -421
  185. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/guards}/test_group_checker.py +104 -101
  186. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/guards}/test_permissions_checker.py +221 -183
  187. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/guards}/test_role_checker.py +27 -10
  188. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/aws}/test_aws_credentials.py +1 -1
  189. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/aws}/test_cognito_auth_service.py +44 -19
  190. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/aws}/test_cognito_groups_as_roles_provider.py +4 -4
  191. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/aws}/test_cognito_profile_provider.py +6 -5
  192. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/aws}/test_cognito_provider.py +37 -26
  193. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/aws}/test_cognito_provider_clean.py +34 -25
  194. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/aws}/test_cognito_utils.py +1 -1
  195. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/aws}/test_identity_pool_client.py +2 -2
  196. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/aws}/test_identity_pool_provider.py +10 -10
  197. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/aws}/test_identity_pool_settings.py +1 -1
  198. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/aws}/test_jwks_cache_improvements.py +4 -4
  199. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/aws}/test_m2m_detector.py +1 -1
  200. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/azure}/test_entra_id_init.py +19 -14
  201. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/azure}/test_entra_id_provider.py +91 -38
  202. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/azure}/test_entra_id_settings.py +22 -15
  203. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/azure}/test_entra_id_utils.py +29 -35
  204. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/sqlalchemy}/test_async_database.py +64 -60
  205. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/sqlalchemy}/test_sql_groups_provider.py +6 -6
  206. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/providers/sqlalchemy}/test_sql_permissions_provider.py +6 -6
  207. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/repository}/test_json_credentials_repository.py +67 -45
  208. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/services}/test_rate_limiter.py +2 -1
  209. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/tests/test_basic_auth_middleware.py +458 -348
  210. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/tests/test_basic_auth_middleware_clean.py +447 -340
  211. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/tests/test_jwt_bearer_manager.py +378 -347
  212. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/tests/test_logging.py +116 -112
  213. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/types}/test_jwt_types.py +4 -2
  214. auth_middleware-0.4.2/tests/types/test_types.py +0 -0
  215. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/types}/test_user_m2m.py +2 -2
  216. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/uv.lock +1 -1
  217. auth_middleware-0.3.8/.vscode/extensions.json +0 -5
  218. auth_middleware-0.3.8/.vscode/settings.json +0 -6
  219. auth_middleware-0.3.8/docs/.doctrees/api.doctree +0 -0
  220. auth_middleware-0.3.8/docs/.doctrees/entra_id_provider.doctree +0 -0
  221. auth_middleware-0.3.8/docs/.doctrees/environment.pickle +0 -0
  222. auth_middleware-0.3.8/docs/.doctrees/exceptions.doctree +0 -0
  223. auth_middleware-0.3.8/docs/.doctrees/functions.doctree +0 -0
  224. auth_middleware-0.3.8/docs/.doctrees/jwt_auth_provider.doctree +0 -0
  225. auth_middleware-0.3.8/docs/_sources/exceptions.rst.txt +0 -188
  226. auth_middleware-0.3.8/docs/objects.inv +0 -0
  227. auth_middleware-0.3.8/docs/searchindex.js +0 -1
  228. auth_middleware-0.3.8/docs_source/exceptions.rst +0 -188
  229. auth_middleware-0.3.8/src/auth_middleware/__init__.py +0 -17
  230. auth_middleware-0.3.8/src/auth_middleware/exceptions/cognito_exceptions.py +0 -55
  231. auth_middleware-0.3.8/src/auth_middleware/providers/authz/groups_provider.py +0 -26
  232. auth_middleware-0.3.8/src/auth_middleware/providers/authz/permissions_provider.py +0 -26
  233. auth_middleware-0.3.8/src/auth_middleware/providers/authz/roles_provider.py +0 -26
  234. auth_middleware-0.3.8/src/auth_middleware/providers/profile/__init__.py +0 -6
  235. auth_middleware-0.3.8/src/auth_middleware/repository/__init__.py +0 -5
  236. auth_middleware-0.3.8/tests/test_user_comprehensive.py +0 -156
  237. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/.coveragerc +0 -0
  238. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/.devcontainer/.bashrc +0 -0
  239. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/.devcontainer/Dockerfile +0 -0
  240. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/.devcontainer/QUICKSTART.md +0 -0
  241. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/.devcontainer/README.md +0 -0
  242. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/.devcontainer/devcontainer.json +0 -0
  243. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/.devcontainer/start.sh +0 -0
  244. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/.devcontainer/uv.toml +0 -0
  245. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/.devcontainer/verify-setup.sh +0 -0
  246. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/.flake8 +0 -0
  247. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/.github/workflows/release.yml +0 -0
  248. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/.gitignore +0 -0
  249. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/.python-version +0 -0
  250. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/.sonarlint/connectedMode.json +0 -0
  251. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/.vscode/launch.json +0 -0
  252. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/LICENSE +0 -0
  253. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/README.md +0 -0
  254. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/alembic/README +0 -0
  255. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/alembic/env.py +0 -0
  256. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/alembic/script.py.mako +0 -0
  257. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/alembic.ini +0 -0
  258. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.buildinfo.bak +0 -0
  259. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/__intersphinx_cache__/fastapi_objects.inv +0 -0
  260. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/__intersphinx_cache__/python_objects.inv +0 -0
  261. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/auth-authn.doctree +0 -0
  262. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/infrastructure/entra-id-setup.doctree +0 -0
  263. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/infrastructure/google-setup.doctree +0 -0
  264. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/infrastructure.doctree +0 -0
  265. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/installation.doctree +0 -0
  266. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.doctrees/user-property.doctree +0 -0
  267. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.keep +0 -0
  268. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/.nojekyll +0 -0
  269. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/auth-authn.rst.txt +0 -0
  270. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/infrastructure/entra-id-setup.rst.txt +0 -0
  271. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/infrastructure/google-setup.rst.txt +0 -0
  272. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/infrastructure.rst.txt +0 -0
  273. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/installation.rst.txt +0 -0
  274. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/jwt_auth_middleware.rst.txt +0 -0
  275. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/jwt_bearer_manager.rst.txt +0 -0
  276. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_sources/user-property.rst.txt +0 -0
  277. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/_sphinx_javascript_frameworks_compat.js +0 -0
  278. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/base-stemmer.js +0 -0
  279. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/basic.css +0 -0
  280. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/badge_only.css +0 -0
  281. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  282. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  283. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  284. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  285. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/fonts/fontawesome-webfont.eot +0 -0
  286. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/fonts/fontawesome-webfont.svg +0 -0
  287. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  288. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/fonts/fontawesome-webfont.woff +0 -0
  289. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  290. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/fonts/lato-bold-italic.woff +0 -0
  291. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  292. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/fonts/lato-bold.woff +0 -0
  293. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/fonts/lato-bold.woff2 +0 -0
  294. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/fonts/lato-normal-italic.woff +0 -0
  295. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  296. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/fonts/lato-normal.woff +0 -0
  297. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/fonts/lato-normal.woff2 +0 -0
  298. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/css/theme.css +0 -0
  299. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/doctools.js +0 -0
  300. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/english-stemmer.js +0 -0
  301. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/file.png +0 -0
  302. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/Lato/lato-bold.eot +0 -0
  303. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/Lato/lato-bold.ttf +0 -0
  304. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/Lato/lato-bold.woff +0 -0
  305. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/Lato/lato-bold.woff2 +0 -0
  306. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/Lato/lato-bolditalic.eot +0 -0
  307. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
  308. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/Lato/lato-bolditalic.woff +0 -0
  309. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
  310. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/Lato/lato-italic.eot +0 -0
  311. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/Lato/lato-italic.ttf +0 -0
  312. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/Lato/lato-italic.woff +0 -0
  313. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/Lato/lato-italic.woff2 +0 -0
  314. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/Lato/lato-regular.eot +0 -0
  315. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/Lato/lato-regular.ttf +0 -0
  316. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/Lato/lato-regular.woff +0 -0
  317. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/Lato/lato-regular.woff2 +0 -0
  318. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
  319. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
  320. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
  321. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
  322. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
  323. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
  324. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
  325. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
  326. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/jquery.js +0 -0
  327. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/js/badge_only.js +0 -0
  328. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/js/html5shiv-printshiv.min.js +0 -0
  329. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/js/html5shiv.min.js +0 -0
  330. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/js/theme.js +0 -0
  331. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/js/versions.js +0 -0
  332. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/language_data.js +0 -0
  333. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/minus.png +0 -0
  334. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/plus.png +0 -0
  335. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/pygments.css +0 -0
  336. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/searchtools.js +0 -0
  337. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs/_static/sphinx_highlight.js +0 -0
  338. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/Makefile +0 -0
  339. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/auth-authn.rst +0 -0
  340. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/infrastructure/entra-id-setup.rst +0 -0
  341. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/infrastructure/google-setup.rst +0 -0
  342. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/infrastructure.rst +0 -0
  343. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/installation.rst +0 -0
  344. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/jwt_auth_middleware.rst +0 -0
  345. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/jwt_bearer_manager.rst +0 -0
  346. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/make.bat +0 -0
  347. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/docs_source/user-property.rst +0 -0
  348. {auth_middleware-0.3.8/src/auth_middleware/commands → auth_middleware-0.4.2/examples}/__init__.py +0 -0
  349. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/makefile +0 -0
  350. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/scripts/README.md +0 -0
  351. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/scripts/update_version.py +0 -0
  352. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/sonar-project.properties +0 -0
  353. {auth_middleware-0.3.8/src/auth_middleware/providers → auth_middleware-0.4.2/src/auth_middleware/commands}/__init__.py +0 -0
  354. {auth_middleware-0.3.8/src/auth_middleware/repository → auth_middleware-0.4.2/src/auth_middleware/contracts}/credentials_repository.py +0 -0
  355. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/exceptions/invalid_authorization_exception.py +0 -0
  356. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/exceptions/invalid_credentials_exception.py +0 -0
  357. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/exceptions/invalid_token_exception.py +0 -0
  358. {auth_middleware-0.3.8/src/auth_middleware → auth_middleware-0.4.2/src/auth_middleware/guards}/group_checker.py +0 -0
  359. {auth_middleware-0.3.8/src/auth_middleware → auth_middleware-0.4.2/src/auth_middleware/guards}/permissions_checker.py +0 -0
  360. {auth_middleware-0.3.8/src/auth_middleware → auth_middleware-0.4.2/src/auth_middleware/guards}/role_checker.py +0 -0
  361. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/logging.py +0 -0
  362. {auth_middleware-0.3.8/src/auth_middleware/providers/authn → auth_middleware-0.4.2/src/auth_middleware/providers}/__init__.py +0 -0
  363. {auth_middleware-0.3.8/src/auth_middleware/types → auth_middleware-0.4.2/src/auth_middleware/providers/aws}/aws_credentials.py +0 -0
  364. {auth_middleware-0.3.8/src/auth_middleware/providers/exceptions → auth_middleware-0.4.2/src/auth_middleware/providers/aws}/aws_exception.py +0 -0
  365. {auth_middleware-0.3.8/src/auth_middleware/providers/authz → auth_middleware-0.4.2/src/auth_middleware/providers/aws/services}/__init__.py +0 -0
  366. {auth_middleware-0.3.8/src/auth_middleware/providers/cognito → auth_middleware-0.4.2/src/auth_middleware/providers/aws}/utils.py +0 -0
  367. {auth_middleware-0.3.8/src/auth_middleware/providers/entra_id → auth_middleware-0.4.2/src/auth_middleware/providers/azure}/__init__.py +0 -0
  368. {auth_middleware-0.3.8/src/auth_middleware/providers/exceptions → auth_middleware-0.4.2/src/auth_middleware/providers/azure}/azure_exception.py +0 -0
  369. {auth_middleware-0.3.8/src/auth_middleware/providers/entra_id → auth_middleware-0.4.2/src/auth_middleware/providers/azure}/settings.py +0 -0
  370. {auth_middleware-0.3.8/src/auth_middleware/providers/entra_id → auth_middleware-0.4.2/src/auth_middleware/providers/azure}/utils.py +0 -0
  371. {auth_middleware-0.3.8/src/auth_middleware/types → auth_middleware-0.4.2/src/auth_middleware/providers/sqlalchemy}/__init__.py +0 -0
  372. {auth_middleware-0.3.8/src/auth_middleware/providers/authz → auth_middleware-0.4.2/src/auth_middleware/providers/sqlalchemy}/async_database_settings.py +0 -0
  373. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/repository/settings.py +0 -0
  374. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/settings.py +0 -0
  375. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/src/auth_middleware/types}/__init__.py +0 -0
  376. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/types/jwt.py +0 -0
  377. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/src/auth_middleware/types/user_credentials.py +0 -0
  378. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/tests/0.APITesting/_Auth/(No) Get Id Token.bru +0 -0
  379. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/tests/0.APITesting/_Auth/Get Token (client credentials).bru +0 -0
  380. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/tests/0.APITesting/_Auth/Login.bru +0 -0
  381. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/tests/0.APITesting/bruno.json +0 -0
  382. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/tests/0.APITesting/environments/Development.bru +0 -0
  383. /auth_middleware-0.3.8/tests/test_base_provider_comprehensive.py → /auth_middleware-0.4.2/tests/__init__.py +0 -0
  384. /auth_middleware-0.3.8/tests/test_exceptions_comprehensive.py → /auth_middleware-0.4.2/tests/commands/__init__.py +0 -0
  385. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/tests/conftest.py +0 -0
  386. /auth_middleware-0.3.8/tests/test_functions_comprehensive.py → /auth_middleware-0.4.2/tests/contracts/__init__.py +0 -0
  387. /auth_middleware-0.3.8/tests/test_group_checker_comprehensive.py → /auth_middleware-0.4.2/tests/exceptions/__init__.py +0 -0
  388. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/exceptions}/test_exceptions.py +0 -0
  389. /auth_middleware-0.3.8/tests/test_groups_provider_comprehensive.py → /auth_middleware-0.4.2/tests/guards/__init__.py +0 -0
  390. /auth_middleware-0.3.8/tests/test_jwt_auth_middleware_comprehensive.py → /auth_middleware-0.4.2/tests/providers/__init__.py +0 -0
  391. /auth_middleware-0.3.8/tests/test_jwt_provider_comprehensive.py → /auth_middleware-0.4.2/tests/providers/aws/__init__.py +0 -0
  392. /auth_middleware-0.3.8/tests/test_jwt_provider_settings_comprehensive.py → /auth_middleware-0.4.2/tests/providers/azure/__init__.py +0 -0
  393. /auth_middleware-0.3.8/tests/test_jwt_types_comprehensive.py → /auth_middleware-0.4.2/tests/providers/sqlalchemy/__init__.py +0 -0
  394. /auth_middleware-0.3.8/tests/test_permissions_checker_comprehensive.py → /auth_middleware-0.4.2/tests/repository/__init__.py +0 -0
  395. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/repository}/test_repository_settings.py +0 -0
  396. /auth_middleware-0.3.8/tests/test_permissions_provider_comprehensive.py → /auth_middleware-0.4.2/tests/services/__init__.py +0 -0
  397. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/services}/test_audit.py +0 -0
  398. {auth_middleware-0.3.8/tests → auth_middleware-0.4.2/tests/services}/test_metrics.py +0 -0
  399. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/tests/test_dummy.py +0 -0
  400. {auth_middleware-0.3.8 → auth_middleware-0.4.2}/tests/test_jwt_auth_middleware.py +0 -0
  401. /auth_middleware-0.3.8/tests/test_types.py → /auth_middleware-0.4.2/tests/types/__init__.py +0 -0
@@ -0,0 +1,15 @@
1
+ {
2
+ "recommendations": [
3
+ // Python core
4
+ "ms-python.python",
5
+ "ms-python.vscode-pylance",
6
+ "ms-python.debugpy",
7
+ // Linting / formatting
8
+ "charliermarsh.ruff",
9
+ "ms-python.mypy-type-checker",
10
+ // Security
11
+ "SonarSource.sonarlint-vscode",
12
+ // Containers
13
+ "ms-vscode-remote.remote-containers"
14
+ ]
15
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
3
+ "python.analysis.typeCheckingMode": "basic",
4
+ "python.analysis.diagnosticMode": "workspace",
5
+ "python.analysis.diagnosticSeverityOverrides": {
6
+ "reportMissingParameterType": "warning",
7
+ "reportMissingTypeArgument": "warning",
8
+ "reportUnknownParameterType": "warning",
9
+ "reportUnknownVariableType": "information",
10
+ "reportUnknownMemberType": "information"
11
+ },
12
+ "mypy-type-checker.severity": {
13
+ "error": "Warning",
14
+ "note": "Information"
15
+ },
16
+ "mypy-type-checker.args": [
17
+ "--config-file",
18
+ "${workspaceFolder}/pyproject.toml"
19
+ ],
20
+ "[python]": {
21
+ "editor.formatOnSave": true,
22
+ "editor.codeActionsOnSave": {
23
+ "source.fixAll.ruff": "explicit",
24
+ "source.organizeImports.ruff": "explicit"
25
+ }
26
+ },
27
+ "sonarlint.connectedMode.project": {
28
+ "connectionId": "local",
29
+ "projectKey": "auth-middleware"
30
+ }
31
+ }
@@ -0,0 +1,147 @@
1
+ CHANGELOG
2
+ =========
3
+
4
+ Version 0.4.1 (2026-05-02)
5
+ ---------------------------
6
+
7
+ Breaking Changes
8
+ ~~~~~~~~~~~~~~~~
9
+
10
+ **Guard helpers and checker classes** moved to a dedicated ``guards`` package.
11
+ The old top-level module paths have been **deleted** — they no longer exist.
12
+
13
+ OLD LOCATION (deleted) NEW LOCATION
14
+ ----------------------------------------------- -----------------------------------------------
15
+ auth_middleware.functions auth_middleware.guards.functions
16
+ auth_middleware.group_checker auth_middleware.guards.group_checker
17
+ auth_middleware.role_checker auth_middleware.guards.role_checker
18
+ auth_middleware.permissions_checker auth_middleware.guards.permissions_checker
19
+
20
+ **Provider implementations** reorganised into technology-scoped packages.
21
+ All old module paths have been **deleted** — they no longer exist.
22
+
23
+ OLD LOCATION (deleted) NEW LOCATION
24
+ -------------------------------------------------------------- ---------------------------------------------------
25
+ auth_middleware.providers.authn.cognito_provider auth_middleware.providers.aws.cognito_provider
26
+ auth_middleware.providers.authn.cognito_authz_provider_settings auth_middleware.providers.aws.cognito_authz_provider_settings
27
+ auth_middleware.providers.authn.identity_pool_provider auth_middleware.providers.aws.identity_pool_provider
28
+ auth_middleware.providers.authn.identity_pool_client auth_middleware.providers.aws.identity_pool_client
29
+ auth_middleware.providers.authn.identity_pool_settings auth_middleware.providers.aws.identity_pool_settings
30
+ auth_middleware.providers.authn.jwt_provider_settings auth_middleware.providers.aws.jwt_provider_settings
31
+ auth_middleware.providers.authz.cognito_groups_provider auth_middleware.providers.aws.cognito_groups_provider
32
+ auth_middleware.providers.authz.cognito_groups_as_roles_provider auth_middleware.providers.aws.cognito_groups_as_roles_provider
33
+ auth_middleware.providers.profile.cognito_profile_provider auth_middleware.providers.aws.cognito_profile_provider
34
+ auth_middleware.providers.cognito (COGNITO_*_CLAIM constants) auth_middleware.providers.aws (same constants)
35
+ auth_middleware.providers.cognito.utils auth_middleware.providers.aws.utils
36
+ auth_middleware.providers.exceptions.aws_exception auth_middleware.providers.aws.aws_exception
37
+ auth_middleware.providers.entra_id.entra_id_provider auth_middleware.providers.azure.entra_id_provider
38
+ auth_middleware.providers.entra_id.settings auth_middleware.providers.azure.settings
39
+ auth_middleware.providers.entra_id.utils auth_middleware.providers.azure.utils
40
+ auth_middleware.providers.exceptions.azure_exception auth_middleware.providers.azure.azure_exception
41
+ auth_middleware.providers.authz.async_database auth_middleware.providers.sqlalchemy.async_database
42
+ auth_middleware.providers.authz.async_database_settings auth_middleware.providers.sqlalchemy.async_database_settings
43
+ auth_middleware.providers.authz.sql_base_model auth_middleware.providers.sqlalchemy.sql_base_model
44
+ auth_middleware.providers.authz.sql_groups_provider auth_middleware.providers.sqlalchemy.sql_groups_provider
45
+ auth_middleware.providers.authz.sql_permissions_provider auth_middleware.providers.sqlalchemy.sql_permissions_provider
46
+
47
+ Migration
48
+ ~~~~~~~~~
49
+
50
+ Guards:
51
+
52
+ # Before (no longer works — ImportError)
53
+ from auth_middleware.functions import require_user, require_groups, require_roles
54
+ from auth_middleware.functions import require_permissions, has_groups, has_roles
55
+ from auth_middleware.functions import has_permissions, get_current_user
56
+ from auth_middleware.group_checker import GroupChecker
57
+ from auth_middleware.role_checker import RoleChecker
58
+ from auth_middleware.permissions_checker import PermissionsChecker
59
+
60
+ # After
61
+ from auth_middleware.guards import (
62
+ require_user,
63
+ require_groups,
64
+ require_roles,
65
+ require_permissions,
66
+ has_groups,
67
+ has_roles,
68
+ has_permissions,
69
+ get_current_user,
70
+ GroupChecker,
71
+ RoleChecker,
72
+ PermissionsChecker,
73
+ )
74
+
75
+ Providers:
76
+
77
+ providers.authn.* → providers.aws.*
78
+ providers.authz.cognito_* → providers.aws.cognito_*
79
+ providers.authz.sql_* → providers.sqlalchemy.sql_*
80
+ providers.authz.async_database* → providers.sqlalchemy.async_database*
81
+ providers.profile.* → providers.aws.*
82
+ providers.cognito → providers.aws
83
+ providers.entra_id.* → providers.azure.*
84
+ providers.exceptions.aws_exception → providers.aws.aws_exception
85
+ providers.exceptions.azure_exception → providers.azure.azure_exception
86
+
87
+ Deleted package directories: authn/, authz/, profile/, cognito/, entra_id/, exceptions/
88
+
89
+ Other Changes
90
+ ~~~~~~~~~~~~~
91
+
92
+ - New internal module ``auth_middleware.constants`` introduced with
93
+ ``AUTH_SCHEME_BASIC`` and ``AUTH_SCHEME_BEARER`` constants.
94
+ This module is not part of the public API.
95
+
96
+ Version 0.4.0 (2026-05-01)
97
+ ---------------------------
98
+
99
+ Breaking Changes
100
+ ~~~~~~~~~~~~~~~~
101
+
102
+ Provider interfaces / ABCs moved to a dedicated ``contracts`` package.
103
+ The old module paths have been **deleted** — they no longer exist.
104
+
105
+ OLD LOCATION (deleted) NEW LOCATION
106
+ ------------------------------------------------------- -----------------------------------------------
107
+ auth_middleware.providers.authn.jwt_provider auth_middleware.contracts.jwt_provider
108
+ auth_middleware.providers.authz.groups_provider auth_middleware.contracts.groups_provider
109
+ auth_middleware.providers.authz.roles_provider auth_middleware.contracts.roles_provider
110
+ auth_middleware.providers.authz.permissions_provider auth_middleware.contracts.permissions_provider
111
+ auth_middleware.providers.profile.profile_provider auth_middleware.contracts.profile_provider
112
+
113
+ Migration
114
+ ~~~~~~~~~
115
+
116
+ Update your imports to use the new canonical paths:
117
+
118
+ # Before (no longer works — ImportError)
119
+ from auth_middleware.providers.authn.jwt_provider import JWTProvider
120
+ from auth_middleware.providers.authz.groups_provider import GroupsProvider
121
+ from auth_middleware.providers.authz.roles_provider import RolesProvider
122
+ from auth_middleware.providers.authz.permissions_provider import PermissionsProvider
123
+ from auth_middleware.providers.profile.profile_provider import ProfileProvider
124
+
125
+ # After
126
+ from auth_middleware.contracts import (
127
+ JWTProvider,
128
+ GroupsProvider,
129
+ RolesProvider,
130
+ PermissionsProvider,
131
+ ProfileProvider,
132
+ )
133
+
134
+ # Or via top-level package
135
+ from auth_middleware import JWTProvider, GroupsProvider, RolesProvider, PermissionsProvider, ProfileProvider
136
+
137
+ Other Changes
138
+ ~~~~~~~~~~~~~
139
+
140
+ - Provider contracts are now exported from the top-level ``auth_middleware``
141
+ package, making them available via ``from auth_middleware import JWTProvider``
142
+ etc. without knowing the internal module structure.
143
+
144
+ Version 0.3.x and earlier
145
+ --------------------------
146
+
147
+ See git history for previous changes.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: auth-middleware
3
- Version: 0.3.8
3
+ Version: 0.4.2
4
4
  Summary: Async Auth Middleware for FastAPI/Starlette
5
5
  Project-URL: Homepage, https://impalah.github.io/auth-middleware/
6
6
  Project-URL: Documentation, https://impalah.github.io/auth-middleware/
@@ -5,13 +5,14 @@ Revises:
5
5
  Create Date: 2024-11-22 10:59:30.889117
6
6
 
7
7
  """
8
+
8
9
  from collections.abc import Sequence
9
10
 
10
11
  import sqlalchemy as sa
11
12
  from alembic import op
12
13
 
13
14
  # revision identifiers, used by Alembic.
14
- revision: str = 'de961fac6f27'
15
+ revision: str = "de961fac6f27"
15
16
  down_revision: str | None = None
16
17
  branch_labels: str | Sequence[str] | None = None
17
18
  depends_on: str | Sequence[str] | None = None
@@ -19,23 +20,21 @@ depends_on: str | Sequence[str] | None = None
19
20
 
20
21
  def upgrade() -> None:
21
22
  # ### commands auto generated by Alembic - please adjust! ###
22
- op.create_table('authz_permissions',
23
- sa.Column('id', sa.String(length=27), nullable=False),
24
- sa.Column('username', sa.String(length=500), nullable=False),
25
- sa.Column('permission', sa.String(length=100), nullable=False),
26
- sa.PrimaryKeyConstraint('id')
23
+ op.create_table(
24
+ "authz_permissions",
25
+ sa.Column("id", sa.String(length=27), nullable=False),
26
+ sa.Column("username", sa.String(length=500), nullable=False),
27
+ sa.Column("permission", sa.String(length=100), nullable=False),
28
+ sa.PrimaryKeyConstraint("id"),
27
29
  )
28
30
  op.create_index(
29
- op.f('ix_authz_permissions_id'),
30
- 'authz_permissions',
31
- ['id'],
32
- unique=False
31
+ op.f("ix_authz_permissions_id"), "authz_permissions", ["id"], unique=False
33
32
  )
34
33
  # ### end Alembic commands ###
35
34
 
36
35
 
37
36
  def downgrade() -> None:
38
37
  # ### commands auto generated by Alembic - please adjust! ###
39
- op.drop_index(op.f('ix_authz_permissions_id'), table_name='authz_permissions')
40
- op.drop_table('authz_permissions')
38
+ op.drop_index(op.f("ix_authz_permissions_id"), table_name="authz_permissions")
39
+ op.drop_table("authz_permissions")
41
40
  # ### end Alembic commands ###
@@ -1,4 +1,4 @@
1
1
  # Sphinx build info version 1
2
2
  # This file records the configuration used when building these files. When it is not found, a full rebuild will be done.
3
- config: a45fb20f4e788f1218cc49e997b02191
3
+ config: 6d8577a96de98559dfa27a9c106851f9
4
4
  tags: 645f666f9bcd5a90fca523b33c5a78b7
@@ -0,0 +1,214 @@
1
+
2
+
3
+ <!DOCTYPE html>
4
+ <html class="writer-html5" lang="en" data-content_root="../../../">
5
+ <head>
6
+ <meta charset="utf-8" />
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
+ <title>auth_middleware.contracts.groups_provider &mdash; Auth Middleware 0.4.2 documentation</title>
9
+ <link rel="stylesheet" type="text/css" href="../../../_static/pygments.css?v=b86133f3" />
10
+ <link rel="stylesheet" type="text/css" href="../../../_static/css/theme.css?v=9edc463e" />
11
+
12
+
13
+ <link rel="canonical" href="/auth-middleware/_modules/auth_middleware/contracts/groups_provider.html" />
14
+ <script src="../../../_static/jquery.js?v=5d32c60e"></script>
15
+ <script src="../../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
16
+ <script src="../../../_static/documentation_options.js?v=ff822928"></script>
17
+ <script src="../../../_static/doctools.js?v=fd6eb6e6"></script>
18
+ <script src="../../../_static/sphinx_highlight.js?v=6ffebe34"></script>
19
+ <script src="../../../_static/js/theme.js"></script>
20
+ <link rel="index" title="Index" href="../../../genindex.html" />
21
+ <link rel="search" title="Search" href="../../../search.html" />
22
+ </head>
23
+
24
+ <body class="wy-body-for-nav">
25
+ <div class="wy-grid-for-nav">
26
+ <nav data-toggle="wy-nav-shift" class="wy-nav-side">
27
+ <div class="wy-side-scroll">
28
+ <div class="wy-side-nav-search" style="background: #2980B9" >
29
+
30
+
31
+
32
+ <a href="../../../index.html" class="icon icon-home">
33
+ Auth Middleware
34
+ </a>
35
+ <div role="search">
36
+ <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
37
+ <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
38
+ <input type="hidden" name="check_keywords" value="yes" />
39
+ <input type="hidden" name="area" value="default" />
40
+ </form>
41
+ </div>
42
+ </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
43
+ <p class="caption" role="heading"><span class="caption-text">Getting Started:</span></p>
44
+ <ul>
45
+ <li class="toctree-l1"><a class="reference internal" href="../../../installation.html">Installation</a></li>
46
+ <li class="toctree-l1"><a class="reference internal" href="../../../user-guide.html">User Guide</a></li>
47
+ <li class="toctree-l1"><a class="reference internal" href="../../../middleware-configuration.html">Middleware Configuration</a></li>
48
+ </ul>
49
+ <p class="caption" role="heading"><span class="caption-text">Infrastructure Setup:</span></p>
50
+ <ul>
51
+ <li class="toctree-l1"><a class="reference internal" href="../../../infrastructure.html">Infrastructure Setup</a></li>
52
+ <li class="toctree-l1"><a class="reference internal" href="../../../infrastructure.html#provider-specific-setup-guides">Provider-Specific Setup Guides</a></li>
53
+ <li class="toctree-l1"><a class="reference internal" href="../../../infrastructure.html#overview">Overview</a></li>
54
+ <li class="toctree-l1"><a class="reference internal" href="../../../infrastructure.html#security-considerations">Security Considerations</a></li>
55
+ <li class="toctree-l1"><a class="reference internal" href="../../../infrastructure.html#next-steps">Next Steps</a></li>
56
+ </ul>
57
+ <p class="caption" role="heading"><span class="caption-text">Authentication Providers:</span></p>
58
+ <ul>
59
+ <li class="toctree-l1"><a class="reference internal" href="../../../cognito_provider.html">AWS Cognito Provider</a></li>
60
+ <li class="toctree-l1"><a class="reference internal" href="../../../entra_id_provider.html">Azure Entra ID Authentication Provider</a></li>
61
+ <li class="toctree-l1"><a class="reference internal" href="../../../jwt_auth_provider.html">JWT Authentication Provider</a></li>
62
+ </ul>
63
+ <p class="caption" role="heading"><span class="caption-text">Advanced Topics:</span></p>
64
+ <ul>
65
+ <li class="toctree-l1"><a class="reference internal" href="../../../groups-provider.html">Groups Provider</a></li>
66
+ <li class="toctree-l1"><a class="reference internal" href="../../../groups-provider.html#overview">Overview</a></li>
67
+ <li class="toctree-l1"><a class="reference internal" href="../../../groups-provider.html#built-in-providers">Built-in Providers</a></li>
68
+ <li class="toctree-l1"><a class="reference internal" href="../../../groups-provider.html#using-groups-in-your-application">Using Groups in Your Application</a></li>
69
+ <li class="toctree-l1"><a class="reference internal" href="../../../groups-provider.html#custom-groups-provider">Custom Groups Provider</a></li>
70
+ <li class="toctree-l1"><a class="reference internal" href="../../../groups-provider.html#configuration-examples">Configuration Examples</a></li>
71
+ <li class="toctree-l1"><a class="reference internal" href="../../../groups-provider.html#testing-groups-providers">Testing Groups Providers</a></li>
72
+ <li class="toctree-l1"><a class="reference internal" href="../../../groups-provider.html#best-practices">Best Practices</a></li>
73
+ <li class="toctree-l1"><a class="reference internal" href="../../../groups-provider.html#migration-and-deployment">Migration and Deployment</a></li>
74
+ <li class="toctree-l1"><a class="reference internal" href="../../../groups-provider.html#troubleshooting">Troubleshooting</a></li>
75
+ <li class="toctree-l1"><a class="reference internal" href="../../../groups-provider.html#api-reference">API Reference</a></li>
76
+ <li class="toctree-l1"><a class="reference internal" href="../../../groups-provider.html#see-also">See Also</a></li>
77
+ <li class="toctree-l1"><a class="reference internal" href="../../../permissions-provider.html">Permissions Provider</a></li>
78
+ <li class="toctree-l1"><a class="reference internal" href="../../../permissions-provider.html#overview">Overview</a></li>
79
+ <li class="toctree-l1"><a class="reference internal" href="../../../permissions-provider.html#built-in-providers">Built-in Providers</a></li>
80
+ <li class="toctree-l1"><a class="reference internal" href="../../../permissions-provider.html#using-permissions-in-your-application">Using Permissions in Your Application</a></li>
81
+ <li class="toctree-l1"><a class="reference internal" href="../../../permissions-provider.html#permission-patterns">Permission Patterns</a></li>
82
+ <li class="toctree-l1"><a class="reference internal" href="../../../permissions-provider.html#custom-permissions-provider">Custom Permissions Provider</a></li>
83
+ <li class="toctree-l1"><a class="reference internal" href="../../../permissions-provider.html#advanced-features">Advanced Features</a></li>
84
+ <li class="toctree-l1"><a class="reference internal" href="../../../permissions-provider.html#permission-management">Permission Management</a></li>
85
+ <li class="toctree-l1"><a class="reference internal" href="../../../permissions-provider.html#testing-permissions-providers">Testing Permissions Providers</a></li>
86
+ <li class="toctree-l1"><a class="reference internal" href="../../../permissions-provider.html#best-practices">Best Practices</a></li>
87
+ <li class="toctree-l1"><a class="reference internal" href="../../../permissions-provider.html#troubleshooting">Troubleshooting</a></li>
88
+ <li class="toctree-l1"><a class="reference internal" href="../../../permissions-provider.html#api-reference">API Reference</a></li>
89
+ <li class="toctree-l1"><a class="reference internal" href="../../../permissions-provider.html#see-also">See Also</a></li>
90
+ <li class="toctree-l1"><a class="reference internal" href="../../../extending-authz-providers.html">Extending Authorization Providers</a></li>
91
+ <li class="toctree-l1"><a class="reference internal" href="../../../extending-authz-providers.html#overview">Overview</a></li>
92
+ <li class="toctree-l1"><a class="reference internal" href="../../../extending-authz-providers.html#understanding-the-provider-interface">Understanding the Provider Interface</a></li>
93
+ <li class="toctree-l1"><a class="reference internal" href="../../../extending-authz-providers.html#integration-patterns">Integration Patterns</a></li>
94
+ <li class="toctree-l1"><a class="reference internal" href="../../../extending-authz-providers.html#advanced-patterns">Advanced Patterns</a></li>
95
+ <li class="toctree-l1"><a class="reference internal" href="../../../extending-authz-providers.html#caching-and-performance">Caching and Performance</a></li>
96
+ <li class="toctree-l1"><a class="reference internal" href="../../../extending-authz-providers.html#error-handling-and-resilience">Error Handling and Resilience</a></li>
97
+ <li class="toctree-l1"><a class="reference internal" href="../../../extending-authz-providers.html#testing-custom-providers">Testing Custom Providers</a></li>
98
+ <li class="toctree-l1"><a class="reference internal" href="../../../extending-authz-providers.html#deployment-considerations">Deployment Considerations</a></li>
99
+ <li class="toctree-l1"><a class="reference internal" href="../../../extending-authz-providers.html#best-practices-summary">Best Practices Summary</a></li>
100
+ <li class="toctree-l1"><a class="reference internal" href="../../../extending-authz-providers.html#see-also">See Also</a></li>
101
+ <li class="toctree-l1"><a class="reference internal" href="../../../user-property.html">The User Property</a></li>
102
+ <li class="toctree-l1"><a class="reference internal" href="../../../auth-authn.html">Control Authentication and Authorization</a></li>
103
+ <li class="toctree-l1"><a class="reference internal" href="../../../services.html">Services Module</a></li>
104
+ <li class="toctree-l1"><a class="reference internal" href="../../../services.html#m2m-token-detection">M2M Token Detection</a></li>
105
+ <li class="toctree-l1"><a class="reference internal" href="../../../services.html#rate-limiting">Rate Limiting</a></li>
106
+ <li class="toctree-l1"><a class="reference internal" href="../../../services.html#audit-logging">Audit Logging</a></li>
107
+ <li class="toctree-l1"><a class="reference internal" href="../../../services.html#metrics-collection">Metrics Collection</a></li>
108
+ <li class="toctree-l1"><a class="reference internal" href="../../../services.html#best-practices">Best Practices</a></li>
109
+ <li class="toctree-l1"><a class="reference internal" href="../../../services.html#see-also">See Also</a></li>
110
+ <li class="toctree-l1"><a class="reference internal" href="../../../jwks-cache.html">JWKS Cache Strategies</a></li>
111
+ <li class="toctree-l1"><a class="reference internal" href="../../../jwks-cache.html#cache-strategies">Cache Strategies</a></li>
112
+ <li class="toctree-l1"><a class="reference internal" href="../../../jwks-cache.html#background-refresh">Background Refresh</a></li>
113
+ <li class="toctree-l1"><a class="reference internal" href="../../../jwks-cache.html#configuration-examples">Configuration Examples</a></li>
114
+ <li class="toctree-l1"><a class="reference internal" href="../../../jwks-cache.html#monitoring-cache-performance">Monitoring Cache Performance</a></li>
115
+ <li class="toctree-l1"><a class="reference internal" href="../../../jwks-cache.html#best-practices">Best Practices</a></li>
116
+ <li class="toctree-l1"><a class="reference internal" href="../../../jwks-cache.html#troubleshooting">Troubleshooting</a></li>
117
+ <li class="toctree-l1"><a class="reference internal" href="../../../jwks-cache.html#performance-comparison">Performance Comparison</a></li>
118
+ <li class="toctree-l1"><a class="reference internal" href="../../../jwks-cache.html#see-also">See Also</a></li>
119
+ <li class="toctree-l1"><a class="reference internal" href="../../../jwt_bearer_manager.html">jwt_bearer_manager</a></li>
120
+ <li class="toctree-l1"><a class="reference internal" href="../../../exceptions.html">Exception Handling</a></li>
121
+ </ul>
122
+ <p class="caption" role="heading"><span class="caption-text">API Reference:</span></p>
123
+ <ul>
124
+ <li class="toctree-l1"><a class="reference internal" href="../../../api.html">API Reference</a></li>
125
+ <li class="toctree-l1"><a class="reference internal" href="../../../types.html">Type Definitions</a></li>
126
+ <li class="toctree-l1"><a class="reference internal" href="../../../functions.html">Authentication Functions</a></li>
127
+ </ul>
128
+
129
+ </div>
130
+ </div>
131
+ </nav>
132
+
133
+ <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #2980B9" >
134
+ <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
135
+ <a href="../../../index.html">Auth Middleware</a>
136
+ </nav>
137
+
138
+ <div class="wy-nav-content">
139
+ <div class="rst-content">
140
+ <div role="navigation" aria-label="Page navigation">
141
+ <ul class="wy-breadcrumbs">
142
+ <li><a href="../../../index.html" class="icon icon-home" aria-label="Home"></a></li>
143
+ <li class="breadcrumb-item"><a href="../../index.html">Module code</a></li>
144
+ <li class="breadcrumb-item active">auth_middleware.contracts.groups_provider</li>
145
+ <li class="wy-breadcrumbs-aside">
146
+ </li>
147
+ </ul>
148
+ <hr/>
149
+ </div>
150
+ <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
151
+ <div itemprop="articleBody">
152
+
153
+ <h1>Source code for auth_middleware.contracts.groups_provider</h1><div class="highlight"><pre>
154
+ <span></span><span class="kn">from</span><span class="w"> </span><span class="nn">abc</span><span class="w"> </span><span class="kn">import</span> <span class="n">ABCMeta</span><span class="p">,</span> <span class="n">abstractmethod</span>
155
+
156
+ <span class="kn">from</span><span class="w"> </span><span class="nn">auth_middleware.types.jwt</span><span class="w"> </span><span class="kn">import</span> <span class="n">JWTAuthorizationCredentials</span>
157
+
158
+
159
+ <div class="viewcode-block" id="GroupsProvider">
160
+ <a class="viewcode-back" href="../../../groups-provider.html#auth_middleware.contracts.groups_provider.GroupsProvider">[docs]</a>
161
+ <span class="k">class</span><span class="w"> </span><span class="nc">GroupsProvider</span><span class="p">(</span><span class="n">metaclass</span><span class="o">=</span><span class="n">ABCMeta</span><span class="p">):</span>
162
+ <span class="w"> </span><span class="sd">&quot;&quot;&quot;Abstract contract for a groups provider.</span>
163
+
164
+ <span class="sd"> Implementations must return the list of groups the authenticated user</span>
165
+ <span class="sd"> belongs to, given either a raw token string or a parsed</span>
166
+ <span class="sd"> ``JWTAuthorizationCredentials`` object.</span>
167
+ <span class="sd"> &quot;&quot;&quot;</span>
168
+
169
+ <div class="viewcode-block" id="GroupsProvider.fetch_groups">
170
+ <a class="viewcode-back" href="../../../groups-provider.html#auth_middleware.contracts.groups_provider.GroupsProvider.fetch_groups">[docs]</a>
171
+ <span class="nd">@abstractmethod</span>
172
+ <span class="k">async</span> <span class="k">def</span><span class="w"> </span><span class="nf">fetch_groups</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">token</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="n">JWTAuthorizationCredentials</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">[</span><span class="nb">str</span><span class="p">]:</span>
173
+ <span class="w"> </span><span class="sd">&quot;&quot;&quot;Return the groups for the authenticated user.</span>
174
+
175
+ <span class="sd"> Args:</span>
176
+ <span class="sd"> token: The token containing the claims, either as a raw string</span>
177
+ <span class="sd"> or a parsed ``JWTAuthorizationCredentials`` object.</span>
178
+
179
+ <span class="sd"> Returns:</span>
180
+ <span class="sd"> List of group name strings (may be empty).</span>
181
+ <span class="sd"> &quot;&quot;&quot;</span>
182
+ <span class="k">raise</span> <span class="ne">NotImplementedError</span><span class="p">(</span><span class="s2">&quot;This method should be overridden by subclasses&quot;</span><span class="p">)</span></div>
183
+ </div>
184
+
185
+ </pre></div>
186
+
187
+ </div>
188
+ </div>
189
+ <footer>
190
+
191
+ <hr/>
192
+
193
+ <div role="contentinfo">
194
+ <p>&#169; Copyright 2025, impalah.</p>
195
+ </div>
196
+
197
+ Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
198
+ <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
199
+ provided by <a href="https://readthedocs.org">Read the Docs</a>.
200
+
201
+
202
+ </footer>
203
+ </div>
204
+ </div>
205
+ </section>
206
+ </div>
207
+ <script>
208
+ jQuery(function () {
209
+ SphinxRtdTheme.Navigation.enable(true);
210
+ });
211
+ </script>
212
+
213
+ </body>
214
+ </html>