airbyte-internal-ops 0.1.9__tar.gz → 0.1.10__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 (542) hide show
  1. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/PKG-INFO +1 -1
  2. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/cli/cloud.py +190 -0
  3. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/constants.py +9 -0
  4. airbyte_internal_ops-0.1.10/src/airbyte_ops_mcp/prod_db_access/db_engine.py +253 -0
  5. airbyte_internal_ops-0.1.9/src/airbyte_ops_mcp/prod_db_access/db_engine.py +0 -126
  6. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.env.template +0 -0
  7. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/copilot-instructions.md +0 -0
  8. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/dependabot.yml +0 -0
  9. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/pr-welcome-message.md +0 -0
  10. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/release-drafter.yml +0 -0
  11. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/workflows/autofix-command.yml +0 -0
  12. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/workflows/connector-live-test.yml +0 -0
  13. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/workflows/connector-regression-test.yml +0 -0
  14. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/workflows/format-check.yml +0 -0
  15. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/workflows/lint-check.yml +0 -0
  16. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/workflows/lock-command.yml +0 -0
  17. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/workflows/pdoc_preview.yml +0 -0
  18. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/workflows/pdoc_publish.yml +0 -0
  19. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/workflows/poe-command.yml +0 -0
  20. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/workflows/pr-welcome.yml +0 -0
  21. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/workflows/publish.yml +0 -0
  22. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/workflows/pytest-fast.yml +0 -0
  23. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/workflows/pytest-matrix.yml +0 -0
  24. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/workflows/release-drafter.yml +0 -0
  25. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/workflows/slash-command-dispatch.yml +0 -0
  26. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.github/workflows/test-connection-retriever.yml +0 -0
  27. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.gitignore +0 -0
  28. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/.mcp.json.template +0 -0
  29. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/CONTRIBUTING.md +0 -0
  30. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/README.md +0 -0
  31. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/bin/test_mcp_tool.py +0 -0
  32. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/conftest.py +0 -0
  33. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/docs/.gitignore +0 -0
  34. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/docs/generate.py +0 -0
  35. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/docs/templates/custom.css +0 -0
  36. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/docs/templates/theme.css +0 -0
  37. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/poe_tasks.toml +0 -0
  38. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/pyproject.toml +0 -0
  39. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/pyrefly.toml +0 -0
  40. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/pytest.ini +0 -0
  41. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/ruff.toml +0 -0
  42. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/__init__.py +0 -0
  43. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_annotations.py +0 -0
  44. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/__init__.py +0 -0
  45. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/README.md +0 -0
  46. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/README.md +0 -0
  47. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
  48. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/dbml_assembler.py +0 -0
  49. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/erd_service.py +0 -0
  50. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/relationships.py +0 -0
  51. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/README.md +0 -0
  52. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/__init__.py +0 -0
  53. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/cli.py +0 -0
  54. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/hacks.py +0 -0
  55. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/insights.py +0 -0
  56. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/models.py +0 -0
  57. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint.py +0 -0
  58. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint_plugins/cdk_deprecation_checkers.py +0 -0
  59. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/result_backends.py +0 -0
  60. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/utils.py +0 -0
  61. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/.gitignore +0 -0
  62. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/README.md +0 -0
  63. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/__init__.py +0 -0
  64. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/__init__.py +0 -0
  65. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/__init__.py +0 -0
  66. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/base_backend.py +0 -0
  67. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/duckdb_backend.py +0 -0
  68. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/file_backend.py +0 -0
  69. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/connection_objects_retrieval.py +0 -0
  70. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/connector_runner.py +0 -0
  71. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/errors.py +0 -0
  72. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/evaluation_modes.py +0 -0
  73. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/hacks.py +0 -0
  74. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/json_schema_helper.py +0 -0
  75. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/mitm_addons.py +0 -0
  76. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/models.py +0 -0
  77. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/proxy.py +0 -0
  78. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/secret_access.py +0 -0
  79. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/segment_tracking.py +0 -0
  80. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/utils.py +0 -0
  81. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/conftest.py.disabled +0 -0
  82. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/consts.py +0 -0
  83. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/poetry.lock +0 -0
  84. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/pytest.ini +0 -0
  85. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/__init__.py +0 -0
  86. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_check.py +0 -0
  87. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_discover.py +0 -0
  88. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_read.py +0 -0
  89. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_spec.py +0 -0
  90. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/report.py +0 -0
  91. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/stash_keys.py +0 -0
  92. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/__init__.py +0 -0
  93. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/private_details.html.j2 +0 -0
  94. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/report.html.j2 +0 -0
  95. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/utils.py +0 -0
  96. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/__init__.py +0 -0
  97. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_check.py +0 -0
  98. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_discover.py +0 -0
  99. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_read.py +0 -0
  100. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_spec.py +0 -0
  101. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/README.md +0 -0
  102. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/__init__.py +0 -0
  103. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/utils.py +0 -0
  104. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/README.md +0 -0
  105. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/__init__.py +0 -0
  106. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/hooks.py +0 -0
  107. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/normalization.py +0 -0
  108. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/common.py +0 -0
  109. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/pipx.py +0 -0
  110. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/poetry.py +0 -0
  111. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/remote_storage.py +0 -0
  112. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/secrets.py +0 -0
  113. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/common.py +0 -0
  114. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/docker.py +0 -0
  115. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/git.py +0 -0
  116. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/internal_tools.py +0 -0
  117. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/java.py +0 -0
  118. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/python.py +0 -0
  119. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/__init__.py +0 -0
  120. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cache_keys.py +0 -0
  121. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cli.py +0 -0
  122. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/__init__.py +0 -0
  123. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/cdk_helpers.py +0 -0
  124. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/command.py +0 -0
  125. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/dagger_fs.py +0 -0
  126. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/format.py +0 -0
  127. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/modifed.py +0 -0
  128. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/yaml.py +0 -0
  129. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/__init__.py +0 -0
  130. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/argument_parsing.py +0 -0
  131. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/run_steps.py +0 -0
  132. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/gcs.py +0 -0
  133. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/git.py +0 -0
  134. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/github.py +0 -0
  135. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/pip.py +0 -0
  136. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/sentry_utils.py +0 -0
  137. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/slack.py +0 -0
  138. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/utils.py +0 -0
  139. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/README.md +0 -0
  140. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/__init__.py +0 -0
  141. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/__init__.py +0 -0
  142. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/__init__.py +0 -0
  143. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/__init__.py +0 -0
  144. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/commands.py +0 -0
  145. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/pipeline.py +0 -0
  146. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/__init__.py +0 -0
  147. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/build_customization.py +0 -0
  148. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/common.py +0 -0
  149. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/java_connectors.py +0 -0
  150. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/manifest_only_connectors.py +0 -0
  151. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/normalization.py +0 -0
  152. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/python_connectors.py +0 -0
  153. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/commands.py +0 -0
  154. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/consts.py +0 -0
  155. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/context.py +0 -0
  156. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/__init__.py +0 -0
  157. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/commands.py +0 -0
  158. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/pipeline.py +0 -0
  159. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/__init__.py +0 -0
  160. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/commands.py +0 -0
  161. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/__init__.py +0 -0
  162. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/commands.py +0 -0
  163. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/pipeline.py +0 -0
  164. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pipeline.py +0 -0
  165. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/__init__.py +0 -0
  166. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/commands.py +0 -0
  167. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/pipeline.py +0 -0
  168. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/reports.py +0 -0
  169. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/__init__.py +0 -0
  170. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/commands.py +0 -0
  171. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/context.py +0 -0
  172. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/pipeline.py +0 -0
  173. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/__init__.py +0 -0
  174. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/common.py +0 -0
  175. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/java_connectors.py +0 -0
  176. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/manifest_only_connectors.py +0 -0
  177. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/python_connectors.py +0 -0
  178. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/templates/test_report.html.j2 +0 -0
  179. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/__init__.py +0 -0
  180. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/commands.py +0 -0
  181. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/pipeline.py +0 -0
  182. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/steps.py +0 -0
  183. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/templates/up_to_date_pr_body.md.j2 +0 -0
  184. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/__init__.py +0 -0
  185. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/commands.py +0 -0
  186. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/pipeline.py +0 -0
  187. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/__init__.py +0 -0
  188. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/commands.py +0 -0
  189. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/pipeline.py +0 -0
  190. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/__init__.py +0 -0
  191. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/commands.py +0 -0
  192. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/__init__.py +0 -0
  193. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/base_image.py +0 -0
  194. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/docker.py +0 -0
  195. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/gradle.py +0 -0
  196. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/no_op.py +0 -0
  197. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/poetry.py +0 -0
  198. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/pull_request.py +0 -0
  199. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/__init__.py +0 -0
  200. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/commands.py +0 -0
  201. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/models.py +0 -0
  202. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/pipeline.py +0 -0
  203. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/__init__.py +0 -0
  204. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/commands.py +0 -0
  205. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/airbyte_ci.py +0 -0
  206. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/auto_update.py +0 -0
  207. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/click_decorators.py +0 -0
  208. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/confirm_prompt.py +0 -0
  209. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_pipeline_command.py +0 -0
  210. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_run.py +0 -0
  211. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/ensure_repo_root.py +0 -0
  212. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/lazy_group.py +0 -0
  213. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/secrets.py +0 -0
  214. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/telemetry.py +0 -0
  215. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/consts.py +0 -0
  216. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/hacks.py +0 -0
  217. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/__init__.py +0 -0
  218. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/artifacts.py +0 -0
  219. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/ci_requirements.py +0 -0
  220. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/__init__.py +0 -0
  221. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/click_pipeline_context.py +0 -0
  222. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/pipeline_context.py +0 -0
  223. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/reports.py +0 -0
  224. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/secrets.py +0 -0
  225. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/singleton.py +0 -0
  226. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/steps.py +0 -0
  227. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/README.md +0 -0
  228. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/__init__.py +0 -0
  229. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/__init__.py +0 -0
  230. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/assets.py +0 -0
  231. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/__init__.py +0 -0
  232. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/documentation.py +0 -0
  233. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/helpers.py +0 -0
  234. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/models.py +0 -0
  235. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/documentation_headers_check_description.md.j2 +0 -0
  236. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/section_content_description.md.j2 +0 -0
  237. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/template.md.j2 +0 -0
  238. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/metadata.py +0 -0
  239. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/packaging.py +0 -0
  240. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/security.py +0 -0
  241. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/version.py +0 -0
  242. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/cli.py +0 -0
  243. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/consts.py +0 -0
  244. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/models.py +0 -0
  245. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/templates/__init__.py +0 -0
  246. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/templates/qa_checks.md.j2 +0 -0
  247. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/utils.py +0 -0
  248. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/README.md +0 -0
  249. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/bin/bundle-schemas.js +0 -0
  250. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/bin/generate-metadata-models.sh +0 -0
  251. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ActorDefinitionResourceRequirements.py +0 -0
  252. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/AirbyteInternal.py +0 -0
  253. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/AllowedHosts.py +0 -0
  254. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorBreakingChanges.py +0 -0
  255. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorBuildOptions.py +0 -0
  256. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorIPCOptions.py +0 -0
  257. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetadataDefinitionV0.json +0 -0
  258. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetadataDefinitionV0.py +0 -0
  259. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetrics.py +0 -0
  260. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorPackageInfo.py +0 -0
  261. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryDestinationDefinition.py +0 -0
  262. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryReleases.py +0 -0
  263. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistrySourceDefinition.py +0 -0
  264. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryV0.py +0 -0
  265. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorReleases.py +0 -0
  266. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorTestSuiteOptions.py +0 -0
  267. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/GeneratedFields.py +0 -0
  268. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/GitInfo.py +0 -0
  269. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/JobType.py +0 -0
  270. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/NormalizationDestinationDefinitionConfig.py +0 -0
  271. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RegistryOverrides.py +0 -0
  272. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ReleaseStage.py +0 -0
  273. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RemoteRegistries.py +0 -0
  274. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ResourceRequirements.py +0 -0
  275. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RolloutConfiguration.py +0 -0
  276. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/Secret.py +0 -0
  277. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SecretStore.py +0 -0
  278. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SourceFileInfo.py +0 -0
  279. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SuggestedStreams.py +0 -0
  280. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SupportLevel.py +0 -0
  281. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/TestConnections.py +0 -0
  282. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/__init__.py +0 -0
  283. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/airbyte-connector-metadata-schema.json +0 -0
  284. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ActorDefinitionResourceRequirements.yaml +0 -0
  285. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/AirbyteInternal.yaml +0 -0
  286. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/AllowedHosts.yaml +0 -0
  287. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorBreakingChanges.yaml +0 -0
  288. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorBuildOptions.yaml +0 -0
  289. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorIPCOptions.yaml +0 -0
  290. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorMetadataDefinitionV0.yaml +0 -0
  291. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorMetrics.yaml +0 -0
  292. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorPackageInfo.yaml +0 -0
  293. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryDestinationDefinition.yaml +0 -0
  294. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryReleases.yaml +0 -0
  295. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistrySourceDefinition.yaml +0 -0
  296. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryV0.yaml +0 -0
  297. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorReleases.yaml +0 -0
  298. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorTestSuiteOptions.yaml +0 -0
  299. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/GeneratedFields.yaml +0 -0
  300. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/GitInfo.yaml +0 -0
  301. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/JobType.yaml +0 -0
  302. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/NormalizationDestinationDefinitionConfig.yaml +0 -0
  303. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RegistryOverrides.yaml +0 -0
  304. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ReleaseStage.yaml +0 -0
  305. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RemoteRegistries.yaml +0 -0
  306. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ResourceRequirements.yaml +0 -0
  307. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RolloutConfiguration.yaml +0 -0
  308. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/Secret.yaml +0 -0
  309. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SecretStore.yaml +0 -0
  310. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SourceFileInfo.yaml +0 -0
  311. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SuggestedStreams.yaml +0 -0
  312. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SupportLevel.yaml +0 -0
  313. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/TestConnections.yaml +0 -0
  314. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/package-lock.json +0 -0
  315. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/package.json +0 -0
  316. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/transform.py +0 -0
  317. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/README.md +0 -0
  318. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/commands.py +0 -0
  319. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/constants.py +0 -0
  320. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/docker_hub.py +0 -0
  321. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/docs/external_documentation_urls.md +0 -0
  322. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/gcs_upload.py +0 -0
  323. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/files.py +0 -0
  324. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/gcs.py +0 -0
  325. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/object_helpers.py +0 -0
  326. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/slack.py +0 -0
  327. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/.env.template +0 -0
  328. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/README.md +0 -0
  329. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/dagster_cloud.yaml +0 -0
  330. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/__init__.py +0 -0
  331. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/connector_metrics.py +0 -0
  332. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/github.py +0 -0
  333. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/metadata.py +0 -0
  334. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry.py +0 -0
  335. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_entry.py +0 -0
  336. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_report.py +0 -0
  337. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/slack.py +0 -0
  338. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/specs_secrets_mask.py +0 -0
  339. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/config.py +0 -0
  340. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/fetcher/connector_cdk_version.py +0 -0
  341. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/hacks.py +0 -0
  342. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/jobs/registry.py +0 -0
  343. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/publish_connector_lifecycle.py +0 -0
  344. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/sentry.py +0 -0
  345. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/ci_report.py +0 -0
  346. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/metadata.py +0 -0
  347. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/ops/slack.py +0 -0
  348. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/file_managers/local_file_manager.py +0 -0
  349. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/gcp.py +0 -0
  350. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/github.py +0 -0
  351. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/local.py +0 -0
  352. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/gcs.py +0 -0
  353. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/github.py +0 -0
  354. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/registry.py +0 -0
  355. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/base.html +0 -0
  356. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/connector_registry_locations.html +0 -0
  357. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/render.py +0 -0
  358. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/blob_helpers.py +0 -0
  359. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/dagster_helpers.py +0 -0
  360. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/object_helpers.py +0 -0
  361. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/poetry.lock +0 -0
  362. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/__init__.py +0 -0
  363. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/conftest.py.disabled +0 -0
  364. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/__init__.py +0 -0
  365. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/cloud_registry.json +0 -0
  366. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/oss_registry.json +0 -0
  367. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_connector_metrics.py +0 -0
  368. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_dagster_helpers.py +0 -0
  369. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_debug.py +0 -0
  370. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_partition_jobs.py +0 -0
  371. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_registry.py +0 -0
  372. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_specs_secrets_mask.py +0 -0
  373. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry.py +0 -0
  374. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_entry.py +0 -0
  375. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_report.py +0 -0
  376. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/sentry.py +0 -0
  377. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/spec_cache.py +0 -0
  378. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/specs_secrets_mask.py +0 -0
  379. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/stale_metadata_report.py +0 -0
  380. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/base.html +0 -0
  381. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/connector_registry_locations.html +0 -0
  382. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/render.py +0 -0
  383. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/validators/metadata_validator.py +0 -0
  384. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/airbyte_repo/__init__.py +0 -0
  385. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/airbyte_repo/bump_version.py +0 -0
  386. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/airbyte_repo/list_connectors.py +0 -0
  387. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/airbyte_repo/utils.py +0 -0
  388. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/cli/__init__.py +0 -0
  389. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/cli/_base.py +0 -0
  390. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/cli/_shared.py +0 -0
  391. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/cli/app.py +0 -0
  392. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/cli/gh.py +0 -0
  393. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/cli/registry.py +0 -0
  394. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/cli/repo.py +0 -0
  395. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/cloud_admin/__init__.py +0 -0
  396. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/cloud_admin/api_client.py +0 -0
  397. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/cloud_admin/auth.py +0 -0
  398. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/cloud_admin/connection_config.py +0 -0
  399. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/cloud_admin/models.py +0 -0
  400. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/connection_config_retriever/__init__.py +0 -0
  401. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/connection_config_retriever/audit_logging.py +0 -0
  402. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/connection_config_retriever/retrieval.py +0 -0
  403. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/connection_config_retriever/secrets_resolution.py +0 -0
  404. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/gcp_auth.py +0 -0
  405. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/__init__.py +0 -0
  406. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/ci_output.py +0 -0
  407. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/commons/__init__.py +0 -0
  408. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/config.py +0 -0
  409. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/connection_fetcher.py +0 -0
  410. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/connection_secret_retriever.py +0 -0
  411. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/connector_runner.py +0 -0
  412. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/evaluation_modes.py +0 -0
  413. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/http_metrics.py +0 -0
  414. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/message_cache/__init__.py +0 -0
  415. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/message_cache/duckdb_cache.py +0 -0
  416. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/models.py +0 -0
  417. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/obfuscation.py +0 -0
  418. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/regression/__init__.py +0 -0
  419. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/regression/comparators.py +0 -0
  420. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/schema_generation.py +0 -0
  421. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/validation/__init__.py +0 -0
  422. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/validation/catalog_validators.py +0 -0
  423. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/live_tests/validation/record_validators.py +0 -0
  424. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/mcp/__init__.py +0 -0
  425. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/mcp/_guidance.py +0 -0
  426. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/mcp/_mcp_utils.py +0 -0
  427. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/mcp/cloud_connector_versions.py +0 -0
  428. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/mcp/connector_analysis.py +0 -0
  429. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/mcp/connector_qa.py +0 -0
  430. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/mcp/github.py +0 -0
  431. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/mcp/github_repo_ops.py +0 -0
  432. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/mcp/live_tests.py +0 -0
  433. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/mcp/metadata.py +0 -0
  434. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/mcp/prerelease.py +0 -0
  435. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/mcp/prod_db_queries.py +0 -0
  436. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/mcp/prompts.py +0 -0
  437. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/mcp/registry.py +0 -0
  438. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/mcp/server.py +0 -0
  439. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/mcp/server_info.py +0 -0
  440. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/prod_db_access/__init__.py +0 -0
  441. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/prod_db_access/py.typed +0 -0
  442. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/prod_db_access/queries.py +0 -0
  443. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/prod_db_access/sql.py +0 -0
  444. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/py.typed +0 -0
  445. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/registry/__init__.py +0 -0
  446. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/registry/models.py +0 -0
  447. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/src/airbyte_ops_mcp/registry/publish.py +0 -0
  448. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/__init__.py +0 -0
  449. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
  450. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_erd_generator/builder.py +0 -0
  451. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_erd_generator/test_dbml_assembler.py +0 -0
  452. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_erd_generator/test_relationships.py +0 -0
  453. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_live_tests/__init__.py +0 -0
  454. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_live_tests/backends/__init__.py +0 -0
  455. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_live_tests/backends/test_file_backend.py +0 -0
  456. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_live_tests/test_get_connection_objects_retrieval.py +0 -0
  457. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_live_tests/test_json_schema_helper.py +0 -0
  458. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_ops/conftest.py +0 -0
  459. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-header.md +0 -0
  460. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-title.md +0 -0
  461. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/extra-header.md +0 -0
  462. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/missing-entry.md +0 -0
  463. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/out-of-order.md +0 -0
  464. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_ops/test_utils.py +0 -0
  465. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_qa/__init__.py +0 -0
  466. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_qa/conftest.py +0 -0
  467. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_qa/integration_tests/__init__.py +0 -0
  468. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_qa/integration_tests/test_documentation.py +0 -0
  469. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_qa/unit_tests/__init__.py +0 -0
  470. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/__init__.py +0 -0
  471. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/correct.md +0 -0
  472. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/incorrect_not_all_structure.md +0 -0
  473. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/invalid_links.md +0 -0
  474. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_assets.py +0 -0
  475. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_documentation.py +0 -0
  476. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_metadata.py +0 -0
  477. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_packaging.py +0 -0
  478. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_security.py +0 -0
  479. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_version.py +0 -0
  480. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_models.py +0 -0
  481. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/__init__.py +0 -0
  482. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/conftest.py +0 -0
  483. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_actions/test_environments.py +0 -0
  484. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_bases.py +0 -0
  485. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_build_image/__init__.py +0 -0
  486. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_build_image/dummy_build_customization.py +0 -0
  487. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_manifest_only_connectors.py +0 -0
  488. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_python_connectors.py +0 -0
  489. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_steps/test_common.py +0 -0
  490. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_newline.md +0 -0
  491. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_separator.md +0 -0
  492. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/no_changelog_header.md +0 -0
  493. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_at_end.md +0 -0
  494. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_in_middle.md +0 -0
  495. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_newline.md +0 -0
  496. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_separator.md +0 -0
  497. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_at_end.md +0 -0
  498. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_in_middle.md +0 -0
  499. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_at_end.md +0 -0
  500. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_in_middle.md +0 -0
  501. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_at_end.md +0 -0
  502. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_in_middle.md +0 -0
  503. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_at_end.md +0 -0
  504. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_in_middle.md +0 -0
  505. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/no_changelog_header.md +0 -0
  506. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_at_end.md +0 -0
  507. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_in_middle.md +0 -0
  508. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_changelog.py +0 -0
  509. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_cli/__init__.py +0 -0
  510. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_cli/test_click_decorators.py +0 -0
  511. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_commands/__init__.py +0 -0
  512. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/__init__.py +0 -0
  513. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/test_connectors.py +0 -0
  514. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_dagger/__init__.py +0 -0
  515. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/__init__.py +0 -0
  516. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/__init__.py +0 -0
  517. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/test_common.py +0 -0
  518. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_gradle.py +0 -0
  519. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_helpers/__init__.py +0 -0
  520. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/__init__.py +0 -0
  521. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_argument_parsing.py +0 -0
  522. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_run_steps.py +0 -0
  523. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_pip.py +0 -0
  524. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_utils.py +0 -0
  525. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_models/__init__.py +0 -0
  526. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_models/test_click_pipeline_context.py +0 -0
  527. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_models/test_singleton.py +0 -0
  528. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_poetry/test_poetry_publish.py +0 -0
  529. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_publish.py +0 -0
  530. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_steps/__init__.py +0 -0
  531. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_steps/test_simple_docker_step.py +0 -0
  532. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_steps/test_version_check.py +0 -0
  533. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_tests/__init__.py +0 -0
  534. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_tests/test_common.py +0 -0
  535. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_tests/test_python_connectors.py +0 -0
  536. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/test_upgrade_java_cdk.py +0 -0
  537. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/legacy/airbyte_ci/pipelines/utils.py +0 -0
  538. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/test_airbyte_admin_mcp.py +0 -0
  539. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/test_bump_version.py +0 -0
  540. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/test_cli_registry.py +0 -0
  541. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/tests/test_list_connectors.py +0 -0
  542. {airbyte_internal_ops-0.1.9 → airbyte_internal_ops-0.1.10}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airbyte-internal-ops
3
- Version: 0.1.9
3
+ Version: 0.1.10
4
4
  Summary: MCP and API interfaces that let the agents do the admin work
5
5
  Author-email: Aaron Steers <aj@airbyte.io>
6
6
  Keywords: admin,airbyte,api,mcp
@@ -13,6 +13,12 @@ Commands:
13
13
  from __future__ import annotations
14
14
 
15
15
  import json
16
+ import os
17
+ import shutil
18
+ import signal
19
+ import socket
20
+ import subprocess
21
+ import time
16
22
  from pathlib import Path
17
23
  from typing import Annotated, Literal
18
24
 
@@ -30,6 +36,12 @@ from airbyte_ops_mcp.cli._shared import (
30
36
  print_success,
31
37
  )
32
38
  from airbyte_ops_mcp.cloud_admin.connection_config import fetch_connection_config
39
+ from airbyte_ops_mcp.constants import (
40
+ CLOUD_SQL_INSTANCE,
41
+ CLOUD_SQL_PROXY_PID_FILE,
42
+ DEFAULT_CLOUD_SQL_PROXY_PORT,
43
+ ENV_GCP_PROD_DB_ACCESS_CREDENTIALS,
44
+ )
33
45
  from airbyte_ops_mcp.live_tests.ci_output import (
34
46
  generate_regression_report,
35
47
  get_report_summary,
@@ -75,6 +87,184 @@ connector_app = App(
75
87
  )
76
88
  cloud_app.command(connector_app)
77
89
 
90
+ # Create the db sub-app under cloud
91
+ db_app = App(name="db", help="Database operations for Airbyte Cloud Prod DB Replica.")
92
+ cloud_app.command(db_app)
93
+
94
+
95
+ @db_app.command(name="start-proxy")
96
+ def start_proxy(
97
+ port: Annotated[
98
+ int,
99
+ Parameter(help="Port for the Cloud SQL Proxy to listen on."),
100
+ ] = DEFAULT_CLOUD_SQL_PROXY_PORT,
101
+ daemon: Annotated[
102
+ bool,
103
+ Parameter(
104
+ help="Run as daemon in background (default). Use --no-daemon for foreground."
105
+ ),
106
+ ] = True,
107
+ ) -> None:
108
+ """Start the Cloud SQL Proxy for database access.
109
+
110
+ This command starts the Cloud SQL Auth Proxy to enable connections to the
111
+ Airbyte Cloud Prod DB Replica. The proxy is required for database query tools.
112
+
113
+ By default, runs as a daemon (background process). Use --no-daemon to run in
114
+ foreground mode where you can see logs and stop with Ctrl+C.
115
+
116
+ Credentials are read from the GCP_PROD_DB_ACCESS_CREDENTIALS environment variable,
117
+ which should contain the service account JSON credentials.
118
+
119
+ After starting the proxy, set these environment variables to use database tools:
120
+ export USE_CLOUD_SQL_PROXY=1
121
+ export DB_PORT={port}
122
+
123
+ Example:
124
+ airbyte-ops cloud db start-proxy
125
+ airbyte-ops cloud db start-proxy --port 15432
126
+ airbyte-ops cloud db start-proxy --no-daemon
127
+ """
128
+ # Check if proxy is already running on the requested port (idempotency)
129
+ try:
130
+ with socket.create_connection(("127.0.0.1", port), timeout=0.5):
131
+ # Something is already listening on this port
132
+ pid_file = Path(CLOUD_SQL_PROXY_PID_FILE)
133
+ pid_info = ""
134
+ if pid_file.exists():
135
+ pid_info = f" (PID: {pid_file.read_text().strip()})"
136
+ print_success(
137
+ f"Cloud SQL Proxy is already running on port {port}{pid_info}"
138
+ )
139
+ print_success("")
140
+ print_success("To use database tools, set these environment variables:")
141
+ print_success(" export USE_CLOUD_SQL_PROXY=1")
142
+ print_success(f" export DB_PORT={port}")
143
+ return
144
+ except (OSError, TimeoutError, ConnectionRefusedError):
145
+ pass # Port not in use, proceed with starting proxy
146
+
147
+ # Check if cloud-sql-proxy is installed
148
+ proxy_path = shutil.which("cloud-sql-proxy")
149
+ if not proxy_path:
150
+ exit_with_error(
151
+ "cloud-sql-proxy not found in PATH. "
152
+ "Install it from: https://cloud.google.com/sql/docs/mysql/sql-proxy"
153
+ )
154
+
155
+ # Get credentials from environment
156
+ creds_json = os.getenv(ENV_GCP_PROD_DB_ACCESS_CREDENTIALS)
157
+ if not creds_json:
158
+ exit_with_error(
159
+ f"{ENV_GCP_PROD_DB_ACCESS_CREDENTIALS} environment variable is not set. "
160
+ "This should contain the GCP service account JSON credentials."
161
+ )
162
+
163
+ # Build the command using --json-credentials to avoid writing to disk
164
+ cmd = [
165
+ proxy_path,
166
+ CLOUD_SQL_INSTANCE,
167
+ f"--port={port}",
168
+ f"--json-credentials={creds_json}",
169
+ ]
170
+
171
+ print_success(f"Starting Cloud SQL Proxy on port {port}...")
172
+ print_success(f"Instance: {CLOUD_SQL_INSTANCE}")
173
+ print_success("")
174
+ print_success("To use database tools, set these environment variables:")
175
+ print_success(" export USE_CLOUD_SQL_PROXY=1")
176
+ print_success(f" export DB_PORT={port}")
177
+ print_success("")
178
+
179
+ if daemon:
180
+ # Run in background (daemon mode) with log file for diagnostics
181
+ log_file_path = Path("/tmp/airbyte-cloud-sql-proxy.log")
182
+ log_file = log_file_path.open("ab")
183
+ process = subprocess.Popen(
184
+ cmd,
185
+ stdout=subprocess.DEVNULL,
186
+ stderr=log_file,
187
+ start_new_session=True,
188
+ )
189
+
190
+ # Brief wait to verify the process started successfully
191
+ time.sleep(0.5)
192
+ if process.poll() is not None:
193
+ # Process exited immediately - read any error output
194
+ log_file.close()
195
+ error_output = ""
196
+ if log_file_path.exists():
197
+ error_output = log_file_path.read_text()[-1000:] # Last 1000 chars
198
+ exit_with_error(
199
+ f"Cloud SQL Proxy failed to start (exit code: {process.returncode}).\n"
200
+ f"Check logs at {log_file_path}\n"
201
+ f"Recent output: {error_output}"
202
+ )
203
+
204
+ # Write PID to file for stop-proxy command
205
+ pid_file = Path(CLOUD_SQL_PROXY_PID_FILE)
206
+ pid_file.write_text(str(process.pid))
207
+ print_success(f"Cloud SQL Proxy started as daemon (PID: {process.pid})")
208
+ print_success(f"Logs: {log_file_path}")
209
+ print_success("To stop: airbyte-ops cloud db stop-proxy")
210
+ else:
211
+ # Run in foreground - replace current process
212
+ # Signals (Ctrl+C) will be handled directly by the cloud-sql-proxy process
213
+ print_success("Running in foreground. Press Ctrl+C to stop the proxy.")
214
+ print_success("")
215
+ os.execv(proxy_path, cmd)
216
+
217
+
218
+ @db_app.command(name="stop-proxy")
219
+ def stop_proxy() -> None:
220
+ """Stop the Cloud SQL Proxy daemon.
221
+
222
+ This command stops a Cloud SQL Proxy that was started with 'start-proxy'.
223
+ It reads the PID from the PID file and sends a SIGTERM signal to stop the process.
224
+
225
+ Example:
226
+ airbyte-ops cloud db stop-proxy
227
+ """
228
+ pid_file = Path(CLOUD_SQL_PROXY_PID_FILE)
229
+
230
+ if not pid_file.exists():
231
+ exit_with_error(
232
+ f"PID file not found at {CLOUD_SQL_PROXY_PID_FILE}. "
233
+ "No Cloud SQL Proxy daemon appears to be running."
234
+ )
235
+
236
+ pid_str = pid_file.read_text().strip()
237
+ if not pid_str.isdigit():
238
+ pid_file.unlink()
239
+ exit_with_error(f"Invalid PID in {CLOUD_SQL_PROXY_PID_FILE}: {pid_str}")
240
+
241
+ pid = int(pid_str)
242
+
243
+ # Check if process is still running
244
+ try:
245
+ os.kill(pid, 0) # Signal 0 just checks if process exists
246
+ except ProcessLookupError:
247
+ pid_file.unlink()
248
+ print_success(
249
+ f"Cloud SQL Proxy (PID: {pid}) is not running. Cleaned up PID file."
250
+ )
251
+ return
252
+ except PermissionError:
253
+ exit_with_error(f"Permission denied to check process {pid}.")
254
+
255
+ # Send SIGTERM to stop the process
256
+ try:
257
+ os.kill(pid, signal.SIGTERM)
258
+ print_success(f"Sent SIGTERM to Cloud SQL Proxy (PID: {pid}).")
259
+ except ProcessLookupError:
260
+ print_success(f"Cloud SQL Proxy (PID: {pid}) already stopped.")
261
+ except PermissionError:
262
+ exit_with_error(f"Permission denied to stop process {pid}.")
263
+
264
+ # Clean up PID file
265
+ pid_file.unlink(missing_ok=True)
266
+ print_success("Cloud SQL Proxy stopped.")
267
+
78
268
 
79
269
  @connector_app.command(name="get-version-info")
80
270
  def get_version_info(
@@ -27,6 +27,15 @@ EXPECTED_ADMIN_EMAIL_DOMAIN = "@airbyte.io"
27
27
  GCP_PROJECT_NAME = "prod-ab-cloud-proj"
28
28
  """The GCP project name for Airbyte Cloud production."""
29
29
 
30
+ CLOUD_SQL_INSTANCE = "prod-ab-cloud-proj:us-west3:prod-pgsql-replica"
31
+ """The Cloud SQL instance connection name for the Prod DB Replica."""
32
+
33
+ DEFAULT_CLOUD_SQL_PROXY_PORT = 15432
34
+ """Default port for Cloud SQL Proxy connections."""
35
+
36
+ CLOUD_SQL_PROXY_PID_FILE = "/tmp/airbyte-cloud-sql-proxy.pid"
37
+ """PID file for tracking the Cloud SQL Proxy process."""
38
+
30
39
  CLOUD_REGISTRY_URL = (
31
40
  "https://connectors.airbyte.com/files/registries/v0/cloud_registry.json"
32
41
  )
@@ -0,0 +1,253 @@
1
+ # Copyright (c) 2025 Airbyte, Inc., all rights reserved.
2
+ """Database engine and connection management for Airbyte Cloud Prod DB Replica.
3
+
4
+ This module provides connection pooling and engine management for querying
5
+ the Airbyte Cloud production database replica.
6
+
7
+ For SQL query templates and schema documentation, see sql.py.
8
+ """
9
+
10
+ from __future__ import annotations
11
+
12
+ import json
13
+ import os
14
+ import shutil
15
+ import socket
16
+ import subprocess
17
+ from typing import Any, Callable
18
+
19
+ import sqlalchemy
20
+ from google.cloud import secretmanager
21
+ from google.cloud.sql.connector import Connector
22
+ from google.cloud.sql.connector.enums import IPTypes
23
+
24
+ from airbyte_ops_mcp.constants import (
25
+ CONNECTION_RETRIEVER_PG_CONNECTION_DETAILS_SECRET_ID,
26
+ DEFAULT_CLOUD_SQL_PROXY_PORT,
27
+ )
28
+
29
+ PG_DRIVER = "pg8000"
30
+ PROXY_CHECK_TIMEOUT = 0.5 # seconds
31
+ DIRECT_CONNECTION_TIMEOUT = 5 # seconds - timeout for direct VPC/Tailscale connections
32
+
33
+
34
+ class CloudSqlProxyNotRunningError(Exception):
35
+ """Raised when proxy mode is enabled but the Cloud SQL Proxy is not running."""
36
+
37
+ pass
38
+
39
+
40
+ class VpnNotConnectedError(Exception):
41
+ """Raised when direct connection mode requires VPN but it's not connected."""
42
+
43
+ pass
44
+
45
+
46
+ def _is_tailscale_connected() -> bool:
47
+ """Check if Tailscale VPN is likely connected.
48
+
49
+ This is a best-effort check that works on Linux and macOS.
50
+ Returns True if Tailscale appears to be connected, False otherwise.
51
+
52
+ Detection methods:
53
+ 1. Check for tailscale0 network interface (Linux)
54
+ 2. Run 'tailscale status --json' and check backend state (cross-platform)
55
+ """
56
+ # Method 1: Check for tailscale0 interface (Linux)
57
+ try:
58
+ interfaces = [name for _, name in socket.if_nameindex()]
59
+ if "tailscale0" in interfaces:
60
+ return True
61
+ except (OSError, AttributeError):
62
+ pass # if_nameindex not available on this platform
63
+
64
+ # Method 2: Check tailscale CLI status
65
+ tailscale_path = shutil.which("tailscale")
66
+ if tailscale_path:
67
+ try:
68
+ result = subprocess.run(
69
+ [tailscale_path, "status", "--json"],
70
+ capture_output=True,
71
+ text=True,
72
+ timeout=2,
73
+ )
74
+ if result.returncode == 0:
75
+ import json as json_module
76
+
77
+ status = json_module.loads(result.stdout)
78
+ # BackendState "Running" indicates connected
79
+ return status.get("BackendState") == "Running"
80
+ except (subprocess.TimeoutExpired, subprocess.SubprocessError, ValueError):
81
+ pass
82
+
83
+ return False
84
+
85
+
86
+ def _check_vpn_or_proxy_available() -> None:
87
+ """Check if either VPN or proxy is available for database access.
88
+
89
+ This function checks if the environment is properly configured for
90
+ database access. It fails fast with a helpful error message if neither
91
+ Tailscale VPN nor the Cloud SQL Proxy appears to be available.
92
+
93
+ Raises:
94
+ VpnNotConnectedError: If no VPN or proxy is detected
95
+ """
96
+ # If proxy mode is explicitly enabled, don't check VPN
97
+ if os.getenv("CI") or os.getenv("USE_CLOUD_SQL_PROXY"):
98
+ return
99
+
100
+ # Check if Tailscale is connected
101
+ if _is_tailscale_connected():
102
+ return
103
+
104
+ # Neither proxy mode nor Tailscale detected
105
+ raise VpnNotConnectedError(
106
+ "No VPN or proxy detected for database access.\n\n"
107
+ "To connect to the Airbyte Cloud Prod DB Replica, you need either:\n\n"
108
+ "1. Tailscale VPN connected (for direct VPC access)\n"
109
+ " - Install Tailscale: https://tailscale.com/download\n"
110
+ " - Connect to the Airbyte network\n\n"
111
+ "2. Cloud SQL Proxy running locally\n"
112
+ " - Start the proxy:\n"
113
+ " airbyte-ops cloud db start-proxy\n"
114
+ " uvx --from=airbyte-internal-ops airbyte-ops cloud db start-proxy\n"
115
+ " - Set env vars: export USE_CLOUD_SQL_PROXY=1 DB_PORT=15432\n"
116
+ )
117
+
118
+
119
+ def _check_proxy_is_running(host: str, port: int) -> None:
120
+ """Check if the Cloud SQL Proxy is running and accepting connections.
121
+
122
+ This performs a quick socket connection check to fail fast if the proxy
123
+ is not running, rather than waiting for a long connection timeout.
124
+
125
+ Args:
126
+ host: The host to connect to (typically 127.0.0.1)
127
+ port: The port to connect to
128
+
129
+ Raises:
130
+ CloudSqlProxyNotRunningError: If the proxy is not accepting connections
131
+ """
132
+ try:
133
+ with socket.create_connection((host, port), timeout=PROXY_CHECK_TIMEOUT):
134
+ pass # Connection successful, proxy is running
135
+ except (OSError, TimeoutError, ConnectionRefusedError) as e:
136
+ raise CloudSqlProxyNotRunningError(
137
+ f"Cloud SQL Proxy is not running on {host}:{port}. "
138
+ f"Proxy mode is enabled (CI or USE_CLOUD_SQL_PROXY env var is set), "
139
+ f"but nothing is listening on the expected port.\n\n"
140
+ f"To start the proxy, run:\n"
141
+ f" airbyte-ops cloud db start-proxy --port {port}\n"
142
+ f" uvx --from=airbyte-internal-ops airbyte-ops cloud db start-proxy --port {port}\n\n"
143
+ f"Or unset USE_CLOUD_SQL_PROXY to use direct VPC connection.\n\n"
144
+ f"Original error: {e}"
145
+ ) from e
146
+
147
+
148
+ # Lazy-initialized to avoid import-time GCP auth
149
+ _connector: Connector | None = None
150
+
151
+
152
+ def _get_connector() -> Connector:
153
+ """Get the Cloud SQL connector, initializing lazily on first use."""
154
+ global _connector
155
+ if _connector is None:
156
+ _connector = Connector()
157
+ return _connector
158
+
159
+
160
+ def _get_secret_value(
161
+ gsm_client: secretmanager.SecretManagerServiceClient, secret_id: str
162
+ ) -> str:
163
+ """Get the value of the enabled version of a secret.
164
+
165
+ Args:
166
+ gsm_client: GCP Secret Manager client
167
+ secret_id: The id of the secret
168
+
169
+ Returns:
170
+ The value of the enabled version of the secret
171
+ """
172
+ response = gsm_client.list_secret_versions(
173
+ request={"parent": secret_id, "filter": "state:ENABLED"}
174
+ )
175
+ if len(response.versions) == 0:
176
+ raise ValueError(f"No enabled version of secret {secret_id} found")
177
+ enabled_version = response.versions[0]
178
+ response = gsm_client.access_secret_version(name=enabled_version.name)
179
+ return response.payload.data.decode("UTF-8")
180
+
181
+
182
+ def get_database_creator(pg_connection_details: dict) -> Callable:
183
+ """Create a database connection creator function."""
184
+
185
+ def creator() -> Any:
186
+ return _get_connector().connect(
187
+ pg_connection_details["database_address"],
188
+ PG_DRIVER,
189
+ user=pg_connection_details["pg_user"],
190
+ password=pg_connection_details["pg_password"],
191
+ db=pg_connection_details["database_name"],
192
+ ip_type=IPTypes.PRIVATE,
193
+ )
194
+
195
+ return creator
196
+
197
+
198
+ def get_pool(
199
+ gsm_client: secretmanager.SecretManagerServiceClient,
200
+ ) -> sqlalchemy.Engine:
201
+ """Get a SQLAlchemy connection pool for the Airbyte Cloud database.
202
+
203
+ This function supports two connection modes:
204
+ 1. Direct connection via Cloud SQL Python Connector (default, requires VPC/Tailscale)
205
+ 2. Connection via Cloud SQL Auth Proxy (when CI or USE_CLOUD_SQL_PROXY env var is set)
206
+
207
+ For proxy mode, start the proxy with:
208
+ airbyte-ops cloud db start-proxy
209
+
210
+ Environment variables:
211
+ CI: If set, uses proxy connection mode
212
+ USE_CLOUD_SQL_PROXY: If set, uses proxy connection mode
213
+ DB_PORT: Port for proxy connection (default: 15432)
214
+
215
+ Raises:
216
+ VpnNotConnectedError: If direct mode is used but no VPN/proxy is detected
217
+ CloudSqlProxyNotRunningError: If proxy mode is enabled but the proxy is not running
218
+
219
+ Args:
220
+ gsm_client: GCP Secret Manager client for retrieving credentials
221
+
222
+ Returns:
223
+ SQLAlchemy Engine connected to the Prod DB Replica
224
+ """
225
+ # Fail fast if no VPN or proxy is available
226
+ _check_vpn_or_proxy_available()
227
+
228
+ pg_connection_details = json.loads(
229
+ _get_secret_value(
230
+ gsm_client, CONNECTION_RETRIEVER_PG_CONNECTION_DETAILS_SECRET_ID
231
+ )
232
+ )
233
+
234
+ if os.getenv("CI") or os.getenv("USE_CLOUD_SQL_PROXY"):
235
+ # Connect via Cloud SQL Auth Proxy, running on localhost
236
+ # Port can be configured via DB_PORT env var (default: DEFAULT_CLOUD_SQL_PROXY_PORT)
237
+ host = "127.0.0.1"
238
+ port = int(os.getenv("DB_PORT", str(DEFAULT_CLOUD_SQL_PROXY_PORT)))
239
+
240
+ # Fail fast if proxy is not running
241
+ _check_proxy_is_running(host, port)
242
+
243
+ return sqlalchemy.create_engine(
244
+ f"postgresql+{PG_DRIVER}://{pg_connection_details['pg_user']}:{pg_connection_details['pg_password']}@{host}:{port}/{pg_connection_details['database_name']}",
245
+ )
246
+
247
+ # Default: Connect via Cloud SQL Python Connector (requires VPC/Tailscale access)
248
+ # Use a timeout to fail faster if the connection can't be established
249
+ return sqlalchemy.create_engine(
250
+ f"postgresql+{PG_DRIVER}://",
251
+ creator=get_database_creator(pg_connection_details),
252
+ connect_args={"timeout": DIRECT_CONNECTION_TIMEOUT},
253
+ )
@@ -1,126 +0,0 @@
1
- # Copyright (c) 2025 Airbyte, Inc., all rights reserved.
2
- """Database engine and connection management for Airbyte Cloud Prod DB Replica.
3
-
4
- This module provides connection pooling and engine management for querying
5
- the Airbyte Cloud production database replica.
6
-
7
- For SQL query templates and schema documentation, see sql.py.
8
- """
9
-
10
- from __future__ import annotations
11
-
12
- import json
13
- import os
14
- import traceback
15
- from typing import Any, Callable
16
-
17
- import sqlalchemy
18
- from google.cloud import secretmanager
19
- from google.cloud.sql.connector import Connector
20
- from google.cloud.sql.connector.enums import IPTypes
21
-
22
- from airbyte_ops_mcp.constants import (
23
- CONNECTION_RETRIEVER_PG_CONNECTION_DETAILS_SECRET_ID,
24
- )
25
-
26
- PG_DRIVER = "pg8000"
27
-
28
- # Lazy-initialized to avoid import-time GCP auth
29
- _connector: Connector | None = None
30
-
31
-
32
- def _get_connector() -> Connector:
33
- """Get the Cloud SQL connector, initializing lazily on first use."""
34
- global _connector
35
- if _connector is None:
36
- _connector = Connector()
37
- return _connector
38
-
39
-
40
- def _get_secret_value(
41
- gsm_client: secretmanager.SecretManagerServiceClient, secret_id: str
42
- ) -> str:
43
- """Get the value of the enabled version of a secret.
44
-
45
- Args:
46
- gsm_client: GCP Secret Manager client
47
- secret_id: The id of the secret
48
-
49
- Returns:
50
- The value of the enabled version of the secret
51
- """
52
- response = gsm_client.list_secret_versions(
53
- request={"parent": secret_id, "filter": "state:ENABLED"}
54
- )
55
- if len(response.versions) == 0:
56
- raise ValueError(f"No enabled version of secret {secret_id} found")
57
- enabled_version = response.versions[0]
58
- response = gsm_client.access_secret_version(name=enabled_version.name)
59
- return response.payload.data.decode("UTF-8")
60
-
61
-
62
- def get_database_creator(pg_connection_details: dict) -> Callable:
63
- """Create a database connection creator function."""
64
-
65
- def creator() -> Any:
66
- return _get_connector().connect(
67
- pg_connection_details["database_address"],
68
- PG_DRIVER,
69
- user=pg_connection_details["pg_user"],
70
- password=pg_connection_details["pg_password"],
71
- db=pg_connection_details["database_name"],
72
- ip_type=IPTypes.PRIVATE,
73
- )
74
-
75
- return creator
76
-
77
-
78
- def get_pool(
79
- gsm_client: secretmanager.SecretManagerServiceClient,
80
- ) -> sqlalchemy.Engine:
81
- """Get a SQLAlchemy connection pool for the Airbyte Cloud database.
82
-
83
- This function supports two connection modes:
84
- 1. Direct connection via Cloud SQL Python Connector (default, requires VPC access)
85
- 2. Connection via Cloud SQL Auth Proxy (when CI or USE_CLOUD_SQL_PROXY env var is set)
86
-
87
- For proxy mode, start the proxy with:
88
- cloud-sql-proxy prod-ab-cloud-proj:us-west3:prod-pgsql-replica --port=<port>
89
-
90
- Environment variables:
91
- CI: If set, uses proxy connection mode
92
- USE_CLOUD_SQL_PROXY: If set, uses proxy connection mode
93
- DB_PORT: Port for proxy connection (default: 5432)
94
-
95
- Args:
96
- gsm_client: GCP Secret Manager client for retrieving credentials
97
-
98
- Returns:
99
- SQLAlchemy Engine connected to the Prod DB Replica
100
- """
101
- pg_connection_details = json.loads(
102
- _get_secret_value(
103
- gsm_client, CONNECTION_RETRIEVER_PG_CONNECTION_DETAILS_SECRET_ID
104
- )
105
- )
106
-
107
- if os.getenv("CI") or os.getenv("USE_CLOUD_SQL_PROXY"):
108
- # Connect via Cloud SQL Auth Proxy, running on localhost
109
- # Port can be configured via DB_PORT env var (default: 5432)
110
- host = "127.0.0.1"
111
- port = os.getenv("DB_PORT", "5432")
112
- try:
113
- return sqlalchemy.create_engine(
114
- f"postgresql+{PG_DRIVER}://{pg_connection_details['pg_user']}:{pg_connection_details['pg_password']}@{host}:{port}/{pg_connection_details['database_name']}",
115
- )
116
- except Exception as e:
117
- raise AssertionError(
118
- f"sqlalchemy.create_engine exception; could not connect to the proxy at {host}:{port}. "
119
- f"Error: {traceback.format_exception(e)}"
120
- ) from e
121
-
122
- # Default: Connect via Cloud SQL Python Connector (requires VPC access)
123
- return sqlalchemy.create_engine(
124
- f"postgresql+{PG_DRIVER}://",
125
- creator=get_database_creator(pg_connection_details),
126
- )