Bump Terraform provider to v1.115.0#5238
Conversation
## Why Keep the CLI's Terraform schema in sync with the latest provider release ([v1.115.0](https://github.com/databricks/terraform-provider-databricks/releases/tag/v1.115.0), published 2026-05-11). ## Changes Bumps the provider version from 1.113.0 to 1.115.0 and regenerates the Go schema types using `go run .` in `bundle/internal/tf/codegen`. Also fixes `openpgp: key expired` from hc-install's embedded HashiCorp pubkey on the codegen path: the refreshed key block is now passed via `releases.ExactVersion.ArmoredPublicKey`, mirroring the runtime install fix in PR #5021. Required to run codegen at all on current toolchains. New resources (added in v1.114.0, still present in v1.115.0): - `databricks_disaster_recovery_failover_group` - `databricks_disaster_recovery_stable_url` - `databricks_secret_uc` - `databricks_supervisor_agent` - `databricks_supervisor_agent_tool` New data sources for each of the above (singular and plural). Acceptance test outputs that capture the provider user-agent string or terraform state shape were regenerated: - `bundle/user_agent`, `bundle/state/state_present` - `bundle/migrate/{basic,dashboards,default-python,grants,permissions,runas}` - `bundle/resources/jobs/update` - `bundle/resources/postgres_projects/update_display_name` - `bundle/deployment/bind/{dashboard/recreation,pipelines/recreate,pipelines/update}` The schema-driven changes are: a populated `provider_config.workspace_id` on jobs and pipelines, and `update_mask: initial_endpoint_spec,spec` on postgres project PATCH requests. ## Test plan - [x] `./task checks` passes - [x] `go build ./...` passes - [x] Affected acceptance tests regenerated locally - [ ] CI passes on the PR Co-authored-by: Isaac
Approval status: pending
|
simonfaltum
left a comment
There was a problem hiding this comment.
Most of this PR is mechanical: a version.go bump and the regenerated bundle/internal/tf/schema/*.go files. Four things are not routine and worth a closer look — flagged inline below.
- Embedded HashiCorp pubkey (new file
bundle/internal/tf/codegen/schema/pubkey.go) — required to make codegen run at all on current toolchains. provider_config.workspace_idnow populated on many state fixtures — schema-driven, not a CLI behavior change.- Postgres
update_maskgainedinitial_endpoint_specon PATCH requests — schema-driven, may want backend confirmation. - Version jump skips v1.114.x entirely (1.113.0 → 1.115.0). Three patch releases plus v1.115.0 shipped since the previous bump on 2026-04-16.
| // Source: https://github.com/hashicorp/hc-install/blob/main/internal/pubkey/pubkey.go | ||
| // | ||
| // (second -----BEGIN PGP PUBLIC KEY BLOCK----- block, added in PR #355) | ||
| const hashicorpPublicKey = `-----BEGIN PGP PUBLIC KEY BLOCK----- |
There was a problem hiding this comment.
Please double-check this file. New embedded HashiCorp pubkey, needed because the key block bundled in hc-install v0.9.4 has a UserID self-signature that expired on 2026-04-18 — codegen otherwise fails with openpgp: key expired (releases.hashicorp.com/...SHA256SUMS.72D7468F.sig).
The armored block here was copied verbatim from hc-install#355 (the second -----BEGIN PGP PUBLIC KEY BLOCK----- block, refreshed 2026-02-19, expiration extended ~2035). We can't just rely on the upstream fix because go-crypto v1 only reads the first armored block and keeps one SelfSignature per Identity, so the refreshed second block is a no-op when read via the bundled pubkey.Read.
This duplicates the same key that lives in bundle/deploy/terraform/install.go (added in #5021 for the runtime install path). The codegen module has its own go.mod, so we can't import the runtime copy. Worth confirming you're OK with the duplication — alternative is to factor the key into a shared module, but that's a bigger refactor.
Reviewer checklist:
- Source link points to the right upstream block.
- Key fingerprint matches
34365D9472D7468F(HashiCorp Security). - The duplication vs.
bundle/deploy/terraform/install.gois acceptable.
| Product: product.Terraform, | ||
| Version: version.Must(version.NewVersion("1.5.5")), | ||
| InstallDir: installDir, | ||
| ArmoredPublicKey: hashicorpPublicKey, |
There was a problem hiding this comment.
This is the line that actually wires in the refreshed key from pubkey.go. Without ArmoredPublicKey set, releases.ExactVersion falls back to the (now-expired) key embedded inside hc-install — see comment on pubkey.go for the full story.
| "provider_config": [], | ||
| "provider_config": [ | ||
| { | ||
| "workspace_id": "[NUMID]" |
There was a problem hiding this comment.
Schema-driven change from v1.115 (technically already in v1.114): provider_config is no longer an empty list for jobs and pipelines — it now contains { workspace_id: ... }. Appears across many state fixtures in this PR (all acceptance/bundle/migrate/* state files, bundle/resources/jobs/update/out.state.terraform.json, and the deployment/bind/* outputs).
Not a CLI behavior change; the provider is just emitting the field now. Flagging so you don't have to chase down where it came from.
| "path": "/api/2.0/postgres/[MY_PROJECT_ID]", | ||
| "q": { | ||
| "update_mask": "spec" | ||
| "update_mask": "initial_endpoint_spec,spec" |
There was a problem hiding this comment.
Schema-driven change: v1.115 sends update_mask: "initial_endpoint_spec,spec" for databricks_postgres_project PATCH instead of just "spec". New provider behavior — worth confirming the backend accepts the expanded mask on a display_name-only update (this test only changes the display name; initial_endpoint_spec is unchanged but now included in the mask).
|
|
||
| type DataSourceAlertV2ProviderConfig struct { | ||
| WorkspaceId string `json:"workspace_id"` | ||
| WorkspaceId string `json:"workspace_id,omitempty"` |
There was a problem hiding this comment.
In Terraform, provider_config and workspace_id are made as optional+computed so every workspace resource in terraform will now have this set in the state.
I don't have context on the dabs side, does something similar need to happen here?
Would users see this diff when deploying bundles?
How are schemas/diff which are customized in terraform get translated in dabs?
Also does something needs to be done for direct mode?
Why
Keep the CLI's Terraform schema in sync with the latest provider release
(v1.115.0, published 2026-05-11).
Changes
Bumps the provider version from 1.113.0 to 1.115.0 and regenerates the
Go schema types using
go run .inbundle/internal/tf/codegen.Also fixes
openpgp: key expiredfrom hc-install's embedded HashiCorppubkey on the codegen path: the refreshed key block is now passed via
releases.ExactVersion.ArmoredPublicKey, mirroring the runtime installfix in #5021. Required to run codegen at all on current toolchains.
New resources (added in v1.114.0, still present in v1.115.0):
databricks_disaster_recovery_failover_groupdatabricks_disaster_recovery_stable_urldatabricks_secret_ucdatabricks_supervisor_agentdatabricks_supervisor_agent_toolNew data sources for each of the above (singular and plural).
Acceptance test outputs that capture the provider user-agent string or
terraform state shape were regenerated:
bundle/user_agent,bundle/state/state_presentbundle/migrate/{basic,dashboards,default-python,grants,permissions,runas}bundle/resources/jobs/updatebundle/resources/postgres_projects/update_display_namebundle/deployment/bind/{dashboard/recreation,pipelines/recreate,pipelines/update}The schema-driven changes are: a populated
provider_config.workspace_idon jobs and pipelines, and
update_mask: initial_endpoint_spec,speconpostgres project PATCH requests.
Test plan
./task checkspassesgo build ./...passes