Repository navigation
Conversation
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
…oscale Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
…p sdk-go error prefix Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
…lete; drop unsafe field masks Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
…peline fixtures Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
…ames; fixture fixes Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Collaborator
Integration test reportCommit: 0f4d975
Top 42 slowest tests (at least 2 minutes):
|
Unused helpers left over from porting retries, dbfs and sqllegacy from the previous SDK. Co-authored-by: Isaac <no-reply@databricks.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
Migrate the CLI from
github.com/databricks/databricks-sdk-goto the newgithub.com/databricks/sdk-go(one module per service, e.g.github.com/databricks/sdk-go/jobs/v2).The old SDK is still used for authentication and profile resolution only (
config,credentials/u2m,useragent,httplog); sdk-go itself depends on it for U2M. Every API call goes through sdk-go clients or, where sdk-go has no client, through a small hand-written REST layer.Building blocks
libs/sdktypes/<module>/<vN>(generated byinternal/sdktypesgen,./task generate-sdktypes): JSON-tagged mirrors of the sdk-go model types. They are derived from sdk-go's unexportedwire.go, with flattened oneofs, re-exported enums and generated<T>ToSDK/<T>FromSDKconverters. sdk-go model types have no JSON tags and protobuf-style oneofs, so everything that is serialized uses the mirrors: bundle config, direct engine state,--jsonflags, output rendering and the test server. Fields are ordered by JSON name, like the previous SDK, so output order is unchanged.libs/sdkclients:*sdkclients.Clientsreplaces both*databricks.WorkspaceClientand*databricks.AccountClient. It has one field per sdk-go module and is built from the CLI's resolvedconfig.Config.libs/apiclient: the shared HTTP transport and raw REST client. It keeps the previous SDK's behaviour where sdk-go differs:Retry-After.DATABRICKS_BUNDLE_HTTP_TIMEOUT_SECONDS).libs/apierrs: error classification with the previous SDK's semantics (Is(err, ErrNotFound),ErrorCode, the missing-object reclassification). It also strips sdk-go'sdatabricks-api error:prefix from user-visible messages.libs/workspaceapi,libs/bundledeployments,libs/qualitymonitors,libs/sqllegacy.internal/cligen: retargeted to sdk-go.cmd/workspaceandcmd/accountare regenerated; 192 cli.json methods without an sdk-go equivalent calllibs/apiclientdirectly.bundle/config/resourcesandbundle/direct: rewritten on top of the mirror types.bundle/internal/sdkmeta: keeps the bundle JSON schema keyed by the old type names, so the Python classes do not change.ForceSendFields removed
sdk-go expresses "set to zero" with pointers, so all ForceSendFields support is gone (libs/structs, libs/dyn/convert, marshal wrappers). Two changes preserve the old zero-value behaviour:
parent_path: "") survives typed round trips.DropEmptyStringskeeps empty strings on required fields.Behaviour changes and known gaps
request_object_type/request_object_id,name,full_name_arg,dashboard_id,pipeline_idandsecurable_*. Recorded requests in acceptance tests change accordingly. Recorded bodies are now written with sorted keys, so key-order noise is gone.autoscaleandnum_workersnow get a warning, andnum_workersis dropped. Other conflicts, such as two task types in one task or app envvaluetogether withvalue_from, are reported asonly one of X, Y can be set.FieldMaskrejects oneof group names (spec.expiration,spec.suspension) that the Postgres API requires inupdate_mask. Bundle deploy sends those updates throughlibs/apiclient.databricks postgres update-{branch,endpoint,project}cannot use group names; usedatabricks api patchinstead.workload_type.init_scriptsandcluster_log_confdestinations other than dbfs/s3.--purposeflag oncredentialscommands.--page-sizeonquality-monitor-v2 list-quality-monitor.clusters list --sort-by.etag.--read-maskon agent-kit memory commands.workspace-conf get-status --keys.users,groups,service-principals) are thin wrappers over the v2 commands. They gain--limit.run_job_task:with no value) can't be represented, so the "required field job_id" warning for that case is gone.bundle plan -o jsonno longer prints zero-valued remote fields such as"remote": ""orembed_credentials: false.failed during request visitor:prefix.Tests
go test ./...).pipeline_id).sequence_iddecoding.This pull request and its description were written by Isaac.