Skip to content

fix: SemanticAssignment status, retire Agreement Type, AssetMaker status default, remove_note route (ISSUE-144/145/146/147/148) - #451

Merged
dwolfson merged 9 commits into
odpi:mainfrom
dwolfson:fix/issue-144-status-fields
Oct 13, 2026
Merged

dwolfson merged 9 commits into
odpi:mainfrom
dwolfson:fix/issue-144-status-fields

Conversation

@dwolfson

@dwolfson dwolfson commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Summary

Fixes ISSUE-144, ISSUE-145 and ISSUE-148. Routes remove_note through the Metadata Expert delete (ISSUE-146, still open on Egeria's side), and logs ISSUE-147 (an Egeria valid-metadata clear bug).

Behaviour change (ISSUE-148): seven AssetMaker action/process queries no longer filter to IN_PROGRESS by default. See below.

ISSUE-144: SemanticAssignment status

Reported by the Resource Browser session (egeria-workspaces-fs) from a live test.

  • Bug: Dr.Egeria's Link Semantic Assignment (md_processing/v2/curation.py) sent the assignment status as "status". Egeria's SemanticAssignmentProperties field is termAssignmentStatus (enum TermAssignmentStatus), and Egeria ignores unknown fields, so the status never reached the server.
  • Fix: send termAssignmentStatus. Governance Status resolves to the governance statusIdentifier code, which uses the same codes, so it is converted to the enum constant name (3 becomes VALIDATED). A display name is upper-cased.
  • Docstrings: corrected the two setup_semantic_assignment sample bodies. The get_meanings / get_semantic_assignees samples stay as they are: SemanticAssignmentQueryProperties really does use status.
  • Live check: the peer confirmed that termAssignmentStatus: "PROPOSED" is stored and read back.
  • Status-field sweep: every status-like field Dr.Egeria sends was checked against the Egeria Java DTO, including superclasses. The only other mismatch was the agreement* fields (ISSUE-145). The full list is in the ISSUE-144 entry in PYEGERIA_ISSUES.md.

ISSUE-145: Agreement Type retired, Service Levels added

  • AgreementProperties declares no fields of its own, and AgreementType is deprecated in Egeria. Following the owner's decision, the Agreement Type attribute is removed from the Digital Products compact spec (edited through the Spec Editor API); Purpose carries the intent.
  • Removed the five agreement* keys from set_collection_manager_body(), plus subscriberType/subscriberId, which DigitalSubscriptionProperties doesn't have either.
  • Digital Subscription Base gains a Service Levels Dictionary attribute next to Support Level, matching supportLevel / serviceLevels (Map<String,String>).
  • Ran refresh_specs --merge-reports to regenerate templates, help and report specs. The format-set diff only removes Agreement Type columns and adds Service Levels ones. dr_test_products_good.md is updated to match.

ISSUE-146: remove_note route (Egeria-side issue remains open)

  • remove_note now posts to metadata-expert/metadata-elements/{guid}/delete, built from the platform root so it works the same on a MetadataExpert client (which overrides command_root).
  • A trace of the Egeria source shows this reaches the same deleteMetadataElementInStore code as the asset delete, so it doesn't avoid OMAG-REPOSITORY-HANDLER-400-008. We'll re-test once Egeria's delete fixes are published.
  • The ISSUE-146 entry also records the note-privacy findings from the egeria-workspaces-fs session.

ISSUE-148: AssetMaker action queries no longer default to IN_PROGRESS (behaviour change)

  • find_processes, get_processes_by_category, get_action_targets, get_actions_for_action_target, get_assigned_actions, get_actions_for_sponsor and get_actions_for_requester (sync and async) defaulted activity_status_list to ["IN_PROGRESS"]. That silently dropped journal entries (which have no activity status) and every finished action. They now default to None (no filter).
  • Also fixes a mismatch: _async_find_processes defaulted to [], while its sync wrapper used ["IN_PROGRESS"].
  • Callers that want only open work must pass ["IN_PROGRESS"] explicitly. The egeria-workspaces-fs and trellis sessions checked their callers, and none relies on the old default. This is noted for the 6.2.3 release notes.

ISSUE-147: valid-metadata clears (Egeria-side, logged only)

  • Re-tested live on made-up properties. Every clear call returns OPEN-METADATA-400-011 "not found", even when the delete worked, and clear-map-value deletes nothing at all.
  • Cause: Egeria's ValidMetadataValueHandler has no return after the delete, and passes null for mapName. Added to the backlog item for re-testing deletes.

Test plan

  • tests/micro-tests/test_issue_144_term_assignment_status.py
  • tests/micro-tests/test_issue_146_remove_note_url.py (MyProfile and MetadataExpert clients)
  • Spec Editor validation and validate_compact_specs are clean; the attribute-consumption audit finds nothing for Digital Subscription
  • tests/micro-tests/test_issue_148_activity_status_default.py (default sends no filter; an explicit filter is still sent, for all 7 methods)
  • Full micro-test suite passes (1129 tests)
  • Re-test remove_note live once Egeria's delete fixes are published

🤖 Generated with Claude Code

…s (ISSUE-144)

Link Semantic Assignment sent "status", which Egeria's
SemanticAssignmentProperties does not have, so the status was silently
dropped. Send termAssignmentStatus, converting the Governance Status code
or display name to the TermAssignmentStatus constant. Correct the
setup_semantic_assignment docstring samples.

Log ISSUE-145 (agreement* fields Egeria's AgreementProperties lacks),
found in a sweep of every status field Dr.Egeria sends.

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
…te delete endpoint)

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
… the only route

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
…Subscription (ISSUE-145)

AgreementProperties declares no fields of its own and AgreementType is
deprecated in Egeria, so the Agreement Type attribute is removed from the
Digital Products compact spec; Purpose carries the intent. The five
agreement* keys and the undeclared subscriberType/subscriberId keys are
removed from set_collection_manager_body(). Digital Subscription Base gains
a Service Levels Dictionary attribute, matching DigitalSubscriptionProperties.
Templates, help and report specs regenerated with refresh_specs.

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
…ISSUE-146)

Egeria 6.2 has no note delete endpoint; notes are Actions. remove_note now
posts to metadata-expert/metadata-elements/{guid}/delete, built from the
platform root so it is the same on a MetadataExpert client (which overrides
command_root). A source trace shows this reaches the same
deleteMetadataElementInStore code as the asset delete, so it does not avoid
OMAG-REPOSITORY-HANDLER-400-008; ISSUE-146 stays open pending Egeria's
delete fixes. ISSUE-146 also records the note-privacy findings from the
egeria-workspaces-fs session.

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
@dwolfson dwolfson changed the title fix(dr-egeria): send SemanticAssignment status as termAssignmentStatus (ISSUE-144) fix: SemanticAssignment status, retire Agreement Type, remove_note route (ISSUE-144/145/146) Oct 13, 2026
… lands

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
…11; map value never cleared)

Re-tested live on qs-view-server with made-up properties. Cause is in
Egeria's ValidMetadataValueHandler: no return after the delete, and
clearValidMetadataMapValue passes null for mapName. Added to the
delete re-test backlog item.

Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
@dwolfson
dwolfson merged commit 0d0d553 into odpi:main Oct 13, 2026
5 checks passed
@dwolfson dwolfson changed the title fix: SemanticAssignment status, retire Agreement Type, remove_note route (ISSUE-144/145/146) fix: SemanticAssignment status, retire Agreement Type, AssetMaker status default, remove_note route (ISSUE-144/145/146/147/148) Oct 13, 2026
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