guard-core 2.2.0__tar.gz → 2.2.1__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 (231) hide show
  1. {guard_core-2.2.0/guard_core.egg-info → guard_core-2.2.1}/PKG-INFO +1 -1
  2. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/handlers/redis_handler.py +7 -4
  3. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/handlers/redis_handler.py +7 -4
  4. {guard_core-2.2.0 → guard_core-2.2.1/guard_core.egg-info}/PKG-INFO +1 -1
  5. {guard_core-2.2.0 → guard_core-2.2.1}/pyproject.toml +1 -1
  6. {guard_core-2.2.0 → guard_core-2.2.1}/LICENSE +0 -0
  7. {guard_core-2.2.0 → guard_core-2.2.1}/MANIFEST.in +0 -0
  8. {guard_core-2.2.0 → guard_core-2.2.1}/README.md +0 -0
  9. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/__init__.py +0 -0
  10. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/__init__.py +0 -0
  11. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/behavioral/__init__.py +0 -0
  12. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/behavioral/context.py +0 -0
  13. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/behavioral/processor.py +0 -0
  14. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/bypass/__init__.py +0 -0
  15. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/bypass/context.py +0 -0
  16. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/bypass/handler.py +0 -0
  17. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/__init__.py +0 -0
  18. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/base.py +0 -0
  19. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/helpers.py +0 -0
  20. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/__init__.py +0 -0
  21. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/authentication.py +0 -0
  22. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/cloud_ip_refresh.py +0 -0
  23. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/cloud_provider.py +0 -0
  24. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/custom_request.py +0 -0
  25. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/custom_validators.py +0 -0
  26. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/emergency_mode.py +0 -0
  27. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/https_enforcement.py +0 -0
  28. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/ip_security.py +0 -0
  29. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/rate_limit.py +0 -0
  30. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/referrer.py +0 -0
  31. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/request_logging.py +0 -0
  32. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/request_size_content.py +0 -0
  33. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/required_headers.py +0 -0
  34. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/route_config.py +0 -0
  35. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/suspicious_activity.py +0 -0
  36. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/time_window.py +0 -0
  37. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/implementations/user_agent.py +0 -0
  38. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/checks/pipeline.py +0 -0
  39. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/events/__init__.py +0 -0
  40. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/events/composite_handler.py +0 -0
  41. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/events/enricher.py +0 -0
  42. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/events/event_types.py +0 -0
  43. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/events/logfire_handler.py +0 -0
  44. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/events/metrics.py +0 -0
  45. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/events/middleware_events.py +0 -0
  46. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/events/otel_handler.py +0 -0
  47. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/initialization/__init__.py +0 -0
  48. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/initialization/handler_initializer.py +0 -0
  49. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/responses/__init__.py +0 -0
  50. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/responses/context.py +0 -0
  51. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/responses/factory.py +0 -0
  52. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/routing/__init__.py +0 -0
  53. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/routing/context.py +0 -0
  54. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/routing/resolver.py +0 -0
  55. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/validation/__init__.py +0 -0
  56. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/validation/context.py +0 -0
  57. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/core/validation/validator.py +0 -0
  58. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/decorators/__init__.py +0 -0
  59. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/decorators/access_control.py +0 -0
  60. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/decorators/advanced.py +0 -0
  61. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/decorators/authentication.py +0 -0
  62. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/decorators/base.py +0 -0
  63. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/decorators/behavioral.py +0 -0
  64. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/decorators/content_filtering.py +0 -0
  65. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/decorators/rate_limiting.py +0 -0
  66. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/detection_engine/__init__.py +0 -0
  67. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/detection_engine/compiler.py +0 -0
  68. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/detection_engine/monitor.py +0 -0
  69. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/detection_engine/preprocessor.py +0 -0
  70. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/detection_engine/semantic.py +0 -0
  71. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/detection_result.py +0 -0
  72. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/exceptions.py +0 -0
  73. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/handlers/__init__.py +0 -0
  74. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/handlers/behavior_handler.py +0 -0
  75. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/handlers/cloud_handler.py +0 -0
  76. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/handlers/cloud_ip_stores.py +0 -0
  77. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/handlers/cors_handler.py +0 -0
  78. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/handlers/dynamic_rule_handler.py +0 -0
  79. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/handlers/ipban_handler.py +0 -0
  80. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/handlers/ipinfo_handler.py +0 -0
  81. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/handlers/ratelimit_handler.py +0 -0
  82. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/handlers/security_headers_handler.py +0 -0
  83. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/handlers/suspatterns_handler.py +0 -0
  84. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/models.py +0 -0
  85. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/protocols/__init__.py +0 -0
  86. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/protocols/agent_protocol.py +0 -0
  87. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/protocols/cloud_ip_store_protocol.py +0 -0
  88. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/protocols/geo_ip_protocol.py +0 -0
  89. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/protocols/middleware_protocol.py +0 -0
  90. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/protocols/redis_protocol.py +0 -0
  91. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/protocols/request_protocol.py +0 -0
  92. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/protocols/response_protocol.py +0 -0
  93. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/py.typed +0 -0
  94. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/scripts/__init__.py +0 -0
  95. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/scripts/rate_lua.py +0 -0
  96. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/__init__.py +0 -0
  97. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/__init__.py +0 -0
  98. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/behavioral/__init__.py +0 -0
  99. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/behavioral/context.py +0 -0
  100. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/behavioral/processor.py +0 -0
  101. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/bypass/__init__.py +0 -0
  102. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/bypass/context.py +0 -0
  103. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/bypass/handler.py +0 -0
  104. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/__init__.py +0 -0
  105. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/base.py +0 -0
  106. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/helpers.py +0 -0
  107. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/__init__.py +0 -0
  108. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/authentication.py +0 -0
  109. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/cloud_ip_refresh.py +0 -0
  110. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/cloud_provider.py +0 -0
  111. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/custom_request.py +0 -0
  112. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/custom_validators.py +0 -0
  113. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/emergency_mode.py +0 -0
  114. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/https_enforcement.py +0 -0
  115. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/ip_security.py +0 -0
  116. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/rate_limit.py +0 -0
  117. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/referrer.py +0 -0
  118. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/request_logging.py +0 -0
  119. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/request_size_content.py +0 -0
  120. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/required_headers.py +0 -0
  121. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/route_config.py +0 -0
  122. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/suspicious_activity.py +0 -0
  123. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/time_window.py +0 -0
  124. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/implementations/user_agent.py +0 -0
  125. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/checks/pipeline.py +0 -0
  126. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/events/__init__.py +0 -0
  127. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/events/composite_handler.py +0 -0
  128. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/events/enricher.py +0 -0
  129. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/events/event_types.py +0 -0
  130. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/events/logfire_handler.py +0 -0
  131. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/events/metrics.py +0 -0
  132. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/events/middleware_events.py +0 -0
  133. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/events/otel_handler.py +0 -0
  134. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/initialization/__init__.py +0 -0
  135. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/initialization/handler_initializer.py +0 -0
  136. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/responses/__init__.py +0 -0
  137. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/responses/context.py +0 -0
  138. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/responses/factory.py +0 -0
  139. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/routing/__init__.py +0 -0
  140. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/routing/context.py +0 -0
  141. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/routing/resolver.py +0 -0
  142. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/validation/__init__.py +0 -0
  143. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/validation/context.py +0 -0
  144. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/core/validation/validator.py +0 -0
  145. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/decorators/__init__.py +0 -0
  146. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/decorators/access_control.py +0 -0
  147. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/decorators/advanced.py +0 -0
  148. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/decorators/authentication.py +0 -0
  149. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/decorators/base.py +0 -0
  150. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/decorators/behavioral.py +0 -0
  151. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/decorators/content_filtering.py +0 -0
  152. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/decorators/rate_limiting.py +0 -0
  153. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/detection_engine/__init__.py +0 -0
  154. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/detection_engine/compiler.py +0 -0
  155. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/detection_engine/monitor.py +0 -0
  156. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/detection_engine/preprocessor.py +0 -0
  157. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/detection_engine/semantic.py +0 -0
  158. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/detection_result.py +0 -0
  159. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/handlers/__init__.py +0 -0
  160. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/handlers/behavior_handler.py +0 -0
  161. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/handlers/cloud_handler.py +0 -0
  162. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/handlers/cloud_ip_stores.py +0 -0
  163. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/handlers/cors_handler.py +0 -0
  164. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/handlers/dynamic_rule_handler.py +0 -0
  165. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/handlers/ipban_handler.py +0 -0
  166. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/handlers/ipinfo_handler.py +0 -0
  167. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/handlers/ratelimit_handler.py +0 -0
  168. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/handlers/security_headers_handler.py +0 -0
  169. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/handlers/suspatterns_handler.py +0 -0
  170. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/protocols/__init__.py +0 -0
  171. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/protocols/agent_protocol.py +0 -0
  172. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/protocols/cloud_ip_store_protocol.py +0 -0
  173. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/protocols/geo_ip_protocol.py +0 -0
  174. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/protocols/middleware_protocol.py +0 -0
  175. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/protocols/redis_protocol.py +0 -0
  176. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/protocols/request_protocol.py +0 -0
  177. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/protocols/response_protocol.py +0 -0
  178. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/py.typed +0 -0
  179. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/scripts/__init__.py +0 -0
  180. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/scripts/rate_lua.py +0 -0
  181. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/sync/utils.py +0 -0
  182. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core/utils.py +0 -0
  183. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core.egg-info/SOURCES.txt +0 -0
  184. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core.egg-info/dependency_links.txt +0 -0
  185. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core.egg-info/requires.txt +0 -0
  186. {guard_core-2.2.0 → guard_core-2.2.1}/guard_core.egg-info/top_level.txt +0 -0
  187. {guard_core-2.2.0 → guard_core-2.2.1}/setup.cfg +0 -0
  188. {guard_core-2.2.0 → guard_core-2.2.1}/setup.py +0 -0
  189. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_behavior_rule_ban_duration.py +0 -0
  190. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_check_log_muting.py +0 -0
  191. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_cloud_ip_refresh_on_demand.py +0 -0
  192. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_cloud_ip_stores.py +0 -0
  193. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_compiler_cache.py +0 -0
  194. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_composite_enricher.py +0 -0
  195. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_composite_handler.py +0 -0
  196. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_composite_handler_extra.py +0 -0
  197. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_cors_handler.py +0 -0
  198. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_detection_categories.py +0 -0
  199. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_detection_exclusion_integration.py +0 -0
  200. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_detection_result.py +0 -0
  201. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_detection_result_propagation.py +0 -0
  202. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_dynamic_rule_atomicity.py +0 -0
  203. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_enricher.py +0 -0
  204. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_enricher_behavior_correlation.py +0 -0
  205. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_enricher_end_to_end.py +0 -0
  206. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_enricher_identity.py +0 -0
  207. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_enricher_logfire_integration.py +0 -0
  208. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_enricher_otel_integration.py +0 -0
  209. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_enricher_rule_correlation.py +0 -0
  210. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_enricher_threat_score.py +0 -0
  211. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_event_bus_filtering.py +0 -0
  212. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_event_types.py +0 -0
  213. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_handler_edge_cases.py +0 -0
  214. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_handler_initializer.py +0 -0
  215. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_handler_initializer_enricher.py +0 -0
  216. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_handler_initializer_factories.py +0 -0
  217. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_handler_initializer_lazy_init.py +0 -0
  218. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_handlers_integration.py +0 -0
  219. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_ipban_cidr.py +0 -0
  220. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_ipban_ttl.py +0 -0
  221. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_ipinfo_lifecycle.py +0 -0
  222. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_logfire_handler.py +0 -0
  223. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_logfire_handler_metric.py +0 -0
  224. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_otel_handler.py +0 -0
  225. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_otel_handler_resource_attrs.py +0 -0
  226. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_pipeline_fail_secure.py +0 -0
  227. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_preprocessor_attack_regions.py +0 -0
  228. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_preprocessor_encodings.py +0 -0
  229. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_suspicious_counts_per_type.py +0 -0
  230. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_telemetry_integration.py +0 -0
  231. {guard_core-2.2.0 → guard_core-2.2.1}/tests/test_threat_ban_config.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: guard-core
3
- Version: 2.2.0
3
+ Version: 2.2.1
4
4
  Summary: Framework-agnostic security engine for the Guard ecosystem.
5
5
  Author-email: Renzo Franceschini <rennf93@users.noreply.github.com>
6
6
  License: MIT
@@ -22,11 +22,12 @@ class RedisManager:
22
22
  agent_handler: Any = None
23
23
 
24
24
  def __new__(cls: type["RedisManager"], config: SecurityConfig) -> "RedisManager":
25
- cls._instance = super().__new__(cls)
25
+ if cls._instance is None:
26
+ cls._instance = super().__new__(cls)
27
+ cls._instance.logger = logging.getLogger("guard_core.handlers.redis")
28
+ cls._instance.agent_handler = None
26
29
  cls._instance.config = config
27
- cls._instance.logger = logging.getLogger("guard_core.handlers.redis")
28
30
  cls._instance._closed = False
29
- cls._instance.agent_handler = None
30
31
  return cls._instance
31
32
 
32
33
  async def initialize_agent(self, agent_handler: Any) -> None:
@@ -54,10 +55,12 @@ class RedisManager:
54
55
  self.logger.error(f"Failed to send Redis event to agent: {e}")
55
56
 
56
57
  async def initialize(self) -> None:
57
- if self._closed or not self.config.enable_redis:
58
+ if not self.config.enable_redis:
58
59
  self._redis = None
59
60
  return
60
61
 
62
+ self._closed = False
63
+
61
64
  async with self._connection_lock:
62
65
  try:
63
66
  if self.config.redis_url is not None:
@@ -22,11 +22,12 @@ class RedisManager:
22
22
  agent_handler: Any = None
23
23
 
24
24
  def __new__(cls: type["RedisManager"], config: SecurityConfig) -> "RedisManager":
25
- cls._instance = super().__new__(cls)
25
+ if cls._instance is None:
26
+ cls._instance = super().__new__(cls)
27
+ cls._instance.logger = logging.getLogger("guard_core.sync.handlers.redis")
28
+ cls._instance.agent_handler = None
26
29
  cls._instance.config = config
27
- cls._instance.logger = logging.getLogger("guard_core.sync.handlers.redis")
28
30
  cls._instance._closed = False
29
- cls._instance.agent_handler = None
30
31
  return cls._instance
31
32
 
32
33
  def initialize_agent(self, agent_handler: Any) -> None:
@@ -54,10 +55,12 @@ class RedisManager:
54
55
  self.logger.error(f"Failed to send Redis event to agent: {e}")
55
56
 
56
57
  def initialize(self) -> None:
57
- if self._closed or not self.config.enable_redis:
58
+ if not self.config.enable_redis:
58
59
  self._redis = None
59
60
  return
60
61
 
62
+ self._closed = False
63
+
61
64
  with self._connection_lock:
62
65
  try:
63
66
  if self.config.redis_url is not None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: guard-core
3
- Version: 2.2.0
3
+ Version: 2.2.1
4
4
  Summary: Framework-agnostic security engine for the Guard ecosystem.
5
5
  Author-email: Renzo Franceschini <rennf93@users.noreply.github.com>
6
6
  License: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "guard-core"
3
- version = "2.2.0"
3
+ version = "2.2.1"
4
4
  description = "Framework-agnostic security engine for the Guard ecosystem."
5
5
  authors = [
6
6
  {name = "Renzo Franceschini", email = "rennf93@users.noreply.github.com"}
File without changes
File without changes
File without changes
File without changes
File without changes