Every released version and what changed in it. The body of this page is
CHANGELOG.md from the repository, included verbatim, so it can never
drift from the notes that ship with a release.
Changes that are merged but not yet released are staged in
NEXT_CHANGELOG.md. At release time the workflow folds that file into
CHANGELOG.md under a dated heading and cuts the GitHub release from
the same text (which is why CHANGELOG.md is never edited by hand).
Version changelog¶
Release v0.6.0 (2026-08-01)¶
Notable Changes¶
- The release workflow now automatically submits an updated winget manifest
(
LibreDsc.DscDatabricks) to microsoft/winget-pkgs when a stable release tag is published.
Release v0.5.0 (2026-07-29)¶
Notable Changes¶
- Seven new Unity Catalog resources. The module now manages the full UC object hierarchy and its storage plumbing:
LibreDsc.Databricks/SchemaandLibreDsc.Databricks/Volume— schemas and (managed or external) volumes under a catalog. Create-only fields (storage_root,volume_type,storage_location) are documented in the schema and left untouched on update.LibreDsc.Databricks/StorageCredentialandLibreDsc.Databricks/ServiceCredential— Azure credential blocks (azure_managed_identitybacked by an access connector, orazure_service_principal;client_secretis write-only). Both ship a customtestthat ignores server-computed nested fields, so configurations converge cleanly.LibreDsc.Databricks/ExternalLocation— storage URLs bound to a storage credential;read_onlyandfallbackare always enforced (explicitly sent even whenfalse).LibreDsc.Databricks/Connection— Lakehouse Federation connections. Updates resend the fulloptionsmap; secret option values come back redacted and report as drift when specified.LibreDsc.Databricks/Grant— declarative per-principal privileges on any securable (securable_type+full_name+principal→privileges). Set converges the principal's direct privilege set via the permissions delta API,testcompares privileges order-insensitively, delete revokes everything, and export enumerates grants on metastore-level securables (catalogs, external locations, credentials, connections). Owner and isolation/predictive-optimization settings that the create APIs don't accept are applied by a chained post-create update, so a singledsc config setconverges them.
Bug Fixes¶
- Repo lookup and export work on newer workspace generations. Some
workspace shards report Git folders with a directory object type instead
of
REPOin the workspaceget-status/listAPIs, which made Repogettreat existing repos as missing (breaking branch-onlysetruns withmissing required field(s): url, provider) and export return nothing.
Dependency Updates¶
- Bumped
github.com/databricks/databricks-sdk-gofrom v0.163.0 to v0.165.0.
Release v0.4.0 (2026-07-29)¶
Notable Changes¶
- Preview changes before applying them. Every resource now supports
what-if: add
-wtodsc config setand the result shows exactly what would be created or updated — including the predictedafterStateandchangedProperties— without touching your workspace. The prediction is computed natively by each resource (no API calls that modify anything), so it is more accurate than the DSC engine's synthetic fallback and does not leak_metadataintochangedProperties.dsc resource listshows the newsetWhatIfcapability on all 15 resources. What-if is advertised via awhatIfArgon thesetmethod (requires DSC v3.2 or later), replacing the deprecated dedicatedwhatIfoperation. - Log messages can now be translated. Diagnostic output (shown with
DSC_TRACE_LEVEL=infoor higher) goes through a localization layer. SetDSC_DATABRICKS_LANG(or rely onLC_ALL/LANG) to pick a language; English ships today and new languages only need a translation table, no code changes. - Deleting something that is already gone now succeeds. Previously User, AccountUser, Group, ServicePrincipal, ClusterPolicy, Cluster, and SqlWarehouse returned a not-found error, which could fail a configuration run that was already in the desired state.
- Richer schemas. Read-only fields you get back from the API (cluster
state/state_message, SQL warehousestate/num_clusters, workspace settingetag, repoid/head_commit_id, catalogstorage_location/catalog_type/metastore_id) are now documented as optional properties indsc resource schemaoutput, and enum values are listed forSecretAcl.permission,SqlWarehousePermission.permission_level,Catalog.isolation_mode, andCatalog.enable_predictive_optimization— so editors with schema completion can offer the valid values. - Heads-up if you script against set/test output:
changedPropertiesanddifferingPropertiesno longer include underscore-prefixed properties such as_exist(custom tests still report_existwhen the instance is missing). Update any automation that looked for_existin those arrays. - Manifest layout changed for discovery. The build now produces one
libredsc.databricks.<name>.dsc.resource.jsonfile per resource instead of the single aggregateLibreDsc.Databricks.dsc.manifests.json. PointDSC_RESOURCE_PATHat the output directory as before; if you copied or parsed the old aggregate file, switch to the per-resource files. - Under the hood: all resources were rebuilt on the released
dsc-go-rdk v0.1.0 library,
replacing the in-house framework and Cobra CLI. Day-to-day usage
(
get/set/test/delete/export/schema/manifest) is unchanged. - For contributors: authoring guidance now lives in
CLAUDE.md(the.github/instructionsfile points there). Test coverage grew with Go unit tests (validation, request builders, SCIM conversions, what-if projections, localization, manifest/schema parity) and PesterWhatIfcontexts in every suite via the newInvoke-DscWhatIfhelper; SqlWarehousePermission is covered inline in the SqlWarehouse suite. - For contributors: Unity Catalog test environment. Groundwork for the
upcoming Unity Catalog object resources:
tools/Initialize-DatabricksTests.ps1gainsTest-UnityCatalogAvailable(metastore-attachment detection; UC suites skip on workspaces that are not UC-enabled),New-UnityCatalogTestEnvironment/Remove-UnityCatalogTestEnvironment(tear up / tear down a dedicated catalog + schema fixture through the Unity Catalog REST API, with force-delete cascade on teardown), aNew-TestSchemaNamegenerator, and anInvoke-DatabricksApiREST helper. SetDATABRICKS_CATALOG_STORAGE_LOCATIONwhen the metastore has no default managed storage; a per-catalog subdirectory is used so storage locations never overlap. -
For contributors: serverless SQL warehouse fixture. The SqlWarehouse E2E suite now provisions a serverless PRO warehouse — it starts in seconds and consumes no Azure VM quota. The previous classic warehouse launches on a different VM family than the cluster suite's node type and could spend the entire 20-minute wait in
Clusters are failing to launchwhen that family had no capacity or quota in the region. -
Cluster supports next-generation compute. New optional properties
kind(enumCLASSIC_PREVIEW),is_single_node(only valid withkind = CLASSIC_PREVIEW), andazure_availability(enumSPOT_AZURE,ON_DEMAND_AZURE,SPOT_WITH_FALLBACK_AZURE).
Bug Fixes¶
- WorkspaceSetting
getno longer fails on never-written settings. On a fresh workspace, settings that have never been written (e.g.default_namespace) return 404 from the settings API, which Get treated as a fatal error (exit code 2). Get now reports such a setting at its server-side default —_exist: truewith an explicit emptyvalueand noetag— and Set tolerates the missing etag on its pre-read so the first write goes through (updates already sendallow_missing). As part of this,valueis now always present in Get output (empty string when unset) instead of being omitted. - Group
display_nameis no longer schema-required. The handler always accepted eitheridordisplay_nameto identify a group, but the schema markeddisplay_namerequired, so the DSC engine rejected id-only input (e.g.dsc resource getbyid) with aSchema: "display_name" is a required propertyerror before the handler ran.display_nameis now optional (still always emitted in output and still required when creating a group). - Repo lookup by path works again. The Repos list API now serves
canonical
/Workspace/Repos/...paths, so the SDK'sGetByPath(a client-side exact-string match over the full repo list) no longer found repos requested by their legacy/Repos/...path. Get treated existing repos as missing, which made branch-onlysetruns fail withmissing required field(s): url, providerand export report paths that didn't match the requested form. Repo Get now resolves the path server-side (workspaceget-status, which accepts both forms) and fetches the repo by id; Get and Export echo the caller's/tree-walk path form so no spuriouspathdiffs appear. - Repo export no longer uses the deprecated
Repos.ListAll. As of databricks-sdk-go v0.163.0 that method is deprecated because it omits Git-CLI-enabled repos. Export now walks the Workspace API tree, collecting everyREPOobject and enriching it with Git metadata via the Repos API; subtrees the caller cannot list are skipped rather than failing the export.
Dependency Updates¶
- Bumped
github.com/databricks/databricks-sdk-gofrom v0.118.0 to v0.163.0. - Bumped
github.com/LibreDsc/dsc-go-rdkto v0.2.0, which advertises native what-if through awhatIfArgonsetinstead of the deprecated dedicatedwhatIfmanifest method (see PowerShell/DSC#1361; requires DSC v3.2+). Resource handlers are unchanged — only manifest generation and thedsc resource listcapability name (whatIf→setWhatIf) differ. - Added
github.com/LibreDsc/dsc-go-rdkv0.1.0 and promotedgolang.org/x/textto a direct dependency; removedspf13/cobraandspf13/pflag. Go toolchain bumped to 1.26. - E2E test suites migrated to Pester v6 (
Invoke-Pesternow usesNew-PesterConfigurationwith an explicittests/path; CI installs Pester 6.0.1).
Release v0.3.0 (2026-04-04)¶
Notable Changes¶
- Added structured JSON logging framework for resource operations, providing trace, debug, info, and error output to stderr following the DSC v3 logging protocol.
- Added
SqlWarehousePermissionresource for managing permissions on SQL warehouses. Supports granting permissions to users, groups, and service principals with lookup by warehouse ID or name.
Bug Fixes¶
- Wrapped SCIM-based test operation assertions in
Group.Tests.ps1andServicePrincipal.Tests.ps1withSet-ItResult -Inconclusiveto handle inconsistent boolean values returned by the SCIM API.
Release v0.2.0 (2026-03-28)¶
Bug Fixes¶
- Switched release tagging to use a Personal Access Token to ensure downstream release workflows trigger correctly.
Release v0.1.0 (2026-03-28)¶
Notable Changes¶
- Added
Userresource for managing workspace users with entitlements and roles. - Added
AccountUserresource for managing account-level users. - Added
Groupresource with support for member and role assignments. - Added
ServicePrincipalresource for managing service principals and their entitlements. - Added
SecretScoperesource for creating and managing secret scopes. - Added
Secretresource for storing and updating secrets within scopes. - Added
SecretAclresource for controlling secret scope access permissions. - Added
Clusterresource with support for autoscaling, Spark configuration, and custom tags. - Added
ClusterPolicyresource for defining and enforcing cluster creation policies. - Added
SqlWarehouseresource with Photon support and auto-stop configuration. - Added
Catalogresource for managing Unity Catalog catalogs. - Added
Reporesource for managing Git folders in the workspace. - Added
WorkspaceConfresource for managing workspace configuration keys. - Added
WorkspaceSettingresource for managing workspace-level settings. - Implemented
get,set,test,delete, andexportoperations across all resources. - Full support for Databricks unified authentication via environment variables.
- DSC v3 manifest with schema definitions for all 14 resource types.
Dependency Updates¶
- Databricks SDK for Go v0.118.0.