airbyte-internal-ops 0.3.0__tar.gz → 0.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/connector-regression-test.yml +2 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/CONTRIBUTING.md +33 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/PKG-INFO +1 -1
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/connection_config_retriever/audit_logging.py +4 -8
- airbyte_internal_ops-0.3.1/src/airbyte_ops_mcp/gcp_auth.py +192 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/gcp_logs/error_lookup.py +6 -5
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/prod_db_queries.py +180 -7
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/prod_db_access/queries.py +82 -1
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/prod_db_access/sql.py +299 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/connection_secret_retriever.py +0 -4
- airbyte_internal_ops-0.3.0/.github/workflows/test-connection-retriever.yml +0 -84
- airbyte_internal_ops-0.3.0/src/airbyte_ops_mcp/gcp_auth.py +0 -99
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.env.template +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/copilot-instructions.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/dependabot.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/pr-welcome-message.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/release-drafter.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/autofix-command.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/format-check.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/lint-check.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/lock-command.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/pdoc_preview.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/pdoc_publish.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/poe-command.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/pr-welcome.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/publish.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/pytest-fast.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/pytest-matrix.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/regression-tests-ci.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/release-drafter.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/semantic-pr-check.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/sentry-apply-command.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/sentry-preview.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/slash-command-dispatch.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.github/workflows/tk-todo-check.yml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.gitignore +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/.mcp.json.template +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/README.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/bin/test_mcp_tool.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/bin/test_mcp_tool_http.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/conftest.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/docs/.gitignore +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/docs/generate.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/docs/templates/custom.css +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/docs/templates/theme.css +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/infra/sentry/.gitignore +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/infra/sentry/Pulumi.prod.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/infra/sentry/Pulumi.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/infra/sentry/README.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/infra/sentry/__main__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/infra/sentry/docs/CONTRIBUTING.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/infra/sentry/requirements.txt +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/poe_tasks.toml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/pyproject.toml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/pyrefly.toml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/pytest.ini +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/ruff.toml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_annotations.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/README.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/README.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/dbml_assembler.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/erd_service.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/relationships.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/README.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/cli.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/hacks.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/insights.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/models.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint_plugins/cdk_deprecation_checkers.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/result_backends.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/utils.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/.gitignore +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/README.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/base_backend.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/duckdb_backend.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/backends/file_backend.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/connection_objects_retrieval.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/connector_runner.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/errors.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/evaluation_modes.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/hacks.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/json_schema_helper.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/mitm_addons.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/models.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/proxy.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/secret_access.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/segment_tracking.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/commons/utils.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/conftest.py.disabled +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/consts.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/poetry.lock +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/pytest.ini +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_check.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_discover.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_read.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/regression_tests/test_spec.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/report.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/stash_keys.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/private_details.html.j2 +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/templates/report.html.j2 +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/utils.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_check.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_discover.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_read.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_live_tests/validation_tests/test_spec.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/README.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/utils.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/README.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/hooks.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/normalization.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/common.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/pipx.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/poetry.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/remote_storage.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/secrets.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/common.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/docker.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/git.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/internal_tools.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/java.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/python.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cache_keys.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cli.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/cdk_helpers.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/command.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/dagger_fs.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/format.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/modifed.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/yaml.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/argument_parsing.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/run_steps.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/gcs.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/git.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/github.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/pip.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/sentry_utils.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/slack.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/utils.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/README.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/commands.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/build_customization.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/common.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/java_connectors.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/manifest_only_connectors.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/normalization.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/python_connectors.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/commands.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/consts.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/context.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/commands.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/commands.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/commands.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/commands.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/reports.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/commands.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/context.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/common.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/java_connectors.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/manifest_only_connectors.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/python_connectors.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/templates/test_report.html.j2 +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/commands.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/steps.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/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
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/commands.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/commands.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/commands.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/base_image.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/docker.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/gradle.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/no_op.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/poetry.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/pull_request.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/commands.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/models.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/pipeline.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/commands.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/airbyte_ci.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/auto_update.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/click_decorators.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/confirm_prompt.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_pipeline_command.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_run.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/ensure_repo_root.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/lazy_group.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/secrets.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/telemetry.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/consts.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/hacks.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/artifacts.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/ci_requirements.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/click_pipeline_context.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/pipeline_context.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/reports.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/secrets.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/singleton.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/steps.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/README.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/assets.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/documentation.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/helpers.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/models.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/documentation_headers_check_description.md.j2 +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/section_content_description.md.j2 +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/documentation/templates/template.md.j2 +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/metadata.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/packaging.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/security.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/checks/version.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/cli.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/consts.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/models.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/templates/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/templates/qa_checks.md.j2 +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/utils.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/README.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/bin/bundle-schemas.js +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/bin/generate-metadata-models.sh +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ActorDefinitionResourceRequirements.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/AirbyteInternal.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/AllowedHosts.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorBreakingChanges.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorBuildOptions.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorIPCOptions.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetadataDefinitionV0.json +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetadataDefinitionV0.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorMetrics.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorPackageInfo.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryDestinationDefinition.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryReleases.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistrySourceDefinition.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorRegistryV0.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorReleases.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ConnectorTestSuiteOptions.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/GeneratedFields.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/GitInfo.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/JobType.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/NormalizationDestinationDefinitionConfig.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RegistryOverrides.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ReleaseStage.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RemoteRegistries.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/ResourceRequirements.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/RolloutConfiguration.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/Secret.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SecretStore.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SourceFileInfo.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SuggestedStreams.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/SupportLevel.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/TestConnections.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/generated/airbyte-connector-metadata-schema.json +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ActorDefinitionResourceRequirements.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/AirbyteInternal.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/AllowedHosts.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorBreakingChanges.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorBuildOptions.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorIPCOptions.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorMetadataDefinitionV0.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorMetrics.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorPackageInfo.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryDestinationDefinition.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryReleases.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistrySourceDefinition.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorRegistryV0.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorReleases.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ConnectorTestSuiteOptions.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/GeneratedFields.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/GitInfo.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/JobType.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/NormalizationDestinationDefinitionConfig.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RegistryOverrides.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ReleaseStage.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RemoteRegistries.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/ResourceRequirements.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/RolloutConfiguration.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/Secret.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SecretStore.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SourceFileInfo.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SuggestedStreams.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/SupportLevel.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/models/TestConnections.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/package-lock.json +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/package.json +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_models/transform.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/README.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/commands.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/constants.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/docker_hub.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/docs/external_documentation_urls.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/gcs_upload.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/files.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/gcs.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/object_helpers.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/slack.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/.env.template +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/README.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/dagster_cloud.yaml +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/connector_metrics.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/github.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/metadata.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_entry.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_report.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/slack.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/specs_secrets_mask.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/config.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/fetcher/connector_cdk_version.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/hacks.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/jobs/registry.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/publish_connector_lifecycle.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/sentry.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/ci_report.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/metadata.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/ops/slack.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/file_managers/local_file_manager.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/gcp.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/github.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/local.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/gcs.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/github.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/registry.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/base.html +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/connector_registry_locations.html +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/render.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/blob_helpers.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/dagster_helpers.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/object_helpers.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/poetry.lock +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/conftest.py.disabled +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/cloud_registry.json +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/oss_registry.json +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_connector_metrics.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_dagster_helpers.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_debug.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_partition_jobs.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_registry.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_specs_secrets_mask.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_entry.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_report.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/sentry.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/spec_cache.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/specs_secrets_mask.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/stale_metadata_report.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/base.html +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/connector_registry_locations.html +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/render.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/validators/metadata_validator.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/airbyte_repo/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/airbyte_repo/bump_version.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/airbyte_repo/list_connectors.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/airbyte_repo/utils.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/cli/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/cli/_base.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/cli/_shared.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/cli/app.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/cli/cloud.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/cli/gh.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/cli/registry.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/cli/repo.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/cloud_admin/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/cloud_admin/api_client.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/cloud_admin/auth.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/cloud_admin/connection_config.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/cloud_admin/models.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/connection_config_retriever/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/connection_config_retriever/retrieval.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/connection_config_retriever/secrets_resolution.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/constants.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/gcp_logs/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/github_actions.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/github_api.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/_guidance.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/_http_headers.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/_mcp_utils.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/cloud_connector_versions.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/connector_analysis.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/connector_qa.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/gcp_logs.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/github.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/github_repo_ops.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/metadata.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/prerelease.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/prompts.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/registry.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/regression_tests.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/server.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/server_info.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/prod_db_access/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/prod_db_access/db_engine.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/prod_db_access/py.typed +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/py.typed +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/registry/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/registry/models.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/registry/publish.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/cdk_secrets.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/ci_output.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/commons/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/config.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/connection_fetcher.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/connector_runner.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/evaluation_modes.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/http_metrics.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/message_cache/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/message_cache/duckdb_cache.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/models.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/obfuscation.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/regression/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/regression/comparators.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/schema_generation.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/validation/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/validation/catalog_validators.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/regression_tests/validation/record_validators.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_erd_generator/builder.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_erd_generator/test_dbml_assembler.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_erd_generator/test_relationships.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_live_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_live_tests/backends/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_live_tests/backends/test_file_backend.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_live_tests/test_get_connection_objects_retrieval.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_live_tests/test_json_schema_helper.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_ops/conftest.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-header.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-title.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/extra-header.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/missing-entry.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/out-of-order.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_ops/test_utils.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_qa/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_qa/conftest.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_qa/integration_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_qa/integration_tests/test_documentation.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/correct.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/incorrect_not_all_structure.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/invalid_links.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_assets.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_documentation.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_metadata.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_packaging.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_security.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_version.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_models.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/conftest.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_actions/test_environments.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_bases.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_build_image/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_build_image/dummy_build_customization.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_manifest_only_connectors.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_python_connectors.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_steps/test_common.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_newline.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_separator.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/no_changelog_header.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_newline.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_separator.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/no_changelog_header.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_at_end.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_in_middle.md +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_changelog.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_cli/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_cli/test_click_decorators.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_commands/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/test_connectors.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_dagger/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/test_common.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_gradle.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_helpers/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_argument_parsing.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_run_steps.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_pip.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_utils.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_models/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_models/test_click_pipeline_context.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_models/test_singleton.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_poetry/test_poetry_publish.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_publish.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_steps/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_steps/test_simple_docker_step.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_steps/test_version_check.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_tests/__init__.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_tests/test_common.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_tests/test_python_connectors.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/test_upgrade_java_cdk.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/legacy/airbyte_ci/pipelines/utils.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/test_airbyte_admin_mcp.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/test_bump_version.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/test_cli_registry.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/test_list_connectors.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/tests/test_prerelease.py +0 -0
- {airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/uv.lock +0 -0
|
@@ -87,6 +87,39 @@ gcloud projects add-iam-policy-binding prod-ab-cloud-proj \
|
|
|
87
87
|
|
|
88
88
|
Note: `roles/cloudsql.client` is required for the Cloud SQL Python Connector and Cloud SQL Auth Proxy to establish connections. `roles/cloudsql.instanceUser` is typically needed for IAM database authentication; it may be redundant when using username/password authentication (as this codebase does), but some environments may still require it.
|
|
89
89
|
|
|
90
|
+
#### Cloud Logging Permissions
|
|
91
|
+
|
|
92
|
+
For tools that query GCP Cloud Logging (e.g., `lookup_cloud_backend_error`), grant the Logs Viewer role at the project level:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# Grant Logs Viewer role (for reading log entries)
|
|
96
|
+
# Note: --condition=None is required to avoid interactive prompts when the project has conditional bindings
|
|
97
|
+
gcloud projects add-iam-policy-binding prod-ab-cloud-proj \
|
|
98
|
+
--member="serviceAccount:YOUR_SERVICE_ACCOUNT@prod-ab-cloud-proj.iam.gserviceaccount.com" \
|
|
99
|
+
--role="roles/logging.viewer" \
|
|
100
|
+
--condition=None
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
For tools that retrieve connection secrets with audit logging (e.g., `fetch-connection-config --with-secrets`), also grant the Logs Writer role:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# Grant Logs Writer role (for writing audit log entries when retrieving secrets)
|
|
107
|
+
gcloud projects add-iam-policy-binding prod-ab-cloud-proj \
|
|
108
|
+
--member="serviceAccount:YOUR_SERVICE_ACCOUNT@prod-ab-cloud-proj.iam.gserviceaccount.com" \
|
|
109
|
+
--role="roles/logging.logWriter" \
|
|
110
|
+
--condition=None
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
To check if the permission is already granted:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# List all IAM bindings for the project and filter for the service account
|
|
117
|
+
gcloud projects get-iam-policy prod-ab-cloud-proj \
|
|
118
|
+
--flatten="bindings[].members" \
|
|
119
|
+
--filter="bindings.members:YOUR_SERVICE_ACCOUNT@prod-ab-cloud-proj.iam.gserviceaccount.com" \
|
|
120
|
+
--format="table(bindings.role)"
|
|
121
|
+
```
|
|
122
|
+
|
|
90
123
|
### Verifying Permissions
|
|
91
124
|
|
|
92
125
|
To check existing permissions on the secret:
|
|
@@ -11,9 +11,8 @@ import logging
|
|
|
11
11
|
import subprocess
|
|
12
12
|
from typing import TYPE_CHECKING, Any, Callable
|
|
13
13
|
|
|
14
|
-
from google.cloud import logging as gcloud_logging
|
|
15
|
-
|
|
16
14
|
from airbyte_ops_mcp.constants import GCP_PROJECT_NAME
|
|
15
|
+
from airbyte_ops_mcp.gcp_auth import get_logging_client
|
|
17
16
|
|
|
18
17
|
if TYPE_CHECKING:
|
|
19
18
|
from airbyte_ops_mcp.connection_config_retriever.retrieval import (
|
|
@@ -23,21 +22,18 @@ if TYPE_CHECKING:
|
|
|
23
22
|
LOGGER = logging.getLogger(__name__)
|
|
24
23
|
|
|
25
24
|
# Lazy-initialized to avoid import-time GCP calls
|
|
26
|
-
_logging_client: gcloud_logging.Client | None = None
|
|
27
25
|
_airbyte_gcloud_logger: Any = None
|
|
28
26
|
|
|
29
27
|
|
|
30
28
|
def _get_logger() -> Any:
|
|
31
29
|
"""Get the GCP Cloud Logger, initializing lazily on first use."""
|
|
32
|
-
global
|
|
30
|
+
global _airbyte_gcloud_logger
|
|
33
31
|
|
|
34
32
|
if _airbyte_gcloud_logger is not None:
|
|
35
33
|
return _airbyte_gcloud_logger
|
|
36
34
|
|
|
37
|
-
|
|
38
|
-
_airbyte_gcloud_logger =
|
|
39
|
-
"airbyte-cloud-connection-retriever"
|
|
40
|
-
)
|
|
35
|
+
logging_client = get_logging_client(GCP_PROJECT_NAME)
|
|
36
|
+
_airbyte_gcloud_logger = logging_client.logger("airbyte-cloud-connection-retriever")
|
|
41
37
|
return _airbyte_gcloud_logger
|
|
42
38
|
|
|
43
39
|
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# Copyright (c) 2025 Airbyte, Inc., all rights reserved.
|
|
2
|
+
"""Centralized GCP authentication utilities.
|
|
3
|
+
|
|
4
|
+
This module provides a single code path for GCP credential handling across
|
|
5
|
+
the airbyte-ops-mcp codebase. It supports both standard Application Default
|
|
6
|
+
Credentials (ADC) and the GCP_PROD_DB_ACCESS_CREDENTIALS environment variable
|
|
7
|
+
used internally at Airbyte.
|
|
8
|
+
|
|
9
|
+
The preferred approach is to pass credentials directly to GCP client constructors
|
|
10
|
+
rather than relying on file-based ADC discovery. This module provides helpers
|
|
11
|
+
that construct credentials from JSON content in environment variables.
|
|
12
|
+
|
|
13
|
+
Usage:
|
|
14
|
+
from airbyte_ops_mcp.gcp_auth import get_gcp_credentials, get_secret_manager_client
|
|
15
|
+
|
|
16
|
+
# Get credentials object to pass to any GCP client
|
|
17
|
+
credentials = get_gcp_credentials()
|
|
18
|
+
client = logging.Client(project="my-project", credentials=credentials)
|
|
19
|
+
|
|
20
|
+
# Or use the convenience helper for Secret Manager
|
|
21
|
+
client = get_secret_manager_client()
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
from __future__ import annotations
|
|
25
|
+
|
|
26
|
+
import json
|
|
27
|
+
import logging
|
|
28
|
+
import os
|
|
29
|
+
import sys
|
|
30
|
+
import threading
|
|
31
|
+
|
|
32
|
+
import google.auth
|
|
33
|
+
from google.cloud import logging as gcp_logging
|
|
34
|
+
from google.cloud import secretmanager
|
|
35
|
+
from google.oauth2 import service_account
|
|
36
|
+
|
|
37
|
+
from airbyte_ops_mcp.constants import ENV_GCP_PROD_DB_ACCESS_CREDENTIALS
|
|
38
|
+
|
|
39
|
+
logger = logging.getLogger(__name__)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def _get_identity_from_service_account_info(info: dict) -> str | None:
|
|
43
|
+
"""Extract service account identity from parsed JSON info.
|
|
44
|
+
|
|
45
|
+
Only accesses the 'client_email' key to avoid any risk of leaking
|
|
46
|
+
other credential material.
|
|
47
|
+
|
|
48
|
+
Args:
|
|
49
|
+
info: Parsed service account JSON as a dict.
|
|
50
|
+
|
|
51
|
+
Returns:
|
|
52
|
+
The client_email if present and a string, otherwise None.
|
|
53
|
+
"""
|
|
54
|
+
client_email = info.get("client_email")
|
|
55
|
+
if isinstance(client_email, str):
|
|
56
|
+
return client_email
|
|
57
|
+
return None
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def _get_identity_from_credentials(
|
|
61
|
+
credentials: google.auth.credentials.Credentials,
|
|
62
|
+
) -> str | None:
|
|
63
|
+
"""Extract identity from a credentials object using safe attribute access.
|
|
64
|
+
|
|
65
|
+
Only accesses known-safe attributes that don't trigger network calls
|
|
66
|
+
or token refresh.
|
|
67
|
+
|
|
68
|
+
Args:
|
|
69
|
+
credentials: A GCP credentials object.
|
|
70
|
+
|
|
71
|
+
Returns:
|
|
72
|
+
The service account email if available, otherwise None.
|
|
73
|
+
"""
|
|
74
|
+
# Try service_account_email first (most common for service accounts)
|
|
75
|
+
identity = getattr(credentials, "service_account_email", None)
|
|
76
|
+
if isinstance(identity, str):
|
|
77
|
+
return identity
|
|
78
|
+
|
|
79
|
+
# Try signer_email as fallback (sometimes present on impersonated creds)
|
|
80
|
+
identity = getattr(credentials, "signer_email", None)
|
|
81
|
+
if isinstance(identity, str):
|
|
82
|
+
return identity
|
|
83
|
+
|
|
84
|
+
return None
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
# Default scopes for GCP services used by this module
|
|
88
|
+
DEFAULT_GCP_SCOPES = ["https://www.googleapis.com/auth/cloud-platform"]
|
|
89
|
+
|
|
90
|
+
# Module-level cache for credentials (thread-safe)
|
|
91
|
+
_cached_credentials: google.auth.credentials.Credentials | None = None
|
|
92
|
+
_credentials_lock = threading.Lock()
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def get_gcp_credentials() -> google.auth.credentials.Credentials:
|
|
96
|
+
"""Get GCP credentials, preferring direct JSON parsing over file-based ADC.
|
|
97
|
+
|
|
98
|
+
This function resolves credentials in the following order:
|
|
99
|
+
1. GCP_PROD_DB_ACCESS_CREDENTIALS env var (JSON content) - parsed directly
|
|
100
|
+
2. Standard ADC discovery (workload identity, gcloud auth, GOOGLE_APPLICATION_CREDENTIALS)
|
|
101
|
+
|
|
102
|
+
The credentials are cached after first resolution for efficiency.
|
|
103
|
+
Uses the cloud-platform scope which provides access to all GCP services.
|
|
104
|
+
|
|
105
|
+
Returns:
|
|
106
|
+
A Credentials object that can be passed to any GCP client constructor.
|
|
107
|
+
|
|
108
|
+
Raises:
|
|
109
|
+
google.auth.exceptions.DefaultCredentialsError: If no credentials can be found.
|
|
110
|
+
"""
|
|
111
|
+
global _cached_credentials
|
|
112
|
+
|
|
113
|
+
# Return cached credentials if available (fast path without lock)
|
|
114
|
+
if _cached_credentials is not None:
|
|
115
|
+
return _cached_credentials
|
|
116
|
+
|
|
117
|
+
# Acquire lock for thread-safe credential initialization
|
|
118
|
+
with _credentials_lock:
|
|
119
|
+
# Double-check after acquiring lock (another thread may have initialized)
|
|
120
|
+
if _cached_credentials is not None:
|
|
121
|
+
return _cached_credentials
|
|
122
|
+
|
|
123
|
+
# Try GCP_PROD_DB_ACCESS_CREDENTIALS first (JSON content in env var)
|
|
124
|
+
creds_json = os.getenv(ENV_GCP_PROD_DB_ACCESS_CREDENTIALS)
|
|
125
|
+
if creds_json:
|
|
126
|
+
try:
|
|
127
|
+
creds_dict = json.loads(creds_json)
|
|
128
|
+
credentials = service_account.Credentials.from_service_account_info(
|
|
129
|
+
creds_dict,
|
|
130
|
+
scopes=DEFAULT_GCP_SCOPES,
|
|
131
|
+
)
|
|
132
|
+
# Extract identity safely (only after successful credential creation)
|
|
133
|
+
identity = _get_identity_from_service_account_info(creds_dict)
|
|
134
|
+
identity_str = f" (identity: {identity})" if identity else ""
|
|
135
|
+
print(
|
|
136
|
+
f"GCP credentials loaded from {ENV_GCP_PROD_DB_ACCESS_CREDENTIALS}{identity_str}",
|
|
137
|
+
file=sys.stderr,
|
|
138
|
+
)
|
|
139
|
+
logger.debug(
|
|
140
|
+
f"Loaded GCP credentials from {ENV_GCP_PROD_DB_ACCESS_CREDENTIALS} env var"
|
|
141
|
+
)
|
|
142
|
+
_cached_credentials = credentials
|
|
143
|
+
return credentials
|
|
144
|
+
except (json.JSONDecodeError, ValueError) as e:
|
|
145
|
+
# Log only exception type to avoid any risk of leaking credential content
|
|
146
|
+
logger.warning(
|
|
147
|
+
f"Failed to parse {ENV_GCP_PROD_DB_ACCESS_CREDENTIALS}: "
|
|
148
|
+
f"{type(e).__name__}. Falling back to ADC discovery."
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
# Fall back to standard ADC discovery
|
|
152
|
+
credentials, project = google.auth.default(scopes=DEFAULT_GCP_SCOPES)
|
|
153
|
+
# Extract identity safely from ADC credentials
|
|
154
|
+
identity = _get_identity_from_credentials(credentials)
|
|
155
|
+
identity_str = f" (identity: {identity})" if identity else ""
|
|
156
|
+
project_str = f" (project: {project})" if project else ""
|
|
157
|
+
print(
|
|
158
|
+
f"GCP credentials loaded via ADC{project_str}{identity_str}",
|
|
159
|
+
file=sys.stderr,
|
|
160
|
+
)
|
|
161
|
+
logger.debug(f"Loaded GCP credentials via ADC discovery (project: {project})")
|
|
162
|
+
_cached_credentials = credentials
|
|
163
|
+
return credentials
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
def get_secret_manager_client() -> secretmanager.SecretManagerServiceClient:
|
|
167
|
+
"""Get a Secret Manager client with proper credential handling.
|
|
168
|
+
|
|
169
|
+
This function uses get_gcp_credentials() to resolve credentials and passes
|
|
170
|
+
them directly to the client constructor.
|
|
171
|
+
|
|
172
|
+
Returns:
|
|
173
|
+
A configured SecretManagerServiceClient instance.
|
|
174
|
+
"""
|
|
175
|
+
credentials = get_gcp_credentials()
|
|
176
|
+
return secretmanager.SecretManagerServiceClient(credentials=credentials)
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
def get_logging_client(project: str) -> gcp_logging.Client:
|
|
180
|
+
"""Get a Cloud Logging client with proper credential handling.
|
|
181
|
+
|
|
182
|
+
This function uses get_gcp_credentials() to resolve credentials and passes
|
|
183
|
+
them directly to the client constructor.
|
|
184
|
+
|
|
185
|
+
Args:
|
|
186
|
+
project: The GCP project ID to use for logging operations.
|
|
187
|
+
|
|
188
|
+
Returns:
|
|
189
|
+
A configured Cloud Logging Client instance.
|
|
190
|
+
"""
|
|
191
|
+
credentials = get_gcp_credentials()
|
|
192
|
+
return gcp_logging.Client(project=project, credentials=credentials)
|
|
@@ -24,10 +24,12 @@ from datetime import UTC, datetime, timedelta
|
|
|
24
24
|
from enum import StrEnum
|
|
25
25
|
from typing import Any
|
|
26
26
|
|
|
27
|
-
from google.cloud import logging
|
|
27
|
+
from google.cloud import logging as gcp_logging
|
|
28
28
|
from google.cloud.logging_v2 import entries
|
|
29
29
|
from pydantic import BaseModel, Field
|
|
30
30
|
|
|
31
|
+
from airbyte_ops_mcp.gcp_auth import get_logging_client
|
|
32
|
+
|
|
31
33
|
# Default GCP project for Airbyte Cloud
|
|
32
34
|
DEFAULT_GCP_PROJECT = "prod-ab-cloud-proj"
|
|
33
35
|
|
|
@@ -291,14 +293,13 @@ def fetch_error_logs(
|
|
|
291
293
|
specified error ID, then fetches related log entries (multi-line stack traces)
|
|
292
294
|
from the same timestamp and resource.
|
|
293
295
|
"""
|
|
294
|
-
|
|
295
|
-
client = logging.Client(project=project, client_options=client_options)
|
|
296
|
+
client = get_logging_client(project)
|
|
296
297
|
|
|
297
298
|
filter_str = _build_filter(error_id, lookback_days, min_severity_filter)
|
|
298
299
|
|
|
299
300
|
entries_iterator = client.list_entries(
|
|
300
301
|
filter_=filter_str,
|
|
301
|
-
order_by=
|
|
302
|
+
order_by=gcp_logging.DESCENDING,
|
|
302
303
|
)
|
|
303
304
|
|
|
304
305
|
initial_matches = list(entries_iterator)
|
|
@@ -356,7 +357,7 @@ def fetch_error_logs(
|
|
|
356
357
|
|
|
357
358
|
related_entries = client.list_entries(
|
|
358
359
|
filter_=related_filter,
|
|
359
|
-
order_by=
|
|
360
|
+
order_by=gcp_logging.ASCENDING,
|
|
360
361
|
)
|
|
361
362
|
|
|
362
363
|
for entry in related_entries:
|
{airbyte_internal_ops-0.3.0 → airbyte_internal_ops-0.3.1}/src/airbyte_ops_mcp/mcp/prod_db_queries.py
RENAMED
|
@@ -8,6 +8,7 @@ airbyte_ops_mcp.prod_db_access.queries for use by AI agents.
|
|
|
8
8
|
from __future__ import annotations
|
|
9
9
|
|
|
10
10
|
from datetime import datetime
|
|
11
|
+
from enum import StrEnum
|
|
11
12
|
from typing import Annotated, Any
|
|
12
13
|
|
|
13
14
|
import requests
|
|
@@ -25,11 +26,21 @@ from airbyte_ops_mcp.prod_db_access.queries import (
|
|
|
25
26
|
query_dataplanes_list,
|
|
26
27
|
query_failed_sync_attempts_for_connector,
|
|
27
28
|
query_new_connector_releases,
|
|
28
|
-
|
|
29
|
+
query_recent_syncs_for_connector,
|
|
30
|
+
query_syncs_for_version_pinned_connector,
|
|
29
31
|
query_workspace_info,
|
|
30
32
|
query_workspaces_by_email_domain,
|
|
31
33
|
)
|
|
32
34
|
|
|
35
|
+
|
|
36
|
+
class StatusFilter(StrEnum):
|
|
37
|
+
"""Filter for job status in sync queries."""
|
|
38
|
+
|
|
39
|
+
ALL = "all"
|
|
40
|
+
SUCCEEDED = "succeeded"
|
|
41
|
+
FAILED = "failed"
|
|
42
|
+
|
|
43
|
+
|
|
33
44
|
# Cloud UI base URL for building connection URLs
|
|
34
45
|
CLOUD_UI_BASE_URL = "https://cloud.airbyte.com"
|
|
35
46
|
|
|
@@ -293,7 +304,7 @@ def query_prod_actors_by_connector_version(
|
|
|
293
304
|
read_only=True,
|
|
294
305
|
idempotent=True,
|
|
295
306
|
)
|
|
296
|
-
def
|
|
307
|
+
def query_prod_recent_syncs_for_version_pinned_connector(
|
|
297
308
|
connector_version_id: Annotated[
|
|
298
309
|
str,
|
|
299
310
|
Field(description="Connector version UUID to find sync results for"),
|
|
@@ -314,11 +325,16 @@ def query_prod_connector_version_sync_results(
|
|
|
314
325
|
),
|
|
315
326
|
] = False,
|
|
316
327
|
) -> list[dict[str, Any]]:
|
|
317
|
-
"""List sync job results for actors
|
|
328
|
+
"""List sync job results for actors PINNED to a specific connector version.
|
|
318
329
|
|
|
319
|
-
|
|
320
|
-
to the specified version
|
|
321
|
-
|
|
330
|
+
IMPORTANT: This tool ONLY returns results for actors that have been explicitly
|
|
331
|
+
pinned to the specified version via scoped_configuration. Most connections run
|
|
332
|
+
unpinned and will NOT appear in these results.
|
|
333
|
+
|
|
334
|
+
Use this tool when you want to monitor rollout health for actors that have been
|
|
335
|
+
explicitly pinned to a pre-release or specific version. For finding healthy
|
|
336
|
+
connections across ALL actors using a connector type (regardless of pinning),
|
|
337
|
+
use query_prod_recent_syncs_for_connector instead.
|
|
322
338
|
|
|
323
339
|
The actor_id field is the actor ID (superset of source_id/destination_id).
|
|
324
340
|
|
|
@@ -327,7 +343,7 @@ def query_prod_connector_version_sync_results(
|
|
|
327
343
|
pin_origin_type, pin_origin, workspace_id, workspace_name, organization_id,
|
|
328
344
|
dataplane_group_id, dataplane_name
|
|
329
345
|
"""
|
|
330
|
-
return
|
|
346
|
+
return query_syncs_for_version_pinned_connector(
|
|
331
347
|
connector_version_id,
|
|
332
348
|
days=days,
|
|
333
349
|
limit=limit,
|
|
@@ -335,6 +351,163 @@ def query_prod_connector_version_sync_results(
|
|
|
335
351
|
)
|
|
336
352
|
|
|
337
353
|
|
|
354
|
+
@mcp_tool(
|
|
355
|
+
read_only=True,
|
|
356
|
+
idempotent=True,
|
|
357
|
+
open_world=True,
|
|
358
|
+
)
|
|
359
|
+
def query_prod_recent_syncs_for_connector(
|
|
360
|
+
source_definition_id: Annotated[
|
|
361
|
+
str | None,
|
|
362
|
+
Field(
|
|
363
|
+
description=(
|
|
364
|
+
"Source connector definition ID (UUID) to search for. "
|
|
365
|
+
"Provide this OR source_canonical_name OR destination_definition_id "
|
|
366
|
+
"OR destination_canonical_name (exactly one required). "
|
|
367
|
+
"Example: 'afa734e4-3571-11ec-991a-1e0031268139' for YouTube Analytics."
|
|
368
|
+
),
|
|
369
|
+
default=None,
|
|
370
|
+
),
|
|
371
|
+
],
|
|
372
|
+
source_canonical_name: Annotated[
|
|
373
|
+
str | None,
|
|
374
|
+
Field(
|
|
375
|
+
description=(
|
|
376
|
+
"Canonical source connector name to search for. "
|
|
377
|
+
"Provide this OR source_definition_id OR destination_definition_id "
|
|
378
|
+
"OR destination_canonical_name (exactly one required). "
|
|
379
|
+
"Examples: 'source-youtube-analytics', 'YouTube Analytics'."
|
|
380
|
+
),
|
|
381
|
+
default=None,
|
|
382
|
+
),
|
|
383
|
+
],
|
|
384
|
+
destination_definition_id: Annotated[
|
|
385
|
+
str | None,
|
|
386
|
+
Field(
|
|
387
|
+
description=(
|
|
388
|
+
"Destination connector definition ID (UUID) to search for. "
|
|
389
|
+
"Provide this OR destination_canonical_name OR source_definition_id "
|
|
390
|
+
"OR source_canonical_name (exactly one required). "
|
|
391
|
+
"Example: '94bd199c-2ff0-4aa2-b98e-17f0acb72610' for DuckDB."
|
|
392
|
+
),
|
|
393
|
+
default=None,
|
|
394
|
+
),
|
|
395
|
+
],
|
|
396
|
+
destination_canonical_name: Annotated[
|
|
397
|
+
str | None,
|
|
398
|
+
Field(
|
|
399
|
+
description=(
|
|
400
|
+
"Canonical destination connector name to search for. "
|
|
401
|
+
"Provide this OR destination_definition_id OR source_definition_id "
|
|
402
|
+
"OR source_canonical_name (exactly one required). "
|
|
403
|
+
"Examples: 'destination-duckdb', 'DuckDB'."
|
|
404
|
+
),
|
|
405
|
+
default=None,
|
|
406
|
+
),
|
|
407
|
+
],
|
|
408
|
+
status_filter: Annotated[
|
|
409
|
+
StatusFilter,
|
|
410
|
+
Field(
|
|
411
|
+
description=(
|
|
412
|
+
"Filter by job status: 'all' (default), 'succeeded', or 'failed'. "
|
|
413
|
+
"Use 'succeeded' to find healthy connections with recent successful syncs. "
|
|
414
|
+
"Use 'failed' to find connections with recent failures."
|
|
415
|
+
),
|
|
416
|
+
default=StatusFilter.ALL,
|
|
417
|
+
),
|
|
418
|
+
],
|
|
419
|
+
organization_id: Annotated[
|
|
420
|
+
str | OrganizationAliasEnum | None,
|
|
421
|
+
Field(
|
|
422
|
+
description=(
|
|
423
|
+
"Optional organization ID (UUID) or alias to filter results. "
|
|
424
|
+
"If provided, only syncs from this organization will be returned. "
|
|
425
|
+
"Accepts '@airbyte-internal' as an alias for the Airbyte internal org."
|
|
426
|
+
),
|
|
427
|
+
default=None,
|
|
428
|
+
),
|
|
429
|
+
],
|
|
430
|
+
lookback_days: Annotated[
|
|
431
|
+
int,
|
|
432
|
+
Field(description="Number of days to look back (default: 7)", default=7),
|
|
433
|
+
],
|
|
434
|
+
limit: Annotated[
|
|
435
|
+
int,
|
|
436
|
+
Field(description="Maximum number of results (default: 100)", default=100),
|
|
437
|
+
],
|
|
438
|
+
) -> list[dict[str, Any]]:
|
|
439
|
+
"""List recent sync jobs for ALL actors using a connector type.
|
|
440
|
+
|
|
441
|
+
This tool finds all actors with the given connector definition and returns their
|
|
442
|
+
recent sync jobs, regardless of whether they have explicit version pins. It filters
|
|
443
|
+
out deleted actors, deleted workspaces, and deprecated connections.
|
|
444
|
+
|
|
445
|
+
Use this tool to:
|
|
446
|
+
- Find healthy connections with recent successful syncs (status_filter='succeeded')
|
|
447
|
+
- Investigate connector issues across all users (status_filter='failed')
|
|
448
|
+
- Get an overview of all recent sync activity (status_filter='all')
|
|
449
|
+
|
|
450
|
+
Supports both SOURCE and DESTINATION connectors. Provide exactly one of:
|
|
451
|
+
source_definition_id, source_canonical_name, destination_definition_id,
|
|
452
|
+
or destination_canonical_name.
|
|
453
|
+
|
|
454
|
+
Key fields in results:
|
|
455
|
+
- job_status: 'succeeded', 'failed', 'cancelled', etc.
|
|
456
|
+
- connection_id, connection_name: The connection that ran the sync
|
|
457
|
+
- actor_id, actor_name: The source or destination actor
|
|
458
|
+
- pin_origin_type, pin_origin, pinned_version_id: Version pin context (NULL if not pinned)
|
|
459
|
+
"""
|
|
460
|
+
# Validate that exactly one connector parameter is provided
|
|
461
|
+
provided_params = [
|
|
462
|
+
source_definition_id,
|
|
463
|
+
source_canonical_name,
|
|
464
|
+
destination_definition_id,
|
|
465
|
+
destination_canonical_name,
|
|
466
|
+
]
|
|
467
|
+
num_provided = sum(p is not None for p in provided_params)
|
|
468
|
+
if num_provided != 1:
|
|
469
|
+
raise PyAirbyteInputError(
|
|
470
|
+
message=(
|
|
471
|
+
"Exactly one of source_definition_id, source_canonical_name, "
|
|
472
|
+
"destination_definition_id, or destination_canonical_name must be provided."
|
|
473
|
+
),
|
|
474
|
+
)
|
|
475
|
+
|
|
476
|
+
# Determine if this is a destination connector
|
|
477
|
+
is_destination = (
|
|
478
|
+
destination_definition_id is not None or destination_canonical_name is not None
|
|
479
|
+
)
|
|
480
|
+
|
|
481
|
+
# Resolve canonical name to definition ID if needed
|
|
482
|
+
resolved_definition_id: str
|
|
483
|
+
if source_canonical_name:
|
|
484
|
+
resolved_definition_id = _resolve_canonical_name_to_definition_id(
|
|
485
|
+
canonical_name=source_canonical_name,
|
|
486
|
+
)
|
|
487
|
+
elif destination_canonical_name:
|
|
488
|
+
resolved_definition_id = _resolve_canonical_name_to_definition_id(
|
|
489
|
+
canonical_name=destination_canonical_name,
|
|
490
|
+
)
|
|
491
|
+
elif source_definition_id:
|
|
492
|
+
resolved_definition_id = source_definition_id
|
|
493
|
+
else:
|
|
494
|
+
# We've validated exactly one param is provided, so this must be set
|
|
495
|
+
assert destination_definition_id is not None
|
|
496
|
+
resolved_definition_id = destination_definition_id
|
|
497
|
+
|
|
498
|
+
# Resolve organization ID alias
|
|
499
|
+
resolved_organization_id = OrganizationAliasEnum.resolve(organization_id)
|
|
500
|
+
|
|
501
|
+
return query_recent_syncs_for_connector(
|
|
502
|
+
connector_definition_id=resolved_definition_id,
|
|
503
|
+
is_destination=is_destination,
|
|
504
|
+
status_filter=status_filter,
|
|
505
|
+
organization_id=resolved_organization_id,
|
|
506
|
+
days=lookback_days,
|
|
507
|
+
limit=limit,
|
|
508
|
+
)
|
|
509
|
+
|
|
510
|
+
|
|
338
511
|
@mcp_tool(
|
|
339
512
|
read_only=True,
|
|
340
513
|
idempotent=True,
|
|
@@ -29,6 +29,12 @@ from airbyte_ops_mcp.prod_db_access.sql import (
|
|
|
29
29
|
SELECT_FAILED_SYNC_ATTEMPTS_FOR_CONNECTOR,
|
|
30
30
|
SELECT_NEW_CONNECTOR_RELEASES,
|
|
31
31
|
SELECT_ORG_WORKSPACES,
|
|
32
|
+
SELECT_RECENT_FAILED_SYNCS_FOR_DESTINATION_CONNECTOR,
|
|
33
|
+
SELECT_RECENT_FAILED_SYNCS_FOR_SOURCE_CONNECTOR,
|
|
34
|
+
SELECT_RECENT_SUCCESSFUL_SYNCS_FOR_DESTINATION_CONNECTOR,
|
|
35
|
+
SELECT_RECENT_SUCCESSFUL_SYNCS_FOR_SOURCE_CONNECTOR,
|
|
36
|
+
SELECT_RECENT_SYNCS_FOR_DESTINATION_CONNECTOR,
|
|
37
|
+
SELECT_RECENT_SYNCS_FOR_SOURCE_CONNECTOR,
|
|
32
38
|
SELECT_SUCCESSFUL_SYNCS_FOR_VERSION,
|
|
33
39
|
SELECT_SYNC_RESULTS_FOR_VERSION,
|
|
34
40
|
SELECT_WORKSPACE_INFO,
|
|
@@ -227,7 +233,7 @@ def query_actors_pinned_to_version(
|
|
|
227
233
|
)
|
|
228
234
|
|
|
229
235
|
|
|
230
|
-
def
|
|
236
|
+
def query_syncs_for_version_pinned_connector(
|
|
231
237
|
connector_version_id: str,
|
|
232
238
|
days: int = 7,
|
|
233
239
|
limit: int = 100,
|
|
@@ -320,6 +326,81 @@ def query_failed_sync_attempts_for_connector(
|
|
|
320
326
|
return results
|
|
321
327
|
|
|
322
328
|
|
|
329
|
+
def query_recent_syncs_for_connector(
|
|
330
|
+
connector_definition_id: str,
|
|
331
|
+
is_destination: bool = False,
|
|
332
|
+
status_filter: str = "all",
|
|
333
|
+
organization_id: str | None = None,
|
|
334
|
+
days: int = 7,
|
|
335
|
+
limit: int = 100,
|
|
336
|
+
*,
|
|
337
|
+
gsm_client: secretmanager.SecretManagerServiceClient | None = None,
|
|
338
|
+
) -> list[dict[str, Any]]:
|
|
339
|
+
"""Query recent sync jobs for ALL actors using a connector definition.
|
|
340
|
+
|
|
341
|
+
Finds all actors with the given actor_definition_id and returns their sync jobs,
|
|
342
|
+
regardless of whether they have explicit version pins. Filters out deleted actors,
|
|
343
|
+
deleted workspaces, and deprecated connections.
|
|
344
|
+
|
|
345
|
+
This is useful for finding healthy connections with recent successful syncs,
|
|
346
|
+
or for investigating connector issues across all users.
|
|
347
|
+
|
|
348
|
+
Args:
|
|
349
|
+
connector_definition_id: Connector definition UUID to filter by
|
|
350
|
+
is_destination: If True, query destination connectors; if False, query sources
|
|
351
|
+
status_filter: Filter by job status - "all", "succeeded", or "failed"
|
|
352
|
+
organization_id: Optional organization UUID to filter results by (post-query filter)
|
|
353
|
+
days: Number of days to look back (default: 7)
|
|
354
|
+
limit: Maximum number of results (default: 100)
|
|
355
|
+
gsm_client: GCP Secret Manager client. If None, a new client will be instantiated.
|
|
356
|
+
|
|
357
|
+
Returns:
|
|
358
|
+
List of sync job records with workspace info and optional pin context
|
|
359
|
+
"""
|
|
360
|
+
cutoff_date = datetime.now(timezone.utc) - timedelta(days=days)
|
|
361
|
+
|
|
362
|
+
# Select the appropriate query based on connector type and status filter
|
|
363
|
+
if is_destination:
|
|
364
|
+
if status_filter == "succeeded":
|
|
365
|
+
query = SELECT_RECENT_SUCCESSFUL_SYNCS_FOR_DESTINATION_CONNECTOR
|
|
366
|
+
query_name = "SELECT_RECENT_SUCCESSFUL_SYNCS_FOR_DESTINATION_CONNECTOR"
|
|
367
|
+
elif status_filter == "failed":
|
|
368
|
+
query = SELECT_RECENT_FAILED_SYNCS_FOR_DESTINATION_CONNECTOR
|
|
369
|
+
query_name = "SELECT_RECENT_FAILED_SYNCS_FOR_DESTINATION_CONNECTOR"
|
|
370
|
+
else:
|
|
371
|
+
query = SELECT_RECENT_SYNCS_FOR_DESTINATION_CONNECTOR
|
|
372
|
+
query_name = "SELECT_RECENT_SYNCS_FOR_DESTINATION_CONNECTOR"
|
|
373
|
+
else:
|
|
374
|
+
if status_filter == "succeeded":
|
|
375
|
+
query = SELECT_RECENT_SUCCESSFUL_SYNCS_FOR_SOURCE_CONNECTOR
|
|
376
|
+
query_name = "SELECT_RECENT_SUCCESSFUL_SYNCS_FOR_SOURCE_CONNECTOR"
|
|
377
|
+
elif status_filter == "failed":
|
|
378
|
+
query = SELECT_RECENT_FAILED_SYNCS_FOR_SOURCE_CONNECTOR
|
|
379
|
+
query_name = "SELECT_RECENT_FAILED_SYNCS_FOR_SOURCE_CONNECTOR"
|
|
380
|
+
else:
|
|
381
|
+
query = SELECT_RECENT_SYNCS_FOR_SOURCE_CONNECTOR
|
|
382
|
+
query_name = "SELECT_RECENT_SYNCS_FOR_SOURCE_CONNECTOR"
|
|
383
|
+
|
|
384
|
+
results = _run_sql_query(
|
|
385
|
+
query,
|
|
386
|
+
parameters={
|
|
387
|
+
"connector_definition_id": connector_definition_id,
|
|
388
|
+
"cutoff_date": cutoff_date,
|
|
389
|
+
"limit": limit,
|
|
390
|
+
},
|
|
391
|
+
query_name=query_name,
|
|
392
|
+
gsm_client=gsm_client,
|
|
393
|
+
)
|
|
394
|
+
|
|
395
|
+
# Post-query filter by organization_id if provided
|
|
396
|
+
if organization_id is not None:
|
|
397
|
+
results = [
|
|
398
|
+
r for r in results if str(r.get("organization_id")) == organization_id
|
|
399
|
+
]
|
|
400
|
+
|
|
401
|
+
return results
|
|
402
|
+
|
|
403
|
+
|
|
323
404
|
def query_dataplanes_list(
|
|
324
405
|
*,
|
|
325
406
|
gsm_client: secretmanager.SecretManagerServiceClient | None = None,
|