port-ocean 0.26.1__tar.gz → 0.26.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {port_ocean-0.26.1 → port_ocean-0.26.2}/PKG-INFO +1 -1
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/clients/port/mixins/integrations.py +18 -2
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/config/settings.py +2 -1
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/integrations/mixins/sync_raw.py +19 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/conftest.py +3 -2
- {port_ocean-0.26.1 → port_ocean-0.26.2}/pyproject.toml +1 -1
- {port_ocean-0.26.1 → port_ocean-0.26.2}/LICENSE.md +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/README.md +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/integrations/_infra/Dockerfile.Deb +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/integrations/_infra/Dockerfile.alpine +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/integrations/_infra/Dockerfile.base.builder +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/integrations/_infra/Dockerfile.base.runner +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/integrations/_infra/Dockerfile.dockerignore +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/integrations/_infra/Dockerfile.local +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/integrations/_infra/Makefile +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/integrations/_infra/README.md +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/integrations/_infra/entry_local.sh +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/integrations/_infra/grpcio.sh +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/integrations/_infra/init.sh +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/bootstrap.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cache/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cache/base.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cache/disk.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cache/errors.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cache/memory.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cli.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/commands/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/commands/defaults/__init___.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/commands/defaults/clean.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/commands/defaults/dock.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/commands/defaults/group.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/commands/list_integrations.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/commands/main.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/commands/new.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/commands/pull.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/commands/sail.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/commands/version.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/cookiecutter.json +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/extensions.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.env.example +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.gitignore +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/.gitignore +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/blueprints.json +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/port-app-config.yml +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/spec.yaml +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CHANGELOG.md +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CONTRIBUTING.md +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/README.md +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/changelog/.gitignore +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/debug.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/main.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/poetry.toml +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/pyproject.toml +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/sonar-project.properties +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/test_sample.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/cli/utils.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/clients/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/clients/auth/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/clients/auth/auth_client.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/clients/auth/oauth_client.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/clients/port/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/clients/port/authentication.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/clients/port/client.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/clients/port/mixins/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/clients/port/mixins/blueprints.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/clients/port/mixins/entities.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/clients/port/mixins/migrations.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/clients/port/mixins/organization.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/clients/port/retry_transport.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/clients/port/types.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/clients/port/utils.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/config/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/config/base.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/config/dynamic.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/consumers/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/consumers/kafka_consumer.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/context/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/context/event.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/context/metric_resource.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/context/ocean.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/context/resource.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/defaults/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/defaults/clean.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/defaults/common.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/defaults/initialize.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/event_listener/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/event_listener/base.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/event_listener/factory.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/event_listener/http.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/event_listener/kafka.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/event_listener/once.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/event_listener/polling.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/event_listener/webhooks_only.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/base.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/entities_state_applier/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/entities_state_applier/base.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/entities_state_applier/port/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/entities_state_applier/port/applier.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/entities_state_applier/port/get_related_entities.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/entities_state_applier/port/order_by_entities_dependencies.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/entity_processor/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/entity_processor/base.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/entity_processor/jq_entity_processor.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/port_app_config/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/port_app_config/api.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/port_app_config/base.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/port_app_config/models.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/queue/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/queue/abstract_queue.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/queue/local_queue.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/resync_state_updater/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/resync_state_updater/updater.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/webhook/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/webhook/abstract_webhook_processor.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/webhook/processor_manager.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/webhook/webhook_event.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/integrations/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/integrations/base.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/integrations/mixins/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/integrations/mixins/events.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/integrations/mixins/handler.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/integrations/mixins/live_events.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/integrations/mixins/sync.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/integrations/mixins/utils.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/models.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/ocean_types.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/utils/entity_topological_sorter.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/utils/utils.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/debug_cli.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/exceptions/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/exceptions/api.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/exceptions/base.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/exceptions/clients.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/exceptions/context.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/exceptions/core.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/exceptions/port_defaults.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/exceptions/utils.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/exceptions/webhook_processor.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/helpers/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/helpers/async_client.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/helpers/metric/metric.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/helpers/metric/utils.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/helpers/retry.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/log/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/log/handlers.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/log/logger_setup.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/log/sensetive.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/middlewares.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/ocean.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/py.typed +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/run.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/sonar-project.properties +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/cache/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/cache/test_disk_cache.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/cache/test_memory_cache.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/clients/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/clients/oauth/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/clients/oauth/test_oauth_client.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/clients/port/mixins/test_entities.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/clients/port/mixins/test_integrations.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/clients/port/mixins/test_organization_mixin.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/config/test_config.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/conftest.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/defaults/test_common.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/handlers/entities_state_applier/test_applier.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/handlers/entity_processor/test_jq_entity_processor.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/handlers/mixins/test_live_events.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/handlers/mixins/test_sync_raw.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/handlers/port_app_config/test_api.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/handlers/port_app_config/test_base.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/handlers/queue/test_local_queue.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/handlers/webhook/test_abstract_webhook_processor.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/handlers/webhook/test_processor_manager.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/handlers/webhook/test_webhook_event.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/test_utils.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/utils/test_entity_topological_sorter.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/utils/test_resolve_entities_diff.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/helpers/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/helpers/fake_port_api.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/helpers/fixtures.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/helpers/integration.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/helpers/ocean_app.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/helpers/port_client.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/helpers/smoke_test.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/log/test_handlers.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/test_metric.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/test_ocean.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/test_smoke.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/utils/test_async_iterators.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/utils/test_cache.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/utils/__init__.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/utils/async_http.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/utils/async_iterators.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/utils/cache.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/utils/ipc.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/utils/misc.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/utils/queue_utils.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/utils/repeat.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/utils/signal.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/utils/time.py +0 -0
- {port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/version.py +0 -0
@@ -1,9 +1,10 @@
|
|
1
1
|
import asyncio
|
2
|
-
from typing import Any, Dict, List,
|
2
|
+
from typing import TYPE_CHECKING, Any, Dict, List, Optional, TypedDict
|
3
3
|
from urllib.parse import quote_plus
|
4
4
|
|
5
5
|
import httpx
|
6
6
|
from loguru import logger
|
7
|
+
|
7
8
|
from port_ocean.clients.port.authentication import PortAuthentication
|
8
9
|
from port_ocean.clients.port.utils import handle_port_status_code
|
9
10
|
from port_ocean.exceptions.port_defaults import DefaultsProvisionFailed
|
@@ -125,7 +126,7 @@ class IntegrationClientMixin:
|
|
125
126
|
|
126
127
|
while attempts < INTEGRATION_POLLING_RETRY_LIMIT:
|
127
128
|
logger.info(
|
128
|
-
f"Fetching created integration and validating config, attempt {attempts+1}/{INTEGRATION_POLLING_RETRY_LIMIT}",
|
129
|
+
f"Fetching created integration and validating config, attempt {attempts + 1}/{INTEGRATION_POLLING_RETRY_LIMIT}",
|
129
130
|
attempt=attempts,
|
130
131
|
)
|
131
132
|
response = await self._get_current_integration()
|
@@ -288,3 +289,18 @@ class IntegrationClientMixin:
|
|
288
289
|
response = await self._delete_current_integration()
|
289
290
|
handle_port_status_code(response, should_raise, should_log)
|
290
291
|
return response.json()
|
292
|
+
|
293
|
+
async def post_integration_raw_data(
|
294
|
+
self, raw_data: list[dict[Any, Any]], sync_id: str, kind: str
|
295
|
+
) -> None:
|
296
|
+
logger.debug("starting POST raw data request", raw_data=raw_data)
|
297
|
+
headers = await self.auth.headers()
|
298
|
+
response = await self.client.post(
|
299
|
+
f"{self.auth.api_url}/lakehouse/integration/{self.integration_identifier}/sync/{sync_id}/kind/{kind}/items",
|
300
|
+
headers=headers,
|
301
|
+
json={
|
302
|
+
"items": raw_data,
|
303
|
+
},
|
304
|
+
)
|
305
|
+
handle_port_status_code(response, should_log=False)
|
306
|
+
logger.debug("Finished POST raw data request")
|
@@ -12,8 +12,8 @@ from port_ocean.core.event_listener import EventListenerSettingsType
|
|
12
12
|
from port_ocean.core.models import (
|
13
13
|
CachingStorageMode,
|
14
14
|
CreatePortResourcesOrigin,
|
15
|
-
Runtime,
|
16
15
|
ProcessExecutionMode,
|
16
|
+
Runtime,
|
17
17
|
)
|
18
18
|
from port_ocean.utils.misc import get_integration_name, get_spec_file
|
19
19
|
|
@@ -108,6 +108,7 @@ class IntegrationConfiguration(BaseOceanSettings, extra=Extra.allow):
|
|
108
108
|
|
109
109
|
upsert_entities_batch_max_length: int = 20
|
110
110
|
upsert_entities_batch_max_size_in_bytes: int = 1024 * 1024
|
111
|
+
lakehouse_enabled: bool = False
|
111
112
|
|
112
113
|
@validator("process_execution_mode")
|
113
114
|
def validate_process_execution_mode(
|
@@ -363,9 +363,13 @@ class SyncRawMixin(HandlerMixin, EventsMixin):
|
|
363
363
|
results, errors = await self._get_resource_raw_results(resource_config)
|
364
364
|
async_generators: list[ASYNC_GENERATOR_RESYNC_TYPE] = []
|
365
365
|
raw_results: RAW_RESULT = []
|
366
|
+
lakehouse_data_enabled = await self._lakehouse_data_enabled()
|
367
|
+
|
366
368
|
for result in results:
|
367
369
|
if isinstance(result, dict):
|
368
370
|
raw_results.append(result)
|
371
|
+
if lakehouse_data_enabled:
|
372
|
+
await ocean.port_client.post_integration_raw_data(result, event.id, resource_config.kind)
|
369
373
|
else:
|
370
374
|
async_generators.append(result)
|
371
375
|
|
@@ -397,6 +401,8 @@ class SyncRawMixin(HandlerMixin, EventsMixin):
|
|
397
401
|
for generator in async_generators:
|
398
402
|
try:
|
399
403
|
async for items in generator:
|
404
|
+
if lakehouse_data_enabled:
|
405
|
+
await ocean.port_client.post_integration_raw_data(items, event.id, resource_config.kind)
|
400
406
|
number_of_raw_results += len(items)
|
401
407
|
if send_raw_data_examples_amount > 0:
|
402
408
|
send_raw_data_examples_amount = max(
|
@@ -462,6 +468,19 @@ class SyncRawMixin(HandlerMixin, EventsMixin):
|
|
462
468
|
|
463
469
|
return passed_entities, errors
|
464
470
|
|
471
|
+
async def _lakehouse_data_enabled(
|
472
|
+
self
|
473
|
+
) -> bool:
|
474
|
+
"""Check if lakehouse data is enabled.
|
475
|
+
|
476
|
+
Returns:
|
477
|
+
bool: True if lakehouse data is enabled, False otherwise
|
478
|
+
"""
|
479
|
+
flags = await ocean.port_client.get_organization_feature_flags()
|
480
|
+
if "LAKEHOUSE_ELIGIBLE" in flags and ocean.config.lakehouse_enabled:
|
481
|
+
return True
|
482
|
+
return False
|
483
|
+
|
465
484
|
async def register_raw(
|
466
485
|
self,
|
467
486
|
kind: str,
|
@@ -1,10 +1,11 @@
|
|
1
1
|
from contextlib import asynccontextmanager
|
2
2
|
from typing import Any, AsyncGenerator
|
3
|
-
from unittest.mock import
|
3
|
+
from unittest.mock import AsyncMock, MagicMock, patch
|
4
4
|
|
5
5
|
import pytest
|
6
6
|
from httpx import Response
|
7
7
|
|
8
|
+
from port_ocean.cache.memory import InMemoryCacheProvider
|
8
9
|
from port_ocean.clients.port.client import PortClient
|
9
10
|
from port_ocean.config.settings import IntegrationSettings, MetricsSettings
|
10
11
|
from port_ocean.context.event import EventContext
|
@@ -26,7 +27,6 @@ from port_ocean.core.handlers.port_app_config.models import (
|
|
26
27
|
from port_ocean.core.models import Entity, ProcessExecutionMode
|
27
28
|
from port_ocean.helpers.metric.metric import Metrics
|
28
29
|
from port_ocean.ocean import Ocean
|
29
|
-
from port_ocean.cache.memory import InMemoryCacheProvider
|
30
30
|
|
31
31
|
|
32
32
|
@pytest.fixture
|
@@ -107,6 +107,7 @@ def mock_port_client(mock_http_client: MagicMock) -> PortClient:
|
|
107
107
|
)
|
108
108
|
|
109
109
|
mock_port_client.search_entities = AsyncMock(return_value=[]) # type: ignore
|
110
|
+
mock_port_client.get_organization_feature_flags = AsyncMock(return_value=[]) # type: ignore
|
110
111
|
mock_port_client.client = mock_http_client
|
111
112
|
return mock_port_client
|
112
113
|
|
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.26.1 → port_ocean-0.26.2}/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
|
{port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/entities_state_applier/__init__.py
RENAMED
File without changes
|
{port_ocean-0.26.1 → port_ocean-0.26.2}/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.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/entity_processor/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{port_ocean-0.26.1 → port_ocean-0.26.2}/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
|
{port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/resync_state_updater/__init__.py
RENAMED
File without changes
|
{port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/core/handlers/resync_state_updater/updater.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{port_ocean-0.26.1 → port_ocean-0.26.2}/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
|
{port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/clients/port/mixins/test_entities.py
RENAMED
File without changes
|
{port_ocean-0.26.1 → port_ocean-0.26.2}/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
|
{port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/handlers/mixins/test_live_events.py
RENAMED
File without changes
|
{port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/handlers/mixins/test_sync_raw.py
RENAMED
File without changes
|
{port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/handlers/port_app_config/test_api.py
RENAMED
File without changes
|
{port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/handlers/port_app_config/test_base.py
RENAMED
File without changes
|
{port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/handlers/queue/test_local_queue.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{port_ocean-0.26.1 → port_ocean-0.26.2}/port_ocean/tests/core/handlers/webhook/test_webhook_event.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{port_ocean-0.26.1 → port_ocean-0.26.2}/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
|