airbyte-cdk 6.60.16__tar.gz → 6.60.16.post40.dev17219503797__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.
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/PKG-INFO +4 -1
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/connector_builder_handler.py +32 -36
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/main.py +3 -3
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/test_reader/helpers.py +24 -2
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +1 -1
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/Dockerfile +45 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/README.md +142 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/__init__.py +3 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/api_models/__init__.py +41 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/api_models/capabilities.py +7 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/api_models/dicts.py +17 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/api_models/manifest.py +73 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/api_models/stream.py +76 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/app.py +17 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/auth.py +43 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/cli/__init__.py +5 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/cli/_common.py +28 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/cli/_info.py +30 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/cli/_openapi.py +43 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/cli/_start.py +38 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/cli/run.py +59 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/command_processor/processor.py +151 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/command_processor/utils.py +76 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/main.py +24 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/openapi.yaml +641 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/routers/capabilities.py +25 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/routers/health.py +13 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/routers/manifest.py +137 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +15 -22
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +30 -18
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +73 -3
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +4 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +42 -4
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer_test_read_decorator.py +2 -2
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sources/message/concurrent_repository.py +47 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/cursor.py +23 -7
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sources/streams/concurrent/partition_reader.py +86 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +7 -1
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/http_client.py +4 -1
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/utils/slice_logger.py +4 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sql/__init__.py +0 -0
- airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sql/_util/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/pyproject.toml +6 -1
- airbyte_cdk-6.60.16/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -45
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/LICENSE.txt +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/LICENSE_SHORT +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/README.md +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/airbyte_cdk/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/airbyte_cdk/_connector.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/airbyte_cdk/_image.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/airbyte_cdk/_manifest.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/airbyte_cdk/_secrets.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/airbyte_cdk/_version.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/airbyte_cdk/exceptions.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/source_declarative_manifest/README.md +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/config_observation.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/README.md +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/models.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/test_reader/reader.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/destination.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/entrypoint.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/exception_handler.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/logger.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/README.md +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/exceptions.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/manifest_migration.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/migration_handler.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/migrations/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/migrations/http_requester_path_to_url.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/migrations/http_requester_request_body_json_data_to_request_body.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/migrations/http_requester_url_base_to_url.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/migrations/registry.yaml +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/migrations_registry.py +0 -0
- {airbyte_cdk-6.60.16/airbyte_cdk/sources/declarative/async_job → airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/command_processor}/__init__.py +0 -0
- {airbyte_cdk-6.60.16/airbyte_cdk/sources/declarative/migrations → airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/routers}/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/models/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/models/airbyte_protocol.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/models/connector_metadata.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/models/well_known_types.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/py.typed +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/abstract_source.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/config.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/connector_state_manager.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/__init__.py +0 -0
- {airbyte_cdk-6.60.16/airbyte_cdk/sources/file_based/config → airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sources/declarative/async_job}/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
- {airbyte_cdk-6.60.16/airbyte_cdk/sources/file_based/stream/concurrent → airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sources/declarative/migrations}/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/models/base_model_with_deprecations.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/parsers/manifest_normalizer.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/group_by_key.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/merge_strategy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/resolvers/parametrized_components_resolver.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/file_uploader/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/file_uploader/connector_builder_file_uploader.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/file_uploader/default_file_uploader.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_uploader.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_writer.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/file_uploader/local_file_system_file_writer.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/file_uploader/noop_file_writer.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/schema/composite_schema_loader.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/config_transformations/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/config_transformations/add_fields.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/config_transformations/config_transformation.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/config_transformations/remap_field.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/config_transformations/remove_fields.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/types.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/validators/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/validators/dpath_validator.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/validators/predicate_validator.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/validators/validate_adheres_to_schema.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/validators/validation_strategy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/validators/validator.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/README.md +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
- {airbyte_cdk-6.60.16/airbyte_cdk/sources/streams/concurrent/state_converters → airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sources/file_based/config}/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_record_data.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
- {airbyte_cdk-6.60.16/airbyte_cdk/sql → airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sources/file_based/stream/concurrent}/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/types.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/http_config.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/http_logger.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/message/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/message/repository.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/source.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/call_rate.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
- {airbyte_cdk-6.60.16/airbyte_cdk/sql/_util → airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sources/streams/concurrent/state_converters}/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/core.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/http.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/types.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/utils/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/utils/casing.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/utils/files_directory.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/utils/record_helper.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/utils/transform.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/utils/types.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/_util/hashing.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/constants.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/exceptions.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/secrets.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/shared/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/types.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/catalog_builder.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/mock_http/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/mock_http/matcher.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/mock_http/mocker.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/mock_http/request.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/mock_http/response.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/models/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/models/outcome.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/models/scenario.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/_job_runner.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/connector_base.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/declarative_sources.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/destination_base.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/docker_base.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/pytest_hooks.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/source_base.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/util.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/state_builder.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/utils/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/utils/data.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/utils/http_mocking.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/utils/reading.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/__init__.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/analytics_message.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/connector_paths.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/constants.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/datetime_helpers.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/docker.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/event_timing.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/mapping_helpers.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/message_utils.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/oneof_option_config.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/print_buffer.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/schema_inferrer.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/slice_hasher.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/stream_status_utils.py +0 -0
- {airbyte_cdk-6.60.16 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: airbyte-cdk
|
3
|
-
Version: 6.60.16
|
3
|
+
Version: 6.60.16.post40.dev17219503797
|
4
4
|
Summary: A framework for writing Airbyte Connectors.
|
5
5
|
Home-page: https://airbyte.com
|
6
6
|
License: MIT
|
@@ -19,6 +19,7 @@ Classifier: Topic :: Scientific/Engineering
|
|
19
19
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
20
20
|
Provides-Extra: dev
|
21
21
|
Provides-Extra: file-based
|
22
|
+
Provides-Extra: manifest-server
|
22
23
|
Provides-Extra: sql
|
23
24
|
Provides-Extra: vector-db-based
|
24
25
|
Requires-Dist: Jinja2 (>=3.1.2,<3.2.0)
|
@@ -35,6 +36,7 @@ Requires-Dist: cryptography (>=44.0.0,<45.0.0)
|
|
35
36
|
Requires-Dist: dateparser (>=1.2.2,<2.0.0)
|
36
37
|
Requires-Dist: dpath (>=2.1.6,<3.0.0)
|
37
38
|
Requires-Dist: dunamai (>=1.22.0,<2.0.0)
|
39
|
+
Requires-Dist: fastapi (>=0.116.1) ; extra == "manifest-server"
|
38
40
|
Requires-Dist: fastavro (>=1.8.0,<1.9.0) ; extra == "file-based"
|
39
41
|
Requires-Dist: genson (==1.3.0)
|
40
42
|
Requires-Dist: google-cloud-secret-manager (>=2.17.0,<3.0.0)
|
@@ -77,6 +79,7 @@ Requires-Dist: typing-extensions
|
|
77
79
|
Requires-Dist: unidecode (>=1.3.8,<2.0.0)
|
78
80
|
Requires-Dist: unstructured.pytesseract (>=0.3.12) ; extra == "file-based"
|
79
81
|
Requires-Dist: unstructured[docx,pptx] (==0.10.27) ; extra == "file-based"
|
82
|
+
Requires-Dist: uvicorn (>=0.35.0) ; extra == "manifest-server"
|
80
83
|
Requires-Dist: wcmatch (==10.0)
|
81
84
|
Requires-Dist: whenever (>=0.6.16,<0.7.0)
|
82
85
|
Requires-Dist: xmltodict (>=0.13,<0.15)
|
@@ -3,8 +3,8 @@
|
|
3
3
|
#
|
4
4
|
|
5
5
|
|
6
|
-
from dataclasses import asdict
|
7
|
-
from typing import Any,
|
6
|
+
from dataclasses import asdict
|
7
|
+
from typing import Any, Dict, List, Mapping, Optional
|
8
8
|
|
9
9
|
from airbyte_cdk.connector_builder.test_reader import TestReader
|
10
10
|
from airbyte_cdk.models import (
|
@@ -15,45 +15,32 @@ from airbyte_cdk.models import (
|
|
15
15
|
Type,
|
16
16
|
)
|
17
17
|
from airbyte_cdk.models import Type as MessageType
|
18
|
+
from airbyte_cdk.sources.declarative.concurrent_declarative_source import (
|
19
|
+
ConcurrentDeclarativeSource,
|
20
|
+
TestLimits,
|
21
|
+
)
|
18
22
|
from airbyte_cdk.sources.declarative.declarative_source import DeclarativeSource
|
19
23
|
from airbyte_cdk.sources.declarative.manifest_declarative_source import ManifestDeclarativeSource
|
20
|
-
from airbyte_cdk.sources.declarative.parsers.model_to_component_factory import (
|
21
|
-
ModelToComponentFactory,
|
22
|
-
)
|
23
24
|
from airbyte_cdk.utils.airbyte_secrets_utils import filter_secrets
|
24
25
|
from airbyte_cdk.utils.datetime_helpers import ab_datetime_now
|
25
26
|
from airbyte_cdk.utils.traced_exception import AirbyteTracedException
|
26
27
|
|
27
|
-
DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE = 5
|
28
|
-
DEFAULT_MAXIMUM_NUMBER_OF_SLICES = 5
|
29
|
-
DEFAULT_MAXIMUM_RECORDS = 100
|
30
|
-
DEFAULT_MAXIMUM_STREAMS = 100
|
31
|
-
|
32
28
|
MAX_PAGES_PER_SLICE_KEY = "max_pages_per_slice"
|
33
29
|
MAX_SLICES_KEY = "max_slices"
|
34
30
|
MAX_RECORDS_KEY = "max_records"
|
35
31
|
MAX_STREAMS_KEY = "max_streams"
|
36
32
|
|
37
33
|
|
38
|
-
@dataclass
|
39
|
-
class TestLimits:
|
40
|
-
__test__: ClassVar[bool] = False # Tell Pytest this is not a Pytest class, despite its name
|
41
|
-
|
42
|
-
max_records: int = field(default=DEFAULT_MAXIMUM_RECORDS)
|
43
|
-
max_pages_per_slice: int = field(default=DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE)
|
44
|
-
max_slices: int = field(default=DEFAULT_MAXIMUM_NUMBER_OF_SLICES)
|
45
|
-
max_streams: int = field(default=DEFAULT_MAXIMUM_STREAMS)
|
46
|
-
|
47
|
-
|
48
34
|
def get_limits(config: Mapping[str, Any]) -> TestLimits:
|
49
35
|
command_config = config.get("__test_read_config", {})
|
50
|
-
|
51
|
-
command_config.get(
|
36
|
+
return TestLimits(
|
37
|
+
max_records=command_config.get(MAX_RECORDS_KEY, TestLimits.DEFAULT_MAX_RECORDS),
|
38
|
+
max_pages_per_slice=command_config.get(
|
39
|
+
MAX_PAGES_PER_SLICE_KEY, TestLimits.DEFAULT_MAX_PAGES_PER_SLICE
|
40
|
+
),
|
41
|
+
max_slices=command_config.get(MAX_SLICES_KEY, TestLimits.DEFAULT_MAX_SLICES),
|
42
|
+
max_streams=command_config.get(MAX_STREAMS_KEY, TestLimits.DEFAULT_MAX_STREAMS),
|
52
43
|
)
|
53
|
-
max_slices = command_config.get(MAX_SLICES_KEY) or DEFAULT_MAXIMUM_NUMBER_OF_SLICES
|
54
|
-
max_records = command_config.get(MAX_RECORDS_KEY) or DEFAULT_MAXIMUM_RECORDS
|
55
|
-
max_streams = command_config.get(MAX_STREAMS_KEY) or DEFAULT_MAXIMUM_STREAMS
|
56
|
-
return TestLimits(max_records, max_pages_per_slice, max_slices, max_streams)
|
57
44
|
|
58
45
|
|
59
46
|
def should_migrate_manifest(config: Mapping[str, Any]) -> bool:
|
@@ -75,21 +62,30 @@ def should_normalize_manifest(config: Mapping[str, Any]) -> bool:
|
|
75
62
|
return config.get("__should_normalize", False)
|
76
63
|
|
77
64
|
|
78
|
-
def create_source(
|
65
|
+
def create_source(
|
66
|
+
config: Mapping[str, Any],
|
67
|
+
limits: TestLimits,
|
68
|
+
catalog: Optional[ConfiguredAirbyteCatalog],
|
69
|
+
state: Optional[List[AirbyteStateMessage]],
|
70
|
+
) -> ConcurrentDeclarativeSource[Optional[List[AirbyteStateMessage]]]:
|
79
71
|
manifest = config["__injected_declarative_manifest"]
|
80
|
-
|
72
|
+
|
73
|
+
# We enforce a concurrency level of 1 so that the stream is processed on a single thread
|
74
|
+
# to retain ordering for the grouping of the builder message responses.
|
75
|
+
if "concurrency_level" in manifest:
|
76
|
+
manifest["concurrency_level"]["default_concurrency"] = 1
|
77
|
+
else:
|
78
|
+
manifest["concurrency_level"] = {"type": "ConcurrencyLevel", "default_concurrency": 1}
|
79
|
+
|
80
|
+
return ConcurrentDeclarativeSource(
|
81
|
+
catalog=catalog,
|
81
82
|
config=config,
|
82
|
-
|
83
|
+
state=state,
|
83
84
|
source_config=manifest,
|
85
|
+
emit_connector_builder_messages=True,
|
84
86
|
migrate_manifest=should_migrate_manifest(config),
|
85
87
|
normalize_manifest=should_normalize_manifest(config),
|
86
|
-
|
87
|
-
emit_connector_builder_messages=True,
|
88
|
-
limit_pages_fetched_per_slice=limits.max_pages_per_slice,
|
89
|
-
limit_slices_fetched=limits.max_slices,
|
90
|
-
disable_retries=True,
|
91
|
-
disable_cache=True,
|
92
|
-
),
|
88
|
+
limits=limits,
|
93
89
|
)
|
94
90
|
|
95
91
|
|
@@ -91,12 +91,12 @@ def handle_connector_builder_request(
|
|
91
91
|
def handle_request(args: List[str]) -> str:
|
92
92
|
command, config, catalog, state = get_config_and_catalog_from_args(args)
|
93
93
|
limits = get_limits(config)
|
94
|
-
source = create_source(config, limits)
|
95
|
-
return orjson.dumps(
|
94
|
+
source = create_source(config=config, limits=limits, catalog=catalog, state=state)
|
95
|
+
return orjson.dumps( # type: ignore[no-any-return] # Serializer.dump() always returns AirbyteMessage
|
96
96
|
AirbyteMessageSerializer.dump(
|
97
97
|
handle_connector_builder_request(source, command, config, catalog, state, limits)
|
98
98
|
)
|
99
|
-
).decode()
|
99
|
+
).decode()
|
100
100
|
|
101
101
|
|
102
102
|
if __name__ == "__main__":
|
@@ -5,7 +5,7 @@
|
|
5
5
|
import json
|
6
6
|
from copy import deepcopy
|
7
7
|
from json import JSONDecodeError
|
8
|
-
from typing import Any, Dict, List, Mapping, Optional
|
8
|
+
from typing import Any, Dict, List, Mapping, Optional, Union
|
9
9
|
|
10
10
|
from airbyte_cdk.connector_builder.models import (
|
11
11
|
AuxiliaryRequest,
|
@@ -17,6 +17,8 @@ from airbyte_cdk.connector_builder.models import (
|
|
17
17
|
from airbyte_cdk.models import (
|
18
18
|
AirbyteLogMessage,
|
19
19
|
AirbyteMessage,
|
20
|
+
AirbyteStateBlob,
|
21
|
+
AirbyteStateMessage,
|
20
22
|
OrchestratorType,
|
21
23
|
TraceType,
|
22
24
|
)
|
@@ -466,7 +468,7 @@ def handle_current_slice(
|
|
466
468
|
return StreamReadSlices(
|
467
469
|
pages=current_slice_pages,
|
468
470
|
slice_descriptor=current_slice_descriptor,
|
469
|
-
state=[latest_state_message] if latest_state_message else [],
|
471
|
+
state=[convert_state_blob_to_mapping(latest_state_message)] if latest_state_message else [],
|
470
472
|
auxiliary_requests=auxiliary_requests if auxiliary_requests else [],
|
471
473
|
)
|
472
474
|
|
@@ -718,3 +720,23 @@ def get_auxiliary_request_type(stream: dict, http: dict) -> str: # type: ignore
|
|
718
720
|
Determines the type of the auxiliary request based on the stream and HTTP properties.
|
719
721
|
"""
|
720
722
|
return "PARENT_STREAM" if stream.get("is_substream", False) else str(http.get("type", None))
|
723
|
+
|
724
|
+
|
725
|
+
def convert_state_blob_to_mapping(
|
726
|
+
state_message: Union[AirbyteStateMessage, Dict[str, Any]],
|
727
|
+
) -> Dict[str, Any]:
|
728
|
+
"""
|
729
|
+
The AirbyteStreamState stores state as an AirbyteStateBlob which deceivingly is not
|
730
|
+
a dictionary, but rather a list of kwargs fields. This in turn causes it to not be
|
731
|
+
properly turned into a dictionary when translating this back into response output
|
732
|
+
by the connector_builder_handler using asdict()
|
733
|
+
"""
|
734
|
+
|
735
|
+
if isinstance(state_message, AirbyteStateMessage) and state_message.stream:
|
736
|
+
state_value = state_message.stream.stream_state
|
737
|
+
if isinstance(state_value, AirbyteStateBlob):
|
738
|
+
state_value_mapping = {k: v for k, v in state_value.__dict__.items()}
|
739
|
+
state_message.stream.stream_state = state_value_mapping # type: ignore # we intentionally set this as a Dict so that StreamReadSlices is translated properly in the resulting HTTP response
|
740
|
+
return state_message # type: ignore # See above, but when this is an AirbyteStateMessage we must convert AirbyteStateBlob to a Dict
|
741
|
+
else:
|
742
|
+
return state_message # type: ignore # This is guaranteed to be a Dict since we check isinstance AirbyteStateMessage above
|
@@ -95,7 +95,7 @@ def get_message_groups(
|
|
95
95
|
latest_state_message: Optional[Dict[str, Any]] = None
|
96
96
|
slice_auxiliary_requests: List[AuxiliaryRequest] = []
|
97
97
|
|
98
|
-
while
|
98
|
+
while message := next(messages, None):
|
99
99
|
json_message = airbyte_message_to_json(message)
|
100
100
|
|
101
101
|
if is_page_http_request_for_different_stream(json_message, stream_name):
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# Dockerfile for the Airbyte Manifest Server.
|
2
|
+
#
|
3
|
+
# This Dockerfile should be built from the root of the repository.
|
4
|
+
#
|
5
|
+
# Example:
|
6
|
+
# docker build -f airbyte_cdk/manifest_server/Dockerfile -t airbyte/manifest-server .
|
7
|
+
|
8
|
+
FROM python:3.12-slim-bookworm
|
9
|
+
|
10
|
+
# Install git (needed for dynamic versioning) and poetry
|
11
|
+
RUN apt-get update && \
|
12
|
+
apt-get install -y git && \
|
13
|
+
rm -rf /var/lib/apt/lists/* && \
|
14
|
+
pip install poetry==1.8.3
|
15
|
+
|
16
|
+
# Configure poetry to not create virtual environments and disable interactive mode
|
17
|
+
ENV POETRY_NO_INTERACTION=1 \
|
18
|
+
POETRY_CACHE_DIR=/tmp/poetry_cache
|
19
|
+
|
20
|
+
WORKDIR /app
|
21
|
+
|
22
|
+
# Copy poetry files (build from project root)
|
23
|
+
COPY pyproject.toml poetry.lock ./
|
24
|
+
|
25
|
+
# Copy the project source code (needed for dynamic versioning)
|
26
|
+
COPY . /app
|
27
|
+
|
28
|
+
# Install dependencies and package directly to system Python
|
29
|
+
RUN --mount=type=cache,target=$POETRY_CACHE_DIR \
|
30
|
+
poetry config virtualenvs.create false && \
|
31
|
+
poetry install --extras manifest-server
|
32
|
+
|
33
|
+
# Create a non-root user and group
|
34
|
+
RUN groupadd --gid 1000 airbyte && \
|
35
|
+
useradd --uid 1000 --gid airbyte --shell /bin/bash --create-home airbyte
|
36
|
+
|
37
|
+
# Change ownership
|
38
|
+
RUN chown -R airbyte:airbyte /app
|
39
|
+
|
40
|
+
# Run app as non-root user
|
41
|
+
USER airbyte:airbyte
|
42
|
+
|
43
|
+
EXPOSE 8080
|
44
|
+
|
45
|
+
CMD ["uvicorn", "airbyte_cdk.manifest_server.app:app", "--host", "0.0.0.0", "--port", "8080"]
|
@@ -0,0 +1,142 @@
|
|
1
|
+
# Manifest Server
|
2
|
+
|
3
|
+
An HTTP server for running Airbyte declarative connectors via their manifest files.
|
4
|
+
|
5
|
+
## Quick Start
|
6
|
+
|
7
|
+
### Installation
|
8
|
+
|
9
|
+
The manifest server is available as an extra dependency:
|
10
|
+
|
11
|
+
```bash
|
12
|
+
# Using Poetry (preferred)
|
13
|
+
poetry install --extras manifest-server
|
14
|
+
|
15
|
+
# Using pip
|
16
|
+
pip install airbyte-cdk[manifest-server]
|
17
|
+
|
18
|
+
# Using uv
|
19
|
+
uv pip install 'airbyte-cdk[manifest-runner]'
|
20
|
+
```
|
21
|
+
|
22
|
+
### Running the Server
|
23
|
+
|
24
|
+
```bash
|
25
|
+
# Start the server (default port 8000)
|
26
|
+
manifest-server start
|
27
|
+
|
28
|
+
# Start on a specific port
|
29
|
+
manifest-server start --port 8080
|
30
|
+
|
31
|
+
# Or using Python module
|
32
|
+
python -m airbyte_cdk.manifest_server.cli.run start
|
33
|
+
```
|
34
|
+
|
35
|
+
The server will start on `http://localhost:8000` by default.
|
36
|
+
|
37
|
+
## API Endpoints
|
38
|
+
|
39
|
+
### `/manifest/test_read`
|
40
|
+
Test reading from a specific stream in the manifest.
|
41
|
+
|
42
|
+
**POST** - Test stream reading with configurable limits for records, pages, and slices.
|
43
|
+
|
44
|
+
### `/manifest/check`
|
45
|
+
Check configuration against a manifest.
|
46
|
+
|
47
|
+
**POST** - Validates connector configuration and returns success/failure status with message.
|
48
|
+
|
49
|
+
### `/manifest/discover`
|
50
|
+
Discover streams from a manifest.
|
51
|
+
|
52
|
+
**POST** - Returns the catalog of available streams from the manifest.
|
53
|
+
|
54
|
+
### `/manifest/resolve`
|
55
|
+
Resolve a manifest to its final configuration.
|
56
|
+
|
57
|
+
**POST** - Returns the resolved manifest without dynamic stream generation.
|
58
|
+
|
59
|
+
### `/manifest/full_resolve`
|
60
|
+
Fully resolve a manifest including dynamic streams.
|
61
|
+
|
62
|
+
**POST** - Generates dynamic streams up to specified limits and includes them in the resolved manifest.
|
63
|
+
|
64
|
+
## Custom Components
|
65
|
+
|
66
|
+
The manifest server supports custom Python components, but this feature is **disabled by default** for security reasons.
|
67
|
+
|
68
|
+
### Enabling Custom Components
|
69
|
+
|
70
|
+
To allow custom Python components in your manifest files, set the environment variable:
|
71
|
+
```bash
|
72
|
+
export AIRBYTE_ENABLE_UNSAFE_CODE=true
|
73
|
+
```
|
74
|
+
|
75
|
+
## Authentication
|
76
|
+
|
77
|
+
The manifest server supports optional JWT bearer token authentication:
|
78
|
+
|
79
|
+
### Configuration
|
80
|
+
Set the environment variable to enable authentication:
|
81
|
+
```bash
|
82
|
+
export AB_JWT_SIGNATURE_SECRET="your-jwt-secret-key"
|
83
|
+
```
|
84
|
+
|
85
|
+
### Usage
|
86
|
+
When authentication is enabled, include a valid JWT token in the Authorization header:
|
87
|
+
```bash
|
88
|
+
curl -H "Authorization: Bearer <your-jwt-token>" \
|
89
|
+
http://localhost:8000/manifest/test_read
|
90
|
+
```
|
91
|
+
|
92
|
+
### Behavior
|
93
|
+
- **Without `AB_JWT_SIGNATURE_SECRET`**: All requests pass through
|
94
|
+
- **With `AB_JWT_SIGNATURE_SECRET`**: Requires valid JWT bearer token using HS256 algorithm
|
95
|
+
|
96
|
+
## OpenAPI Specification
|
97
|
+
|
98
|
+
The manifest server provides an OpenAPI specification for API client generation:
|
99
|
+
|
100
|
+
### Generating the OpenAPI Spec
|
101
|
+
```bash
|
102
|
+
# Generate OpenAPI YAML (default location)
|
103
|
+
manifest-server generate-openapi
|
104
|
+
|
105
|
+
# Generate to custom location
|
106
|
+
manifest-server generate-openapi --output /path/to/openapi.yaml
|
107
|
+
```
|
108
|
+
|
109
|
+
The generated OpenAPI specification is consumed by other applications and tools to:
|
110
|
+
- Generate API clients in various programming languages
|
111
|
+
- Create SDK bindings for the manifest server
|
112
|
+
- Provide API documentation and validation
|
113
|
+
- Enable integration with API development tools
|
114
|
+
|
115
|
+
### Interactive API Documentation
|
116
|
+
|
117
|
+
When running, interactive API documentation is available at:
|
118
|
+
- Swagger UI: `http://localhost:8000/docs`
|
119
|
+
- ReDoc: `http://localhost:8000/redoc`
|
120
|
+
|
121
|
+
## Testing
|
122
|
+
|
123
|
+
Run the manifest server tests from the repository root:
|
124
|
+
|
125
|
+
```bash
|
126
|
+
# Run all manifest server tests
|
127
|
+
poetry run pytest unit_tests/manifest_server/ -v
|
128
|
+
```
|
129
|
+
|
130
|
+
## Docker
|
131
|
+
|
132
|
+
The manifest server can be containerized using the included Dockerfile. Build from the repository root:
|
133
|
+
|
134
|
+
```bash
|
135
|
+
# Build from repository root (not from manifest_server subdirectory)
|
136
|
+
docker build -f airbyte_cdk/manifest_server/Dockerfile -t manifest-server .
|
137
|
+
|
138
|
+
# Run the container
|
139
|
+
docker run -p 8080:8080 manifest-server
|
140
|
+
```
|
141
|
+
|
142
|
+
Note: The container runs on port 8080 by default.
|
@@ -0,0 +1,41 @@
|
|
1
|
+
"""
|
2
|
+
API Models for the Manifest Server Service.
|
3
|
+
|
4
|
+
This package contains all Pydantic models used for API requests and responses.
|
5
|
+
"""
|
6
|
+
|
7
|
+
from .dicts import ConnectorConfig, Manifest
|
8
|
+
from .manifest import (
|
9
|
+
FullResolveRequest,
|
10
|
+
ManifestResponse,
|
11
|
+
ResolveRequest,
|
12
|
+
StreamTestReadRequest,
|
13
|
+
)
|
14
|
+
from .stream import (
|
15
|
+
AuxiliaryRequest,
|
16
|
+
HttpRequest,
|
17
|
+
HttpResponse,
|
18
|
+
LogMessage,
|
19
|
+
StreamRead,
|
20
|
+
StreamReadPages,
|
21
|
+
StreamReadSlices,
|
22
|
+
)
|
23
|
+
|
24
|
+
__all__ = [
|
25
|
+
# Typed Dicts
|
26
|
+
"ConnectorConfig",
|
27
|
+
"Manifest",
|
28
|
+
# Manifest request/response models
|
29
|
+
"FullResolveRequest",
|
30
|
+
"ManifestResponse",
|
31
|
+
"StreamTestReadRequest",
|
32
|
+
"ResolveRequest",
|
33
|
+
# Stream models
|
34
|
+
"AuxiliaryRequest",
|
35
|
+
"HttpRequest",
|
36
|
+
"HttpResponse",
|
37
|
+
"LogMessage",
|
38
|
+
"StreamRead",
|
39
|
+
"StreamReadPages",
|
40
|
+
"StreamReadSlices",
|
41
|
+
]
|
@@ -0,0 +1,17 @@
|
|
1
|
+
"""
|
2
|
+
Common API models shared across different endpoints.
|
3
|
+
"""
|
4
|
+
|
5
|
+
from pydantic import BaseModel, ConfigDict
|
6
|
+
|
7
|
+
|
8
|
+
class Manifest(BaseModel):
|
9
|
+
"""Base manifest model. Allows client generation to replace with proper JsonNode types."""
|
10
|
+
|
11
|
+
model_config = ConfigDict(extra="allow")
|
12
|
+
|
13
|
+
|
14
|
+
class ConnectorConfig(BaseModel):
|
15
|
+
"""Base connector configuration model. Allows client generation to replace with proper JsonNode types."""
|
16
|
+
|
17
|
+
model_config = ConfigDict(extra="allow")
|
@@ -0,0 +1,73 @@
|
|
1
|
+
"""
|
2
|
+
Manifest-related API models.
|
3
|
+
|
4
|
+
These models define the request and response structures for manifest operations
|
5
|
+
like reading, resolving, and full resolution.
|
6
|
+
"""
|
7
|
+
|
8
|
+
from typing import Any, List, Optional
|
9
|
+
|
10
|
+
from airbyte_protocol_dataclasses.models import AirbyteCatalog
|
11
|
+
from pydantic import BaseModel, Field
|
12
|
+
|
13
|
+
from .dicts import ConnectorConfig, Manifest
|
14
|
+
|
15
|
+
|
16
|
+
class StreamTestReadRequest(BaseModel):
|
17
|
+
"""Request to test read from a specific stream."""
|
18
|
+
|
19
|
+
manifest: Manifest
|
20
|
+
config: ConnectorConfig
|
21
|
+
stream_name: str
|
22
|
+
state: List[Any] = []
|
23
|
+
custom_components_code: Optional[str] = None
|
24
|
+
record_limit: int = Field(default=100, ge=1, le=5000)
|
25
|
+
page_limit: int = Field(default=5, ge=1, le=20)
|
26
|
+
slice_limit: int = Field(default=5, ge=1, le=20)
|
27
|
+
|
28
|
+
|
29
|
+
class CheckRequest(BaseModel):
|
30
|
+
"""Request to check a manifest."""
|
31
|
+
|
32
|
+
manifest: Manifest
|
33
|
+
config: ConnectorConfig
|
34
|
+
|
35
|
+
|
36
|
+
class CheckResponse(BaseModel):
|
37
|
+
"""Response to check a manifest."""
|
38
|
+
|
39
|
+
success: bool
|
40
|
+
message: Optional[str] = None
|
41
|
+
|
42
|
+
|
43
|
+
class DiscoverRequest(BaseModel):
|
44
|
+
"""Request to discover a manifest."""
|
45
|
+
|
46
|
+
manifest: Manifest
|
47
|
+
config: ConnectorConfig
|
48
|
+
|
49
|
+
|
50
|
+
class DiscoverResponse(BaseModel):
|
51
|
+
"""Response to discover a manifest."""
|
52
|
+
|
53
|
+
catalog: AirbyteCatalog
|
54
|
+
|
55
|
+
|
56
|
+
class ResolveRequest(BaseModel):
|
57
|
+
"""Request to resolve a manifest."""
|
58
|
+
|
59
|
+
manifest: Manifest
|
60
|
+
|
61
|
+
|
62
|
+
class ManifestResponse(BaseModel):
|
63
|
+
"""Response containing a manifest."""
|
64
|
+
|
65
|
+
manifest: Manifest
|
66
|
+
|
67
|
+
|
68
|
+
class FullResolveRequest(BaseModel):
|
69
|
+
"""Request to fully resolve a manifest."""
|
70
|
+
|
71
|
+
manifest: Manifest
|
72
|
+
config: ConnectorConfig
|
73
|
+
stream_limit: int = Field(default=100, ge=1, le=100)
|
@@ -0,0 +1,76 @@
|
|
1
|
+
"""
|
2
|
+
Stream-related API models.
|
3
|
+
|
4
|
+
These models define the structure for stream reading operations and responses.
|
5
|
+
They accurately reflect the runtime types returned by the CDK, particularly
|
6
|
+
fixing type mismatches like slice_descriptor being a string rather than an object.
|
7
|
+
"""
|
8
|
+
|
9
|
+
from typing import Any, Dict, List, Optional
|
10
|
+
|
11
|
+
from pydantic import BaseModel
|
12
|
+
|
13
|
+
|
14
|
+
class HttpRequest(BaseModel):
|
15
|
+
"""HTTP request details."""
|
16
|
+
|
17
|
+
url: str
|
18
|
+
headers: Optional[Dict[str, Any]]
|
19
|
+
http_method: str
|
20
|
+
body: Optional[str] = None
|
21
|
+
|
22
|
+
|
23
|
+
class HttpResponse(BaseModel):
|
24
|
+
"""HTTP response details."""
|
25
|
+
|
26
|
+
status: int
|
27
|
+
body: Optional[str] = None
|
28
|
+
headers: Optional[Dict[str, Any]] = None
|
29
|
+
|
30
|
+
|
31
|
+
class LogMessage(BaseModel):
|
32
|
+
"""Log message from stream processing."""
|
33
|
+
|
34
|
+
message: str
|
35
|
+
level: str
|
36
|
+
internal_message: Optional[str] = None
|
37
|
+
stacktrace: Optional[str] = None
|
38
|
+
|
39
|
+
|
40
|
+
class AuxiliaryRequest(BaseModel):
|
41
|
+
"""Auxiliary HTTP request made during stream processing."""
|
42
|
+
|
43
|
+
title: str
|
44
|
+
type: str
|
45
|
+
description: str
|
46
|
+
request: HttpRequest
|
47
|
+
response: HttpResponse
|
48
|
+
|
49
|
+
|
50
|
+
class StreamReadPages(BaseModel):
|
51
|
+
"""Pages of data read from a stream slice."""
|
52
|
+
|
53
|
+
records: List[object]
|
54
|
+
request: Optional[HttpRequest] = None
|
55
|
+
response: Optional[HttpResponse] = None
|
56
|
+
|
57
|
+
|
58
|
+
class StreamReadSlices(BaseModel):
|
59
|
+
"""Slices of data read from a stream."""
|
60
|
+
|
61
|
+
pages: List[StreamReadPages]
|
62
|
+
slice_descriptor: Optional[str] # This is actually a string at runtime, not Dict[str, Any]
|
63
|
+
state: Optional[List[Dict[str, Any]]] = None
|
64
|
+
auxiliary_requests: Optional[List[AuxiliaryRequest]] = None
|
65
|
+
|
66
|
+
|
67
|
+
class StreamRead(BaseModel):
|
68
|
+
"""Complete stream read response with properly typed fields."""
|
69
|
+
|
70
|
+
logs: List[LogMessage]
|
71
|
+
slices: List[StreamReadSlices]
|
72
|
+
test_read_limit_reached: bool
|
73
|
+
auxiliary_requests: List[AuxiliaryRequest]
|
74
|
+
inferred_schema: Optional[Dict[str, Any]]
|
75
|
+
inferred_datetime_formats: Optional[Dict[str, str]]
|
76
|
+
latest_config_update: Optional[Dict[str, Any]]
|
@@ -0,0 +1,17 @@
|
|
1
|
+
from fastapi import FastAPI
|
2
|
+
|
3
|
+
from ..manifest_server.routers import capabilities, health, manifest
|
4
|
+
|
5
|
+
app = FastAPI(
|
6
|
+
title="Manifest Server Service",
|
7
|
+
description="A service for running low-code Airbyte connectors",
|
8
|
+
version="0.1.0",
|
9
|
+
contact={
|
10
|
+
"name": "Airbyte",
|
11
|
+
"url": "https://airbyte.com",
|
12
|
+
},
|
13
|
+
)
|
14
|
+
|
15
|
+
app.include_router(health.router)
|
16
|
+
app.include_router(capabilities.router)
|
17
|
+
app.include_router(manifest.router, prefix="/v1")
|