Skip to content

Fix CONNECT-50: set qualifiedName in version-agnostic Model creators#2630

Merged
cmgrote merged 1 commit into
mainfrom
CONNECT-50
Jul 13, 2026
Merged

Fix CONNECT-50: set qualifiedName in version-agnostic Model creators#2630
cmgrote merged 1 commit into
mainfrom
CONNECT-50

Conversation

@cmgrote

@cmgrote cmgrote commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

Problem

The version-agnostic ModelEntity.creator(...) and ModelAttribute.creator(...) overloads set modelVersionAgnosticQualifiedName but never set 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 (timeout, no error).

Reported by CME Group (cmegroup-uat) via CONNECT-50 / ZD-125710. Customer-confirmed that appending .qualifiedName(...) manually resolves it.

Fix

Set qualifiedName to the same generated value as modelVersionAgnosticQualifiedName — one line in each creator. This matches creatorForVersion and every other Model* creator, notably ModelEntityAssociation.creator, which already sets both keys and is exercised alongside modelBusinessDate in 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 a atlanhq/modelsatlan-java re-sync.

All 2-/3-arg overloads delegate to the 5-arg creator, so this covers every entry point the customer tried.

Blast radius

Low.

  • Non-versioned users (the reported case): currently broken → fixed.
  • Versioned users (modelBusinessDate set): payload now includes qualifiedName, proven compatible by the sibling association creator.
  • Users already appending .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 no modelBusinessDate — the exact coverage gap that let this regress, since ModelTest only ever exercises the creators with modelBusinessDate set. Asserts qualifiedName is non-null, equals modelVersionAgnosticQualifiedName, and is rooted under the parent QN.

🤖 Generated with Claude Code

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>
@linear

linear Bot commented Jul 13, 2026

Copy link
Copy Markdown

CONNECT-50

@cmgrote
cmgrote merged commit cbf31aa into main Jul 13, 2026
5 checks passed
@cmgrote cmgrote added the bug Something isn't working label Jul 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant