From cb4a6e383d4c91cda648ca358848b764b1b1a48b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Sep 2026 09:23:31 +0000 Subject: [PATCH 1/2] build(deps): bump the databricks-sdk-go group across 1 directory with 4 updates Bumps the databricks-sdk-go group with 4 updates in the / directory: [github.com/databricks/sdk-go/core](https://github.com/databricks/sdk-go), [github.com/databricks/sdk-go/auth](https://github.com/databricks/sdk-go), [github.com/databricks/sdk-go/files](https://github.com/databricks/sdk-go) and [github.com/databricks/sdk-go/options](https://github.com/databricks/sdk-go). Updates `github.com/databricks/sdk-go/core` from 0.0.1-dev.1 to 0.0.1-dev.6 - [Commits](https://github.com/databricks/sdk-go/compare/jobs/v0.0.1-dev.1...jobs/v0.0.1-dev.6) Updates `github.com/databricks/sdk-go/auth` from 0.0.1-dev.1 to 0.0.1-dev.6 - [Commits](https://github.com/databricks/sdk-go/compare/jobs/v0.0.1-dev.1...jobs/v0.0.1-dev.6) Updates `github.com/databricks/sdk-go/files` from 0.0.1-dev.1 to 0.0.1-dev.6 - [Commits](https://github.com/databricks/sdk-go/compare/jobs/v0.0.1-dev.1...jobs/v0.0.1-dev.6) Updates `github.com/databricks/sdk-go/options` from 0.0.1-dev.1 to 0.0.1-dev.6 - [Commits](https://github.com/databricks/sdk-go/compare/jobs/v0.0.1-dev.1...jobs/v0.0.1-dev.6) --- updated-dependencies: - dependency-name: github.com/databricks/sdk-go/auth dependency-version: 0.0.1-dev.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: databricks-sdk-go - dependency-name: github.com/databricks/sdk-go/core dependency-version: 0.0.1-dev.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: databricks-sdk-go - dependency-name: github.com/databricks/sdk-go/files dependency-version: 0.0.1-dev.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: databricks-sdk-go - dependency-name: github.com/databricks/sdk-go/options dependency-version: 0.0.1-dev.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: databricks-sdk-go ... Signed-off-by: dependabot[bot] --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 9632f7a8a64..285121e626e 100644 --- a/go.mod +++ b/go.mod @@ -47,12 +47,12 @@ require ( gopkg.in/ini.v1 v1.67.3 // Apache-2.0 ) -require github.com/databricks/sdk-go/core v0.0.1-dev.1 // Apache-2.0 +require github.com/databricks/sdk-go/core v0.0.1-dev.6 // Apache-2.0 require ( - github.com/databricks/sdk-go/auth v0.0.1-dev.1 // Apache-2.0 - github.com/databricks/sdk-go/files v0.0.1-dev.1 // Apache-2.0 - github.com/databricks/sdk-go/options v0.0.1-dev.1 // Apache-2.0 + github.com/databricks/sdk-go/auth v0.0.1-dev.6 // Apache-2.0 + github.com/databricks/sdk-go/files v0.0.1-dev.6 // Apache-2.0 + github.com/databricks/sdk-go/options v0.0.1-dev.6 // Apache-2.0 ) require ( diff --git a/go.sum b/go.sum index ed98964ebc0..d6545756b77 100644 --- a/go.sum +++ b/go.sum @@ -71,14 +71,14 @@ github.com/danieljoos/wincred v1.2.3 h1:v7dZC2x32Ut3nEfRH+vhoZGvN72+dQ/snVXo/vMF github.com/danieljoos/wincred v1.2.3/go.mod h1:6qqX0WNrS4RzPZ1tnroDzq9kY3fu1KwE7MRLQK4X0bs= github.com/databricks/databricks-sdk-go v0.178.0 h1:OLHhYYTGCZ4iAEUYoARPeeCYFIvAmpLT+L4sxRayqIc= github.com/databricks/databricks-sdk-go v0.178.0/go.mod h1:udBw6nxkaqa0fgPQ7ZW1kGFkltQncYx+qFJeVFmxtz8= -github.com/databricks/sdk-go/auth v0.0.1-dev.1 h1:lMCXzNoqx4zf80DnqJWCy2vShCBO0CZzMn0Dv/5y9l0= -github.com/databricks/sdk-go/auth v0.0.1-dev.1/go.mod h1:4PlaTh0fyJMZwlIagNibt/844szGh1h3VVDuurVmqhw= -github.com/databricks/sdk-go/core v0.0.1-dev.1 h1:8C3AVZiAHawsmt9e3pSEcciOq817ZXpd8sddsodEVac= -github.com/databricks/sdk-go/core v0.0.1-dev.1/go.mod h1:7Ckau34bOsaZhHJE6r7ORNa+/kO33jIs6DfrJL6UbsM= -github.com/databricks/sdk-go/files v0.0.1-dev.1 h1:k9stYespxjI4kWHQkjO73YaZOlC5Ye9WVuaHgcdyugM= -github.com/databricks/sdk-go/files v0.0.1-dev.1/go.mod h1:q8bdz5nOUsajkFEsqy3qa1JTBWk3hy45upBpqzuJs7o= -github.com/databricks/sdk-go/options v0.0.1-dev.1 h1:OKhzRiYvJ4Bxd1aaRXYLyUPtvvY0+hczNMuGZ2Nrx0o= -github.com/databricks/sdk-go/options v0.0.1-dev.1/go.mod h1:hKUy8P3+AWpzbMs3iA0vr85G9ibgICuv/pYqIjgutVQ= +github.com/databricks/sdk-go/auth v0.0.1-dev.6 h1:3lGQRTNans9+OVZwBVE2GGn6TOjRCNAoPGUIOZ5wfog= +github.com/databricks/sdk-go/auth v0.0.1-dev.6/go.mod h1:V6LC87YazB67DmauqOWUcvrNN/lI6N9gdrW6kIrDHI8= +github.com/databricks/sdk-go/core v0.0.1-dev.6 h1:PkXCPoFEEnotmGdfeKAIGD0Cu9POfXEnOkWk/9JCMa0= +github.com/databricks/sdk-go/core v0.0.1-dev.6/go.mod h1:7Ckau34bOsaZhHJE6r7ORNa+/kO33jIs6DfrJL6UbsM= +github.com/databricks/sdk-go/files v0.0.1-dev.6 h1:ltWwsXFPV4/1jk9+jnQdaZ/TlxYkfhxN2rJA6MSRkoM= +github.com/databricks/sdk-go/files v0.0.1-dev.6/go.mod h1:oypvoeiSqyevXiQnmKLgpYR14bz027mKGhIOW4h78kg= +github.com/databricks/sdk-go/options v0.0.1-dev.6 h1:x/7x+TsiP7kaeKqTopYpTCBK1IL5Ew9//OJUUR3EvOI= +github.com/databricks/sdk-go/options v0.0.1-dev.6/go.mod h1:G/EVjlUlnGvmSCZm7J7uWP3s7nLPTqzUjKD+YCg3bXI= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= From b06ac1063b8e406c8d2e2d26a16526b0d4114f81 Mon Sep 17 00:00:00 2001 From: Tejas Kochar Date: Mon, 21 Sep 2026 11:37:14 +0000 Subject: [PATCH 2/2] build(deps): migrate to latest modular sdk-go Update the modular SDK modules to their latest published versions. Adapt Files API requests to value parameters and preserve the CLI's resolved credentials by disabling ambient config sources. Signed-off-by: Tejas Kochar --- go.mod | 8 +++--- go.sum | 16 +++++------ libs/filer/files_client.go | 21 +++++++------- libs/filer/files_client_test.go | 51 +++++++++++++++++++++++++++++++++ 4 files changed, 74 insertions(+), 22 deletions(-) diff --git a/go.mod b/go.mod index 285121e626e..872ed55238e 100644 --- a/go.mod +++ b/go.mod @@ -47,12 +47,12 @@ require ( gopkg.in/ini.v1 v1.67.3 // Apache-2.0 ) -require github.com/databricks/sdk-go/core v0.0.1-dev.6 // Apache-2.0 +require github.com/databricks/sdk-go/core v0.0.1-dev.8 // Apache-2.0 require ( - github.com/databricks/sdk-go/auth v0.0.1-dev.6 // Apache-2.0 - github.com/databricks/sdk-go/files v0.0.1-dev.6 // Apache-2.0 - github.com/databricks/sdk-go/options v0.0.1-dev.6 // Apache-2.0 + github.com/databricks/sdk-go/auth v0.0.1-dev.8 // Apache-2.0 + github.com/databricks/sdk-go/files v0.0.1-dev.9 // Apache-2.0 + github.com/databricks/sdk-go/options v0.0.1-dev.8 // Apache-2.0 ) require ( diff --git a/go.sum b/go.sum index d6545756b77..0996ea26af6 100644 --- a/go.sum +++ b/go.sum @@ -71,14 +71,14 @@ github.com/danieljoos/wincred v1.2.3 h1:v7dZC2x32Ut3nEfRH+vhoZGvN72+dQ/snVXo/vMF github.com/danieljoos/wincred v1.2.3/go.mod h1:6qqX0WNrS4RzPZ1tnroDzq9kY3fu1KwE7MRLQK4X0bs= github.com/databricks/databricks-sdk-go v0.178.0 h1:OLHhYYTGCZ4iAEUYoARPeeCYFIvAmpLT+L4sxRayqIc= github.com/databricks/databricks-sdk-go v0.178.0/go.mod h1:udBw6nxkaqa0fgPQ7ZW1kGFkltQncYx+qFJeVFmxtz8= -github.com/databricks/sdk-go/auth v0.0.1-dev.6 h1:3lGQRTNans9+OVZwBVE2GGn6TOjRCNAoPGUIOZ5wfog= -github.com/databricks/sdk-go/auth v0.0.1-dev.6/go.mod h1:V6LC87YazB67DmauqOWUcvrNN/lI6N9gdrW6kIrDHI8= -github.com/databricks/sdk-go/core v0.0.1-dev.6 h1:PkXCPoFEEnotmGdfeKAIGD0Cu9POfXEnOkWk/9JCMa0= -github.com/databricks/sdk-go/core v0.0.1-dev.6/go.mod h1:7Ckau34bOsaZhHJE6r7ORNa+/kO33jIs6DfrJL6UbsM= -github.com/databricks/sdk-go/files v0.0.1-dev.6 h1:ltWwsXFPV4/1jk9+jnQdaZ/TlxYkfhxN2rJA6MSRkoM= -github.com/databricks/sdk-go/files v0.0.1-dev.6/go.mod h1:oypvoeiSqyevXiQnmKLgpYR14bz027mKGhIOW4h78kg= -github.com/databricks/sdk-go/options v0.0.1-dev.6 h1:x/7x+TsiP7kaeKqTopYpTCBK1IL5Ew9//OJUUR3EvOI= -github.com/databricks/sdk-go/options v0.0.1-dev.6/go.mod h1:G/EVjlUlnGvmSCZm7J7uWP3s7nLPTqzUjKD+YCg3bXI= +github.com/databricks/sdk-go/auth v0.0.1-dev.8 h1:iMOsshXRZvOrOUVZdcAc4MWQ64mqcenf9Nl803OA8Lc= +github.com/databricks/sdk-go/auth v0.0.1-dev.8/go.mod h1:YliptECFkvwuHLoHiKRqo9Drx5RVM9u5J40UDmEq0iQ= +github.com/databricks/sdk-go/core v0.0.1-dev.8 h1:xUjpesiEAFvFtrMlV16+20Wx65VoE/ptr5KTFRFrFwQ= +github.com/databricks/sdk-go/core v0.0.1-dev.8/go.mod h1:7Ckau34bOsaZhHJE6r7ORNa+/kO33jIs6DfrJL6UbsM= +github.com/databricks/sdk-go/files v0.0.1-dev.9 h1:G8F4/uE1akngntl70jjZ/HEuWYZaOZ0E78awI6M+Gpg= +github.com/databricks/sdk-go/files v0.0.1-dev.9/go.mod h1:5pMBqpem7JO7sfwAhqdidVJsaw/TQZY2j8ZCNTnBcJ8= +github.com/databricks/sdk-go/options v0.0.1-dev.8 h1:3DSZGzO3Lt8UrMe2aMrCrVwRWSAf+HDnvdkE3I6stm0= +github.com/databricks/sdk-go/options v0.0.1-dev.8/go.mod h1:c74TPXhjRn3Zitpc9/brPEdvKS7lLURtlWjVOw4m2k4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= diff --git a/libs/filer/files_client.go b/libs/filer/files_client.go index bf349b6cb26..e079d975d93 100644 --- a/libs/filer/files_client.go +++ b/libs/filer/files_client.go @@ -193,7 +193,8 @@ func newFilesAPIClient(ctx context.Context, cfg *config.Config) (*files.Client, copts := []client.Option{ client.WithHost(cfg.Host), client.WithCredentials(configCredentials{cfg: cfg}), - client.WithoutProfileResolution(), + client.WithoutConfigFile(), + client.WithoutEnv(), } // The workspace routing header is needed on unified ("SPOG") hosts; the CLI's // "none" sentinel means "no workspace ID", so it is not forwarded. @@ -212,7 +213,7 @@ func (w *FilesClient) Write(ctx context.Context, name string, reader io.Reader, // Check that target path exists if CreateParentDirectories mode is not set if !slices.Contains(mode, CreateParentDirectories) { dir := path.Dir(absPath) - _, err := w.client.GetDirectoryMetadata(ctx, &files.GetDirectoryMetadataRequest{DirectoryPath: &dir}) + _, err := w.client.GetDirectoryMetadata(ctx, files.GetDirectoryMetadataRequest{DirectoryPath: &dir}) if err != nil { // This API returns a 404 if the directory doesn't exist. if httpStatus(err) == http.StatusNotFound { @@ -246,7 +247,7 @@ func (w *FilesClient) Write(ctx context.Context, name string, reader io.Reader, return mapUploadError(uerr, absPath) } - _, err = w.client.UploadFile(ctx, &files.UploadFileRequest{ + _, err = w.client.UploadFile(ctx, files.UploadFileRequest{ FilePath: &absPath, Contents: io.NopCloser(reader), Overwrite: &overwrite, @@ -294,7 +295,7 @@ func (w *FilesClient) Read(ctx context.Context, name string) (io.ReadCloser, err return nil, err } - resp, err := w.client.DownloadFile(ctx, &files.DownloadFileRequest{FilePath: &absPath}) + resp, err := w.client.DownloadFile(ctx, files.DownloadFileRequest{FilePath: &absPath}) // Return early on success. if err == nil { @@ -326,7 +327,7 @@ func (w *FilesClient) deleteFile(ctx context.Context, name string) error { return cannotDeleteRootError{} } - _, err = w.client.DeleteFile(ctx, &files.DeleteFileRequest{FilePath: &absPath}) + _, err = w.client.DeleteFile(ctx, files.DeleteFileRequest{FilePath: &absPath}) // Return early on success. if err == nil { @@ -352,7 +353,7 @@ func (w *FilesClient) deleteDirectory(ctx context.Context, name string) error { return cannotDeleteRootError{} } - _, err = w.client.DeleteDirectory(ctx, &files.DeleteDirectoryRequest{DirectoryPath: &absPath}) + _, err = w.client.DeleteDirectory(ctx, files.DeleteDirectoryRequest{DirectoryPath: &absPath}) // Return early on success. if err == nil { @@ -474,7 +475,7 @@ func (w *FilesClient) ReadDir(ctx context.Context, name string) ([]fs.DirEntry, } var entries []fs.DirEntry - for entry, err := range w.client.ListDirectoryContentsIter(ctx, &files.ListDirectoryContentsRequest{ + for entry, err := range w.client.ListDirectoryContentsIter(ctx, files.ListDirectoryContentsRequest{ DirectoryPath: &absPath, }) { if err != nil { @@ -512,7 +513,7 @@ func (w *FilesClient) Mkdir(ctx context.Context, name string) error { return err } - _, err = w.client.CreateDirectory(ctx, &files.CreateDirectoryRequest{DirectoryPath: &absPath}) + _, err = w.client.CreateDirectory(ctx, files.CreateDirectoryRequest{DirectoryPath: &absPath}) // This API returns a 409 when a file already exists at the path (the create // is not idempotent over a file). @@ -530,7 +531,7 @@ func (w *FilesClient) statFile(ctx context.Context, name string) (fs.FileInfo, e return nil, err } - resp, err := w.client.GetFileMetadata(ctx, &files.GetFileMetadataRequest{FilePath: &absPath}) + resp, err := w.client.GetFileMetadata(ctx, files.GetFileMetadataRequest{FilePath: &absPath}) // If the HEAD requests succeeds, the file exists. if err == nil { @@ -556,7 +557,7 @@ func (w *FilesClient) statDir(ctx context.Context, name string) (fs.FileInfo, er return nil, err } - _, err = w.client.GetDirectoryMetadata(ctx, &files.GetDirectoryMetadataRequest{DirectoryPath: &absPath}) + _, err = w.client.GetDirectoryMetadata(ctx, files.GetDirectoryMetadataRequest{DirectoryPath: &absPath}) // If the HEAD requests succeeds, the directory exists. if err == nil { diff --git a/libs/filer/files_client_test.go b/libs/filer/files_client_test.go index acc9a206d39..18a68a4d896 100644 --- a/libs/filer/files_client_test.go +++ b/libs/filer/files_client_test.go @@ -6,8 +6,11 @@ import ( "fmt" "io" "io/fs" + "os" + "path/filepath" "testing" + cliauth "github.com/databricks/cli/libs/auth" "github.com/databricks/cli/libs/env" "github.com/databricks/cli/libs/testserver" "github.com/databricks/databricks-sdk-go" @@ -16,6 +19,54 @@ import ( "github.com/stretchr/testify/require" ) +func TestNewFilesAPIClientDoesNotResolveAmbientConfig(t *testing.T) { + server := testserver.New(t) + server.Handle("HEAD", "/api/2.0/fs/files/{path...}", func(req testserver.Request) any { + assert.Equal(t, "Bearer resolved-token", req.Headers.Get("Authorization")) + assert.Empty(t, req.Headers.Get(cliauth.WorkspaceIDHeader)) + return "" + }) + + workspaceClient, err := databricks.NewWorkspaceClient(&databricks.Config{ + Host: server.URL, + Token: "resolved-token", + WorkspaceID: cliauth.WorkspaceIDNone, + }) + require.NoError(t, err) + + configFile := filepath.Join(t.TempDir(), ".databrickscfg") + require.NoError(t, os.WriteFile(configFile, []byte(` +[DEFAULT] +host = https://ambient.test +token = ambient-token +workspace_id = ambient-profile-workspace +`), 0o600)) + + testCases := []struct { + name string + configFile string + workspaceID string + }{ + {name: "config file", configFile: configFile}, + {name: "environment", workspaceID: "ambient-env-workspace"}, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + t.Setenv("DATABRICKS_CONFIG_FILE", tc.configFile) + t.Setenv("DATABRICKS_CONFIG_PROFILE", "") + t.Setenv("DATABRICKS_WORKSPACE_ID", tc.workspaceID) + + client, err := newFilesAPIClient(t.Context(), workspaceClient.Config) + require.NoError(t, err) + + filePath := "/Volumes/main/schema/volume/file" + _, err = client.GetFileMetadata(t.Context(), files.GetFileMetadataRequest{FilePath: &filePath}) + require.NoError(t, err) + }) + } +} + func deleteDirectoryWithError(t *testing.T, statusCode int, errorCode, reason string) error { t.Helper()