feat: every source's sign-in check unlocks the create form
Merged
EV
2d ago+166+166+012345678901234567890123456789-26-26-01234567890123456789
Description
The create form unlocks the same way for every source: you fill in the bound fields, run the checks, and the form unlocks when sign-in passes.
validates_binding=Trueis now set on the sign-in check of GitHub, Google Drive, HubSpot, Linear, Notion and YouTrack. Confluence, Jira, Slack, SharePoint, OneDrive and Outlook already had it.- Each source's base check class takes the flag.
- Discovery checks never unlock the form, so a slow count cannot hold it.
- No frontend change is needed.
formUnlockedinweb/src/lib/connectors/checks/hooks.tsalready gates onvalidates_binding. For a source without bound fields, the binding key is just the credential.
Behavior change: the forms of the six sources above used to unlock at once, without a run. They now stay locked until a run passes sign-in, like the others.
How Has This Been Tested?
Two new declaration tests:
- Every source with named checks has a sign-in check, and that check sets
validates_binding. - Any other unlocking check runs after an unlocking check and is not a discovery check.
The capability-check unit tests and the unit tests of every named-check connector pass.
Additional Options
- [Optional] Please cherry-pick this PR to the latest release version.
- [Optional] Override Linear Check
🤖 Generated with Claude Code
Summary by cubic
Unifies how connector create forms unlock: every source's form now stays locked until a run passes a sign-in check that sets validates_binding, instead of unlocking immediately.
- Adds
validates_binding=Trueto the sign-in checks of GitHub, Google Drive, HubSpot, Linear, Notion, and YouTrack; Confluence, Jira, Slack, SharePoint, OneDrive, and Outlook already set it, and some add a listing check (e.g., Jira's "List projects") that runs after sign-in. - Behavior change: those six forms used to unlock without a run; they now stay locked until sign-in passes, like the others. This also applies to sources without bound fields, where the binding key is just the credential.
- Updates the connector feature-map docs.
- Adds declaration tests verifying every source with named checks names its sign-in checks, that each sets
validates_binding, and that any other unlocking check runs after an unlocking check and is not a discovery check.
Summary by CodeRabbit
- Bug Fixes
- Connector setup forms now remain locked until sign-in and all required credential-binding checks pass.
- Some connectors now verify access to credential-bound resources, such as listing available spaces, before enabling setup.
- Non-required check failures are treated as advisory instead of blocking setup.
- Credential validation is applied more consistently across supported connectors.