port-ocean 0.21.3__tar.gz → 0.21.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of port-ocean might be problematic. Click here for more details.

Files changed (190) hide show
  1. {port_ocean-0.21.3 → port_ocean-0.21.5}/PKG-INFO +2 -2
  2. {port_ocean-0.21.3 → port_ocean-0.21.5}/integrations/_infra/Dockerfile.Deb +2 -2
  3. {port_ocean-0.21.3 → port_ocean-0.21.5}/integrations/_infra/Dockerfile.alpine +2 -2
  4. {port_ocean-0.21.3 → port_ocean-0.21.5}/integrations/_infra/Dockerfile.base.builder +1 -1
  5. {port_ocean-0.21.3 → port_ocean-0.21.5}/integrations/_infra/Dockerfile.base.runner +1 -1
  6. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/webhook/processor_manager.py +5 -3
  7. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/webhook/webhook_event.py +0 -5
  8. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/core/handlers/webhook/test_processor_manager.py +79 -44
  9. {port_ocean-0.21.3 → port_ocean-0.21.5}/pyproject.toml +4 -4
  10. {port_ocean-0.21.3 → port_ocean-0.21.5}/LICENSE.md +0 -0
  11. {port_ocean-0.21.3 → port_ocean-0.21.5}/README.md +0 -0
  12. {port_ocean-0.21.3 → port_ocean-0.21.5}/integrations/_infra/Dockerfile.dockerignore +0 -0
  13. {port_ocean-0.21.3 → port_ocean-0.21.5}/integrations/_infra/Makefile +0 -0
  14. {port_ocean-0.21.3 → port_ocean-0.21.5}/integrations/_infra/grpcio.sh +0 -0
  15. {port_ocean-0.21.3 → port_ocean-0.21.5}/integrations/_infra/init.sh +0 -0
  16. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/__init__.py +0 -0
  17. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/bootstrap.py +0 -0
  18. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/__init__.py +0 -0
  19. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cli.py +0 -0
  20. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/commands/__init__.py +0 -0
  21. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/commands/defaults/__init___.py +0 -0
  22. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/commands/defaults/clean.py +0 -0
  23. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/commands/defaults/dock.py +0 -0
  24. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/commands/defaults/group.py +0 -0
  25. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/commands/list_integrations.py +0 -0
  26. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/commands/main.py +0 -0
  27. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/commands/new.py +0 -0
  28. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/commands/pull.py +0 -0
  29. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/commands/sail.py +0 -0
  30. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/commands/version.py +0 -0
  31. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/__init__.py +0 -0
  32. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/cookiecutter.json +0 -0
  33. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/extensions.py +0 -0
  34. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py +0 -0
  35. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.env.example +0 -0
  36. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.gitignore +0 -0
  37. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/.gitignore +0 -0
  38. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/blueprints.json +0 -0
  39. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/port-app-config.yml +0 -0
  40. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/spec.yaml +0 -0
  41. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CHANGELOG.md +0 -0
  42. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CONTRIBUTING.md +0 -0
  43. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/README.md +0 -0
  44. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/changelog/.gitignore +0 -0
  45. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/debug.py +0 -0
  46. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/main.py +0 -0
  47. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/poetry.toml +0 -0
  48. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/pyproject.toml +0 -0
  49. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/sonar-project.properties +0 -0
  50. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/__init__.py +0 -0
  51. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/test_sample.py +0 -0
  52. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/cli/utils.py +0 -0
  53. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/clients/__init__.py +0 -0
  54. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/clients/auth/__init__.py +0 -0
  55. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/clients/auth/auth_client.py +0 -0
  56. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/clients/auth/oauth_client.py +0 -0
  57. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/clients/port/__init__.py +0 -0
  58. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/clients/port/authentication.py +0 -0
  59. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/clients/port/client.py +0 -0
  60. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/clients/port/mixins/__init__.py +0 -0
  61. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/clients/port/mixins/blueprints.py +0 -0
  62. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/clients/port/mixins/entities.py +0 -0
  63. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/clients/port/mixins/integrations.py +0 -0
  64. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/clients/port/mixins/migrations.py +0 -0
  65. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/clients/port/mixins/organization.py +0 -0
  66. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/clients/port/retry_transport.py +0 -0
  67. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/clients/port/types.py +0 -0
  68. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/clients/port/utils.py +0 -0
  69. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/config/__init__.py +0 -0
  70. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/config/base.py +0 -0
  71. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/config/dynamic.py +0 -0
  72. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/config/settings.py +0 -0
  73. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/consumers/__init__.py +0 -0
  74. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/consumers/kafka_consumer.py +0 -0
  75. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/context/__init__.py +0 -0
  76. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/context/event.py +0 -0
  77. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/context/ocean.py +0 -0
  78. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/context/resource.py +0 -0
  79. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/__init__.py +0 -0
  80. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/defaults/__init__.py +0 -0
  81. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/defaults/clean.py +0 -0
  82. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/defaults/common.py +0 -0
  83. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/defaults/initialize.py +0 -0
  84. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/event_listener/__init__.py +0 -0
  85. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/event_listener/base.py +0 -0
  86. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/event_listener/factory.py +0 -0
  87. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/event_listener/http.py +0 -0
  88. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/event_listener/kafka.py +0 -0
  89. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/event_listener/once.py +0 -0
  90. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/event_listener/polling.py +0 -0
  91. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/event_listener/webhooks_only.py +0 -0
  92. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/__init__.py +0 -0
  93. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/base.py +0 -0
  94. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/entities_state_applier/__init__.py +0 -0
  95. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/entities_state_applier/base.py +0 -0
  96. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/entities_state_applier/port/__init__.py +0 -0
  97. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/entities_state_applier/port/applier.py +0 -0
  98. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/entities_state_applier/port/get_related_entities.py +0 -0
  99. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/entities_state_applier/port/order_by_entities_dependencies.py +0 -0
  100. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/entity_processor/__init__.py +0 -0
  101. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/entity_processor/base.py +0 -0
  102. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/entity_processor/jq_entity_processor.py +0 -0
  103. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/port_app_config/__init__.py +0 -0
  104. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/port_app_config/api.py +0 -0
  105. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/port_app_config/base.py +0 -0
  106. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/port_app_config/models.py +0 -0
  107. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/queue/__init__.py +0 -0
  108. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/queue/abstract_queue.py +0 -0
  109. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/queue/local_queue.py +0 -0
  110. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/resync_state_updater/__init__.py +0 -0
  111. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/resync_state_updater/updater.py +0 -0
  112. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/webhook/__init__.py +0 -0
  113. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/handlers/webhook/abstract_webhook_processor.py +0 -0
  114. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/integrations/__init__.py +0 -0
  115. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/integrations/base.py +0 -0
  116. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/integrations/mixins/__init__.py +0 -0
  117. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/integrations/mixins/events.py +0 -0
  118. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/integrations/mixins/handler.py +0 -0
  119. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/integrations/mixins/live_events.py +0 -0
  120. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/integrations/mixins/sync.py +0 -0
  121. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/integrations/mixins/sync_raw.py +0 -0
  122. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/integrations/mixins/utils.py +0 -0
  123. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/models.py +0 -0
  124. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/ocean_types.py +0 -0
  125. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/utils/entity_topological_sorter.py +0 -0
  126. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/core/utils/utils.py +0 -0
  127. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/debug_cli.py +0 -0
  128. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/exceptions/__init__.py +0 -0
  129. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/exceptions/api.py +0 -0
  130. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/exceptions/base.py +0 -0
  131. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/exceptions/clients.py +0 -0
  132. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/exceptions/context.py +0 -0
  133. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/exceptions/core.py +0 -0
  134. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/exceptions/port_defaults.py +0 -0
  135. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/exceptions/utils.py +0 -0
  136. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/exceptions/webhook_processor.py +0 -0
  137. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/helpers/__init__.py +0 -0
  138. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/helpers/async_client.py +0 -0
  139. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/helpers/retry.py +0 -0
  140. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/log/__init__.py +0 -0
  141. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/log/handlers.py +0 -0
  142. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/log/logger_setup.py +0 -0
  143. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/log/sensetive.py +0 -0
  144. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/middlewares.py +0 -0
  145. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/ocean.py +0 -0
  146. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/py.typed +0 -0
  147. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/run.py +0 -0
  148. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/sonar-project.properties +0 -0
  149. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/__init__.py +0 -0
  150. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/clients/__init__.py +0 -0
  151. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/clients/oauth/__init__.py +0 -0
  152. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/clients/oauth/test_oauth_client.py +0 -0
  153. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/clients/port/mixins/test_entities.py +0 -0
  154. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/clients/port/mixins/test_organization_mixin.py +0 -0
  155. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/conftest.py +0 -0
  156. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/core/defaults/test_common.py +0 -0
  157. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/core/handlers/entities_state_applier/test_applier.py +0 -0
  158. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/core/handlers/entity_processor/test_jq_entity_processor.py +0 -0
  159. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/core/handlers/mixins/test_live_events.py +0 -0
  160. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/core/handlers/mixins/test_sync_raw.py +0 -0
  161. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/core/handlers/port_app_config/test_api.py +0 -0
  162. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/core/handlers/port_app_config/test_base.py +0 -0
  163. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/core/handlers/queue/test_local_queue.py +0 -0
  164. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/core/handlers/webhook/test_abstract_webhook_processor.py +0 -0
  165. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/core/handlers/webhook/test_webhook_event.py +0 -0
  166. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/core/test_utils.py +0 -0
  167. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/core/utils/test_entity_topological_sorter.py +0 -0
  168. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/core/utils/test_resolve_entities_diff.py +0 -0
  169. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/helpers/__init__.py +0 -0
  170. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/helpers/fake_port_api.py +0 -0
  171. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/helpers/fixtures.py +0 -0
  172. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/helpers/integration.py +0 -0
  173. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/helpers/ocean_app.py +0 -0
  174. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/helpers/port_client.py +0 -0
  175. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/helpers/smoke_test.py +0 -0
  176. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/log/test_handlers.py +0 -0
  177. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/test_ocean.py +0 -0
  178. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/test_smoke.py +0 -0
  179. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/utils/test_async_iterators.py +0 -0
  180. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/tests/utils/test_cache.py +0 -0
  181. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/utils/__init__.py +0 -0
  182. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/utils/async_http.py +0 -0
  183. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/utils/async_iterators.py +0 -0
  184. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/utils/cache.py +0 -0
  185. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/utils/misc.py +0 -0
  186. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/utils/queue_utils.py +0 -0
  187. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/utils/repeat.py +0 -0
  188. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/utils/signal.py +0 -0
  189. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/utils/time.py +0 -0
  190. {port_ocean-0.21.3 → port_ocean-0.21.5}/port_ocean/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: port-ocean
3
- Version: 0.21.3
3
+ Version: 0.21.5
4
4
  Summary: Port Ocean is a CLI tool for managing your Port projects.
5
5
  Home-page: https://app.getport.io
6
6
  Keywords: ocean,port-ocean,port
@@ -24,7 +24,7 @@ Classifier: Topic :: Utilities
24
24
  Provides-Extra: cli
25
25
  Requires-Dist: aiostream (>=0.5.2,<0.7.0)
26
26
  Requires-Dist: click (>=8.1.3,<9.0.0) ; extra == "cli"
27
- Requires-Dist: confluent-kafka (>=2.1.1,<3.0.0)
27
+ Requires-Dist: confluent-kafka (>=2.8.2,<3.0.0)
28
28
  Requires-Dist: cookiecutter (>=2.1.1,<3.0.0) ; extra == "cli"
29
29
  Requires-Dist: fastapi (>=0.115.3,<0.116.0)
30
30
  Requires-Dist: httpx (>=0.24.1,<0.28.0)
@@ -6,7 +6,7 @@ FROM ${BASE_BUILDER_PYTHON_IMAGE} AS base
6
6
  ARG BUILD_CONTEXT
7
7
  ARG BUILDPLATFORM
8
8
 
9
- ENV LIBRDKAFKA_VERSION=1.9.2 \
9
+ ENV LIBRDKAFKA_VERSION=2.8.2 \
10
10
  PYTHONUNBUFFERED=1 \
11
11
  POETRY_VIRTUALENVS_IN_PROJECT=1 \
12
12
  PIP_ROOT_USER_ACTION=ignore
@@ -22,7 +22,7 @@ FROM ${BASE_RUNNER_PYTHON_IMAGE} AS prod
22
22
  ARG INTEGRATION_VERSION
23
23
  ARG BUILD_CONTEXT
24
24
 
25
- ENV LIBRDKAFKA_VERSION=1.9.2
25
+ ENV LIBRDKAFKA_VERSION=2.8.2
26
26
 
27
27
  RUN apt-get update \
28
28
  && apt-get install -y \
@@ -5,7 +5,7 @@ FROM ${BASE_PYTHON_IMAGE} AS base
5
5
  ARG BUILD_CONTEXT
6
6
  ARG BUILDPLATFORM
7
7
 
8
- ENV LIBRDKAFKA_VERSION=1.9.2 \
8
+ ENV LIBRDKAFKA_VERSION=2.8.2 \
9
9
  PYTHONUNBUFFERED=1 \
10
10
  PIP_DISABLE_PIP_VERSION_CHECK=on \
11
11
  POETRY_NO_INTERACTION=1 \
@@ -66,7 +66,7 @@ FROM ${BASE_PYTHON_IMAGE} AS prod
66
66
  ARG INTEGRATION_VERSION
67
67
  ARG BUILD_CONTEXT
68
68
 
69
- ENV LIBRDKAFKA_VERSION=1.9.2
69
+ ENV LIBRDKAFKA_VERSION=2.8.2
70
70
 
71
71
  LABEL INTEGRATION_VERSION=${INTEGRATION_VERSION}
72
72
  # Used to ensure that new integrations will be public, see https://docs.github.com/en/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility
@@ -4,7 +4,7 @@ FROM ${BASE_PYTHON_IMAGE}
4
4
 
5
5
  LABEL org.opencontainers.image.source=https://github.com/port-labs/ocean
6
6
 
7
- ENV LIBRDKAFKA_VERSION=1.9.2 \
7
+ ENV LIBRDKAFKA_VERSION=2.8.2 \
8
8
  PYTHONUNBUFFERED=1 \
9
9
  POETRY_VIRTUALENVS_IN_PROJECT=1 \
10
10
  PIP_ROOT_USER_ACTION=ignore
@@ -4,7 +4,7 @@ FROM ${BASE_PYTHON_IMAGE}
4
4
 
5
5
  LABEL org.opencontainers.image.source=https://github.com/port-labs/ocean
6
6
 
7
- ENV LIBRDKAFKA_VERSION=1.9.2
7
+ ENV LIBRDKAFKA_VERSION=2.8.2
8
8
 
9
9
  ENV PIP_ROOT_USER_ACTION=ignore
10
10
 
@@ -1,9 +1,9 @@
1
- from copy import deepcopy
2
1
  from typing import Dict, Type, Set
3
2
  from fastapi import APIRouter, Request
4
3
  from loguru import logger
5
4
  import asyncio
6
5
 
6
+ from port_ocean.context.ocean import ocean
7
7
  from port_ocean.context.event import EventType, event_context
8
8
  from port_ocean.core.handlers.port_app_config.models import ResourceConfig
9
9
  from port_ocean.core.integrations.mixins.events import EventsMixin
@@ -89,8 +89,11 @@ class LiveEventsProcessorManager(LiveEventsMixin, EventsMixin):
89
89
  async with event_context(
90
90
  EventType.HTTP_REQUEST,
91
91
  trigger_type="machine",
92
- parent_override=webhook_event.event_context,
93
92
  ):
93
+ # This forces the Processor manager to fetch the latest port app config for each event
94
+ await ocean.integration.port_app_config_handler.get_port_app_config(
95
+ use_cache=False
96
+ )
94
97
  matching_processors_with_resource = (
95
98
  await self._extract_matching_processors(webhook_event, path)
96
99
  )
@@ -246,7 +249,6 @@ class LiveEventsProcessorManager(LiveEventsMixin, EventsMixin):
246
249
  try:
247
250
  webhook_event = await WebhookEvent.from_request(request)
248
251
  webhook_event.set_timestamp(LiveEventTimestamp.AddedToQueue)
249
- webhook_event.set_event_context(deepcopy(event))
250
252
  await self._event_queues[path].put(webhook_event)
251
253
  return {"status": "ok"}
252
254
  except Exception as e:
@@ -5,7 +5,6 @@ from uuid import uuid4
5
5
  from fastapi import Request
6
6
  from loguru import logger
7
7
 
8
- from port_ocean.context.event import EventContext
9
8
  from port_ocean.core.handlers.port_app_config.models import ResourceConfig
10
9
  from port_ocean.core.ocean_types import RAW_ITEM
11
10
 
@@ -57,7 +56,6 @@ class WebhookEvent(LiveEvent):
57
56
  self.payload = payload
58
57
  self.headers = headers
59
58
  self._original_request = original_request
60
- self.event_context: EventContext | None = None
61
59
 
62
60
  @classmethod
63
61
  async def from_request(
@@ -103,9 +101,6 @@ class WebhookEvent(LiveEvent):
103
101
  },
104
102
  )
105
103
 
106
- def set_event_context(self, event_context: EventContext) -> None:
107
- self.event_context = event_context
108
-
109
104
 
110
105
  class WebhookEventRawResults:
111
106
  """
@@ -12,6 +12,7 @@ from port_ocean.core.handlers.webhook.webhook_event import (
12
12
  EventPayload,
13
13
  )
14
14
  from fastapi import APIRouter
15
+ from port_ocean.core.integrations.mixins.handler import HandlerMixin
15
16
  from port_ocean.utils.signal import SignalHandler
16
17
  from typing import Dict, Any
17
18
  import asyncio
@@ -19,7 +20,7 @@ from fastapi.testclient import TestClient
19
20
  from fastapi import FastAPI
20
21
  from port_ocean.context.ocean import PortOceanContext
21
22
  from unittest.mock import AsyncMock
22
- from port_ocean.context.event import event_context, EventType
23
+ from port_ocean.context.event import EventContext, event_context, EventType
23
24
  from port_ocean.context.ocean import ocean
24
25
  from unittest.mock import MagicMock, patch
25
26
  from httpx import Response
@@ -571,6 +572,16 @@ async def test_integrationTest_postRequestSent_webhookEventRawResultProcessed_en
571
572
  "sync_raw_results",
572
573
  patched_export_single_resource,
573
574
  )
575
+ monkeypatch.setattr(
576
+ HandlerMixin,
577
+ "port_app_config_handler",
578
+ AsyncMock(return_value=mock_port_app_config),
579
+ )
580
+ monkeypatch.setattr(
581
+ EventContext,
582
+ "port_app_config",
583
+ mock_port_app_config,
584
+ )
574
585
  test_path = "/webhook-test"
575
586
  mock_context.app.integration = BaseIntegration(ocean)
576
587
  mock_context.app.webhook_manager = LiveEventsProcessorManager(
@@ -589,12 +600,7 @@ async def test_integrationTest_postRequestSent_webhookEventRawResultProcessed_en
589
600
 
590
601
  test_payload = {"test": "data"}
591
602
 
592
- async with event_context(EventType.HTTP_REQUEST, trigger_type="request") as event:
593
- mock_context.app.webhook_manager.port_app_config_handler.get_port_app_config = AsyncMock(return_value=mock_port_app_config) # type: ignore
594
- event.port_app_config = (
595
- await mock_context.app.webhook_manager.port_app_config_handler.get_port_app_config()
596
- )
597
-
603
+ async with event_context(EventType.HTTP_REQUEST, trigger_type="request"):
598
604
  response = client.post(
599
605
  test_path, json=test_payload, headers={"Content-Type": "application/json"}
600
606
  )
@@ -685,6 +691,16 @@ async def test_integrationTest_postRequestSent_reachedTimeout_entityNotUpserted(
685
691
  "_process_single_event",
686
692
  patched_process_single_event,
687
693
  )
694
+ monkeypatch.setattr(
695
+ HandlerMixin,
696
+ "port_app_config_handler",
697
+ AsyncMock(return_value=mock_port_app_config),
698
+ )
699
+ monkeypatch.setattr(
700
+ EventContext,
701
+ "port_app_config",
702
+ mock_port_app_config,
703
+ )
688
704
  test_path = "/webhook-test"
689
705
  mock_context.app.integration = BaseIntegration(ocean)
690
706
  mock_context.app.webhook_manager = LiveEventsProcessorManager(
@@ -703,12 +719,7 @@ async def test_integrationTest_postRequestSent_reachedTimeout_entityNotUpserted(
703
719
 
704
720
  test_payload = {"test": "data"}
705
721
 
706
- async with event_context(EventType.HTTP_REQUEST, trigger_type="request") as event:
707
- mock_context.app.webhook_manager.port_app_config_handler.get_port_app_config = AsyncMock(return_value=mock_port_app_config) # type: ignore
708
- event.port_app_config = (
709
- await mock_context.app.webhook_manager.port_app_config_handler.get_port_app_config()
710
- )
711
-
722
+ async with event_context(EventType.HTTP_REQUEST, trigger_type="request"):
712
723
  response = client.post(
713
724
  test_path, json=test_payload, headers={"Content-Type": "application/json"}
714
725
  )
@@ -802,6 +813,16 @@ async def test_integrationTest_postRequestSent_noMatchingHandlers_entityNotUpser
802
813
  "_extract_matching_processors",
803
814
  patched_extract_matching_processors,
804
815
  )
816
+ monkeypatch.setattr(
817
+ HandlerMixin,
818
+ "port_app_config_handler",
819
+ AsyncMock(return_value=mock_port_app_config),
820
+ )
821
+ monkeypatch.setattr(
822
+ EventContext,
823
+ "port_app_config",
824
+ mock_port_app_config,
825
+ )
805
826
  test_path = "/webhook-test"
806
827
  mock_context.app.integration = BaseIntegration(ocean)
807
828
  mock_context.app.webhook_manager = LiveEventsProcessorManager(
@@ -819,13 +840,7 @@ async def test_integrationTest_postRequestSent_noMatchingHandlers_entityNotUpser
819
840
  client = TestClient(mock_context.app.fast_api_app)
820
841
 
821
842
  test_payload = {"test": "data"}
822
-
823
- async with event_context(EventType.HTTP_REQUEST, trigger_type="request") as event:
824
- mock_context.app.webhook_manager.port_app_config_handler.get_port_app_config = AsyncMock(return_value=mock_port_app_config) # type: ignore
825
- event.port_app_config = (
826
- await mock_context.app.webhook_manager.port_app_config_handler.get_port_app_config()
827
- )
828
-
843
+ async with event_context(EventType.HTTP_REQUEST, trigger_type="request"):
829
844
  response = client.post(
830
845
  test_path, json=test_payload, headers={"Content-Type": "application/json"}
831
846
  )
@@ -982,6 +997,16 @@ async def test_integrationTest_postRequestSent_webhookEventRawResultProcessedFor
982
997
  "sync_raw_results",
983
998
  patched_export_single_resource,
984
999
  )
1000
+ monkeypatch.setattr(
1001
+ HandlerMixin,
1002
+ "port_app_config_handler",
1003
+ AsyncMock(return_value=mock_port_app_config),
1004
+ )
1005
+ monkeypatch.setattr(
1006
+ EventContext,
1007
+ "port_app_config",
1008
+ mock_port_app_config,
1009
+ )
985
1010
  test_path = "/webhook-test"
986
1011
  mock_context.app.integration = BaseIntegration(ocean)
987
1012
  mock_context.app.webhook_manager = LiveEventsProcessorManager(
@@ -1004,12 +1029,7 @@ async def test_integrationTest_postRequestSent_webhookEventRawResultProcessedFor
1004
1029
 
1005
1030
  test_payload = {"test": "data"}
1006
1031
 
1007
- async with event_context(EventType.HTTP_REQUEST, trigger_type="request") as event:
1008
- mock_context.app.webhook_manager.port_app_config_handler.get_port_app_config = AsyncMock(return_value=mock_port_app_config) # type: ignore
1009
- event.port_app_config = (
1010
- await mock_context.app.webhook_manager.port_app_config_handler.get_port_app_config()
1011
- )
1012
-
1032
+ async with event_context(EventType.HTTP_REQUEST, trigger_type="request"):
1013
1033
  response = client.post(
1014
1034
  test_path, json=test_payload, headers={"Content-Type": "application/json"}
1015
1035
  )
@@ -1112,6 +1132,16 @@ async def test_integrationTest_postRequestSent_webhookEventRawResultProcessedwit
1112
1132
  "sync_raw_results",
1113
1133
  patched_export_single_resource,
1114
1134
  )
1135
+ monkeypatch.setattr(
1136
+ HandlerMixin,
1137
+ "port_app_config_handler",
1138
+ AsyncMock(return_value=mock_port_app_config),
1139
+ )
1140
+ monkeypatch.setattr(
1141
+ EventContext,
1142
+ "port_app_config",
1143
+ mock_port_app_config,
1144
+ )
1115
1145
  test_path = "/webhook-test"
1116
1146
  mock_context.app.integration = BaseIntegration(ocean)
1117
1147
  mock_context.app.webhook_manager = LiveEventsProcessorManager(
@@ -1130,12 +1160,7 @@ async def test_integrationTest_postRequestSent_webhookEventRawResultProcessedwit
1130
1160
 
1131
1161
  test_payload = {"test": "data"}
1132
1162
 
1133
- async with event_context(EventType.HTTP_REQUEST, trigger_type="request") as event:
1134
- mock_context.app.webhook_manager.port_app_config_handler.get_port_app_config = AsyncMock(return_value=mock_port_app_config) # type: ignore
1135
- event.port_app_config = (
1136
- await mock_context.app.webhook_manager.port_app_config_handler.get_port_app_config()
1137
- )
1138
-
1163
+ async with event_context(EventType.HTTP_REQUEST, trigger_type="request"):
1139
1164
  response = client.post(
1140
1165
  test_path, json=test_payload, headers={"Content-Type": "application/json"}
1141
1166
  )
@@ -1242,6 +1267,16 @@ async def test_integrationTest_postRequestSent_webhookEventRawResultProcessedwit
1242
1267
  "_process_webhook_request",
1243
1268
  patched_process_webhook_request,
1244
1269
  )
1270
+ monkeypatch.setattr(
1271
+ HandlerMixin,
1272
+ "port_app_config_handler",
1273
+ AsyncMock(return_value=mock_port_app_config),
1274
+ )
1275
+ monkeypatch.setattr(
1276
+ EventContext,
1277
+ "port_app_config",
1278
+ mock_port_app_config,
1279
+ )
1245
1280
  test_path = "/webhook-test"
1246
1281
  mock_context.app.integration = BaseIntegration(ocean)
1247
1282
  mock_context.app.webhook_manager = LiveEventsProcessorManager(
@@ -1260,12 +1295,7 @@ async def test_integrationTest_postRequestSent_webhookEventRawResultProcessedwit
1260
1295
 
1261
1296
  test_payload = {"test": "data"}
1262
1297
 
1263
- async with event_context(EventType.HTTP_REQUEST, trigger_type="request") as event:
1264
- mock_context.app.webhook_manager.port_app_config_handler.get_port_app_config = AsyncMock(return_value=mock_port_app_config) # type: ignore
1265
- event.port_app_config = (
1266
- await mock_context.app.webhook_manager.port_app_config_handler.get_port_app_config()
1267
- )
1268
-
1298
+ async with event_context(EventType.HTTP_REQUEST, trigger_type="request"):
1269
1299
  response = client.post(
1270
1300
  test_path, json=test_payload, headers={"Content-Type": "application/json"}
1271
1301
  )
@@ -1381,6 +1411,16 @@ async def test_integrationTest_postRequestSent_oneProcessorThrowsException_onlyS
1381
1411
  "sync_raw_results",
1382
1412
  patched_export_single_resource,
1383
1413
  )
1414
+ monkeypatch.setattr(
1415
+ HandlerMixin,
1416
+ "port_app_config_handler",
1417
+ AsyncMock(return_value=mock_port_app_config),
1418
+ )
1419
+ monkeypatch.setattr(
1420
+ EventContext,
1421
+ "port_app_config",
1422
+ mock_port_app_config,
1423
+ )
1384
1424
  test_path = "/webhook-test"
1385
1425
  mock_context.app.integration = BaseIntegration(ocean)
1386
1426
  mock_context.app.webhook_manager = LiveEventsProcessorManager(
@@ -1401,12 +1441,7 @@ async def test_integrationTest_postRequestSent_oneProcessorThrowsException_onlyS
1401
1441
 
1402
1442
  test_payload = {"test": "data"}
1403
1443
 
1404
- async with event_context(EventType.HTTP_REQUEST, trigger_type="request") as event:
1405
- mock_context.app.webhook_manager.port_app_config_handler.get_port_app_config = AsyncMock(return_value=mock_port_app_config) # type: ignore
1406
- event.port_app_config = (
1407
- await mock_context.app.webhook_manager.port_app_config_handler.get_port_app_config()
1408
- )
1409
-
1444
+ async with event_context(EventType.HTTP_REQUEST, trigger_type="request"):
1410
1445
  response = client.post(
1411
1446
  test_path, json=test_payload, headers={"Content-Type": "application/json"}
1412
1447
  )
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "port-ocean"
3
- version = "0.21.3"
3
+ version = "0.21.5"
4
4
  description = "Port Ocean is a CLI tool for managing your Port projects."
5
5
  readme = "README.md"
6
6
  homepage = "https://app.getport.io"
@@ -46,7 +46,7 @@ pyyaml = "^6.0"
46
46
  werkzeug = ">=2.3.4,<4.0.0"
47
47
  fastapi = "^0.115.3"
48
48
  uvicorn = ">=0.22,<0.31"
49
- confluent-kafka = "^2.1.1"
49
+ confluent-kafka = "^2.8.2"
50
50
  httpx = ">=0.24.1,<0.28.0"
51
51
  jq = "^1.8.0"
52
52
  urllib3 = ">=1.26.16,<3.0.0"
@@ -76,14 +76,14 @@ pytest = ">=8.2,<9.0"
76
76
  pytest-asyncio = ">=0.24.0"
77
77
  pytest-httpx = ">=0.30.0"
78
78
  pytest-xdist = "^3.6.1"
79
- ruff = "^0.6.3"
79
+ ruff = ">=0.6.3,<0.10.0"
80
80
  towncrier = "^23.6.0"
81
81
  types-python-dateutil = "^2.9.0.20240316"
82
82
  types-pyyaml = "^6.0.12.10"
83
83
  types-toml = "^0.10.8.6"
84
84
  yamllint = "^1.32.0"
85
85
  pytest-timeout = "^2.3.1"
86
- cryptography = "^43.0.1"
86
+ cryptography = ">=43.0.1,<45.0.0"
87
87
 
88
88
  [tool.towncrier]
89
89
  directory = "changelog"
File without changes
File without changes