Repository navigation
fix(mcp): guide Connector Builder agents through the credentials flow - #1410
Conversation
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. 💡 Show Tips and TricksTesting This PyAirbyte VersionYou can test this version of PyAirbyte using the following: # Run PyAirbyte CLI from this branch:
uvx --from 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1792438676-connector-builder-credentials-flow' pyairbyte --help
# Install PyAirbyte from this branch for development:
pip install 'git+https://github.com/airbytehq/PyAirbyte.git@devin/1792438676-connector-builder-credentials-flow'PR Slash CommandsAirbyte Maintainers can execute the following slash commands on your PR:
📚 Show Repo GuidanceHelpful ResourcesCommunity SupportQuestions? Join the #pyairbyte channel in our Slack workspace. |
|
Code coverage overviewLanguages: Python Python / code-coverage/pytest-no-creds
View coverage of the 10 most impacted files.
Python / code-coverage/pytest
View coverage of the 10 most impacted files.
Python / code-coverage/pytest-unit
Line coverage data for the release-candidate/v1 branch is not yet available. View coverage of the 10 most covered files.
ℹ️ Calculations represent line coverage. Results may change as calculations are updated. Updated |
There was a problem hiding this comment.
Devin Review found 1 potential issue.
1 flag not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)
There was a problem hiding this comment.
🟢 Approval recommended
The focused changes match the intended credential flow, have targeted unit coverage, and have no identified blocking issues.
No open issues 🎉
What changed in this PR
Improves the hosted Connector Builder credential flow by directing users to enter secrets in the UI rather than chat.
Changes:
- Adds credential setup guidance and
next_stepsto project creation. - Makes readiness checks detect missing required top-level values and include the project URL.
- Adds unit coverage for setup guidance and testing-value checks.
| File | Description |
|---|---|
tests/unit_tests/test_mcp_cloud.py |
Tests next steps with and without a test source. |
tests/unit_tests/test_cloud_connector_builder.py |
Covers missing values, masked secrets, defaults, and no-input specs. |
airbyte/mcp/connector_builder.py |
Documents credential setup and returns UI instructions. |
airbyte/cloud/connector_builder/_util.py |
Tightens testing-value checks and includes readiness details. |
Review effort: Balanced
7355b1b to
10f264a
Compare
|
Devin, update from main now that base pr has merged |
Co-Authored-By: AJ Steers <aj@airbyte.io>
Co-Authored-By: AJ Steers <aj@airbyte.io>
…om blocking Co-Authored-By: AJ Steers <aj@airbyte.io>
Co-Authored-By: AJ Steers <aj@airbyte.io>
Co-Authored-By: AJ Steers <aj@airbyte.io>
Co-Authored-By: AJ Steers <aj@airbyte.io>
10f264a to
710ad19
Compare
|
Done. I retargeted this PR to |
0cf49b3
into
release-candidate/v1
Summary
Guides agents building a connector that needs credentials. They create a draft test source up front, then ask the user to enter credentials in both the Connector Builder testing values and that test source, never in chat.
Builds on the Connector Builder tools from #1407.
create_connector_builder_projectdocstring: for a connector that needs credentials, put the spec in the initial manifest (secrets markedairbyte_secret) and setcreate_test_source. The test source is saved as a draft (deferred credentials), so an auth process that hasn't been tested yet doesn't block it.credentialsobject whoseoneOfoptions each have a constantauth_type(api_key,access_token,oauth2.0). When there is more than one option, use aSelectiveAuthenticatorwithauthenticator_selection_path: ["credentials", "auth_type"].next_steps. With a test source, they ask the user to enter credentials atconnector_builder_project_url, and attest_source_settings_urlfollowed by test and save.spec_missing_requirednow looks inside nested objects andoneOfoptions. Theconstvalues pick the option, a masked secret (**********) counts as present, and a field with a default stays optional. Readiness check 4 ("Ask the user to enter testing values, including secrets, in the Connector Builder UI") fails while a required value is missing, and its next step includes the project URL.create_test_sourcedefers credentials on the same rule.Evidence
Recorded Goose Desktop (Opus 4.7) run against
cloud-mcp-previewatd3415c07(airbyte==0.71.2.dev141039313338033). Fresh chat, no nudges. The source was GitHub with 5 streams and a PAT that I entered only in the Cloud UI.create_test_source=truecredentialsoneOfshapepersonal_access_tokenwithBearerAuthenticator.111819009was accepted and showed running, but was still at 0 records with no attempts 14 minutes later. Cause unknown.Link to Devin session: https://app.devin.ai/sessions/37c00a83f788401489bfd0e37c0b7440
Open in Devin Desktop: https://app.devin.ai/desktop/session/37c00a83f788401489bfd0e37c0b7440?variant=devin
Requested by: Aaron ("AJ") Steers (@aaronsteers)