From 157eaf9caaefadd1760fc222b26052bea49a0f26 Mon Sep 17 00:00:00 2001 From: Mandy Chessell Date: Tue, 9 Nov 2021 21:51:45 +0000 Subject: [PATCH 1/3] Add repository connector descriptions Signed-off-by: Mandy Chessell --- site/docs/connectors/connector-catalog.drawio | 2 +- .../adapter-repository-connector.svg | 2 +- site/docs/connectors/repository/in-memory.md | 16 ++++++ .../docs/connectors/repository/janus-graph.md | 54 +++++++++++++++++++ ...s-point-cohort-member-client-connector.svg | 3 ++ ...s-store-cohort-member-client-connector.svg | 3 ++ .../native-repository-connector.svg | 2 +- ...rs-rest-cohort-member-client-connector.svg | 3 ++ site/docs/connectors/repository/read-only.md | 20 +++++++ site/docs/services/omrs/index.md | 4 +- site/mkdocs.yml | 2 +- site/overrides/home.html | 17 +++--- 12 files changed, 115 insertions(+), 13 deletions(-) create mode 100644 site/docs/connectors/repository/in-memory.md create mode 100644 site/docs/connectors/repository/janus-graph.md create mode 100644 site/docs/connectors/repository/metadata-access-point-cohort-member-client-connector.svg create mode 100644 site/docs/connectors/repository/metadata-access-store-cohort-member-client-connector.svg create mode 100644 site/docs/connectors/repository/omrs-rest-cohort-member-client-connector.svg create mode 100644 site/docs/connectors/repository/read-only.md diff --git a/site/docs/connectors/connector-catalog.drawio b/site/docs/connectors/connector-catalog.drawio index 5de6554b55..0443a5fb42 100644 --- a/site/docs/connectors/connector-catalog.drawio +++ b/site/docs/connectors/connector-catalog.drawio @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/site/docs/connectors/repository/adapter-repository-connector.svg b/site/docs/connectors/repository/adapter-repository-connector.svg index 07321a2bb8..1f36148fde 100644 --- a/site/docs/connectors/repository/adapter-repository-connector.svg +++ b/site/docs/connectors/repository/adapter-repository-connector.svg @@ -1,3 +1,3 @@ -
Repository Proxy
Repository Proxy
Repository Services
Repository Services
Repository Connector
Repository Conn...
Third Party
Metadata Repository
Third Party...
Event Mapper
Event Mapper
Open Metadata
Ecosystem
Open Metadata...
Viewer does not support full SVG 1.1
\ No newline at end of file +
Repository Proxy
Repository Proxy
Repository Services
Repository Services
Local
Repository Connector
Local...
Third Party
Metadata Repository
Third Party...
Event Mapper
Event Mapper
Open Metadata
Ecosystem
Open Metadata...
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/site/docs/connectors/repository/in-memory.md b/site/docs/connectors/repository/in-memory.md new file mode 100644 index 0000000000..7b4b60348e --- /dev/null +++ b/site/docs/connectors/repository/in-memory.md @@ -0,0 +1,16 @@ + + + + +--8<-- "snippets/content-status/released.md" + +# In Memory Repository Connector + +The In-memory OMRS Repository Connector provides a simple repository +implementation that "stores" metadata in hash maps within the JVM. +It is used for testing, or for environments where metadata maintained in other repositories +needs to be cached locally for performance/scalability reasons. + + +--8<-- "snippets/abbr.md" + diff --git a/site/docs/connectors/repository/janus-graph.md b/site/docs/connectors/repository/janus-graph.md new file mode 100644 index 0000000000..eaf85cd1a7 --- /dev/null +++ b/site/docs/connectors/repository/janus-graph.md @@ -0,0 +1,54 @@ + + + +--8<-- "snippets/content-status/released.md" + +# Graph Repository + +The Graph Repository provides a local repository that uses a graph store as its persistence store. + +## Configuration +To configure an [Metadata Access Store](/egeria-docs/concepts/metadata-access-store) to use the Graph Repository, set the repository-mode to 'local-graph-repository'. For example: + +``` +POST /open-metadata/admin-services/users//servers//local-repository/mode/local-graph-repository +``` + +Replace the , and with the values appropriate for the server you are configuring. + +## Using the Graph Repository +The interface to the graph repository is the OMRS MetadataCollection API. The graph repository supports almost all of the MetadataCollection API apart from historical queries and undo. + +## Using the find methods +The find methods (listed below) use regular expression (regexp) syntax. They are intended for retrieval of specific entities or relationships and the regexp is always matched to the whole of the property value or classification name. +* findEntitiesByProperty() +* findRelationshipsByProperty() +* findEntitiesByPropertyValue() +* findRelationshipsByPropertyValue() +* findEntitiesByClassification() + +The first two methods accept a map of property names and values that acts as a filter. +The next pair of methods accept a string that is matched against the values of any string properties. +The last method accepts a string that is matched against the names of classifications associated with an entity. + +In all cases the string value(s) provided are treated as a regular expression that is matched against the whole property value or classification name. + +To find entities with property values of "coco-asset-123", "coco-asset-456", "coco-asset-789" you could specify a regexp e.g. "coco-asset-.*" + +To find an entity or relationship with a property value of "coco-asset-123" you need to specify a regexp that will match the whole string value, e.g. "coco-asset-.*", a substring is not sufficient. If you were to only specify a regexp of "coco-asset", it would not match the entity or relationship. + +Similarly, to find an entity with a classification with name "coco-classification-abc" you would need to to specify a regexp that will match the whole string value, e.g. "coco-classification-.*" + + +## Under the hood +Internally, the Graph Repository uses JanusGraph to create a graph database. The JanusGraph graph database and graph are automatically created and the graph schema and search indexes are automatically configured. + +The Graph Repository configures JanusGraph to use the berkeley embedded database and Lucene search indexes. + +The supported interface for using the Graph Repository is the MetadataCollection API, and access should only be performed through this interface. In contrast, the schema and indexing used internally by the Graph Repository are subject to change as a result of future improvements to Egeria and should not be relied upon directly. + +The repository uses the repository helper for parameter and type validation. + + +--8<-- "snippets/abbr.md" + diff --git a/site/docs/connectors/repository/metadata-access-point-cohort-member-client-connector.svg b/site/docs/connectors/repository/metadata-access-point-cohort-member-client-connector.svg new file mode 100644 index 0000000000..5052877861 --- /dev/null +++ b/site/docs/connectors/repository/metadata-access-point-cohort-member-client-connector.svg @@ -0,0 +1,3 @@ + + +
Metadata Access Point
Metadata Access Point
Repository Services
Repository Services
Cohort Member Client Connector
Cohort Member C...
Other Cohort Members
Other Cohort Members
Cohort Member Client Connector
Cohort Member C...
Other Cohort Members
Other Cohort Members
Cohort Member Client Connector
Cohort Member C...
Other Cohort Members
Other Cohort Members
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/site/docs/connectors/repository/metadata-access-store-cohort-member-client-connector.svg b/site/docs/connectors/repository/metadata-access-store-cohort-member-client-connector.svg new file mode 100644 index 0000000000..55c7306e0d --- /dev/null +++ b/site/docs/connectors/repository/metadata-access-store-cohort-member-client-connector.svg @@ -0,0 +1,3 @@ + + +
Metadata Access Store
Metadata Access Store
Repository Services
Repository Services
Local
Repository Connector
Local...
Cohort Member Client Connector
Cohort Member C...
Other Cohort Members
Other Cohort Members
Cohort Member Client Connector
Cohort Member C...
Other Cohort Members
Other Cohort Members
Cohort Member Client Connector
Cohort Member C...
Other Cohort Members
Other Cohort Members
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/site/docs/connectors/repository/native-repository-connector.svg b/site/docs/connectors/repository/native-repository-connector.svg index 762276d2eb..5570b8eeb7 100644 --- a/site/docs/connectors/repository/native-repository-connector.svg +++ b/site/docs/connectors/repository/native-repository-connector.svg @@ -1,3 +1,3 @@ -
Metadata Access Store
Metadata Access Store
Repository Services
Repository Services
Repository Connector
Repository Conn...
Open Metadata
Ecosystem
Open Metadata...
Viewer does not support full SVG 1.1
\ No newline at end of file +
Metadata Access Store
Metadata Access Store
Repository Services
Repository Services
Local
Repository Connector
Local...
Open Metadata
Ecosystem
Open Metadata...
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/site/docs/connectors/repository/omrs-rest-cohort-member-client-connector.svg b/site/docs/connectors/repository/omrs-rest-cohort-member-client-connector.svg new file mode 100644 index 0000000000..f104a8b3c1 --- /dev/null +++ b/site/docs/connectors/repository/omrs-rest-cohort-member-client-connector.svg @@ -0,0 +1,3 @@ + + +
Metadata Access Store
Metadata Access Store
Cohort Member
Cohort Member
Repository Services
Repository Services
OMRS REST Cohort Member Client Connector
OMRS REST Cohort M...
Repository Services
Repository Services
Repository
Services
REST API
Repository...
Repository Proxy
Repository Proxy
Repository Services
Repository Services
Local
Repository Connector
Local...
Third Party
Metadata Repository
Third Party...
Event
Mapper
Event...
OMRS REST Cohort Member Client Connector
OMRS REST Cohort M...
Local
Repository Connector
Local...
Repository
Services
REST API
Repository...
Viewer does not support full SVG 1.1
\ No newline at end of file diff --git a/site/docs/connectors/repository/read-only.md b/site/docs/connectors/repository/read-only.md new file mode 100644 index 0000000000..f83318bacd --- /dev/null +++ b/site/docs/connectors/repository/read-only.md @@ -0,0 +1,20 @@ + + + + +--8<-- "snippets/content-status/released.md" + +# Read-only Repository Connector + +The read only repository connector provides a compliant implementation of a local repository +that can be configured into a [Metadata Access Store](/egeria-docs/concepts/metadata-access-store). +It does not support the interfaces for +create, update, delete. However it does support the search interfaces and is able to cache metadata. + +This means it can be loaded with metadata from an +[Open Metadata Archive](/egeria-docs/concepts/open-metadata-archive) and connected +to a cohort. The content from the archive will be shared with other members of the cohort. + + +--8<-- "snippets/abbr.md" + diff --git a/site/docs/services/omrs/index.md b/site/docs/services/omrs/index.md index 4e9193b910..a16896aa33 100644 --- a/site/docs/services/omrs/index.md +++ b/site/docs/services/omrs/index.md @@ -1,7 +1,9 @@ -# Repository Services (OMRS) Design +--8<-- "snippets/content-status/released.md" + +# Repository Services (OMRS) ![OMRS system context](omrs-system-context-diagram.png) diff --git a/site/mkdocs.yml b/site/mkdocs.yml index bdd97f5026..0c26b267d0 100644 --- a/site/mkdocs.yml +++ b/site/mkdocs.yml @@ -2,7 +2,7 @@ # Copyright Contributors to the Egeria project. site_name: Egeria -site_description: automatically exchanging metadata between tools and platforms, no matter the vendor +site_description: Open metadata and governance for enterprises - automatically capturing, managing and exchanging metadata between tools and platforms, no matter the vendor copyright: "License: CC BY 4.0, © 2018-2021 contributors to the Egeria project." repo_name: odpi/egeria repo_url: https://github.com/odpi/egeria diff --git a/site/overrides/home.html b/site/overrides/home.html index a99ddded48..bd9288f258 100644 --- a/site/overrides/home.html +++ b/site/overrides/home.html @@ -235,7 +235,7 @@

{{ config.site_name }}

-

Making metadata open: {{ config.site_description }}.

+

{{ config.site_description }}.

Learn more @@ -253,9 +253,9 @@

Open

- Egeria implements a set of open APIs, metadata types, - frameworks, connectors and interchange protocols to allow all types of tools and - metadata repositories to share and exchange metadata. + Egeria defines the open metadata standard schema for over 800 types of metadata needed by enterprises to manage their digital resources. + It implements open APIs, frameworks, connectors and interchange protocols for these standard types to allow tools and + metadata repositories to share and exchange metadata using these open standards.

@@ -265,9 +265,9 @@

It is expensive (and error prone) to expect individuals to - maintain a metadata catalog by hand. Egeria helps to - automate metadata management through its specialist - governance servers that extract and synchronize metadata with different technologies. + maintain a metadata catalog by hand. Egeria + automates metadata capture, search and management through its specialist + servers that extract, store and synchronize metadata with different technologies.

@@ -276,9 +276,10 @@

Connected

- Egeria's open connectivity enables a peer-to-peer Metadata Highway offering + Egeria's open connectivity enables a peer-to-peer metadata highway offering open metadata exchange, linking and federation between heterogeneous metadata repositories. + Partners and colleagues who use different tools can now collaborate and share knowledge.

From 3ea2a27776981f09505e445626ebcdb6eff81c66 Mon Sep 17 00:00:00 2001 From: Christopher Grote Date: Thu, 11 Nov 2021 15:34:58 +0000 Subject: [PATCH 2/3] Adds initial docs (and placeholders) for CTS profiles Signed-off-by: Christopher Grote --- site/docs/guides/cts/overview.md | 96 +++++------ .../classification-search.md | 5 +- .../classification-update.md | 21 +-- .../entity-classification.md | 28 ++-- .../entity-creation.md | 18 +-- .../entity-declassify.md | 20 +-- .../entity-delete.md | 12 +- .../entity-history-retrieval.md | 19 +-- .../entity-history-search.md | 8 +- .../entity-purge.md | 21 +-- .../entity-re-home.md | 12 +- .../entity-re-identify.md | 12 +- .../entity-restore.md | 13 +- .../entity-retrieval.md | 10 +- .../entity-retype.md | 15 +- .../entity-search.md | 13 +- .../entity-undo.md | 13 +- .../entity-update.md | 24 +-- .../environment.md | 8 +- .../graph-history-queries.md | 2 +- .../graph-perf-queries.md | 2 +- .../relationship-creation.md | 18 +-- .../relationship-delete.md | 12 +- .../relationship-history-retrieval.md | 19 +-- .../relationship-history-search.md | 10 +- .../relationship-purge.md | 21 +-- .../relationship-re-home.md | 12 +- .../relationship-re-identify.md | 12 +- .../relationship-restore.md | 15 +- .../relationship-retrieval.md | 12 +- .../relationship-retype.md | 21 +-- .../relationship-search.md | 13 +- .../relationship-undo.md | 16 +- .../relationship-update.md | 24 +-- .../cts/repository-profiles/dynamic-types.md | 14 ++ .../repository-profiles/effectivity-dating.md | 8 + .../entity-advanced-search.md | 14 ++ .../cts/repository-profiles/entity-proxies.md | 22 +++ .../cts/repository-profiles/entity-search.md | 18 +++ .../cts/repository-profiles/graph-queries.md | 18 +++ .../repository-profiles/historical-search.md | 14 ++ .../metadata-maintenance.md | 18 +++ .../repository-profiles/metadata-sharing.md | 151 ++++++++++++++++++ .../repository-profiles/reference-copies.md | 64 ++++++++ .../repository-profiles/rehome-instance.md | 18 +++ .../reidentify-instance.md | 18 +++ .../relationship-advanced-search.md | 14 ++ .../relationship-search.md | 18 +++ .../repository-profiles/retype-instance.md | 18 +++ .../soft-delete-restore.md | 18 +++ .../cts/repository-profiles/undo-update.md | 14 ++ site/mkdocs.yml | 95 +++++------ 52 files changed, 716 insertions(+), 415 deletions(-) rename site/docs/guides/cts/{profiles => performance-profiles}/classification-search.md (93%) rename site/docs/guides/cts/{profiles => performance-profiles}/classification-update.md (60%) rename site/docs/guides/cts/{profiles => performance-profiles}/entity-classification.md (57%) rename site/docs/guides/cts/{profiles => performance-profiles}/entity-creation.md (71%) rename site/docs/guides/cts/{profiles => performance-profiles}/entity-declassify.md (59%) rename site/docs/guides/cts/{profiles => performance-profiles}/entity-delete.md (66%) rename site/docs/guides/cts/{profiles => performance-profiles}/entity-history-retrieval.md (61%) rename site/docs/guides/cts/{profiles => performance-profiles}/entity-history-search.md (88%) rename site/docs/guides/cts/{profiles => performance-profiles}/entity-purge.md (58%) rename site/docs/guides/cts/{profiles => performance-profiles}/entity-re-home.md (70%) rename site/docs/guides/cts/{profiles => performance-profiles}/entity-re-identify.md (63%) rename site/docs/guides/cts/{profiles => performance-profiles}/entity-restore.md (62%) rename site/docs/guides/cts/{profiles => performance-profiles}/entity-retrieval.md (79%) rename site/docs/guides/cts/{profiles => performance-profiles}/entity-retype.md (72%) rename site/docs/guides/cts/{profiles => performance-profiles}/entity-search.md (90%) rename site/docs/guides/cts/{profiles => performance-profiles}/entity-undo.md (62%) rename site/docs/guides/cts/{profiles => performance-profiles}/entity-update.md (66%) rename site/docs/guides/cts/{profiles => performance-profiles}/environment.md (93%) rename site/docs/guides/cts/{profiles => performance-profiles}/graph-history-queries.md (99%) rename site/docs/guides/cts/{profiles => performance-profiles}/graph-perf-queries.md (99%) rename site/docs/guides/cts/{profiles => performance-profiles}/relationship-creation.md (77%) rename site/docs/guides/cts/{profiles => performance-profiles}/relationship-delete.md (66%) rename site/docs/guides/cts/{profiles => performance-profiles}/relationship-history-retrieval.md (60%) rename site/docs/guides/cts/{profiles => performance-profiles}/relationship-history-search.md (88%) rename site/docs/guides/cts/{profiles => performance-profiles}/relationship-purge.md (66%) rename site/docs/guides/cts/{profiles => performance-profiles}/relationship-re-home.md (65%) rename site/docs/guides/cts/{profiles => performance-profiles}/relationship-re-identify.md (62%) rename site/docs/guides/cts/{profiles => performance-profiles}/relationship-restore.md (64%) rename site/docs/guides/cts/{profiles => performance-profiles}/relationship-retrieval.md (74%) rename site/docs/guides/cts/{profiles => performance-profiles}/relationship-retype.md (60%) rename site/docs/guides/cts/{profiles => performance-profiles}/relationship-search.md (90%) rename site/docs/guides/cts/{profiles => performance-profiles}/relationship-undo.md (59%) rename site/docs/guides/cts/{profiles => performance-profiles}/relationship-update.md (68%) create mode 100644 site/docs/guides/cts/repository-profiles/dynamic-types.md create mode 100644 site/docs/guides/cts/repository-profiles/effectivity-dating.md create mode 100644 site/docs/guides/cts/repository-profiles/entity-advanced-search.md create mode 100644 site/docs/guides/cts/repository-profiles/entity-proxies.md create mode 100644 site/docs/guides/cts/repository-profiles/entity-search.md create mode 100644 site/docs/guides/cts/repository-profiles/graph-queries.md create mode 100644 site/docs/guides/cts/repository-profiles/historical-search.md create mode 100644 site/docs/guides/cts/repository-profiles/metadata-maintenance.md create mode 100644 site/docs/guides/cts/repository-profiles/metadata-sharing.md create mode 100644 site/docs/guides/cts/repository-profiles/reference-copies.md create mode 100644 site/docs/guides/cts/repository-profiles/rehome-instance.md create mode 100644 site/docs/guides/cts/repository-profiles/reidentify-instance.md create mode 100644 site/docs/guides/cts/repository-profiles/relationship-advanced-search.md create mode 100644 site/docs/guides/cts/repository-profiles/relationship-search.md create mode 100644 site/docs/guides/cts/repository-profiles/retype-instance.md create mode 100644 site/docs/guides/cts/repository-profiles/soft-delete-restore.md create mode 100644 site/docs/guides/cts/repository-profiles/undo-update.md diff --git a/site/docs/guides/cts/overview.md b/site/docs/guides/cts/overview.md index 2082b5bbea..2b0279fcd1 100644 --- a/site/docs/guides/cts/overview.md +++ b/site/docs/guides/cts/overview.md @@ -42,19 +42,23 @@ The functions expected of an open metadata repository are numerous. These functi | Profile | Description | |---|---| -| [Metadata sharing](../profiles/metadata-sharing) | The technology under test is able to share metadata with other members of the cohort. | -| [Reference copies](../profiles/reference-copies) | The technology under test is able to store reference copies of metadata from other members of the cohort. | -| [Metadata maintenance](../profiles/metadata-maintenance) | The technology under test supports requests to create, update and purge metadata instances. | -| [Effectivity dating](../profiles/effectivity-dating) | The technology under test supports effectivity dating properties. | -| [Dynamic types](../profiles/dynamic-types) | The technology under test supports changes to the list of its supported types while it is running. | -| [Graph queries](../profiles/graph-queries) | The technology under test supports graph-like queries that return collections of metadata instances. | -| [Historical search](../profiles/historical-search) | The technology under test supports search for the state of the metadata instances at a specific time in the past. | -| [Entity proxies](../profiles/entity-proxies) | The technology under test is able to store stubs for entities to use on relationships when the full entity is not available. | -| [Soft-delete and restore](../profiles/soft-delete-restore) | The technology under test allows an instance to be soft-deleted and restored. | -| [Undo an update](../profiles/undo-update) | The technology under test is able to restore an instance to its previous version (although the version number is updated). | -| [Reidentify instance](../profiles/reidentify-instance) | The technology under test supports the command to change the unique identifier (guid) of a metadata instance. | -| [Retype instance](../profiles/retype-instance) | The technology under test supports the command to change the type of a metadata instance to either its super type or a subtype. | -| [Rehome instance](../profiles/rehome-instance) | The technology under test supports the command to update the metadata collection id for a metadata instance. | +| [Metadata sharing](../repository-profiles/metadata-sharing) | The technology under test is able to share metadata with other members of the cohort. | +| [Reference copies](../repository-profiles/reference-copies) | The technology under test is able to store reference copies of metadata from other members of the cohort. | +| [Metadata maintenance](../repository-profiles/metadata-maintenance) | The technology under test supports requests to create, update and purge metadata instances. | +| [Effectivity dating](../repository-profiles/effectivity-dating) | The technology under test supports effectivity dating properties. | +| [Dynamic types](../repository-profiles/dynamic-types) | The technology under test supports changes to the list of its supported types while it is running. | +| [Graph queries](../repository-profiles/graph-queries) | The technology under test supports graph-like queries that return collections of metadata instances. | +| [Historical search](../repository-profiles/historical-search) | The technology under test supports search for the state of the metadata instances at a specific time in the past. | +| [Entity proxies](../repository-profiles/entity-proxies) | The technology under test is able to store stubs for entities to use on relationships when the full entity is not available. | +| [Soft-delete and restore](../repository-profiles/soft-delete-restore) | The technology under test allows an instance to be soft-deleted and restored. | +| [Undo an update](../repository-profiles/undo-update) | The technology under test is able to restore an instance to its previous version (although the version number is updated). | +| [Reidentify instance](../repository-profiles/reidentify-instance) | The technology under test supports the command to change the unique identifier (guid) of a metadata instance. | +| [Retype instance](../repository-profiles/retype-instance) | The technology under test supports the command to change the type of a metadata instance to either its super type or a subtype. | +| [Rehome instance](../repository-profiles/rehome-instance) | The technology under test supports the command to update the metadata collection id for a metadata instance. | +| [Entity search](../repository-profiles/entity-search) | The technology under test supports the ability to search for entity instances. | +| [Relationship search](../repository-profiles/relationship-search) | The technology under test supports the ability to search for relationnship instances. | +| [Entity advanced search](../repository-profiles/entity-advanced-search) | The technology under test supports the use of regular expressions to search for metadata instances. | +| [Relationship advanced search](../repository-profiles/relationship-advanced-search) | The technology under test supports the use of regular expressions to search for relationship instances. | ## Performance workbench @@ -69,39 +73,39 @@ This workbench runs the following profiles, in the following order: | Profile | Description | |---|---| -| [Entity creation](../profiles/entity-creation) | tests the performance of `addEntity` and `saveEntityReferenceCopy` methods | -| [Entity search](../profiles/entity-search) | tests the performance of `findEntities`, `findEntitiesByProperty` and `findEntitiesByPropertyValue` methods | -| [Relationship creation](../profiles/relationship-creation) | tests the performance of `addRelationship` and `saveRelationshipReferenceCopy` methods | -| [Relationship search](../profiles/relationship-search) | tests the performance of `findRelationships`, `findRelationshipsByProperty` and `findRelationshipsByPropertyValue` methods | -| [Entity classification](../profiles/entity-classification) | tests the performance of `classifyEntity` and `saveClassificationReferenceCopy` methods | -| [Classification search](../profiles/classification-search) | tests the performance of `findEntitiesByClassification` method | -| [Entity update](../profiles/entity-update) | tests the performance of `updateEntityProperties` method | -| [Relationship update](../profiles/relationship-update) | tests the performance of `updateRelationshipProperties` method | -| [Classification update](../profiles/classification-update) | tests the performance of `updateEntityClassification` method | -| [Entity undo](../profiles/entity-undo) | tests the performance of `undoEntityUpdate` method | -| [Relationship undo](../profiles/relationship-undo) | tests the performance of `undoRelationshipUpdate` method | -| [Entity retrieval](../profiles/entity-retrieval) | tests the performance of `isEntityKnown`, `getEntitySummary` and `getEntityDetail` methods | -| [Entity history retrieval](../profiles/entity-history-retrieval) | tests the performance of `getEntityDetail` (with non-null `asOfTime`) and `getEntityDetailHistory` methods | -| [Relationship retrieval](../profiles/relationship-retrieval) | tests the performance of `isRelationshipKnown` and `getRelationship` methods | -| [Relationship history retrieval](../profiles/relationship-history-retrieval) | tests the performance of `getRelationship` (with non-null `asOfTime`) and `getRelationshipHistory` methods | -| [Entity history search](../profiles/entity-history-search) | tests the performance of the same search operations as Entity Search, but in each case with a non-null `asOfTime` | -| [Relationship history search](../profiles/relationship-history-search) | tests the performance of the same search operations as Relationship Search, but in each case with a non-null `asOfTime` | -| [Graph queries](../profiles/graph-perf-queries) | tests the performance of `getRelationshipsForEntity`, `getEntityNeighborhood`, `getRelatedEntities` and `getLinkingEntities` methods | -| [Graph history queries](../profiles/graph-history-queries) | tests the performance of the same operations as Graph Queries, but in each case with a non-null `asOfTime` | -| [Entity re-home](../profiles/entity-re-home) | tests the performance of `reHomeEntity` method | -| [Relationship re-home](../profiles/relationship-re-home) | tests the performance of `reHomeRelationship` method | -| [Entity declassify](../profiles/entity-declassify) | tests the performance of `declassifyEntity` and `purgeClassificationReferenceCopy` methods | -| [Entity re-type](../profiles/entity-retype) | tests the performance of `reTypeEntity` method | -| [Relationship re-type](../profiles/relationship-retype) | tests the performance of `reTypeRelationship` method | -| [Entity re-identify](../profiles/entity-re-identify) | tests the performance of `reIdentifyEntity` method | -| [Relationship re-identify](../profiles/relationship-re-identify) | tests the performance of `reIdentifyRelationship` method | -| [Relationship delete](../profiles/relationship-delete) | tests the performance of `deleteRelationship` method | -| [Entity delete](../profiles/entity-delete) | tests the performance of `deleteEntity` method | -| [Entity restore](../profiles/entity-restore) | tests the performance of `restoreEntity` method | -| [Relationship restore](../profiles/relationship-restore) | tests the performance of `restoreRelationship` method | -| [Relationship purge](../profiles/relationship-purge) | tests the performance of `purgeRelationship` and `purgeRelationshipReferenceCopy` methods | -| [Entity purge](../profiles/entity-purge) | tests the performance of `purgeEntity` and `purgeEntityReferenceCopy` methods | -| [Environment](../profiles/environment) | does not actually perform any tests, but rather gives statistics about the environment in which the tests were performed (instance counts, etc) | +| [Entity creation](../performance-profiles/entity-creation) | tests the performance of `addEntity` and `saveEntityReferenceCopy` methods | +| [Entity search](../performance-profiles/entity-search) | tests the performance of `findEntities`, `findEntitiesByProperty` and `findEntitiesByPropertyValue` methods | +| [Relationship creation](../performance-profiles/relationship-creation) | tests the performance of `addRelationship` and `saveRelationshipReferenceCopy` methods | +| [Relationship search](../performance-profiles/relationship-search) | tests the performance of `findRelationships`, `findRelationshipsByProperty` and `findRelationshipsByPropertyValue` methods | +| [Entity classification](../performance-profiles/entity-classification) | tests the performance of `classifyEntity` and `saveClassificationReferenceCopy` methods | +| [Classification search](../performance-profiles/classification-search) | tests the performance of `findEntitiesByClassification` method | +| [Entity update](../performance-profiles/entity-update) | tests the performance of `updateEntityProperties` method | +| [Relationship update](../performance-profiles/relationship-update) | tests the performance of `updateRelationshipProperties` method | +| [Classification update](../performance-profiles/classification-update) | tests the performance of `updateEntityClassification` method | +| [Entity undo](../performance-profiles/entity-undo) | tests the performance of `undoEntityUpdate` method | +| [Relationship undo](../performance-profiles/relationship-undo) | tests the performance of `undoRelationshipUpdate` method | +| [Entity retrieval](../performance-profiles/entity-retrieval) | tests the performance of `isEntityKnown`, `getEntitySummary` and `getEntityDetail` methods | +| [Entity history retrieval](../performance-profiles/entity-history-retrieval) | tests the performance of `getEntityDetail` (with non-null `asOfTime`) and `getEntityDetailHistory` methods | +| [Relationship retrieval](../performance-profiles/relationship-retrieval) | tests the performance of `isRelationshipKnown` and `getRelationship` methods | +| [Relationship history retrieval](../performance-profiles/relationship-history-retrieval) | tests the performance of `getRelationship` (with non-null `asOfTime`) and `getRelationshipHistory` methods | +| [Entity history search](../performance-profiles/entity-history-search) | tests the performance of the same search operations as Entity Search, but in each case with a non-null `asOfTime` | +| [Relationship history search](../performance-profiles/relationship-history-search) | tests the performance of the same search operations as Relationship Search, but in each case with a non-null `asOfTime` | +| [Graph queries](../performance-profiles/graph-perf-queries) | tests the performance of `getRelationshipsForEntity`, `getEntityNeighborhood`, `getRelatedEntities` and `getLinkingEntities` methods | +| [Graph history queries](../performance-profiles/graph-history-queries) | tests the performance of the same operations as Graph Queries, but in each case with a non-null `asOfTime` | +| [Entity re-home](../performance-profiles/entity-re-home) | tests the performance of `reHomeEntity` method | +| [Relationship re-home](../performance-profiles/relationship-re-home) | tests the performance of `reHomeRelationship` method | +| [Entity declassify](../performance-profiles/entity-declassify) | tests the performance of `declassifyEntity` and `purgeClassificationReferenceCopy` methods | +| [Entity re-type](../performance-profiles/entity-retype) | tests the performance of `reTypeEntity` method | +| [Relationship re-type](../performance-profiles/relationship-retype) | tests the performance of `reTypeRelationship` method | +| [Entity re-identify](../performance-profiles/entity-re-identify) | tests the performance of `reIdentifyEntity` method | +| [Relationship re-identify](../performance-profiles/relationship-re-identify) | tests the performance of `reIdentifyRelationship` method | +| [Relationship delete](../performance-profiles/relationship-delete) | tests the performance of `deleteRelationship` method | +| [Entity delete](../performance-profiles/entity-delete) | tests the performance of `deleteEntity` method | +| [Entity restore](../performance-profiles/entity-restore) | tests the performance of `restoreEntity` method | +| [Relationship restore](../performance-profiles/relationship-restore) | tests the performance of `restoreRelationship` method | +| [Relationship purge](../performance-profiles/relationship-purge) | tests the performance of `purgeRelationship` and `purgeRelationshipReferenceCopy` methods | +| [Entity purge](../performance-profiles/entity-purge) | tests the performance of `purgeEntity` and `purgeEntityReferenceCopy` methods | +| [Environment](../performance-profiles/environment) | does not actually perform any tests, but rather gives statistics about the environment in which the tests were performed (instance counts, etc) | In each profile, the methods being tested will be executed a number of times and the elapsed time of each execution captured. These elapsed times are available through the detailed profile results of the Conformance Test Suite reports, and can be extracted to calculate more detailed statistics (min, max, median, mean, etc). diff --git a/site/docs/guides/cts/profiles/classification-search.md b/site/docs/guides/cts/performance-profiles/classification-search.md similarity index 93% rename from site/docs/guides/cts/profiles/classification-search.md rename to site/docs/guides/cts/performance-profiles/classification-search.md index 29f0bc7129..ea04866e1d 100644 --- a/site/docs/guides/cts/profiles/classification-search.md +++ b/site/docs/guides/cts/performance-profiles/classification-search.md @@ -6,12 +6,11 @@ hide: -# Classification search profile +# Classification Search Profile The performance of programmatically searching for existing entities based on their classification(s). -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines an optional method for searching for entity instances based on classification: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines an optional method for searching for entity instances based on classification: | Method | Description | |---|---| diff --git a/site/docs/guides/cts/profiles/classification-update.md b/site/docs/guides/cts/performance-profiles/classification-update.md similarity index 60% rename from site/docs/guides/cts/profiles/classification-update.md rename to site/docs/guides/cts/performance-profiles/classification-update.md index 09023aba4d..665e587dbc 100644 --- a/site/docs/guides/cts/profiles/classification-update.md +++ b/site/docs/guides/cts/performance-profiles/classification-update.md @@ -6,12 +6,11 @@ hide: -# Classification update profile +# Classification Update Profile The performance of programmatically updating existing classifications. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines optional methods for updating classifications: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines optional methods for updating classifications: | Method | Description | |---|---| @@ -24,22 +23,16 @@ repository defines optional methods for updating classifications: For every classification type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` entities with that classification. (This uses `findEntitiesByClassification` with a - condition on the classification's name only and its performance is recorded as part of the [classification search](classification-search.md) profile.) -1. For each of these entity instances, `updateEntityClassification` is called to update the existing property values of the - classification, using a new generated set of properties. +1. Searches for `instancesPerType` entities with that classification. (This uses `findEntitiesByClassification` with a condition on the classification's name only and its performance is recorded as part of the [classification search](classification-search.md) profile.) +1. For each of these entity instances, `updateEntityClassification` is called to update the existing property values of the classification, using a new generated set of properties. !!! example "Example" - So, for example, if the technology under test supports 50 classification types, and the `instancesPerType` parameter is - set to 100, then this profile will update 50 (types) x 100 (instances per type) = 5000 - classifications. (And it will run `findEntitiesByClassification` 50 times.) + So, for example, if the technology under test supports 50 classification types, and the `instancesPerType` parameter is set to 100, then this profile will update 50 (types) x 100 (instances per type) = 5000 classifications. (And it will run `findEntitiesByClassification` 50 times.) The properties of each of these instances will be fully-populated with: -- Any string properties containing a value representative of the property name itself (and where unique, - they will be made unique through appending a unique sequence) -- Any non-string properties will be randomly generated, in a simple attempt to represent data that is not entirely - uniform +- Any string properties containing a value representative of the property name itself (and where unique, they will be made unique through appending a unique sequence) +- Any non-string properties will be randomly generated, in a simple attempt to represent data that is not entirely uniform !!! attention "Caveats" Note the following caveats: diff --git a/site/docs/guides/cts/profiles/entity-classification.md b/site/docs/guides/cts/performance-profiles/entity-classification.md similarity index 57% rename from site/docs/guides/cts/profiles/entity-classification.md rename to site/docs/guides/cts/performance-profiles/entity-classification.md index b640e2d411..6a9c99fe59 100644 --- a/site/docs/guides/cts/profiles/entity-classification.md +++ b/site/docs/guides/cts/performance-profiles/entity-classification.md @@ -6,12 +6,11 @@ hide: -# Entity classification profile +# Entity Classification Profile The performance of programmatically classifying existing entity instances with new classifications. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines optional methods for classifying entity instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines optional methods for classifying entity instances: | Method | Description | |---|---| @@ -26,26 +25,17 @@ repository defines optional methods for classifying entity instances: For every classification type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` entities of a type that is valid for the classification. (This uses `findEntities` - and its performance is recorded as part of the [entity search](entity-search.md) profile.) -1. For each of these entity instances, `classifyEntity` is called to add a new classification of this type to that - instance, using a generated set of properties. -1. Searches for `instancesPerType` entities of a type that is valid for the classification, and where the entity is a - reference copy. (This uses `findEntitiesByProperty` with a condition on `metadataCollectionId` and its performance - is recorded as part of the [entity search](entity-search.md) profile.) -1. For each of these reference copy entity instances, `saveClassificationReferenceCopy` is called to add reference copy - classification of this type to that instance, using a generated set of properties. +1. Searches for `instancesPerType` entities of a type that is valid for the classification. (This uses `findEntities` and its performance is recorded as part of the [entity search](entity-search.md) profile.) +1. For each of these entity instances, `classifyEntity` is called to add a new classification of this type to that instance, using a generated set of properties. +1. Searches for `instancesPerType` entities of a type that is valid for the classification, and where the entity is a reference copy. (This uses `findEntitiesByProperty` with a condition on `metadataCollectionId` and its performance is recorded as part of the [entity search](entity-search.md) profile.) +1. For each of these reference copy entity instances, `saveClassificationReferenceCopy` is called to add reference copy classification of this type to that instance, using a generated set of properties. !!! example "Example" - So, for example, if the technology under test supports 50 classification types, and the `instancesPerType` parameter is - set to 100, then this profile will create 50 (types) x 100 (instances per type) x 2 (home + reference copy methods) = 10 000 - classifications. (And it will run `findEntities` 50 times, and `findEntitiesByProperty` 50 times.) + So, for example, if the technology under test supports 50 classification types, and the `instancesPerType` parameter is set to 100, then this profile will create 50 (types) x 100 (instances per type) x 2 (home + reference copy methods) = 10 000 classifications. (And it will run `findEntities` 50 times, and `findEntitiesByProperty` 50 times.) The properties of each of these instances will be fully-populated with: -- Any string properties containing a value representative of the property name itself (and where unique, - they will be made unique through appending a unique sequence) -- Any non-string properties will be randomly generated, in a simple attempt to represent data that is not entirely - uniform +- Any string properties containing a value representative of the property name itself (and where unique, they will be made unique through appending a unique sequence) +- Any non-string properties will be randomly generated, in a simple attempt to represent data that is not entirely uniform --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/entity-creation.md b/site/docs/guides/cts/performance-profiles/entity-creation.md similarity index 71% rename from site/docs/guides/cts/profiles/entity-creation.md rename to site/docs/guides/cts/performance-profiles/entity-creation.md index 2479633d58..26c724c079 100644 --- a/site/docs/guides/cts/profiles/entity-creation.md +++ b/site/docs/guides/cts/performance-profiles/entity-creation.md @@ -6,12 +6,11 @@ hide: -# Entity creation profile +# Entity Creation Profile The performance of programmatically creating new entity instances. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines optional methods for creating entity instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines optional methods for creating entity instances: | Method | Description | |---|---| @@ -24,20 +23,15 @@ repository defines optional methods for creating entity instances: | `repository-entity-creation-performance-addEntity` | Invocation of the `addEntity` method during the profile (see detailed logic below). | | `repository-entity-creation-performance-saveEntityReferenceCopy` | Invocation of the `saveEntityReferenceCopy` method during the profile (see detailed logic below). | -For every entity type supported by the technology under test, this profile invokes each of these methods `instancesPerType` -times. +For every entity type supported by the technology under test, this profile invokes each of these methods `instancesPerType` times. !!! example "Example" - So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is set to - 100, then this profile will create 50 (types) x 100 (instances per type) x 2 (home + non-home methods) = 10 000 entity - instances. + So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is set to 100, then this profile will create 50 (types) x 100 (instances per type) x 2 (home + non-home methods) = 10 000 entity instances. The properties of each of these instances will be fully-populated with: -- Any string properties containing a value representative of the property name itself (and where unique, such as - `qualifiedName`, they will be made unique through appending a unique sequence) -- Any non-string properties will be randomly generated, in a simple attempt to represent data that is not entirely - uniform +- Any string properties containing a value representative of the property name itself (and where unique, such as `qualifiedName`, they will be made unique through appending a unique sequence) +- Any non-string properties will be randomly generated, in a simple attempt to represent data that is not entirely uniform In addition, these tests will record into the [environment](environment.md) profile the `totalEntitiesCreated`. diff --git a/site/docs/guides/cts/profiles/entity-declassify.md b/site/docs/guides/cts/performance-profiles/entity-declassify.md similarity index 59% rename from site/docs/guides/cts/profiles/entity-declassify.md rename to site/docs/guides/cts/performance-profiles/entity-declassify.md index 98ce22c8cc..a69ff728a1 100644 --- a/site/docs/guides/cts/profiles/entity-declassify.md +++ b/site/docs/guides/cts/performance-profiles/entity-declassify.md @@ -10,8 +10,7 @@ hide: The performance of programmatically declassifying existing entity instances from existing classifications. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines optional methods for declassifying entity instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines optional methods for declassifying entity instances: | Method | Description | |---|---| @@ -26,19 +25,12 @@ repository defines optional methods for declassifying entity instances: For every classification type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` entities homed in the technology under test with the classification. (This uses - `findEntitiesByClassification` with a condition on `metadataCollectionId` and its performance is recorded as part of - the [classification search](classification-search.md) profile.) -1. For each of these entity instances, `declassifyEntity` is called to remove the classification of this type from that - instance. -1. Searches for `instancesPerType` reference copy entities with the classification. (This uses `findEntitiesByClassification` - with a condition on `metadataCollectionId` and its performance is recorded as part of the [classification search](classification-search.md) profile.) -1. For each of these reference copy entity instances, `purgeClassificationReferenceCopy` is called to remove the reference copy - classification of this type from that instance. +1. Searches for `instancesPerType` entities homed in the technology under test with the classification. (This uses `findEntitiesByClassification` with a condition on `metadataCollectionId` and its performance is recorded as part of the [classification search](classification-search.md) profile.) +1. For each of these entity instances, `declassifyEntity` is called to remove the classification of this type from that instance. +1. Searches for `instancesPerType` reference copy entities with the classification. (This uses `findEntitiesByClassification` with a condition on `metadataCollectionId` and its performance is recorded as part of the [classification search](classification-search.md) profile.) +1. For each of these reference copy entity instances, `purgeClassificationReferenceCopy` is called to remove the reference copy classification of this type from that instance. !!! example "Example" - So, for example, if the technology under test supports 50 classification types, and the `instancesPerType` parameter is - set to 100, then this profile will remove 50 (types) x 100 (instances per type) x 2 (home + reference copy methods) = 10 000 - classifications. (And it will run `findEntitiesByClassification` 100 times.) + So, for example, if the technology under test supports 50 classification types, and the `instancesPerType` parameter is set to 100, then this profile will remove 50 (types) x 100 (instances per type) x 2 (home + reference copy methods) = 10 000 classifications. (And it will run `findEntitiesByClassification` 100 times.) --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/entity-delete.md b/site/docs/guides/cts/performance-profiles/entity-delete.md similarity index 66% rename from site/docs/guides/cts/profiles/entity-delete.md rename to site/docs/guides/cts/performance-profiles/entity-delete.md index b5c569d573..de1e447a57 100644 --- a/site/docs/guides/cts/profiles/entity-delete.md +++ b/site/docs/guides/cts/performance-profiles/entity-delete.md @@ -6,12 +6,11 @@ hide: -# Entity delete profile +# Entity Delete Profile The performance of programmatically soft-deleting an existing entity instance. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines an optional method for deleting entity instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines an optional method for deleting entity instances: | Method | Description | |---|---| @@ -25,13 +24,10 @@ repository defines an optional method for deleting entity instances: For every entity type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` entities of that type. (This uses `findEntitiesByProperty` with a condition - on `metadataCollectionId` and its performance is recorded as part of the [entity search](entity-search.md) profile.) +1. Searches for `instancesPerType` entities of that type. (This uses `findEntitiesByProperty` with a condition on `metadataCollectionId` and its performance is recorded as part of the [entity search](entity-search.md) profile.) 1. For each of these entity instances, `deleteEntity` is called to soft-delete it. !!! example "Example" - So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is - set to 100, then this profile will soft-delete 50 (types) x 100 (instances per type) = 5000 - entities. (And it will run `findEntitiesByProperty` 50 times.) + So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is set to 100, then this profile will soft-delete 50 (types) x 100 (instances per type) = 5000 entities. (And it will run `findEntitiesByProperty` 50 times.) --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/entity-history-retrieval.md b/site/docs/guides/cts/performance-profiles/entity-history-retrieval.md similarity index 61% rename from site/docs/guides/cts/profiles/entity-history-retrieval.md rename to site/docs/guides/cts/performance-profiles/entity-history-retrieval.md index 6ee99ff836..f0bea9c7bf 100644 --- a/site/docs/guides/cts/profiles/entity-history-retrieval.md +++ b/site/docs/guides/cts/performance-profiles/entity-history-retrieval.md @@ -6,12 +6,11 @@ hide: -# Entity history retrieval profile +# Entity History Retrieval Profile The performance of programmatically retrieving the history of existing entity instances based on their ID. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines methods for retrieving the history of entity instances by their ID: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines methods for retrieving the history of entity instances by their ID: | Method | Description | |---|---| @@ -26,17 +25,11 @@ repository defines methods for retrieving the history of entity instances by the For every entity type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` entity GUIDs of that type. (This uses `findEntities` and its performance is recorded - as part of the [entity search](entity-search.md) profile.) -1. For each of these entity GUIDs, `getEntityDetail` is then called with an `asOfTime` using the timestamp captured - prior to the execution of the Entity Update profile, to retrieve its historical details from that point in time - (prior to any updates). -1. For each of these entity GUIDs, `getEntityDetailHistory` is then called to retrieve its full history (including - current version and all historical versions of the instance). +1. Searches for `instancesPerType` entity GUIDs of that type. (This uses `findEntities` and its performance is recorded as part of the [entity search](entity-search.md) profile.) +1. For each of these entity GUIDs, `getEntityDetail` is then called with an `asOfTime` using the timestamp captured prior to the execution of the Entity Update profile, to retrieve its historical details from that point in time (prior to any updates). +1. For each of these entity GUIDs, `getEntityDetailHistory` is then called to retrieve its full history (including current version and all historical versions of the instance). !!! example "Example" - So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is - set to 100, then this profile will retrieve 50 (types) x 100 (instances per type) x 2 (operations) = 10 000 - entities. (And it will run `findEntities` 50 times.) + So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is set to 100, then this profile will retrieve 50 (types) x 100 (instances per type) x 2 (operations) = 10 000 entities. (And it will run `findEntities` 50 times.) --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/entity-history-search.md b/site/docs/guides/cts/performance-profiles/entity-history-search.md similarity index 88% rename from site/docs/guides/cts/profiles/entity-history-search.md rename to site/docs/guides/cts/performance-profiles/entity-history-search.md index 4b079e7f84..de38e23aa8 100644 --- a/site/docs/guides/cts/profiles/entity-history-search.md +++ b/site/docs/guides/cts/performance-profiles/entity-history-search.md @@ -10,9 +10,7 @@ hide: The performance of programmatically searching for entity instances as they existed in the past. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines optional methods for searching for entity instances based on their details in the past, -by passing in an `asOfTime` parameter (captured during the execution of the [entity update](entity-update.md) profile): +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines optional methods for searching for entity instances based on their details in the past, by passing in an `asOfTime` parameter (captured during the execution of the [entity update](entity-update.md) profile): | Method | Description | |---|---| @@ -37,8 +35,6 @@ by passing in an `asOfTime` parameter (captured during the execution of the [ent | `repository-graph-history-query-performance-findEntities` | See the detailed logic of the [graph history query](graph-history-query.md) profile. | !!! tip "Search variations" - When `findEntitiesByProperty` is run by the assertions starting with `repository-entity-search-history-performance...`, - the tests prefer non-string properties (if any exist for the type) given that the `findEntitiesByPropertyValue` - searches will already heavily exercise string-based queries. + When `findEntitiesByProperty` is run by the assertions starting with `repository-entity-search-history-performance...`, the tests prefer non-string properties (if any exist for the type) given that the `findEntitiesByPropertyValue` searches will already heavily exercise string-based queries. --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/entity-purge.md b/site/docs/guides/cts/performance-profiles/entity-purge.md similarity index 58% rename from site/docs/guides/cts/profiles/entity-purge.md rename to site/docs/guides/cts/performance-profiles/entity-purge.md index c0285ac82f..d48602256b 100644 --- a/site/docs/guides/cts/profiles/entity-purge.md +++ b/site/docs/guides/cts/performance-profiles/entity-purge.md @@ -6,12 +6,11 @@ hide: -# Entity purge profile +# Entity Purge Profile The performance of programmatically hard-deleting (irreversibly) existing entity instances. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines optional methods for hard-deleting entity instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines optional methods for hard-deleting entity instances: | Method | Description | |---|---| @@ -26,19 +25,13 @@ repository defines optional methods for hard-deleting entity instances: For every entity type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` entity GUIDs homed in the technology under test. (This uses `findEntitiesByProperty` - with a condition on `metadataCollectionId` and its performance is recorded as part of the [entity search](entity-search.md) profile.) -1. For each of these entity GUIDs, `deleteEntity` is called to soft-delete the instance. (This is necessary before a - hard-delete can be done against the instance and its performance is recorded as part of the [entity delete](entity-delete.md) profile.) +1. Searches for `instancesPerType` entity GUIDs homed in the technology under test. (This uses `findEntitiesByProperty` with a condition on `metadataCollectionId` and its performance is recorded as part of the [entity search](entity-search.md) profile.) +1. For each of these entity GUIDs, `deleteEntity` is called to soft-delete the instance. (This is necessary before a hard-delete can be done against the instance and its performance is recorded as part of the [entity delete](entity-delete.md) profile.) 1. For each of these entity GUIDs, a `purgeEntity` is then called to hard-delete the instance. -1. Searches for `instancesPerType` reference copy entities. (This uses `findEntitiesByProperty` with a condition on - `metadataCollectionId` and its performance is recorded as part of the [entity search](entity-search.md) profile.) -1. For each of these reference copy entity instances, `purgeEntityReferenceCopy` is called to remove the reference copy - instance. +1. Searches for `instancesPerType` reference copy entities. (This uses `findEntitiesByProperty` with a condition on `metadataCollectionId` and its performance is recorded as part of the [entity search](entity-search.md) profile.) +1. For each of these reference copy entity instances, `purgeEntityReferenceCopy` is called to remove the reference copy instance. !!! example "Example" - So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is - set to 100, then this profile will remove 50 (types) x 100 (instances per type) x 3 (home + reference copy methods) = 15 000 - entities. (And it will run `findEntitiesByProperty` 100 times.) + So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is set to 100, then this profile will remove 50 (types) x 100 (instances per type) x 3 (home + reference copy methods) = 15 000 entities. (And it will run `findEntitiesByProperty` 100 times.) --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/entity-re-home.md b/site/docs/guides/cts/performance-profiles/entity-re-home.md similarity index 70% rename from site/docs/guides/cts/profiles/entity-re-home.md rename to site/docs/guides/cts/performance-profiles/entity-re-home.md index 3bd0a002f3..7764d2d9bf 100644 --- a/site/docs/guides/cts/profiles/entity-re-home.md +++ b/site/docs/guides/cts/performance-profiles/entity-re-home.md @@ -6,12 +6,11 @@ hide: -# Entity re-home profile +# Entity Re-Home Profile The performance of programmatically changing the home repository of an existing entity instance. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines an optional method for changing the home repository of entity instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines an optional method for changing the home repository of entity instances: | Method | Description | |---|---| @@ -26,12 +25,9 @@ For every entity type supported by the technology under test, this profile does 1. Searches for `instancesPerType` reference copy entity GUIDs of that type. (This uses `findEntitiesByProperty` with a condition on `metadataCollectionId` and its performance is recorded as part of the [entity search](entity-search.md) profile.) -1. For each of these entity GUIDs, `reHomeEntity` is called to change the home repository to the technology under test's - `metadataCollectionId`. +1. For each of these entity GUIDs, `reHomeEntity` is called to change the home repository to the technology under test's `metadataCollectionId`. !!! example "Example" - So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is - set to 100, then this profile will re-home 50 (types) x 100 (instances per type) = 5000 - entities. (And it will run `findEntitiesByProperty` 50 times.) + So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is set to 100, then this profile will re-home 50 (types) x 100 (instances per type) = 5000 entities. (And it will run `findEntitiesByProperty` 50 times.) --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/entity-re-identify.md b/site/docs/guides/cts/performance-profiles/entity-re-identify.md similarity index 63% rename from site/docs/guides/cts/profiles/entity-re-identify.md rename to site/docs/guides/cts/performance-profiles/entity-re-identify.md index 3b536bbc29..d435276add 100644 --- a/site/docs/guides/cts/profiles/entity-re-identify.md +++ b/site/docs/guides/cts/performance-profiles/entity-re-identify.md @@ -6,12 +6,11 @@ hide: -# Entity re-identify profile +# Entity Re-Identify Profile The performance of programmatically changing the GUID of an existing entity instance. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines an optional method for changing the GUID of entity instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines an optional method for changing the GUID of entity instances: | Method | Description | |---|---| @@ -24,13 +23,10 @@ repository defines an optional method for changing the GUID of entity instances: For every entity type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` homed entity GUIDs of that type. (This uses `findEntitiesByProperty` - with a condition on `metadataCollectionId` and its performance is recorded as part of the [entity search](entity-search.md) profile.) +1. Searches for `instancesPerType` homed entity GUIDs of that type. (This uses `findEntitiesByProperty` with a condition on `metadataCollectionId` and its performance is recorded as part of the [entity search](entity-search.md) profile.) 1. For each of these entity GUIDs, `reIdentifyEntity` is called to change the GUID of the entity to a new random GUID. !!! example "Example" - So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is - set to 100, then this profile will re-identify 50 (types) x 100 (instances per type) = 5000 - entities. (And it will run `findEntitiesByProperty` 50 times.) + So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is set to 100, then this profile will re-identify 50 (types) x 100 (instances per type) = 5000 entities. (And it will run `findEntitiesByProperty` 50 times.) --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/entity-restore.md b/site/docs/guides/cts/performance-profiles/entity-restore.md similarity index 62% rename from site/docs/guides/cts/profiles/entity-restore.md rename to site/docs/guides/cts/performance-profiles/entity-restore.md index 95a908d47a..bb71b18bb8 100644 --- a/site/docs/guides/cts/profiles/entity-restore.md +++ b/site/docs/guides/cts/performance-profiles/entity-restore.md @@ -6,12 +6,11 @@ hide: -# Entity restore profile +# Entity Restore Profile The performance of programmatically reversing the latest soft-delete of an existing entity instance. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines an optional method for reverting soft-deletes on entity instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines an optional method for reverting soft-deletes on entity instances: | Method | Description | |---|---| @@ -24,14 +23,10 @@ repository defines an optional method for reverting soft-deletes on entity insta For every entity type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` entity GUIDs of that type that have been soft-deleted. (This uses `findEntitiesByProperty` - with a condition to limit to the status `DELETED` only and its performance is recorded as part of the [entity search](entity-search.md) - profile.) +1. Searches for `instancesPerType` entity GUIDs of that type that have been soft-deleted. (This uses `findEntitiesByProperty` with a condition to limit to the status `DELETED` only and its performance is recorded as part of the [entity search](entity-search.md) profile.) 1. For each of these entity GUIDs, `restoreEntity` is called to revert the soft-delete and make the entity active again. !!! example "Example" - So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is - set to 100, then this profile will re-activate 50 (types) x 100 (instances per type) = 5000 - entities. (And it will run `findEntitiesByProperty` 50 times.) + So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is set to 100, then this profile will re-activate 50 (types) x 100 (instances per type) = 5000 entities. (And it will run `findEntitiesByProperty` 50 times.) --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/entity-retrieval.md b/site/docs/guides/cts/performance-profiles/entity-retrieval.md similarity index 79% rename from site/docs/guides/cts/profiles/entity-retrieval.md rename to site/docs/guides/cts/performance-profiles/entity-retrieval.md index e4ec67fdb7..158271d288 100644 --- a/site/docs/guides/cts/profiles/entity-retrieval.md +++ b/site/docs/guides/cts/performance-profiles/entity-retrieval.md @@ -10,8 +10,7 @@ hide: The performance of programmatically retrieving existing entity instances based on their ID. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines methods for retrieving entity instances by their ID: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines methods for retrieving entity instances by their ID: | Method | Description | |---|---| @@ -28,16 +27,13 @@ repository defines methods for retrieving entity instances by their ID: For every entity type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` entity GUIDs of that type. (This uses `findEntities` and its performance is recorded - as part of the [entity search](entity-search.md) profile.) +1. Searches for `instancesPerType` entity GUIDs of that type. (This uses `findEntities` and its performance is recorded as part of the [entity search](entity-search.md) profile.) 1. For each of these entity GUIDs, `isEntityKnown` is called to retrieve it. 1. For each of these entity GUIDs, `getEntitySummary` is then called to retrieve its summary. 1. For each of these entity GUIDs, `getEntityDetail` is then called to retrieve its details. !!! example "Example" - So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is - set to 100, then this profile will retrieve 50 (types) x 100 (instances per type) x 3 (operations) = 15 000 - entities. (And it will run `findEntities` 50 times.) + So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is set to 100, then this profile will retrieve 50 (types) x 100 (instances per type) x 3 (operations) = 15 000 entities. (And it will run `findEntities` 50 times.) !!! attention "Caveats" Note the following caveats: diff --git a/site/docs/guides/cts/profiles/entity-retype.md b/site/docs/guides/cts/performance-profiles/entity-retype.md similarity index 72% rename from site/docs/guides/cts/profiles/entity-retype.md rename to site/docs/guides/cts/performance-profiles/entity-retype.md index 89c441ac8b..faa475bf91 100644 --- a/site/docs/guides/cts/profiles/entity-retype.md +++ b/site/docs/guides/cts/performance-profiles/entity-retype.md @@ -6,12 +6,11 @@ hide: -# Entity retype profile +# Entity Retype Profile The performance of programmatically changing the type of an existing entity instance. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines an optional method for changing the type of entity instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines an optional method for changing the type of entity instances: | Method | Description | |---|---| @@ -27,20 +26,16 @@ For every entity type supported by the technology under test, this profile does 1. Searches for `instancesPerType` homed entity GUIDs of that type. (This uses `findEntitiesByProperty` with a condition on `metadataCollectionId` and its performance is recorded as part of the [entity search](entity-search.md) profile.) -2. For each of these entity GUIDs, `updateEntityProperties` is called to remove all the entity's properties (so it can be easily retyped), - and its performance is recorded as part of the [entity update](entity-update.md) profile. +2. For each of these entity GUIDs, `updateEntityProperties` is called to remove all the entity's properties (so it can be easily retyped), and its performance is recorded as part of the [entity update](entity-update.md) profile. 3. For each of these entity GUIDs, `reTypeEntity` is called to change the type of the entity to one of its subtypes. 4. For each of these entity GUIDs, `reTypeEntity` is then called to change the type of the entity back to its original type. !!! example "Example" - So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is - set to 100, then this profile will retype 50 (types) x 100 (instances per type) x 2 (operations) = 10 000 - entities at most. (And it will run `findEntitiesByProperty` 50 times.) + So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is set to 100, then this profile will retype 50 (types) x 100 (instances per type) x 2 (operations) = 10 000 entities at most. (And it will run `findEntitiesByProperty` 50 times.) !!! attention "Caveats" Note the following caveats: - - Instances of a given type will only be retyped if that type has any subtypes: if it has no subtypes, then all - retyping operations will be skipped for that type's instances. + - Instances of a given type will only be retyped if that type has any subtypes: if it has no subtypes, then all retyping operations will be skipped for that type's instances. --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/entity-search.md b/site/docs/guides/cts/performance-profiles/entity-search.md similarity index 90% rename from site/docs/guides/cts/profiles/entity-search.md rename to site/docs/guides/cts/performance-profiles/entity-search.md index 1b0b5f32a0..537c128b0a 100644 --- a/site/docs/guides/cts/profiles/entity-search.md +++ b/site/docs/guides/cts/performance-profiles/entity-search.md @@ -6,12 +6,11 @@ hide: -# Entity search profile +# Entity Search Profile The performance of programmatically searching for existing entity instances. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines optional methods for searching for entity instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines optional methods for searching for entity instances: | Method | Description | |---|---| @@ -50,12 +49,8 @@ repository defines optional methods for searching for entity instances: In addition, these tests will record into the Environment profile the `totalEntitiesFound`. !!! tip "Search variations" - When `findEntitiesByProperty` is run by the assertions starting with `repository-entity-search-performance...`, - the tests prefer non-string properties (if any exist for the type) given that the `findEntitiesByPropertyValue` - searches will already heavily exercise string-based queries. + When `findEntitiesByProperty` is run by the assertions starting with `repository-entity-search-performance...`, the tests prefer non-string properties (if any exist for the type) given that the `findEntitiesByPropertyValue` searches will already heavily exercise string-based queries. - Note that the various other assertions (that do _not_ start with `repository-entity-search-performance...`) will - search on various other properties than those listed: in particular, including header properties like - `metadataCollectionId`, `version`, and others. + Note that the various other assertions (that do _not_ start with `repository-entity-search-performance...`) will search on various other properties than those listed: in particular, including header properties like `metadataCollectionId`, `version`, and others. --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/entity-undo.md b/site/docs/guides/cts/performance-profiles/entity-undo.md similarity index 62% rename from site/docs/guides/cts/profiles/entity-undo.md rename to site/docs/guides/cts/performance-profiles/entity-undo.md index 7763344304..9f538b5308 100644 --- a/site/docs/guides/cts/profiles/entity-undo.md +++ b/site/docs/guides/cts/performance-profiles/entity-undo.md @@ -6,12 +6,11 @@ hide: -# Entity undo profile +# Entity Undo Profile The performance of programmatically reversing the latest update to an existing entity instance. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines an optional method for reverting updates on entity instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines an optional method for reverting updates on entity instances: | Method | Description | |---|---| @@ -24,14 +23,10 @@ repository defines an optional method for reverting updates on entity instances: For every entity type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` entities of that type that have at least one change. (This uses `findEntities` with a - condition on both `metadataCollectionId` and `version` being greater than `1`, and its performance is recorded as - part of the [entity search](entity-search.md) profile.) +1. Searches for `instancesPerType` entities of that type that have at least one change. (This uses `findEntities` with a condition on both `metadataCollectionId` and `version` being greater than `1`, and its performance is recorded as part of the [entity search](entity-search.md) profile.) 1. For each of these entity instances, `undoEntityUpdate` is called to revert the last change. !!! example "Example" - So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is - set to 100, then this profile will update 50 (types) x 100 (instances per type) = 5000 - entities. (And it will run `findEntities` 50 times.) + So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is set to 100, then this profile will update 50 (types) x 100 (instances per type) = 5000 entities. (And it will run `findEntities` 50 times.) --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/entity-update.md b/site/docs/guides/cts/performance-profiles/entity-update.md similarity index 66% rename from site/docs/guides/cts/profiles/entity-update.md rename to site/docs/guides/cts/performance-profiles/entity-update.md index 44d45332e9..3fec880f8e 100644 --- a/site/docs/guides/cts/profiles/entity-update.md +++ b/site/docs/guides/cts/performance-profiles/entity-update.md @@ -6,12 +6,11 @@ hide: -# Entity update profile +# Entity Update Profile The performance of programmatically updating existing entity instances. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines optional methods for updating entity instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines optional methods for updating entity instances: | Method | Description | |---|---| @@ -25,27 +24,20 @@ repository defines optional methods for updating entity instances: | `repository-entity-retype-performance-updateEntityProperties-remove` | See the detailed logic of the [entity retype](entity-retype.md) profile. | !!! tip "Captures timestamp for historical metadata profiles" - Prior to this profile running, a timestamp is captured by the performance workbench to denote a specific date and time - prior to any updates having been made to the entities. + Prior to this profile running, a timestamp is captured by the performance workbench to denote a specific date and time prior to any updates having been made to the entities. For every entity type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` entities of that type. (This uses `findEntitiesByProperty` with a condition on - `metadataCollectionId` and its performance is recorded as part of the [entity search](entity-search.md) profile.) -2. For each of these entity instances, `updateEntityProperties` is called to update the existing property values of the - entity, using a new generated set of properties. +1. Searches for `instancesPerType` entities of that type. (This uses `findEntitiesByProperty` with a condition on `metadataCollectionId` and its performance is recorded as part of the [entity search](entity-search.md) profile.) +2. For each of these entity instances, `updateEntityProperties` is called to update the existing property values of the entity, using a new generated set of properties. !!! example "Example" - So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is - set to 100, then this profile will update 50 (types) x 100 (instances per type) = 5000 - entities. (And it will run `findEntitiesByProperty` 50 times.) + So, for example, if the technology under test supports 50 entity types, and the `instancesPerType` parameter is set to 100, then this profile will update 50 (types) x 100 (instances per type) = 5000 entities. (And it will run `findEntitiesByProperty` 50 times.) The properties of each of these instances will be fully-populated with: -- Any string properties containing a value representative of the property name itself (and where unique, - they will be made unique through appending a unique sequence) -- Any non-string properties will be randomly generated, in a simple attempt to represent data that is not entirely - uniform +- Any string properties containing a value representative of the property name itself (and where unique, they will be made unique through appending a unique sequence) +- Any non-string properties will be randomly generated, in a simple attempt to represent data that is not entirely uniform !!! attention "Caveats" Note the following caveats: diff --git a/site/docs/guides/cts/profiles/environment.md b/site/docs/guides/cts/performance-profiles/environment.md similarity index 93% rename from site/docs/guides/cts/profiles/environment.md rename to site/docs/guides/cts/performance-profiles/environment.md index 5b088c29e5..3a59c4e0b9 100644 --- a/site/docs/guides/cts/profiles/environment.md +++ b/site/docs/guides/cts/performance-profiles/environment.md @@ -6,13 +6,11 @@ hide: -# Environment profile +# Environment Profile -Does not actually run any tests, but rather gathers statistics about the environment in which the other -performance tests were executed. +Does not actually run any tests, but rather gathers statistics about the environment in which the other performance tests were executed. -This profile currently collects the following information about the technology under test in which the performance -tests were executed: +This profile currently collects the following information about the technology under test in which the performance tests were executed: ???+ discovered "Discovered properties" **Test configuration** diff --git a/site/docs/guides/cts/profiles/graph-history-queries.md b/site/docs/guides/cts/performance-profiles/graph-history-queries.md similarity index 99% rename from site/docs/guides/cts/profiles/graph-history-queries.md rename to site/docs/guides/cts/performance-profiles/graph-history-queries.md index 5e55836d83..4347254868 100644 --- a/site/docs/guides/cts/profiles/graph-history-queries.md +++ b/site/docs/guides/cts/performance-profiles/graph-history-queries.md @@ -6,7 +6,7 @@ hide: -# Graph history queries profile +# Graph History Queries Profile The performance of programmatically retrieving inter-related instances across potentially multiple degrees of separation, for a given point in time. diff --git a/site/docs/guides/cts/profiles/graph-perf-queries.md b/site/docs/guides/cts/performance-profiles/graph-perf-queries.md similarity index 99% rename from site/docs/guides/cts/profiles/graph-perf-queries.md rename to site/docs/guides/cts/performance-profiles/graph-perf-queries.md index f6335b5ce4..8d2a3cf137 100644 --- a/site/docs/guides/cts/profiles/graph-perf-queries.md +++ b/site/docs/guides/cts/performance-profiles/graph-perf-queries.md @@ -6,7 +6,7 @@ hide: -# Graph queries profile +# Graph Queries Profile The performance of programmatically retrieving inter-related instances across potentially multiple degrees of separation. diff --git a/site/docs/guides/cts/profiles/relationship-creation.md b/site/docs/guides/cts/performance-profiles/relationship-creation.md similarity index 77% rename from site/docs/guides/cts/profiles/relationship-creation.md rename to site/docs/guides/cts/performance-profiles/relationship-creation.md index 674960b502..f86abe044a 100644 --- a/site/docs/guides/cts/profiles/relationship-creation.md +++ b/site/docs/guides/cts/performance-profiles/relationship-creation.md @@ -6,12 +6,11 @@ hide: -# Relationship creation profile +# Relationship Creation Profile The performance of programmatically creating new relationship instances. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines optional methods for creating relationship instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines optional methods for creating relationship instances: | Method | Description | |---|---| @@ -24,20 +23,15 @@ repository defines optional methods for creating relationship instances: | `repository-relationship-creation-performance-addRelationship` | Invocation of the `addRelationship` method during the profile (see detailed logic below). | | `repository-relationship-creation-performance-saveRelationshipReferenceCopy` | Invocation of the `saveRelationshipReferenceCopy` method during the profile (see detailed logic below). | -For every relationship type supported by the technology under test, this profile invokes each of these methods `instancesPerType` -times. +For every relationship type supported by the technology under test, this profile invokes each of these methods `instancesPerType` times. !!! example "Example" - So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is set to - 100, then this profile will create 50 (types) x 100 (instances per type) x 2 (home + non-home methods) = 10 000 relationship - instances. + So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is set to 100, then this profile will create 50 (types) x 100 (instances per type) x 2 (home + non-home methods) = 10 000 relationship instances. The properties of each of these instances will be fully-populated with: -- Any string properties containing a value representative of the property name itself (and where unique, they will be - made unique through appending a unique sequence) -- Any non-string properties will be randomly generated, in a simple attempt to represent data that is not entirely - uniform +- Any string properties containing a value representative of the property name itself (and where unique, they will be made unique through appending a unique sequence) +- Any non-string properties will be randomly generated, in a simple attempt to represent data that is not entirely uniform In addition, these tests will record into the Environment profile the `totalRelationshipsCreated`. diff --git a/site/docs/guides/cts/profiles/relationship-delete.md b/site/docs/guides/cts/performance-profiles/relationship-delete.md similarity index 66% rename from site/docs/guides/cts/profiles/relationship-delete.md rename to site/docs/guides/cts/performance-profiles/relationship-delete.md index cc2a72cab1..c377e137c1 100644 --- a/site/docs/guides/cts/profiles/relationship-delete.md +++ b/site/docs/guides/cts/performance-profiles/relationship-delete.md @@ -6,12 +6,11 @@ hide: -# Relationship delete profile +# Relationship Delete Profile The performance of programmatically soft-deleting an existing relationship instance. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines an optional method for deleting relationship instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines an optional method for deleting relationship instances: | Method | Description | |---|---| @@ -25,13 +24,10 @@ repository defines an optional method for deleting relationship instances: For every relationship type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` relationships of that type. (This uses `findRelationshipsByProperty` with a condition - on `metadataCollectionId` and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) +1. Searches for `instancesPerType` relationships of that type. (This uses `findRelationshipsByProperty` with a condition on `metadataCollectionId` and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) 1. For each of these relationship instances, `deleteRelationship` is called to soft-delete it. !!! example "Example" - So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is - set to 100, then this profile will soft-delete 50 (types) x 100 (instances per type) = 5000 - relationships. (And it will run `findRelationshipsByProperty` 50 times.) + So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is set to 100, then this profile will soft-delete 50 (types) x 100 (instances per type) = 5000 relationships. (And it will run `findRelationshipsByProperty` 50 times.) --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/relationship-history-retrieval.md b/site/docs/guides/cts/performance-profiles/relationship-history-retrieval.md similarity index 60% rename from site/docs/guides/cts/profiles/relationship-history-retrieval.md rename to site/docs/guides/cts/performance-profiles/relationship-history-retrieval.md index f44a717bf8..c440f7f3a1 100644 --- a/site/docs/guides/cts/profiles/relationship-history-retrieval.md +++ b/site/docs/guides/cts/performance-profiles/relationship-history-retrieval.md @@ -6,12 +6,11 @@ hide: -# Relationship history retrieval profile +# Relationship History Retrieval Profile The performance of programmatically retrieving the history of existing relationship instances based on their ID. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines methods for retrieving the history of relationship instances by their ID: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines methods for retrieving the history of relationship instances by their ID: | Method | Description | |---|---| @@ -26,17 +25,11 @@ repository defines methods for retrieving the history of relationship instances For every relationship type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` entity GUIDs of that type. (This uses `findRelationships` and its performance is recorded - as part of the [relationship search](relationship-search.md) profile.) -1. For each of these relationship GUIDs, `getRelationship` is then called with an `asOfTime` using the timestamp captured - prior to the execution of the Relationship Update profile, to retrieve its historical details from that point in time - (prior to any updates). -1. For each of these relationship GUIDs, `getRelationshipHistory` is then called to retrieve its full history (including - current version and all historical versions of the instance). +1. Searches for `instancesPerType` entity GUIDs of that type. (This uses `findRelationships` and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) +1. For each of these relationship GUIDs, `getRelationship` is then called with an `asOfTime` using the timestamp captured prior to the execution of the Relationship Update profile, to retrieve its historical details from that point in time (prior to any updates). +1. For each of these relationship GUIDs, `getRelationshipHistory` is then called to retrieve its full history (including current version and all historical versions of the instance). !!! example "Example" - So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is - set to 100, then this profile will retrieve 50 (types) x 100 (instances per type) x 2 (operations) = 10 000 - relationships. (And it will run `findRelationships` 50 times.) + So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is set to 100, then this profile will retrieve 50 (types) x 100 (instances per type) x 2 (operations) = 10 000 relationships. (And it will run `findRelationships` 50 times.) --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/relationship-history-search.md b/site/docs/guides/cts/performance-profiles/relationship-history-search.md similarity index 88% rename from site/docs/guides/cts/profiles/relationship-history-search.md rename to site/docs/guides/cts/performance-profiles/relationship-history-search.md index 55ce011c92..c8ea9a7f85 100644 --- a/site/docs/guides/cts/profiles/relationship-history-search.md +++ b/site/docs/guides/cts/performance-profiles/relationship-history-search.md @@ -6,13 +6,11 @@ hide: -# Relationship history search profile +# Relationship History Search Profile The performance of programmatically searching for relationship instances as they existed in the past. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines optional methods for searching for relationship instances based on their details in the past, -by passing in an `asOfTime` parameter (captured during the execution of the [relationship update](relationship-update.md) profile): +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines optional methods for searching for relationship instances based on their details in the past, by passing in an `asOfTime` parameter (captured during the execution of the [relationship update](relationship-update.md) profile): | Method | Description | |---|---| @@ -36,8 +34,6 @@ by passing in an `asOfTime` parameter (captured during the execution of the [rel | `repository-relationship-history-retrieval-performance-findRelationships` | See the detailed logic of the [relationship retrieval](relationship-retrieval.md) profile. | !!! tip "Search variations" - When `findRelationshipsByProperty` is run by the assertions starting with `repository-relationship-search-history-performance...`, - the tests prefer non-string properties (if any exist for the type) given that the `findRelationshipsByPropertyValue` - searches will already heavily exercise string-based queries. + When `findRelationshipsByProperty` is run by the assertions starting with `repository-relationship-search-history-performance...`, the tests prefer non-string properties (if any exist for the type) given that the `findRelationshipsByPropertyValue` searches will already heavily exercise string-based queries. --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/relationship-purge.md b/site/docs/guides/cts/performance-profiles/relationship-purge.md similarity index 66% rename from site/docs/guides/cts/profiles/relationship-purge.md rename to site/docs/guides/cts/performance-profiles/relationship-purge.md index 0ab3ee0273..de2e250a8b 100644 --- a/site/docs/guides/cts/profiles/relationship-purge.md +++ b/site/docs/guides/cts/performance-profiles/relationship-purge.md @@ -6,12 +6,11 @@ hide: -# Relationship purge profile +# Relationship Purge Profile The performance of programmatically hard-deleting (irreversibly) existing relationship instances. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines optional methods for hard-deleting relationship instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines optional methods for hard-deleting relationship instances: | Method | Description | |---|---| @@ -26,19 +25,13 @@ repository defines optional methods for hard-deleting relationship instances: For every relationship type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` relationship GUIDs homed in the technology under test. (This uses `findRelationshipsByProperty` - with a condition on `metadataCollectionId` and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) -1. For each of these relationship GUIDs, `deleteRelationship` is called to soft-delete the instance. (This is necessary - before a hard-delete can be done against the instance, and is recorded as part of the [relationship delete](relationship-delete.md) profile.) +1. Searches for `instancesPerType` relationship GUIDs homed in the technology under test. (This uses `findRelationshipsByProperty` with a condition on `metadataCollectionId` and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) +1. For each of these relationship GUIDs, `deleteRelationship` is called to soft-delete the instance. (This is necessary before a hard-delete can be done against the instance, and is recorded as part of the [relationship delete](relationship-delete.md) profile.) 1. For each of these relationship GUIDs, a `purgeRelationship` is then called to hard-delete the instance. -1. Searches for `instancesPerType` reference copy relationships. (This uses `findRelationshipsByProperty` with a condition on - `metadataCollectionId` and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) -1. For each of these reference copy relationship instances, `purgeRelationshipReferenceCopy` is called to remove the reference copy - instance. +1. Searches for `instancesPerType` reference copy relationships. (This uses `findRelationshipsByProperty` with a condition on `metadataCollectionId` and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) +1. For each of these reference copy relationship instances, `purgeRelationshipReferenceCopy` is called to remove the reference copy instance. !!! example "Example" - So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is - set to 100, then this profile will remove 50 (types) x 100 (instances per type) x 3 (home + reference copy methods) = 15 000 - relationships. (And it will run `findRelationshipsByProperty` 100 times.) + So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is set to 100, then this profile will remove 50 (types) x 100 (instances per type) x 3 (home + reference copy methods) = 15 000 relationships. (And it will run `findRelationshipsByProperty` 100 times.) --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/relationship-re-home.md b/site/docs/guides/cts/performance-profiles/relationship-re-home.md similarity index 65% rename from site/docs/guides/cts/profiles/relationship-re-home.md rename to site/docs/guides/cts/performance-profiles/relationship-re-home.md index d7a317ede1..c2e4506842 100644 --- a/site/docs/guides/cts/profiles/relationship-re-home.md +++ b/site/docs/guides/cts/performance-profiles/relationship-re-home.md @@ -6,7 +6,7 @@ hide: -# Relationship re-home profile +# Relationship Re-Home Profile The performance of programmatically changing the home repository of an existing relationship instance. @@ -24,14 +24,10 @@ repository defines an optional method for changing the home repository of relati For every relationship type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` reference copy relationship GUIDs of that type. (This uses `findRelationshipsByProperty` - with a condition on `metadataCollectionId` and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) -1. For each of these relationship GUIDs, `reHomeEntity` is called to change the home repository to the technology under test's - `metadataCollectionId`. +1. Searches for `instancesPerType` reference copy relationship GUIDs of that type. (This uses `findRelationshipsByProperty` with a condition on `metadataCollectionId` and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) +1. For each of these relationship GUIDs, `reHomeEntity` is called to change the home repository to the technology under test's `metadataCollectionId`. !!! example "Example" - So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is - set to 100, then this profile will re-home 50 (types) x 100 (instances per type) = 5000 - relationships. (And it will run `findRelationshipsByProperty` 50 times.) + So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is set to 100, then this profile will re-home 50 (types) x 100 (instances per type) = 5000 relationships. (And it will run `findRelationshipsByProperty` 50 times.) --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/relationship-re-identify.md b/site/docs/guides/cts/performance-profiles/relationship-re-identify.md similarity index 62% rename from site/docs/guides/cts/profiles/relationship-re-identify.md rename to site/docs/guides/cts/performance-profiles/relationship-re-identify.md index 064cc75bfe..9169fbfdc4 100644 --- a/site/docs/guides/cts/profiles/relationship-re-identify.md +++ b/site/docs/guides/cts/performance-profiles/relationship-re-identify.md @@ -6,12 +6,11 @@ hide: -# Relationship re-identify profile +# Relationship Re-Identify Profile The performance of programmatically changing the GUID of an existing relationship instance. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines an optional method for changing the GUID of relationship instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines an optional method for changing the GUID of relationship instances: | Method | Description | |---|---| @@ -24,13 +23,10 @@ repository defines an optional method for changing the GUID of relationship inst For every relationship type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` homed relationship GUIDs of that type. (This uses `findRelationshipsByProperty` - with a condition on `metadataCollectionId` and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) +1. Searches for `instancesPerType` homed relationship GUIDs of that type. (This uses `findRelationshipsByProperty` with a condition on `metadataCollectionId` and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) 1. For each of these relationship GUIDs, `reIdentifyRelationship` is called to change its GUID to a new random GUID. !!! example "Example" - So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is - set to 100, then this profile will re-identify 50 (types) x 100 (instances per type) = 5000 - relationships. (And it will run `findRelationshipsByProperty` 50 times.) + So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is set to 100, then this profile will re-identify 50 (types) x 100 (instances per type) = 5000 relationships. (And it will run `findRelationshipsByProperty` 50 times.) --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/relationship-restore.md b/site/docs/guides/cts/performance-profiles/relationship-restore.md similarity index 64% rename from site/docs/guides/cts/profiles/relationship-restore.md rename to site/docs/guides/cts/performance-profiles/relationship-restore.md index 6bd8271331..e9e185e88b 100644 --- a/site/docs/guides/cts/profiles/relationship-restore.md +++ b/site/docs/guides/cts/performance-profiles/relationship-restore.md @@ -6,12 +6,11 @@ hide: -# Relationship restore profile +# Relationship Restore Profile The performance of programmatically reversing the latest soft-delete of an existing relationship instance. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines an optional method for reverting soft-deletes on relationship instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines an optional method for reverting soft-deletes on relationship instances: | Method | Description | |---|---| @@ -24,15 +23,11 @@ repository defines an optional method for reverting soft-deletes on relationship For every relationship type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` relationship GUIDs of that type that have been soft-deleted. (This uses `findRelationshipsByProperty` - with a condition to limit to the status `DELETED` only and its performance is recorded as part of the [relationship +1. Searches for `instancesPerType` relationship GUIDs of that type that have been soft-deleted. (This uses `findRelationshipsByProperty` with a condition to limit to the status `DELETED` only and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) -1. For each of these relationship GUIDs, `restoreRelationship` is called to revert the soft-delete and make the relationship - active again. +1. For each of these relationship GUIDs, `restoreRelationship` is called to revert the soft-delete and make the relationship active again. !!! example "Example" - So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is - set to 100, then this profile will re-activate 50 (types) x 100 (instances per type) = 5000 - relationships. (And it will run `findRelationshipsByProperty` 50 times.) + So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is set to 100, then this profile will re-activate 50 (types) x 100 (instances per type) = 5000 relationships. (And it will run `findRelationshipsByProperty` 50 times.) --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/relationship-retrieval.md b/site/docs/guides/cts/performance-profiles/relationship-retrieval.md similarity index 74% rename from site/docs/guides/cts/profiles/relationship-retrieval.md rename to site/docs/guides/cts/performance-profiles/relationship-retrieval.md index f9a5fe97e5..eff4a43dc3 100644 --- a/site/docs/guides/cts/profiles/relationship-retrieval.md +++ b/site/docs/guides/cts/performance-profiles/relationship-retrieval.md @@ -6,12 +6,11 @@ hide: -# Relationship retrieval profile +# Relationship Retrieval Profile The performance of programmatically retrieving existing relationship instances based on their ID. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines methods for retrieving relationship instances by their ID: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines methods for retrieving relationship instances by their ID: | Method | Description | |---|---| @@ -26,15 +25,12 @@ repository defines methods for retrieving relationship instances by their ID: For every relationship type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` relationship GUIDs of that type. (This uses `findRelationships` and its performance - is recorded as part of the [relationship search](relationship-search.md) profile.) +1. Searches for `instancesPerType` relationship GUIDs of that type. (This uses `findRelationships` and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) 1. For each of these relationship GUIDs, `isRelationshipKnown` is called to retrieve it. 1. For each of these relationship GUIDs, `getRelationship` is then called to retrieve its details. !!! example "Example" - So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is - set to 100, then this profile will retrieve 50 (types) x 100 (instances per type) x 2 (operations) = 10 000 - relationships. (And it will run `findRelationships` 50 times.) + So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is set to 100, then this profile will retrieve 50 (types) x 100 (instances per type) x 2 (operations) = 10 000 relationships. (And it will run `findRelationships` 50 times.) !!! attention "Caveats" Note the following caveats: diff --git a/site/docs/guides/cts/profiles/relationship-retype.md b/site/docs/guides/cts/performance-profiles/relationship-retype.md similarity index 60% rename from site/docs/guides/cts/profiles/relationship-retype.md rename to site/docs/guides/cts/performance-profiles/relationship-retype.md index d234f28899..9926a0c4bc 100644 --- a/site/docs/guides/cts/profiles/relationship-retype.md +++ b/site/docs/guides/cts/performance-profiles/relationship-retype.md @@ -6,12 +6,11 @@ hide: -# Relationship retype profile +# Relationship Retype Profile The performance of programmatically changing the type of an existing relationship instance. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines an optional method for changing the type of relationship instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines an optional method for changing the type of relationship instances: | Method | Description | |---|---| @@ -25,24 +24,18 @@ repository defines an optional method for changing the type of relationship inst For every relationship type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` homed relationship GUIDs of that type. (This uses `findRelationshipsByProperty` - with a condition on `metadataCollectionId` and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) -2. For each of these relationship GUIDs, `updateRelationshipProperties` is called to remove all the relationship's properties (so it can be easily retyped), - and its performance is recorded as part of the [relationship update](relationship-update.md) profile. +1. Searches for `instancesPerType` homed relationship GUIDs of that type. (This uses `findRelationshipsByProperty` with a condition on `metadataCollectionId` and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) +2. For each of these relationship GUIDs, `updateRelationshipProperties` is called to remove all the relationship's properties (so it can be easily retyped), and its performance is recorded as part of the [relationship update](relationship-update.md) profile. 3. For each of these relationship GUIDs, `reTypeRelationship` is called to change the type of the relationship to one of its subtypes. 4. For each of these relationship GUIDs, `reTypeRelationship` is then called to change the type of the relationship back to its original type. !!! example "Example" - So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is - set to 100, then this profile will retype 50 (types) x 100 (instances per type) x 2 (operations) = 10 000 - relationships at most. (And it will run `findRelationshipsByProperty` 50 times.) + So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is set to 100, then this profile will retype 50 (types) x 100 (instances per type) x 2 (operations) = 10 000 relationships at most. (And it will run `findRelationshipsByProperty` 50 times.) !!! attention "Caveats" Note the following caveats: - - Instances of a given type will only be retyped if that type has any subtypes: if it has no subtypes, then all - retyping operations will be skipped for that type's instances. - - Currently there are no open metadata relationship types that have supertypes or subtypes, so this profile will - not actually have any metadata instance against which to call `reTypeRelationship`. + - Instances of a given type will only be retyped if that type has any subtypes: if it has no subtypes, then all retyping operations will be skipped for that type's instances. + - Currently there are no open metadata relationship types that have supertypes or subtypes, so this profile will not actually have any metadata instance against which to call `reTypeRelationship`. --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/relationship-search.md b/site/docs/guides/cts/performance-profiles/relationship-search.md similarity index 90% rename from site/docs/guides/cts/profiles/relationship-search.md rename to site/docs/guides/cts/performance-profiles/relationship-search.md index 470dc0e9fd..0b1fb02b0c 100644 --- a/site/docs/guides/cts/profiles/relationship-search.md +++ b/site/docs/guides/cts/performance-profiles/relationship-search.md @@ -6,12 +6,11 @@ hide: -# Relationship search profile +# Relationship Search Profile The performance of programmatically searching for existing relationship instances. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines optional methods for searching for relationship instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines optional methods for searching for relationship instances: | Method | Description | |---|---| @@ -46,12 +45,8 @@ repository defines optional methods for searching for relationship instances: In addition, these tests will record into the Environment profile the `totalRelationshipsFound`. !!! tip "Search variations" - When `findRelationshipsByProperty` is run by the assertions starting with `repository-relationship-search-performance...`, - the tests prefer non-string properties (if any exist for the type) given that the `findRelationshipsByPropertyValue` - searches will already heavily exercise string-based queries. + When `findRelationshipsByProperty` is run by the assertions starting with `repository-relationship-search-performance...`, the tests prefer non-string properties (if any exist for the type) given that the `findRelationshipsByPropertyValue` searches will already heavily exercise string-based queries. - Note that the various other assertions (that do _not_ start with `repository-relationship-search-performance...`) will - search on various other properties than those listed: in particular, including header properties like - `metadataCollectionId`, `version`, and others. + Note that the various other assertions (that do _not_ start with `repository-relationship-search-performance...`) will search on various other properties than those listed: in particular, including header properties like `metadataCollectionId`, `version`, and others. --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/relationship-undo.md b/site/docs/guides/cts/performance-profiles/relationship-undo.md similarity index 59% rename from site/docs/guides/cts/profiles/relationship-undo.md rename to site/docs/guides/cts/performance-profiles/relationship-undo.md index 796974c569..afc07aacc5 100644 --- a/site/docs/guides/cts/profiles/relationship-undo.md +++ b/site/docs/guides/cts/performance-profiles/relationship-undo.md @@ -6,12 +6,11 @@ hide: -# Relationship undo profile +# Relationship Undo Profile The performance of programmatically reversing the latest update to an existing relationship instance. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines an optional method for reverting updates on relationship instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines an optional method for reverting updates on relationship instances: | Method | Description | |---|---| @@ -24,20 +23,15 @@ repository defines an optional method for reverting updates on relationship inst For every relationship type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` relationships of that type that have at least one change. (This uses - `findRelationships` with a condition on both `metadataCollectionId` and `version` being greater than `1`, and its - performance is recorded as part of the [relationship search](relationship-search.md) profile.) +1. Searches for `instancesPerType` relationships of that type that have at least one change. (This uses `findRelationships` with a condition on both `metadataCollectionId` and `version` being greater than `1`, and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) 1. For each of these relationship instances, `undoRelationshipUpdate` is called to revert the last change. !!! example "Example" - So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is - set to 100, then this profile will update 50 (types) x 100 (instances per type) = 5000 - relationships. (And it will run `findRelationships` 50 times.) + So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is set to 100, then this profile will update 50 (types) x 100 (instances per type) = 5000 relationships. (And it will run `findRelationships` 50 times.) !!! attention "Caveats" Note the following caveats: - - Relationship type definitions that have no properties will not be reverted: since there are no properties to update, - there will not have been any updated version (and thus nothing to revert). + - Relationship type definitions that have no properties will not be reverted: since there are no properties to update, there will not have been any updated version (and thus nothing to revert). --8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/profiles/relationship-update.md b/site/docs/guides/cts/performance-profiles/relationship-update.md similarity index 68% rename from site/docs/guides/cts/profiles/relationship-update.md rename to site/docs/guides/cts/performance-profiles/relationship-update.md index 68a1da813d..6739282136 100644 --- a/site/docs/guides/cts/profiles/relationship-update.md +++ b/site/docs/guides/cts/performance-profiles/relationship-update.md @@ -6,12 +6,11 @@ hide: -# Relationship update profile +# Relationship Update Profile The performance of programmatically updating existing relationship instances. -The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata -repository defines optional methods for updating relationship instances: +The [Open Metadata Repository Services (OMRS)](/egeria-docs/services/omrs) interface for a metadata repository defines optional methods for updating relationship instances: | Method | Description | |---|---| @@ -25,27 +24,20 @@ repository defines optional methods for updating relationship instances: | `repository-relationship-retype-performance-updateEntityProperties-remove` | See the detailed logic of the [relationship retype](relationship-retype.md) profile. | !!! tip "Captures timestamp for historical metadata profiles" - Prior to this profile running, a timestamp is captured by the performance workbench to denote a specific date and time - prior to any updates having been made to the relationships. + Prior to this profile running, a timestamp is captured by the performance workbench to denote a specific date and time prior to any updates having been made to the relationships. For every entity type supported by the technology under test, this profile does the following (in order): -1. Searches for `instancesPerType` relationships of that type. (This uses `findRelationshipsByProperty` with a condition on - `metadataCollectionId` and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) -1. For each of these relationship instances, `updateRelationshipProperties` is called to update the existing property values of the - relationship, using a new generated set of properties. +1. Searches for `instancesPerType` relationships of that type. (This uses `findRelationshipsByProperty` with a condition on `metadataCollectionId` and its performance is recorded as part of the [relationship search](relationship-search.md) profile.) +1. For each of these relationship instances, `updateRelationshipProperties` is called to update the existing property values of the relationship, using a new generated set of properties. !!! example "Example" - So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is - set to 100, then this profile will update 50 (types) x 100 (instances per type) = 5000 - relationships. (And it will run `findRelationshipsByProperty` 50 times.) + So, for example, if the technology under test supports 50 relationship types, and the `instancesPerType` parameter is set to 100, then this profile will update 50 (types) x 100 (instances per type) = 5000 relationships. (And it will run `findRelationshipsByProperty` 50 times.) The properties of each of these instances will be fully-populated with: -- Any string properties containing a value representative of the property name itself (and where unique, - they will be made unique through appending a unique sequence) -- Any non-string properties will be randomly generated, in a simple attempt to represent data that is not entirely - uniform +- Any string properties containing a value representative of the property name itself (and where unique, they will be made unique through appending a unique sequence) +- Any non-string properties will be randomly generated, in a simple attempt to represent data that is not entirely uniform !!! attention "Caveats" Note the following caveats: diff --git a/site/docs/guides/cts/repository-profiles/dynamic-types.md b/site/docs/guides/cts/repository-profiles/dynamic-types.md new file mode 100644 index 0000000000..f1d67a1bf9 --- /dev/null +++ b/site/docs/guides/cts/repository-profiles/dynamic-types.md @@ -0,0 +1,14 @@ + + + +# Dynamic Types Profile + +The technology under test supports changes to the list of its supported types while it is running. + +## TypeDef add + +The technology under test supports the addition of new type definitions. + +## TypeDef maintenance + +The technology under test supports the commands to change a type definition. diff --git a/site/docs/guides/cts/repository-profiles/effectivity-dating.md b/site/docs/guides/cts/repository-profiles/effectivity-dating.md new file mode 100644 index 0000000000..e170ed1dba --- /dev/null +++ b/site/docs/guides/cts/repository-profiles/effectivity-dating.md @@ -0,0 +1,8 @@ + + + +# Effectivity Dating Profile + +The technology under test supports effectivity dating properties. + +!!! attention "Not yet implemented" diff --git a/site/docs/guides/cts/repository-profiles/entity-advanced-search.md b/site/docs/guides/cts/repository-profiles/entity-advanced-search.md new file mode 100644 index 0000000000..d7b0790852 --- /dev/null +++ b/site/docs/guides/cts/repository-profiles/entity-advanced-search.md @@ -0,0 +1,14 @@ + + + +# Entity Advanced Search Profile + +The technology under test supports the use of regular expressions to search for metadata instances. + +## Advanced property search + +The technology under test supports the use of regular expressions within match properties to search for entity instances. + +## Advanced value search + +The technology under test supports the use of regular expressions within value search criteria to search for entity instances. diff --git a/site/docs/guides/cts/repository-profiles/entity-proxies.md b/site/docs/guides/cts/repository-profiles/entity-proxies.md new file mode 100644 index 0000000000..4826920f9e --- /dev/null +++ b/site/docs/guides/cts/repository-profiles/entity-proxies.md @@ -0,0 +1,22 @@ + + + +# Entity Proxies Profile + +The technology under test is able to store stubs for entities to use on relationships when the full entity is not available. + +## Store entity proxies + +The technology under test supports the storage of metadata instances that are proxies for instances from other repositories in the cohort. + +## Retrieve entity proxies + +The technology under test supports the command to retrieve a proxy instance of a metadata instance. + +## Entity proxy locking + +The technology under test ensures metadata instances that are proxies for instances from other repositories can not be updated. + +## Retrieve entity proxies + +The technology under test ensures that proxy instances are removed from its repository with integrity when the master copy is deleted. diff --git a/site/docs/guides/cts/repository-profiles/entity-search.md b/site/docs/guides/cts/repository-profiles/entity-search.md new file mode 100644 index 0000000000..3a15d7475f --- /dev/null +++ b/site/docs/guides/cts/repository-profiles/entity-search.md @@ -0,0 +1,18 @@ + + + +# Entity Search Profile + +The technology under test supports the ability to search for entity instances. + +## Entity property search + +The technology under test supports the search and retrieval of current metadata instances from its repository based on matching specific property values. + +## Entity value search + +The technology under test supports the search and retrieval of current metadata instances from its repository based on matching any values. + +## Entity condition search + +The technology under test supports the search and retrieval of current metadata instances from its repository based on matching logical combinations of property conditions. diff --git a/site/docs/guides/cts/repository-profiles/graph-queries.md b/site/docs/guides/cts/repository-profiles/graph-queries.md new file mode 100644 index 0000000000..8f2e161312 --- /dev/null +++ b/site/docs/guides/cts/repository-profiles/graph-queries.md @@ -0,0 +1,18 @@ + + + +# Graph Queries Profile + +The technology under test supports graph-like queries that return collections of metadata instances. + +## Entity neighborhood + +The technology under test supports the ability to query metadata instances that radiate from a specific entity instance through multiple hops. + +## Connected entities + +The technology under test supports the ability to query the entity instances that are connected to a specific entity instance. + +## Linked entities + +The technology under test supports the ability to locate the metadata instances that connect two entity instances together. diff --git a/site/docs/guides/cts/repository-profiles/historical-search.md b/site/docs/guides/cts/repository-profiles/historical-search.md new file mode 100644 index 0000000000..fed33f0dd8 --- /dev/null +++ b/site/docs/guides/cts/repository-profiles/historical-search.md @@ -0,0 +1,14 @@ + + + +# Historical Search Profile + +The technology under test supports search for the state of the metadata instances at a specific time in the past. + +## Historical property queries + +The technology under test supports the point in time search and retrieval of metadata instances from its repository based on specific property values. + +## Historical value queries + +The technology under test supports the point in time search and retrieval of metadata instances from its repository based on arbitrary values. diff --git a/site/docs/guides/cts/repository-profiles/metadata-maintenance.md b/site/docs/guides/cts/repository-profiles/metadata-maintenance.md new file mode 100644 index 0000000000..41719b65d4 --- /dev/null +++ b/site/docs/guides/cts/repository-profiles/metadata-maintenance.md @@ -0,0 +1,18 @@ + + + +# Metadata Maintenance Profile + +The technology under test supports requests to create, update and purge metadata instances. + +## Entity lifecycle + +The technology under test supports requests to create, update and purge entity instances. + +## Classification lifecycle + +The technology under test supports requests to create, update and purge classification instances. + +## Relationship lifecycle + +The technology under test supports requests to create, update and purge relationship instances. diff --git a/site/docs/guides/cts/repository-profiles/metadata-sharing.md b/site/docs/guides/cts/repository-profiles/metadata-sharing.md new file mode 100644 index 0000000000..7520e7e4fb --- /dev/null +++ b/site/docs/guides/cts/repository-profiles/metadata-sharing.md @@ -0,0 +1,151 @@ + + + +# Metadata Sharing Profile + +The functionality necessary to share metadata with other members of the cohort. + +## Cohort registration + +The technology under test is able to register with a cohort. + +???+ assertion "Assertions" + | ID | Description | + |---|---| + | [`repository-server-ids-01` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/connector/TestRepositoryServerIds.java){ target=gh } | Repository connector can be retrieved from cohort registration. | + +## Repository connector + +The technology under test provides a connection to a valid repository connector. + +???+ assertion "Assertions" + | ID | Description | + |---|---| + | [`repository-test-case-base-01` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/RepositoryConformanceTestCase.java){ target=gh } | Repository connector supplied to conformance suite. | + | [`repository-server-ids-02` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/connector/TestRepositoryServerIds.java){ target=gh } | Retrieved helper object for building TypeDefs and metadata instances from repository connector. | + | [`repository-server-ids-03` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/connector/TestRepositoryServerIds.java){ target=gh } | Retrieved validator object to check the validity of TypeDefs and metadata instances from repository connector. | + | [`repository-server-ids-04` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/connector/TestRepositoryServerIds.java){ target=gh } | Retrieved correct local user Id from repository connector. | + | [`repository-server-ids-05` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/connector/TestRepositoryServerIds.java){ target=gh } | Retrieved correct max page size from repository connector. | + +## Metadata collection id + +The technology under test broadcasts a unique metadata collection identifier. + +???+ assertion "Assertions" + | ID | Description | + |---|---| + | [`repository-metadata-collection-01` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/connector/TestMetadataCollectionId.java){ target=gh } | Metadata collection id retrieved from cohort registration. | + | [`repository-metadata-collection-02` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/connector/TestMetadataCollectionId.java){ target=gh } | Metadata collection id retrieved from cohort repository connector. | + | [`repository-metadata-collection-03` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/connector/TestMetadataCollectionId.java){ target=gh } | Metadata collection id retrieved from cohort repository connector's metadata collection. | + | [`repository-metadata-collection-04` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/connector/TestMetadataCollectionId.java){ target=gh } | Metadata collection id retrieved from cohort repository connector matches registration. | + | [`repository-metadata-collection-05` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/connector/TestMetadataCollectionId.java){ target=gh } | Metadata collection id retrieved from cohort repository connector's metadata collection matches registration. | + +## Supported type queries + +The technology under test is able to respond appropriately to queries about its supported types. + +???+ assertion "Assertions" + | ID | Description | + |---|---| + | [`repository-find-attribute-typedefs-by-category-01` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestFindTypeDefsByCategory.java){ target=gh } | All attribute type definitions returned by category. | + | [`repository-find-types-by-external-standard-identifiers-01` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestFindTypeDefByExternalId.java){ target=gh } | All type definitions returned for external standard name `` | + | [`repository-find-types-by-external-standard-identifiers-02` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestFindTypeDefByExternalId.java){ target=gh } | All type definitions returned for external standard organization name `` | + | [`repository-find-types-by-external-standard-identifiers-03` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestFindTypeDefByExternalId.java){ target=gh } | All type definitions returned for external standard type name `` | + | [`repository-get-typedef-gallery-01` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestGetTypeDefGallery.java){ target=gh } | TypeDefGallery retrieved. | + +## Supported type notifications + +The technology under test is able to send out notifications for its supported types. + +???+ assertion "Assertions" + | ID | Description | + |---|---| + | [`repository-consistency-of-attribute-typedef-01` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestConsistentAttributeTypeDef.java){ target=gh } | `` attribute type definition from event is consistent with API. | + | [`repository-consistency-of-typedef-01` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestConsistentTypeDef.java){ target=gh } | `` type definition from event is consistent with API. | + | [`repository-type-definition-event-01` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestValidTypeDefEvent.java){ target=gh } | Event is not null. | + | [`repository-type-definition-event-02` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestValidTypeDefEvent.java){ target=gh } | Event timestamp is present. | + | [`repository-type-definition-event-03` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestValidTypeDefEvent.java){ target=gh } | Event type is valid. | + | [`repository-type-definition-event-04` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestValidTypeDefEvent.java){ target=gh } | Event originator is set. | + | [`repository-type-definition-event-05` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestValidTypeDefEvent.java){ target=gh } | Metadata collection id is set. | + | [`repository-type-definition-event-06` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestValidTypeDefEvent.java){ target=gh } | Metadata collection id matches technology under test. | + | [`repository-type-definition-event-07` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestValidTypeDefEvent.java){ target=gh } | Server name is set. | + | [`repository-type-definition-event-08` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestValidTypeDefEvent.java){ target=gh } | Server name matches technology under test. | + | [`repository-type-definition-event-09` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestValidTypeDefEvent.java){ target=gh } | TypeDef supplied for TypeDef event. | + | [`repository-type-definition-event-10` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestValidTypeDefEvent.java){ target=gh } | AttributeTypeDef null for TypeDef event. | + | [`repository-type-definition-event-11` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestValidTypeDefEvent.java){ target=gh } | AttributeTypeDef supplied for AttributeTypeDef event. | + | [`repository-type-definition-event-12` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestValidTypeDefEvent.java){ target=gh } | TypeDef null for AttributeTypeDef event. | + | [`repository-type-definition-event-13` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/types/TestValidTypeDefEvent.java){ target=gh } | TypeDefPatch supplied for update event. | + +## Consistent types + +The technology under test supports entity, relationship and classification types that link together. + +???+ assertion "Assertions" + | ID | Description | + |---|---| + | [`repository-classification-entities-01` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestClassificationHasSupportedEntities.java){ target=gh } | `` classification can attach to at least one supported entity. | + | [`repository-classification-entities-02` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestClassificationHasSupportedEntities.java){ target=gh } | `` supported for classification. | + | [`repository-graph-queries-00` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestGraphQueries.java){ target=gh } | `` relationship type matches the known type. | + | [`repository-entity-reference-copy-lifecycle-00` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityReferenceCopyLifecycle.java){ target=gh } | `` entity type definition matches known type | + | [`repository-entity-property-search-01` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntitySearch.java){ target=gh } | `` entity type matches the known type from the repository helper. | + | [`repository-relationship-lifecycle-00` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipLifecycle.java){ target=gh } | `` relationship type definition matches known type | + | [`repository-relationship-reference-copy-lifecycle-00` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipReferenceCopyLifecycle.java){ target=gh } | `` relationship type definition matches known type | + | [`repository-relationship-reidentify-00` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipReidentify.java){ target=gh } | `` relationship type definition matches known type | + | [`repository-relationship-property-search-01` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipSearch.java){ target=gh } | `` relationship type matches the known type from the repository helper. | + +## Metadata instance access + +The technology under test supports the retrieval of the current state of specific metadata instances from its repository. + +???+ assertion "Assertions" + | ID | Description | + |---|---| + | [`repository-entity-lifecycle-09` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityLifecycle.java){ target=gh } | `` new entity is known. | + | [`repository-entity-lifecycle-10` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityLifecycle.java){ target=gh } | `` new entity summarized. | + | [`repository-entity-lifecycle-11` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityLifecycle.java){ target=gh } | `` new entity retrieved. | + | [`repository-entity-reference-copy-lifecycle-02` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityReferenceCopyLifecycle.java){ target=gh } | `` reference entity can be retrieved as EntitySummary. | + | [`repository-entity-reference-copy-lifecycle-03` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityReferenceCopyLifecycle.java){ target=gh } | `` reference entity can be retrieved as EntityDetail. | + | [`repository-relationship-lifecycle-09` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipLifecycle.java){ target=gh } | `` new relationship is known. | + | [`repository-relationship-lifecycle-10` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipLifecycle.java){ target=gh } | `` new relationship retrieved. | + +## Instance notifications + +The technology under test sends out events when metadata changes in its repository. + +!!! attention "Not yet implemented" + +## Instance versioning + +The technology under test supports incrementing version numbers within metadata instances as they change. + +???+ assertion "Assertions" + | ID | Description | + |---|---| + | [`repository-entity-lifecycle-08` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityLifecycle.java){ target=gh } | `` new entity has version greater than zero. | + | [`repository-entity-lifecycle-15` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityLifecycle.java){ target=gh } | `` entity with new status version number is `` | + | [`repository-entity-lifecycle-18` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityLifecycle.java){ target=gh } | `` entity with min properties version number is `` | + | [`repository-entity-lifecycle-21` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityLifecycle.java){ target=gh } | `` entity deleted version number is `` | + | [`repository-entity-lifecycle-08` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipLifecycle.java){ target=gh } | `` new relationship has version greater than zero. | + | [`repository-entity-lifecycle-13` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipLifecycle.java){ target=gh } | `` relationship with new status version number is `` | + | [`repository-entity-lifecycle-16` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipLifecycle.java){ target=gh } | `` relationship with min properties version number is `` | + | [`repository-entity-lifecycle-19` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipLifecycle.java){ target=gh } | `` relationship deleted version number is `` | + +## Type enforcement + +The technology under test ensures metadata instances conform to their type definition. + +!!! attention "Not yet implemented" + +## Unsupported type errors + +The technology under test will not create metadata instances for unsupported types. + +!!! attention "Not yet implemented" + +## Type conflict management + +The technology under test receives/handles and sends type conflict events when type errors are detected. + +!!! attention "Not yet implemented" + +--8<-- "snippets/abbr.md" diff --git a/site/docs/guides/cts/repository-profiles/reference-copies.md b/site/docs/guides/cts/repository-profiles/reference-copies.md new file mode 100644 index 0000000000..3c32d0c597 --- /dev/null +++ b/site/docs/guides/cts/repository-profiles/reference-copies.md @@ -0,0 +1,64 @@ + + + +# Reference Copies Profile + +The technology under test is able to store reference copies of metadata from other members of the cohort. + +## Reference copy storage + +The technology under test supports the storage of metadata instances from other repositories in the cohort. + +???+ assertion "Assertions" + | ID | Description | + |---|---| + | [`repository-entity-reference-copy-lifecycle-01` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityReferenceCopyLifecycle.java){ target=gh } | `` reference entity created; repository supports storage of reference copies. | + | [`repository-entity-reference-copy-lifecycle-04` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityReferenceCopyLifecycle.java){ target=gh } | `` reference entity matches the entity that was saved. | + | [`repository-entity-reference-copy-lifecycle-05` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityReferenceCopyLifecycle.java){ target=gh } | `` reference entity has no relationships. | + | [`repository-entity-reference-copy-lifecycle-11` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityReferenceCopyLifecycle.java){ target=gh } | `` reference entity refresh requested by TUT. | + | [`repository-entity-reference-copy-lifecycle-12` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityReferenceCopyLifecycle.java){ target=gh } | `` reference entity refreshed. | + | [`repository-entity-reference-copy-lifecycle-13` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityReferenceCopyLifecycle.java){ target=gh } | `` refreshed reference entity matches original. | + | [`repository-entity-reference-copy-lifecycle-16` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityReferenceCopyLifecycle.java){ target=gh } | `` reference entity created with mappingProperties. | + | [`repository-entity-reference-copy-lifecycle-17` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityReferenceCopyLifecycle.java){ target=gh } | `` reference entity retrieved with mappingProperties. | + | [`repository-reference-copy-classification-lifecycle-01` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedReferenceCopyClassificationLifecycle.java){ target=gh } | No classifications attached to new entity reference copy of type `` | + | [`repository-reference-copy-classification-lifecycle-02` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedReferenceCopyClassificationLifecycle.java){ target=gh } | `` entity reference copy returned when classification added. | + | [`repository-reference-copy-classification-lifecycle-03` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedReferenceCopyClassificationLifecycle.java){ target=gh } | `` classification added to entity reference copy of type `` | + | [`repository-reference-copy-classification-lifecycle-04` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedReferenceCopyClassificationLifecycle.java){ target=gh } | `` classification properties added to entity reference copy of type `` | + | [`repository-reference-copy-classification-lifecycle-05` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedReferenceCopyClassificationLifecycle.java){ target=gh } | `` classification removed from entity reference copy of type `` | + | [`repository-reference-copy-classification-lifecycle-07` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedReferenceCopyClassificationLifecycle.java){ target=gh } | repository supports storage of reference copies. | + | [`repository-relationship-reference-copy-lifecycle-01` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipReferenceCopyLifecycle.java){ target=gh } | `` reference relationship created; repository supports storage of reference copies. | + | [`repository-relationship-reference-copy-lifecycle-02` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipReferenceCopyLifecycle.java){ target=gh } | `` reference relationship can be retrieved as Relationship. | + | [`repository-relationship-reference-copy-lifecycle-03` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipReferenceCopyLifecycle.java){ target=gh } | `` reference relationship matches the relationship that was saved. | + | [`repository-relationship-reference-copy-lifecycle-09` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipReferenceCopyLifecycle.java){ target=gh } | `` reference relationship refresh requested by TUT. | + | [`repository-relationship-reference-copy-lifecycle-10` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipReferenceCopyLifecycle.java){ target=gh } | `` reference relationship refreshed. | + | [`repository-relationship-reference-copy-lifecycle-11` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipReferenceCopyLifecycle.java){ target=gh } | `` refreshed reference relationship matches original. | + | [`repository-relationship-reference-copy-lifecycle-15` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipReferenceCopyLifecycle.java){ target=gh } | `` reference relationship created with mappingProperties. | + | [`repository-relationship-reference-copy-lifecycle-16` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipReferenceCopyLifecycle.java){ target=gh } | `` reference relationship retrieved with mappingProperties. | + +## Reference copy locking + +The technology under test ensures metadata instances from other repositories can not be updated. + +???+ assertion "Assertions" + | ID | Description | + |---|---| + | [`repository-entity-reference-copy-lifecycle-06` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityReferenceCopyLifecycle.java){ target=gh } | `` reference entity status cannot be updated. | + | [`repository-entity-reference-copy-lifecycle-07` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityReferenceCopyLifecycle.java){ target=gh } | `` reference entity properties cannot be updated. | + | [`repository-entity-reference-copy-lifecycle-08` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityReferenceCopyLifecycle.java){ target=gh } | `` reference entity type cannot be changed. | + | [`repository-entity-reference-copy-lifecycle-09` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityReferenceCopyLifecycle.java){ target=gh } | `` reference entity identity cannot be changed. | + | [`repository-relationship-reference-copy-lifecycle-04` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipReferenceCopyLifecycle.java){ target=gh } | `` reference relationship status cannot be updated. | + | [`repository-relationship-reference-copy-lifecycle-05` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipReferenceCopyLifecycle.java){ target=gh } | `` reference relationship properties cannot be updated. | + | [`repository-relationship-reference-copy-lifecycle-06` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipReferenceCopyLifecycle.java){ target=gh } | `` reference relationship type cannot be changed. | + | [`repository-relationship-reference-copy-lifecycle-07` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipReferenceCopyLifecycle.java){ target=gh } | `` reference relationship identity cannot be changed. | + +## Reference copy delete + +The technology under test ensures that references copies are removed from its repository with integrity when the master copy is deleted. + +???+ assertion "Assertions" + | ID | Description | + |---|---| + | [`repository-entity-reference-copy-lifecycle-10` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityReferenceCopyLifecycle.java){ target=gh } | `` reference entity copy purged at TUT. | + | [`repository-entity-reference-copy-lifecycle-14` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedEntityReferenceCopyLifecycle.java){ target=gh } | `` reference entity purged following delete at CTS. | + | [`repository-relationship-reference-copy-lifecycle-08` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipReferenceCopyLifecycle.java){ target=gh } | `` reference relationship copy purged at TUT. | + | [`repository-relationship-reference-copy-lifecycle-12` :material-github:](https://github.com/odpi/egeria/blob/master/open-metadata-conformance-suite/open-metadata-conformance-suite-server/src/main/java/org/odpi/openmetadata/conformance/tests/repository/instances/TestSupportedRelationshipReferenceCopyLifecycle.java){ target=gh } | `` reference relationship purged following delete at CTS. | diff --git a/site/docs/guides/cts/repository-profiles/rehome-instance.md b/site/docs/guides/cts/repository-profiles/rehome-instance.md new file mode 100644 index 0000000000..80f792c122 --- /dev/null +++ b/site/docs/guides/cts/repository-profiles/rehome-instance.md @@ -0,0 +1,18 @@ + + + +# Rehome Instance Profile + +The technology under test supports the command to update the metadata collection id for a metadata instance. + +## Update instance home + +The technology under test supports the command to update the metadata collection id for a metadata instance. + +## Send re-homed event + +The technology under test supports the broadcasting of instance re-homed events to other members of the cohort. + +## Process re-homed event + +The technology under test supports the receipt/processing of instance re-homed events from other members of the cohort. diff --git a/site/docs/guides/cts/repository-profiles/reidentify-instance.md b/site/docs/guides/cts/repository-profiles/reidentify-instance.md new file mode 100644 index 0000000000..0e5b27b843 --- /dev/null +++ b/site/docs/guides/cts/repository-profiles/reidentify-instance.md @@ -0,0 +1,18 @@ + + + +# Reidentify Instance Profile + +The technology under test supports the command to change the unique identifier (guid) of a metadata instance. + +## Update instance identifier + +The technology under test supports the command to change the unique identifier (guid) of a metadata instance mastered in its repository. + +## Send reidentified event + +The technology under test supports the broadcasting of instance re-identified events to other members of the cohort. + +## Process reidentified event + +The technology under test supports the receipt/processing of instance re-identified events from other members of the cohort. diff --git a/site/docs/guides/cts/repository-profiles/relationship-advanced-search.md b/site/docs/guides/cts/repository-profiles/relationship-advanced-search.md new file mode 100644 index 0000000000..6c505e7c5e --- /dev/null +++ b/site/docs/guides/cts/repository-profiles/relationship-advanced-search.md @@ -0,0 +1,14 @@ + + + +# Relationship Advanced Search Profile + +The technology under test supports the use of regular expressions to search for relationship instances. + +## Advanced property search + +The technology under test supports the use of regular expressions within match properties to search for relationship instances. + +## Advanced value search + +The technology under test supports the use of regular expressions within value search criteria to search for relationship instances. diff --git a/site/docs/guides/cts/repository-profiles/relationship-search.md b/site/docs/guides/cts/repository-profiles/relationship-search.md new file mode 100644 index 0000000000..4a865bc375 --- /dev/null +++ b/site/docs/guides/cts/repository-profiles/relationship-search.md @@ -0,0 +1,18 @@ + + + +# Relationship Search Profile + +The technology under test supports the ability to search for relationnship instances. + +## Relationship property search + +The technology under test supports the search and retrieval of current relationship instances from its repository based on matching specific property values. + +## Relationship value search + +The technology under test supports the search and retrieval of current relationship instances from its repository based on matching any values. + +## Relationship condition search + +The technology under test supports the search and retrieval of current metadata instances from its repository based on matching logical combinations of property conditions. diff --git a/site/docs/guides/cts/repository-profiles/retype-instance.md b/site/docs/guides/cts/repository-profiles/retype-instance.md new file mode 100644 index 0000000000..b9d16144a2 --- /dev/null +++ b/site/docs/guides/cts/repository-profiles/retype-instance.md @@ -0,0 +1,18 @@ + + + +# Retype Instance Profile + +The technology under test supports the command to change the type of a metadata instance to either its super type or a subtype. + +## Update instance type + +The technology under test supports the command to change the type of a metadata instance mastered in its repository to either its super type or a subtype. + +## Send retyped event + +The technology under test supports the broadcasting of instance re-typed events to other members of the cohort. + +## Process retyped event + +The technology under test supports the receipt/processing of instance re-typed events from other members of the cohort. diff --git a/site/docs/guides/cts/repository-profiles/soft-delete-restore.md b/site/docs/guides/cts/repository-profiles/soft-delete-restore.md new file mode 100644 index 0000000000..1b899e8d4c --- /dev/null +++ b/site/docs/guides/cts/repository-profiles/soft-delete-restore.md @@ -0,0 +1,18 @@ + + + +# Soft-Delete and Restore Profile + +The technology under test allows an instance to be soft-deleted and restored. + +## Soft-delete instance + +The technology under test supports the command to change the type of a metadata instance to either its super type or a subtype. + +## Undelete instance + +The technology under test supports the command to change the type of a metadata instance to either its super type or a subtype. + +## Incremented version number on restore + +The technology under test ensures a restored instance has an incremented version number. diff --git a/site/docs/guides/cts/repository-profiles/undo-update.md b/site/docs/guides/cts/repository-profiles/undo-update.md new file mode 100644 index 0000000000..3f9d105b4e --- /dev/null +++ b/site/docs/guides/cts/repository-profiles/undo-update.md @@ -0,0 +1,14 @@ + + + +# Undo an Update Profile + +The technology under test is able to restore an instance to its previous version (although the version number is updated). + +## Return previous version + +The technology under test supports the command to restore the previous version of an instance. + +## New version number on undo + +The technology under test ensures a restored instance has an incremented version number. diff --git a/site/mkdocs.yml b/site/mkdocs.yml index 0c26b267d0..8369689819 100644 --- a/site/mkdocs.yml +++ b/site/mkdocs.yml @@ -495,52 +495,57 @@ nav: - Platform Profiles: - Platform Origin: guides/cts/profiles/platform-origin.md - Repository Profiles: - - Metadata Sharing: guides/cts/profiles/metadata-sharing.md - - Metadata Maintenance: guides/cts/profiles/metadata-maintenance.md - - Effectivity Dating: guides/cts/profiles/effectivity-dating.md - - Dynamic Types: guides/cts/profiles/dynamic-types.md - - Graph Queries: guides/cts/profiles/graph-queries.md - - Historical Search: guides/cts/profiles/historical-search.md - - Entity Proxies: guides/cts/profiles/entity-proxies.md - - Soft-delete and Restore: guides/cts/profiles/soft-delete-restore.md - - Undo an Update: guides/cts/profiles/undo-update.md - - Reidentify Instance: guides/cts/profiles/reidentify-instance.md - - Retype Instance: guides/cts/profiles/retype-instance.md - - Rehome Instance: guides/cts/profiles/rehome-instance.md + - Metadata Sharing: guides/cts/repository-profiles/metadata-sharing.md + - Reference Copies: guides/cts/repository-profiles/reference-copies.md + - Metadata Maintenance: guides/cts/repository-profiles/metadata-maintenance.md + - Effectivity Dating: guides/cts/repository-profiles/effectivity-dating.md + - Dynamic Types: guides/cts/repository-profiles/dynamic-types.md + - Graph Queries: guides/cts/repository-profiles/graph-queries.md + - Historical Search: guides/cts/repository-profiles/historical-search.md + - Entity Proxies: guides/cts/repository-profiles/entity-proxies.md + - Soft-delete and Restore: guides/cts/repository-profiles/soft-delete-restore.md + - Undo an Update: guides/cts/repository-profiles/undo-update.md + - Reidentify Instance: guides/cts/repository-profiles/reidentify-instance.md + - Retype Instance: guides/cts/repository-profiles/retype-instance.md + - Rehome Instance: guides/cts/repository-profiles/rehome-instance.md + - Entity Search: guides/cts/repository-profiles/entity-search.md + - Relationship Search: guides/cts/repository-profiles/relationship-search.md + - Entity Advanced Search: guides/cts/repository-profiles/entity-advanced-search.md + - Relationship Advanced Search: guides/cts/repository-profiles/relationship-advanced-search.md - Performance Profiles: - - Entity Creation: guides/cts/profiles/entity-creation.md - - Entity Search: guides/cts/profiles/entity-search.md - - Relationship Creation: guides/cts/profiles/relationship-creation.md - - Relationship Search: guides/cts/profiles/relationship-search.md - - Entity Classification: guides/cts/profiles/entity-classification.md - - Classification Search: guides/cts/profiles/classification-search.md - - Entity Update: guides/cts/profiles/entity-update.md - - Relationship Update: guides/cts/profiles/relationship-update.md - - Classification Update: guides/cts/profiles/classification-update.md - - Entity Undo: guides/cts/profiles/entity-undo.md - - Relationship Undo: guides/cts/profiles/relationship-undo.md - - Entity Retrieval: guides/cts/profiles/entity-retrieval.md - - Entity History Retrieval: guides/cts/profiles/entity-history-retrieval.md - - Relationship Retrieval: guides/cts/profiles/relationship-retrieval.md - - Relationship History Retrieval: guides/cts/profiles/relationship-history-retrieval.md - - Entity History Search: guides/cts/profiles/entity-history-search.md - - Relationship History Search: guides/cts/profiles/relationship-history-search.md - - Graph Queries (Performance): guides/cts/profiles/graph-perf-queries.md - - Graph History Queries: guides/cts/profiles/graph-history-queries.md - - Entity Re-home: guides/cts/profiles/entity-re-home.md - - Relationship Re-home: guides/cts/profiles/relationship-re-home.md - - Entity Declassify: guides/cts/profiles/entity-declassify.md - - Entity Re-type: guides/cts/profiles/entity-retype.md - - Relationship Re-type: guides/cts/profiles/relationship-retype.md - - Entity Re-identify: guides/cts/profiles/entity-re-identify.md - - Relationship Re-identify: guides/cts/profiles/relationship-re-identify.md - - Relationship Delete: guides/cts/profiles/relationship-delete.md - - Entity Delete: guides/cts/profiles/entity-delete.md - - Entity Restore: guides/cts/profiles/entity-restore.md - - Relationship Restore: guides/cts/profiles/relationship-restore.md - - Relationship Purge: guides/cts/profiles/relationship-purge.md - - Entity Purge: guides/cts/profiles/entity-purge.md - - Environment: guides/cts/profiles/environment.md + - Entity Creation: guides/cts/performance-profiles/entity-creation.md + - Entity Search: guides/cts/performance-profiles/entity-search.md + - Relationship Creation: guides/cts/performance-profiles/relationship-creation.md + - Relationship Search: guides/cts/performance-profiles/relationship-search.md + - Entity Classification: guides/cts/performance-profiles/entity-classification.md + - Classification Search: guides/cts/performance-profiles/classification-search.md + - Entity Update: guides/cts/performance-profiles/entity-update.md + - Relationship Update: guides/cts/performance-profiles/relationship-update.md + - Classification Update: guides/cts/performance-profiles/classification-update.md + - Entity Undo: guides/cts/performance-profiles/entity-undo.md + - Relationship Undo: guides/cts/performance-profiles/relationship-undo.md + - Entity Retrieval: guides/cts/performance-profiles/entity-retrieval.md + - Entity History Retrieval: guides/cts/performance-profiles/entity-history-retrieval.md + - Relationship Retrieval: guides/cts/performance-profiles/relationship-retrieval.md + - Relationship History Retrieval: guides/cts/performance-profiles/relationship-history-retrieval.md + - Entity History Search: guides/cts/performance-profiles/entity-history-search.md + - Relationship History Search: guides/cts/performance-profiles/relationship-history-search.md + - Graph Queries (Performance): guides/cts/performance-profiles/graph-perf-queries.md + - Graph History Queries: guides/cts/performance-profiles/graph-history-queries.md + - Entity Re-home: guides/cts/performance-profiles/entity-re-home.md + - Relationship Re-home: guides/cts/performance-profiles/relationship-re-home.md + - Entity Declassify: guides/cts/performance-profiles/entity-declassify.md + - Entity Re-type: guides/cts/performance-profiles/entity-retype.md + - Relationship Re-type: guides/cts/performance-profiles/relationship-retype.md + - Entity Re-identify: guides/cts/performance-profiles/entity-re-identify.md + - Relationship Re-identify: guides/cts/performance-profiles/relationship-re-identify.md + - Relationship Delete: guides/cts/performance-profiles/relationship-delete.md + - Entity Delete: guides/cts/performance-profiles/entity-delete.md + - Entity Restore: guides/cts/performance-profiles/entity-restore.md + - Relationship Restore: guides/cts/performance-profiles/relationship-restore.md + - Relationship Purge: guides/cts/performance-profiles/relationship-purge.md + - Entity Purge: guides/cts/performance-profiles/entity-purge.md + - Environment: guides/cts/performance-profiles/environment.md - Concepts: - Egeria Glossary: concepts/index.md - Basic Concepts: concepts/basic-concepts.md From 3f0b90a68e19e5e5a28278af95c3eef93206d32b Mon Sep 17 00:00:00 2001 From: Mandy Chessell Date: Thu, 11 Nov 2021 16:54:16 +0000 Subject: [PATCH 3/3] Add lineage webinar link Signed-off-by: Mandy Chessell --- site/docs/education/egeria-dojo/index.md | 36 +++++++++---------- .../previous-webinars/november-2021/README.md | 7 ++-- .../features/effectivity-dates/overview.md | 14 +++++++- .../features/lineage-management/overview.md | 2 +- 4 files changed, 37 insertions(+), 22 deletions(-) diff --git a/site/docs/education/egeria-dojo/index.md b/site/docs/education/egeria-dojo/index.md index 88a2efee1c..6cc2f96198 100644 --- a/site/docs/education/egeria-dojo/index.md +++ b/site/docs/education/egeria-dojo/index.md @@ -52,12 +52,12 @@ The schedule also includes estimated times needed to complete each session. Do t - *Prerequisites*: [Running Egeria day](#running-egeria-day-summary). - *Required skills*: Familiarity with Java programming and using Git and GitHub. The exercises use the IntelliJ iDE but you can use your own choice of tool. - *Topics* - - Locating Egeria modules - - Calling Egeria's APIs - - Working with event driven interfaces - - Developing connectors and deploying to Egeria - - Developing open metadata archives - - Using the audit log and related diagnostics + - Locating Egeria modules + - Calling Egeria's APIs + - Working with event driven interfaces + - Developing connectors and deploying to Egeria + - Developing open metadata archives + - Using the audit log and related diagnostics - *Time to complete* - 12 hours @@ -70,18 +70,18 @@ The schedule also includes estimated times needed to complete each session. Do t - *Prerequisites*: [Running Egeria day](#running-egeria-day-summary). - *Required skills*: Familiarity with running commands and using tools such as Postman. No programming experience is required. - *Topics* - - The need for metadata governance - - Templates - - Metadata security - - Governance zones - - Using open metadata archives - - Automating metadata capture - - Using governance actions and metadata discovery - - Managing lineage metadata - - Connecting metadata governance to your governance program - - Governance by expectation - - Incident management - - Stewardship + - The need for metadata governance + - Templates + - Metadata security + - Governance zones + - Using open metadata archives + - Automating metadata capture + - Using governance actions and metadata discovery + - Managing lineage metadata + - Connecting metadata governance to your governance program + - Governance by expectation + - Incident management + - Stewardship - *Time to complete* - 13 hours diff --git a/site/docs/education/previous-webinars/november-2021/README.md b/site/docs/education/previous-webinars/november-2021/README.md index fbf3334fdb..4a321ee51e 100644 --- a/site/docs/education/previous-webinars/november-2021/README.md +++ b/site/docs/education/previous-webinars/november-2021/README.md @@ -3,7 +3,7 @@ # Open Lineage -**Date:** 8th October 2021 +**Date:** 8th November 2021 Presenter: Mandy Chessell and Ljupcho Palashevski @@ -16,8 +16,11 @@ Links:
+* YouTube Video: +
+ +
* [Related documentation](/egeria-docs/features/lineage-management/overview) -* Link to recording on YouTube TBA ---- Return to [Webinar list](..) diff --git a/site/docs/features/effectivity-dates/overview.md b/site/docs/features/effectivity-dates/overview.md index 52bb2efeea..98060f034a 100644 --- a/site/docs/features/effectivity-dates/overview.md +++ b/site/docs/features/effectivity-dates/overview.md @@ -1,6 +1,18 @@ -# Effectivity Dates +# Historical Queries and Effectivity Dates + +Within every open metadata element there are four timestamps that provide a time dimension to metadata that allows you to: + +- understand not just was is stored in the metadata now, but what was known at a particular moment in time. + +- define when a particular element is effective (ie visible and active) and when it ceases to be effective. + +This time dimension enables some very important use cases. + + + + --8<-- "snippets/abbr.md" \ No newline at end of file diff --git a/site/docs/features/lineage-management/overview.md b/site/docs/features/lineage-management/overview.md index 2577c8ef53..5f05a206dc 100644 --- a/site/docs/features/lineage-management/overview.md +++ b/site/docs/features/lineage-management/overview.md @@ -242,7 +242,7 @@ They are connected to each other by the Lineage Integrator OMIS: - An integration connector may request that an OpenLineage event is published to other integration connectors that have registered an OpenLineage event listener in the same Lineage Integrator OMIS instance. -- An integration connector may register a listener to the Asset Manager OMAS's OutTopics and issue requests to the Asset Manager's REST API in order to correlate the metadata in the open metadata ecosystem with the content of the OpenLineage events. +- An integration connector may register a listener to the Asset Manager OMAS's OutTopic and issue requests to the Asset Manager's REST API in order to correlate the metadata in the open metadata ecosystem with the content of the OpenLineage events. Figure 25 illustrates these mechanism with the [five pre-build integration connectors](/egeria-docs/connectors/#lineage) supplied by Egeria.