Repository navigation
feat(dr-egeria): default editing commands to forLineage=true; Solution Component deployment status - #403
Merged
Conversation
…n Component deployment status Requested by Mandy Chessell. forLineage defaults (Promise support) - Egeria only returns Promise-classified elements (and Memento, logically deleted, elements) to requests with forLineage=true. Setting For Lineage on a command did not help: it only reached the request body, while the existence check, name lookups and fetch-by-GUID always used false -- so e.g. Update Solution Component on a promised component missed it and was rewritten into a Create. - pyegeria: new lineage_visible() context manager. Inside it, every JSON request body sent by any client (both BasePlatformClient and BaseServerClient request paths) goes out with forLineage=true, including bodies SDK helpers build with it false. - Dr.Egeria: editing commands run inside lineage_visible(True); report commands (View/List/Run) default to false. An explicit For Lineage value wins, except Declassify Promise, which always uses true. A Memento element found by an editing command is treated as not found, so a Create for a deleted element's name still creates rather than updating the deleted one. Solution Component (0730) - Create Solution Component gains Deployment Status / User Defined Deployment Status, sent as deploymentStatus / userDefinedDeploymentStatus. Shared attribute definitions kept identical in the Curation and Solution Architect families (global attribute namespace). - Fix "compoent(s)" typos in Link Solution Components / Link SubComponent. Verified against a live server: a promised Solution Component was found and updated in place by Update Solution Component with no For Lineage attribute (same GUID, no duplicate), deploymentStatus stored, report-style find hid it by default and showed it inside lineage_visible(). Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
…t-body tests AssetCatalog's constructor calls check_connection(), so these tests only passed on machines with an Egeria server at localhost:9443 -- CI has none, and main has failed since odpi#402 added test_asset_lineage_for_lineage.py. Stub check_connection and use a port nothing listens on, so any real network call fails loudly instead of silently relying on a local server. Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
dwolfson
added a commit
that referenced
this pull request
Oct 1, 2026
Release carrying the forLineage=true defaults for Dr.Egeria editing commands, lineage_visible() in the SDK and Solution Component deployment status (#403), plus the Promise classification commands and the JSON Dictionary parsing fix (#402). 6.1.24 is skipped as a tagged release: a 6.1.24 build was uploaded to PyPI on 2026-09-30 ahead of #402/#403 merging, so the release workflow could not publish the merged code under that version (PyPI files are immutable). Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.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.
Summary
Three requests from Mandy Chessell.
1. Editing commands default to
forLineage=true(Promise support)Egeria only returns Promise-classified elements (and Memento, i.e. logically deleted, elements) to requests with
forLineage=true.The problem: setting
For Lineageon a command didn't help. It only reached the request body. The existence check, name lookups and fetch-by-GUID always usedfalse, soUpdate Solution Componenton a promised component missed it and was rewritten into aCreate.The fix:
lineage_visible()context manager (from pyegeria import lineage_visible). Inside it, every JSON request body any client sends goes out withforLineage=true, including bodies SDK helpers build with it set tofalse. Both request paths are hooked (BasePlatformClientandBaseServerClient).lineage_visible(True).View/List/Run) default tofalse.For Lineagewins, exceptDeclassify Promise, which always usestrue.Createfor a deleted element's name therefore still creates a new element instead of updating the deleted one.2. Solution Component deployment status (0730)
Create Solution ComponentgainsDeployment Status/User Defined Deployment Status, sent asdeploymentStatus/userDefinedDeploymentStatus. Report specs regenerated.3. Typo
Fixed "compoent(s)" in
Link Solution ComponentsandLink SubComponent.Testing
tests/micro-tests/test_for_lineage_default.pycovers the body rewrite, the real POST path, the per-command defaults and the Memento guard. The POST-path test caught thatBaseServerClienthas its own copy of the request code, which the first version missed.test_curation_promise.pygains a case forDeclassify Promisewith an explicitFor Lineage: false.tests/micro-testssuite passes.validate_compact_specs: 0 errors.deploymentStatusand promised it; it was hidden from normal lookups.Update Solution Componentwith noFor Lineageupdated it in place: same GUID, no duplicate.lineage_visible().🤖 Generated with Claude Code