Skip to content
Merged
Show file tree
Hide file tree
Changes from 42 commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
97b92e1
Added Databricks SQL Warehouses API actions
Lokeshchand33 Aug 22, 2025
5a697bd
Update Databricks SQL Warehouse docs URLs
Lokeshchand33 Aug 22, 2025
6623be2
Merge branch 'master' into databricks-sql-warehouses
Lokeshchand33 Aug 23, 2025
8343661
Merge branch 'master' into databricks-sql-warehouses
Lokeshchand33 Aug 27, 2025
9292e93
fix(databricks): bump component versions and apply lint fixes
Lokeshchand33 Aug 28, 2025
6a9646c
fix(databricks): addressed requested changes
Lokeshchand33 Aug 29, 2025
d66788b
addressed coderabbit review feedback
Lokeshchand33 Aug 29, 2025
e120588
resolved the linting issues
Lokeshchand33 Aug 29, 2025
5238430
Merge branch 'master' into databricks-sql-warehouses
Lokeshchand33 Aug 30, 2025
e742ec2
addressed all test failures
Lokeshchand33 Sep 1, 2025
01ed509
addressed coderabbit review feedback
Lokeshchand33 Sep 1, 2025
d83d206
Merge branch 'master' into databricks-sql-warehouses
Lokeshchand33 Sep 1, 2025
49e997c
resolved the linting issues
Lokeshchand33 Sep 1, 2025
0535802
addressed coderabbit review feedback
Lokeshchand33 Sep 1, 2025
b98476c
addressed coderabbit review feedback
Lokeshchand33 Sep 1, 2025
2153ac3
resolved the linting issues
Lokeshchand33 Sep 1, 2025
b04a050
updates
michelle0927 Sep 1, 2025
2222816
Add default value for maxNumClusters
vunguyenhung Sep 2, 2025
2aeacf2
create and edit sql warehouses fixes
Lokeshchand33 Sep 2, 2025
9bfe023
create and edit sql warehouse fixes
Lokeshchand33 Sep 2, 2025
99dfc76
updates
michelle0927 Sep 2, 2025
62287c7
Added Vector Search Index API actions
Lokeshchand33 Sep 4, 2025
ee33ab4
addressed coderabbit review feedback
Lokeshchand33 Sep 4, 2025
25fdea5
Merge branch 'master' into databricks-sql-warehouses
Lokeshchand33 Sep 5, 2025
b7e9fd4
Merge branch 'master' into databricks-sql-warehouses
Lokeshchand33 Sep 8, 2025
a13c04c
version updated
Lokeshchand33 Sep 8, 2025
30e5b6c
resolved the linting issues
Lokeshchand33 Sep 8, 2025
dfb8fd9
Merge branch 'PipedreamHQ:master' into databricks-sql-warehouses
Lokeshchand33 Sep 10, 2025
47fe441
addressed all test failures
lokesh154 Sep 13, 2025
e4a1037
Merge branch 'master' into databricks-sql-warehouses
Lokeshchand33 Sep 13, 2025
9bcacc3
addressed coderabbit review feedback
Lokeshchand33 Sep 13, 2025
13a1c59
addressed coderabbit review feedback
Lokeshchand33 Sep 13, 2025
9ea188a
addressed coderabbit review feedback
Lokeshchand33 Sep 14, 2025
ebea510
updated
Lokeshchand33 Sep 15, 2025
75214fc
updated
Lokeshchand33 Sep 15, 2025
8666764
updates
Lokeshchand33 Sep 15, 2025
30b514d
fixed failed test cases
Lokeshchand33 Sep 16, 2025
86b4d47
updated
Lokeshchand33 Sep 17, 2025
da2fa27
updated
Lokeshchand33 Sep 17, 2025
f9aa39e
updated
Lokeshchand33 Sep 17, 2025
008e23b
fixed failed test cases
Lokeshchand33 Sep 17, 2025
8fb3072
fixed failed test cases
Lokeshchand33 Sep 18, 2025
1258a7c
resolved conflict
Lokeshchand33 Sep 18, 2025
8562f9f
Merge branch 'master' into databricks-sql-warehouses
Lokeshchand33 Sep 18, 2025
427452e
updated
Lokeshchand33 Sep 18, 2025
577233e
version updated
Lokeshchand33 Sep 18, 2025
8df764b
updated
Lokeshchand33 Sep 19, 2025
af3ef3b
Merge branch 'master' into databricks-sql-warehouses
Lokeshchand33 Sep 19, 2025
db3b6cd
updated
Lokeshchand33 Sep 21, 2025
6b54d05
Merge branch 'master' into databricks-sql-warehouses
michelle0927 Sep 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ export default {
key: "databricks-create-endpoint",
name: "Create Endpoint",
description: "Create a new vector search endpoint. [See the documentation](https://docs.databricks.com/api/workspace/vectorsearchendpoints/createendpoint)",
version: "0.0.1",
version: "0.0.2",
type: "action",
props: {
databricks,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export default {
key: "databricks-create-sql-warehouse",
name: "Create SQL Warehouse",
description: "Creates a new SQL Warehouse in Databricks. [See the documentation](https://docs.databricks.com/api/workspace/warehouses/create)",
version: "0.0.2",
version: "0.0.3",
type: "action",
props: {
databricks,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
import databricks from "../../databricks.app.mjs";
import utils from "../../common/utils.mjs";
import { ConfigurationError } from "@pipedream/platform";

export default {
key: "databricks-create-vector-search-index",
name: "Create Vector Search Index",
description:
"Creates a new vector search index in Databricks. [See the documentation](https://docs.databricks.com/api/workspace/vectorsearchindexes/createindex)",
version: "0.0.1",
type: "action",
props: {
databricks,
name: {
type: "string",
label: "Index Name",
description:
"A unique name for the index (e.g., `main_catalog.docs.en_wiki_index`).",
},
endpointName: {
propDefinition: [
databricks,
"endpointName",
],
},
indexType: {
type: "string",
label: "Index Type",
description: "Type of index (`DELTA_SYNC` or `DIRECT_ACCESS`).",
options: [
"DELTA_SYNC",
"DIRECT_ACCESS",
],
},
primaryKey: {
type: "string",
label: "Primary Key",
description: "The primary key column for the index.",
},
sourceTable: {
type: "string",
label: "Source Table",
description:
"The Delta table backing the index (required for `DELTA_SYNC`).",
optional: true,
},
columnsToSync: {
type: "string[]",
label: "Columns to Sync",
description:
"List of columns to sync from the source Delta table. Example: `[\"id\", \"text\"]` (required for `DELTA_SYNC`).",
optional: true,
},
embeddingSourceColumns: {
type: "string[]",
label: "Embedding Source Columns",
description:
"List of embedding source column configs. Each entry is a JSON object string like `{ \"embedding_model_endpoint_name\": \"e5-small-v2\", \"name\": \"text\" }`.Provide when Databricks computes embeddings (DELTA_SYNC).",
optional: true,
},
schemaJson: {
type: "string",
label: "Schema JSON",
description:
"The schema of the index in JSON format. Example: `{ \"columns\": [{ \"name\": \"id\", \"type\": \"string\" }, { \"name\": \"text_vector\", \"type\": \"array<double>\" }] }`. Required for `DIRECT_ACCESS` indexes.",
optional: true,
},
pipelineType: {
type: "string",
label: "Pipeline Type",
description: "Pipeline type for syncing (default: TRIGGERED).",
options: [
"TRIGGERED",
"CONTINUOUS",
],
optional: true,
default: "TRIGGERED",
},
},

async run({ $ }) {
const payload = {
name: this.name,
endpoint_name: this.endpointName,
index_type: this.indexType,
primary_key: this.primaryKey,
};

if (this.indexType === "DELTA_SYNC") {
if (this.schemaJson) {
throw new ConfigurationError(
"`Schema JSON` is not allowed when indexType is DELTA_SYNC.",
);
}
if (!this.sourceTable) {
throw new ConfigurationError(
"sourceTable is required when indexType is DELTA_SYNC.",
);
}

const columnsToSync = Array.isArray(this.columnsToSync)
? this.columnsToSync
: utils.parseObject(this.columnsToSync);

const embeddingSourceColumns = utils.parseObject(this.embeddingSourceColumns);
const hasSource = Array.isArray(embeddingSourceColumns) && embeddingSourceColumns.length > 0;
if (!hasSource) {
throw new ConfigurationError(
"embeddingSourceColumns is required when indexType is DELTA_SYNC.",
);
}

const deltaSpec = {
source_table: this.sourceTable,
pipeline_type: this.pipelineType || "TRIGGERED",
};
if (Array.isArray(columnsToSync) && columnsToSync.length > 0) {
deltaSpec.columns_to_sync = columnsToSync;
}
if (hasSource) {
for (const [
i,
c,
] of embeddingSourceColumns.entries()) {
if (!c?.name || !c?.embedding_model_endpoint_name) {
throw new ConfigurationError(
`embeddingSourceColumns[${i}] must include "name" and "embedding_model_endpoint_name"`,
);
}
}
deltaSpec.embedding_source_columns = embeddingSourceColumns;
}
payload.delta_sync_index_spec = deltaSpec;
}

else if (this.indexType === "DIRECT_ACCESS") {
if (this.sourceTable || this.columnsToSync?.length || this.embeddingSourceColumns?.length) {
throw new ConfigurationError(
"`Source Table`,`Embedding Source Columns` and `Columns to Sync` are not allowed when indexType is DIRECT_ACCESS.",
);
}
if (!this.schemaJson) {
throw new ConfigurationError(
"schemaJson is required when indexType is DIRECT_ACCESS.",
);
}
payload.direct_access_index_spec = {
schema_json: this.schemaJson,
};
}

const response = await this.databricks.createVectorSearchIndex({
data: payload,
$,
});

$.export(
"$summary",
`Successfully created vector search index: ${response?.name || this.name}`,
);
return response;
},
};
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ export default {
key: "databricks-delete-endpoint",
name: "Delete Endpoint",
description: "Delete a vector search endpoint. [See the documentation](https://docs.databricks.com/api/workspace/vectorsearchendpoints/deleteendpoint)",
version: "0.0.1",
version: "0.0.2",
type: "action",
props: {
databricks,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ export default {
key: "databricks-delete-sql-warehouse",
name: "Delete SQL Warehouse",
description: "Deletes a SQL Warehouse by ID. [See the documentation](https://docs.databricks.com/api/workspace/warehouses/delete)",
version: "0.0.2",
version: "0.0.3",
type: "action",
props: {
databricks,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import databricks from "../../databricks.app.mjs";
import utils from "../../common/utils.mjs";

export default {
key: "databricks-delete-vector-search-index-data",
name: "Delete Data from Vector Search Index",
description:
"Deletes rows from a Direct Access vector index by primary-key values. [See the documentation](https://docs.databricks.com/api/workspace/vectorsearchindexes/deletedatavectorindex)",
version: "0.0.1",
type: "action",
props: {
databricks,
endpointName: {
propDefinition: [
databricks,
"endpointName",
],
},
indexName: {
propDefinition: [
databricks,
"indexName",
({ endpointName }) => ({
endpointName,
}),
],
},
primaryKeys: {
type: "string[]",
label: "Primary Keys",
description:
"Values of the index’s primary key column to delete (e.g. `1`, `2`). These are the values for the column you set as `primary_key` when the index was created.",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"Values of the indexs primary key column to delete (e.g. `1`, `2`). These are the values for the column you set as `primary_key` when the index was created.",
"Values of the index's primary key column to delete (e.g. `1`, `2`). These are the values for the column you set as `primary_key` when the index was created.",

},
},
async run({ $ }) {
const parsedKeys = utils.parseObject(this.primaryKeys);

const keys = (Array.isArray(parsedKeys)
? parsedKeys
: [
parsedKeys,
])
.map((s) => String(s).trim())
.filter(Boolean);

if (!keys.length) {
throw new Error("Please provide at least one primary key to delete.");
}

const response = await this.databricks.deleteVectorSearchData({
indexName: this.indexName,
params: {
primary_keys: keys,
},
$,
});

$.export(
"$summary",
`Requested delete of ${keys.length} row(s) from index "${this.indexName}".`,
);
return response;
},
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import databricks from "../../databricks.app.mjs";

export default {
key: "databricks-delete-vector-search-index",
name: "Delete Vector Search Index",
description: "Deletes a vector search index in Databricks. [See the documentation](https://docs.databricks.com/api/workspace/vectorsearchindexes/deleteindex)",
version: "0.0.1",
type: "action",
props: {
databricks,
endpointName: {
propDefinition: [
databricks,
"endpointName",
],
},
indexName: {
propDefinition: [
databricks,
"indexName",
({ endpointName }) => ({
endpointName,
}),
],
},
},
async run({ $ }) {
const response = await this.databricks.deleteVectorSearchIndex({
indexName: this.indexName,
$,
});

$.export("$summary", `Successfully deleted vector search index: ${this.indexName}`);
return response;
},
};
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export default {
key: "databricks-edit-sql-warehouse",
name: "Edit SQL Warehouse",
description: "Edits the configuration of an existing SQL Warehouse. [See the documentation](https://docs.databricks.com/api/workspace/warehouses/edit)",
version: "0.0.2",
version: "0.0.3",
type: "action",
props: {
databricks,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ export default {
key: "databricks-get-endpoint",
name: "Get Endpoint",
description: "Get details of a specific vector search endpoint. [See the documentation](https://docs.databricks.com/api/workspace/vectorsearchendpoints/getendpoint)",
version: "0.0.1",
version: "0.0.2",
type: "action",
props: {
databricks,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ export default {
key: "databricks-get-run-output",
name: "Get Run Output",
description: "Retrieve the output and metadata of a single task run. [See the documentation](https://docs.databricks.com/en/workflows/jobs/jobs-2.0-api.html#runs-get-output)",
version: "0.0.3",
version: "0.0.4",
type: "action",
props: {
databricks,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ export default {
key: "databricks-get-sql-warehouse-config",
name: "Get SQL Warehouse Config",
description: "Retrieves the global configuration for SQL Warehouses. [See the documentation](https://docs.databricks.com/api/workspace/warehouses/getworkspacewarehouseconfig)",
version: "0.0.2",
version: "0.0.3",
type: "action",
props: {
databricks,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ export default {
key: "databricks-get-sql-warehouse-permissions",
name: "Get SQL Warehouse Permissions",
description: "Retrieves the permissions for a specific SQL Warehouse. [See the documentation](https://docs.databricks.com/api/workspace/warehouses/getpermissions)",
version: "0.0.2",
version: "0.0.3",
type: "action",
props: {
databricks,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ export default {
key: "databricks-get-sql-warehouse",
name: "Get SQL Warehouse",
description: "Retrieves details for a specific SQL Warehouse. [See docs](https://docs.databricks.com/api/workspace/warehouses/get)",
version: "0.0.2",
version: "0.0.3",
type: "action",
props: {
databricks,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import databricks from "../../databricks.app.mjs";

export default {
key: "databricks-get-vector-search-index",
name: "Get Vector Search Index",
description: "Retrieves details about a specific vector search index. [See the documentation](https://docs.databricks.com/api/workspace/vectorsearchindexes/getindex)",
version: "0.0.1",
type: "action",
props: {
databricks,
endpointName: {
propDefinition: [
databricks,
"endpointName",
],
},
indexName: {
propDefinition: [
databricks,
"indexName",
({ endpointName }) => ({
endpointName,
}),
],
},
},

async run({ $ }) {
const response = await this.databricks.getVectorSearchIndex({
indexName: this.indexName,
$,
});

$.export(
"$summary",
`Successfully retrieved vector search index: ${this.indexName}`,
);
return response;
},
};
Loading