Skip to content

Commit

Permalink
Merge pull request #912 from mandy-chessell/code2024
Browse files Browse the repository at this point in the history
Add new properties to engine actions
  • Loading branch information
mandy-chessell authored Mar 13, 2024
2 parents ea383b2 + 5908237 commit cd0b414
Show file tree
Hide file tree
Showing 9 changed files with 58 additions and 322 deletions.
8 changes: 6 additions & 2 deletions site/docs/release-notes/5-0.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@ Release 5.0 is a major functional release focused on usability, both from the po
* A new classification called [*RootCollection*](/types/0/0021-Collections) can be added to a collection entity to indicate that it is the root of collection hierarchy.
* The [*Collection*](/types/0/0021-Collections) entity has a new attribute called *collectionType* that can be used to identify the concept that the collection represents.
* A new supertype called [*Action*](/types/1/0137-Actions) has been added to the [*ToDo*](/types/1/0137-Actions) and [*EngineAction*](/types/4/0463-Engine-Actions).
* The [*Actions*](/types/1/0137-Actions) relationship now links an [*Action*](/types/1/0137-Actions) to a [*Referenceable*](/types/0/0010-Base-Model).
* The [*ToDo*](/types/1/0137-Actions) entity has a new property called *lastReviewTime*.
* The [*ActionSponsor*](/types/1/0137-Actions) relationship now links an [*Action*](/types/1/0137-Actions) to a [*Referenceable*](/types/0/0010-Base-Model).
* The [*ToDo*](/types/1/0137-Actions) entity has a new attribute called *lastReviewTime*.
* The [*EngineAction*](/types/4/0463-Engine-Actions) entity has new attributes called *requesterUserId* and *requestedStartDate*.
* A new classification called [*PersonalProject*](/types/1/0130-Projects) can be added to a project entity to indicate that it is an informal project that have been created by an individual to help them organize their work.
* A new classification called [*StudyProject*](/types/1/0130-Projects) can be added to a project entity to indicate that it is a focused analysis of a topic, person, object or situation.
* A new classification called [*DataScope*](/types/2/0210-Data-Stores) can be added to a referenceable entity (typically a DataStore or DataSet) to define the scope of the associated data resource in space and time.
Expand Down Expand Up @@ -176,6 +177,9 @@ Release 5.0 is a major functional release focused on usability, both from the po
??? functional "Integration Connector Providers can now list catalog target types"
The developer of an [integration connector](/concepts/integration-connector) can provide information about the third party technology it exchanges metadata with through [catalog target types](/concepts/catalog-target).

??? functional "Overriding configuration properties for each catalog target"
An integration connector's behaviour is controlled through a map of configuration properties passed in the *configurationProperties* attribute of the integration connector's connection object. It is now possible to override the settings of these properties for each catalog target that the integration connector iw processing. These overriding configuration properties are stored in the [*CatalogTarget*](/types/4/0464-Dynamic-Integration-Groups) relationship's properties.

??? functional "Governance Service Providers can now export their specification"
The developer of a [governance service](/concepts/governance-service) can provide information about the request types, request parameters and [action target types](/concepts/action-target) it consumes and produces making it easier for consumers creating [governance engine definitions](/concepts/governance-engine-definition), [governance action types](/concepts/governance-action-type) and [governance action processes](/concepts/governance-action-process) to incorporate the governance service into their work.

Expand Down
10 changes: 2 additions & 8 deletions site/docs/types/4/0462-Governance-Action-Processes.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,12 @@ In Egeria, the [Open Governance Service](/services/gaf-metadata-management) prov

The *GovernanceActionType* entity describes a type of call to a [governance service](/concepts/governance-service) running in a [governance engine](/concepts/governance-engine). The engine to call is defined using the *GovernanceActionExecutor* relationship. When the governance action type is used to initiate some activity, it results in the creation of an [Engine Action](/concepts/engine-action) to control the call to the governance service running in the linked governance engine.

The properties of a *GovernanceActionType* entity are:
It inherits from [Referenceable](/types/0/0010-Base-Model) and adds the following attributes:

* *domainIdentifier* links the action to a specific [governance domain](/concepts/governance-domain).
* *displayName* - human-readable name for messages and user interfaces.
* *description* - description of the governance action that is taken.
* *requiredRequestParameters* - lists the required request parameters that should be supplied by the caller when the governance action type is used to initiate an engine action, along with its description.
* *producedActionTargets* - lists the required action targets that should be supplied by the caller when the governance action type is used to initiate an engine action, along with its description.
* *producedRequestParameters* - lists the required request parameters that should be supplied by the caller when the governance action type is used to initiate an engine action, along with its description.
* *producedActionTargets* - lists the required action targets that should be supplied by the caller when the governance action type is used to initiate an engine action, along with its description.
* *producedGuards* - lists the possible guards produced by the called governance service when it completes along with a description of the guard. This is used to help the individual/tool to understand the possible outcomes.
* *waitTime* - the minimum number of minutes that the engine action should wait before starting.
* *waitTime* - the minimum number of minutes that the engine action should wait before starting. This is in addition to any requested start time from the initiating user.

## GovernanceActionExecutor relationships

Expand All @@ -39,7 +34,6 @@ The *GovernanceActionExecutor* relationship identifies the [governance service](
* *actionTargetFilter* - lists the names of the action targets to remove from the supplied action targets.
* *actionTargetMap* - provides a translation map between the supplied name of an action target and the name supported by the implementation of the governance service.


## GovernanceActionProcess entity

The *GovernanceActionProcess* entity is the root of the governance action process. It gives the process its unique name and defines the first step through the *GovernanceActionProcessFlow* relationship.
Expand Down
2 changes: 1 addition & 1 deletion site/docs/types/4/0462-Governance-Action-Processes.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion site/docs/types/4/0463-Engine-Actions.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
39 changes: 22 additions & 17 deletions site/docs/types/4/0464-Dynamic-Integration-Groups.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ An [integration group](/concepts/integration-group) is a [software capability](/

The integration connectors to run in an *integration group* are specified via the *RegisteredIntegrationConnector* relationships.

- `connectorName` sets up the name of the connector. This name is used for routing refresh calls to the connector as well as being used for diagnostics. Ideally it should be unique amongst the connectors for the integration service.
- `connectorUserId` sets up the user id for the connector - if this is null, the integration daemon's userId is used on requests to the Open Metadata Access Service (OMAS).
- `metadataSourceQualifiedName` sets up the qualified name of the metadata source for this integration connector. This is the qualified name of an appropriate software capability element stored in open metadata. This software capability is accessed via the partner OMAS and is used to control the origin information [- known as metadata provenance](/features/metadata-provenance/overview) in any metadata elements created by the integration connector. The default value is *null*, which means all metadata elements created by the integration connector will have *local cohort* provenance values and can be updated by other process in the open metadata ecosystem. If it is set up with a valid qualified name, the metadata elements will have external source provenance values and only the integration connector is able to update the values.
- `startDate` sets up a date/time that determines when the integration connector can start running.
- `refreshTimeInterval` sets up the number of minutes between each call to the connector to refresh the metadata. Zero means that refresh is only called at server start up and whenever the refresh REST API request is made to the integration daemon. If the refresh time interval is greater than 0 then additional calls to refresh are added spaced out by the refresh time interval.
- `stopDate` sets up a date/time that determines when the integration connector must stop running.
- `permittedSynchronization` is an optional property that defines the permitted directions of metadata flow between the third party technology and open metadata. If the integration connector attempts to flow metadata in a direction that is not permitted, it receives the `UserNotAuthorizedException`. The default for this value is set up automatically in the integration service's descriptive information so this value only needs to be set if it is necessary to restrict the behavior of the connector. These are the different values for this property and their effect:
- *connectorName* sets up the name of the connector. This name is used for routing refresh calls to the connector as well as being used for diagnostics. Ideally it should be unique amongst the connectors for the integration service.
- *connectorUserId* sets up the user id for the connector - if this is null, the integration daemon's userId is used on requests to the Open Metadata Access Service (OMAS).
- *metadataSourceQualifiedName* sets up the qualified name of the metadata source for this integration connector. This is the qualified name of an appropriate software capability element stored in open metadata. This software capability is accessed via the partner OMAS and is used to control the origin information [- known as metadata provenance](/features/metadata-provenance/overview) in any metadata elements created by the integration connector. The default value is *null*, which means all metadata elements created by the integration connector will have *local cohort* provenance values and can be updated by other process in the open metadata ecosystem. If it is set up with a valid qualified name, the metadata elements will have external source provenance values and only the integration connector is able to update the values.
- *startDate* sets up a date/time that determines when the integration connector can start running.
- *refreshTimeInterval* sets up the number of minutes between each call to the connector to refresh the metadata. Zero means that refresh is only called at server start up and whenever the refresh REST API request is made to the integration daemon. If the refresh time interval is greater than 0 then additional calls to refresh are added spaced out by the refresh time interval.
- *stopDate* sets up a date/time that determines when the integration connector must stop running.
- *permittedSynchronization* is an optional property that defines the permitted directions of metadata flow between the third party technology and open metadata. If the integration connector attempts to flow metadata in a direction that is not permitted, it receives the `UserNotAuthorizedException`. The default for this value is set up automatically in the integration service's descriptive information so this value only needs to be set if it is necessary to restrict the behavior of the connector. These are the different values for this property and their effect:

- `TO_THIRD_PARTY` - The third party technology is logically downstream of open metadata. This means the open metadata ecosystem is the originator and owner of the metadata being synchronized. Any updates detected in the third technology are overridden by the latest open metadata values.
- `FROM_THIRD_PARTY` - The third party technology is logically upstream (the originator and owner of the metadata). Any updates made in open metadata are not passed to the third party technology and the third party technology is requested to refresh the open metadata version.
Expand All @@ -33,27 +33,32 @@ The integration connectors to run in an *integration group* are specified via th

An integration connector can be linked to multiple integration groups via the *RegisteredIntegrationConnector* relationship. It can only be linked to a specific integration group once. If multiple instances of the same integration connector implementation is to be specified in a group. each one is represented by an *IntegrationConnector* entity linked to its own *Connection* entity that describes its required behaviour.

The `usesBlockingCalls` attribute sets up whether the connector should be started in its own thread to allow it to block on a listening call.
The *usesBlockingCalls* attribute sets up whether the connector should be started in its own thread to allow it to block on a listening call.

## CatalogTarget relationship

The *CatalogTarget* relationship links an *IntegrationConnector* entity to another entity that the integration connector is to update. For example, if an integration connector is configured to catalog a database and its [*Database*](/types/2/0224-Databases) entity is already created, the *CatalogTarget* would link the *IntegrationConnector* entity with the *Database* entity. This prevents the integration connector from recreating the Database entity when it runs.

An integration connector may have multiple catalog targets. The attributes of this relationship are used to control the processing of each one.

* *catalogTargetName* provides a symbolic name for the catalog target. This is used in messages ans it is helpful to have a unique name ofr each catalog target.
* *configurationProperties* provide properties that control the behaviour of the integration connector whilst it is processing the catalog target. Its value override the configuration properties supplied in the integration connector's connection.

## IntegrationReport entity

The *IntegrationReport* entity describes the updates made by an [integration connector](/concepts/integration-connector) during a single call to its `refresh()` method. A report is only created if the connector made changes (create, update, delete) to the metadata.

The attributes are as follows:

* `serverName` - name of the [integration daemon](/concepts/integration-daemon) where the integration connector is running/ran.
* `connectorId` : unique identifier of the connector. This is either set in the integration daemon's configuration document or it is the unique identifier (guid) of the *RegisteredIntegrationConnector* relationship that links the integration connector into a running integration group.
* `connectorName` : name of the connector. This is either set in the integration daemon's configuration document or it is the unique identifier (guid) of the *RegisteredIntegrationConnector* relationship that links the integration connector into a running integration group.
* `refreshStartDate` : The date/time that the `refresh()` call was made to the integration connector.
* `refreshCompletionDate` : The data/time that the integration connector returned from the `refresh()` call.
* `createCounts` : A map of element type names to the number of instances of that type that were created and anchored to the anchor subject.
* `updateCounts` : A map of element type names to the number of instances of that type that were updated while anchored to the anchor subject.
* `deleteCounts` : A map of element type names to the number of instances of that type that were deleted while anchored to the anchor subject.
* `additionalProperties` - additional properties of importance to the integration connector.
* *serverName* - name of the [integration daemon](/concepts/integration-daemon) where the integration connector is running/ran.
* *connectorId* : unique identifier of the connector. This is either set in the integration daemon's configuration document or it is the unique identifier (guid) of the *RegisteredIntegrationConnector* relationship that links the integration connector into a running integration group.
* *connectorName* : name of the connector. This is either set in the integration daemon's configuration document or it is the unique identifier (guid) of the *RegisteredIntegrationConnector* relationship that links the integration connector into a running integration group.
* *refreshStartDate* : The date/time that the `refresh()` call was made to the integration connector.
* *refreshCompletionDate* : The date/time that the integration connector returned from the `refresh()` call.
* *createCounts* : A map of element type names to the number of instances of that type that were created and anchored to the anchor subject.
* *updateCounts* : A map of element type names to the number of instances of that type that were updated while anchored to the anchor subject.
* *deleteCounts* : A map of element type names to the number of instances of that type that were deleted while anchored to the anchor subject.
* *additionalProperties* - additional properties of importance to the integration connector.

## RelatedIntegrationReport relationship

Expand Down
4 changes: 2 additions & 2 deletions site/docs/types/4/0464-Dynamic-Integration-Groups.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit cd0b414

Please sign in to comment.