databricks

Comprehensive Databricks integration for n8n — SQL, Unity Catalog, Jobs, Clusters, Files, Genie, Vector Search, and Model Serving

Package Information

Downloads: 75 weekly / 920 monthly
Latest Version: 2.0.6
Author: Kyuda

Documentation

@kyuda/n8n-nodes-databricks

Comprehensive Databricks integration for n8n. Provides nodes for SQL, Unity Catalog, Jobs, Clusters, Files, Genie AI, Vector Search, and Model Serving.

Features

  • Genie AI Assistant -- Start conversations, send messages, and execute SQL queries through Databricks' AI assistant
  • Databricks SQL -- Execute SQL queries with automatic chunked result retrieval
  • Unity Catalog -- Manage catalogs, schemas, tables, volumes, and functions
  • Model Serving -- Query deployed ML/LLM endpoints with auto-detected input format
  • Files -- Upload, download, list, and manage files in Unity Catalog volumes (up to 5 GiB)
  • Vector Search -- Semantic similarity search with reranking support
  • Jobs -- Run, create, list, cancel, and monitor Databricks job runs
  • Clusters -- List, create, start, stop, and delete Databricks compute clusters

Prerequisites

  • Node.js 18+
  • pnpm
  • A Databricks workspace with credentials (PAT or OAuth Service Principal)

Installation

For Development

git clone https://github.com/kyudahq/n8n.git
cd n8n/@kyuda/n8n-nodes-databricks
pnpm install
pnpm build

Link to your n8n installation:

npm link
cd ~/.n8n/custom
npm link @kyuda/n8n-nodes-databricks

From npm

npm install @kyuda/n8n-nodes-databricks

Credentials

Two authentication methods are supported:

Personal Access Token (default)

  1. Host -- Your Databricks workspace URL (e.g. https://adb-1234567890123456.7.azuredatabricks.net)
  2. Token -- A Databricks personal access token (generate at User Settings > Access Tokens)

OAuth M2M (Service Principal)

  1. Host -- Your Databricks workspace URL
  2. Client ID -- The application (client) ID of a Databricks service principal
  3. Client Secret -- The secret associated with the service principal

The OAuth flow uses grant_type=client_credentials against your workspace's /oidc/v1/token endpoint. Tokens are cached and refreshed automatically.

Resources and Operations

Databricks (main node)

Resource Operations
Genie Start Conversation, Create Message, Get Message, Execute Message Query, Get Query Results, Get Space
Databricks SQL Execute Query
Unity Catalog Create/Get/Update/Delete Catalog, List Catalogs, Create/Get/Update/Delete Schema, List Schemas, Create/Get/Delete Volume, List Volumes, Get/List Tables, Create/Get/Delete Function, List Functions
Model Serving Query Endpoint (auto-detects chat/completions/embeddings/dataframe formats)
Files Upload File, Download File, Delete File, Get File Info, List Directory, Create Directory, Delete Directory
Vector Search Query Index, Get Index, List Indexes
Jobs Run Job, Get Run Status, Get Run Output, Create Job, List Jobs, Cancel Run, List Runs
Clusters List Clusters, Get Cluster, Create Cluster, Start Cluster, Stop Cluster, Delete Cluster

Architecture

@kyuda/n8n-nodes-databricks/
├── credentials/
│   └── Databricks.credentials.ts      # PAT + OAuth M2M
└── nodes/
    └── Databricks/
        ├── Databricks.node.ts          # Main node (slim dispatcher)
        ├── helpers.ts                  # Shared HTTP helper, cache, security utils
        └── resources/
            ├── index.ts                # Barrel exports
            ├── clusters/              # operations, parameters, handler
            ├── databricksSql/          # operations, parameters, handler
            ├── files/                  # operations, parameters, handler
            ├── genie/                  # operations, parameters, handler
            ├── jobs/                   # operations, parameters, handler
            ├── modelServing/           # operations, parameters, handler
            ├── unityCatalog/           # operations, parameters, handler
            └── vectorSearch/           # operations, parameters, handler

Execution Flow

User selects Resource → Operation → fills Parameters
        ↓
    execute() dispatcher (Databricks.node.ts)
        ↓
    handlers[resource](ctx, operation, itemIndex)
        ↓
    Per-resource handler file (e.g. resources/jobs/handler.ts)
        ↓
    databricksApiRequest() (shared helper with auth, host normalization)
        ↓
    Databricks REST API

Security

  • Token masking -- Bearer tokens and PAT values are scrubbed from all error messages and logs
  • URL encoding -- All user-provided path segments are passed through encodeURIComponent
  • Path traversal protection -- File operations reject paths containing ..
  • Cache isolation -- Cache keys include a hash of the credential token, preventing cross-user cache leaks

Development

pnpm build      # Build the node
pnpm test       # Run tests
pnpm lint       # Lint
pnpm lintfix    # Auto-fix lint issues

Contributing

Contributions are welcome. Please submit a Pull Request at github.com/kyudahq/n8n.

Resources

License

MIT

Discussion