cancel
Showing results for 
Search instead for 
Did you mean: 
Data Engineering
Join discussions on data engineering best practices, architectures, and optimization strategies within the Databricks Community. Exchange insights and solutions with fellow data engineers.
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Connectors confusion with `connector_spec.yaml` usage (or lack of usage)

ChristianRRL
Honored Contributor

Hi there, I'm a bit confused about how connections for Community Connectors setup should be. I assumed that the `connector_spec.yaml` file should outline the specifics of what is required for a Community Connector, but in practice it doesn't seem like it's being used. Below I share more context/details.

When attempting to setup my Custom connector, I input our repository name + source name:

ChristianRRL_0-1784673360714.png

HOWEVER, on the "Create a connection" page, I noticed it's giving me multiple options for Auth types: m2m, u2m (shared & per user), and static credential

ChristianRRL_1-1784673396671.png

I find this a bit odd, because I was trying to mirror closely to the existing Microsoft Teams Community Connector (via connector_spec.yaml), and for that connector it only asks for what was specified in the connector_spec.yaml:

ChristianRRL_2-1784673422995.png

For reference, here's the current connector_spec.yaml I have:

ChristianRRL_3-1784673445797.png

 

1 REPLY 1

iyashk-DB
Databricks Employee
Databricks Employee

The connector_spec.yaml isn't what controls the UI for custom connectors. When you use the "Add Custom Community Connector" path in the workspace UI, Databricks shows a generic connection form with all available auth types. That form is the same for every custom connector regardless of what's in your spec file.

The reason the Microsoft Teams connector looks different is that Teams is an officially registered connector on the Databricks platform. Its connection form is rendered from Databricks' own UI definitions, not from the community repo's connector_spec.yaml.

Your connector_spec.yaml is read and enforced by the CLI tool, not the UI. The CLI (community-connector create_pipeline) reads the spec to validate that the connection options you pass actually match what the connector expects, and it uses the external_options_allowlist to populate the UC connection correctly. The UI flow bypasses all of that.

So the short answer is: there's no way to make the "Add Custom Community Connector" UI respect your spec's connection parameters the same way Teams does. The way around it is to use the CLI to set up your connector:

cd tools/community_connector
pip install -e .
community-connector create_pipeline <your_source> <pipeline_name> -n <connection_name> --repo-url https://github.com/your-org/your-repo

This path does use connector_spec.yaml to validate your connection options and wire up the pipeline correctly.