Skip to content

Dr.Egeria updates no longer reset properties the document doesn't set (ISSUE-162) - #482

Merged
dwolfson merged 3 commits into
odpi:mainfrom
dwolfson:fix/issue-162-update-resets-booleans
Oct 23, 2026
Merged

dwolfson merged 3 commits into
odpi:mainfrom
dwolfson:fix/issue-162-update-resets-booleans

Conversation

@dwolfson

Copy link
Copy Markdown
Member

Fixes ISSUE-162 (PYEGERIA_ISSUES.md; the entry is added in this PR): Dr.Egeria updates reset properties the document didn't mention.

Problem

Merge updates (Egeria's default) drop only None values, so any property with a non-None default was sent on every update and overwrote Egeria's existing value:

  • Update Glossary Term sent isAbstractConcept, isActivityDescription, isContext and isDataValue as False. A term with any of these set lost it on an unrelated update. Found by Resource Explorer while preparing a 96-term update batch.
  • Update Data Value Specification / Data Class sent allowsDuplicateValues and isNullable as True, matchPropertyNames, sampleValues and dataPatterns as [], matchThreshold as 0, and specificationDetails and additionalProperties as {}.

Change

  • These attributes now default to None, so a merge update leaves them out unless the document sets them. Egeria's mergeUpdate defaults to true, so the existing values are kept.
  • The previous defaults are applied only on Create (_with_create_defaults in md_processing/v2/data_designer.py, and the term flags in md_processing/v2/glossary.py), so creation behaves as before.

Testing

  • tests/micro-tests/test_issue_162_update_does_not_reset_properties.py: 7 cases. The 4 update cases fail on the old code; the 3 create cases check the create defaults are unchanged.
  • The full micro-test suite (1,436 tests) passes in a clean python:3.13-slim container with no Egeria.
  • Not live-tested.

🤖 Generated with Claude Code

dwolfson and others added 3 commits October 23, 2026 08:42
…s to False

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
…t set (ISSUE-162)

Update Glossary Term sent isAbstractConcept/isActivityDescription/
isContext/isDataValue = False whenever the document omitted them, and
Update Data Value Specification / Data Class sent allowsDuplicateValues
/ isNullable = True plus empty lists/maps/0 for matchPropertyNames,
matchThreshold, specificationDetails, sampleValues, dataPatterns and
additionalProperties. Merge updates dropped only None, so these
overwrote existing values. They now default to None (omitted on a
merge update, which Egeria defaults to); the old defaults are applied
only on Create, so creation is unchanged.

Micro-tests: tests/micro-tests/test_issue_162_update_does_not_reset_properties.py
(update cases fail on the old code). Full micro-test suite passes in a
clean python:3.13-slim container.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
…properties)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
@dwolfson
dwolfson merged commit 87fad7b into odpi:main Oct 23, 2026
5 checks passed
dwolfson added a commit to dwolfson/egeria-python that referenced this pull request Oct 23, 2026
…lass-names

Resolved the only conflict, PYEGERIA_ISSUES.md: both PRs inserted entries at
the top of "Open pyegeria items". Kept both, newest first: ISSUE-165, 164,
163, then 162.

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant