airbyte-cdk 6.60.15__tar.gz → 6.60.16.post40.dev17219503797__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (458) hide show
  1. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/PKG-INFO +4 -1
  2. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/connector_builder_handler.py +32 -36
  3. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/main.py +3 -3
  4. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/test_reader/helpers.py +24 -2
  5. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +1 -1
  6. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/Dockerfile +45 -0
  7. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/README.md +142 -0
  8. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/__init__.py +3 -0
  9. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/api_models/__init__.py +41 -0
  10. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/api_models/capabilities.py +7 -0
  11. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/api_models/dicts.py +17 -0
  12. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/api_models/manifest.py +73 -0
  13. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/api_models/stream.py +76 -0
  14. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/app.py +17 -0
  15. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/auth.py +43 -0
  16. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/cli/__init__.py +5 -0
  17. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/cli/_common.py +28 -0
  18. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/cli/_info.py +30 -0
  19. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/cli/_openapi.py +43 -0
  20. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/cli/_start.py +38 -0
  21. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/cli/run.py +59 -0
  22. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/command_processor/processor.py +151 -0
  23. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/command_processor/utils.py +76 -0
  24. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/main.py +24 -0
  25. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/openapi.yaml +641 -0
  26. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/routers/capabilities.py +25 -0
  27. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/routers/health.py +13 -0
  28. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/routers/manifest.py +137 -0
  29. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +15 -22
  30. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +30 -18
  31. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +73 -3
  32. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +66 -39
  33. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +42 -4
  34. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer_test_read_decorator.py +2 -2
  35. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sources/message/concurrent_repository.py +47 -0
  36. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/cursor.py +23 -7
  37. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sources/streams/concurrent/partition_reader.py +86 -0
  38. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +7 -1
  39. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/http_client.py +4 -1
  40. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/utils/slice_logger.py +4 -0
  41. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sql/__init__.py +0 -0
  42. airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sql/_util/__init__.py +0 -0
  43. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/pyproject.toml +6 -1
  44. airbyte_cdk-6.60.15/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -45
  45. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/LICENSE.txt +0 -0
  46. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/LICENSE_SHORT +0 -0
  47. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/README.md +0 -0
  48. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/__init__.py +0 -0
  49. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/__init__.py +0 -0
  50. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/airbyte_cdk/__init__.py +0 -0
  51. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/airbyte_cdk/_connector.py +0 -0
  52. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/airbyte_cdk/_image.py +0 -0
  53. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/airbyte_cdk/_manifest.py +0 -0
  54. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/airbyte_cdk/_secrets.py +0 -0
  55. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/airbyte_cdk/_version.py +0 -0
  56. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/airbyte_cdk/exceptions.py +0 -0
  57. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/source_declarative_manifest/README.md +0 -0
  58. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  59. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  60. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  61. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/config_observation.py +0 -0
  62. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector.py +0 -0
  63. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/README.md +0 -0
  64. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/__init__.py +0 -0
  65. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/models.py +0 -0
  66. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
  67. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/test_reader/reader.py +0 -0
  68. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
  69. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/__init__.py +0 -0
  70. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/destination.py +0 -0
  71. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  72. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  73. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  74. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  75. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  76. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  77. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  78. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  79. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  80. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/entrypoint.py +0 -0
  81. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/exception_handler.py +0 -0
  82. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/logger.py +0 -0
  83. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/README.md +0 -0
  84. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/__init__.py +0 -0
  85. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/exceptions.py +0 -0
  86. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/manifest_migration.py +0 -0
  87. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/migration_handler.py +0 -0
  88. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/migrations/__init__.py +0 -0
  89. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/migrations/http_requester_path_to_url.py +0 -0
  90. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/migrations/http_requester_request_body_json_data_to_request_body.py +0 -0
  91. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/migrations/http_requester_url_base_to_url.py +0 -0
  92. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/migrations/registry.yaml +0 -0
  93. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/manifest_migrations/migrations_registry.py +0 -0
  94. {airbyte_cdk-6.60.15/airbyte_cdk/sources/declarative/async_job → airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/command_processor}/__init__.py +0 -0
  95. {airbyte_cdk-6.60.15/airbyte_cdk/sources/declarative/migrations → airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/manifest_server/routers}/__init__.py +0 -0
  96. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/models/__init__.py +0 -0
  97. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  98. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  99. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/models/connector_metadata.py +0 -0
  100. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/models/well_known_types.py +0 -0
  101. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/py.typed +0 -0
  102. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/__init__.py +0 -0
  103. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/abstract_source.py +0 -0
  104. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  105. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  106. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  107. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  108. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  109. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/config.py +0 -0
  110. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  111. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  112. {airbyte_cdk-6.60.15/airbyte_cdk/sources/file_based/config → airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sources/declarative/async_job}/__init__.py +0 -0
  113. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  114. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  115. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  116. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  117. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  118. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  119. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  120. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  121. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  122. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  123. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  124. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  125. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  126. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  127. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  128. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  129. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  130. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  131. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  132. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  133. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  134. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  135. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +0 -0
  136. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  137. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  138. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  139. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  140. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  141. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
  142. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  143. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  144. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  145. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  146. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  147. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  148. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  149. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  150. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  151. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  152. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  153. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  154. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  155. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  156. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  157. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
  158. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  159. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  160. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  161. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  162. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  163. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  164. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  165. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  166. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  167. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  168. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  169. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  170. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  171. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  172. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  173. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  174. {airbyte_cdk-6.60.15/airbyte_cdk/sources/file_based/stream/concurrent → airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sources/declarative/migrations}/__init__.py +0 -0
  175. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  176. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  177. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  178. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/models/base_model_with_deprecations.py +0 -0
  179. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +0 -0
  180. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  181. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  182. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  183. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  184. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/parsers/manifest_normalizer.py +0 -0
  185. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  186. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  187. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  188. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  189. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
  190. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  191. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  192. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  193. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  194. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  195. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  196. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  197. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  198. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  199. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  200. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  201. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  202. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  203. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  204. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  205. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  206. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  207. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  208. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  209. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  210. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  211. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  212. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  213. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  214. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  215. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  216. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  217. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  218. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  219. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  220. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  221. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +0 -0
  222. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +0 -0
  223. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +0 -0
  224. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +0 -0
  225. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/__init__.py +0 -0
  226. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/group_by_key.py +0 -0
  227. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/merge_strategy.py +0 -0
  228. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  229. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  230. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  231. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  232. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  233. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  234. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  235. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  236. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  237. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  238. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  239. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  240. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  241. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  242. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/resolvers/parametrized_components_resolver.py +0 -0
  243. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  244. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  245. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/file_uploader/__init__.py +0 -0
  246. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/file_uploader/connector_builder_file_uploader.py +0 -0
  247. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/file_uploader/default_file_uploader.py +0 -0
  248. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_uploader.py +0 -0
  249. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_writer.py +0 -0
  250. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/file_uploader/local_file_system_file_writer.py +0 -0
  251. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/file_uploader/noop_file_writer.py +0 -0
  252. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  253. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  254. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  255. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/schema/composite_schema_loader.py +0 -0
  256. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  257. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  258. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  259. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  260. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  261. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  262. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  263. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  264. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  265. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  266. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  267. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/config_transformations/__init__.py +0 -0
  268. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/config_transformations/add_fields.py +0 -0
  269. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/config_transformations/config_transformation.py +0 -0
  270. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/config_transformations/remap_field.py +0 -0
  271. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/config_transformations/remove_fields.py +0 -0
  272. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  273. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  274. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  275. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  276. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  277. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  278. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  279. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/types.py +0 -0
  280. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/validators/__init__.py +0 -0
  281. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/validators/dpath_validator.py +0 -0
  282. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/validators/predicate_validator.py +0 -0
  283. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/validators/validate_adheres_to_schema.py +0 -0
  284. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/validators/validation_strategy.py +0 -0
  285. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/validators/validator.py +0 -0
  286. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  287. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/README.md +0 -0
  288. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  289. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  290. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  291. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  292. {airbyte_cdk-6.60.15/airbyte_cdk/sources/streams/concurrent/state_converters → airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sources/file_based/config}/__init__.py +0 -0
  293. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  294. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  295. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  296. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  297. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  298. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  299. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  300. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  301. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
  302. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  303. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  304. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  305. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  306. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  307. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
  308. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  309. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_record_data.py +0 -0
  310. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  311. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  312. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  313. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  314. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  315. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  316. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  317. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  318. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  319. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  320. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  321. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  322. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  323. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  324. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  325. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  326. {airbyte_cdk-6.60.15/airbyte_cdk/sql → airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sources/file_based/stream/concurrent}/__init__.py +0 -0
  327. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  328. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  329. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  330. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  331. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  332. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  333. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  334. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  335. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  336. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
  337. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +0 -0
  338. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/file_based/types.py +0 -0
  339. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/http_config.py +0 -0
  340. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/http_logger.py +0 -0
  341. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/message/__init__.py +0 -0
  342. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/message/repository.py +0 -0
  343. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/source.py +0 -0
  344. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
  345. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/__init__.py +0 -0
  346. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  347. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  348. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  349. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  350. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  351. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  352. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  353. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  354. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  355. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  356. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  357. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  358. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  359. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  360. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  361. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  362. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  363. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  364. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  365. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  366. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  367. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  368. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  369. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  370. {airbyte_cdk-6.60.15/airbyte_cdk/sql/_util → airbyte_cdk-6.60.16.post40.dev17219503797/airbyte_cdk/sources/streams/concurrent/state_converters}/__init__.py +0 -0
  371. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  372. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  373. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
  374. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/core.py +0 -0
  375. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  376. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  377. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  378. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  379. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  380. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  381. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  382. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  383. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  384. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  385. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  386. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  387. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/http.py +0 -0
  388. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  389. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  390. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  391. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  392. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  393. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  394. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
  395. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  396. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/types.py +0 -0
  397. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/utils/__init__.py +0 -0
  398. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/utils/casing.py +0 -0
  399. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/utils/files_directory.py +0 -0
  400. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  401. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  402. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/utils/transform.py +0 -0
  403. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sources/utils/types.py +0 -0
  404. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/_util/hashing.py +0 -0
  405. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  406. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/constants.py +0 -0
  407. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/exceptions.py +0 -0
  408. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/secrets.py +0 -0
  409. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/shared/__init__.py +0 -0
  410. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  411. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  412. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/sql/types.py +0 -0
  413. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/__init__.py +0 -0
  414. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/catalog_builder.py +0 -0
  415. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  416. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  417. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  418. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  419. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/mock_http/request.py +0 -0
  420. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/mock_http/response.py +0 -0
  421. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  422. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/models/__init__.py +0 -0
  423. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/models/outcome.py +0 -0
  424. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/models/scenario.py +0 -0
  425. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/__init__.py +0 -0
  426. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/_job_runner.py +0 -0
  427. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/connector_base.py +0 -0
  428. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/declarative_sources.py +0 -0
  429. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/destination_base.py +0 -0
  430. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/docker_base.py +0 -0
  431. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/pytest_hooks.py +0 -0
  432. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/source_base.py +0 -0
  433. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/standard_tests/util.py +0 -0
  434. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/state_builder.py +0 -0
  435. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/utils/__init__.py +0 -0
  436. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/utils/data.py +0 -0
  437. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  438. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  439. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/test/utils/reading.py +0 -0
  440. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/__init__.py +0 -0
  441. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  442. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/analytics_message.py +0 -0
  443. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/connector_paths.py +0 -0
  444. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/constants.py +0 -0
  445. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  446. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/datetime_helpers.py +0 -0
  447. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/docker.py +0 -0
  448. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/event_timing.py +0 -0
  449. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  450. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  451. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/message_utils.py +0 -0
  452. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  453. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/print_buffer.py +0 -0
  454. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  455. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/slice_hasher.py +0 -0
  456. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  457. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  458. {airbyte_cdk-6.60.15 → airbyte_cdk-6.60.16.post40.dev17219503797}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-cdk
3
- Version: 6.60.15
3
+ Version: 6.60.16.post40.dev17219503797
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -19,6 +19,7 @@ Classifier: Topic :: Scientific/Engineering
19
19
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
20
  Provides-Extra: dev
21
21
  Provides-Extra: file-based
22
+ Provides-Extra: manifest-server
22
23
  Provides-Extra: sql
23
24
  Provides-Extra: vector-db-based
24
25
  Requires-Dist: Jinja2 (>=3.1.2,<3.2.0)
@@ -35,6 +36,7 @@ Requires-Dist: cryptography (>=44.0.0,<45.0.0)
35
36
  Requires-Dist: dateparser (>=1.2.2,<2.0.0)
36
37
  Requires-Dist: dpath (>=2.1.6,<3.0.0)
37
38
  Requires-Dist: dunamai (>=1.22.0,<2.0.0)
39
+ Requires-Dist: fastapi (>=0.116.1) ; extra == "manifest-server"
38
40
  Requires-Dist: fastavro (>=1.8.0,<1.9.0) ; extra == "file-based"
39
41
  Requires-Dist: genson (==1.3.0)
40
42
  Requires-Dist: google-cloud-secret-manager (>=2.17.0,<3.0.0)
@@ -77,6 +79,7 @@ Requires-Dist: typing-extensions
77
79
  Requires-Dist: unidecode (>=1.3.8,<2.0.0)
78
80
  Requires-Dist: unstructured.pytesseract (>=0.3.12) ; extra == "file-based"
79
81
  Requires-Dist: unstructured[docx,pptx] (==0.10.27) ; extra == "file-based"
82
+ Requires-Dist: uvicorn (>=0.35.0) ; extra == "manifest-server"
80
83
  Requires-Dist: wcmatch (==10.0)
81
84
  Requires-Dist: whenever (>=0.6.16,<0.7.0)
82
85
  Requires-Dist: xmltodict (>=0.13,<0.15)
@@ -3,8 +3,8 @@
3
3
  #
4
4
 
5
5
 
6
- from dataclasses import asdict, dataclass, field
7
- from typing import Any, ClassVar, Dict, List, Mapping
6
+ from dataclasses import asdict
7
+ from typing import Any, Dict, List, Mapping, Optional
8
8
 
9
9
  from airbyte_cdk.connector_builder.test_reader import TestReader
10
10
  from airbyte_cdk.models import (
@@ -15,45 +15,32 @@ from airbyte_cdk.models import (
15
15
  Type,
16
16
  )
17
17
  from airbyte_cdk.models import Type as MessageType
18
+ from airbyte_cdk.sources.declarative.concurrent_declarative_source import (
19
+ ConcurrentDeclarativeSource,
20
+ TestLimits,
21
+ )
18
22
  from airbyte_cdk.sources.declarative.declarative_source import DeclarativeSource
19
23
  from airbyte_cdk.sources.declarative.manifest_declarative_source import ManifestDeclarativeSource
20
- from airbyte_cdk.sources.declarative.parsers.model_to_component_factory import (
21
- ModelToComponentFactory,
22
- )
23
24
  from airbyte_cdk.utils.airbyte_secrets_utils import filter_secrets
24
25
  from airbyte_cdk.utils.datetime_helpers import ab_datetime_now
25
26
  from airbyte_cdk.utils.traced_exception import AirbyteTracedException
26
27
 
27
- DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE = 5
28
- DEFAULT_MAXIMUM_NUMBER_OF_SLICES = 5
29
- DEFAULT_MAXIMUM_RECORDS = 100
30
- DEFAULT_MAXIMUM_STREAMS = 100
31
-
32
28
  MAX_PAGES_PER_SLICE_KEY = "max_pages_per_slice"
33
29
  MAX_SLICES_KEY = "max_slices"
34
30
  MAX_RECORDS_KEY = "max_records"
35
31
  MAX_STREAMS_KEY = "max_streams"
36
32
 
37
33
 
38
- @dataclass
39
- class TestLimits:
40
- __test__: ClassVar[bool] = False # Tell Pytest this is not a Pytest class, despite its name
41
-
42
- max_records: int = field(default=DEFAULT_MAXIMUM_RECORDS)
43
- max_pages_per_slice: int = field(default=DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE)
44
- max_slices: int = field(default=DEFAULT_MAXIMUM_NUMBER_OF_SLICES)
45
- max_streams: int = field(default=DEFAULT_MAXIMUM_STREAMS)
46
-
47
-
48
34
  def get_limits(config: Mapping[str, Any]) -> TestLimits:
49
35
  command_config = config.get("__test_read_config", {})
50
- max_pages_per_slice = (
51
- command_config.get(MAX_PAGES_PER_SLICE_KEY) or DEFAULT_MAXIMUM_NUMBER_OF_PAGES_PER_SLICE
36
+ return TestLimits(
37
+ max_records=command_config.get(MAX_RECORDS_KEY, TestLimits.DEFAULT_MAX_RECORDS),
38
+ max_pages_per_slice=command_config.get(
39
+ MAX_PAGES_PER_SLICE_KEY, TestLimits.DEFAULT_MAX_PAGES_PER_SLICE
40
+ ),
41
+ max_slices=command_config.get(MAX_SLICES_KEY, TestLimits.DEFAULT_MAX_SLICES),
42
+ max_streams=command_config.get(MAX_STREAMS_KEY, TestLimits.DEFAULT_MAX_STREAMS),
52
43
  )
53
- max_slices = command_config.get(MAX_SLICES_KEY) or DEFAULT_MAXIMUM_NUMBER_OF_SLICES
54
- max_records = command_config.get(MAX_RECORDS_KEY) or DEFAULT_MAXIMUM_RECORDS
55
- max_streams = command_config.get(MAX_STREAMS_KEY) or DEFAULT_MAXIMUM_STREAMS
56
- return TestLimits(max_records, max_pages_per_slice, max_slices, max_streams)
57
44
 
58
45
 
59
46
  def should_migrate_manifest(config: Mapping[str, Any]) -> bool:
@@ -75,21 +62,30 @@ def should_normalize_manifest(config: Mapping[str, Any]) -> bool:
75
62
  return config.get("__should_normalize", False)
76
63
 
77
64
 
78
- def create_source(config: Mapping[str, Any], limits: TestLimits) -> ManifestDeclarativeSource:
65
+ def create_source(
66
+ config: Mapping[str, Any],
67
+ limits: TestLimits,
68
+ catalog: Optional[ConfiguredAirbyteCatalog],
69
+ state: Optional[List[AirbyteStateMessage]],
70
+ ) -> ConcurrentDeclarativeSource[Optional[List[AirbyteStateMessage]]]:
79
71
  manifest = config["__injected_declarative_manifest"]
80
- return ManifestDeclarativeSource(
72
+
73
+ # We enforce a concurrency level of 1 so that the stream is processed on a single thread
74
+ # to retain ordering for the grouping of the builder message responses.
75
+ if "concurrency_level" in manifest:
76
+ manifest["concurrency_level"]["default_concurrency"] = 1
77
+ else:
78
+ manifest["concurrency_level"] = {"type": "ConcurrencyLevel", "default_concurrency": 1}
79
+
80
+ return ConcurrentDeclarativeSource(
81
+ catalog=catalog,
81
82
  config=config,
82
- emit_connector_builder_messages=True,
83
+ state=state,
83
84
  source_config=manifest,
85
+ emit_connector_builder_messages=True,
84
86
  migrate_manifest=should_migrate_manifest(config),
85
87
  normalize_manifest=should_normalize_manifest(config),
86
- component_factory=ModelToComponentFactory(
87
- emit_connector_builder_messages=True,
88
- limit_pages_fetched_per_slice=limits.max_pages_per_slice,
89
- limit_slices_fetched=limits.max_slices,
90
- disable_retries=True,
91
- disable_cache=True,
92
- ),
88
+ limits=limits,
93
89
  )
94
90
 
95
91
 
@@ -91,12 +91,12 @@ def handle_connector_builder_request(
91
91
  def handle_request(args: List[str]) -> str:
92
92
  command, config, catalog, state = get_config_and_catalog_from_args(args)
93
93
  limits = get_limits(config)
94
- source = create_source(config, limits)
95
- return orjson.dumps(
94
+ source = create_source(config=config, limits=limits, catalog=catalog, state=state)
95
+ return orjson.dumps( # type: ignore[no-any-return] # Serializer.dump() always returns AirbyteMessage
96
96
  AirbyteMessageSerializer.dump(
97
97
  handle_connector_builder_request(source, command, config, catalog, state, limits)
98
98
  )
99
- ).decode() # type: ignore[no-any-return] # Serializer.dump() always returns AirbyteMessage
99
+ ).decode()
100
100
 
101
101
 
102
102
  if __name__ == "__main__":
@@ -5,7 +5,7 @@
5
5
  import json
6
6
  from copy import deepcopy
7
7
  from json import JSONDecodeError
8
- from typing import Any, Dict, List, Mapping, Optional
8
+ from typing import Any, Dict, List, Mapping, Optional, Union
9
9
 
10
10
  from airbyte_cdk.connector_builder.models import (
11
11
  AuxiliaryRequest,
@@ -17,6 +17,8 @@ from airbyte_cdk.connector_builder.models import (
17
17
  from airbyte_cdk.models import (
18
18
  AirbyteLogMessage,
19
19
  AirbyteMessage,
20
+ AirbyteStateBlob,
21
+ AirbyteStateMessage,
20
22
  OrchestratorType,
21
23
  TraceType,
22
24
  )
@@ -466,7 +468,7 @@ def handle_current_slice(
466
468
  return StreamReadSlices(
467
469
  pages=current_slice_pages,
468
470
  slice_descriptor=current_slice_descriptor,
469
- state=[latest_state_message] if latest_state_message else [],
471
+ state=[convert_state_blob_to_mapping(latest_state_message)] if latest_state_message else [],
470
472
  auxiliary_requests=auxiliary_requests if auxiliary_requests else [],
471
473
  )
472
474
 
@@ -718,3 +720,23 @@ def get_auxiliary_request_type(stream: dict, http: dict) -> str: # type: ignore
718
720
  Determines the type of the auxiliary request based on the stream and HTTP properties.
719
721
  """
720
722
  return "PARENT_STREAM" if stream.get("is_substream", False) else str(http.get("type", None))
723
+
724
+
725
+ def convert_state_blob_to_mapping(
726
+ state_message: Union[AirbyteStateMessage, Dict[str, Any]],
727
+ ) -> Dict[str, Any]:
728
+ """
729
+ The AirbyteStreamState stores state as an AirbyteStateBlob which deceivingly is not
730
+ a dictionary, but rather a list of kwargs fields. This in turn causes it to not be
731
+ properly turned into a dictionary when translating this back into response output
732
+ by the connector_builder_handler using asdict()
733
+ """
734
+
735
+ if isinstance(state_message, AirbyteStateMessage) and state_message.stream:
736
+ state_value = state_message.stream.stream_state
737
+ if isinstance(state_value, AirbyteStateBlob):
738
+ state_value_mapping = {k: v for k, v in state_value.__dict__.items()}
739
+ state_message.stream.stream_state = state_value_mapping # type: ignore # we intentionally set this as a Dict so that StreamReadSlices is translated properly in the resulting HTTP response
740
+ return state_message # type: ignore # See above, but when this is an AirbyteStateMessage we must convert AirbyteStateBlob to a Dict
741
+ else:
742
+ return state_message # type: ignore # This is guaranteed to be a Dict since we check isinstance AirbyteStateMessage above
@@ -95,7 +95,7 @@ def get_message_groups(
95
95
  latest_state_message: Optional[Dict[str, Any]] = None
96
96
  slice_auxiliary_requests: List[AuxiliaryRequest] = []
97
97
 
98
- while records_count < limit and (message := next(messages, None)):
98
+ while message := next(messages, None):
99
99
  json_message = airbyte_message_to_json(message)
100
100
 
101
101
  if is_page_http_request_for_different_stream(json_message, stream_name):
@@ -0,0 +1,45 @@
1
+ # Dockerfile for the Airbyte Manifest Server.
2
+ #
3
+ # This Dockerfile should be built from the root of the repository.
4
+ #
5
+ # Example:
6
+ # docker build -f airbyte_cdk/manifest_server/Dockerfile -t airbyte/manifest-server .
7
+
8
+ FROM python:3.12-slim-bookworm
9
+
10
+ # Install git (needed for dynamic versioning) and poetry
11
+ RUN apt-get update && \
12
+ apt-get install -y git && \
13
+ rm -rf /var/lib/apt/lists/* && \
14
+ pip install poetry==1.8.3
15
+
16
+ # Configure poetry to not create virtual environments and disable interactive mode
17
+ ENV POETRY_NO_INTERACTION=1 \
18
+ POETRY_CACHE_DIR=/tmp/poetry_cache
19
+
20
+ WORKDIR /app
21
+
22
+ # Copy poetry files (build from project root)
23
+ COPY pyproject.toml poetry.lock ./
24
+
25
+ # Copy the project source code (needed for dynamic versioning)
26
+ COPY . /app
27
+
28
+ # Install dependencies and package directly to system Python
29
+ RUN --mount=type=cache,target=$POETRY_CACHE_DIR \
30
+ poetry config virtualenvs.create false && \
31
+ poetry install --extras manifest-server
32
+
33
+ # Create a non-root user and group
34
+ RUN groupadd --gid 1000 airbyte && \
35
+ useradd --uid 1000 --gid airbyte --shell /bin/bash --create-home airbyte
36
+
37
+ # Change ownership
38
+ RUN chown -R airbyte:airbyte /app
39
+
40
+ # Run app as non-root user
41
+ USER airbyte:airbyte
42
+
43
+ EXPOSE 8080
44
+
45
+ CMD ["uvicorn", "airbyte_cdk.manifest_server.app:app", "--host", "0.0.0.0", "--port", "8080"]
@@ -0,0 +1,142 @@
1
+ # Manifest Server
2
+
3
+ An HTTP server for running Airbyte declarative connectors via their manifest files.
4
+
5
+ ## Quick Start
6
+
7
+ ### Installation
8
+
9
+ The manifest server is available as an extra dependency:
10
+
11
+ ```bash
12
+ # Using Poetry (preferred)
13
+ poetry install --extras manifest-server
14
+
15
+ # Using pip
16
+ pip install airbyte-cdk[manifest-server]
17
+
18
+ # Using uv
19
+ uv pip install 'airbyte-cdk[manifest-runner]'
20
+ ```
21
+
22
+ ### Running the Server
23
+
24
+ ```bash
25
+ # Start the server (default port 8000)
26
+ manifest-server start
27
+
28
+ # Start on a specific port
29
+ manifest-server start --port 8080
30
+
31
+ # Or using Python module
32
+ python -m airbyte_cdk.manifest_server.cli.run start
33
+ ```
34
+
35
+ The server will start on `http://localhost:8000` by default.
36
+
37
+ ## API Endpoints
38
+
39
+ ### `/manifest/test_read`
40
+ Test reading from a specific stream in the manifest.
41
+
42
+ **POST** - Test stream reading with configurable limits for records, pages, and slices.
43
+
44
+ ### `/manifest/check`
45
+ Check configuration against a manifest.
46
+
47
+ **POST** - Validates connector configuration and returns success/failure status with message.
48
+
49
+ ### `/manifest/discover`
50
+ Discover streams from a manifest.
51
+
52
+ **POST** - Returns the catalog of available streams from the manifest.
53
+
54
+ ### `/manifest/resolve`
55
+ Resolve a manifest to its final configuration.
56
+
57
+ **POST** - Returns the resolved manifest without dynamic stream generation.
58
+
59
+ ### `/manifest/full_resolve`
60
+ Fully resolve a manifest including dynamic streams.
61
+
62
+ **POST** - Generates dynamic streams up to specified limits and includes them in the resolved manifest.
63
+
64
+ ## Custom Components
65
+
66
+ The manifest server supports custom Python components, but this feature is **disabled by default** for security reasons.
67
+
68
+ ### Enabling Custom Components
69
+
70
+ To allow custom Python components in your manifest files, set the environment variable:
71
+ ```bash
72
+ export AIRBYTE_ENABLE_UNSAFE_CODE=true
73
+ ```
74
+
75
+ ## Authentication
76
+
77
+ The manifest server supports optional JWT bearer token authentication:
78
+
79
+ ### Configuration
80
+ Set the environment variable to enable authentication:
81
+ ```bash
82
+ export AB_JWT_SIGNATURE_SECRET="your-jwt-secret-key"
83
+ ```
84
+
85
+ ### Usage
86
+ When authentication is enabled, include a valid JWT token in the Authorization header:
87
+ ```bash
88
+ curl -H "Authorization: Bearer <your-jwt-token>" \
89
+ http://localhost:8000/manifest/test_read
90
+ ```
91
+
92
+ ### Behavior
93
+ - **Without `AB_JWT_SIGNATURE_SECRET`**: All requests pass through
94
+ - **With `AB_JWT_SIGNATURE_SECRET`**: Requires valid JWT bearer token using HS256 algorithm
95
+
96
+ ## OpenAPI Specification
97
+
98
+ The manifest server provides an OpenAPI specification for API client generation:
99
+
100
+ ### Generating the OpenAPI Spec
101
+ ```bash
102
+ # Generate OpenAPI YAML (default location)
103
+ manifest-server generate-openapi
104
+
105
+ # Generate to custom location
106
+ manifest-server generate-openapi --output /path/to/openapi.yaml
107
+ ```
108
+
109
+ The generated OpenAPI specification is consumed by other applications and tools to:
110
+ - Generate API clients in various programming languages
111
+ - Create SDK bindings for the manifest server
112
+ - Provide API documentation and validation
113
+ - Enable integration with API development tools
114
+
115
+ ### Interactive API Documentation
116
+
117
+ When running, interactive API documentation is available at:
118
+ - Swagger UI: `http://localhost:8000/docs`
119
+ - ReDoc: `http://localhost:8000/redoc`
120
+
121
+ ## Testing
122
+
123
+ Run the manifest server tests from the repository root:
124
+
125
+ ```bash
126
+ # Run all manifest server tests
127
+ poetry run pytest unit_tests/manifest_server/ -v
128
+ ```
129
+
130
+ ## Docker
131
+
132
+ The manifest server can be containerized using the included Dockerfile. Build from the repository root:
133
+
134
+ ```bash
135
+ # Build from repository root (not from manifest_server subdirectory)
136
+ docker build -f airbyte_cdk/manifest_server/Dockerfile -t manifest-server .
137
+
138
+ # Run the container
139
+ docker run -p 8080:8080 manifest-server
140
+ ```
141
+
142
+ Note: The container runs on port 8080 by default.
@@ -0,0 +1,3 @@
1
+ """
2
+ .. include:: ./README.md
3
+ """
@@ -0,0 +1,41 @@
1
+ """
2
+ API Models for the Manifest Server Service.
3
+
4
+ This package contains all Pydantic models used for API requests and responses.
5
+ """
6
+
7
+ from .dicts import ConnectorConfig, Manifest
8
+ from .manifest import (
9
+ FullResolveRequest,
10
+ ManifestResponse,
11
+ ResolveRequest,
12
+ StreamTestReadRequest,
13
+ )
14
+ from .stream import (
15
+ AuxiliaryRequest,
16
+ HttpRequest,
17
+ HttpResponse,
18
+ LogMessage,
19
+ StreamRead,
20
+ StreamReadPages,
21
+ StreamReadSlices,
22
+ )
23
+
24
+ __all__ = [
25
+ # Typed Dicts
26
+ "ConnectorConfig",
27
+ "Manifest",
28
+ # Manifest request/response models
29
+ "FullResolveRequest",
30
+ "ManifestResponse",
31
+ "StreamTestReadRequest",
32
+ "ResolveRequest",
33
+ # Stream models
34
+ "AuxiliaryRequest",
35
+ "HttpRequest",
36
+ "HttpResponse",
37
+ "LogMessage",
38
+ "StreamRead",
39
+ "StreamReadPages",
40
+ "StreamReadSlices",
41
+ ]
@@ -0,0 +1,7 @@
1
+ from pydantic import BaseModel
2
+
3
+
4
+ class CapabilitiesResponse(BaseModel):
5
+ """Capabilities of the manifest server."""
6
+
7
+ custom_code_execution: bool
@@ -0,0 +1,17 @@
1
+ """
2
+ Common API models shared across different endpoints.
3
+ """
4
+
5
+ from pydantic import BaseModel, ConfigDict
6
+
7
+
8
+ class Manifest(BaseModel):
9
+ """Base manifest model. Allows client generation to replace with proper JsonNode types."""
10
+
11
+ model_config = ConfigDict(extra="allow")
12
+
13
+
14
+ class ConnectorConfig(BaseModel):
15
+ """Base connector configuration model. Allows client generation to replace with proper JsonNode types."""
16
+
17
+ model_config = ConfigDict(extra="allow")
@@ -0,0 +1,73 @@
1
+ """
2
+ Manifest-related API models.
3
+
4
+ These models define the request and response structures for manifest operations
5
+ like reading, resolving, and full resolution.
6
+ """
7
+
8
+ from typing import Any, List, Optional
9
+
10
+ from airbyte_protocol_dataclasses.models import AirbyteCatalog
11
+ from pydantic import BaseModel, Field
12
+
13
+ from .dicts import ConnectorConfig, Manifest
14
+
15
+
16
+ class StreamTestReadRequest(BaseModel):
17
+ """Request to test read from a specific stream."""
18
+
19
+ manifest: Manifest
20
+ config: ConnectorConfig
21
+ stream_name: str
22
+ state: List[Any] = []
23
+ custom_components_code: Optional[str] = None
24
+ record_limit: int = Field(default=100, ge=1, le=5000)
25
+ page_limit: int = Field(default=5, ge=1, le=20)
26
+ slice_limit: int = Field(default=5, ge=1, le=20)
27
+
28
+
29
+ class CheckRequest(BaseModel):
30
+ """Request to check a manifest."""
31
+
32
+ manifest: Manifest
33
+ config: ConnectorConfig
34
+
35
+
36
+ class CheckResponse(BaseModel):
37
+ """Response to check a manifest."""
38
+
39
+ success: bool
40
+ message: Optional[str] = None
41
+
42
+
43
+ class DiscoverRequest(BaseModel):
44
+ """Request to discover a manifest."""
45
+
46
+ manifest: Manifest
47
+ config: ConnectorConfig
48
+
49
+
50
+ class DiscoverResponse(BaseModel):
51
+ """Response to discover a manifest."""
52
+
53
+ catalog: AirbyteCatalog
54
+
55
+
56
+ class ResolveRequest(BaseModel):
57
+ """Request to resolve a manifest."""
58
+
59
+ manifest: Manifest
60
+
61
+
62
+ class ManifestResponse(BaseModel):
63
+ """Response containing a manifest."""
64
+
65
+ manifest: Manifest
66
+
67
+
68
+ class FullResolveRequest(BaseModel):
69
+ """Request to fully resolve a manifest."""
70
+
71
+ manifest: Manifest
72
+ config: ConnectorConfig
73
+ stream_limit: int = Field(default=100, ge=1, le=100)
@@ -0,0 +1,76 @@
1
+ """
2
+ Stream-related API models.
3
+
4
+ These models define the structure for stream reading operations and responses.
5
+ They accurately reflect the runtime types returned by the CDK, particularly
6
+ fixing type mismatches like slice_descriptor being a string rather than an object.
7
+ """
8
+
9
+ from typing import Any, Dict, List, Optional
10
+
11
+ from pydantic import BaseModel
12
+
13
+
14
+ class HttpRequest(BaseModel):
15
+ """HTTP request details."""
16
+
17
+ url: str
18
+ headers: Optional[Dict[str, Any]]
19
+ http_method: str
20
+ body: Optional[str] = None
21
+
22
+
23
+ class HttpResponse(BaseModel):
24
+ """HTTP response details."""
25
+
26
+ status: int
27
+ body: Optional[str] = None
28
+ headers: Optional[Dict[str, Any]] = None
29
+
30
+
31
+ class LogMessage(BaseModel):
32
+ """Log message from stream processing."""
33
+
34
+ message: str
35
+ level: str
36
+ internal_message: Optional[str] = None
37
+ stacktrace: Optional[str] = None
38
+
39
+
40
+ class AuxiliaryRequest(BaseModel):
41
+ """Auxiliary HTTP request made during stream processing."""
42
+
43
+ title: str
44
+ type: str
45
+ description: str
46
+ request: HttpRequest
47
+ response: HttpResponse
48
+
49
+
50
+ class StreamReadPages(BaseModel):
51
+ """Pages of data read from a stream slice."""
52
+
53
+ records: List[object]
54
+ request: Optional[HttpRequest] = None
55
+ response: Optional[HttpResponse] = None
56
+
57
+
58
+ class StreamReadSlices(BaseModel):
59
+ """Slices of data read from a stream."""
60
+
61
+ pages: List[StreamReadPages]
62
+ slice_descriptor: Optional[str] # This is actually a string at runtime, not Dict[str, Any]
63
+ state: Optional[List[Dict[str, Any]]] = None
64
+ auxiliary_requests: Optional[List[AuxiliaryRequest]] = None
65
+
66
+
67
+ class StreamRead(BaseModel):
68
+ """Complete stream read response with properly typed fields."""
69
+
70
+ logs: List[LogMessage]
71
+ slices: List[StreamReadSlices]
72
+ test_read_limit_reached: bool
73
+ auxiliary_requests: List[AuxiliaryRequest]
74
+ inferred_schema: Optional[Dict[str, Any]]
75
+ inferred_datetime_formats: Optional[Dict[str, str]]
76
+ latest_config_update: Optional[Dict[str, Any]]
@@ -0,0 +1,17 @@
1
+ from fastapi import FastAPI
2
+
3
+ from ..manifest_server.routers import capabilities, health, manifest
4
+
5
+ app = FastAPI(
6
+ title="Manifest Server Service",
7
+ description="A service for running low-code Airbyte connectors",
8
+ version="0.1.0",
9
+ contact={
10
+ "name": "Airbyte",
11
+ "url": "https://airbyte.com",
12
+ },
13
+ )
14
+
15
+ app.include_router(health.router)
16
+ app.include_router(capabilities.router)
17
+ app.include_router(manifest.router, prefix="/v1")