port-ocean 0.25.2__tar.gz → 0.25.4__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.25.2 → port_ocean-0.25.4}/PKG-INFO +1 -1
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/helpers/retry.py +68 -1
- {port_ocean-0.25.2 → port_ocean-0.25.4}/pyproject.toml +1 -1
- {port_ocean-0.25.2 → port_ocean-0.25.4}/LICENSE.md +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/README.md +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/integrations/_infra/Dockerfile.Deb +1 -1
- {port_ocean-0.25.2 → port_ocean-0.25.4}/integrations/_infra/Dockerfile.alpine +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/integrations/_infra/Dockerfile.base.builder +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/integrations/_infra/Dockerfile.base.runner +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/integrations/_infra/Dockerfile.dockerignore +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/integrations/_infra/Dockerfile.local +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/integrations/_infra/Makefile +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/integrations/_infra/README.md +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/integrations/_infra/entry_local.sh +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/integrations/_infra/grpcio.sh +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/integrations/_infra/init.sh +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/bootstrap.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cache/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cache/base.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cache/disk.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cache/errors.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cache/memory.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cli.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/commands/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/commands/defaults/__init___.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/commands/defaults/clean.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/commands/defaults/dock.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/commands/defaults/group.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/commands/list_integrations.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/commands/main.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/commands/new.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/commands/pull.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/commands/sail.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/commands/version.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/cookiecutter.json +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/extensions.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/hooks/post_gen_project.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.env.example +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.gitignore +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/.gitignore +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/blueprints.json +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/resources/port-app-config.yml +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/.port/spec.yaml +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CHANGELOG.md +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/CONTRIBUTING.md +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/README.md +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/changelog/.gitignore +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/debug.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/main.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/poetry.toml +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/pyproject.toml +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/sonar-project.properties +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/cookiecutter/{{cookiecutter.integration_slug}}/tests/test_sample.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/cli/utils.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/clients/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/clients/auth/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/clients/auth/auth_client.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/clients/auth/oauth_client.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/clients/port/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/clients/port/authentication.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/clients/port/client.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/clients/port/mixins/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/clients/port/mixins/blueprints.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/clients/port/mixins/entities.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/clients/port/mixins/integrations.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/clients/port/mixins/migrations.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/clients/port/mixins/organization.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/clients/port/retry_transport.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/clients/port/types.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/clients/port/utils.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/config/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/config/base.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/config/dynamic.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/config/settings.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/consumers/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/consumers/kafka_consumer.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/context/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/context/event.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/context/metric_resource.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/context/ocean.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/context/resource.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/defaults/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/defaults/clean.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/defaults/common.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/defaults/initialize.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/event_listener/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/event_listener/base.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/event_listener/factory.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/event_listener/http.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/event_listener/kafka.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/event_listener/once.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/event_listener/polling.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/event_listener/webhooks_only.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/base.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/entities_state_applier/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/entities_state_applier/base.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/entities_state_applier/port/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/entities_state_applier/port/applier.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/entities_state_applier/port/get_related_entities.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/entities_state_applier/port/order_by_entities_dependencies.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/entity_processor/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/entity_processor/base.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/entity_processor/jq_entity_processor.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/port_app_config/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/port_app_config/api.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/port_app_config/base.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/port_app_config/models.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/queue/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/queue/abstract_queue.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/queue/local_queue.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/resync_state_updater/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/resync_state_updater/updater.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/webhook/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/webhook/abstract_webhook_processor.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/webhook/processor_manager.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/webhook/webhook_event.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/integrations/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/integrations/base.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/integrations/mixins/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/integrations/mixins/events.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/integrations/mixins/handler.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/integrations/mixins/live_events.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/integrations/mixins/sync.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/integrations/mixins/sync_raw.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/integrations/mixins/utils.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/models.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/ocean_types.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/utils/entity_topological_sorter.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/utils/utils.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/debug_cli.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/exceptions/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/exceptions/api.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/exceptions/base.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/exceptions/clients.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/exceptions/context.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/exceptions/core.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/exceptions/port_defaults.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/exceptions/utils.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/exceptions/webhook_processor.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/helpers/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/helpers/async_client.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/helpers/metric/metric.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/helpers/metric/utils.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/log/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/log/handlers.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/log/logger_setup.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/log/sensetive.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/middlewares.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/ocean.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/py.typed +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/run.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/sonar-project.properties +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/cache/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/cache/test_disk_cache.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/cache/test_memory_cache.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/clients/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/clients/oauth/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/clients/oauth/test_oauth_client.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/clients/port/mixins/test_entities.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/clients/port/mixins/test_integrations.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/clients/port/mixins/test_organization_mixin.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/config/test_config.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/conftest.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/conftest.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/defaults/test_common.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/handlers/entities_state_applier/test_applier.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/handlers/entity_processor/test_jq_entity_processor.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/handlers/mixins/test_live_events.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/handlers/mixins/test_sync_raw.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/handlers/port_app_config/test_api.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/handlers/port_app_config/test_base.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/handlers/queue/test_local_queue.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/handlers/webhook/test_abstract_webhook_processor.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/handlers/webhook/test_processor_manager.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/handlers/webhook/test_webhook_event.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/test_utils.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/utils/test_entity_topological_sorter.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/utils/test_resolve_entities_diff.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/helpers/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/helpers/fake_port_api.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/helpers/fixtures.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/helpers/integration.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/helpers/ocean_app.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/helpers/port_client.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/helpers/smoke_test.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/log/test_handlers.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/test_metric.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/test_ocean.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/test_smoke.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/utils/test_async_iterators.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/utils/test_cache.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/utils/__init__.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/utils/async_http.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/utils/async_iterators.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/utils/cache.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/utils/ipc.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/utils/misc.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/utils/queue_utils.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/utils/repeat.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/utils/signal.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/utils/time.py +0 -0
- {port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/version.py +0 -0
@@ -4,9 +4,10 @@ import time
|
|
4
4
|
from datetime import datetime
|
5
5
|
from functools import partial
|
6
6
|
from http import HTTPStatus
|
7
|
-
from typing import Any, Callable, Coroutine, Iterable, Mapping, Union
|
7
|
+
from typing import Any, Callable, Coroutine, Iterable, Mapping, Union, cast
|
8
8
|
import httpx
|
9
9
|
from dateutil.parser import isoparse
|
10
|
+
import logging
|
10
11
|
|
11
12
|
_ON_RETRY_CALLBACK: Callable[[httpx.Request], httpx.Request] | None = None
|
12
13
|
|
@@ -148,6 +149,9 @@ class RetryTransport(httpx.AsyncBaseTransport, httpx.BaseTransport):
|
|
148
149
|
response = self._retry_operation(request, send_method)
|
149
150
|
else:
|
150
151
|
response = transport.handle_request(request)
|
152
|
+
|
153
|
+
self._log_response_size(request, response)
|
154
|
+
|
151
155
|
return response
|
152
156
|
except Exception as e:
|
153
157
|
if not self._is_retryable_method(request) and self._logger is not None:
|
@@ -172,6 +176,8 @@ class RetryTransport(httpx.AsyncBaseTransport, httpx.BaseTransport):
|
|
172
176
|
else:
|
173
177
|
response = await transport.handle_async_request(request)
|
174
178
|
|
179
|
+
await self._log_response_size_async(request, response)
|
180
|
+
|
175
181
|
return response
|
176
182
|
except Exception as e:
|
177
183
|
# Retyable methods are logged via _log_error
|
@@ -246,6 +252,67 @@ class RetryTransport(httpx.AsyncBaseTransport, httpx.BaseTransport):
|
|
246
252
|
f" {type(error).__name__} - {str(error) or 'No error message'}, retrying in {sleep_time} seconds."
|
247
253
|
)
|
248
254
|
|
255
|
+
def _should_log_response_size(self, request: httpx.Request) -> bool:
|
256
|
+
return self._logger is not None and not request.url.host.endswith("getport.io")
|
257
|
+
|
258
|
+
def _get_content_length(self, response: httpx.Response) -> int | None:
|
259
|
+
content_length = response.headers.get("Content-Length") or response.headers.get(
|
260
|
+
"content-length"
|
261
|
+
)
|
262
|
+
if content_length:
|
263
|
+
return int(content_length)
|
264
|
+
return None
|
265
|
+
|
266
|
+
async def _log_response_size_async(
|
267
|
+
self, request: httpx.Request, response: httpx.Response
|
268
|
+
) -> None:
|
269
|
+
"""Log the size of the response."""
|
270
|
+
if not self._should_log_response_size(request):
|
271
|
+
return
|
272
|
+
|
273
|
+
# Try to get content length from headers first
|
274
|
+
content_length = self._get_content_length(response)
|
275
|
+
if content_length is not None:
|
276
|
+
size_info = content_length
|
277
|
+
else:
|
278
|
+
# If no Content-Length header, try to get actual content size
|
279
|
+
try:
|
280
|
+
actual_size = len(await response.aread())
|
281
|
+
size_info = actual_size
|
282
|
+
except Exception as e:
|
283
|
+
cast(logging.Logger, self._logger).error(
|
284
|
+
f"Error getting response size: {e}"
|
285
|
+
)
|
286
|
+
return
|
287
|
+
|
288
|
+
cast(logging.Logger, self._logger).info(
|
289
|
+
f"Response for {request.method} {request.url} - Size: {size_info} bytes"
|
290
|
+
)
|
291
|
+
|
292
|
+
def _log_response_size(
|
293
|
+
self, request: httpx.Request, response: httpx.Response
|
294
|
+
) -> None:
|
295
|
+
if not self._should_log_response_size(request):
|
296
|
+
return
|
297
|
+
|
298
|
+
content_length = self._get_content_length(response)
|
299
|
+
if content_length is not None:
|
300
|
+
size_info = content_length
|
301
|
+
else:
|
302
|
+
# If no Content-Length header, try to get actual content size
|
303
|
+
try:
|
304
|
+
actual_size = len(response.read())
|
305
|
+
size_info = actual_size
|
306
|
+
except Exception as e:
|
307
|
+
cast(logging.Logger, self._logger).error(
|
308
|
+
f"Error getting response size: {e}"
|
309
|
+
)
|
310
|
+
return
|
311
|
+
|
312
|
+
cast(logging.Logger, self._logger).info(
|
313
|
+
f"Response for {request.method} {request.url} - Size: {size_info} bytes"
|
314
|
+
)
|
315
|
+
|
249
316
|
async def _should_retry_async(self, response: httpx.Response) -> bool:
|
250
317
|
return response.status_code in self._retry_status_codes
|
251
318
|
|
File without changes
|
File without changes
|
@@ -3,7 +3,6 @@ ARG BASE_RUNNER_PYTHON_IMAGE=ghcr.io/port-labs/port-ocean-base-runner:latest
|
|
3
3
|
|
4
4
|
FROM ${BASE_BUILDER_PYTHON_IMAGE} AS base
|
5
5
|
|
6
|
-
ARG OCEAN_USER_ID=999
|
7
6
|
ARG BUILD_CONTEXT
|
8
7
|
ARG BUILDPLATFORM
|
9
8
|
|
@@ -19,6 +18,7 @@ COPY ./${BUILD_CONTEXT}/pyproject.toml ./${BUILD_CONTEXT}/poetry.lock /app/
|
|
19
18
|
RUN poetry install --without dev --no-root --no-interaction --no-ansi --no-cache
|
20
19
|
|
21
20
|
FROM ${BASE_RUNNER_PYTHON_IMAGE} AS prod
|
21
|
+
ARG OCEAN_USER_ID=999
|
22
22
|
|
23
23
|
RUN groupadd -r appgroup && useradd -r -g appgroup -m -u ${OCEAN_USER_ID} ocean
|
24
24
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
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.25.2 → port_ocean-0.25.4}/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
|
File without changes
|
{port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/entities_state_applier/__init__.py
RENAMED
File without changes
|
{port_ocean-0.25.2 → port_ocean-0.25.4}/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.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/entity_processor/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{port_ocean-0.25.2 → port_ocean-0.25.4}/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.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/resync_state_updater/__init__.py
RENAMED
File without changes
|
{port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/core/handlers/resync_state_updater/updater.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{port_ocean-0.25.2 → port_ocean-0.25.4}/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.25.2 → port_ocean-0.25.4}/port_ocean/tests/clients/port/mixins/test_entities.py
RENAMED
File without changes
|
{port_ocean-0.25.2 → port_ocean-0.25.4}/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.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/handlers/mixins/test_live_events.py
RENAMED
File without changes
|
{port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/handlers/mixins/test_sync_raw.py
RENAMED
File without changes
|
{port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/handlers/port_app_config/test_api.py
RENAMED
File without changes
|
{port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/handlers/port_app_config/test_base.py
RENAMED
File without changes
|
{port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/handlers/queue/test_local_queue.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{port_ocean-0.25.2 → port_ocean-0.25.4}/port_ocean/tests/core/handlers/webhook/test_webhook_event.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{port_ocean-0.25.2 → port_ocean-0.25.4}/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
|