Skip to content

Manage registered model aliases on deploy - #7163

Merged
andrewnester merged 4 commits into
mainfrom
fix/4012
Nov 4, 2026
Merged

andrewnester merged 4 commits into
mainfrom
fix/4012

Conversation

@andrewnester

Copy link
Copy Markdown
Contributor

Changes

Registered model aliases are now set in Unity Catalog on deploy instead of being silently ignored.
A model without an aliases section keeps the aliases set outside the bundle (for example by MLflow), and aliases: [] removes them.

Why

Fixes #4012

Tests

Added acceptance tests

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Commit: a7d54716e | Workflow run

Regression test report

Selected 3 changed tests (limit=20, 0 not selected)

8 tests: regression=8 unreleased=0 coverage=0 failing=0
test branch main (cd5c64d) latest (v1.23.0)
TestAccept/bundle/deployment/bind/registered-model-aliases/DMS= ✅ ❌ ❌
TestAccept/bundle/deployment/bind/registered-model-aliases/DMS=true ✅ ❌ ❌
TestAccept/bundle/resources/registered_models/aliases/DMS=/READPLAN= ✅ ❌ ❌
TestAccept/bundle/resources/registered_models/aliases/DMS=/READPLAN=1 ✅ ❌ ❌
TestAccept/bundle/resources/registered_models/aliases/DMS=true/READPLAN= ✅ ❌ ❌
TestAccept/bundle/resources/registered_models/aliases/DMS=true/READPLAN=1 ✅ ❌ ❌
TestAccept/bundle/resources/registered_models/aliases_converge/DMS= ✅ ❌ ❌
TestAccept/bundle/resources/registered_models/aliases_converge/DMS=true ✅ ❌ ❌
TestAccept/bundle/deployment/bind/registered-model-aliases/DMS=: branch ✅ | main (cd5c64d) ❌ | latest (v1.23.0) ❌

main (cd5c64d):

acceptance_test.go:1342: Diff:
        --- bundle/deployment/bind/registered-model-aliases/output.txt
        +++ /tmp/TestAcceptbundledeploymentbindregistered-model-aliasesDMS=653248934/002/output.txt
        @@ -20,7 +20,6 @@
         Plan: update resources.registered_models.model1
         
         Changes detected:
        -  ~ aliases: null -> [{"alias_name":"test","version_num":1},{"alias_name":"staging","version_num":2}]
           ~ comment: null -> "Managed by the bundle"
         
         Error: this bind operation requires user confirmation, but the current console does not support prompting.
        @@ -43,40 +42,27 @@
           "method": "PATCH",
           "path": "/api/2.1/unity-catalog/models/main.default.test-registered-model-[UNIQUE_NAME]",
           "body": {
        +    "aliases": [
        +      {
        +        "alias_name": "test",
        +        "version_num": 1
        +      },
        +      {
        +        "alias_name": "staging",
        +        "version_num": 2
        +      }
        +    ],
             "catalog_name": "main",
             "comment": "Managed by the bundle",
             "name": "test-registered-model-[UNIQUE_NAME]",
             "schema_name": "default"
           }
         }
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.test-registered-model-[UNIQUE_NAME]/aliases/test",
        -  "body": {
        -    "version_num": 1
        -  }
        -}
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.test-registered-model-[UNIQUE_NAME]/aliases/staging",
        -  "body": {
        -    "version_num": 2
        -  }
        -}
         
         >>> [CLI] registered-models get main.default.test-registered-model-[UNIQUE_NAME] --include-aliases
         {
           "comment": "Managed by the bundle",
        -  "aliases": [
        -    {
        -      "alias_name": "test",
        -      "version_num": 1
        -    },
        -    {
        -      "alias_name": "staging",
        -      "version_num": 2
        -    }
        -  ]
        +  "aliases": []
         }
         
         === Redeploy is a no-op

latest (v1.23.0): same output as main (cd5c64d)

TestAccept/bundle/deployment/bind/registered-model-aliases/DMS=true: branch ✅ | main (cd5c64d) ❌ | latest (v1.23.0) ❌

main (cd5c64d):

acceptance_test.go:1342: Diff:
        --- bundle/deployment/bind/registered-model-aliases/output.txt
        +++ /tmp/TestAcceptbundledeploymentbindregistered-model-aliasesDMS=t3028426092/002/output.txt
        @@ -20,7 +20,6 @@
         Plan: update resources.registered_models.model1
         
         Changes detected:
        -  ~ aliases: null -> [{"alias_name":"test","version_num":1},{"alias_name":"staging","version_num":2}]
           ~ comment: null -> "Managed by the bundle"
         
         Error: this bind operation requires user confirmation, but the current console does not support prompting.
        @@ -43,40 +42,27 @@
           "method": "PATCH",
           "path": "/api/2.1/unity-catalog/models/main.default.test-registered-model-[UNIQUE_NAME]",
           "body": {
        +    "aliases": [
        +      {
        +        "alias_name": "test",
        +        "version_num": 1
        +      },
        +      {
        +        "alias_name": "staging",
        +        "version_num": 2
        +      }
        +    ],
             "catalog_name": "main",
             "comment": "Managed by the bundle",
             "name": "test-registered-model-[UNIQUE_NAME]",
             "schema_name": "default"
           }
         }
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.test-registered-model-[UNIQUE_NAME]/aliases/test",
        -  "body": {
        -    "version_num": 1
        -  }
        -}
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.test-registered-model-[UNIQUE_NAME]/aliases/staging",
        -  "body": {
        -    "version_num": 2
        -  }
        -}
         
         >>> [CLI] registered-models get main.default.test-registered-model-[UNIQUE_NAME] --include-aliases
         {
           "comment": "Managed by the bundle",
        -  "aliases": [
        -    {
        -      "alias_name": "test",
        -      "version_num": 1
        -    },
        -    {
        -      "alias_name": "staging",
        -      "version_num": 2
        -    }
        -  ]
        +  "aliases": []
         }
         
         === Redeploy is a no-op

latest (v1.23.0): same output as main (cd5c64d)

TestAccept/bundle/resources/registered_models/aliases/DMS=/READPLAN=: branch ✅ | main (cd5c64d) ❌ | latest (v1.23.0) ❌

main (cd5c64d):

acceptance_test.go:1342: Diff:
        --- bundle/resources/registered_models/aliases/output.txt
        +++ /tmp/TestAcceptbundleresourcesregistered_modelsaliasesDMS=READP2006381995/002/output.txt
        @@ -29,22 +29,7 @@
         
         === No aliases section: 'champion' is skipped as unmanaged, not drift
         >>> plan_aliases
        -{
        -  "aliases": {
        -    "action": "skip",
        -    "reason": "unmanaged",
        -    "remote": [
        -      {
        -        "alias_name": "champion",
        -        "catalog_name": "main",
        -        "id": "[UUID]",
        -        "model_name": "model-aliases-[UNIQUE_NAME]",
        -        "schema_name": "default",
        -        "version_num": 1
        -      }
        -    ]
        -  }
        -}
        +{}
         
         >>> [CLI] bundle plan
         Plan: 0 to add, 0 to change, 0 to delete, 1 unchanged
        @@ -63,49 +48,7 @@
                 "alias_name": "challenger",
                 "version_num": 1
               }
        -    ],
        -    "remote": [
        -      {
        -        "alias_name": "champion",
        -        "catalog_name": "main",
        -        "id": "[UUID]",
        -        "model_name": "model-aliases-[UNIQUE_NAME]",
        -        "schema_name": "default",
        -        "version_num": 1
        -      }
             ]
        -  },
        -  "aliases[alias_name='challenger']": {
        -    "action": "update",
        -    "new": {
        -      "alias_name": "challenger",
        -      "version_num": 1
        -    }
        -  },
        -  "aliases[alias_name='champion'].catalog_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='champion'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='champion'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='champion'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        -  },
        -  "aliases[alias_name='champion'].version_num": {
        -    "action": "update",
        -    "new": 2,
        -    "remote": 1
           }
         }
         
        @@ -114,35 +56,27 @@
           "method": "PATCH",
           "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]",
           "body": {
        +    "aliases": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ],
             "catalog_name": "main",
             "comment": "",
             "name": "model-aliases-[UNIQUE_NAME]",
             "schema_name": "default"
           }
         }
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]/aliases/champion",
        -  "body": {
        -    "version_num": 2
        -  }
        -}
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]/aliases/challenger",
        -  "body": {
        -    "version_num": 1
        -  }
        -}
         
         >>> [CLI] registered-models get main.default.model-aliases-[UNIQUE_NAME] --include-aliases
         [
           {
             "alias_name": "champion",
        -    "version_num": 2
        -  },
        -  {
        -    "alias_name": "challenger",
             "version_num": 1
           }
         ]
        @@ -150,45 +73,29 @@
         === Redeploy is a no-op: the fields the backend fills in on each alias are skipped as output_only
         >>> plan_aliases
         {
        -  "aliases[alias_name='challenger'].catalog_name": {
        +  "aliases": {
             "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='challenger'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='challenger'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='challenger'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        -  },
        -  "aliases[alias_name='champion'].catalog_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='champion'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='champion'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='champion'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        +    "reason": "input_only",
        +    "old": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ],
        +    "new": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ]
           }
         }
         
        @@ -211,248 +117,33 @@
         
         >>> plan_aliases
         {
        -  "aliases[alias_name='challenger']": {
        -    "action": "update",
        -    "old": {
        -      "alias_name": "challenger",
        -      "version_num": 1
... (272 more lines truncated, raise DATABRICKS_CLI_TEST_MAX_LOG to see more)

latest (v1.23.0):

acceptance_test.go:1342: Diff:
        --- bundle/resources/registered_models/aliases/output.txt
        +++ /tmp/TestAcceptbundleresourcesregistered_modelsaliasesDMS=READP276927196/002/output.txt
        @@ -29,22 +29,7 @@
         
         === No aliases section: 'champion' is skipped as unmanaged, not drift
         >>> plan_aliases
        -{
        -  "aliases": {
        -    "action": "skip",
        -    "reason": "unmanaged",
        -    "remote": [
        -      {
        -        "alias_name": "champion",
        -        "catalog_name": "main",
        -        "id": "[UUID]",
        -        "model_name": "model-aliases-[UNIQUE_NAME]",
        -        "schema_name": "default",
        -        "version_num": 1
        -      }
        -    ]
        -  }
        -}
        +{}
         
         >>> [CLI] bundle plan
         Plan: 0 to add, 0 to change, 0 to delete, 1 unchanged
        @@ -63,49 +48,7 @@
                 "alias_name": "challenger",
                 "version_num": 1
               }
        -    ],
        -    "remote": [
        -      {
        -        "alias_name": "champion",
        -        "catalog_name": "main",
        -        "id": "[UUID]",
        -        "model_name": "model-aliases-[UNIQUE_NAME]",
        -        "schema_name": "default",
        -        "version_num": 1
        -      }
             ]
        -  },
        -  "aliases[alias_name='challenger']": {
        -    "action": "update",
        -    "new": {
        -      "alias_name": "challenger",
        -      "version_num": 1
        -    }
        -  },
        -  "aliases[alias_name='champion'].catalog_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='champion'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='champion'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='champion'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        -  },
        -  "aliases[alias_name='champion'].version_num": {
        -    "action": "update",
        -    "new": 2,
        -    "remote": 1
           }
         }
         
        @@ -114,35 +56,27 @@
           "method": "PATCH",
           "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]",
           "body": {
        +    "aliases": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ],
             "catalog_name": "main",
             "comment": "",
             "name": "model-aliases-[UNIQUE_NAME]",
             "schema_name": "default"
           }
         }
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]/aliases/champion",
        -  "body": {
        -    "version_num": 2
        -  }
        -}
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]/aliases/challenger",
        -  "body": {
        -    "version_num": 1
        -  }
        -}
         
         >>> [CLI] registered-models get main.default.model-aliases-[UNIQUE_NAME] --include-aliases
         [
           {
             "alias_name": "champion",
        -    "version_num": 2
        -  },
        -  {
        -    "alias_name": "challenger",
             "version_num": 1
           }
         ]
        @@ -150,45 +73,29 @@
         === Redeploy is a no-op: the fields the backend fills in on each alias are skipped as output_only
         >>> plan_aliases
         {
        -  "aliases[alias_name='challenger'].catalog_name": {
        +  "aliases": {
             "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='challenger'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='challenger'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='challenger'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        -  },
        -  "aliases[alias_name='champion'].catalog_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='champion'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='champion'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='champion'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        +    "reason": "input_only",
        +    "old": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ],
        +    "new": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ]
           }
         }
         
        @@ -211,248 +117,33 @@
         
         >>> plan_aliases
         {
        -  "aliases[alias_name='challenger']": {
        -    "action": "update",
        -    "old": {
        -      "alias_name": "challenger",
        -      "version_num": 1
... (272 more lines truncated, raise DATABRICKS_CLI_TEST_MAX_LOG to see more)
TestAccept/bundle/resources/registered_models/aliases/DMS=/READPLAN=1: branch ✅ | main (cd5c64d) ❌ | latest (v1.23.0) ❌

main (cd5c64d):

acceptance_test.go:1342: Diff:
        --- bundle/resources/registered_models/aliases/output.txt
        +++ /tmp/TestAcceptbundleresourcesregistered_modelsaliasesDMS=READP3978697048/002/output.txt
        @@ -29,22 +29,7 @@
         
         === No aliases section: 'champion' is skipped as unmanaged, not drift
         >>> plan_aliases
        -{
        -  "aliases": {
        -    "action": "skip",
        -    "reason": "unmanaged",
        -    "remote": [
        -      {
        -        "alias_name": "champion",
        -        "catalog_name": "main",
        -        "id": "[UUID]",
        -        "model_name": "model-aliases-[UNIQUE_NAME]",
        -        "schema_name": "default",
        -        "version_num": 1
        -      }
        -    ]
        -  }
        -}
        +{}
         
         >>> [CLI] bundle plan
         Plan: 0 to add, 0 to change, 0 to delete, 1 unchanged
        @@ -63,49 +48,7 @@
                 "alias_name": "challenger",
                 "version_num": 1
               }
        -    ],
        -    "remote": [
        -      {
        -        "alias_name": "champion",
        -        "catalog_name": "main",
        -        "id": "[UUID]",
        -        "model_name": "model-aliases-[UNIQUE_NAME]",
        -        "schema_name": "default",
        -        "version_num": 1
        -      }
             ]
        -  },
        -  "aliases[alias_name='challenger']": {
        -    "action": "update",
        -    "new": {
        -      "alias_name": "challenger",
        -      "version_num": 1
        -    }
        -  },
        -  "aliases[alias_name='champion'].catalog_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='champion'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='champion'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='champion'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        -  },
        -  "aliases[alias_name='champion'].version_num": {
        -    "action": "update",
        -    "new": 2,
        -    "remote": 1
           }
         }
         
        @@ -114,35 +56,27 @@
           "method": "PATCH",
           "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]",
           "body": {
        +    "aliases": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ],
             "catalog_name": "main",
             "comment": "",
             "name": "model-aliases-[UNIQUE_NAME]",
             "schema_name": "default"
           }
         }
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]/aliases/champion",
        -  "body": {
        -    "version_num": 2
        -  }
        -}
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]/aliases/challenger",
        -  "body": {
        -    "version_num": 1
        -  }
        -}
         
         >>> [CLI] registered-models get main.default.model-aliases-[UNIQUE_NAME] --include-aliases
         [
           {
             "alias_name": "champion",
        -    "version_num": 2
        -  },
        -  {
        -    "alias_name": "challenger",
             "version_num": 1
           }
         ]
        @@ -150,45 +73,29 @@
         === Redeploy is a no-op: the fields the backend fills in on each alias are skipped as output_only
         >>> plan_aliases
         {
        -  "aliases[alias_name='challenger'].catalog_name": {
        +  "aliases": {
             "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='challenger'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='challenger'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='challenger'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        -  },
        -  "aliases[alias_name='champion'].catalog_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='champion'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='champion'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='champion'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        +    "reason": "input_only",
        +    "old": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ],
        +    "new": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ]
           }
         }
         
        @@ -211,248 +117,33 @@
         
         >>> plan_aliases
         {
        -  "aliases[alias_name='challenger']": {
        -    "action": "update",
        -    "old": {
        -      "alias_name": "challenger",
        -      "version_num": 1
... (273 more lines truncated, raise DATABRICKS_CLI_TEST_MAX_LOG to see more)

latest (v1.23.0):

acceptance_test.go:1342: Diff:
        --- bundle/resources/registered_models/aliases/output.txt
        +++ /tmp/TestAcceptbundleresourcesregistered_modelsaliasesDMS=READP2661773810/002/output.txt
        @@ -29,22 +29,7 @@
         
         === No aliases section: 'champion' is skipped as unmanaged, not drift
         >>> plan_aliases
        -{
        -  "aliases": {
        -    "action": "skip",
        -    "reason": "unmanaged",
        -    "remote": [
        -      {
        -        "alias_name": "champion",
        -        "catalog_name": "main",
        -        "id": "[UUID]",
        -        "model_name": "model-aliases-[UNIQUE_NAME]",
        -        "schema_name": "default",
        -        "version_num": 1
        -      }
        -    ]
        -  }
        -}
        +{}
         
         >>> [CLI] bundle plan
         Plan: 0 to add, 0 to change, 0 to delete, 1 unchanged
        @@ -63,49 +48,7 @@
                 "alias_name": "challenger",
                 "version_num": 1
               }
        -    ],
        -    "remote": [
        -      {
        -        "alias_name": "champion",
        -        "catalog_name": "main",
        -        "id": "[UUID]",
        -        "model_name": "model-aliases-[UNIQUE_NAME]",
        -        "schema_name": "default",
        -        "version_num": 1
        -      }
             ]
        -  },
        -  "aliases[alias_name='challenger']": {
        -    "action": "update",
        -    "new": {
        -      "alias_name": "challenger",
        -      "version_num": 1
        -    }
        -  },
        -  "aliases[alias_name='champion'].catalog_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='champion'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='champion'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='champion'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        -  },
        -  "aliases[alias_name='champion'].version_num": {
        -    "action": "update",
        -    "new": 2,
        -    "remote": 1
           }
         }
         
        @@ -114,35 +56,27 @@
           "method": "PATCH",
           "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]",
           "body": {
        +    "aliases": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ],
             "catalog_name": "main",
             "comment": "",
             "name": "model-aliases-[UNIQUE_NAME]",
             "schema_name": "default"
           }
         }
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]/aliases/champion",
        -  "body": {
        -    "version_num": 2
        -  }
        -}
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]/aliases/challenger",
        -  "body": {
        -    "version_num": 1
        -  }
        -}
         
         >>> [CLI] registered-models get main.default.model-aliases-[UNIQUE_NAME] --include-aliases
         [
           {
             "alias_name": "champion",
        -    "version_num": 2
        -  },
        -  {
        -    "alias_name": "challenger",
             "version_num": 1
           }
         ]
        @@ -150,45 +73,29 @@
         === Redeploy is a no-op: the fields the backend fills in on each alias are skipped as output_only
         >>> plan_aliases
         {
        -  "aliases[alias_name='challenger'].catalog_name": {
        +  "aliases": {
             "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='challenger'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='challenger'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='challenger'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        -  },
        -  "aliases[alias_name='champion'].catalog_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='champion'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='champion'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='champion'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        +    "reason": "input_only",
        +    "old": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ],
        +    "new": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ]
           }
         }
         
        @@ -211,248 +117,33 @@
         
         >>> plan_aliases
         {
        -  "aliases[alias_name='challenger']": {
        -    "action": "update",
        -    "old": {
        -      "alias_name": "challenger",
        -      "version_num": 1
... (273 more lines truncated, raise DATABRICKS_CLI_TEST_MAX_LOG to see more)
TestAccept/bundle/resources/registered_models/aliases/DMS=true/READPLAN=: branch ✅ | main (cd5c64d) ❌ | latest (v1.23.0) ❌

main (cd5c64d):

acceptance_test.go:1342: Diff:
        --- bundle/resources/registered_models/aliases/output.txt
        +++ /tmp/TestAcceptbundleresourcesregistered_modelsaliasesDMS=trueR1134441076/002/output.txt
        @@ -29,22 +29,7 @@
         
         === No aliases section: 'champion' is skipped as unmanaged, not drift
         >>> plan_aliases
        -{
        -  "aliases": {
        -    "action": "skip",
        -    "reason": "unmanaged",
        -    "remote": [
        -      {
        -        "alias_name": "champion",
        -        "catalog_name": "main",
        -        "id": "[UUID]",
        -        "model_name": "model-aliases-[UNIQUE_NAME]",
        -        "schema_name": "default",
        -        "version_num": 1
        -      }
        -    ]
        -  }
        -}
        +{}
         
         >>> [CLI] bundle plan
         Plan: 0 to add, 0 to change, 0 to delete, 1 unchanged
        @@ -63,49 +48,7 @@
                 "alias_name": "challenger",
                 "version_num": 1
               }
        -    ],
        -    "remote": [
        -      {
        -        "alias_name": "champion",
        -        "catalog_name": "main",
        -        "id": "[UUID]",
        -        "model_name": "model-aliases-[UNIQUE_NAME]",
        -        "schema_name": "default",
        -        "version_num": 1
        -      }
             ]
        -  },
        -  "aliases[alias_name='challenger']": {
        -    "action": "update",
        -    "new": {
        -      "alias_name": "challenger",
        -      "version_num": 1
        -    }
        -  },
        -  "aliases[alias_name='champion'].catalog_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='champion'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='champion'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='champion'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        -  },
        -  "aliases[alias_name='champion'].version_num": {
        -    "action": "update",
        -    "new": 2,
        -    "remote": 1
           }
         }
         
        @@ -114,35 +56,27 @@
           "method": "PATCH",
           "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]",
           "body": {
        +    "aliases": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ],
             "catalog_name": "main",
             "comment": "",
             "name": "model-aliases-[UNIQUE_NAME]",
             "schema_name": "default"
           }
         }
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]/aliases/champion",
        -  "body": {
        -    "version_num": 2
        -  }
        -}
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]/aliases/challenger",
        -  "body": {
        -    "version_num": 1
        -  }
        -}
         
         >>> [CLI] registered-models get main.default.model-aliases-[UNIQUE_NAME] --include-aliases
         [
           {
             "alias_name": "champion",
        -    "version_num": 2
        -  },
        -  {
        -    "alias_name": "challenger",
             "version_num": 1
           }
         ]
        @@ -150,45 +73,29 @@
         === Redeploy is a no-op: the fields the backend fills in on each alias are skipped as output_only
         >>> plan_aliases
         {
        -  "aliases[alias_name='challenger'].catalog_name": {
        +  "aliases": {
             "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='challenger'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='challenger'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='challenger'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        -  },
        -  "aliases[alias_name='champion'].catalog_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='champion'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='champion'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='champion'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        +    "reason": "input_only",
        +    "old": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ],
        +    "new": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ]
           }
         }
         
        @@ -211,248 +117,33 @@
         
         >>> plan_aliases
         {
        -  "aliases[alias_name='challenger']": {
        -    "action": "update",
        -    "old": {
        -      "alias_name": "challenger",
        -      "version_num": 1
... (272 more lines truncated, raise DATABRICKS_CLI_TEST_MAX_LOG to see more)

latest (v1.23.0):

acceptance_test.go:1342: Diff:
        --- bundle/resources/registered_models/aliases/output.txt
        +++ /tmp/TestAcceptbundleresourcesregistered_modelsaliasesDMS=trueR1362822037/002/output.txt
        @@ -29,22 +29,7 @@
         
         === No aliases section: 'champion' is skipped as unmanaged, not drift
         >>> plan_aliases
        -{
        -  "aliases": {
        -    "action": "skip",
        -    "reason": "unmanaged",
        -    "remote": [
        -      {
        -        "alias_name": "champion",
        -        "catalog_name": "main",
        -        "id": "[UUID]",
        -        "model_name": "model-aliases-[UNIQUE_NAME]",
        -        "schema_name": "default",
        -        "version_num": 1
        -      }
        -    ]
        -  }
        -}
        +{}
         
         >>> [CLI] bundle plan
         Plan: 0 to add, 0 to change, 0 to delete, 1 unchanged
        @@ -63,49 +48,7 @@
                 "alias_name": "challenger",
                 "version_num": 1
               }
        -    ],
        -    "remote": [
        -      {
        -        "alias_name": "champion",
        -        "catalog_name": "main",
        -        "id": "[UUID]",
        -        "model_name": "model-aliases-[UNIQUE_NAME]",
        -        "schema_name": "default",
        -        "version_num": 1
        -      }
             ]
        -  },
        -  "aliases[alias_name='challenger']": {
        -    "action": "update",
        -    "new": {
        -      "alias_name": "challenger",
        -      "version_num": 1
        -    }
        -  },
        -  "aliases[alias_name='champion'].catalog_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='champion'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='champion'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='champion'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        -  },
        -  "aliases[alias_name='champion'].version_num": {
        -    "action": "update",
        -    "new": 2,
        -    "remote": 1
           }
         }
         
        @@ -114,35 +56,27 @@
           "method": "PATCH",
           "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]",
           "body": {
        +    "aliases": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ],
             "catalog_name": "main",
             "comment": "",
             "name": "model-aliases-[UNIQUE_NAME]",
             "schema_name": "default"
           }
         }
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]/aliases/champion",
        -  "body": {
        -    "version_num": 2
        -  }
        -}
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]/aliases/challenger",
        -  "body": {
        -    "version_num": 1
        -  }
        -}
         
         >>> [CLI] registered-models get main.default.model-aliases-[UNIQUE_NAME] --include-aliases
         [
           {
             "alias_name": "champion",
        -    "version_num": 2
        -  },
        -  {
        -    "alias_name": "challenger",
             "version_num": 1
           }
         ]
        @@ -150,45 +73,29 @@
         === Redeploy is a no-op: the fields the backend fills in on each alias are skipped as output_only
         >>> plan_aliases
         {
        -  "aliases[alias_name='challenger'].catalog_name": {
        +  "aliases": {
             "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='challenger'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='challenger'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='challenger'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        -  },
        -  "aliases[alias_name='champion'].catalog_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='champion'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='champion'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='champion'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        +    "reason": "input_only",
        +    "old": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ],
        +    "new": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ]
           }
         }
         
        @@ -211,248 +117,33 @@
         
         >>> plan_aliases
         {
        -  "aliases[alias_name='challenger']": {
        -    "action": "update",
        -    "old": {
        -      "alias_name": "challenger",
        -      "version_num": 1
... (272 more lines truncated, raise DATABRICKS_CLI_TEST_MAX_LOG to see more)
TestAccept/bundle/resources/registered_models/aliases/DMS=true/READPLAN=1: branch ✅ | main (cd5c64d) ❌ | latest (v1.23.0) ❌

main (cd5c64d):

acceptance_test.go:1342: Diff:
        --- bundle/resources/registered_models/aliases/output.txt
        +++ /tmp/TestAcceptbundleresourcesregistered_modelsaliasesDMS=trueR2763258042/002/output.txt
        @@ -29,22 +29,7 @@
         
         === No aliases section: 'champion' is skipped as unmanaged, not drift
         >>> plan_aliases
        -{
        -  "aliases": {
        -    "action": "skip",
        -    "reason": "unmanaged",
        -    "remote": [
        -      {
        -        "alias_name": "champion",
        -        "catalog_name": "main",
        -        "id": "[UUID]",
        -        "model_name": "model-aliases-[UNIQUE_NAME]",
        -        "schema_name": "default",
        -        "version_num": 1
        -      }
        -    ]
        -  }
        -}
        +{}
         
         >>> [CLI] bundle plan
         Plan: 0 to add, 0 to change, 0 to delete, 1 unchanged
        @@ -63,49 +48,7 @@
                 "alias_name": "challenger",
                 "version_num": 1
               }
        -    ],
        -    "remote": [
        -      {
        -        "alias_name": "champion",
        -        "catalog_name": "main",
        -        "id": "[UUID]",
        -        "model_name": "model-aliases-[UNIQUE_NAME]",
        -        "schema_name": "default",
        -        "version_num": 1
        -      }
             ]
        -  },
        -  "aliases[alias_name='challenger']": {
        -    "action": "update",
        -    "new": {
        -      "alias_name": "challenger",
        -      "version_num": 1
        -    }
        -  },
        -  "aliases[alias_name='champion'].catalog_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='champion'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='champion'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='champion'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        -  },
        -  "aliases[alias_name='champion'].version_num": {
        -    "action": "update",
        -    "new": 2,
        -    "remote": 1
           }
         }
         
        @@ -114,35 +56,27 @@
           "method": "PATCH",
           "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]",
           "body": {
        +    "aliases": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ],
             "catalog_name": "main",
             "comment": "",
             "name": "model-aliases-[UNIQUE_NAME]",
             "schema_name": "default"
           }
         }
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]/aliases/champion",
        -  "body": {
        -    "version_num": 2
        -  }
        -}
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]/aliases/challenger",
        -  "body": {
        -    "version_num": 1
        -  }
        -}
         
         >>> [CLI] registered-models get main.default.model-aliases-[UNIQUE_NAME] --include-aliases
         [
           {
             "alias_name": "champion",
        -    "version_num": 2
        -  },
        -  {
        -    "alias_name": "challenger",
             "version_num": 1
           }
         ]
        @@ -150,45 +73,29 @@
         === Redeploy is a no-op: the fields the backend fills in on each alias are skipped as output_only
         >>> plan_aliases
         {
        -  "aliases[alias_name='challenger'].catalog_name": {
        +  "aliases": {
             "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='challenger'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='challenger'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='challenger'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        -  },
        -  "aliases[alias_name='champion'].catalog_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='champion'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='champion'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='champion'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        +    "reason": "input_only",
        +    "old": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ],
        +    "new": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ]
           }
         }
         
        @@ -211,248 +117,33 @@
         
         >>> plan_aliases
         {
        -  "aliases[alias_name='challenger']": {
        -    "action": "update",
        -    "old": {
        -      "alias_name": "challenger",
        -      "version_num": 1
... (272 more lines truncated, raise DATABRICKS_CLI_TEST_MAX_LOG to see more)

latest (v1.23.0):

acceptance_test.go:1342: Diff:
        --- bundle/resources/registered_models/aliases/output.txt
        +++ /tmp/TestAcceptbundleresourcesregistered_modelsaliasesDMS=trueR1405138852/002/output.txt
        @@ -29,22 +29,7 @@
         
         === No aliases section: 'champion' is skipped as unmanaged, not drift
         >>> plan_aliases
        -{
        -  "aliases": {
        -    "action": "skip",
        -    "reason": "unmanaged",
        -    "remote": [
        -      {
        -        "alias_name": "champion",
        -        "catalog_name": "main",
        -        "id": "[UUID]",
        -        "model_name": "model-aliases-[UNIQUE_NAME]",
        -        "schema_name": "default",
        -        "version_num": 1
        -      }
        -    ]
        -  }
        -}
        +{}
         
         >>> [CLI] bundle plan
         Plan: 0 to add, 0 to change, 0 to delete, 1 unchanged
        @@ -63,49 +48,7 @@
                 "alias_name": "challenger",
                 "version_num": 1
               }
        -    ],
        -    "remote": [
        -      {
        -        "alias_name": "champion",
        -        "catalog_name": "main",
        -        "id": "[UUID]",
        -        "model_name": "model-aliases-[UNIQUE_NAME]",
        -        "schema_name": "default",
        -        "version_num": 1
        -      }
             ]
        -  },
        -  "aliases[alias_name='challenger']": {
        -    "action": "update",
        -    "new": {
        -      "alias_name": "challenger",
        -      "version_num": 1
        -    }
        -  },
        -  "aliases[alias_name='champion'].catalog_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='champion'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='champion'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='champion'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        -  },
        -  "aliases[alias_name='champion'].version_num": {
        -    "action": "update",
        -    "new": 2,
        -    "remote": 1
           }
         }
         
        @@ -114,35 +56,27 @@
           "method": "PATCH",
           "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]",
           "body": {
        +    "aliases": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ],
             "catalog_name": "main",
             "comment": "",
             "name": "model-aliases-[UNIQUE_NAME]",
             "schema_name": "default"
           }
         }
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]/aliases/champion",
        -  "body": {
        -    "version_num": 2
        -  }
        -}
        -{
        -  "method": "PUT",
        -  "path": "/api/2.1/unity-catalog/models/main.default.model-aliases-[UNIQUE_NAME]/aliases/challenger",
        -  "body": {
        -    "version_num": 1
        -  }
        -}
         
         >>> [CLI] registered-models get main.default.model-aliases-[UNIQUE_NAME] --include-aliases
         [
           {
             "alias_name": "champion",
        -    "version_num": 2
        -  },
        -  {
        -    "alias_name": "challenger",
             "version_num": 1
           }
         ]
        @@ -150,45 +73,29 @@
         === Redeploy is a no-op: the fields the backend fills in on each alias are skipped as output_only
         >>> plan_aliases
         {
        -  "aliases[alias_name='challenger'].catalog_name": {
        +  "aliases": {
             "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='challenger'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='challenger'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='challenger'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        -  },
        -  "aliases[alias_name='champion'].catalog_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "main"
        -  },
        -  "aliases[alias_name='champion'].id": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "[UUID]"
        -  },
        -  "aliases[alias_name='champion'].model_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "model-aliases-[UNIQUE_NAME]"
        -  },
        -  "aliases[alias_name='champion'].schema_name": {
        -    "action": "skip",
        -    "reason": "output_only",
        -    "remote": "default"
        +    "reason": "input_only",
        +    "old": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ],
        +    "new": [
        +      {
        +        "alias_name": "champion",
        +        "version_num": 2
        +      },
        +      {
        +        "alias_name": "challenger",
        +        "version_num": 1
        +      }
        +    ]
           }
         }
         
        @@ -211,248 +117,33 @@
         
         >>> plan_aliases
         {
        -  "aliases[alias_name='challenger']": {
        -    "action": "update",
        -    "old": {
        -      "alias_name": "challenger",
        -      "version_num": 1
... (272 more lines truncated, raise DATABRICKS_CLI_TEST_MAX_LOG to see more)

2 more failure details omitted, see the full report in the run.

@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: a7d5471

Run: 41849092149

Env ✅​pass 🙈​skip Time
✅​ aws linux-2core-8gb 271 18 5:38
✅​ aws-windows-latest-4core-16gb 273 16 4:19
✅​ azure linux-2core-8gb 270 18 5:12
✅​ azure-windows-latest-4core-16gb 272 16 4:36
✅​ gcp linux-2core-8gb 271 18 6:13
✅​ gcp-windows-latest-4core-16gb 273 16 3:37
Top 3 slowest tests (at least 2 minutes):
duration env testname
3:20 aws-windows-latest-4core-16gb TestAccept
3:05 gcp-windows-latest-4core-16gb TestAccept
2:39 azure-windows-latest-4core-16gb TestAccept

change.Reason = deployplan.ReasonUnmanaged
}
return nil
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't we get this for free with the "backend_default" behavior?

@andrewnester
andrewnester added this pull request to the merge queue Nov 4, 2026
Merged via the queue into main with commit e709931 Nov 4, 2026
28 checks passed
@andrewnester
andrewnester deleted the fix/4012 branch November 4, 2026 15:06
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: e709931

Run: 41854313758

Env ❌​FAIL 🔄​flaky ✅​pass 🙈​skip Time
❌​ aws linux-2core-8gb 4 9 1498 1255 354:58
❌​ aws-windows-latest-4core-16gb 19 1411 1282 228:24
✅​ azure linux-2core-8gb 1358 1307 147:46
✅​ azure-windows-latest-4core-16gb 1277 1334 152:09
✅​ gcp linux-2core-8gb 1345 1312 159:35
✅​ gcp-windows-latest-4core-16gb 1264 1339 161:52
22 interesting tests: 19 FAIL, 3 flaky
Test Name aws linux-2core-8gb aws-windows-latest-4core-16gb
❌​ TestAccept ✅​p ❌​F
🔄​ TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN= 🔄​f ✅​p
🔄​ TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1 🔄​f ✅​p
❌​ TestAccept/bundle/resources/apps/lifecycle-started ✅​p ❌​F
❌​ TestAccept/bundle/resources/apps/lifecycle-started/DMS= ✅​p ❌​F
❌​ TestAccept/bundle/resources/clusters/deploy/data_security_mode ✅​p ❌​F
❌​ TestAccept/bundle/resources/clusters/deploy/data_security_mode/DMS= ✅​p ❌​F
❌​ TestAccept/bundle/resources/clusters/deploy/simple ✅​p ❌​F
❌​ TestAccept/bundle/resources/clusters/deploy/simple/DMS=true ✅​p ❌​F
❌​ TestAccept/bundle/resources/clusters/deploy/update-after-create 🔄​f ❌​F
❌​ TestAccept/bundle/resources/clusters/deploy/update-after-create/DMS= ✅​p ❌​F
❌​ TestAccept/bundle/resources/clusters/deploy/update-after-create/DMS=true 🔄​f ❌​F
❌​ TestAccept/bundle/resources/clusters/lifecycle-started ✅​p ❌​F
❌​ TestAccept/bundle/resources/clusters/lifecycle-started-toggle 🔄​f ❌​F
❌​ TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS= ❌​F ❌​F
❌​ TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=true 🔄​f ❌​F
❌​ TestAccept/bundle/resources/clusters/lifecycle-started/DMS= 🔄​f ❌​F
❌​ TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true 🔄​f ❌​F
❌​ TestAccept/bundle/resources/clusters/resize-terminated-fallback ❌​F ❌​F
❌​ TestAccept/bundle/resources/clusters/resize-terminated-fallback/DMS= ❌​F ❌​F
❌​ TestAccept/bundle/resources/clusters/resize-terminated-fallback/DMS=true ❌​F ❌​F
🔄​ TestSyncIncrementalFileSync 🔄​f ✅​p
Top 50 slowest tests (at least 2 minutes):
duration env testname
19:50 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/deploy/simple/DMS=
17:41 aws linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/update-after-create/DMS=
15:21 aws linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=true
13:40 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
13:04 gcp linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
12:09 gcp linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
11:48 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
11:34 aws-windows-latest-4core-16gb TestAccept/bundle/deploy/spark-jar-task/DMS=true
10:34 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/deploy/data_security_mode/DMS=true
10:17 aws linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
10:14 aws linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/simple/DMS=
9:58 aws linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
9:43 aws-windows-latest-4core-16gb TestAccept/bundle/deploy/spark-jar-task/DMS=
9:32 azure-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
9:24 aws linux-2core-8gb TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=
8:56 aws-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
8:46 azure linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
8:45 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
8:43 aws linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
8:35 azure-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
8:34 aws linux-2core-8gb TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1
8:33 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
8:29 azure linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
8:00 aws linux-2core-8gb TestAccept/bundle/config-remote-sync/multiple_resources/DMS=true
7:55 gcp linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started-toggle/DMS=true
7:53 aws linux-2core-8gb TestAccept/bundle/config-remote-sync/multiple_resources/DMS=
7:47 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DMS=
7:39 aws linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
7:34 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DMS=true
7:30 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
7:30 azure linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
7:20 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
7:16 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1
7:09 aws linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/data_security_mode/DMS=
6:58 aws linux-2core-8gb TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1
6:56 aws linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/simple/DMS=true
6:56 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=
6:54 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1
6:47 gcp linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started-toggle/DMS=
6:44 azure-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
6:44 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=
6:42 gcp-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1
6:25 azure linux-2core-8gb TestAccept/bundle/config-remote-sync/multiple_resources/DMS=true
6:22 gcp linux-2core-8gb TestAccept/bundle/config-remote-sync/multiple_resources/DMS=true
6:02 azure-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
5:59 azure linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
5:56 gcp linux-2core-8gb TestAccept/bundle/config-remote-sync/multiple_resources/DMS=
5:52 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=
5:29 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started-omitted/DMS=
5:21 azure-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DABs DABs related issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

registered_model aliases in bundle config not applied to Unity Catalog despite successful deploy

3 participants