airbyte-cdk 6.48.2.post1.dev14733922675__tar.gz → 6.48.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.
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/PKG-INFO +2 -1
- airbyte_cdk-6.48.4/airbyte_cdk/cli/airbyte_cdk/_secrets.py +424 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/cli/airbyte_cdk/_util.py +26 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/manifest_migrations/migrations/http_requester_request_body_json_data_to_request_body.py +35 -10
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/manifest_migrations/migrations/registry.yaml +1 -1
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/auth/oauth.py +2 -5
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +78 -23
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +50 -11
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +19 -5
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/pyproject.toml +2 -1
- airbyte_cdk-6.48.2.post1.dev14733922675/airbyte_cdk/cli/airbyte_cdk/_secrets.py +0 -150
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/LICENSE.txt +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/LICENSE_SHORT +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/README.md +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/cli/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/cli/airbyte_cdk/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/cli/airbyte_cdk/_connector.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/cli/airbyte_cdk/_image.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/cli/airbyte_cdk/_manifest.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/cli/airbyte_cdk/_version.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/config_observation.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/connector.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/connector_builder/README.md +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/connector_builder/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/connector_builder/main.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/connector_builder/models.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/connector_builder/test_reader/reader.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/destinations/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/destinations/destination.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/entrypoint.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/exception_handler.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/logger.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/manifest_migrations/README.md +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/manifest_migrations/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/manifest_migrations/exceptions.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/manifest_migrations/manifest_migration.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/manifest_migrations/migration_handler.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/manifest_migrations/migrations/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/manifest_migrations/migrations/http_requester_path_to_url.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/manifest_migrations/migrations/http_requester_url_base_to_url.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/manifest_migrations/migrations_registry.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/models/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/models/airbyte_protocol.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/models/connector_metadata.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/models/well_known_types.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/py.typed +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/abstract_source.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/config.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/connector_state_manager.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/models/base_model_with_deprecations.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/parsers/manifest_normalizer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/group_by_key.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/merge_strategy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/retrievers/file_uploader/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/retrievers/file_uploader/connector_builder_file_uploader.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/retrievers/file_uploader/default_file_uploader.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_uploader.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_writer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/retrievers/file_uploader/local_file_system_file_writer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/retrievers/file_uploader/noop_file_writer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/types.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/README.md +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/file_record_data.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/file_based/types.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/http_config.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/http_logger.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/message/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/message/repository.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/source.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/call_rate.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/core.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/http.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/types.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/utils/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/utils/casing.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/utils/files_directory.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/utils/record_helper.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/utils/transform.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sources/utils/types.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sql/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sql/_util/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sql/_util/hashing.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sql/constants.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sql/exceptions.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sql/secrets.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sql/shared/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/sql/types.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/catalog_builder.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/mock_http/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/mock_http/matcher.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/mock_http/mocker.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/mock_http/request.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/mock_http/response.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/standard_tests/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/standard_tests/_job_runner.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/standard_tests/connector_base.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/standard_tests/declarative_sources.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/standard_tests/destination_base.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/standard_tests/models/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/standard_tests/models/scenario.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/standard_tests/pytest_hooks.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/standard_tests/source_base.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/standard_tests/test_resources.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/standard_tests/util.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/state_builder.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/utils/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/utils/data.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/utils/http_mocking.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/test/utils/reading.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/__init__.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/analytics_message.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/constants.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/datetime_helpers.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/docker.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/docker_image_templates.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/event_timing.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/mapping_helpers.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/message_utils.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/oneof_option_config.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/print_buffer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/schema_inferrer.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/slice_hasher.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/utils/stream_status_utils.py +0 -0
- {airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/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.48.
|
3
|
+
Version: 6.48.4
|
4
4
|
Summary: A framework for writing Airbyte Connectors.
|
5
5
|
Home-page: https://airbyte.com
|
6
6
|
License: MIT
|
@@ -66,6 +66,7 @@ Requires-Dist: pytz (==2024.2)
|
|
66
66
|
Requires-Dist: rapidfuzz (>=3.10.1,<4.0.0)
|
67
67
|
Requires-Dist: requests
|
68
68
|
Requires-Dist: requests_cache
|
69
|
+
Requires-Dist: rich
|
69
70
|
Requires-Dist: rich-click (>=1.8.8,<2.0.0)
|
70
71
|
Requires-Dist: serpyco-rs (>=1.10.2,<2.0.0)
|
71
72
|
Requires-Dist: sqlalchemy (>=2.0,<3.0,!=2.0.36) ; extra == "sql"
|
@@ -0,0 +1,424 @@
|
|
1
|
+
# Copyright (c) 2025 Airbyte, Inc., all rights reserved.
|
2
|
+
"""**Secret management commands.**
|
3
|
+
|
4
|
+
This module provides commands for managing secrets for Airbyte connectors.
|
5
|
+
|
6
|
+
**Usage:**
|
7
|
+
|
8
|
+
```bash
|
9
|
+
# Fetch secrets
|
10
|
+
airbyte-cdk secrets fetch --connector-name source-github
|
11
|
+
airbyte-cdk secrets fetch --connector-directory /path/to/connector
|
12
|
+
airbyte-cdk secrets fetch # Run from within a connector directory
|
13
|
+
|
14
|
+
# List secrets (without fetching)
|
15
|
+
airbyte-cdk secrets list --connector-name source-github
|
16
|
+
airbyte-cdk secrets list --connector-directory /path/to/connector
|
17
|
+
```
|
18
|
+
|
19
|
+
**Usage without pre-installing (stateless):**
|
20
|
+
|
21
|
+
```bash
|
22
|
+
pipx run airbyte-cdk secrets fetch ...
|
23
|
+
uvx airbyte-cdk secrets fetch ...
|
24
|
+
```
|
25
|
+
|
26
|
+
The command retrieves secrets from Google Secret Manager based on connector
|
27
|
+
labels and writes them to the connector's `secrets` directory.
|
28
|
+
"""
|
29
|
+
|
30
|
+
from __future__ import annotations
|
31
|
+
|
32
|
+
import json
|
33
|
+
import logging
|
34
|
+
import os
|
35
|
+
from functools import lru_cache
|
36
|
+
from pathlib import Path
|
37
|
+
from typing import Any, cast
|
38
|
+
|
39
|
+
import requests
|
40
|
+
import rich_click as click
|
41
|
+
import yaml
|
42
|
+
from click import style
|
43
|
+
from rich.console import Console
|
44
|
+
from rich.table import Table
|
45
|
+
|
46
|
+
from airbyte_cdk.cli.airbyte_cdk._util import (
|
47
|
+
resolve_connector_name,
|
48
|
+
resolve_connector_name_and_directory,
|
49
|
+
)
|
50
|
+
|
51
|
+
AIRBYTE_INTERNAL_GCP_PROJECT = "dataline-integration-testing"
|
52
|
+
CONNECTOR_LABEL = "connector"
|
53
|
+
GLOBAL_MASK_KEYS_URL = "https://connectors.airbyte.com/files/registries/v0/specs_secrets_mask.yaml"
|
54
|
+
|
55
|
+
logger = logging.getLogger("airbyte-cdk.cli.secrets")
|
56
|
+
|
57
|
+
try:
|
58
|
+
from google.cloud import secretmanager_v1 as secretmanager
|
59
|
+
from google.cloud.secretmanager_v1 import Secret
|
60
|
+
except ImportError:
|
61
|
+
# If the package is not installed, we will raise an error in the CLI command.
|
62
|
+
secretmanager = None # type: ignore
|
63
|
+
Secret = None # type: ignore
|
64
|
+
|
65
|
+
|
66
|
+
@click.group(
|
67
|
+
name="secrets",
|
68
|
+
help=__doc__.replace("\n", "\n\n"), # Render docstring as help text (markdown) # type: ignore
|
69
|
+
)
|
70
|
+
def secrets_cli_group() -> None:
|
71
|
+
"""Secret management commands."""
|
72
|
+
pass
|
73
|
+
|
74
|
+
|
75
|
+
@secrets_cli_group.command()
|
76
|
+
@click.option(
|
77
|
+
"--connector-name",
|
78
|
+
type=str,
|
79
|
+
help="Name of the connector to fetch secrets for. Ignored if --connector-directory is provided.",
|
80
|
+
)
|
81
|
+
@click.option(
|
82
|
+
"--connector-directory",
|
83
|
+
type=click.Path(exists=True, file_okay=False, path_type=Path),
|
84
|
+
help="Path to the connector directory.",
|
85
|
+
)
|
86
|
+
@click.option(
|
87
|
+
"--gcp-project-id",
|
88
|
+
type=str,
|
89
|
+
default=AIRBYTE_INTERNAL_GCP_PROJECT,
|
90
|
+
help=f"GCP project ID. Defaults to '{AIRBYTE_INTERNAL_GCP_PROJECT}'.",
|
91
|
+
)
|
92
|
+
@click.option(
|
93
|
+
"--print-ci-secrets-masks",
|
94
|
+
help="Print GitHub CI mask for secrets.",
|
95
|
+
type=bool,
|
96
|
+
is_flag=True,
|
97
|
+
default=False,
|
98
|
+
)
|
99
|
+
def fetch(
|
100
|
+
connector_name: str | None = None,
|
101
|
+
connector_directory: Path | None = None,
|
102
|
+
gcp_project_id: str = AIRBYTE_INTERNAL_GCP_PROJECT,
|
103
|
+
print_ci_secrets_masks: bool = False,
|
104
|
+
) -> None:
|
105
|
+
"""Fetch secrets for a connector from Google Secret Manager.
|
106
|
+
|
107
|
+
This command fetches secrets for a connector from Google Secret Manager and writes them
|
108
|
+
to the connector's secrets directory.
|
109
|
+
|
110
|
+
If no connector name or directory is provided, we will look within the current working
|
111
|
+
directory. If the current working directory is not a connector directory (e.g. starting
|
112
|
+
with 'source-') and no connector name or path is provided, the process will fail.
|
113
|
+
|
114
|
+
The `--print-ci-secrets-masks` option will print the GitHub CI mask for the secrets.
|
115
|
+
This is useful for masking secrets in CI logs.
|
116
|
+
|
117
|
+
WARNING: This action causes the secrets to be printed in clear text to `STDOUT`. For security
|
118
|
+
reasons, this function will only execute if the `CI` environment variable is set. Otherwise,
|
119
|
+
masks will not be printed.
|
120
|
+
"""
|
121
|
+
click.echo("Fetching secrets...", err=True)
|
122
|
+
|
123
|
+
client = _get_gsm_secrets_client()
|
124
|
+
connector_name, connector_directory = resolve_connector_name_and_directory(
|
125
|
+
connector_name=connector_name,
|
126
|
+
connector_directory=connector_directory,
|
127
|
+
)
|
128
|
+
secrets_dir = _get_secrets_dir(
|
129
|
+
connector_directory=connector_directory,
|
130
|
+
connector_name=connector_name,
|
131
|
+
ensure_exists=True,
|
132
|
+
)
|
133
|
+
secrets = _fetch_secret_handles(
|
134
|
+
connector_name=connector_name,
|
135
|
+
gcp_project_id=gcp_project_id,
|
136
|
+
)
|
137
|
+
# Fetch and write secrets
|
138
|
+
secret_count = 0
|
139
|
+
for secret in secrets:
|
140
|
+
secret_file_path = _get_secret_filepath(
|
141
|
+
secrets_dir=secrets_dir,
|
142
|
+
secret=secret,
|
143
|
+
)
|
144
|
+
_write_secret_file(
|
145
|
+
secret=secret,
|
146
|
+
client=client,
|
147
|
+
file_path=secret_file_path,
|
148
|
+
)
|
149
|
+
click.echo(f"Secret written to: {secret_file_path.absolute()!s}", err=True)
|
150
|
+
secret_count += 1
|
151
|
+
|
152
|
+
if secret_count == 0:
|
153
|
+
click.echo(
|
154
|
+
f"No secrets found for connector: '{connector_name}'",
|
155
|
+
err=True,
|
156
|
+
)
|
157
|
+
|
158
|
+
if not print_ci_secrets_masks:
|
159
|
+
return
|
160
|
+
|
161
|
+
if not os.environ.get("CI", None):
|
162
|
+
click.echo(
|
163
|
+
"The `--print-ci-secrets-masks` option is only available in CI environments. "
|
164
|
+
"The `CI` env var is either not set or not set to a truthy value. "
|
165
|
+
"Skipping printing secret masks.",
|
166
|
+
err=True,
|
167
|
+
)
|
168
|
+
return
|
169
|
+
|
170
|
+
# Else print the CI mask
|
171
|
+
_print_ci_secrets_masks(
|
172
|
+
secrets_dir=secrets_dir,
|
173
|
+
)
|
174
|
+
|
175
|
+
|
176
|
+
@secrets_cli_group.command("list")
|
177
|
+
@click.option(
|
178
|
+
"--connector-name",
|
179
|
+
type=str,
|
180
|
+
help="Name of the connector to fetch secrets for. Ignored if --connector-directory is provided.",
|
181
|
+
)
|
182
|
+
@click.option(
|
183
|
+
"--connector-directory",
|
184
|
+
type=click.Path(exists=True, file_okay=False, path_type=Path),
|
185
|
+
help="Path to the connector directory.",
|
186
|
+
)
|
187
|
+
@click.option(
|
188
|
+
"--gcp-project-id",
|
189
|
+
type=str,
|
190
|
+
default=AIRBYTE_INTERNAL_GCP_PROJECT,
|
191
|
+
help=f"GCP project ID. Defaults to '{AIRBYTE_INTERNAL_GCP_PROJECT}'.",
|
192
|
+
)
|
193
|
+
def list_(
|
194
|
+
connector_name: str | None = None,
|
195
|
+
connector_directory: Path | None = None,
|
196
|
+
gcp_project_id: str = AIRBYTE_INTERNAL_GCP_PROJECT,
|
197
|
+
) -> None:
|
198
|
+
"""List secrets for a connector from Google Secret Manager.
|
199
|
+
|
200
|
+
This command fetches secrets for a connector from Google Secret Manager and prints
|
201
|
+
them as a table.
|
202
|
+
|
203
|
+
If no connector name or directory is provided, we will look within the current working
|
204
|
+
directory. If the current working directory is not a connector directory (e.g. starting
|
205
|
+
with 'source-') and no connector name or path is provided, the process will fail.
|
206
|
+
"""
|
207
|
+
click.echo("Scanning secrets...", err=True)
|
208
|
+
|
209
|
+
connector_name = connector_name or resolve_connector_name(
|
210
|
+
connector_directory=connector_directory or Path().resolve().absolute(),
|
211
|
+
)
|
212
|
+
secrets: list[Secret] = _fetch_secret_handles( # type: ignore
|
213
|
+
connector_name=connector_name,
|
214
|
+
gcp_project_id=gcp_project_id,
|
215
|
+
)
|
216
|
+
|
217
|
+
if not secrets:
|
218
|
+
click.echo(
|
219
|
+
f"No secrets found for connector: '{connector_name}'",
|
220
|
+
err=True,
|
221
|
+
)
|
222
|
+
return
|
223
|
+
# print a rich table with the secrets
|
224
|
+
click.echo(
|
225
|
+
style(
|
226
|
+
f"Secrets for connector '{connector_name}' in project '{gcp_project_id}':",
|
227
|
+
fg="green",
|
228
|
+
)
|
229
|
+
)
|
230
|
+
|
231
|
+
console = Console()
|
232
|
+
table = Table(title=f"'{connector_name}' Secrets")
|
233
|
+
table.add_column("Name", justify="left", style="cyan", overflow="fold")
|
234
|
+
table.add_column("Labels", justify="left", style="magenta", overflow="fold")
|
235
|
+
table.add_column("Created", justify="left", style="blue", overflow="fold")
|
236
|
+
for secret in secrets:
|
237
|
+
full_secret_name = secret.name
|
238
|
+
secret_name = full_secret_name.split("/secrets/")[-1] # Removes project prefix
|
239
|
+
# E.g. https://console.cloud.google.com/security/secret-manager/secret/SECRET_SOURCE-SHOPIFY__CREDS/versions?hl=en&project=<gcp_project_id>
|
240
|
+
secret_url = f"https://console.cloud.google.com/security/secret-manager/secret/{secret_name}/versions?hl=en&project={gcp_project_id}"
|
241
|
+
table.add_row(
|
242
|
+
f"[link={secret_url}]{secret_name}[/link]",
|
243
|
+
"\n".join([f"{k}={v}" for k, v in secret.labels.items()]),
|
244
|
+
str(secret.create_time),
|
245
|
+
)
|
246
|
+
|
247
|
+
console.print(table)
|
248
|
+
|
249
|
+
|
250
|
+
def _fetch_secret_handles(
|
251
|
+
connector_name: str,
|
252
|
+
gcp_project_id: str = AIRBYTE_INTERNAL_GCP_PROJECT,
|
253
|
+
) -> list["Secret"]: # type: ignore
|
254
|
+
"""Fetch secrets from Google Secret Manager."""
|
255
|
+
if not secretmanager:
|
256
|
+
raise ImportError(
|
257
|
+
"google-cloud-secret-manager package is required for Secret Manager integration. "
|
258
|
+
"Install it with 'pip install airbyte-cdk[dev]' "
|
259
|
+
"or 'pip install google-cloud-secret-manager'."
|
260
|
+
)
|
261
|
+
|
262
|
+
client = _get_gsm_secrets_client()
|
263
|
+
|
264
|
+
# List all secrets with the connector label
|
265
|
+
parent = f"projects/{gcp_project_id}"
|
266
|
+
filter_string = f"labels.{CONNECTOR_LABEL}={connector_name}"
|
267
|
+
secrets = client.list_secrets(
|
268
|
+
request=secretmanager.ListSecretsRequest(
|
269
|
+
parent=parent,
|
270
|
+
filter=filter_string,
|
271
|
+
)
|
272
|
+
)
|
273
|
+
return [s for s in secrets]
|
274
|
+
|
275
|
+
|
276
|
+
def _write_secret_file(
|
277
|
+
secret: "Secret", # type: ignore
|
278
|
+
client: "secretmanager.SecretManagerServiceClient", # type: ignore
|
279
|
+
file_path: Path,
|
280
|
+
) -> None:
|
281
|
+
version_name = f"{secret.name}/versions/latest"
|
282
|
+
response = client.access_secret_version(name=version_name)
|
283
|
+
file_path.write_text(response.payload.data.decode("UTF-8"))
|
284
|
+
file_path.chmod(0o600) # default to owner read/write only
|
285
|
+
|
286
|
+
|
287
|
+
def _get_secrets_dir(
|
288
|
+
connector_directory: Path,
|
289
|
+
connector_name: str,
|
290
|
+
ensure_exists: bool = True,
|
291
|
+
) -> Path:
|
292
|
+
try:
|
293
|
+
connector_name, connector_directory = resolve_connector_name_and_directory(
|
294
|
+
connector_name=connector_name,
|
295
|
+
connector_directory=connector_directory,
|
296
|
+
)
|
297
|
+
except FileNotFoundError as e:
|
298
|
+
raise FileNotFoundError(
|
299
|
+
f"Could not find connector directory for '{connector_name}'. "
|
300
|
+
"Please provide the --connector-directory option with the path to the connector. "
|
301
|
+
"Note: This command requires either running from within a connector directory, "
|
302
|
+
"being in the airbyte monorepo, or explicitly providing the connector directory path."
|
303
|
+
) from e
|
304
|
+
except ValueError as e:
|
305
|
+
raise ValueError(str(e))
|
306
|
+
|
307
|
+
secrets_dir = connector_directory / "secrets"
|
308
|
+
if ensure_exists:
|
309
|
+
secrets_dir.mkdir(parents=True, exist_ok=True)
|
310
|
+
|
311
|
+
gitignore_path = secrets_dir / ".gitignore"
|
312
|
+
if not gitignore_path.exists():
|
313
|
+
gitignore_path.write_text("*")
|
314
|
+
|
315
|
+
return secrets_dir
|
316
|
+
|
317
|
+
|
318
|
+
def _get_secret_filepath(
|
319
|
+
secrets_dir: Path,
|
320
|
+
secret: Secret, # type: ignore
|
321
|
+
) -> Path:
|
322
|
+
"""Get the file path for a secret based on its labels."""
|
323
|
+
if secret.labels and "filename" in secret.labels:
|
324
|
+
return secrets_dir / f"{secret.labels['filename']}.json"
|
325
|
+
|
326
|
+
return secrets_dir / "config.json" # Default filename
|
327
|
+
|
328
|
+
|
329
|
+
def _get_gsm_secrets_client() -> "secretmanager.SecretManagerServiceClient": # type: ignore
|
330
|
+
"""Get the Google Secret Manager client."""
|
331
|
+
if not secretmanager:
|
332
|
+
raise ImportError(
|
333
|
+
"google-cloud-secret-manager package is required for Secret Manager integration. "
|
334
|
+
"Install it with 'pip install airbyte-cdk[dev]' "
|
335
|
+
"or 'pip install google-cloud-secret-manager'."
|
336
|
+
)
|
337
|
+
|
338
|
+
credentials_json = os.environ.get("GCP_GSM_CREDENTIALS")
|
339
|
+
if not credentials_json:
|
340
|
+
raise ValueError(
|
341
|
+
"No Google Cloud credentials found. "
|
342
|
+
"Please set the `GCP_GSM_CREDENTIALS` environment variable."
|
343
|
+
)
|
344
|
+
|
345
|
+
return cast(
|
346
|
+
"secretmanager.SecretManagerServiceClient",
|
347
|
+
secretmanager.SecretManagerServiceClient.from_service_account_info(
|
348
|
+
json.loads(credentials_json)
|
349
|
+
),
|
350
|
+
)
|
351
|
+
|
352
|
+
|
353
|
+
def _print_ci_secrets_masks(
|
354
|
+
secrets_dir: Path,
|
355
|
+
) -> None:
|
356
|
+
"""Print GitHub CI mask for secrets.
|
357
|
+
|
358
|
+
https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/workflow-commands-for-github-actions#example-masking-an-environment-variable
|
359
|
+
|
360
|
+
The env var `CI` is set to a truthy value in GitHub Actions, so we can use it to
|
361
|
+
determine if we are in a CI environment. If not, we don't want to print the masks,
|
362
|
+
as it will cause the secrets to be printed in clear text to STDOUT.
|
363
|
+
"""
|
364
|
+
if not os.environ.get("CI", None):
|
365
|
+
click.echo(
|
366
|
+
"The `--print-ci-secrets-masks` option is only available in CI environments. "
|
367
|
+
"The `CI` env var is either not set or not set to a truthy value. "
|
368
|
+
"Skipping printing secret masks.",
|
369
|
+
err=True,
|
370
|
+
)
|
371
|
+
return
|
372
|
+
|
373
|
+
for secret_file_path in secrets_dir.glob("*.json"):
|
374
|
+
config_dict = json.loads(secret_file_path.read_text())
|
375
|
+
_print_ci_secrets_masks_for_config(config=config_dict)
|
376
|
+
|
377
|
+
|
378
|
+
def _print_ci_secrets_masks_for_config(
|
379
|
+
config: dict[str, str] | list[Any] | Any,
|
380
|
+
) -> None:
|
381
|
+
"""Print GitHub CI mask for secrets config, navigating child nodes recursively."""
|
382
|
+
if isinstance(config, list):
|
383
|
+
for item in config:
|
384
|
+
_print_ci_secrets_masks_for_config(item)
|
385
|
+
|
386
|
+
if isinstance(config, dict):
|
387
|
+
for key, value in config.items():
|
388
|
+
if _is_secret_property(key):
|
389
|
+
logger.debug(f"Masking secret for config key: {key}")
|
390
|
+
print(f"::add-mask::{value!s}")
|
391
|
+
if isinstance(value, dict):
|
392
|
+
# For nested dicts, we also need to mask the json-stringified version
|
393
|
+
print(f"::add-mask::{json.dumps(value)!s}")
|
394
|
+
|
395
|
+
if isinstance(value, (dict, list)):
|
396
|
+
_print_ci_secrets_masks_for_config(config=value)
|
397
|
+
|
398
|
+
|
399
|
+
def _is_secret_property(property_name: str) -> bool:
|
400
|
+
"""Check if the property name is in the list of properties to mask.
|
401
|
+
|
402
|
+
To avoid false negatives, we perform a case-insensitive check, and we include any property name
|
403
|
+
that contains a rule entry, even if it is not an exact match.
|
404
|
+
|
405
|
+
For example, if the rule entry is "password", we will also match "PASSWORD" and "my_password".
|
406
|
+
"""
|
407
|
+
names_to_mask: list[str] = _get_spec_mask()
|
408
|
+
if any([mask.lower() in property_name.lower() for mask in names_to_mask]):
|
409
|
+
return True
|
410
|
+
|
411
|
+
return False
|
412
|
+
|
413
|
+
|
414
|
+
@lru_cache
|
415
|
+
def _get_spec_mask() -> list[str]:
|
416
|
+
"""Get the list of properties to mask from the spec mask file."""
|
417
|
+
response = requests.get(GLOBAL_MASK_KEYS_URL, allow_redirects=True)
|
418
|
+
if not response.ok:
|
419
|
+
logger.error(f"Failed to fetch spec mask: {response.content.decode('utf-8')}")
|
420
|
+
try:
|
421
|
+
return cast(list[str], yaml.safe_load(response.content)["properties"])
|
422
|
+
except Exception as e:
|
423
|
+
logger.error(f"Failed to parse spec mask: {e}")
|
424
|
+
raise
|
{airbyte_cdk-6.48.2.post1.dev14733922675 → airbyte_cdk-6.48.4}/airbyte_cdk/cli/airbyte_cdk/_util.py
RENAMED
@@ -41,3 +41,29 @@ def resolve_connector_name_and_directory(
|
|
41
41
|
raise ValueError("Either connector_name or connector_directory must be provided.")
|
42
42
|
|
43
43
|
return connector_name, connector_directory
|
44
|
+
|
45
|
+
|
46
|
+
def resolve_connector_name(
|
47
|
+
connector_directory: Path,
|
48
|
+
) -> str:
|
49
|
+
"""Resolve the connector name.
|
50
|
+
|
51
|
+
This function will resolve the connector name based on the provided connector directory.
|
52
|
+
If the current working directory is not a connector directory
|
53
|
+
(e.g. starting with 'source-'), the process will fail.
|
54
|
+
|
55
|
+
Raises:
|
56
|
+
FileNotFoundError: If the connector directory does not exist or cannot be found.
|
57
|
+
"""
|
58
|
+
if not connector_directory:
|
59
|
+
raise FileNotFoundError(
|
60
|
+
"Connector directory does not exist or cannot be found. Please provide a valid "
|
61
|
+
"connector directory."
|
62
|
+
)
|
63
|
+
connector_name = connector_directory.absolute().name
|
64
|
+
if not connector_name.startswith("source-") and not connector_name.startswith("destination-"):
|
65
|
+
raise ValueError(
|
66
|
+
f"Connector directory '{connector_name}' does not look like a valid connector directory. "
|
67
|
+
f"Full path: {connector_directory.absolute()}"
|
68
|
+
)
|
69
|
+
return connector_name
|
@@ -33,19 +33,44 @@ class HttpRequesterRequestBodyJsonDataToRequestBody(ManifestMigration):
|
|
33
33
|
def migrate(self, manifest: ManifestType) -> None:
|
34
34
|
for key in self.original_keys:
|
35
35
|
if key == self.body_json_key and key in manifest:
|
36
|
-
|
37
|
-
"type": "RequestBodyJson",
|
38
|
-
"value": manifest[key],
|
39
|
-
}
|
40
|
-
manifest.pop(key, None)
|
36
|
+
self._migrate_body_json(manifest, key)
|
41
37
|
elif key == self.body_data_key and key in manifest:
|
42
|
-
|
43
|
-
"type": "RequestBodyData",
|
44
|
-
"value": manifest[key],
|
45
|
-
}
|
46
|
-
manifest.pop(key, None)
|
38
|
+
self._migrate_body_data(manifest, key)
|
47
39
|
|
48
40
|
def validate(self, manifest: ManifestType) -> bool:
|
49
41
|
return self.replacement_key in manifest and all(
|
50
42
|
key not in manifest for key in self.original_keys
|
51
43
|
)
|
44
|
+
|
45
|
+
def _migrate_body_json(self, manifest: ManifestType, key: str) -> None:
|
46
|
+
"""
|
47
|
+
Migrate the value of the request_body_json.
|
48
|
+
"""
|
49
|
+
query_key = "query"
|
50
|
+
text_type = "RequestBodyPlainText"
|
51
|
+
graph_ql_type = "RequestBodyGraphQL"
|
52
|
+
json_object_type = "RequestBodyJsonObject"
|
53
|
+
|
54
|
+
if isinstance(manifest[key], str):
|
55
|
+
self._migrate_value(manifest, key, text_type)
|
56
|
+
elif isinstance(manifest[key], dict):
|
57
|
+
if manifest[key].get(query_key) is not None:
|
58
|
+
self._migrate_value(manifest, key, graph_ql_type)
|
59
|
+
else:
|
60
|
+
self._migrate_value(manifest, key, json_object_type)
|
61
|
+
|
62
|
+
def _migrate_body_data(self, manifest: ManifestType, key: str) -> None:
|
63
|
+
"""
|
64
|
+
Migrate the value of the request_body_data.
|
65
|
+
"""
|
66
|
+
self._migrate_value(manifest, key, "RequestBodyUrlEncodedForm")
|
67
|
+
|
68
|
+
def _migrate_value(self, manifest: ManifestType, key: str, type: str) -> None:
|
69
|
+
"""
|
70
|
+
Migrate the value of the key to a specific type and update the manifest.
|
71
|
+
"""
|
72
|
+
manifest[self.replacement_key] = {
|
73
|
+
"type": type,
|
74
|
+
"value": manifest[key],
|
75
|
+
}
|
76
|
+
manifest.pop(key, None)
|
@@ -2,10 +2,9 @@
|
|
2
2
|
# Copyright (c) 2023 Airbyte, Inc., all rights reserved.
|
3
3
|
#
|
4
4
|
|
5
|
-
import logging
|
6
5
|
from dataclasses import InitVar, dataclass, field
|
7
6
|
from datetime import datetime, timedelta
|
8
|
-
from typing import Any, List, Mapping, Optional, Union
|
7
|
+
from typing import Any, List, Mapping, MutableMapping, Optional, Union
|
9
8
|
|
10
9
|
from airbyte_cdk.sources.declarative.auth.declarative_authenticator import DeclarativeAuthenticator
|
11
10
|
from airbyte_cdk.sources.declarative.interpolation.interpolated_boolean import InterpolatedBoolean
|
@@ -20,7 +19,6 @@ from airbyte_cdk.sources.streams.http.requests_native_auth.oauth import (
|
|
20
19
|
)
|
21
20
|
from airbyte_cdk.utils.datetime_helpers import AirbyteDateTime, ab_datetime_now, ab_datetime_parse
|
22
21
|
|
23
|
-
logger = logging.getLogger("airbyte")
|
24
22
|
|
25
23
|
@dataclass
|
26
24
|
class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAuthenticator):
|
@@ -203,8 +201,7 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
|
|
203
201
|
self._client_secret.eval(self.config) if self._client_secret else self._client_secret
|
204
202
|
)
|
205
203
|
if not client_secret:
|
206
|
-
|
207
|
-
logger.warning("OAuthAuthenticator was unable to evaluate client_secret parameter hence it'll be empty")
|
204
|
+
raise ValueError("OAuthAuthenticator was unable to evaluate client_secret parameter")
|
208
205
|
return client_secret # type: ignore # value will be returned as a string, or an error will be raised
|
209
206
|
|
210
207
|
def get_refresh_token_name(self) -> str:
|