airbyte-cdk 6.17.1.dev1__tar.gz → 6.26.0.dev3__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.
Files changed (357) hide show
  1. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/PKG-INFO +3 -3
  2. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/cli/source_declarative_manifest/_run.py +6 -0
  3. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/connector_builder/connector_builder_handler.py +1 -0
  4. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/auth/oauth.py +102 -11
  5. airbyte_cdk-6.26.0.dev3/airbyte_cdk/sources/declarative/checks/__init__.py +24 -0
  6. airbyte_cdk-6.26.0.dev3/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +51 -0
  7. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +39 -43
  8. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +198 -23
  9. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/decoders/__init__.py +9 -1
  10. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +43 -0
  11. airbyte_cdk-6.26.0.dev3/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +59 -0
  12. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +123 -103
  13. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +3 -0
  14. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +35 -18
  15. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +17 -5
  16. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +166 -32
  17. airbyte_cdk-6.26.0.dev3/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +143 -0
  18. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +296 -47
  19. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +46 -12
  20. airbyte_cdk-6.26.0.dev3/airbyte_cdk/sources/declarative/requesters/README.md +56 -0
  21. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +22 -0
  22. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +33 -4
  23. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/schema/__init__.py +2 -0
  24. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +56 -8
  25. airbyte_cdk-6.26.0.dev3/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +55 -0
  26. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +11 -0
  27. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/exceptions.py +34 -0
  28. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/file_based_source.py +28 -5
  29. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +18 -4
  30. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +25 -2
  31. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +30 -2
  32. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/http_logger.py +1 -1
  33. airbyte_cdk-6.26.0.dev3/airbyte_cdk/sources/streams/concurrent/clamping.py +99 -0
  34. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/cursor.py +21 -36
  35. airbyte_cdk-6.26.0.dev3/airbyte_cdk/sources/streams/concurrent/cursor_types.py +32 -0
  36. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +33 -4
  37. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +61 -23
  38. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/types.py +3 -0
  39. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/utils/transform.py +29 -3
  40. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/test/utils/manifest_only_fixtures.py +1 -2
  41. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/pyproject.toml +5 -9
  42. airbyte_cdk-6.17.1.dev1/airbyte_cdk/sources/declarative/checks/__init__.py +0 -8
  43. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/LICENSE.txt +0 -0
  44. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/README.md +0 -0
  45. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/__init__.py +0 -0
  46. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/cli/__init__.py +0 -0
  47. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  48. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  49. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/config_observation.py +0 -0
  50. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/connector.py +0 -0
  51. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/connector_builder/README.md +0 -0
  52. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/connector_builder/__init__.py +0 -0
  53. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/connector_builder/main.py +0 -0
  54. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/connector_builder/message_grouper.py +0 -0
  55. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/connector_builder/models.py +0 -0
  56. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/destinations/__init__.py +0 -0
  57. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/destinations/destination.py +0 -0
  58. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  59. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  60. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  61. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  62. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  63. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  64. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  65. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  66. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  67. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/entrypoint.py +0 -0
  68. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/exception_handler.py +0 -0
  69. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/logger.py +0 -0
  70. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/models/__init__.py +0 -0
  71. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  72. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  73. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  74. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/models/well_known_types.py +0 -0
  75. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/py.typed +0 -0
  76. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/__init__.py +0 -0
  77. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/abstract_source.py +0 -0
  78. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  79. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  80. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  81. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  82. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  83. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  84. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  85. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/config.py +0 -0
  86. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  87. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  88. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  89. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  90. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  91. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  92. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  93. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  94. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  95. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  96. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  97. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  98. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  99. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  100. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  101. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  102. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  103. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  104. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  105. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  106. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  107. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  108. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  109. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  110. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  111. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  112. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  113. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  114. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  115. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  116. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  117. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  118. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  119. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  120. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  121. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  122. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  123. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  124. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  125. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  126. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  127. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  128. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  129. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  130. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  131. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  132. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  133. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  134. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  135. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  136. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  137. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  138. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  139. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  140. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  141. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  142. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  143. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  144. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  145. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  146. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  147. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  148. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  149. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  150. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  151. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  152. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  153. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  154. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  155. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  156. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  157. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  158. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  159. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  160. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  161. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  162. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  163. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  164. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  165. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  166. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  167. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  168. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  169. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  170. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  171. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  172. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  173. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  174. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  175. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  176. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  177. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  178. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  179. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  180. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  181. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  182. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  183. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  184. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  185. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  186. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  187. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  188. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  189. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  190. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  191. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  192. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  193. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  194. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  195. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  196. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  197. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  198. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  199. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  200. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  201. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  202. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  203. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  204. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  205. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  206. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  207. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  208. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  209. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  210. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  211. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/types.py +0 -0
  212. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  213. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/embedded/__init__.py +0 -0
  214. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/embedded/base_integration.py +0 -0
  215. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/embedded/catalog.py +0 -0
  216. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/embedded/runner.py +0 -0
  217. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/embedded/tools.py +0 -0
  218. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/README.md +0 -0
  219. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  220. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  221. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  222. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  223. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  224. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  225. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  226. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  227. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  228. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  229. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  230. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  231. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  232. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  233. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  234. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  235. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  236. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  237. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  238. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  239. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  240. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  241. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  242. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  243. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  244. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  245. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  246. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  247. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  248. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  249. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  250. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  251. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  252. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  253. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  254. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  255. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  256. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  257. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  258. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/file_based/types.py +0 -0
  259. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/http_config.py +0 -0
  260. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/message/__init__.py +0 -0
  261. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/message/repository.py +0 -0
  262. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/source.py +0 -0
  263. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/__init__.py +0 -0
  264. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  265. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  266. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  267. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  268. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  269. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  270. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  271. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  272. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  273. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  274. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  275. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  276. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  277. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  278. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  279. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  280. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  281. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  282. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  283. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  284. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  285. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  286. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  287. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  288. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  289. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  290. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  291. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/core.py +0 -0
  292. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  293. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  294. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  295. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  296. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  297. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  298. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  299. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  300. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  301. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  302. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  303. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  304. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/http.py +0 -0
  305. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  306. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  307. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  308. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  309. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  310. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  311. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/utils/__init__.py +0 -0
  312. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/utils/casing.py +0 -0
  313. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  314. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  315. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  316. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sources/utils/types.py +0 -0
  317. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sql/__init__.py +0 -0
  318. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sql/_util/__init__.py +0 -0
  319. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sql/_util/hashing.py +0 -0
  320. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  321. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sql/constants.py +0 -0
  322. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sql/exceptions.py +0 -0
  323. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sql/secrets.py +0 -0
  324. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sql/shared/__init__.py +0 -0
  325. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  326. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  327. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/sql/types.py +0 -0
  328. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/test/__init__.py +0 -0
  329. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/test/catalog_builder.py +0 -0
  330. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  331. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  332. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  333. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  334. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/test/mock_http/request.py +0 -0
  335. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/test/mock_http/response.py +0 -0
  336. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  337. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/test/state_builder.py +0 -0
  338. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/test/utils/__init__.py +0 -0
  339. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/test/utils/data.py +0 -0
  340. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  341. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/test/utils/reading.py +0 -0
  342. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/utils/__init__.py +0 -0
  343. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  344. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/utils/analytics_message.py +0 -0
  345. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/utils/constants.py +0 -0
  346. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  347. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/utils/event_timing.py +0 -0
  348. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  349. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  350. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/utils/message_utils.py +0 -0
  351. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  352. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/utils/print_buffer.py +0 -0
  353. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  354. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/utils/slice_hasher.py +0 -0
  355. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  356. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  357. {airbyte_cdk-6.17.1.dev1 → airbyte_cdk-6.26.0.dev3}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: airbyte-cdk
3
- Version: 6.17.1.dev1
3
+ Version: 6.26.0.dev3
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  License: MIT
6
6
  Keywords: airbyte,connector-development-kit,cdk
@@ -23,7 +23,7 @@ Requires-Dist: Jinja2 (>=3.1.2,<3.2.0)
23
23
  Requires-Dist: PyYAML (>=6.0.1,<7.0.0)
24
24
  Requires-Dist: Unidecode (>=1.3,<2.0)
25
25
  Requires-Dist: airbyte-protocol-models-dataclasses (>=0.14,<0.15)
26
- Requires-Dist: avro (>=1.11.2,<1.12.0) ; extra == "file-based"
26
+ Requires-Dist: avro (>=1.11.2,<1.13.0) ; extra == "file-based"
27
27
  Requires-Dist: backoff
28
28
  Requires-Dist: cachetools
29
29
  Requires-Dist: cohere (==4.21) ; extra == "vector-db-based"
@@ -66,7 +66,7 @@ Requires-Dist: tiktoken (==0.8.0) ; extra == "vector-db-based"
66
66
  Requires-Dist: unstructured.pytesseract (>=0.3.12) ; extra == "file-based"
67
67
  Requires-Dist: unstructured[docx,pptx] (==0.10.27) ; extra == "file-based"
68
68
  Requires-Dist: wcmatch (==10.0)
69
- Requires-Dist: xmltodict (>=0.13.0,<0.14.0)
69
+ Requires-Dist: xmltodict (>=0.13,<0.15)
70
70
  Project-URL: Documentation, https://docs.airbyte.io/
71
71
  Project-URL: Homepage, https://airbyte.com
72
72
  Project-URL: Repository, https://github.com/airbytehq/airbyte-python-cdk
@@ -171,6 +171,12 @@ def create_declarative_source(
171
171
  "Invalid config: `__injected_declarative_manifest` should be provided at the root "
172
172
  f"of the config but config only has keys: {list(config.keys() if config else [])}"
173
173
  )
174
+ if not isinstance(config["__injected_declarative_manifest"], dict):
175
+ raise ValueError(
176
+ "Invalid config: `__injected_declarative_manifest` should be a dictionary, "
177
+ f"but got type: {type(config['__injected_declarative_manifest'])}"
178
+ )
179
+
174
180
  return ConcurrentDeclarativeSource(
175
181
  config=config,
176
182
  catalog=catalog,
@@ -52,6 +52,7 @@ def get_limits(config: Mapping[str, Any]) -> TestReadLimits:
52
52
  def create_source(config: Mapping[str, Any], limits: TestReadLimits) -> ManifestDeclarativeSource:
53
53
  manifest = config["__injected_declarative_manifest"]
54
54
  return ManifestDeclarativeSource(
55
+ config=config,
55
56
  emit_connector_builder_messages=True,
56
57
  source_config=manifest,
57
58
  component_factory=ModelToComponentFactory(
@@ -3,11 +3,12 @@
3
3
  #
4
4
 
5
5
  from dataclasses import InitVar, dataclass, field
6
- from typing import Any, List, Mapping, Optional, Union
6
+ from typing import Any, List, Mapping, MutableMapping, Optional, Union
7
7
 
8
8
  import pendulum
9
9
 
10
10
  from airbyte_cdk.sources.declarative.auth.declarative_authenticator import DeclarativeAuthenticator
11
+ from airbyte_cdk.sources.declarative.interpolation.interpolated_boolean import InterpolatedBoolean
11
12
  from airbyte_cdk.sources.declarative.interpolation.interpolated_mapping import InterpolatedMapping
12
13
  from airbyte_cdk.sources.declarative.interpolation.interpolated_string import InterpolatedString
13
14
  from airbyte_cdk.sources.message import MessageRepository, NoopMessageRepository
@@ -39,14 +40,15 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
39
40
  token_expiry_date_format str: format of the datetime; provide it if expires_in is returned in datetime instead of seconds
40
41
  token_expiry_is_time_of_expiration bool: set True it if expires_in is returned as time of expiration instead of the number seconds until expiration
41
42
  refresh_request_body (Optional[Mapping[str, Any]]): The request body to send in the refresh request
43
+ refresh_request_headers (Optional[Mapping[str, Any]]): The request headers to send in the refresh request
42
44
  grant_type: The grant_type to request for access_token. If set to refresh_token, the refresh_token parameter has to be provided
43
45
  message_repository (MessageRepository): the message repository used to emit logs on HTTP requests
44
46
  """
45
47
 
46
- client_id: Union[InterpolatedString, str]
47
- client_secret: Union[InterpolatedString, str]
48
48
  config: Mapping[str, Any]
49
49
  parameters: InitVar[Mapping[str, Any]]
50
+ client_id: Optional[Union[InterpolatedString, str]] = None
51
+ client_secret: Optional[Union[InterpolatedString, str]] = None
50
52
  token_refresh_endpoint: Optional[Union[InterpolatedString, str]] = None
51
53
  refresh_token: Optional[Union[InterpolatedString, str]] = None
52
54
  scopes: Optional[List[str]] = None
@@ -56,10 +58,17 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
56
58
  token_expiry_is_time_of_expiration: bool = False
57
59
  access_token_name: Union[InterpolatedString, str] = "access_token"
58
60
  access_token_value: Optional[Union[InterpolatedString, str]] = None
61
+ client_id_name: Union[InterpolatedString, str] = "client_id"
62
+ client_secret_name: Union[InterpolatedString, str] = "client_secret"
59
63
  expires_in_name: Union[InterpolatedString, str] = "expires_in"
64
+ refresh_token_name: Union[InterpolatedString, str] = "refresh_token"
60
65
  refresh_request_body: Optional[Mapping[str, Any]] = None
66
+ refresh_request_headers: Optional[Mapping[str, Any]] = None
67
+ grant_type_name: Union[InterpolatedString, str] = "grant_type"
61
68
  grant_type: Union[InterpolatedString, str] = "refresh_token"
62
69
  message_repository: MessageRepository = NoopMessageRepository()
70
+ profile_assertion: Optional[DeclarativeAuthenticator] = None
71
+ use_profile_assertion: Optional[Union[InterpolatedBoolean, str, bool]] = False
63
72
 
64
73
  def __post_init__(self, parameters: Mapping[str, Any]) -> None:
65
74
  super().__init__()
@@ -69,8 +78,23 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
69
78
  )
70
79
  else:
71
80
  self._token_refresh_endpoint = None
72
- self._client_id = InterpolatedString.create(self.client_id, parameters=parameters)
73
- self._client_secret = InterpolatedString.create(self.client_secret, parameters=parameters)
81
+ self._client_id_name = InterpolatedString.create(self.client_id_name, parameters=parameters)
82
+ self._client_id = (
83
+ InterpolatedString.create(self.client_id, parameters=parameters)
84
+ if self.client_id
85
+ else self.client_id
86
+ )
87
+ self._client_secret_name = InterpolatedString.create(
88
+ self.client_secret_name, parameters=parameters
89
+ )
90
+ self._client_secret = (
91
+ InterpolatedString.create(self.client_secret, parameters=parameters)
92
+ if self.client_secret
93
+ else self.client_secret
94
+ )
95
+ self._refresh_token_name = InterpolatedString.create(
96
+ self.refresh_token_name, parameters=parameters
97
+ )
74
98
  if self.refresh_token is not None:
75
99
  self._refresh_token: Optional[InterpolatedString] = InterpolatedString.create(
76
100
  self.refresh_token, parameters=parameters
@@ -83,10 +107,21 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
83
107
  self.expires_in_name = InterpolatedString.create(
84
108
  self.expires_in_name, parameters=parameters
85
109
  )
86
- self.grant_type = InterpolatedString.create(self.grant_type, parameters=parameters)
110
+ self.grant_type_name = InterpolatedString.create(
111
+ self.grant_type_name, parameters=parameters
112
+ )
113
+ self.grant_type = InterpolatedString.create(
114
+ "urn:ietf:params:oauth:grant-type:jwt-bearer"
115
+ if self.use_profile_assertion
116
+ else self.grant_type,
117
+ parameters=parameters,
118
+ )
87
119
  self._refresh_request_body = InterpolatedMapping(
88
120
  self.refresh_request_body or {}, parameters=parameters
89
121
  )
122
+ self._refresh_request_headers = InterpolatedMapping(
123
+ self.refresh_request_headers or {}, parameters=parameters
124
+ )
90
125
  self._token_expiry_date: pendulum.DateTime = (
91
126
  pendulum.parse(
92
127
  InterpolatedString.create(self.token_expiry_date, parameters=parameters).eval(
@@ -96,6 +131,13 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
96
131
  if self.token_expiry_date
97
132
  else pendulum.now().subtract(days=1) # type: ignore # substract does not have type hints
98
133
  )
134
+ self.use_profile_assertion = (
135
+ InterpolatedBoolean(self.use_profile_assertion, parameters=parameters)
136
+ if isinstance(self.use_profile_assertion, str)
137
+ else self.use_profile_assertion
138
+ )
139
+ self.assertion_name = "assertion"
140
+
99
141
  if self.access_token_value is not None:
100
142
  self._access_token_value = InterpolatedString.create(
101
143
  self.access_token_value, parameters=parameters
@@ -107,9 +149,20 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
107
149
  self._access_token_value if self.access_token_value else None
108
150
  )
109
151
 
152
+ if not self.use_profile_assertion and any(
153
+ client_creds is None for client_creds in [self.client_id, self.client_secret]
154
+ ):
155
+ raise ValueError(
156
+ "OAuthAuthenticator configuration error: Both 'client_id' and 'client_secret' are required for the "
157
+ "basic OAuth flow."
158
+ )
159
+ if self.profile_assertion is None and self.use_profile_assertion:
160
+ raise ValueError(
161
+ "OAuthAuthenticator configuration error: 'profile_assertion' is required when using the profile assertion flow."
162
+ )
110
163
  if self.get_grant_type() == "refresh_token" and self._refresh_token is None:
111
164
  raise ValueError(
112
- "OAuthAuthenticator needs a refresh_token parameter if grant_type is set to `refresh_token`"
165
+ "OAuthAuthenticator configuration error: A 'refresh_token' is required when the 'grant_type' is set to 'refresh_token'."
113
166
  )
114
167
 
115
168
  def get_token_refresh_endpoint(self) -> Optional[str]:
@@ -122,17 +175,28 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
122
175
  return refresh_token_endpoint
123
176
  return None
124
177
 
178
+ def get_client_id_name(self) -> str:
179
+ return self._client_id_name.eval(self.config) # type: ignore # eval returns a string in this context
180
+
125
181
  def get_client_id(self) -> str:
126
- client_id: str = self._client_id.eval(self.config)
182
+ client_id = self._client_id.eval(self.config) if self._client_id else self._client_id
127
183
  if not client_id:
128
184
  raise ValueError("OAuthAuthenticator was unable to evaluate client_id parameter")
129
- return client_id
185
+ return client_id # type: ignore # value will be returned as a string, or an error will be raised
186
+
187
+ def get_client_secret_name(self) -> str:
188
+ return self._client_secret_name.eval(self.config) # type: ignore # eval returns a string in this context
130
189
 
131
190
  def get_client_secret(self) -> str:
132
- client_secret: str = self._client_secret.eval(self.config)
191
+ client_secret = (
192
+ self._client_secret.eval(self.config) if self._client_secret else self._client_secret
193
+ )
133
194
  if not client_secret:
134
195
  raise ValueError("OAuthAuthenticator was unable to evaluate client_secret parameter")
135
- return client_secret
196
+ return client_secret # type: ignore # value will be returned as a string, or an error will be raised
197
+
198
+ def get_refresh_token_name(self) -> str:
199
+ return self._refresh_token_name.eval(self.config) # type: ignore # eval returns a string in this context
136
200
 
137
201
  def get_refresh_token(self) -> Optional[str]:
138
202
  return None if self._refresh_token is None else str(self._refresh_token.eval(self.config))
@@ -146,18 +210,45 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
146
210
  def get_expires_in_name(self) -> str:
147
211
  return self.expires_in_name.eval(self.config) # type: ignore # eval returns a string in this context
148
212
 
213
+ def get_grant_type_name(self) -> str:
214
+ return self.grant_type_name.eval(self.config) # type: ignore # eval returns a string in this context
215
+
149
216
  def get_grant_type(self) -> str:
150
217
  return self.grant_type.eval(self.config) # type: ignore # eval returns a string in this context
151
218
 
152
219
  def get_refresh_request_body(self) -> Mapping[str, Any]:
153
220
  return self._refresh_request_body.eval(self.config)
154
221
 
222
+ def get_refresh_request_headers(self) -> Mapping[str, Any]:
223
+ return self._refresh_request_headers.eval(self.config)
224
+
155
225
  def get_token_expiry_date(self) -> pendulum.DateTime:
156
226
  return self._token_expiry_date # type: ignore # _token_expiry_date is a pendulum.DateTime. It is never None despite what mypy thinks
157
227
 
158
228
  def set_token_expiry_date(self, value: Union[str, int]) -> None:
159
229
  self._token_expiry_date = self._parse_token_expiration_date(value)
160
230
 
231
+ def get_assertion_name(self) -> str:
232
+ return self.assertion_name
233
+
234
+ def get_assertion(self) -> str:
235
+ if self.profile_assertion is None:
236
+ raise ValueError("profile_assertion is not set")
237
+ return self.profile_assertion.token
238
+
239
+ def build_refresh_request_body(self) -> Mapping[str, Any]:
240
+ """
241
+ Returns the request body to set on the refresh request
242
+
243
+ Override to define additional parameters
244
+ """
245
+ if self.use_profile_assertion:
246
+ return {
247
+ self.get_grant_type_name(): self.get_grant_type(),
248
+ self.get_assertion_name(): self.get_assertion(),
249
+ }
250
+ return super().build_refresh_request_body()
251
+
161
252
  @property
162
253
  def access_token(self) -> str:
163
254
  if self._access_token is None:
@@ -0,0 +1,24 @@
1
+ #
2
+ # Copyright (c) 2025 Airbyte, Inc., all rights reserved.
3
+ #
4
+
5
+ from typing import Mapping
6
+
7
+ from pydantic.v1 import BaseModel
8
+
9
+ from airbyte_cdk.sources.declarative.checks.check_dynamic_stream import CheckDynamicStream
10
+ from airbyte_cdk.sources.declarative.checks.check_stream import CheckStream
11
+ from airbyte_cdk.sources.declarative.checks.connection_checker import ConnectionChecker
12
+ from airbyte_cdk.sources.declarative.models import (
13
+ CheckDynamicStream as CheckDynamicStreamModel,
14
+ )
15
+ from airbyte_cdk.sources.declarative.models import (
16
+ CheckStream as CheckStreamModel,
17
+ )
18
+
19
+ COMPONENTS_CHECKER_TYPE_MAPPING: Mapping[str, type[BaseModel]] = {
20
+ "CheckStream": CheckStreamModel,
21
+ "CheckDynamicStream": CheckDynamicStreamModel,
22
+ }
23
+
24
+ __all__ = ["CheckStream", "CheckDynamicStream", "ConnectionChecker"]
@@ -0,0 +1,51 @@
1
+ #
2
+ # Copyright (c) 2025 Airbyte, Inc., all rights reserved.
3
+ #
4
+
5
+ import logging
6
+ import traceback
7
+ from dataclasses import InitVar, dataclass
8
+ from typing import Any, List, Mapping, Tuple
9
+
10
+ from airbyte_cdk import AbstractSource
11
+ from airbyte_cdk.sources.declarative.checks.connection_checker import ConnectionChecker
12
+ from airbyte_cdk.sources.streams.http.availability_strategy import HttpAvailabilityStrategy
13
+
14
+
15
+ @dataclass
16
+ class CheckDynamicStream(ConnectionChecker):
17
+ """
18
+ Checks the connections by checking availability of one or many dynamic streams
19
+
20
+ Attributes:
21
+ stream_count (int): numbers of streams to check
22
+ """
23
+
24
+ stream_count: int
25
+ parameters: InitVar[Mapping[str, Any]]
26
+
27
+ def __post_init__(self, parameters: Mapping[str, Any]) -> None:
28
+ self._parameters = parameters
29
+
30
+ def check_connection(
31
+ self, source: AbstractSource, logger: logging.Logger, config: Mapping[str, Any]
32
+ ) -> Tuple[bool, Any]:
33
+ streams = source.streams(config=config)
34
+ if len(streams) == 0:
35
+ return False, f"No streams to connect to from source {source}"
36
+
37
+ for stream_index in range(min(self.stream_count, len(streams))):
38
+ stream = streams[stream_index]
39
+ availability_strategy = HttpAvailabilityStrategy()
40
+ try:
41
+ stream_is_available, reason = availability_strategy.check_availability(
42
+ stream, logger
43
+ )
44
+ if not stream_is_available:
45
+ return False, reason
46
+ except Exception as error:
47
+ logger.error(
48
+ f"Encountered an error trying to connect to stream {stream.name}. Error: \n {traceback.format_exc()}"
49
+ )
50
+ return False, f"Unable to connect to stream {stream.name} - {error}"
51
+ return True, None
@@ -35,7 +35,7 @@ from airbyte_cdk.sources.declarative.parsers.model_to_component_factory import (
35
35
  ModelToComponentFactory,
36
36
  )
37
37
  from airbyte_cdk.sources.declarative.requesters import HttpRequester
38
- from airbyte_cdk.sources.declarative.retrievers import SimpleRetriever
38
+ from airbyte_cdk.sources.declarative.retrievers import Retriever, SimpleRetriever
39
39
  from airbyte_cdk.sources.declarative.stream_slicers.declarative_partition_generator import (
40
40
  DeclarativePartitionFactory,
41
41
  StreamSlicerPartitionGenerator,
@@ -80,6 +80,7 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
80
80
 
81
81
  super().__init__(
82
82
  source_config=source_config,
83
+ config=config,
83
84
  debug=debug,
84
85
  emit_connector_builder_messages=emit_connector_builder_messages,
85
86
  component_factory=component_factory,
@@ -233,21 +234,7 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
233
234
  stream_state=stream_state,
234
235
  )
235
236
 
236
- retriever = declarative_stream.retriever
237
-
238
- # This is an optimization so that we don't invoke any cursor or state management flows within the
239
- # low-code framework because state management is handled through the ConcurrentCursor.
240
- if declarative_stream and isinstance(retriever, SimpleRetriever):
241
- # Also a temporary hack. In the legacy Stream implementation, as part of the read,
242
- # set_initial_state() is called to instantiate incoming state on the cursor. Although we no
243
- # longer rely on the legacy low-code cursor for concurrent checkpointing, low-code components
244
- # like StopConditionPaginationStrategyDecorator and ClientSideIncrementalRecordFilterDecorator
245
- # still rely on a DatetimeBasedCursor that is properly initialized with state.
246
- if retriever.cursor:
247
- retriever.cursor.set_initial_state(stream_state=stream_state)
248
- # We zero it out here, but since this is a cursor reference, the state is still properly
249
- # instantiated for the other components that reference it
250
- retriever.cursor = None
237
+ retriever = self._get_retriever(declarative_stream, stream_state)
251
238
 
252
239
  partition_generator = StreamSlicerPartitionGenerator(
253
240
  DeclarativePartitionFactory(
@@ -324,32 +311,20 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
324
311
  )
325
312
  partition_router = declarative_stream.retriever.stream_slicer._partition_router
326
313
 
327
- cursor = self._constructor.create_concurrent_cursor_from_perpartition_cursor(
328
- state_manager=state_manager,
329
- model_type=DatetimeBasedCursorModel,
330
- component_definition=incremental_sync_component_definition,
331
- stream_name=declarative_stream.name,
332
- stream_namespace=declarative_stream.namespace,
333
- config=config or {},
334
- stream_state=stream_state,
335
- partition_router=partition_router,
314
+ perpartition_cursor = (
315
+ self._constructor.create_concurrent_cursor_from_perpartition_cursor(
316
+ state_manager=state_manager,
317
+ model_type=DatetimeBasedCursorModel,
318
+ component_definition=incremental_sync_component_definition,
319
+ stream_name=declarative_stream.name,
320
+ stream_namespace=declarative_stream.namespace,
321
+ config=config or {},
322
+ stream_state=stream_state,
323
+ partition_router=partition_router,
324
+ )
336
325
  )
337
326
 
338
- retriever = declarative_stream.retriever
339
-
340
- # This is an optimization so that we don't invoke any cursor or state management flows within the
341
- # low-code framework because state management is handled through the ConcurrentCursor.
342
- if declarative_stream and isinstance(retriever, SimpleRetriever):
343
- # Also a temporary hack. In the legacy Stream implementation, as part of the read,
344
- # set_initial_state() is called to instantiate incoming state on the cursor. Although we no
345
- # longer rely on the legacy low-code cursor for concurrent checkpointing, low-code components
346
- # like StopConditionPaginationStrategyDecorator and ClientSideIncrementalRecordFilterDecorator
347
- # still rely on a DatetimeBasedCursor that is properly initialized with state.
348
- if retriever.cursor:
349
- retriever.cursor.set_initial_state(stream_state=stream_state)
350
- # We zero it out here, but since this is a cursor reference, the state is still properly
351
- # instantiated for the other components that reference it
352
- retriever.cursor = None
327
+ retriever = self._get_retriever(declarative_stream, stream_state)
353
328
 
354
329
  partition_generator = StreamSlicerPartitionGenerator(
355
330
  DeclarativePartitionFactory(
@@ -358,7 +333,7 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
358
333
  retriever,
359
334
  self.message_repository,
360
335
  ),
361
- cursor,
336
+ perpartition_cursor,
362
337
  )
363
338
 
364
339
  concurrent_streams.append(
@@ -368,9 +343,9 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
368
343
  json_schema=declarative_stream.get_json_schema(),
369
344
  availability_strategy=AlwaysAvailableAvailabilityStrategy(),
370
345
  primary_key=get_primary_key_from_stream(declarative_stream.primary_key),
371
- cursor_field=cursor.cursor_field.cursor_field_key,
346
+ cursor_field=perpartition_cursor.cursor_field.cursor_field_key,
372
347
  logger=self.logger,
373
- cursor=cursor,
348
+ cursor=perpartition_cursor,
374
349
  )
375
350
  )
376
351
  else:
@@ -463,6 +438,27 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
463
438
  return False
464
439
  return True
465
440
 
441
+ def _get_retriever(
442
+ self, declarative_stream: DeclarativeStream, stream_state: Mapping[str, Any]
443
+ ) -> Retriever:
444
+ retriever = declarative_stream.retriever
445
+
446
+ # This is an optimization so that we don't invoke any cursor or state management flows within the
447
+ # low-code framework because state management is handled through the ConcurrentCursor.
448
+ if declarative_stream and isinstance(retriever, SimpleRetriever):
449
+ # Also a temporary hack. In the legacy Stream implementation, as part of the read,
450
+ # set_initial_state() is called to instantiate incoming state on the cursor. Although we no
451
+ # longer rely on the legacy low-code cursor for concurrent checkpointing, low-code components
452
+ # like StopConditionPaginationStrategyDecorator and ClientSideIncrementalRecordFilterDecorator
453
+ # still rely on a DatetimeBasedCursor that is properly initialized with state.
454
+ if retriever.cursor:
455
+ retriever.cursor.set_initial_state(stream_state=stream_state)
456
+ # We zero it out here, but since this is a cursor reference, the state is still properly
457
+ # instantiated for the other components that reference it
458
+ retriever.cursor = None
459
+
460
+ return retriever
461
+
466
462
  @staticmethod
467
463
  def _select_streams(
468
464
  streams: List[AbstractStream], configured_catalog: ConfiguredAirbyteCatalog