Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
255 commits
Select commit Hold shift + click to select a range
559f447
Chore #5: Adapt bundled gitops subagent to this UCM fork
micheledaddetta-databricks Apr 20, 2026
e040602
Feat #8: Add StateFiler interface with workspace-files impl
micheledaddetta-databricks Apr 20, 2026
12d3987
Feat #7: Mirror bundle.engine as ucm.engine + DATABRICKS_UCM_ENGINE
micheledaddetta-databricks Apr 20, 2026
b533192
Feat #9: Fork bundle/deploy/lock into ucm/deploy/lock
micheledaddetta-databricks Apr 20, 2026
1f99eaf
Feat #10: Add tfdyn converter registry + Catalog/Schema/Grant converters
micheledaddetta-databricks Apr 20, 2026
d86d714
Merge remote-tracking branch 'origin/feat/8-state-filer' into ci/wave…
micheledaddetta-databricks Apr 20, 2026
3a13e40
Merge remote-tracking branch 'origin/feat/9-lock-fork' into ci/wave1-…
micheledaddetta-databricks Apr 20, 2026
ae2ace6
Merge remote-tracking branch 'origin/feat/10-tfdyn-converters' into c…
micheledaddetta-databricks Apr 20, 2026
f5e2808
Merge U0 (feat/7-engine-mirror) with union resolution for utils.go an…
micheledaddetta-databricks Apr 20, 2026
a317fa0
Feat #16: Add state pull/push with lock + StateFiler
micheledaddetta-databricks Apr 20, 2026
cce5c20
Feat #17: Terraform binary wrapper (init/render/plan/apply/destroy)
micheledaddetta-databricks Apr 20, 2026
2a28bb8
Merge remote-tracking branch 'origin/feat/16-state-pull-push' into ci…
micheledaddetta-databricks Apr 20, 2026
76aae10
Merge remote-tracking branch 'origin/feat/17-terraform-wrapper' into …
micheledaddetta-databricks Apr 20, 2026
02fcd03
Feat #20: Wire phase orchestration for M1
micheledaddetta-databricks Apr 20, 2026
5e563f4
Merge remote-tracking branch 'origin/feat/20-phase-orchestration' int…
micheledaddetta-databricks Apr 20, 2026
0e7c037
Feat #22: Wire M1 verbs (plan/deploy/destroy/summary/policy-check)
micheledaddetta-databricks Apr 20, 2026
c153a72
Merge remote-tracking branch 'origin/feat/22-verb-wiring' into ci/wav…
micheledaddetta-databricks Apr 20, 2026
8904e10
Test #23: Add end-to-end smoke fixture + wire runtime auth for M1 verbs
micheledaddetta-databricks Apr 20, 2026
cc5d59b
Merge remote-tracking branch 'origin/test/23-smoke-fixture' into ci/m…
micheledaddetta-databricks Apr 20, 2026
1e40bca
Merge pull request #4 from micheledaddetta-databricks/feat/3-validate…
micheledaddetta-databricks Apr 21, 2026
ad4a4c0
Merge pull request #11 from micheledaddetta-databricks/feat/8-state-f…
micheledaddetta-databricks Apr 21, 2026
85701c5
Merge pull request #13 from micheledaddetta-databricks/feat/9-lock-fork
micheledaddetta-databricks Apr 21, 2026
aef2020
Merge pull request #14 from micheledaddetta-databricks/feat/10-tfdyn-…
micheledaddetta-databricks Apr 21, 2026
2c63936
Merge pull request #21 from micheledaddetta-databricks/feat/20-phase-…
micheledaddetta-databricks Apr 21, 2026
62b5c05
Merge pull request #24 from micheledaddetta-databricks/feat/22-verb-w…
micheledaddetta-databricks Apr 21, 2026
a5d3c79
Merge pull request #25 from micheledaddetta-databricks/test/23-smoke-…
micheledaddetta-databricks Apr 21, 2026
406ef45
Merge branch 'main' into feat/7-engine-mirror
micheledaddetta-databricks Apr 21, 2026
feb7370
Merge pull request #29 from micheledaddetta-databricks/feat/7-engine-…
micheledaddetta-databricks Apr 21, 2026
e716465
Fix #30: Restore ProcessUcm and Ucm.Target dropped during PR #29 merge
micheledaddetta-databricks Apr 21, 2026
5c26b64
Merge pull request #31 from micheledaddetta-databricks/fix/28-restore…
micheledaddetta-databricks Apr 21, 2026
92b6db6
Merge remote-tracking branch 'origin/main' into ci/m1-integration
micheledaddetta-databricks Apr 21, 2026
c158cd8
Merge pull request #32 from micheledaddetta-databricks/ci/m1-integration
micheledaddetta-databricks Apr 21, 2026
6ab5411
Merge pull request #33 from micheledaddetta-databricks/ci/wave4a-inte…
micheledaddetta-databricks Apr 21, 2026
c169b7f
Merge pull request #34 from micheledaddetta-databricks/ci/wave2-integ…
micheledaddetta-databricks Apr 21, 2026
e4423d7
Merge pull request #35 from micheledaddetta-databricks/ci/wave3-integ…
micheledaddetta-databricks Apr 21, 2026
cfd3770
Fix #41: Swap PersistentPreRunE→PreRunE to preserve root cmdio setup
micheledaddetta-databricks Apr 21, 2026
ccc0fa4
Merge pull request #43 from micheledaddetta-databricks/fix/41-cmdio-p…
micheledaddetta-databricks Apr 21, 2026
70e75a9
Fix #44: Vendor refreshed HashiCorp public key for terraform installer
micheledaddetta-databricks Apr 21, 2026
5dfc944
Fix #45: Resolve workspace client from ucm.yml workspace.host
micheledaddetta-databricks Apr 21, 2026
06be023
Merge pull request #47 from micheledaddetta-databricks/fix/45-ucm-aut…
micheledaddetta-databricks Apr 21, 2026
a93b398
Merge pull request #46 from micheledaddetta-databricks/fix/44-terrafo…
micheledaddetta-databricks Apr 21, 2026
d648c27
Feat: Align ucm plan output with bundle plan (terraform engine)
micheledaddetta-databricks Apr 21, 2026
3831e74
Feat: Implement ucm direct engine for catalogs/schemas/grants
micheledaddetta-databricks Apr 21, 2026
48dc42a
Feat: Add ucm plan acceptance fixtures (happy/no_changes/json)
micheledaddetta-databricks Apr 21, 2026
1430899
Feat #50: Materialize resolved SDK auth into terraform subprocess env
micheledaddetta-databricks Apr 22, 2026
f941d8c
Feat #49: Add StorageCredential resource struct
micheledaddetta-databricks Apr 22, 2026
d795bfe
Feat #49: Register StorageCredentials on config.Resources
micheledaddetta-databricks Apr 22, 2026
fdac791
Feat #49: Add ResolveResourceReferences mutator
micheledaddetta-databricks Apr 22, 2026
2958df5
Feat #49: Wire ResolveResourceReferences into direct-engine path
micheledaddetta-databricks Apr 22, 2026
6d5d4b8
Feat #49: Add terraform.Interpolate for ucm-path -> tf-path rewrite
micheledaddetta-databricks Apr 22, 2026
79d10b6
Feat #49: Invoke Interpolate before jsonsaver in Render
micheledaddetta-databricks Apr 22, 2026
db6a149
Feat #49: Add storage_credential TF converter
micheledaddetta-databricks Apr 22, 2026
1eacbaf
Feat #49: Add storage_credential state+client surface
micheledaddetta-databricks Apr 22, 2026
8f4a90b
Feat #49: Plan storage_credential Create/Update/Skip/Delete
micheledaddetta-databricks Apr 22, 2026
b7b94c9
Feat #49: Apply storage_credential CUD + destroy ordering
micheledaddetta-databricks Apr 22, 2026
cef5b87
Feat #49: Extend phases fakeDirectClient for storage_credential
micheledaddetta-databricks Apr 22, 2026
d6634d5
Feat #49: Add storage_credential acceptance fixture
micheledaddetta-databricks Apr 22, 2026
6cf4f04
Merge pull request #51 from micheledaddetta-databricks/feat/align-pla…
micheledaddetta-databricks Apr 22, 2026
9d8f780
Merge pull request #52 from micheledaddetta-databricks/feat/49-ucm-st…
micheledaddetta-databricks Apr 22, 2026
4f865c0
Docs #53: Add ucm resources reference page
micheledaddetta-databricks Apr 22, 2026
53788f7
Merge pull request #54 from micheledaddetta-databricks/docs/53-resour…
micheledaddetta-databricks Apr 22, 2026
d3746b5
Fix #55: Include storage_credential in ucm plan summary
micheledaddetta-databricks Apr 22, 2026
aa3e463
Merge pull request #56 from micheledaddetta-databricks/fix/55-ucm-sho…
micheledaddetta-databricks Apr 22, 2026
542aa82
Fix #57: Align ucm tfstate path with where terraform actually writes
micheledaddetta-databricks Apr 22, 2026
a82c504
Feat #59: Add ExternalLocation resource struct and register on config…
micheledaddetta-databricks Apr 22, 2026
b41ea2a
Feat #59: Add external_location TF converter and registrations
micheledaddetta-databricks Apr 22, 2026
0da2024
Feat #59: Add external_location state + client interface
micheledaddetta-databricks Apr 22, 2026
249c761
Feat #59: Plan external_locations in direct engine
micheledaddetta-databricks Apr 22, 2026
adb5816
Feat #59: Apply + Destroy for external_locations
micheledaddetta-databricks Apr 22, 2026
dbf010f
Feat #59: Extend fakeDirectClient with external_location no-ops
micheledaddetta-databricks Apr 22, 2026
0478ea5
Feat #59: Add external_location acceptance fixture
micheledaddetta-databricks Apr 22, 2026
72d38c2
Feat #59: Add Volume and Connection resource structs
micheledaddetta-databricks Apr 22, 2026
cfe3eea
Feat #59: Add volume and connection TF converters + registrations
micheledaddetta-databricks Apr 22, 2026
78f67c0
Feat #59: Volume state + client scaffold for direct engine
micheledaddetta-databricks Apr 22, 2026
a02af1c
Feat #59: Volume plan + apply wiring for direct engine
micheledaddetta-databricks Apr 22, 2026
87ad35d
Feat #59: Connection state + client scaffold for direct engine
micheledaddetta-databricks Apr 22, 2026
06f5474
Feat #59: Connection plan + apply wiring for direct engine
micheledaddetta-databricks Apr 22, 2026
4a02ba9
Feat #59: Add volume and connection acceptance fixtures
micheledaddetta-databricks Apr 22, 2026
49cd9aa
Merge pull request #58 from micheledaddetta-databricks/fix/57-ucm-tfs…
micheledaddetta-databricks Apr 22, 2026
178b54b
Fix #64: Drop trailing newline from ucm schema output
micheledaddetta-databricks Apr 22, 2026
7861d36
Fix #64: Reshape ucm summary output to match bundle summary
micheledaddetta-databricks Apr 22, 2026
b892b7d
Merge pull request #63 from micheledaddetta-databricks/feat/phase-a-r…
micheledaddetta-databricks Apr 22, 2026
ba7d3cd
Fix #64: Add --output json to ucm validate
micheledaddetta-databricks Apr 22, 2026
6d5fb00
Fix #64: Add --force-lock to plan/deploy/destroy
micheledaddetta-databricks Apr 22, 2026
701d803
Docs #48: Update resources.md for Phase A + verb flags
micheledaddetta-databricks Apr 22, 2026
fb7334f
Feat #67: Implement ucm debug (terraform, states)
micheledaddetta-databricks Apr 22, 2026
9abb97c
Feat #68: Implement ucm deployment bind/unbind
micheledaddetta-databricks Apr 22, 2026
16e9ad5
Feat #69: Implement ucm import for catalogs/schemas/credentials/ext-l…
micheledaddetta-databricks Apr 22, 2026
5b9e749
Feat #39: Add ucm raw-config validator pack (required fields, naming,…
micheledaddetta-databricks Apr 22, 2026
19735c8
Feat #38: Add ucm include: directive with glob expansion
micheledaddetta-databricks Apr 22, 2026
4e48ded
Feat: Implement ucm diff (git-aware stack-change detection)
micheledaddetta-databricks Apr 22, 2026
fc78ccd
Feat #40: Add ucm post-interpolation validator pack (reference closure)
micheledaddetta-databricks Apr 22, 2026
6391c42
Feat #37: Add ucm variables subsystem (${var.x}, --var flag, per-targ…
micheledaddetta-databricks Apr 22, 2026
e549bb9
Feat: Implement ucm init with default/brownfield/multienv templates
micheledaddetta-databricks Apr 22, 2026
d57343e
Feat: Implement ucm drift (detect out-of-band changes via SDK read)
micheledaddetta-databricks Apr 22, 2026
6cb7547
Feat: Implement ucm generate (brownfield scan → ucm.yml + seed state)
micheledaddetta-databricks Apr 22, 2026
4540202
Merge branch 'main' into fix/64-ucm-dab-parity
micheledaddetta-databricks Apr 23, 2026
efbe4f6
Merge pull request #65 from micheledaddetta-databricks/fix/64-ucm-dab…
micheledaddetta-databricks Apr 23, 2026
581dbf0
Merge pull request #66 from micheledaddetta-databricks/docs/resources…
micheledaddetta-databricks Apr 23, 2026
8f498fd
Merge pull request #70 from micheledaddetta-databricks/feat/67-ucm-debug
micheledaddetta-databricks Apr 23, 2026
7b6afcf
Merge branch 'main' into feat/68-ucm-deployment-bind
micheledaddetta-databricks Apr 23, 2026
02f4c12
Merge pull request #71 from micheledaddetta-databricks/feat/68-ucm-de…
micheledaddetta-databricks Apr 23, 2026
b219ef3
Merge branch 'main' into feat/69-ucm-import
micheledaddetta-databricks Apr 23, 2026
85866ec
Merge pull request #73 from micheledaddetta-databricks/feat/69-ucm-im…
micheledaddetta-databricks Apr 23, 2026
f127540
Merge pull request #74 from micheledaddetta-databricks/feat/38-ucm-in…
micheledaddetta-databricks Apr 23, 2026
dd18d96
Merge pull request #75 from micheledaddetta-databricks/feat/ucm-diff
micheledaddetta-databricks Apr 23, 2026
14dd6d0
Merge pull request #76 from micheledaddetta-databricks/feat/39-40-ucm…
micheledaddetta-databricks Apr 23, 2026
d315a96
Merge branch 'main' into feat/37-ucm-variables
micheledaddetta-databricks Apr 23, 2026
1dab770
Merge pull request #77 from micheledaddetta-databricks/feat/37-ucm-va…
micheledaddetta-databricks Apr 23, 2026
a000ff4
Merge pull request #78 from micheledaddetta-databricks/feat/ucm-init
micheledaddetta-databricks Apr 23, 2026
c882ba6
Merge branch 'main' into feat/ucm-drift
micheledaddetta-databricks Apr 23, 2026
6e8992c
Merge pull request #79 from micheledaddetta-databricks/feat/ucm-drift
micheledaddetta-databricks Apr 23, 2026
e79bb35
Merge branch 'main' into feat/ucm-generate
micheledaddetta-databricks Apr 23, 2026
3a6a274
Merge pull request #80 from micheledaddetta-databricks/feat/ucm-generate
micheledaddetta-databricks Apr 23, 2026
6a90a24
Fix: Repair post-merge conflict fallout across ucm verb + M2 batch
micheledaddetta-databricks Apr 23, 2026
959d093
Merge pull request #82 from micheledaddetta-databricks/fix/post-merge…
micheledaddetta-databricks Apr 23, 2026
162db1e
feat(ucm): align workspace root + current user handling with bundle
micheledaddetta-databricks Apr 23, 2026
4c629f4
feat(ucm): add context helpers mirroring bundle.Context
micheledaddetta-databricks Apr 23, 2026
00cc954
feat(ucm): add SetDefault and SetDefaultMutator mirroring bundle helpers
micheledaddetta-databricks Apr 23, 2026
c148b41
feat(ucm): port UserFingerprint helper from bundle
micheledaddetta-databricks Apr 23, 2026
f060724
feat(ucm): add read-only mutator parallel runner mirroring bundle
micheledaddetta-databricks Apr 23, 2026
4163131
feat(ucm): record mutator execution time mirroring bundle instrumenta…
micheledaddetta-databricks Apr 23, 2026
214fa19
fix(ucm): honor ctx in mustGetRoot matching bundle.mustGetRoot
micheledaddetta-databricks Apr 23, 2026
a386df1
chore(ucm): apply gofumpt / testifylint / gopls autofixes
micheledaddetta-databricks Apr 23, 2026
254e560
feat(ucm): add DefaultMutators orchestrator matching bundle pattern
micheledaddetta-databricks Apr 23, 2026
3ac6e36
feat(ucm): port multi-mode resolve_variable_references from bundle
micheledaddetta-databricks Apr 23, 2026
3fcba35
feat(ucm): honor .databricks/ucm/<target>/variable-overrides.json
micheledaddetta-databricks Apr 23, 2026
c652202
feat(ucm): port initialize_urls mutator and add URL/InitializeURL to …
micheledaddetta-databricks Apr 23, 2026
45730a0
feat(ucm): port DefineDefaultWorkspacePaths scoped to state_path
micheledaddetta-databricks Apr 23, 2026
934061c
feat(ucm): chain Initialize phase with full workspace+variable+url mu…
micheledaddetta-databricks Apr 23, 2026
dacc2b7
feat(ucm): port destructive-action warning messages from bundle (UC s…
micheledaddetta-databricks Apr 23, 2026
01fbb3d
feat(ucm): add approval flow to Deploy and Destroy phases
micheledaddetta-databricks Apr 23, 2026
a2e36d0
feat(ucm): port pre-deploy validation mutators
micheledaddetta-databricks Apr 23, 2026
853071a
feat(ucm): assert workspace root exists before destroy
micheledaddetta-databricks Apr 23, 2026
5c3e98d
feat(ucm): add Bind/Unbind phase and cobra commands mirroring bundle
micheledaddetta-databricks Apr 23, 2026
e2713c0
feat(ucm): extract StateUpdate from Push for reuse
micheledaddetta-databricks Apr 23, 2026
558615a
feat(ucm): add metadata package for deployment-provenance tracking
micheledaddetta-databricks Apr 23, 2026
e78400d
feat(ucm): add permissions package for pre-deploy capability checks
micheledaddetta-databricks Apr 23, 2026
75f8e84
feat(ucm): extract plan renderer to ucm/render package
micheledaddetta-databricks Apr 23, 2026
aa94b53
feat(ucm): add scripts package for pre/post phase hooks
micheledaddetta-databricks Apr 23, 2026
460ef61
feat(ucm): add terraform remote-drift scaffold (empty allowlist)
micheledaddetta-databricks Apr 23, 2026
64f1c5b
refactor(ucm): align account/user config structs with DAB style
micheledaddetta-databricks Apr 23, 2026
79abf60
refactor(ucm): align reference_closure validator with DAB validator p…
micheledaddetta-databricks Apr 23, 2026
de41df7
refactor(ucm): align phase Options/Result/helpers with DAB style
micheledaddetta-databricks Apr 23, 2026
e62468b
refactor(ucm): relocate validate_tags to ucm/config/validate for rubr…
micheledaddetta-databricks Apr 23, 2026
a53cb44
refactor(ucm): align UCM-only phases with DAB phase pattern
micheledaddetta-databricks Apr 23, 2026
5164729
fix(ucm): assert --auto-approve and --force-lock flags on deploy
micheledaddetta-databricks Apr 23, 2026
fa886e0
feat(ucm): accept hidden --force on ucm plan for DAB parity
micheledaddetta-databricks Apr 23, 2026
513972e
feat(ucm): add --strict to ucm policy-check for flag parity with vali…
micheledaddetta-databricks Apr 23, 2026
e2c6c26
feat(ucm): implement --include-locations via populate_locations mutator
micheledaddetta-databricks Apr 23, 2026
c78c50e
feat(ucm): add --show-full-config to ucm summary
micheledaddetta-databricks Apr 23, 2026
45c6948
feat(ucm): validate resource kind at bind time
micheledaddetta-databricks Apr 23, 2026
d73d040
Merge pull request #84 from micheledaddetta-databricks/feat/83-ucm-da…
micheledaddetta-databricks Apr 24, 2026
18f6325
Fix #85: Gate InitializeURL on ID for DAB parity
micheledaddetta-databricks Apr 24, 2026
e4d97ea
Fix #85: Add ucm/statemgmt package to hydrate resource IDs from tfstate
micheledaddetta-databricks Apr 24, 2026
4cc27b9
Fix #85: Render "(not deployed)" in ucm summary for undeployed resources
micheledaddetta-databricks Apr 24, 2026
527916a
Merge pull request #86 from micheledaddetta-databricks/fix/85-ucm-sum…
micheledaddetta-databricks Apr 24, 2026
2c1d629
Fix #85: Color "(not deployed)" cyan to match DAB rendering
micheledaddetta-databricks Apr 24, 2026
6db0e94
Merge pull request #87 from micheledaddetta-databricks/fix/85-ucm-sum…
micheledaddetta-databricks Apr 24, 2026
16294b5
refactor(ucm): extract localStateDir helper in dir.go
micheledaddetta-databricks Apr 24, 2026
53ea830
feat(ucm): port getEnvVarWithMatchingVersion helper from DAB
micheledaddetta-databricks Apr 24, 2026
6606bf4
feat(ucm): port inheritEnvVars + envCopy from DAB
micheledaddetta-databricks Apr 24, 2026
eb18232
feat(ucm): port setTempDirEnvVars from DAB
micheledaddetta-databricks Apr 24, 2026
befa4d2
feat(ucm): port setProxyEnvVars from DAB
micheledaddetta-databricks Apr 24, 2026
2375a3d
feat(ucm): absolute-ize relative DATABRICKS_CLI_PATH for terraform
micheledaddetta-databricks Apr 24, 2026
f68eb21
refactor(ucm): rewrite buildEnv to match DAB's env pipeline
micheledaddetta-databricks Apr 24, 2026
e9e513a
docs(ucm): clarify DATABRICKS_CLI_PATH pre-seed comment in buildEnv
micheledaddetta-databricks Apr 24, 2026
d5a3080
Merge pull request #93 from micheledaddetta-databricks/feat/ucm-terra…
micheledaddetta-databricks Apr 24, 2026
a99f894
refactor(ucm): scaffold codegen tools mirroring DAB's bundle setup
micheledaddetta-databricks Apr 24, 2026
36c92ff
refactor(ucm): upgrade deployplan to match bundle/deployplan
micheledaddetta-databricks Apr 27, 2026
aa2d065
refactor(ucm): copy dresources infrastructure from bundle
micheledaddetta-databricks Apr 27, 2026
87475ff
refactor(ucm): add ucm debug refschema command
micheledaddetta-databricks Apr 27, 2026
a1f579d
refactor(ucm): wire generate-ucm-direct Makefile targets and refschem…
micheledaddetta-databricks Apr 27, 2026
700a294
refactor(ucm): bump terraform provider pin from 1.112.0 to 1.113.0
micheledaddetta-databricks Apr 27, 2026
3bdc98d
refactor(ucm): migrate Catalog and Schema to embed SDK request types
micheledaddetta-databricks Apr 27, 2026
c4e1878
refactor(ucm): add Catalog and Schema dresources adapters; register i…
micheledaddetta-databricks Apr 27, 2026
4078cc9
refactor(ucm): migrate Volume, Connection, ExternalLocation, StorageC…
micheledaddetta-databricks Apr 27, 2026
7e0caa7
refactor(ucm): reorder init.go cobra fields to match DAB rubric
micheledaddetta-databricks Apr 27, 2026
14eca48
feat(ucm): port validate_lifecycle_started mutator and wire into PreD…
micheledaddetta-databricks Apr 27, 2026
8f379c4
refactor(ucm): wire StateUpdate into Deploy/Destroy, drop inline Seq …
micheledaddetta-databricks Apr 27, 2026
2b7a3b2
refactor(ucm): replace inline planSummary with render.PlanSummary
micheledaddetta-databricks Apr 27, 2026
0410708
feat(ucm): add UniqueResourceKeys to DefaultMutators chain
micheledaddetta-databricks Apr 27, 2026
480b336
Merge pull request #94 from micheledaddetta-databricks/refactor/ucm-d…
micheledaddetta-databricks Apr 27, 2026
c9b1cff
Feat #96: Add ucm.TryLoad and phases.Load helpers
micheledaddetta-databricks Apr 28, 2026
45c4a26
Merge pull request #97 from micheledaddetta-databricks/feat/96-ucm-tr…
micheledaddetta-databricks Apr 28, 2026
6665265
Refactor #98: Fork initVariableFlag from cmd/bundle/variables.go
micheledaddetta-databricks Apr 28, 2026
0325411
Refactor #98: Fork MustConfigureUcm from cmd/root/bundle.go
micheledaddetta-databricks Apr 28, 2026
681ebc5
Refactor #98: Replace ucm utils/auth.go with 1:1 bundle fork
micheledaddetta-databricks Apr 28, 2026
47dee12
Fix #98: Update auth_test.go to drop redundant logdiag.InitContext
micheledaddetta-databricks Apr 28, 2026
b79437d
Refactor #98: Consolidate auth options into cmd/ucm/utils/auth_option…
micheledaddetta-databricks Apr 28, 2026
9b59cf2
Refactor #98: Strip inline flag registrations and wire forked helpers…
micheledaddetta-databricks Apr 28, 2026
2f92012
Chore #98: Add env/Workspace tests and SetAttrSource TODO
micheledaddetta-databricks Apr 28, 2026
0b5f718
Refactor #98: Fork ProcessUcm + remove PreRunE from verbs
micheledaddetta-databricks Apr 28, 2026
30bf2bd
Fix #98: Replace phases.Initialize with pre-fork mutator chain in Pro…
micheledaddetta-databricks Apr 28, 2026
ace0767
Chore #98: ProcessUcm cleanup (dead helpers, doc comments, prefix con…
micheledaddetta-databricks Apr 28, 2026
345a73c
Chore #98: Replace PreMutateHook seam with TestProcessHook + delete o…
micheledaddetta-databricks Apr 28, 2026
2a57bd5
Refactor #98: Drop --output fallbacks for symmetry with root.OutputType
micheledaddetta-databricks Apr 28, 2026
357d145
Test #98: Migrate cmd/ucm verb tests to bundle-style cobra-root wiring
micheledaddetta-databricks Apr 28, 2026
8bedcab
Test #98: Add cmd/ucm/utils/configure_test.go forked from cmd/root/bu…
micheledaddetta-databricks Apr 28, 2026
d7af1d9
Fix #98: Read workspace client from u in defaultBuildPhaseOptions
micheledaddetta-databricks Apr 28, 2026
a9e1925
Test #98: Restore PersistentPreRunE absence guard for ucm subtree
micheledaddetta-databricks Apr 28, 2026
a3df7ab
Chore #98: Fix stale PreMutateHook comment in process_test.go
micheledaddetta-databricks Apr 28, 2026
7c4358e
Merge pull request #105 from micheledaddetta-databricks/refactor/98-f…
micheledaddetta-databricks Apr 28, 2026
488ffb7
Refactor #106: Fork bundle/render/render_text_output.go to ucm/render
micheledaddetta-databricks Apr 28, 2026
b69f06a
Test #106: Fork render_text_output_test.go from bundle/render
micheledaddetta-databricks Apr 28, 2026
1f9ecbb
Refactor #106: Strip inline diagnostics renderer from validate.go
micheledaddetta-databricks Apr 28, 2026
38dc38f
Refactor #106: Strip inline summary renderer from summary.go
micheledaddetta-databricks Apr 28, 2026
f3f5fff
Fix #106: Match bundle --show-full-config contract in summary
micheledaddetta-databricks Apr 28, 2026
35944a3
Fix #106: Match bundle exit-code contract for --show-full-config
micheledaddetta-databricks Apr 28, 2026
319dacb
Merge pull request #107 from micheledaddetta-databricks/refactor/106-…
micheledaddetta-databricks Apr 28, 2026
5558a24
Refactor #108: Align cmd/ucm/deploy.go with bundle scaffolding
micheledaddetta-databricks Apr 28, 2026
be0b7a4
Refactor #108: Align cmd/ucm/destroy.go with bundle scaffolding
micheledaddetta-databricks Apr 28, 2026
4ec75bc
Refactor #108: Align cmd/ucm/deployment/{bind,unbind}.go scaffolding
micheledaddetta-databricks Apr 28, 2026
0c7cb3c
Chore #108: Fix destroy/plan wrap typos + clarify deploy comment + st…
micheledaddetta-databricks Apr 28, 2026
fe26a45
Merge pull request #109 from micheledaddetta-databricks/refactor/108-…
micheledaddetta-databricks Apr 28, 2026
1888765
Refactor #110: Align cmd/ucm/plan.go with bundle scaffolding
micheledaddetta-databricks Apr 28, 2026
fa8fee2
Merge pull request #111 from micheledaddetta-databricks/refactor/110-…
micheledaddetta-databricks Apr 28, 2026
d1ec4cf
Refactor #112: Move template-resolve helpers to ucm/templates package
micheledaddetta-databricks Apr 28, 2026
2a6925d
Refactor #112: Shrink cmd/ucm/init.go via templates-package extraction
micheledaddetta-databricks Apr 28, 2026
0c11076
Merge pull request #113 from micheledaddetta-databricks/refactor/112-…
micheledaddetta-databricks Apr 28, 2026
687a9ab
Refactor #114: Add cmd/ucm/generate/ subgroup with per-kind subcommands
micheledaddetta-databricks Apr 29, 2026
26605f1
Refactor #114: Replace monolithic cmd/ucm/generate.go with subgroup w…
micheledaddetta-databricks Apr 29, 2026
962ceeb
Test #114: Add per-kind subcommand tests for cmd/ucm/generate
micheledaddetta-databricks Apr 29, 2026
0c50970
Refactor #114: Tighten cmd/ucm/generate package after code review
micheledaddetta-databricks Apr 29, 2026
e2dec4f
Merge pull request #116 from micheledaddetta-databricks/refactor/114-…
micheledaddetta-databricks Apr 29, 2026
16a7a8b
Refactor #117: Align policy-check trailer with validate's render path
micheledaddetta-databricks Apr 29, 2026
bb608a0
Refactor #117: Set InitIDs on drift's ProcessOptions
micheledaddetta-databricks Apr 29, 2026
27cad8c
Refactor #117: Set InitIDs on import's ProcessOptions
micheledaddetta-databricks Apr 29, 2026
5efcb57
Refactor #117: Harmonize policy-check --strict wording with validate.go
micheledaddetta-databricks Apr 29, 2026
a8d786b
Merge pull request #118 from micheledaddetta-databricks/refactor/117-…
micheledaddetta-databricks Apr 29, 2026
384ba41
Chore #104: Bootstrap UCM acceptance fixture outputs
micheledaddetta-databricks Apr 29, 2026
db6e588
Merge pull request #119 from micheledaddetta-databricks/chore/104-acc…
micheledaddetta-databricks Apr 29, 2026
91050d4
Chore #120: Add acceptance fixtures for schema/validate/summary/polic…
micheledaddetta-databricks Apr 29, 2026
980616f
Chore #121: Add acceptance fixtures for drift/import
micheledaddetta-databricks Apr 29, 2026
78314ff
Merge pull request #122 from micheledaddetta-databricks/chore/120-acc…
micheledaddetta-databricks Apr 29, 2026
90f0503
Feat #103: Thread Backend through ProcessOptions, drop verb-side phas…
micheledaddetta-databricks Apr 29, 2026
7dac812
Merge pull request #123 from micheledaddetta-databricks/chore/121-acc…
micheledaddetta-databricks Apr 29, 2026
a5e78e7
Merge pull request #126 from micheledaddetta-databricks/feat/103-thre…
micheledaddetta-databricks Apr 29, 2026
b93bc89
Feat #127: Fork bundle/direct/dstate to ucm/direct/dstate
micheledaddetta-databricks Apr 29, 2026
fa77e5b
Chore #125: Rename import/happy fixture and regenerate output
micheledaddetta-databricks Apr 29, 2026
0bb9913
Merge pull request #129 from micheledaddetta-databricks/chore/125-ren…
micheledaddetta-databricks Apr 29, 2026
3194053
Merge pull request #128 from micheledaddetta-databricks/feat/127-ucm-…
micheledaddetta-databricks Apr 29, 2026
b524c59
Feat #131: Fork ParseResourcesState into ucm/deploy/terraform
micheledaddetta-databricks Apr 29, 2026
eb72334
Feat #132: Implement phases.LogDeployTelemetry
micheledaddetta-databricks Apr 29, 2026
9b271e8
Feat #130: Fork bundle/direct/{apply,bundle_plan,bundle_apply,graph}.go
micheledaddetta-databricks Apr 29, 2026
e8e86cb
Fix #131: Replace stale "bundle" wording in ParseResourcesState error
micheledaddetta-databricks Apr 29, 2026
94b8b3d
Merge pull request #133 from micheledaddetta-databricks/feat/131-pars…
micheledaddetta-databricks Apr 29, 2026
6373723
Merge pull request #134 from micheledaddetta-databricks/feat/132-log-…
micheledaddetta-databricks Apr 29, 2026
e95329a
Merge pull request #135 from micheledaddetta-databricks/feat/130-dire…
micheledaddetta-databricks Apr 29, 2026
360d4d6
Feat #137: Add downgradeWarningToError to PreDeployChecks (E.6c)
micheledaddetta-databricks Apr 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
201 changes: 201 additions & 0 deletions .claude/agents/gitops.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
---
name: gitops
description: End-to-end GitOps for UCM work in this fork of databricks/cli — files issues, creates branches, runs fork-scoped CI gate, commits, pushes, opens PRs. Use for any non-trivial UCM change under cmd/ucm/** or ucm/**.
---

# UCM GitOps Agent

You are the GitOps agent for the UCM subcommand in this fork of `databricks/cli`. You own the full lifecycle of a UCM change: GitHub issue creation on the fork, branch-based implementation, pre-push CI gate, commit, push, pull request.

The canonical workflow is in `cmd/ucm/CLAUDE.md`. This file is your operational playbook — follow both.

## Fork context

- Fork remote: `origin` → `micheledaddetta-databricks/cli`. Upstream: `upstream` → `databricks/cli`. All issues, branches, and PRs live on `origin` unless the user explicitly asks otherwise.
- Weekly `.github/workflows/upstream-sync.yml` merges `upstream/main`. Every edit to an upstream-owned file is a future merge conflict. **Stay inside ucm-owned paths:**
- `cmd/ucm/**`
- `ucm/**`
- `.github/workflows/upstream-sync.yml`
- `.claude/**` (fork-only)
- The single allowed upstream touchpoint is `cmd/cmd.go` (registers `ucm.New()`). Any new upstream edit requires a flagged decision in the PR body.
- Never edit `bundle/**` or `libs/**` from a UCM-labeled PR. If a shared lib truly needs a change, fork the relevant piece into `ucm/**` first.
- Never import `bundle/**` from `ucm/**`. `libs/**` reuse is fine.

## Workflow

### 1. Understand the request

Determine whether this is a `feat`, `fix`, `chore`, `refactor`, `test`, or `docs` change. Pick the primary `area/*` label(s) from the set in step 2. Ask for clarification only when the scope is actually ambiguous — not for style.

### 2. File an issue on the fork

Use `gh issue create --repo micheledaddetta-databricks/cli`. Title is short and imperative; body follows this structure:

```markdown
## Context
<one paragraph: why this change, what it enables/fixes, which milestone>

**Area:** <area/* labels>
**Type:** <feat|fix|chore|refactor|test|docs>
**Depends on:** <list of issue/PR numbers, or "none">
**Blocks:** <list, or "none">

## Scope
<bulleted list of in-scope work — files, mutators, commands, fixtures>

## Acceptance criteria
- [ ] <concrete pass/fail condition>
- [ ] ...

## Out of scope
<what is deliberately deferred; reference the milestone or issue that picks it up>
```

**Labels (mandatory):**
- Type label (exactly one): `feat`, `fix`, `chore`, `refactor`, `test`, `docs`
- `ucm` (always)
- Area labels (one or more): `area/cmd`, `area/config`, `area/mutator`, `area/terraform`, `area/state`, `area/cloud-aws`, `area/cloud-azure`, `area/cloud-gcp`, `area/templates`, `area/ci`, `area/docs`

If a required label doesn't exist on the fork, create it with `gh label create --repo micheledaddetta-databricks/cli` before filing the issue. Capture the issue number from the output.

### 3. Create a feature branch

```bash
git fetch origin main
git checkout -b <type>/<issue-number>-<kebab-summary>
```

Naming examples:
- `feat/12-validate-tags-mutator`
- `fix/18-state-filer-lock-timeout`
- `chore/3-upstream-sync-2026-04-27`

If the new branch must build on another open branch (e.g. a stacked PR where the prerequisite hasn't merged to `main` yet), branch from that branch instead and record the base choice in the PR body.

One issue per branch. One branch per PR.

### 4. Implement

- Read the relevant files before editing.
- Follow existing patterns: mirror `bundle/` structure when porting a concept, but do not import from it.
- Keep changes focused on the issue. If you uncover a separable problem, file a new issue rather than scope-creep.
- Conventions:
- Comments explain *why*, not *what* (root `CLAUDE.md`).
- Use `log.{Info,Debug,Warn,Error}f(ctx, ...)` with a passed `ctx`; never store `context.Context` in a struct; never `context.Background()` outside `main.go`.
- Use `diag.Errorf`/`diag.Warningf` with source locations when emitting user-facing diagnostics.
- Go 1.24+ idioms: `for i := range N`, builtin `min`/`max`, `t.Context()` in tests, `type ctxKey struct{}` for context keys.
- Output file paths with forward slashes via `filepath.ToSlash` so acceptance output is OS-stable.
- Add unit tests alongside changes. For mutators: table-driven, under `ucm/config/mutator/*_test.go`. For verb wiring: under `cmd/ucm/*_test.go`.

### 5. Pre-push CI gate (MANDATORY, fork-scoped)

Before `git push`, run all three checks locally. **Do not push until all pass.** Fix root causes — never bypass hooks or comment out tests.

```bash
GOPROXY=direct GOTOOLCHAIN=local GOSUMDB=off go build ./...
GOPROXY=direct GOTOOLCHAIN=local GOSUMDB=off go vet ./cmd/ucm/... ./ucm/...
GOPROXY=direct GOTOOLCHAIN=local GOSUMDB=off go test ./cmd/ucm/... ./ucm/...
```

**Why the `GOPROXY`/`GOTOOLCHAIN`/`GOSUMDB` prefix:** corporate `/etc/hosts` blocks `proxy.golang.org`; the installed toolchain may not match `go.mod`'s declared toolchain. These env vars force direct module fetch, pin to the locally installed Go, and disable checksum db lookups.

**Why fork-scoped tests (not `./...`):** this is a fork. Upstream tests (`bundle/...`, `cmd/bundle/...`, `acceptance/...`, `integration/...`, parts of `libs/...`) may depend on env we don't have (deco, live workspace, git-lfs state, matching toolchain). Debugging them is out of scope for UCM work. Only run the full suite if the user explicitly asks, and when you do, surface UCM results separately from upstream noise.

`go build ./...` stays full-repo because a compile break anywhere (including in a shared `libs/` package we indirectly use) matters. Tests are the only thing we scope down.

### 6. Commit

- Stage only files you actually changed (never `git add -A` / `git add .` blindly — binaries like `./databricks`, IDE config, and `.DS_Store` are untracked for a reason).
- Commit message: `<Type> #<issue>: <subject>` where Type is `Feat`/`Fix`/`Chore`/`Refactor`/`Test`/`Docs`. Subject is imperative.
- Body explains *why*. Reference any design doc, prior incident, or upstream behavior you're matching.
- Append `Co-authored-by: Isaac`.
- Always pass the message via heredoc:

```bash
git commit -m "$(cat <<'EOF'
Feat #12: Add validate_tags mutator

<body paragraph: motivation and non-obvious decisions>

Co-authored-by: Isaac
EOF
)"
```

- Never amend a pushed commit. Never `--no-verify` / `--no-gpg-sign`. Create new commits for iteration.

### 7. Push

```bash
git push -u origin <branch>
```

Never push to `main`. Never force-push to a shared branch. `--force-with-lease` is acceptable on your own feature branch after a local rebase if the user asks.

### 8. Open a PR

```bash
gh pr create --repo micheledaddetta-databricks/cli \
--base <base-branch> \
--head <your-branch> \
--title "<Type> #<N>: <subject>" \
--label "ucm,<type>,<area>..." \
--body "$(cat <<'EOF'
Closes #<N>

## Summary
- <bullet 1>
- <bullet 2>

## Why
<one paragraph: motivation, constraint, or incident this addresses>

## Test plan
- [x] `go build ./...`
- [x] `go vet ./cmd/ucm/... ./ucm/...`
- [x] `go test ./cmd/ucm/... ./ucm/...`
- [x] <any fixture or manual check>

## Fork-divergence notes
- Edits to upstream files: <list each one with justification, or "none">
- New touchpoints outside `cmd/ucm/**`, `ucm/**`, `.claude/**`, `.github/workflows/upstream-sync.yml`: <list, or "none">

## Base branch
<explain if not targeting `main` — e.g. stacked on open PR #K>
EOF
)"
```

- `--base` is `main` unless you're stacking on an open PR.
- PR labels mirror issue labels. Mandatory: `ucm` + one type + at least one `area/*`.
- Request review only after all locally-runnable checks pass.

### 9. Report back

Give the user:
- Issue URL
- PR URL
- One-sentence summary of what shipped
- Any deferred items or follow-up issues you filed

## Rules (never break)

- Never push to `main` directly.
- Never force-push to `main` or any shared branch.
- Never `--no-verify` or bypass commit signing.
- Never edit `bundle/**` or upstream `libs/**` from a UCM PR.
- Never add a `run` or `sync` verb (explicitly dropped from DAB scope for UCM).
- Never add identity resources (groups/users/SPs) — out of scope for v1; UCM references existing principals by name/id only.
- Never remove or skip failing tests to make CI green. Fix the root cause. If a test is genuinely not applicable to the fork, that's a discussion with the user — not a silent delete.
- Never commit secrets, binaries, `.DS_Store`, or IDE-generated files. The untracked `./databricks` binary from `make build` is a build artifact, not a deliverable.
- Never use `git rebase -i`, `git add -i`, or any other flag that requires an interactive editor — they're not supported in this environment. If you must rebase, use the env-prefixed non-interactive form documented in the root `CLAUDE.md`.

## Common mistakes (UCM-specific)

- Importing from `bundle/**` — will break on every upstream sync. Fork-and-adapt into `ucm/**` instead.
- Running `go test ./...` and then chasing failures in upstream packages. Scope to `./cmd/ucm/... ./ucm/...`.
- Hand-writing Terraform JSON in converters — build `dyn.Value` trees and use the `tfjson` writers like `bundle/deploy/terraform/tfdyn` does.
- Forgetting the `GOPROXY=direct GOTOOLCHAIN=local GOSUMDB=off` prefix and landing in a broken `proxy.golang.org` timeout or toolchain-mismatch loop.
- Adding a new upstream-file edit (e.g. to `cmd/cmd.go`) without calling it out in the PR body as a fork-divergence cost.
- Targeting `main` when the branch is actually stacked on another open PR — produces a bloated diff that reviewers can't read.
- Treating `policy-check` as a slower `validate`. `policy-check` runs *only* the validation mutators (cheap pre-commit hook); `validate` runs the full chain.
82 changes: 82 additions & 0 deletions .github/workflows/upstream-sync.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Upstream Sync

# Weekly fetch of databricks/cli upstream/main into this fork.
# Opens a PR with the merge so the UCM maintainers can review conflicts before landing.
# Fork-specific: this workflow does NOT exist in databricks/cli upstream and will never
# cause a merge conflict on sync.

on:
schedule:
- cron: "0 7 * * 1" # Mondays 07:00 UTC
workflow_dispatch:

permissions:
contents: write
pull-requests: write

jobs:
sync:
name: Merge upstream/main
runs-on: ubuntu-latest
steps:
- name: Checkout fork (full history)
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}

- name: Configure git identity
run: |
git config user.name "ucm-upstream-sync[bot]"
git config user.email "ucm-upstream-sync@users.noreply.github.com"

- name: Add upstream remote
run: git remote add upstream https://github.com/databricks/cli.git

- name: Fetch upstream
run: git fetch upstream main

- name: Create sync branch
id: branch
run: |
branch="upstream-sync/$(date -u +%Y-%m-%d)"
git checkout -b "$branch" origin/main
echo "branch=$branch" >> "$GITHUB_OUTPUT"

- name: Merge upstream/main
id: merge
continue-on-error: true
run: git merge --no-edit upstream/main

- name: Push sync branch
if: always()
run: git push origin HEAD --force-with-lease

- name: Open PR
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
script: |-
const branch = "${{ steps.branch.outputs.branch }}";
const conflict = "${{ steps.merge.outcome }}" !== "success";
const title = conflict
? `chore(sync): upstream merge (CONFLICTS) — ${branch}`
: `chore(sync): upstream merge — ${branch}`;
const body = [
"Automated weekly sync with `databricks/cli` upstream.",
"",
conflict
? "⚠️ **Merge conflicts detected.** Resolve locally before merging this PR."
: "✅ Clean merge. Verify `go build ./...` passes in CI before merging.",
"",
"Fork divergence guardrail: keep ucm-specific changes confined to `cmd/ucm/`, `ucm/`, and `.github/workflows/upstream-sync.yml` to minimize conflict surface.",
].join("\n");
const { data: pr } = await github.rest.pulls.create({
owner: context.repo.owner,
repo: context.repo.repo,
head: branch,
base: "main",
title,
body,
draft: conflict,
});
core.info(`Opened PR #${pr.number}: ${pr.html_url}`);
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,9 @@ go.work.sum
tools/gofumpt
.claude/worktrees/
.worktrees/

# Local plan docs authored by Claude — not tracked.
docs/superpowers/

# Generated deployment artifacts from running cmd/ucm against testdata.
cmd/ucm/testdata/**/.databricks/
22 changes: 22 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,28 @@ bundle/direct/dresources/apitypes.generated.yml: ./bundle/direct/tools/generate_
bundle/direct/dresources/resources.generated.yml: ./bundle/direct/tools/generate_resources.py .codegen/openapi.json bundle/direct/dresources/apitypes.generated.yml bundle/direct/dresources/apitypes.yml acceptance/bundle/refschema/out.fields.txt
python3 $^ > $@

# UCM mirrors the bundle generate-direct targets. Empty until UCM resources
# are migrated to the embedded-SDK-type pattern; out.fields.txt is produced
# by `acceptance/ucm/refschema` (run `make test-update` to refresh).
.PHONY: generate-ucm-direct
generate-ucm-direct: generate-ucm-direct-apitypes generate-ucm-direct-resources

.PHONY: generate-ucm-direct-apitypes
generate-ucm-direct-apitypes: ucm/direct/dresources/apitypes.generated.yml

.PHONY: generate-ucm-direct-resources
generate-ucm-direct-resources: ucm/direct/dresources/resources.generated.yml

.PHONY: generate-ucm-direct-clean
generate-ucm-direct-clean:
rm -f ucm/direct/dresources/apitypes.generated.yml ucm/direct/dresources/resources.generated.yml

ucm/direct/dresources/apitypes.generated.yml: ./ucm/direct/tools/generate_apitypes.py .codegen/openapi.json acceptance/ucm/refschema/out.fields.txt
python3 $^ > $@

ucm/direct/dresources/resources.generated.yml: ./ucm/direct/tools/generate_resources.py .codegen/openapi.json ucm/direct/dresources/apitypes.generated.yml ucm/direct/dresources/apitypes.yml acceptance/ucm/refschema/out.fields.txt
python3 $^ > $@

.PHONY: test-exp-aitools
test-exp-aitools:
make test TEST_PACKAGES="./experimental/aitools/..." ACCEPTANCE_TEST_FILTER="TestAccept/apps"
Expand Down
5 changes: 5 additions & 0 deletions acceptance/ucm/drift/happy/out.test.toml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions acceptance/ucm/drift/happy/output.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@

>>> [CLI] ucm drift
Warning: cannot initialize resource URLs: workspace.host is not set

No drift detected.
1 change: 1 addition & 0 deletions acceptance/ucm/drift/happy/script
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
trace $CLI ucm drift
3 changes: 3 additions & 0 deletions acceptance/ucm/drift/happy/test.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Local = true
Cloud = false
Ignore = [".databricks"]
9 changes: 9 additions & 0 deletions acceptance/ucm/drift/happy/ucm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
ucm:
name: drift-happy
engine: terraform

resources:
catalogs:
main:
name: main
comment: drift-happy catalog
5 changes: 5 additions & 0 deletions acceptance/ucm/import/missing_catalog/out.test.toml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions acceptance/ucm/import/missing_catalog/output.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@

>>> [CLI] ucm import catalog test_catalog --auto-approve
Warning: cannot initialize resource URLs: workspace.host is not set

Warning: cannot initialize resource URLs: workspace.host is not set

Error: direct import: get catalog test_catalog: Resource catalog.CatalogInfo not found: test_catalog (404 <nil>)

Endpoint: GET [DATABRICKS_URL]/api/2.1/unity-catalog/catalogs/test_catalog?
HTTP Status: 404 Not Found
API error_code: <nil>
API message: Resource catalog.CatalogInfo not found: test_catalog


Exit code: 1
1 change: 1 addition & 0 deletions acceptance/ucm/import/missing_catalog/script
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
trace $CLI ucm import catalog test_catalog --auto-approve
3 changes: 3 additions & 0 deletions acceptance/ucm/import/missing_catalog/test.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Local = true
Cloud = false
Ignore = [".databricks"]
9 changes: 9 additions & 0 deletions acceptance/ucm/import/missing_catalog/ucm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
ucm:
name: import-happy
engine: direct

resources:
catalogs:
test_catalog:
name: test_catalog
comment: imported test catalog
5 changes: 5 additions & 0 deletions acceptance/ucm/plan/connection/out.test.toml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading