Repository navigation
feat(dr-egeria): add Automation family (initiate processes, surveys, subscriptions) - #414
Merged
Merged
Conversation
…subscriptions)
Requested by Mandy Chessell. A new Dr.Egeria family for commands that set
Egeria's governance engines running (md_processing/v2/automation.py):
- Initiate Governance Action Process / Initiate Governance Action Type: run a
process or a single action type; Action Targets takes "action target name:
element" pairs, Request Parameters "name: value" pairs.
- Initiate Survey: run a survey type against one resource. The action target
name each survey expects is read from the survey type's specification.
- Initiate Subscription: Egeria has no direct create-subscription call -- a
digital product offers each subscription type as a SubscribingActionProcess
(ProvisioningActionProcess::<product>::Create Subscription::<type>) that
already carries everything except the requester and destination. Running it
provisions the subscription, its license and data delivery. (Named Initiate,
not Create, because it runs a process; Create Digital Subscription only
records the element.)
- Cancel Subscription: runs the DeletingActionProcess Egeria links to each
subscription via ResourceList (resourceUse "Cancel Subscription").
- Create Element moves here from Asset Maker (same AssetMakerProcessor).
- Shared Action Author attribute descriptions generalised (they described
linking); definitions kept identical in both files.
pyegeria (automated_curation.py) -- Egeria's request bodies changed since
these methods were written, and Egeria ignores unknown fields, so:
- initiate_gov_action_process / initiate_gov_action_type sent
requestSourceGUIDs (and the process call startTime); Egeria's beans expect
actionSourceGUIDs / startDate, so request sources and start time were
silently dropped.
- every initiate_*_survey helper sent action target name "serverToSurvey";
survey types now declare their own (postgresDatabase, postgreSQLServer,
fileToSurvey, unityCatalogServer, ...). _async_initiate_survey now reads it
from the survey type (new _async_get_supported_action_target_names), with an
optional override and "serverToSurvey" when the type accepts any name ("*").
Verified against a live server: Initiate Survey started the PostgreSQL
database survey with postgresDatabase (the survey then failed on the
catalogued connection's database user -- an environment issue);
Initiate Subscription provisioned an evaluation subscription, whose
"Cancel Subscription" process Cancel Subscription found and ran, removing it.
Signed-off-by: Dan Wolfson <dan.wolfson@pdr-associates.com>
dwolfson
added a commit
that referenced
this pull request
Oct 2, 2026
Release carrying the Dr.Egeria Automation family and automated-curation SDK fixes (#414), and the My Profile performance work with the exec_report_spec graph_query_depth fix, the my_egeria packaging fix (console scripts now work from a pip install) and the serve/startup-check fixes (#417). 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
A new Dr.Egeria Automation family, requested by Mandy Chessell, for commands that set Egeria's governance engines running. It also fixes three automated-curation SDK methods whose request bodies had drifted from Egeria's.
Commands (
md_processing/v2/automation.py)Initiate Governance Action ProcessAction Targetstakesaction target name: elementpairs;Request Parameterstakesname: valuepairs.Initiate Governance Action TypeInitiate SurveyInitiate SubscriptionProvisioningActionProcess::<product>::Create Subscription::<type>) with a requester and destination data set. This provisions the subscription, its license and data delivery.Cancel SubscriptionresourceUse= "Cancel Subscription").Create ElementEgeria has no direct create/cancel-subscription call: both are governance action processes, so the subscription commands run processes. That's why it's Initiate Subscription. The existing
Create Digital Subscriptiononly records the element.The Action Author attributes shared with this family (
Governance Action Process,Governance Action Type,Request Parameters,Request Source Elements,Action Target Name) had link-specific descriptions. Those descriptions are generalised, and the definitions are identical in both files.pyegeria fixes (
automated_curation.py)Egeria's request bodies changed after these methods were written, and Egeria ignores unknown fields, so these failed silently:
initiate_gov_action_process/initiate_gov_action_typesentrequestSourceGUIDs, and the process call also sentstartTime. Egeria expectsactionSourceGUIDs/startDate, so request sources and start times were dropped.initiate_*_surveyhelper sent the action target nameserverToSurvey. The live server declarespostgresDatabase,postgreSQLServer,fileToSurvey,unityCatalogServerand so on._async_initiate_surveynow reads the name from the survey type, using the new_async_get_supported_action_target_names. It also takes an optional override, and falls back toserverToSurveywhen the type accepts any name (*).Testing
tests/micro-tests/test_automation_family.pyruns all five commands through the real dispatcher, includingCancel Subscriptionfailing clearly when there's no cancel process. It also covers the SDK request bodies and survey target-name selection. The fulltests/micro-testssuite passes.validate_compact_specs: 0 errors.Initiate Surveystarted the PostgreSQL database survey ofadventureworkswithpostgresDatabase. The survey service then failed withrole "default" does not exist; that's an environment issue with the catalogued connection's database user.Initiate Subscriptionprovisioned an evaluation subscription to theReference Data Set: facilityTypeproduct. ItsCancel Subscriptionresource appeared on the subscription, andCancel Subscriptionfound and ran it, which removed the subscription.🤖 Generated with Claude Code