port-ocean 0.9.2.dev2__tar.gz → 0.9.3__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 (128) hide show
  1. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/PKG-INFO +1 -1
  2. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/config/settings.py +1 -0
  3. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/handlers/entity_processor/jq_entity_processor.py +19 -42
  4. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/handlers/port_app_config/base.py +1 -0
  5. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/integrations/mixins/sync_raw.py +1 -2
  6. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/pyproject.toml +1 -1
  7. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/LICENSE.md +0 -0
  8. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/README.md +0 -0
  9. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/__init__.py +0 -0
  10. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/bootstrap.py +0 -0
  11. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/__init__.py +0 -0
  12. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cli.py +0 -0
  13. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/commands/__init__.py +0 -0
  14. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/commands/defaults/__init___.py +0 -0
  15. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/commands/defaults/clean.py +0 -0
  16. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/commands/defaults/dock.py +0 -0
  17. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/commands/defaults/group.py +0 -0
  18. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/commands/list_integrations.py +0 -0
  19. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/commands/main.py +0 -0
  20. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/commands/new.py +0 -0
  21. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/commands/pull.py +0 -0
  22. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/commands/sail.py +0 -0
  23. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/commands/version.py +0 -0
  24. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/__init__.py +0 -0
  25. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/cookiecutter.json +0 -0
  26. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/extensions.py +0 -0
  27. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py +0 -0
  28. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.dockerignore +0 -0
  29. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.gitignore +0 -0
  30. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/.gitignore +0 -0
  31. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/spec.yaml +0 -0
  32. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CHANGELOG.md +0 -0
  33. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/Dockerfile +0 -0
  34. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/Makefile +0 -0
  35. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/README.md +0 -0
  36. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/changelog/.gitignore +0 -0
  37. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/debug.py +0 -0
  38. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/main.py +0 -0
  39. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/poetry.toml +0 -0
  40. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/pyproject.toml +0 -0
  41. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/sonar-project.properties +0 -0
  42. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/__init__.py +0 -0
  43. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/cli/utils.py +0 -0
  44. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/clients/__init__.py +0 -0
  45. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/clients/port/__init__.py +0 -0
  46. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/clients/port/authentication.py +0 -0
  47. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/clients/port/client.py +0 -0
  48. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/clients/port/mixins/__init__.py +0 -0
  49. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/clients/port/mixins/blueprints.py +0 -0
  50. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/clients/port/mixins/entities.py +0 -0
  51. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/clients/port/mixins/integrations.py +0 -0
  52. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/clients/port/mixins/migrations.py +0 -0
  53. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/clients/port/retry_transport.py +0 -0
  54. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/clients/port/types.py +0 -0
  55. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/clients/port/utils.py +0 -0
  56. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/config/__init__.py +0 -0
  57. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/config/base.py +0 -0
  58. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/config/dynamic.py +0 -0
  59. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/consumers/__init__.py +0 -0
  60. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/consumers/kafka_consumer.py +0 -0
  61. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/context/__init__.py +0 -0
  62. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/context/event.py +0 -0
  63. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/context/ocean.py +0 -0
  64. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/context/resource.py +0 -0
  65. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/__init__.py +0 -0
  66. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/defaults/__init__.py +0 -0
  67. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/defaults/clean.py +0 -0
  68. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/defaults/common.py +0 -0
  69. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/defaults/initialize.py +0 -0
  70. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/event_listener/__init__.py +0 -0
  71. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/event_listener/base.py +0 -0
  72. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/event_listener/factory.py +0 -0
  73. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/event_listener/http.py +0 -0
  74. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/event_listener/kafka.py +0 -0
  75. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/event_listener/once.py +0 -0
  76. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/event_listener/polling.py +0 -0
  77. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/handlers/__init__.py +0 -0
  78. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/handlers/base.py +0 -0
  79. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/handlers/entities_state_applier/__init__.py +0 -0
  80. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/handlers/entities_state_applier/base.py +0 -0
  81. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/handlers/entities_state_applier/port/__init__.py +0 -0
  82. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/handlers/entities_state_applier/port/applier.py +0 -0
  83. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/handlers/entities_state_applier/port/get_related_entities.py +0 -0
  84. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/handlers/entities_state_applier/port/order_by_entities_dependencies.py +0 -0
  85. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/handlers/entity_processor/__init__.py +0 -0
  86. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/handlers/entity_processor/base.py +0 -0
  87. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/handlers/port_app_config/__init__.py +0 -0
  88. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/handlers/port_app_config/api.py +0 -0
  89. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/handlers/port_app_config/models.py +0 -0
  90. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/integrations/__init__.py +0 -0
  91. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/integrations/base.py +0 -0
  92. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/integrations/mixins/__init__.py +0 -0
  93. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/integrations/mixins/events.py +0 -0
  94. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/integrations/mixins/handler.py +0 -0
  95. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/integrations/mixins/sync.py +0 -0
  96. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/integrations/mixins/utils.py +0 -0
  97. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/models.py +0 -0
  98. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/ocean_types.py +0 -0
  99. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/core/utils.py +0 -0
  100. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/exceptions/__init__.py +0 -0
  101. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/exceptions/api.py +0 -0
  102. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/exceptions/base.py +0 -0
  103. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/exceptions/clients.py +0 -0
  104. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/exceptions/context.py +0 -0
  105. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/exceptions/core.py +0 -0
  106. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/exceptions/port_defaults.py +0 -0
  107. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/exceptions/utils.py +0 -0
  108. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/helpers/__init__.py +0 -0
  109. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/helpers/async_client.py +0 -0
  110. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/helpers/retry.py +0 -0
  111. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/log/__init__.py +0 -0
  112. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/log/handlers.py +0 -0
  113. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/log/logger_setup.py +0 -0
  114. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/log/sensetive.py +0 -0
  115. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/middlewares.py +0 -0
  116. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/ocean.py +0 -0
  117. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/py.typed +0 -0
  118. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/run.py +0 -0
  119. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/sonar-project.properties +0 -0
  120. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/utils/__init__.py +0 -0
  121. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/utils/async_http.py +0 -0
  122. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/utils/async_iterators.py +0 -0
  123. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/utils/cache.py +0 -0
  124. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/utils/misc.py +0 -0
  125. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/utils/queue_utils.py +0 -0
  126. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/utils/repeat.py +0 -0
  127. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/utils/signal.py +0 -0
  128. {port_ocean-0.9.2.dev2 → port_ocean-0.9.3}/port_ocean/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: port-ocean
3
- Version: 0.9.2.dev2
3
+ Version: 0.9.3
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
@@ -62,6 +62,7 @@ class IntegrationSettings(BaseOceanModel, extra=Extra.allow):
62
62
 
63
63
 
64
64
  class IntegrationConfiguration(BaseOceanSettings, extra=Extra.allow):
65
+ allow_environment_variables_jq_access: bool = True
65
66
  initialize_port_resources: bool = True
66
67
  scheduled_resync_interval: int | None = None
67
68
  client_timeout: int = 30
@@ -4,7 +4,6 @@ from asyncio import Task
4
4
  from dataclasses import dataclass, field
5
5
  from functools import lru_cache
6
6
  from typing import Any, Optional
7
- from uuid import uuid4
8
7
 
9
8
  import pyjq as jq # type: ignore
10
9
  from loguru import logger
@@ -45,62 +44,31 @@ class JQEntityProcessor(BaseEntityProcessor):
45
44
 
46
45
  @lru_cache
47
46
  def _compile(self, pattern: str) -> Any:
47
+ if not ocean.config.allow_environment_variables_jq_access:
48
+ pattern = "def env: {}; {} as $ENV | " + pattern
48
49
  return jq.compile(pattern)
49
50
 
50
51
  async def _search(self, data: dict[str, Any], pattern: str) -> Any:
51
- identifier = str(uuid4())
52
52
  try:
53
53
  loop = asyncio.get_event_loop()
54
- logger.info(
55
- f"__COMPILING__ jq execution with pattern: {pattern}. trace-id: {identifier}"
56
- )
57
54
  compiled_pattern = self._compile(pattern)
58
55
  first_value_callable = functools.partial(compiled_pattern.first, data)
59
- logger.info(
60
- f"__STARTING__ jq execution with pattern: {pattern} and data: {data}. trace-id: {identifier}"
61
- )
62
- result = await loop.run_in_executor(None, first_value_callable)
63
- logger.info(
64
- f"__FINISHED__ jq execution with pattern: {pattern}. trace-id: {identifier} \n"
65
- f"Result {result}"
66
- )
67
- return result
68
- except Exception as e:
69
- logger.error(
70
- f"__FAILED__ jq execution with pattern: {pattern}. trace-id: {identifier} \n"
71
- f"Error {e}"
56
+ return await loop.run_in_executor(None, first_value_callable)
57
+ except Exception as exc:
58
+ logger.debug(
59
+ f"Failed to search for pattern {pattern} in data {data}, {exc}"
72
60
  )
73
61
  return None
74
62
 
75
63
  async def _search_as_bool(self, data: dict[str, Any], pattern: str) -> bool:
76
64
  loop = asyncio.get_event_loop()
77
- identifier = str(uuid4())
78
- try:
79
- logger.info(
80
- f"__COMPILING_BOOL__ jq execution with pattern: {pattern}. trace-id: {identifier}"
81
- )
82
- compiled_pattern = self._compile(pattern)
83
- first_value_callable = functools.partial(compiled_pattern.first, data)
84
- logger.info(
85
- f"__STARTING_BOOL__ jq execution with pattern: {pattern} and data: {data}. trace-id: {identifier}"
86
- )
87
- value = await loop.run_in_executor(None, first_value_callable)
88
- logger.info(
89
- f"__FINISHED_BOOL__ jq execution with pattern: {pattern}. trace-id: {identifier} \n"
90
- f"Result {value}"
91
- )
92
- except Exception as e:
93
- logger.error(
94
- f"__FAILED_BOOL__ jq execution with pattern: {pattern}. trace-id: {identifier} \n"
95
- f"Error {e}"
96
- )
97
- raise
65
+ compiled_pattern = self._compile(pattern)
66
+ first_value_callable = functools.partial(compiled_pattern.first, data)
67
+ value = await loop.run_in_executor(None, first_value_callable)
98
68
 
99
69
  if isinstance(value, bool):
100
70
  return value
101
- logger.error(
102
- f"__FAILED_BOOL__ jq execution with pattern: {pattern}. Invalid type got {type(value)} instead. trace-id: {identifier}"
103
- )
71
+
104
72
  raise EntityProcessorException(
105
73
  f"Expected boolean value, got {type(value)} instead"
106
74
  )
@@ -244,6 +212,15 @@ class JQEntityProcessor(BaseEntityProcessor):
244
212
  examples_to_send.append(result.raw_data)
245
213
  else:
246
214
  failed_entities.append(parsed_entity)
215
+ if (
216
+ not calculated_entities_results
217
+ and raw_results
218
+ and send_raw_data_examples_amount > 0
219
+ ):
220
+ logger.warning(
221
+ f"No entities were parsed from {len(raw_results)} raw results, sending raw data examples"
222
+ )
223
+ examples_to_send = raw_results[:send_raw_data_examples_amount]
247
224
 
248
225
  await self._send_examples(examples_to_send, mapping.kind)
249
226
 
@@ -76,6 +76,7 @@ class BasePortAppConfig(BaseHandler):
76
76
  logger.error(
77
77
  "Invalid port app config found. Please check that the integration has been configured correctly."
78
78
  )
79
+ logger.warning(f"Invalid port app config: {raw_config}")
79
80
  raise
80
81
 
81
82
  event.port_app_config = self._app_config_cache.port_app_config
@@ -90,7 +90,6 @@ class SyncRawMixin(HandlerMixin, EventsMixin):
90
90
  ) -> tuple[RESYNC_RESULT, list[RAW_RESULT | Exception]]:
91
91
  tasks = []
92
92
  results = []
93
-
94
93
  for task in fns:
95
94
  if inspect.isasyncgenfunction(task):
96
95
  results.append(resync_generator_wrapper(task, resource_config.kind))
@@ -415,7 +414,7 @@ class SyncRawMixin(HandlerMixin, EventsMixin):
415
414
  app_config = await self.port_app_config_handler.get_port_app_config(
416
415
  use_cache=False
417
416
  )
418
-
417
+ logger.info(f"Resync will use the following mappings: {app_config.dict()}")
419
418
  try:
420
419
  entities_at_port = await ocean.port_client.search_entities(
421
420
  user_agent_type
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "port-ocean"
3
- version = "0.9.2-dev02"
3
+ version = "0.9.3"
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