Fix CONNECT-50: set qualifiedName in version-agnostic Model creators#2630
Merged
Conversation
The version-agnostic ModelEntity.creator(...) and ModelAttribute.creator(...) overloads set modelVersionAgnosticQualifiedName but never qualifiedName. Since qualifiedName is a mandatory, client-generated primary key for Model assets on the non-versioned path, creating these assets without a modelBusinessDate failed silently at POST /api/meta/entity/bulk. Set qualifiedName to the same generated value as modelVersionAgnosticQualifiedName, matching creatorForVersion and every other Model* creator (e.g. ModelEntityAssociation.creator, which already sets both and is exercised alongside modelBusinessDate). Applied to the _overlays sources and the generated mirrors. Adds ModelCreatorTest covering the non-versioned path (no modelBusinessDate), the gap that let this regress unnoticed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Chris (He/Him) <cgrote@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The version-agnostic
ModelEntity.creator(...)andModelAttribute.creator(...)overloads setmodelVersionAgnosticQualifiedNamebut never setqualifiedName. SincequalifiedNameis a mandatory, client-generated primary key for Model assets on the non-versioned path, creating these assets without amodelBusinessDatefailed silently atPOST /api/meta/entity/bulk(timeout, no error).Reported by CME Group (cmegroup-uat) via CONNECT-50 / ZD-125710. Customer-confirmed that appending
.qualifiedName(...)manually resolves it.Fix
Set
qualifiedNameto the same generated value asmodelVersionAgnosticQualifiedName— one line in each creator. This matchescreatorForVersionand every otherModel*creator, notablyModelEntityAssociation.creator, which already sets both keys and is exercised alongsidemodelBusinessDatein the integration tests — proving the combination is compatible with the server-side versioning path.Applied to both the
_overlays/sources (canonical) and the generated mirrors so it ships without waiting for aatlanhq/models→atlan-javare-sync.All 2-/3-arg overloads delegate to the 5-arg creator, so this covers every entry point the customer tried.
Blast radius
Low.
modelBusinessDateset): payload now includesqualifiedName, proven compatible by the sibling association creator..qualifiedName(...)as a workaround: their explicit builder call still wins → no change.Tests
Adds
ModelCreatorTest(pure builder assertions, no live tenant) covering the non-versioned path with nomodelBusinessDate— the exact coverage gap that let this regress, sinceModelTestonly ever exercises the creators withmodelBusinessDateset. AssertsqualifiedNameis non-null, equalsmodelVersionAgnosticQualifiedName, and is rooted under the parent QN.🤖 Generated with Claude Code