port-ocean 0.27.3__tar.gz → 0.27.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.
- {port_ocean-0.27.3 → port_ocean-0.27.5}/PKG-INFO +2 -2
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/event_listener/kafka.py +14 -0
- port_ocean-0.27.5/port_ocean/tests/core/event_listener/test_kafka.py +70 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/pyproject.toml +2 -2
- {port_ocean-0.27.3 → port_ocean-0.27.5}/LICENSE.md +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/README.md +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/integrations/_infra/Dockerfile.Deb +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/integrations/_infra/Dockerfile.alpine +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/integrations/_infra/Dockerfile.base.builder +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/integrations/_infra/Dockerfile.base.runner +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/integrations/_infra/Dockerfile.dockerignore +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/integrations/_infra/Dockerfile.local +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/integrations/_infra/Makefile +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/integrations/_infra/README.md +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/integrations/_infra/entry_local.sh +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/integrations/_infra/grpcio.sh +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/integrations/_infra/init.sh +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/bootstrap.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cache/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cache/base.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cache/disk.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cache/errors.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cache/memory.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cli.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/commands/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/commands/defaults/__init___.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/commands/defaults/clean.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/commands/defaults/dock.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/commands/defaults/group.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/commands/list_integrations.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/commands/main.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/commands/new.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/commands/pull.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/commands/sail.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/commands/version.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/cookiecutter.json +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/extensions.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.env.example +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.gitignore +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/.gitignore +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/blueprints.json +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/port-app-config.yml +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/spec.yaml +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CHANGELOG.md +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CONTRIBUTING.md +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/README.md +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/changelog/.gitignore +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/debug.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/main.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/poetry.toml +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/pyproject.toml +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/sonar-project.properties +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/test_sample.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/utils.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/clients/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/clients/auth/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/clients/auth/auth_client.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/clients/auth/oauth_client.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/clients/port/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/clients/port/authentication.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/clients/port/client.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/clients/port/mixins/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/clients/port/mixins/blueprints.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/clients/port/mixins/entities.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/clients/port/mixins/integrations.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/clients/port/mixins/migrations.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/clients/port/mixins/organization.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/clients/port/retry_transport.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/clients/port/types.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/clients/port/utils.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/config/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/config/base.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/config/dynamic.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/config/settings.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/consumers/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/consumers/kafka_consumer.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/context/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/context/event.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/context/metric_resource.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/context/ocean.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/context/resource.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/defaults/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/defaults/clean.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/defaults/common.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/defaults/initialize.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/event_listener/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/event_listener/base.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/event_listener/factory.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/event_listener/http.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/event_listener/once.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/event_listener/polling.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/event_listener/webhooks_only.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/base.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/entities_state_applier/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/entities_state_applier/base.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/entities_state_applier/port/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/entities_state_applier/port/applier.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/entities_state_applier/port/get_related_entities.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/entities_state_applier/port/order_by_entities_dependencies.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/entity_processor/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/entity_processor/base.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/entity_processor/jq_entity_processor.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/port_app_config/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/port_app_config/api.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/port_app_config/base.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/port_app_config/models.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/queue/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/queue/abstract_queue.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/queue/group_queue.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/queue/local_queue.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/resync_state_updater/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/resync_state_updater/updater.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/webhook/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/webhook/abstract_webhook_processor.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/webhook/processor_manager.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/webhook/webhook_event.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/integrations/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/integrations/base.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/integrations/mixins/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/integrations/mixins/events.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/integrations/mixins/handler.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/integrations/mixins/live_events.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/integrations/mixins/sync.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/integrations/mixins/sync_raw.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/integrations/mixins/utils.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/models.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/ocean_types.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/utils/entity_topological_sorter.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/utils/utils.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/debug_cli.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/exceptions/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/exceptions/api.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/exceptions/base.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/exceptions/clients.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/exceptions/context.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/exceptions/core.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/exceptions/port_defaults.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/exceptions/utils.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/exceptions/webhook_processor.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/helpers/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/helpers/async_client.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/helpers/metric/metric.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/helpers/metric/utils.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/helpers/retry.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/log/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/log/handlers.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/log/logger_setup.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/log/sensetive.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/middlewares.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/ocean.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/py.typed +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/run.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/sonar-project.properties +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/cache/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/cache/test_disk_cache.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/cache/test_memory_cache.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/clients/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/clients/oauth/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/clients/oauth/test_oauth_client.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/clients/port/mixins/test_entities.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/clients/port/mixins/test_integrations.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/clients/port/mixins/test_organization_mixin.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/config/test_config.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/conftest.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/conftest.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/defaults/test_common.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/entities_state_applier/test_applier.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/entity_processor/test_jq_entity_processor.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/mixins/test_live_events.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/mixins/test_sync_raw.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/port_app_config/test_api.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/port_app_config/test_base.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/queue/test_group_queue.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/queue/test_local_queue.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/webhook/test_abstract_webhook_processor.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/webhook/test_processor_manager.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/webhook/test_webhook_event.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/test_utils.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/utils/test_entity_topological_sorter.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/utils/test_resolve_entities_diff.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/helpers/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/helpers/fake_port_api.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/helpers/fixtures.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/helpers/integration.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/helpers/ocean_app.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/helpers/port_client.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/helpers/smoke_test.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/log/test_handlers.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/test_metric.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/test_ocean.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/test_smoke.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/utils/test_async_iterators.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/utils/test_cache.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/utils/__init__.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/utils/async_http.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/utils/async_iterators.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/utils/cache.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/utils/ipc.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/utils/misc.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/utils/queue_utils.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/utils/repeat.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/utils/signal.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/utils/time.py +0 -0
- {port_ocean-0.27.3 → port_ocean-0.27.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.27.
|
3
|
+
Version: 0.27.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
|
@@ -26,7 +26,7 @@ Requires-Dist: aiostream (>=0.5.2,<0.7.0)
|
|
26
26
|
Requires-Dist: click (>=8.1.3,<9.0.0) ; extra == "cli"
|
27
27
|
Requires-Dist: confluent-kafka (>=2.10.1,<3.0.0)
|
28
28
|
Requires-Dist: cookiecutter (>=2.1.1,<3.0.0) ; extra == "cli"
|
29
|
-
Requires-Dist: fastapi (>=0.
|
29
|
+
Requires-Dist: fastapi (>=0.116.0,<0.117.0)
|
30
30
|
Requires-Dist: httpx (>=0.28.1,<0.29.0)
|
31
31
|
Requires-Dist: jinja2 (>=3.1.6)
|
32
32
|
Requires-Dist: jinja2-time (>=0.2.0,<0.3.0) ; extra == "cli"
|
@@ -16,6 +16,7 @@ from port_ocean.core.event_listener.base import (
|
|
16
16
|
EventListenerEvents,
|
17
17
|
EventListenerSettings,
|
18
18
|
)
|
19
|
+
from pydantic import validator
|
19
20
|
|
20
21
|
|
21
22
|
class KafkaEventListenerSettings(EventListenerSettings):
|
@@ -46,6 +47,19 @@ class KafkaEventListenerSettings(EventListenerSettings):
|
|
46
47
|
kafka_security_enabled: bool = True
|
47
48
|
consumer_poll_timeout: int = 1
|
48
49
|
|
50
|
+
@validator("brokers")
|
51
|
+
@classmethod
|
52
|
+
def parse_brokers(cls, v: str) -> str:
|
53
|
+
# If it's a JSON array string, parse and join
|
54
|
+
if v.strip().startswith("[") and v.strip().endswith("]"):
|
55
|
+
try:
|
56
|
+
parsed = json.loads(v)
|
57
|
+
if isinstance(parsed, list):
|
58
|
+
return ",".join(parsed)
|
59
|
+
except json.JSONDecodeError:
|
60
|
+
pass
|
61
|
+
return v
|
62
|
+
|
49
63
|
def get_changelog_destination_details(self) -> dict[str, Any]:
|
50
64
|
"""
|
51
65
|
Returns the changelog destination configuration for the Kafka event listener.
|
@@ -0,0 +1,70 @@
|
|
1
|
+
from port_ocean.core.event_listener.kafka import KafkaEventListenerSettings
|
2
|
+
import pytest
|
3
|
+
from pydantic import ValidationError
|
4
|
+
|
5
|
+
|
6
|
+
def test_default_kafka_settings() -> None:
|
7
|
+
"""Test default values are properly set"""
|
8
|
+
config = KafkaEventListenerSettings(type="KAFKA")
|
9
|
+
assert config.type == "KAFKA"
|
10
|
+
assert config.security_protocol == "SASL_SSL"
|
11
|
+
assert config.authentication_mechanism == "SCRAM-SHA-512"
|
12
|
+
assert config.kafka_security_enabled is True
|
13
|
+
assert config.consumer_poll_timeout == 1
|
14
|
+
assert "b-1-public.publicclusterprod" in config.brokers
|
15
|
+
|
16
|
+
|
17
|
+
def test_brokers_json_array_parsing() -> None:
|
18
|
+
"""Test that JSON array strings get converted to comma-separated"""
|
19
|
+
json_brokers = '["broker1:9092", "broker2:9092", "broker3:9092"]'
|
20
|
+
config = KafkaEventListenerSettings(type="KAFKA", brokers=json_brokers)
|
21
|
+
assert config.brokers == "broker1:9092,broker2:9092,broker3:9092"
|
22
|
+
|
23
|
+
|
24
|
+
def test_brokers_regular_string_unchanged() -> None:
|
25
|
+
"""Test that regular comma-separated strings pass through unchanged"""
|
26
|
+
regular_brokers = "broker1:9092,broker2:9092"
|
27
|
+
config = KafkaEventListenerSettings(type="KAFKA", brokers=regular_brokers)
|
28
|
+
assert config.brokers == regular_brokers
|
29
|
+
|
30
|
+
|
31
|
+
def test_brokers_malformed_json_unchanged() -> None:
|
32
|
+
"""Test that malformed JSON strings don't break validation"""
|
33
|
+
bad_json = "[broker1:9092, broker2:9092"
|
34
|
+
config = KafkaEventListenerSettings(type="KAFKA", brokers=bad_json)
|
35
|
+
assert config.brokers == bad_json
|
36
|
+
|
37
|
+
|
38
|
+
def test_custom_values() -> None:
|
39
|
+
"""Test overriding default values"""
|
40
|
+
config = KafkaEventListenerSettings(
|
41
|
+
type="KAFKA",
|
42
|
+
brokers="custom:9092",
|
43
|
+
security_protocol="PLAINTEXT",
|
44
|
+
authentication_mechanism="PLAIN",
|
45
|
+
kafka_security_enabled=False,
|
46
|
+
consumer_poll_timeout=5,
|
47
|
+
)
|
48
|
+
assert config.brokers == "custom:9092"
|
49
|
+
assert config.security_protocol == "PLAINTEXT"
|
50
|
+
assert config.authentication_mechanism == "PLAIN"
|
51
|
+
assert config.kafka_security_enabled is False
|
52
|
+
assert config.consumer_poll_timeout == 5
|
53
|
+
|
54
|
+
|
55
|
+
def test_type_literal_validation() -> None:
|
56
|
+
"""Test that type field only accepts KAFKA"""
|
57
|
+
with pytest.raises(ValidationError):
|
58
|
+
KafkaEventListenerSettings(type="RABBITMQ") # type: ignore[arg-type]
|
59
|
+
|
60
|
+
|
61
|
+
def test_empty_brokers_array() -> None:
|
62
|
+
"""Test empty JSON array becomes empty string"""
|
63
|
+
config = KafkaEventListenerSettings(type="KAFKA", brokers="[]")
|
64
|
+
assert config.brokers == ""
|
65
|
+
|
66
|
+
|
67
|
+
def test_single_broker_array() -> None:
|
68
|
+
"""Test single broker in JSON array"""
|
69
|
+
config = KafkaEventListenerSettings(type="KAFKA", brokers='["single:9092"]')
|
70
|
+
assert config.brokers == "single:9092"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "port-ocean"
|
3
|
-
version = "0.27.
|
3
|
+
version = "0.27.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"
|
@@ -44,7 +44,7 @@ pydantic = { version = "^1.10.8", extras = ["dotenv"] }
|
|
44
44
|
loguru = "^0.7.0"
|
45
45
|
pyyaml = "^6.0"
|
46
46
|
werkzeug = ">=2.3.4,<4.0.0"
|
47
|
-
fastapi = "^0.
|
47
|
+
fastapi = "^0.116.0"
|
48
48
|
uvicorn = "^0.34.3"
|
49
49
|
confluent-kafka = "^2.10.1"
|
50
50
|
httpx = "^0.28.1"
|
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
|
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
|
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
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py
RENAMED
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
|
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
|
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
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/entities_state_applier/__init__.py
RENAMED
File without changes
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/entities_state_applier/base.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/entity_processor/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/port_app_config/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/resync_state_updater/__init__.py
RENAMED
File without changes
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/resync_state_updater/updater.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/core/handlers/webhook/processor_manager.py
RENAMED
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
|
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
|
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/clients/port/mixins/test_entities.py
RENAMED
File without changes
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/clients/port/mixins/test_integrations.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/mixins/test_live_events.py
RENAMED
File without changes
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/mixins/test_sync_raw.py
RENAMED
File without changes
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/port_app_config/test_api.py
RENAMED
File without changes
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/port_app_config/test_base.py
RENAMED
File without changes
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/queue/test_group_queue.py
RENAMED
File without changes
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/queue/test_local_queue.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/handlers/webhook/test_webhook_event.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{port_ocean-0.27.3 → port_ocean-0.27.5}/port_ocean/tests/core/utils/test_resolve_entities_diff.py
RENAMED
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
|
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
|