imbi-api 2.11.0__tar.gz → 2.11.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 (301) hide show
  1. {imbi_api-2.11.0 → imbi_api-2.11.2}/PKG-INFO +2 -2
  2. {imbi_api-2.11.0 → imbi_api-2.11.2}/pyproject.toml +2 -2
  3. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/events.py +3 -6
  4. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_events.py +4 -7
  5. {imbi_api-2.11.0 → imbi_api-2.11.2}/uv.lock +23 -23
  6. {imbi_api-2.11.0 → imbi_api-2.11.2}/.github/workflows/deploy.yaml +0 -0
  7. {imbi_api-2.11.0 → imbi_api-2.11.2}/.github/workflows/docs.yaml +0 -0
  8. {imbi_api-2.11.0 → imbi_api-2.11.2}/.github/workflows/testing.yaml +0 -0
  9. {imbi_api-2.11.0 → imbi_api-2.11.2}/.gitignore +0 -0
  10. {imbi_api-2.11.0 → imbi_api-2.11.2}/.pre-commit-config.yaml +0 -0
  11. {imbi_api-2.11.0 → imbi_api-2.11.2}/.python-version +0 -0
  12. {imbi_api-2.11.0 → imbi_api-2.11.2}/CLAUDE.md +0 -0
  13. {imbi_api-2.11.0 → imbi_api-2.11.2}/CODE_REVIEW_PUNCHLIST.md +0 -0
  14. {imbi_api-2.11.0 → imbi_api-2.11.2}/LICENSE +0 -0
  15. {imbi_api-2.11.0 → imbi_api-2.11.2}/README.md +0 -0
  16. {imbi_api-2.11.0 → imbi_api-2.11.2}/coderabbit.yaml +0 -0
  17. {imbi_api-2.11.0 → imbi_api-2.11.2}/compose.yaml +0 -0
  18. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/adr/0001-record-architecture-decisions.md +0 -0
  19. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/adr/0002-authentication-and-authorization-architecture.md +0 -0
  20. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/adr/0003-email-sending-architecture.md +0 -0
  21. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/adr/0004-phase-5-authentication-enhancements.md +0 -0
  22. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/adr/0005-file-upload-storage-architecture.md +0 -0
  23. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/adr/0006-project-identity-and-multi-type.md +0 -0
  24. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/adr/0007-relationship-blueprints.md +0 -0
  25. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/adr/0008-plugin-system-architecture.md +0 -0
  26. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/adr/0009-database-driven-oauth-providers.md +0 -0
  27. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/adr/0010-identity-plugin-architecture.md +0 -0
  28. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/adr/0011-graph-based-project-scoring.md +0 -0
  29. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/adr/0012-plugin-manifest-service-template.md +0 -0
  30. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/adr/0013-deployment-plugin-type.md +0 -0
  31. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/adr/0014-generic-plugin-entity-abstraction.md +0 -0
  32. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/adr/0015-cyclonedx-1.7-sbom-standard.md +0 -0
  33. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/adr.md +0 -0
  34. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/configuration.md +0 -0
  35. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/index.md +0 -0
  36. {imbi_api-2.11.0 → imbi_api-2.11.2}/docs/restore-backup.md +0 -0
  37. {imbi_api-2.11.0 → imbi_api-2.11.2}/justfile +0 -0
  38. {imbi_api-2.11.0 → imbi_api-2.11.2}/mkdocs.yml +0 -0
  39. {imbi_api-2.11.0 → imbi_api-2.11.2}/mypy.ini +0 -0
  40. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/__init__.py +0 -0
  41. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/app.py +0 -0
  42. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/auth/__init__.py +0 -0
  43. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/auth/authorization_codes.py +0 -0
  44. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/auth/local_auth.py +0 -0
  45. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/auth/login_providers.py +0 -0
  46. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/auth/membership.py +0 -0
  47. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/auth/models.py +0 -0
  48. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/auth/oauth.py +0 -0
  49. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/auth/oauth_clients.py +0 -0
  50. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/auth/password.py +0 -0
  51. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/auth/permissions.py +0 -0
  52. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/auth/seed.py +0 -0
  53. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/auth/sessions.py +0 -0
  54. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/auth/tokens.py +0 -0
  55. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/auth/totp.py +0 -0
  56. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/backfill_embeddings.py +0 -0
  57. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/blueprint_attributes.py +0 -0
  58. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/commit_sync/__init__.py +0 -0
  59. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/commit_sync/queue.py +0 -0
  60. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/commit_sync/service.py +0 -0
  61. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/domain/__init__.py +0 -0
  62. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/domain/models.py +0 -0
  63. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/domain/scoring.py +0 -0
  64. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/email/__init__.py +0 -0
  65. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/email/client.py +0 -0
  66. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/email/dependencies.py +0 -0
  67. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/email/models.py +0 -0
  68. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/email/templates/base.html +0 -0
  69. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/email/templates/base.txt +0 -0
  70. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/email/templates/password_reset.html +0 -0
  71. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/email/templates/password_reset.txt +0 -0
  72. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/email/templates/welcome.html +0 -0
  73. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/email/templates/welcome.txt +0 -0
  74. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/email/templates.py +0 -0
  75. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/__init__.py +0 -0
  76. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/_credentials.py +0 -0
  77. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/_helpers.py +0 -0
  78. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/_json_fields.py +0 -0
  79. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/_pagination.py +0 -0
  80. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/_request_urls.py +0 -0
  81. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/admin.py +0 -0
  82. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/admin_plugins.py +0 -0
  83. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/api_keys.py +0 -0
  84. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/auth.py +0 -0
  85. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/auth_providers.py +0 -0
  86. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/blueprints.py +0 -0
  87. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/client_credentials.py +0 -0
  88. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/comments.py +0 -0
  89. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/dashboard.py +0 -0
  90. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/document_templates.py +0 -0
  91. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/documents.py +0 -0
  92. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/environments.py +0 -0
  93. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/graph_query.py +0 -0
  94. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/identity_plugins.py +0 -0
  95. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/link_definitions.py +0 -0
  96. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/local_auth.py +0 -0
  97. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/mcp_servers.py +0 -0
  98. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/mfa.py +0 -0
  99. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/oauth_metadata.py +0 -0
  100. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/operations_log.py +0 -0
  101. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/organizations.py +0 -0
  102. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/plugin_edges.py +0 -0
  103. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/plugin_entities.py +0 -0
  104. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/plugins.py +0 -0
  105. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/project_analysis.py +0 -0
  106. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/project_commit_sync.py +0 -0
  107. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/project_configuration.py +0 -0
  108. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/project_deployments.py +0 -0
  109. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/project_incidents.py +0 -0
  110. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/project_lifecycle.py +0 -0
  111. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/project_logs.py +0 -0
  112. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/project_plugins.py +0 -0
  113. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/project_type_plugins.py +0 -0
  114. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/project_types.py +0 -0
  115. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/projects.py +0 -0
  116. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/pull_requests.py +0 -0
  117. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/releases.py +0 -0
  118. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/roles.py +0 -0
  119. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/sa_api_keys.py +0 -0
  120. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/scoring.py +0 -0
  121. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/scoring_policies.py +0 -0
  122. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/search.py +0 -0
  123. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/service_accounts.py +0 -0
  124. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/service_plugins.py +0 -0
  125. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/status.py +0 -0
  126. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/tags.py +0 -0
  127. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/teams.py +0 -0
  128. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/third_party_services.py +0 -0
  129. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/uploads.py +0 -0
  130. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/user_activity.py +0 -0
  131. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/users.py +0 -0
  132. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/endpoints/webhooks.py +0 -0
  133. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/entrypoint.py +0 -0
  134. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/graph_sql.py +0 -0
  135. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/identity/__init__.py +0 -0
  136. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/identity/attribution.py +0 -0
  137. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/identity/endpoints.py +0 -0
  138. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/identity/errors.py +0 -0
  139. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/identity/flows.py +0 -0
  140. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/identity/host_integration.py +0 -0
  141. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/identity/models.py +0 -0
  142. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/identity/repository.py +0 -0
  143. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/identity/resolution.py +0 -0
  144. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/identity/state.py +0 -0
  145. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/identity/sweeper.py +0 -0
  146. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/lifespans.py +0 -0
  147. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/llm/__init__.py +0 -0
  148. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/llm/dependencies.py +0 -0
  149. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/mcp_test.py +0 -0
  150. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/middleware/__init__.py +0 -0
  151. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/middleware/rate_limit.py +0 -0
  152. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/models.py +0 -0
  153. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/openapi.py +0 -0
  154. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/patch.py +0 -0
  155. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/plugins/__init__.py +0 -0
  156. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/plugins/assignment_writer.py +0 -0
  157. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/plugins/assignments.py +0 -0
  158. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/plugins/credentials.py +0 -0
  159. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/plugins/installer.py +0 -0
  160. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/plugins/lifecycle.py +0 -0
  161. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/plugins/lifecycle_dispatch.py +0 -0
  162. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/plugins/reload.py +0 -0
  163. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/plugins/resolution.py +0 -0
  164. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/plugins/schemas.py +0 -0
  165. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/prompts/__init__.py +0 -0
  166. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/prompts/release_notes_system.md +0 -0
  167. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/py.typed +0 -0
  168. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/relationships.py +0 -0
  169. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/sbom.py +0 -0
  170. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/scoring/__init__.py +0 -0
  171. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/scoring/queue.py +0 -0
  172. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/settings.py +0 -0
  173. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/storage/__init__.py +0 -0
  174. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/storage/client.py +0 -0
  175. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/storage/dependencies.py +0 -0
  176. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/storage/thumbnails.py +0 -0
  177. {imbi_api-2.11.0 → imbi_api-2.11.2}/src/imbi_api/storage/validation.py +0 -0
  178. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/__init__.py +0 -0
  179. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/auth/__init__.py +0 -0
  180. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/auth/test_api_key_auth.py +0 -0
  181. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/auth/test_authentication.py +0 -0
  182. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/auth/test_authorization.py +0 -0
  183. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/auth/test_encryption.py +0 -0
  184. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/auth/test_login_providers.py +0 -0
  185. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/auth/test_membership.py +0 -0
  186. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/auth/test_oauth.py +0 -0
  187. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/auth/test_oauth_server.py +0 -0
  188. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/auth/test_permissions.py +0 -0
  189. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/auth/test_seed.py +0 -0
  190. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/auth/test_sessions.py +0 -0
  191. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/auth/test_totp.py +0 -0
  192. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/clickhouse/__init__.py +0 -0
  193. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/clickhouse/test_client.py +0 -0
  194. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/clickhouse/test_init.py +0 -0
  195. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/clickhouse/test_privacy.py +0 -0
  196. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/email/__init__.py +0 -0
  197. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/email/test_client.py +0 -0
  198. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/email/test_init.py +0 -0
  199. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/email/test_integration.py +0 -0
  200. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/email/test_models.py +0 -0
  201. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/email/test_templates.py +0 -0
  202. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/__init__.py +0 -0
  203. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_admin.py +0 -0
  204. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_admin_plugins.py +0 -0
  205. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_api_keys.py +0 -0
  206. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_auth.py +0 -0
  207. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_auth_providers.py +0 -0
  208. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_blueprints.py +0 -0
  209. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_client_credentials.py +0 -0
  210. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_comments.py +0 -0
  211. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_credentials.py +0 -0
  212. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_dashboard.py +0 -0
  213. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_document_templates.py +0 -0
  214. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_documents.py +0 -0
  215. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_environments.py +0 -0
  216. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_graph_query.py +0 -0
  217. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_init.py +0 -0
  218. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_json_fields.py +0 -0
  219. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_link_definitions.py +0 -0
  220. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_local_auth.py +0 -0
  221. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_mcp_servers.py +0 -0
  222. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_mfa.py +0 -0
  223. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_operations_log.py +0 -0
  224. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_organizations.py +0 -0
  225. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_pagination.py +0 -0
  226. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_plugin_label_validation.py +0 -0
  227. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_plugins.py +0 -0
  228. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_project_analysis.py +0 -0
  229. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_project_commit_sync.py +0 -0
  230. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_project_configuration.py +0 -0
  231. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_project_deployments.py +0 -0
  232. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_project_incidents.py +0 -0
  233. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_project_lifecycle.py +0 -0
  234. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_project_logs.py +0 -0
  235. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_project_plugins.py +0 -0
  236. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_project_response_surfacing.py +0 -0
  237. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_project_type_plugins.py +0 -0
  238. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_project_types.py +0 -0
  239. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_projects.py +0 -0
  240. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_projects_helpers.py +0 -0
  241. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_pull_requests.py +0 -0
  242. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_releases.py +0 -0
  243. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_request_urls.py +0 -0
  244. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_roles.py +0 -0
  245. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_sa_api_keys.py +0 -0
  246. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_scoring.py +0 -0
  247. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_scoring_policies.py +0 -0
  248. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_search.py +0 -0
  249. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_service_accounts.py +0 -0
  250. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_service_plugins.py +0 -0
  251. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_service_writeback.py +0 -0
  252. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_status.py +0 -0
  253. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_tags.py +0 -0
  254. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_teams.py +0 -0
  255. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_third_party_services.py +0 -0
  256. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_uploads.py +0 -0
  257. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_user_activity.py +0 -0
  258. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_users.py +0 -0
  259. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/endpoints/test_webhooks.py +0 -0
  260. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/fixtures/sbom/npm-realistic.json +0 -0
  261. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/fixtures/sbom/pypi-realistic.json +0 -0
  262. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/fixtures/sbom/tiny.json +0 -0
  263. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/identity/__init__.py +0 -0
  264. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/identity/test_endpoints.py +0 -0
  265. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/identity/test_errors.py +0 -0
  266. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/identity/test_flows.py +0 -0
  267. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/identity/test_host_integration.py +0 -0
  268. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/identity/test_repository.py +0 -0
  269. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/identity/test_resolution.py +0 -0
  270. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/identity/test_state.py +0 -0
  271. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/identity/test_sweeper.py +0 -0
  272. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/middleware/test_rate_limit.py +0 -0
  273. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/storage/__init__.py +0 -0
  274. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/storage/test_client.py +0 -0
  275. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/storage/test_init.py +0 -0
  276. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/storage/test_thumbnails.py +0 -0
  277. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/storage/test_validation.py +0 -0
  278. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/support.py +0 -0
  279. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_app.py +0 -0
  280. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_assignment_writer.py +0 -0
  281. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_backfill_embeddings.py +0 -0
  282. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_blueprint_attributes.py +0 -0
  283. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_blueprints.py +0 -0
  284. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_commit_sync_queue.py +0 -0
  285. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_commit_sync_service.py +0 -0
  286. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_entrypoint.py +0 -0
  287. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_graph_sql.py +0 -0
  288. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_identity_attribution.py +0 -0
  289. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_init.py +0 -0
  290. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_installer.py +0 -0
  291. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_lifecycle_dispatch.py +0 -0
  292. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_lifespans.py +0 -0
  293. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_models.py +0 -0
  294. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_openapi.py +0 -0
  295. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_patch.py +0 -0
  296. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_plugin_schemas.py +0 -0
  297. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_plugins.py +0 -0
  298. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_sbom.py +0 -0
  299. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_scoring_queue.py +0 -0
  300. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_scoring_triggers.py +0 -0
  301. {imbi_api-2.11.0 → imbi_api-2.11.2}/tests/test_settings.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: imbi-api
3
- Version: 2.11.0
3
+ Version: 2.11.2
4
4
  Summary: Imbi is a DevOps Service Management Platform designed to provide an efficient way to manage a large environment that contains many services and applications.
5
5
  Author-email: Alex Campbell <alexc@aweber.com>, Dave Shawley <daves@aweber.com>, "Gavin M. Roy" <gavinr@aweber.com>
6
6
  License: BSD-3-Clause
@@ -20,7 +20,7 @@ Requires-Dist: cyclonedx-python-lib<12,>=11.7
20
20
  Requires-Dist: fastapi
21
21
  Requires-Dist: filetype
22
22
  Requires-Dist: httpx<1,>=0.28.1
23
- Requires-Dist: imbi-common[databases,llm,sentry,server]==2.11.0
23
+ Requires-Dist: imbi-common[databases,llm,sentry,server]==2.11.2
24
24
  Requires-Dist: jinja2
25
25
  Requires-Dist: jsonpatch>=1.33
26
26
  Requires-Dist: mcp>=1.26.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "imbi-api"
3
- version = "2.11.0"
3
+ version = "2.11.2"
4
4
  description = "Imbi is a DevOps Service Management Platform designed to provide an efficient way to manage a large environment that contains many services and applications."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.14"
@@ -28,7 +28,7 @@ dependencies = [
28
28
  "fastapi",
29
29
  "filetype",
30
30
  "httpx>=0.28.1,<1",
31
- "imbi-common[databases,llm,sentry,server]==2.11.0",
31
+ "imbi-common[databases,llm,sentry,server]==2.11.2",
32
32
  "jinja2",
33
33
  "jsonpatch>=1.33",
34
34
  "mcp>=1.26.0",
@@ -190,10 +190,7 @@ async def _list_impl(
190
190
  where = ' AND '.join(clauses) if clauses else '1=1'
191
191
  params['row_limit'] = limit + 1
192
192
  sql: str = (
193
- # ``events_latest`` is a view over ``events`` that collapses the
194
- # phase-1 / phase-2 disposition writes from imbi-gateway to one
195
- # row per id (highest ``version`` wins).
196
- f'SELECT {_SELECT_COLUMNS} FROM events_latest WHERE ' # noqa: S608
193
+ f'SELECT {_SELECT_COLUMNS} FROM events WHERE ' # noqa: S608
197
194
  + where
198
195
  + ' ORDER BY recorded_at DESC, id DESC LIMIT {row_limit:UInt32}'
199
196
  )
@@ -267,14 +264,14 @@ async def get_event(
267
264
  ),
268
265
  ],
269
266
  ) -> fastapi.Response:
270
- """Fetch a single event by id, coalesced through ``events_latest``.
267
+ """Fetch a single event by id.
271
268
 
272
269
  Powers the webhook-history deep-link landing in the admin UI:
273
270
  visiting a shared event URL must work even when the event has
274
271
  aged past the default cursor page.
275
272
  """
276
273
  rows = await clickhouse.query(
277
- f'SELECT {_SELECT_COLUMNS} FROM events_latest ' # noqa: S608
274
+ f'SELECT {_SELECT_COLUMNS} FROM events ' # noqa: S608
278
275
  'WHERE id = {event_id:String}',
279
276
  {'event_id': event_id},
280
277
  )
@@ -260,15 +260,12 @@ class GlobalListTests(_EventsTestBase):
260
260
  self.assertEqual(params['event_type'], 'pull_request')
261
261
  self.assertIn('metadata.event_type', sql)
262
262
 
263
- def test_list_reads_through_events_latest_view(self) -> None:
264
- """Coalesced read: queries go through the events_latest view so
265
- the phase-1 / phase-2 disposition writes from imbi-gateway are
266
- collapsed to one row per id."""
263
+ def test_list_reads_from_events_table(self) -> None:
267
264
  self.mock_query.return_value = []
268
265
  response = self.client.get('/events/')
269
266
  self.assertEqual(response.status_code, 200)
270
267
  sql = self.mock_query.await_args.args[0]
271
- self.assertIn('FROM events_latest', sql)
268
+ self.assertIn('FROM events', sql)
272
269
 
273
270
  def test_list_with_since_until(self) -> None:
274
271
  self.mock_query.return_value = []
@@ -366,12 +363,12 @@ class GetEventByIdTests(_EventsTestBase):
366
363
  body = response.json()
367
364
  self.assertEqual(body['id'], 'evt-deep-link')
368
365
 
369
- def test_reads_through_events_latest_view(self) -> None:
366
+ def test_reads_from_events_table(self) -> None:
370
367
  self.mock_query.return_value = [_row(entry_id='evt-1')]
371
368
  response = self.client.get('/events/evt-1')
372
369
  self.assertEqual(response.status_code, 200)
373
370
  sql = self.mock_query.await_args.args[0]
374
- self.assertIn('FROM events_latest', sql)
371
+ self.assertIn('FROM events', sql)
375
372
  params = self.mock_query.await_args.args[1]
376
373
  self.assertEqual(params['event_id'], 'evt-1')
377
374
 
@@ -1016,7 +1016,7 @@ wheels = [
1016
1016
 
1017
1017
  [[package]]
1018
1018
  name = "imbi-api"
1019
- version = "2.11.0"
1019
+ version = "2.11.2"
1020
1020
  source = { editable = "." }
1021
1021
  dependencies = [
1022
1022
  { name = "aioboto3" },
@@ -1096,7 +1096,7 @@ requires-dist = [
1096
1096
  { name = "fastapi" },
1097
1097
  { name = "filetype" },
1098
1098
  { name = "httpx", specifier = ">=0.28.1,<1" },
1099
- { name = "imbi-common", extras = ["databases", "llm", "sentry", "server"], specifier = "==2.11.0" },
1099
+ { name = "imbi-common", extras = ["databases", "llm", "sentry", "server"], specifier = "==2.11.2" },
1100
1100
  { name = "imbi-plugin-aws", marker = "extra == 'plugins'", specifier = ">=2.1.0" },
1101
1101
  { name = "imbi-plugin-github", marker = "extra == 'plugins'", specifier = ">=2.1.0" },
1102
1102
  { name = "imbi-plugin-logzio", marker = "extra == 'plugins'", specifier = ">=2.1.0" },
@@ -1150,7 +1150,7 @@ docs = [
1150
1150
 
1151
1151
  [[package]]
1152
1152
  name = "imbi-common"
1153
- version = "2.11.0"
1153
+ version = "2.11.2"
1154
1154
  source = { registry = "https://pypi.org/simple" }
1155
1155
  dependencies = [
1156
1156
  { name = "cryptography" },
@@ -1166,9 +1166,9 @@ dependencies = [
1166
1166
  { name = "python-slugify" },
1167
1167
  { name = "typer" },
1168
1168
  ]
1169
- sdist = { url = "https://files.pythonhosted.org/packages/82/02/30fe936f86936763fd0460c0bf7a8602029ee32de76052063f1322eb54cb/imbi_common-2.11.0.tar.gz", hash = "sha256:fd9126d2ae80fed72902bdcd280a17f992eff6bb80caad7f8979cc07f17ce946", size = 350702, upload-time = "2026-06-11T17:39:16.348Z" }
1169
+ sdist = { url = "https://files.pythonhosted.org/packages/6b/96/5955df3e9f6cdd02bda24b151b077a348dbc815aa0913de5697df6382130/imbi_common-2.11.2.tar.gz", hash = "sha256:42ddb07837b77062339cdc8179c5afacd2e26e10b34a06092bc346926859501b", size = 350411, upload-time = "2026-06-11T19:19:07.176Z" }
1170
1170
  wheels = [
1171
- { url = "https://files.pythonhosted.org/packages/b4/5d/6adecad7cf2fa1fa0f35e7ca37352f05d504824ba785f6775750f3e442fc/imbi_common-2.11.0-py3-none-any.whl", hash = "sha256:8ca15781dc0285ce412b9158f0162739a9ae82229b193ccf473b01e62688c923", size = 113762, upload-time = "2026-06-11T17:39:14.999Z" },
1171
+ { url = "https://files.pythonhosted.org/packages/a2/93/6ed88ea941cb1323cef8455cb9c3d7756dd84d53575adbd4ef10126eb71b/imbi_common-2.11.2-py3-none-any.whl", hash = "sha256:41a2c0b76f44daf663ce3bf273d3144520f1389144978b17a92d8440aba642a9", size = 113458, upload-time = "2026-06-11T19:19:05.927Z" },
1172
1172
  ]
1173
1173
 
1174
1174
  [package.optional-dependencies]
@@ -1192,21 +1192,21 @@ server = [
1192
1192
 
1193
1193
  [[package]]
1194
1194
  name = "imbi-plugin-aws"
1195
- version = "2.11.0"
1195
+ version = "2.11.2"
1196
1196
  source = { registry = "https://pypi.org/simple" }
1197
1197
  dependencies = [
1198
1198
  { name = "httpx" },
1199
1199
  { name = "imbi-common" },
1200
1200
  { name = "pydantic" },
1201
1201
  ]
1202
- sdist = { url = "https://files.pythonhosted.org/packages/88/7f/800fc1d3a3edff734e24756072ec9490b0fca617d3a6af347740ba6b9b96/imbi_plugin_aws-2.11.0.tar.gz", hash = "sha256:5f19e5b884da99a5d479df4865fcd5dc54d710f966998aceb16f57644cc6af1e", size = 153374, upload-time = "2026-06-11T17:46:16.955Z" }
1202
+ sdist = { url = "https://files.pythonhosted.org/packages/df/82/d7d8e97102abe30dea982329d87d37731217a527cf02813d81fafea1c29d/imbi_plugin_aws-2.11.2.tar.gz", hash = "sha256:2a838047635c206b00d8090e46a263c39ad6487b381e6efb622e5e18ee365afa", size = 153374, upload-time = "2026-06-11T19:24:00.985Z" }
1203
1203
  wheels = [
1204
- { url = "https://files.pythonhosted.org/packages/6b/c1/dd876ecaaa2bfae69ed8a1136aba1673e0e8bed7a236d97aa81394423119/imbi_plugin_aws-2.11.0-py3-none-any.whl", hash = "sha256:2f41c920b485ae2a1048052f333eaf49a859bc5eeca112826ec10e9596253a45", size = 36826, upload-time = "2026-06-11T17:46:15.891Z" },
1204
+ { url = "https://files.pythonhosted.org/packages/72/78/9c3b5e936334b7f068bb1ffb5511def042cb00ee377f42fc1dd91e58782d/imbi_plugin_aws-2.11.2-py3-none-any.whl", hash = "sha256:7a8cd640a58914a9660ea08c75ea8794f17a3f7b46427adfdbdb2a956a4c4033", size = 36827, upload-time = "2026-06-11T19:23:59.864Z" },
1205
1205
  ]
1206
1206
 
1207
1207
  [[package]]
1208
1208
  name = "imbi-plugin-github"
1209
- version = "2.11.0"
1209
+ version = "2.11.2"
1210
1210
  source = { registry = "https://pypi.org/simple" }
1211
1211
  dependencies = [
1212
1212
  { name = "httpx" },
@@ -1214,65 +1214,65 @@ dependencies = [
1214
1214
  { name = "pydantic" },
1215
1215
  { name = "pyjwt", extra = ["crypto"] },
1216
1216
  ]
1217
- sdist = { url = "https://files.pythonhosted.org/packages/8f/0c/6a13a11d1c39b3c5fa32b5fddc34c6a83589875b21542abcc38ac71439b1/imbi_plugin_github-2.11.0.tar.gz", hash = "sha256:c0bef14f910a2cb754829a43df95b138ec6e4f654e6df2784624384fda5f1a88", size = 166339, upload-time = "2026-06-11T17:48:13.602Z" }
1217
+ sdist = { url = "https://files.pythonhosted.org/packages/01/ad/c5e35af877a21821b8dc8c5da1ca2fec853709461d1a4e937e75fb980654/imbi_plugin_github-2.11.2.tar.gz", hash = "sha256:ced4d6cc9c2b2d3222ae795b21d8a39437adb716acab2bebc32942d397dd8526", size = 166342, upload-time = "2026-06-11T19:24:00.474Z" }
1218
1218
  wheels = [
1219
- { url = "https://files.pythonhosted.org/packages/17/8b/85e41e8cb9934d69a21ed4c003dd1c906f24858e33572f096eb1e1abcbd8/imbi_plugin_github-2.11.0-py3-none-any.whl", hash = "sha256:3b168f3d547e318d5d286067d01eb35764835dc6723fa6f76d15835482d06a50", size = 49847, upload-time = "2026-06-11T17:48:12.369Z" },
1219
+ { url = "https://files.pythonhosted.org/packages/cf/20/9a4a03f4316240d7e7c489a1d187116cbe0d4fc5cc0cbbb31e61cc3962b1/imbi_plugin_github-2.11.2-py3-none-any.whl", hash = "sha256:6502fdec5233473d92f1293d81dcfe9ae83eb966de7e6a06f900124c4cb6f410", size = 49847, upload-time = "2026-06-11T19:23:59.203Z" },
1220
1220
  ]
1221
1221
 
1222
1222
  [[package]]
1223
1223
  name = "imbi-plugin-logzio"
1224
- version = "2.11.0"
1224
+ version = "2.11.2"
1225
1225
  source = { registry = "https://pypi.org/simple" }
1226
1226
  dependencies = [
1227
1227
  { name = "httpx" },
1228
1228
  { name = "imbi-common" },
1229
1229
  { name = "pydantic" },
1230
1230
  ]
1231
- sdist = { url = "https://files.pythonhosted.org/packages/76/46/884cff24c3f03b84cbd54945d7881ef61729dcc834a64ae07a7d797b65cc/imbi_plugin_logzio-2.11.0.tar.gz", hash = "sha256:ac5701b0bb7086e48514329225d1f1b87765c31502a7cda320e42e75ee081d82", size = 110374, upload-time = "2026-06-11T17:46:25.797Z" }
1231
+ sdist = { url = "https://files.pythonhosted.org/packages/41/4b/d3979db1423d5c8d06268d184059aa6f8c3c2831ee48de8910ed9245aaca/imbi_plugin_logzio-2.11.2.tar.gz", hash = "sha256:ddfe0533c70add7ba0a87cbb335bc731dc24b9289ea90604da69f46464f685e2", size = 110381, upload-time = "2026-06-11T19:24:07.586Z" }
1232
1232
  wheels = [
1233
- { url = "https://files.pythonhosted.org/packages/94/f6/412eff33e3a460e8c5092bff401a1c7c5c2f8b99db54861ee8866c1eed47/imbi_plugin_logzio-2.11.0-py3-none-any.whl", hash = "sha256:58bf6213b47837c7d7645b9f760cce37a5e3a34697b7cfe7f4616a53f0b5b344", size = 11979, upload-time = "2026-06-11T17:46:24.797Z" },
1233
+ { url = "https://files.pythonhosted.org/packages/5b/fe/64d2fa57af7c34dc9d4a1dbed7af2fc591ffb1ed001fc4fbde3be75812a4/imbi_plugin_logzio-2.11.2-py3-none-any.whl", hash = "sha256:f54076d08a382467db38dad6d30acc5e9092405e39a6f4ecd880722e3157d833", size = 11980, upload-time = "2026-06-11T19:24:06.15Z" },
1234
1234
  ]
1235
1235
 
1236
1236
  [[package]]
1237
1237
  name = "imbi-plugin-oidc"
1238
- version = "2.11.0"
1238
+ version = "2.11.2"
1239
1239
  source = { registry = "https://pypi.org/simple" }
1240
1240
  dependencies = [
1241
1241
  { name = "httpx" },
1242
1242
  { name = "imbi-common" },
1243
1243
  { name = "pydantic" },
1244
1244
  ]
1245
- sdist = { url = "https://files.pythonhosted.org/packages/58/e9/cad28da839116677740c55c39d2a2b398e28797f5fe5ca87aaf7d363eb1f/imbi_plugin_oidc-2.11.0.tar.gz", hash = "sha256:694edb0f05739af8ca1e1b68e53b744e9d2dcafdc31d61139a14f33b326ac803", size = 99563, upload-time = "2026-06-11T17:46:36.045Z" }
1245
+ sdist = { url = "https://files.pythonhosted.org/packages/ae/ae/75de9b842e5a0d1bc15f5c2fe7037251865426a353b71891ca74d5048ecb/imbi_plugin_oidc-2.11.2.tar.gz", hash = "sha256:35bb7b1549755e8913efc210482e009800809f92e8b77d05bc6a69bd643f1f99", size = 99570, upload-time = "2026-06-11T19:23:59.12Z" }
1246
1246
  wheels = [
1247
- { url = "https://files.pythonhosted.org/packages/df/73/d8f5f265fb3f53c12ed005c33b13fd0a0f9a94cd6af857d09e673846e9db/imbi_plugin_oidc-2.11.0-py3-none-any.whl", hash = "sha256:bde656d94197a2b11919d33e63a56d1ac513adab5341bbe8556b272894293b8f", size = 5941, upload-time = "2026-06-11T17:46:34.674Z" },
1247
+ { url = "https://files.pythonhosted.org/packages/41/df/3a4043d5adb8812891d945ddb96e9eb17a74ff9ec43c122f5e9e910bc529/imbi_plugin_oidc-2.11.2-py3-none-any.whl", hash = "sha256:5014337a8dfaee07743d1a51ca4e96e53f5b3b327c22a166aba20371d0fe6405", size = 5939, upload-time = "2026-06-11T19:23:58.028Z" },
1248
1248
  ]
1249
1249
 
1250
1250
  [[package]]
1251
1251
  name = "imbi-plugin-pagerduty"
1252
- version = "2.11.0"
1252
+ version = "2.11.2"
1253
1253
  source = { registry = "https://pypi.org/simple" }
1254
1254
  dependencies = [
1255
1255
  { name = "httpx" },
1256
1256
  { name = "imbi-common", extra = ["databases"] },
1257
1257
  { name = "pydantic" },
1258
1258
  ]
1259
- sdist = { url = "https://files.pythonhosted.org/packages/92/92/48ac99fa3bba84f710b47bd0d9181799a73b2cf357bf1d7ab7feced827e7/imbi_plugin_pagerduty-2.11.0.tar.gz", hash = "sha256:dda80698a9795e59371ae786b97434d5c4316b4175c1040d2a6be9daaeb84cd4", size = 113107, upload-time = "2026-06-11T17:54:26.298Z" }
1259
+ sdist = { url = "https://files.pythonhosted.org/packages/99/be/aa3e345d3a2d2ce8039bcbce220eec60f05b47ec8a7b00042660b2586bc9/imbi_plugin_pagerduty-2.11.2.tar.gz", hash = "sha256:009de196c5b6a83556510ff1167f26e218b3b59030cca49fc7b7a4dd7139c466", size = 113107, upload-time = "2026-06-11T19:24:10.845Z" }
1260
1260
  wheels = [
1261
- { url = "https://files.pythonhosted.org/packages/ea/12/e85effe986129f7f934e40b68773a384b2962039aaef898d0eac5c1ee39d/imbi_plugin_pagerduty-2.11.0-py3-none-any.whl", hash = "sha256:2c7eb4ae491e66c64507892cec943139fb0589ca077eb7c60cf98dc08bfe9853", size = 13962, upload-time = "2026-06-11T17:54:25.075Z" },
1261
+ { url = "https://files.pythonhosted.org/packages/63/d5/7e29bac0e693f4b85c2bd83d2142257851f93d61cb4f8835da2c2ce5153d/imbi_plugin_pagerduty-2.11.2-py3-none-any.whl", hash = "sha256:a22c33dabd6d27154b70c78e99b4cac2809c518128c230325246e08bdc16bb1e", size = 13962, upload-time = "2026-06-11T19:24:09.621Z" },
1262
1262
  ]
1263
1263
 
1264
1264
  [[package]]
1265
1265
  name = "imbi-plugin-sonarqube"
1266
- version = "2.11.0"
1266
+ version = "2.11.2"
1267
1267
  source = { registry = "https://pypi.org/simple" }
1268
1268
  dependencies = [
1269
1269
  { name = "httpx" },
1270
1270
  { name = "imbi-common" },
1271
1271
  { name = "pydantic" },
1272
1272
  ]
1273
- sdist = { url = "https://files.pythonhosted.org/packages/af/c5/8e0277c35b35e2ec3ebe5df13f62f9f9ff11ce25843e1e88ebfc3af41b71/imbi_plugin_sonarqube-2.11.0.tar.gz", hash = "sha256:18f696fcd48e0ccd419146c7a0f42cc25bea6106d08df3d5da5c5e2c699a02ad", size = 93462, upload-time = "2026-06-11T17:46:44.545Z" }
1273
+ sdist = { url = "https://files.pythonhosted.org/packages/9f/6b/a4d58d7c03c0346ffb4dc13f773b361d1f2a2deb626a3e7e2688ebe4402e/imbi_plugin_sonarqube-2.11.2.tar.gz", hash = "sha256:dd8d8fb28486d061ef1b7d472a68a4ee97cdffd03627d01288ab75bfc4aa53ca", size = 93469, upload-time = "2026-06-11T19:24:04.378Z" }
1274
1274
  wheels = [
1275
- { url = "https://files.pythonhosted.org/packages/1b/0e/6246bb301825be199ffe76f9f339ca33365ad26caec4f86d9aed32189dab/imbi_plugin_sonarqube-2.11.0-py3-none-any.whl", hash = "sha256:1e39d9ee25e94171652d6efd4c180e77778a4199eed0fe6e8abd3f036608bd09", size = 7949, upload-time = "2026-06-11T17:46:43.307Z" },
1275
+ { url = "https://files.pythonhosted.org/packages/77/50/2c67e53f03d95a3a49f679c0e4e072a662769d8ed6bb208a1d09b5ca1fb8/imbi_plugin_sonarqube-2.11.2-py3-none-any.whl", hash = "sha256:556acc4da3cdcdaecb48246bd91947f24081d3e019633fc7389fdf4aba348228", size = 7953, upload-time = "2026-06-11T19:24:03.224Z" },
1276
1276
  ]
1277
1277
 
1278
1278
  [[package]]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes