Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
3da6754
Unity Catalog
misha-db Mar 24, 2026
f6d7ce2
[WIP] Unity catalog explorer
misha-db Mar 30, 2026
518af44
Merge branch 'main' into unity-catalog
misha-db Mar 30, 2026
ef21013
Open links of unity catalog items in Databricks
misha-db Mar 31, 2026
56cc6bb
Adjust color scheme for dark/light themes
misha-db Mar 31, 2026
5569d33
Fix explore url
misha-db Mar 31, 2026
8f2013e
Fix function explore url
misha-db Mar 31, 2026
f1cb458
Allow explore external links for tables and volumes
misha-db Mar 31, 2026
26eb963
Fix copy for nodes
misha-db Mar 31, 2026
4181213
Refactor and do cleanup
misha-db Mar 31, 2026
dd417b0
Add search item icon. Show empty node when no children returned.
misha-db Apr 2, 2026
c9981d0
Pin/Unpin schema
misha-db Apr 2, 2026
7945371
Sort by ownership
misha-db Apr 3, 2026
f9db373
Add TODO
misha-db Apr 3, 2026
d6ca008
Support registered models
misha-db Apr 3, 2026
a47de90
Address PR comments
misha-db Apr 3, 2026
5d2ff6a
Move logic out of tree provider
misha-db Apr 3, 2026
c95375d
Fix tests
misha-db Apr 3, 2026
9a4dc47
Add details view
misha-db Apr 7, 2026
94eed51
Merge branch 'main' into unity-catalog
misha-db Apr 9, 2026
6db1a7c
Move properties to details tab. Clear search textbox when switching t…
misha-db Apr 9, 2026
a44b0af
Display catalog/schema children node on details page
misha-db Apr 9, 2026
45d3610
Add favorites section
misha-db Apr 20, 2026
8b742a8
Make UC detail panel "About this ..." title dynamic per node type
misha-db Apr 21, 2026
d680638
Update UnityCatalogTreeDataProvider.ts
misha-db Apr 21, 2026
3eced89
Use unity catalog icons for nodes
misha-db Apr 22, 2026
8524556
Merge branch 'main' into unity-catalog
misha-db Apr 22, 2026
3e8359a
Reuse unity catalog icons in detail page
misha-db Apr 23, 2026
ea8d03e
Adjust column and model version icons
misha-db Apr 27, 2026
2dbbb5d
Change function icon for dark theme
misha-db May 5, 2026
b4da124
Syntax highlighting
misha-db May 5, 2026
02eea89
Reduce uc tree icon sizes
misha-db May 5, 2026
41c3be2
Reduce databricks logo size
misha-db May 5, 2026
820515f
Move “Copy full name” and “Open in Databricks” actions higher in the …
misha-db May 5, 2026
46de4f7
Adjust actions for smaller webview width
misha-db May 5, 2026
a906145
Format css rules
misha-db May 5, 2026
412a69e
Left-align search input instead of right-aligning
misha-db May 5, 2026
439598a
Change search icon to filter
misha-db May 5, 2026
9562e0b
Increase width of property-name column in details tab
misha-db May 5, 2026
da0b08f
Adding intermediate object-type grouping in tree hierarchy
misha-db May 5, 2026
77ee483
Split view optimizations
misha-db May 6, 2026
ed30514
Add navigation into individual model versions
misha-db May 6, 2026
cb56954
Merge branch 'main' into unity-catalog
misha-db May 6, 2026
3578981
Change no data icon
misha-db May 6, 2026
e79a46d
Merge branch 'main' into unity-catalog
misha-db May 6, 2026
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
220 changes: 218 additions & 2 deletions packages/databricks-vscode/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,58 @@
"enablement": "databricks.context.activated && databricks.context.loggedIn && databricks.feature.views.workspace && !databricks.context.remoteMode",
"category": "Databricks"
},
{
"command": "databricks.unityCatalog.filter",
"title": "Filter",
"icon": "$(filter)",
"category": "Databricks"
},
{
"command": "databricks.unityCatalog.refresh",
"title": "Refresh Unity Catalog view",
"icon": "$(refresh)",
"enablement": "databricks.context.activated && databricks.context.loggedIn",
"category": "Databricks"
},
{
"command": "databricks.unityCatalog.copyStorageLocation",
"title": "Copy storage location",
"category": "Databricks"
},
{
"command": "databricks.unityCatalog.copyViewSql",
"title": "Copy view SQL",
"category": "Databricks"
},
{
"command": "databricks.unityCatalog.copyName",
"title": "Copy",
"category": "Databricks"
},
{
"command": "databricks.unityCatalog.refreshNode",
"title": "Refresh",
"icon": "$(refresh)",
"category": "Databricks"
},
{
"command": "databricks.unityCatalog.pin",
"title": "Add to Favorites",
"icon": "$(star-empty)",
"category": "Databricks"
},
{
"command": "databricks.unityCatalog.unpin",
"title": "Remove from Favorites",
"icon": "$(star-full)",
"category": "Databricks"
},
{
"command": "databricks.unityCatalog.openExternal",
"title": "Open in Databricks",
"icon": "$(link-external)",
"category": "Databricks"
},
{
"command": "databricks.call",
"title": "Call",
Expand Down Expand Up @@ -452,13 +504,108 @@
"name": "Workspace explorer",
"when": "databricks.feature.views.workspace && !databricks.context.remoteMode"
},
{
"id": "unityCatalogView",
"name": "Unity Catalog",
"when": "databricks.context.activated && databricks.context.loggedIn"
},
{
"id": "databricksDocsView",
"name": "Documentation",
"when": "!databricks.context.remoteMode"
}
]
},
"colors": [
{
"id": "databricks.unityCatalog.catalog",
"description": "Icon color for Unity Catalog catalog nodes",
"defaults": {
"dark": "#9B6CF7",
"light": "#6B2FD4",
"highContrast": "#C586C0",
"highContrastLight": "#6B2FD4"
}
},
{
"id": "databricks.unityCatalog.schema",
"description": "Icon color for Unity Catalog schema nodes",
"defaults": {
"dark": "#0DB7C4",
"light": "#007A85",
"highContrast": "#4EC9B0",
"highContrastLight": "#007A85"
}
},
{
"id": "databricks.unityCatalog.table",
"description": "Icon color for Unity Catalog table nodes",
"defaults": {
"dark": "#FF6B2C",
"light": "#C84B0A",
"highContrast": "#FF6B2C",
"highContrastLight": "#C84B0A"
}
},
{
"id": "databricks.unityCatalog.volume",
"description": "Icon color for Unity Catalog volume nodes",
"defaults": {
"dark": "#4FC1E9",
"light": "#0E6FA0",
"highContrast": "#4FC1E9",
"highContrastLight": "#0E6FA0"
}
},
{
"id": "databricks.unityCatalog.function",
"description": "Icon color for Unity Catalog function nodes",
"defaults": {
"dark": "#FFB347",
"light": "#A06000",
"highContrast": "#FFCA28",
"highContrastLight": "#A06000"
}
},
{
"id": "databricks.unityCatalog.columnKey",
"description": "Icon color for Unity Catalog non-nullable (key) column nodes",
"defaults": {
"dark": "#F47C7C",
"light": "#C0392B",
"highContrast": "#F47C7C",
"highContrastLight": "#C0392B"
}
},
{
"id": "databricks.unityCatalog.column",
"description": "Icon color for Unity Catalog nullable column nodes",
"defaults": {
"dark": "#8EAFC2",
"light": "#4A6B82",
"highContrast": "#8EAFC2",
"highContrastLight": "#4A6B82"
}
},
{
"id": "databricks.unityCatalog.registeredModel",
"description": "Color for registered model nodes in the Unity Catalog view",
"defaults": {
"dark": "#C586C0",
"light": "#AF00DB",
"highContrast": "#C586C0"
}
},
{
"id": "databricks.unityCatalog.modelVersion",
"description": "Color for model version nodes in the Unity Catalog view",
"defaults": {
"dark": "#B5CEA8",
"light": "#008000",
"highContrast": "#B5CEA8"
}
}
],
"viewsWelcome": [
{
"view": "configurationView",
Expand Down Expand Up @@ -536,6 +683,16 @@
"when": "view == workspaceFsView",
"group": "navigation@1"
},
{
"command": "databricks.unityCatalog.filter",
"when": "view == unityCatalogView",
"group": "navigation@2"
},
{
"command": "databricks.unityCatalog.refresh",
"when": "view == unityCatalogView",
"group": "navigation@1"
},
{
"command": "databricks.bundle.refreshRemoteState",
"when": "view == dabsResourceExplorerView && databricks.context.bundle.deploymentState == idle",
Expand Down Expand Up @@ -592,6 +749,61 @@
"when": "viewItem =~ /^databricks.*\\.(has-url).*$/ && databricks.context.bundle.deploymentState == idle",
"group": "navigation_2@0"
},
{
"command": "databricks.unityCatalog.openExternal",
"when": "view == unityCatalogView && viewItem =~ /\\.has-url/",
"group": "inline@1"
},
{
"command": "databricks.unityCatalog.openExternal",
"when": "view == unityCatalogView && viewItem =~ /\\.has-url/",
"group": "navigation_2@0"
},
{
"command": "databricks.unityCatalog.copyName",
"when": "view == unityCatalogView && viewItem =~ /unityCatalog/",
"group": "navigation_2@0"
},
{
"command": "databricks.unityCatalog.copyStorageLocation",
"when": "view == unityCatalogView && viewItem =~ /\\.has-storage/",
"group": "navigation_2@1"
},
{
"command": "databricks.unityCatalog.copyViewSql",
"when": "view == unityCatalogView && viewItem =~ /\\.is-view/",
"group": "navigation_2@2"
},
{
"command": "databricks.unityCatalog.refreshNode",
"when": "view == unityCatalogView && viewItem =~ /^unityCatalog\\.(?!column)/",
"group": "navigation_2@3"
},
{
"command": "databricks.unityCatalog.refreshNode",
"when": "view == unityCatalogView && viewItem =~ /^unityCatalog\\.(?!column)/",
"group": "inline@2"
},
{
"command": "databricks.unityCatalog.pin",
"when": "view == unityCatalogView && viewItem =~ /^unityCatalog\\.(catalog|schema|table|volume|function|registeredModel|modelVersion)/ && !(viewItem =~ /\\.is-pinned/)",
"group": "inline@3"
},
{
"command": "databricks.unityCatalog.unpin",
"when": "view == unityCatalogView && viewItem =~ /^unityCatalog\\.(catalog|schema|table|volume|function|registeredModel|modelVersion).*\\.is-pinned/",
"group": "inline@3"
},
{
"command": "databricks.unityCatalog.pin",
"when": "view == unityCatalogView && viewItem =~ /^unityCatalog\\.(catalog|schema|table|volume|function|registeredModel|modelVersion)/ && !(viewItem =~ /\\.is-pinned/)",
"group": "navigation_2@4"
},
{
"command": "databricks.unityCatalog.unpin",
"when": "view == unityCatalogView && viewItem =~ /^unityCatalog\\.(catalog|schema|table|volume|function|registeredModel|modelVersion).*\\.is-pinned/",
"group": "navigation_2@4"
},
{
"command": "databricks.utils.goToDefinition",
"when": "viewItem =~ /^databricks.*\\.(has-source-location).*$/",
Expand Down Expand Up @@ -1163,7 +1375,7 @@
"version": "0.297.2"
},
"scripts": {
"vscode:prepublish": "rm -rf out && yarn run package:compile && yarn run package:wrappers:write && yarn run package:jupyter-init-script:write && yarn run package:copy-webview-toolkit && yarn run generate-telemetry",
"vscode:prepublish": "rm -rf out && yarn run package:compile && yarn run package:wrappers:write && yarn run package:jupyter-init-script:write && yarn run package:copy-webview-toolkit && yarn run package:copy-markdown-it && yarn run package:copy-highlight && yarn run generate-telemetry",
"package": "vsce package --baseContentUrl https://github.com/databricks/databricks-vscode/blob/${TAG:-main}/packages/databricks-vscode --baseImagesUrl https://raw.githubusercontent.com/databricks/databricks-vscode/${TAG:-main}/packages/databricks-vscode",
"package:linux:x64": "./scripts/package-vsix.sh linux-x64",
"package:linux:arm64": "./scripts/package-vsix.sh linux-arm64",
Expand All @@ -1179,9 +1391,11 @@
"package:bundle-schema:write": "yarn package:cli:fetch && ts-node ./scripts/writeBundleSchema.ts ./bin/databricks ./src/bundle/BundleSchema.ts",
"package:compile": "yarn run esbuild:base",
"package:copy-webview-toolkit": "cp ./node_modules/@vscode/webview-ui-toolkit/dist/toolkit.js ./out/toolkit.js",
"package:copy-markdown-it": "cp ./node_modules/markdown-it/dist/markdown-it.min.js ./out/markdown-it.min.js",
"package:copy-highlight": "esbuild ./node_modules/highlight.js/lib/common.js --bundle --format=iife --global-name=hljs --outfile=out/highlight.min.js --minify",
"esbuild:base": "esbuild ./src/extension.ts --bundle --outfile=out/extension.js --external:vscode --format=cjs --platform=node --sourcemap --target=es2019",
"build": "yarn run package:wrappers:write && yarn run package:jupyter-init-script:write && tsc --build --force",
"watch": "yarn run package:wrappers:write && yarn run package:jupyter-init-script:write && yarn run package:copy-webview-toolkit && tsc --build --watch --verbose",
"watch": "yarn run package:wrappers:write && yarn run package:jupyter-init-script:write && yarn run package:copy-webview-toolkit && yarn run package:copy-markdown-it && yarn run package:copy-highlight && tsc --build --watch --verbose",
"fix": "eslint src --ext ts --fix && prettier . --write",
"test:lint": "eslint src --ext ts && prettier . -c",
"test:unit": "yarn run build && node ./out/test/runTest.js",
Expand All @@ -1207,7 +1421,9 @@
"add": "^2.0.6",
"ansi-to-html": "^0.7.2",
"bcryptjs": "^2.4.3",
"highlight.js": "^11.10.0",
"lodash": "^4.17.21",
"markdown-it": "^12.3.2",
"minimatch": "^10.0.1",
"shell-quote": "^1.8.1",
"triple-beam": "^1.4.1",
Expand Down
2 changes: 1 addition & 1 deletion packages/databricks-vscode/resources/dark/logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading