feat: every source's sign-in check unlocks the create form

Merged
EV
2d ago
+166-26

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=True is 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. formUnlocked in web/src/lib/connectors/checks/hooks.ts already gates on validates_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=True to 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.