port-ocean 0.27.7__tar.gz → 0.27.9__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 (213) hide show
  1. {port_ocean-0.27.7 → port_ocean-0.27.9}/PKG-INFO +1 -1
  2. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/resync_state_updater/updater.py +2 -0
  3. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/integrations/mixins/sync_raw.py +21 -3
  4. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/integrations/mixins/utils.py +0 -1
  5. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/helpers/metric/metric.py +13 -11
  6. {port_ocean-0.27.7 → port_ocean-0.27.9}/pyproject.toml +1 -1
  7. {port_ocean-0.27.7 → port_ocean-0.27.9}/LICENSE.md +0 -0
  8. {port_ocean-0.27.7 → port_ocean-0.27.9}/README.md +0 -0
  9. {port_ocean-0.27.7 → port_ocean-0.27.9}/integrations/_infra/Dockerfile.Deb +0 -0
  10. {port_ocean-0.27.7 → port_ocean-0.27.9}/integrations/_infra/Dockerfile.alpine +0 -0
  11. {port_ocean-0.27.7 → port_ocean-0.27.9}/integrations/_infra/Dockerfile.base.builder +0 -0
  12. {port_ocean-0.27.7 → port_ocean-0.27.9}/integrations/_infra/Dockerfile.base.runner +0 -0
  13. {port_ocean-0.27.7 → port_ocean-0.27.9}/integrations/_infra/Dockerfile.dockerignore +0 -0
  14. {port_ocean-0.27.7 → port_ocean-0.27.9}/integrations/_infra/Dockerfile.local +0 -0
  15. {port_ocean-0.27.7 → port_ocean-0.27.9}/integrations/_infra/Makefile +0 -0
  16. {port_ocean-0.27.7 → port_ocean-0.27.9}/integrations/_infra/README.md +0 -0
  17. {port_ocean-0.27.7 → port_ocean-0.27.9}/integrations/_infra/entry_local.sh +0 -0
  18. {port_ocean-0.27.7 → port_ocean-0.27.9}/integrations/_infra/grpcio.sh +0 -0
  19. {port_ocean-0.27.7 → port_ocean-0.27.9}/integrations/_infra/init.sh +0 -0
  20. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/__init__.py +0 -0
  21. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/bootstrap.py +0 -0
  22. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cache/__init__.py +0 -0
  23. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cache/base.py +0 -0
  24. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cache/disk.py +0 -0
  25. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cache/errors.py +0 -0
  26. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cache/memory.py +0 -0
  27. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/__init__.py +0 -0
  28. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cli.py +0 -0
  29. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/commands/__init__.py +0 -0
  30. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/commands/defaults/__init___.py +0 -0
  31. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/commands/defaults/clean.py +0 -0
  32. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/commands/defaults/dock.py +0 -0
  33. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/commands/defaults/group.py +0 -0
  34. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/commands/list_integrations.py +0 -0
  35. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/commands/main.py +0 -0
  36. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/commands/new.py +0 -0
  37. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/commands/pull.py +0 -0
  38. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/commands/sail.py +0 -0
  39. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/commands/version.py +0 -0
  40. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/__init__.py +0 -0
  41. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/cookiecutter.json +0 -0
  42. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/extensions.py +0 -0
  43. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py +0 -0
  44. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.env.example +0 -0
  45. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.gitignore +0 -0
  46. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/.gitignore +0 -0
  47. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/blueprints.json +0 -0
  48. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/port-app-config.yml +0 -0
  49. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/spec.yaml +0 -0
  50. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CHANGELOG.md +0 -0
  51. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CONTRIBUTING.md +0 -0
  52. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/README.md +0 -0
  53. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/changelog/.gitignore +0 -0
  54. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/debug.py +0 -0
  55. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/main.py +0 -0
  56. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/poetry.toml +0 -0
  57. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/pyproject.toml +0 -0
  58. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/sonar-project.properties +0 -0
  59. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/__init__.py +0 -0
  60. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/test_sample.py +0 -0
  61. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/cli/utils.py +0 -0
  62. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/clients/__init__.py +0 -0
  63. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/clients/auth/__init__.py +0 -0
  64. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/clients/auth/auth_client.py +0 -0
  65. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/clients/auth/oauth_client.py +0 -0
  66. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/clients/port/__init__.py +0 -0
  67. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/clients/port/authentication.py +0 -0
  68. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/clients/port/client.py +0 -0
  69. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/clients/port/mixins/__init__.py +0 -0
  70. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/clients/port/mixins/blueprints.py +0 -0
  71. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/clients/port/mixins/entities.py +0 -0
  72. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/clients/port/mixins/integrations.py +0 -0
  73. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/clients/port/mixins/migrations.py +0 -0
  74. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/clients/port/mixins/organization.py +0 -0
  75. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/clients/port/retry_transport.py +0 -0
  76. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/clients/port/types.py +0 -0
  77. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/clients/port/utils.py +0 -0
  78. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/config/__init__.py +0 -0
  79. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/config/base.py +0 -0
  80. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/config/dynamic.py +0 -0
  81. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/config/settings.py +0 -0
  82. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/consumers/__init__.py +0 -0
  83. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/consumers/kafka_consumer.py +0 -0
  84. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/context/__init__.py +0 -0
  85. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/context/event.py +0 -0
  86. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/context/metric_resource.py +0 -0
  87. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/context/ocean.py +0 -0
  88. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/context/resource.py +0 -0
  89. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/__init__.py +0 -0
  90. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/defaults/__init__.py +0 -0
  91. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/defaults/clean.py +0 -0
  92. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/defaults/common.py +0 -0
  93. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/defaults/initialize.py +0 -0
  94. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/event_listener/__init__.py +0 -0
  95. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/event_listener/base.py +0 -0
  96. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/event_listener/factory.py +0 -0
  97. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/event_listener/http.py +0 -0
  98. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/event_listener/kafka.py +0 -0
  99. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/event_listener/once.py +0 -0
  100. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/event_listener/polling.py +0 -0
  101. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/event_listener/webhooks_only.py +0 -0
  102. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/__init__.py +0 -0
  103. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/base.py +0 -0
  104. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/entities_state_applier/__init__.py +0 -0
  105. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/entities_state_applier/base.py +0 -0
  106. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/entities_state_applier/port/__init__.py +0 -0
  107. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/entities_state_applier/port/applier.py +0 -0
  108. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/entities_state_applier/port/get_related_entities.py +0 -0
  109. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/entities_state_applier/port/order_by_entities_dependencies.py +0 -0
  110. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/entity_processor/__init__.py +0 -0
  111. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/entity_processor/base.py +0 -0
  112. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/entity_processor/jq_entity_processor.py +0 -0
  113. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/port_app_config/__init__.py +0 -0
  114. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/port_app_config/api.py +0 -0
  115. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/port_app_config/base.py +0 -0
  116. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/port_app_config/models.py +0 -0
  117. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/queue/__init__.py +0 -0
  118. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/queue/abstract_queue.py +0 -0
  119. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/queue/group_queue.py +0 -0
  120. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/queue/local_queue.py +0 -0
  121. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/resync_state_updater/__init__.py +0 -0
  122. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/webhook/__init__.py +0 -0
  123. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/webhook/abstract_webhook_processor.py +0 -0
  124. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/webhook/processor_manager.py +0 -0
  125. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/handlers/webhook/webhook_event.py +0 -0
  126. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/integrations/__init__.py +0 -0
  127. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/integrations/base.py +0 -0
  128. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/integrations/mixins/__init__.py +0 -0
  129. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/integrations/mixins/events.py +0 -0
  130. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/integrations/mixins/handler.py +0 -0
  131. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/integrations/mixins/live_events.py +0 -0
  132. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/integrations/mixins/sync.py +0 -0
  133. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/models.py +0 -0
  134. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/ocean_types.py +0 -0
  135. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/utils/entity_topological_sorter.py +0 -0
  136. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/core/utils/utils.py +0 -0
  137. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/debug_cli.py +0 -0
  138. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/exceptions/__init__.py +0 -0
  139. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/exceptions/api.py +0 -0
  140. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/exceptions/base.py +0 -0
  141. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/exceptions/clients.py +0 -0
  142. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/exceptions/context.py +0 -0
  143. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/exceptions/core.py +0 -0
  144. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/exceptions/port_defaults.py +0 -0
  145. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/exceptions/utils.py +0 -0
  146. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/exceptions/webhook_processor.py +0 -0
  147. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/helpers/__init__.py +0 -0
  148. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/helpers/async_client.py +0 -0
  149. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/helpers/metric/utils.py +0 -0
  150. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/helpers/retry.py +0 -0
  151. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/helpers/stream.py +0 -0
  152. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/log/__init__.py +0 -0
  153. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/log/handlers.py +0 -0
  154. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/log/logger_setup.py +0 -0
  155. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/log/sensetive.py +0 -0
  156. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/middlewares.py +0 -0
  157. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/ocean.py +0 -0
  158. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/py.typed +0 -0
  159. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/run.py +0 -0
  160. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/sonar-project.properties +0 -0
  161. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/__init__.py +0 -0
  162. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/cache/__init__.py +0 -0
  163. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/cache/test_disk_cache.py +0 -0
  164. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/cache/test_memory_cache.py +0 -0
  165. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/clients/__init__.py +0 -0
  166. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/clients/oauth/__init__.py +0 -0
  167. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/clients/oauth/test_oauth_client.py +0 -0
  168. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/clients/port/mixins/test_entities.py +0 -0
  169. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/clients/port/mixins/test_integrations.py +0 -0
  170. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/clients/port/mixins/test_organization_mixin.py +0 -0
  171. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/config/test_config.py +0 -0
  172. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/conftest.py +0 -0
  173. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/core/conftest.py +0 -0
  174. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/core/defaults/test_common.py +0 -0
  175. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/core/event_listener/test_kafka.py +0 -0
  176. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/core/handlers/entities_state_applier/test_applier.py +0 -0
  177. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/core/handlers/entity_processor/test_jq_entity_processor.py +0 -0
  178. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/core/handlers/mixins/test_live_events.py +0 -0
  179. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/core/handlers/mixins/test_sync_raw.py +0 -0
  180. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/core/handlers/port_app_config/test_api.py +0 -0
  181. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/core/handlers/port_app_config/test_base.py +0 -0
  182. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/core/handlers/queue/test_group_queue.py +0 -0
  183. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/core/handlers/queue/test_local_queue.py +0 -0
  184. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/core/handlers/webhook/test_abstract_webhook_processor.py +0 -0
  185. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/core/handlers/webhook/test_processor_manager.py +0 -0
  186. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/core/handlers/webhook/test_webhook_event.py +0 -0
  187. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/core/test_utils.py +0 -0
  188. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/core/utils/test_entity_topological_sorter.py +0 -0
  189. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/core/utils/test_resolve_entities_diff.py +0 -0
  190. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/helpers/__init__.py +0 -0
  191. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/helpers/fake_port_api.py +0 -0
  192. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/helpers/fixtures.py +0 -0
  193. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/helpers/integration.py +0 -0
  194. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/helpers/ocean_app.py +0 -0
  195. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/helpers/port_client.py +0 -0
  196. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/helpers/smoke_test.py +0 -0
  197. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/log/test_handlers.py +0 -0
  198. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/test_metric.py +0 -0
  199. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/test_ocean.py +0 -0
  200. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/test_smoke.py +0 -0
  201. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/utils/test_async_iterators.py +0 -0
  202. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/tests/utils/test_cache.py +0 -0
  203. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/utils/__init__.py +0 -0
  204. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/utils/async_http.py +0 -0
  205. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/utils/async_iterators.py +0 -0
  206. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/utils/cache.py +0 -0
  207. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/utils/ipc.py +0 -0
  208. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/utils/misc.py +0 -0
  209. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/utils/queue_utils.py +0 -0
  210. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/utils/repeat.py +0 -0
  211. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/utils/signal.py +0 -0
  212. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/utils/time.py +0 -0
  213. {port_ocean-0.27.7 → port_ocean-0.27.9}/port_ocean/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: port-ocean
3
- Version: 0.27.7
3
+ Version: 0.27.9
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
@@ -91,6 +91,8 @@ class ResyncStateUpdater:
91
91
  value=int(status == IntegrationStateStatus.Completed),
92
92
  )
93
93
 
94
+ ocean.metrics.sync_state = status.value
95
+
94
96
  await ocean.metrics.send_metrics_to_webhook(
95
97
  kind=ocean.metrics.current_resource_kind()
96
98
  )
@@ -976,6 +976,11 @@ class SyncRawMixin(HandlerMixin, EventsMixin):
976
976
  ocean.metrics.initialize_metrics(kinds)
977
977
  await ocean.metrics.report_sync_metrics(kinds=kinds, blueprints=blueprints)
978
978
 
979
+ async with metric_resource_context(MetricResourceKind.RUNTIME):
980
+ ocean.metrics.sync_state = SyncState.SYNCING
981
+ await ocean.metrics.send_metrics_to_webhook(kind=MetricResourceKind.RUNTIME)
982
+ await ocean.metrics.report_sync_metrics(kinds=[MetricResourceKind.RUNTIME])
983
+
979
984
  # Clear cache
980
985
  await ocean.app.cache_provider.clear()
981
986
 
@@ -1010,8 +1015,18 @@ class SyncRawMixin(HandlerMixin, EventsMixin):
1010
1015
  logger.warning(
1011
1016
  "Resync aborted successfully, skipping delete phase. This leads to an incomplete state"
1012
1017
  )
1018
+
1019
+ async with metric_resource_context(MetricResourceKind.RUNTIME):
1020
+ ocean.metrics.sync_state = SyncState.FAILED
1021
+ await ocean.metrics.send_metrics_to_webhook(kind=MetricResourceKind.RUNTIME)
1022
+ await ocean.metrics.report_sync_metrics(kinds=[MetricResourceKind.RUNTIME])
1013
1023
  raise
1014
1024
  else:
1025
+ async with metric_resource_context(MetricResourceKind.RECONCILIATION):
1026
+ ocean.metrics.sync_state = SyncState.SYNCING
1027
+ await ocean.metrics.send_metrics_to_webhook(kind=MetricResourceKind.RECONCILIATION)
1028
+ await ocean.metrics.report_sync_metrics(kinds=[MetricResourceKind.RECONCILIATION])
1029
+
1015
1030
  success = await self.resync_reconciliation(
1016
1031
  creation_results,
1017
1032
  did_fetched_current_state,
@@ -1019,9 +1034,12 @@ class SyncRawMixin(HandlerMixin, EventsMixin):
1019
1034
  app_config,
1020
1035
  silent,
1021
1036
  )
1022
- await ocean.metrics.report_sync_metrics(
1023
- kinds=[MetricResourceKind.RECONCILIATION]
1024
- )
1037
+
1038
+ async with metric_resource_context(MetricResourceKind.RECONCILIATION):
1039
+ ocean.metrics.sync_state = SyncState.COMPLETED if success else SyncState.FAILED
1040
+ await ocean.metrics.send_metrics_to_webhook(kind=MetricResourceKind.RECONCILIATION)
1041
+ await ocean.metrics.report_sync_metrics(kinds=[MetricResourceKind.RECONCILIATION])
1042
+
1025
1043
  return success
1026
1044
  finally:
1027
1045
  await ocean.app.cache_provider.clear()
@@ -120,7 +120,6 @@ class ProcessWrapper(multiprocessing.Process):
120
120
  logger.error(f"Process {self.pid} failed with exit code {self.exitcode}")
121
121
  else:
122
122
  logger.info(f"Process {self.pid} finished with exit code {self.exitcode}")
123
- ocean.metrics.cleanup_prometheus_metrics(self.pid)
124
123
  return super().join()
125
124
 
126
125
  def clear_http_client_context() -> None:
@@ -1,21 +1,22 @@
1
1
  import os
2
- from typing import Any, TYPE_CHECKING, Optional, Dict, List, Tuple
3
- from fastapi import APIRouter
4
- from port_ocean.exceptions.context import ResourceContextNotFoundError
2
+ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple
3
+
5
4
  import prometheus_client
6
- from httpx import AsyncClient
7
- from fastapi.responses import PlainTextResponse
8
- from loguru import logger
9
- from port_ocean.context import metric_resource, resource
10
- from prometheus_client import Gauge
11
5
  import prometheus_client.openmetrics
12
6
  import prometheus_client.openmetrics.exposition
13
7
  import prometheus_client.parser
14
- from prometheus_client import multiprocess
8
+ from fastapi import APIRouter
9
+ from fastapi.responses import PlainTextResponse
10
+ from httpx import AsyncClient
11
+ from loguru import logger
12
+ from prometheus_client import Gauge, multiprocess
13
+
14
+ from port_ocean.context import metric_resource, resource
15
+ from port_ocean.exceptions.context import ResourceContextNotFoundError
15
16
 
16
17
  if TYPE_CHECKING:
17
- from port_ocean.config.settings import MetricsSettings, IntegrationSettings
18
18
  from port_ocean.clients.port.client import PortClient
19
+ from port_ocean.config.settings import IntegrationSettings, MetricsSettings
19
20
 
20
21
 
21
22
  class MetricPhase:
@@ -61,6 +62,7 @@ class SyncState:
61
62
  class MetricResourceKind:
62
63
  RECONCILIATION = "__reconciliation__"
63
64
  RESYNC = "__resync__"
65
+ RUNTIME = "__runtime__"
64
66
 
65
67
 
66
68
  # Registry for core and custom metrics
@@ -278,7 +280,7 @@ class Metrics:
278
280
  try:
279
281
  return metric_resource.metric_resource.metric_resource_kind
280
282
  except ResourceContextNotFoundError:
281
- return "__runtime__"
283
+ return MetricResourceKind.RUNTIME
282
284
 
283
285
  def generate_latest(self) -> str:
284
286
  return prometheus_client.openmetrics.exposition.generate_latest(
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "port-ocean"
3
- version = "0.27.7"
3
+ version = "0.27.9"
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"
File without changes
File without changes