Skip to content

Commit

Permalink
Merge pull request #987 from mandy-chessell/code2024
Browse files Browse the repository at this point in the history
More info on Metadata Explorer OMVS
  • Loading branch information
mandy-chessell authored Dec 3, 2024
2 parents 1ed3cba + d62a282 commit 7e10e89
Show file tree
Hide file tree
Showing 6 changed files with 132 additions and 35 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
52 changes: 26 additions & 26 deletions site/docs/services/omvs/index.md

Large diffs are not rendered by default.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
67 changes: 67 additions & 0 deletions site/docs/services/omvs/metadata-explorer/metadata-explorer.drawio
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<mxfile host="Electron" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.7.17 Chrome/128.0.6613.36 Electron/32.0.1 Safari/537.36" version="24.7.17">
<diagram name="Page-1" id="ReVnqhqulLi_3nOzk2kV">
<mxGraphModel dx="1114" dy="806" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="hurOadFFnsT3vhvVJBR6-1" value="view-server" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=top;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="130" y="180" width="660" height="110" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-2" value="Automated Curation&lt;div&gt;OMVS&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="520" y="210" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-3" value="Asset Catalog&lt;div&gt;OMVS&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="160" y="210" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-4" value="Runtime Manager&lt;div&gt;OMVS&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="400" y="210" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-5" value="Feedback Manager&lt;div&gt;OMVS&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="280" y="210" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-6" value="postgres-metadata-store" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=bottom;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="376" y="400" width="410" height="110" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-7" value="Metadata Explorer&lt;div&gt;OMVS&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="640" y="210" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-8" value="xtdb-kv-metadata-store" style="rounded=0;whiteSpace=wrap;html=1;verticalAlign=bottom;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="170" y="400" width="190" height="110" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-10" value="Asset Consumer&lt;div&gt;OMAS&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="210" y="420" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-13" value="&lt;div&gt;IT Infrastructure OMAS&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="390" y="420" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-14" value="&lt;div&gt;Asset Owner&lt;/div&gt;&lt;div&gt;OMAS&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="520" y="420" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-15" value="Asset Consumer&lt;div&gt;OMAS&lt;/div&gt;" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="650" y="420" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="hurOadFFnsT3vhvVJBR6-2" target="hurOadFFnsT3vhvVJBR6-14">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="hurOadFFnsT3vhvVJBR6-4" target="hurOadFFnsT3vhvVJBR6-13">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="hurOadFFnsT3vhvVJBR6-7" target="hurOadFFnsT3vhvVJBR6-15">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="hurOadFFnsT3vhvVJBR6-3" target="hurOadFFnsT3vhvVJBR6-10">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="hurOadFFnsT3vhvVJBR6-5" target="hurOadFFnsT3vhvVJBR6-10">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-19" value="Metadata Access&lt;div&gt;Stores&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="20" y="450" width="110" height="40" as="geometry" />
</mxCell>
<mxCell id="hurOadFFnsT3vhvVJBR6-20" value="View&lt;div&gt;Server&lt;/div&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
<mxGeometry x="40" y="213" width="60" height="40" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
44 changes: 35 additions & 9 deletions site/docs/services/omvs/metadata-explorer/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

The Metadata Explorer Open Metadata View Services (OMVS) is a REST API that supports the search, query and retrieval of open metadata. It is an advanced API for users that understand the [Open Metadata Types](/types) because the searches are expressed using these types and the attributes they define, and the results directly reflect the elements and relationships they define. There are simpler, more specialized search operations in the other view services.

The Metadata Explorer OMVS has 11 different types of search operation. The first four retrieve details about a single metadata element.
The Metadata Explorer OMVS has 12 different types of search operation. The first four retrieve details about a single metadata element.

* getMetadataElementByGUID - Retrieve the metadata element using its unique identifier (guid).
* getMetadataElementByUniqueName - Retrieve the metadata element using its unique name (typically the *qualifiedName* attribute but other attributes can be used if they are unique - such as *pathName* for a file).
Expand All @@ -21,16 +21,27 @@ The next four operations retrieve the relationships linked to an element, and th
* getAllMetadataElementRelationships - Retrieve the relationships linking the supplied elements.
* getMetadataElementRelationships - Retrieve the relationships linking the supplied elements via a specific type of relationship.

The next command retrieves a graph of elements that are all anchored to the supplied starting element.

* getAnchoredElementsGraph - Return all the elements that are anchored to an element plus relationships between these elements and to other elements.

The next few operations retrieve lists of elements that contain properties (attributes and/or header values) that match the request.

* findMetadataElementsWithString - Retrieve the metadata elements that contain the requested string in any attribute. The string is interpreted as a simple regular expression.
* findMetadataElements - Return a list of metadata elements that match the supplied criteria. The results can be returned over many pages.
* findRelationshipsBetweenMetadataElements - Return a list of relationships that match the requested conditions. The results can be received as a series of pages.

The next two operations allow you to retrieve details of a specific relationship, along with summary information about the elements at each end.
The final two operations allow you to retrieve details of a specific relationship, along with summary information about the elements at each end.

* getRelationshipByGUID - Retrieve the relationship using its unique identifier.
* getRelationshipHistory - Retrieve all the versions of a relationship.



## Common request options



### Paging

Requests that return multiple results have optional request parameters to specify paging options of *startFrom* and *pageSize*. If they are not specified, their default value is 0.
Expand Down Expand Up @@ -90,18 +101,33 @@ SequencingOrder is used for search requests against a metadata collection. It d

Note: not all repositories support ordering. The results may vary between repository types.

### Additional request parameters
### Using the urLMarker

Each access service can be set up to support a restrictive set of governance zones. This controls the visibility of assets to the callers.
Metadata Explorer OMVS contains operations that are useful in many scenarios. For that reason it is implemented as a *View Server Generic Service*. This means that firstly, it is always running in a view server. Secondly, each of its operations' URL has a segment that is specified as `{urlMarker}`.

By default, all requests are routed via Feedback Manager OMVS to Asset Manager OMAS. If you wish the request to be routed via a different view service (OMVS) or access service (OMAS) it is possible to use one or other of these request parameters:
![Metadata Explorer URLs](metadata-explorer-urls.png)
> The `urlMarker` in Metadata Explorer OMAS's REST API operations.
* viewServiceURLMarker optional view service URL marker (overrides accessServiceURLMarker) to route the request via a different view service and onto its default access service.
* accessServiceURLMarker optional access service URL marker used to identify which back end service.
This segment of the URL normally takes the URL marker for the particular view service it belongs to. (For example `metadata-explorer` for the Metadata Explorer OMVS, or `asset-catalog` for Asset Catalog OMVS). The `{urlMarker}` allows the use of the URL marker for any view service that is configured in the view server.

The URL marker is derived from the name of the requested service - take the short two-word service name, convert to lower case and add a hyphen between the two words - so Feedback Manager OMVS's URL Marker is feedback-manager.
???+ tip "How do I find out the URL marker for a service?"
The URL marker is derived from the name of the requested service - take the short two-word service name, convert to lower case and add a hyphen between the two words - so Feedback Manager OMVS's URL Marker is feedback-manager.

When the request is received by Metadata Explorer OMVS, it uses the supplied URL marker to look up the configuration of the requested view service. It then issues the desired request(s) to the partner [metadata access server](/concepts/metadata-access-server) configured for the requested view server.

The reason this feature is useful is that each view service is configured to call an [Open Metadata Access Service (OMAS)](/services/omas) running in a specific [Metadata Access Server](/concepts/metadata-access-server). They do not all have to be set to call the same server.

![View server configuration example](view-server-configuration.svg)
> This example show a view server where its view services are configured to point to different metadata access stores.
Each access service in each server can be set up to support a restrictive set of [governance zones](/features/governance-zoning/overview). This controls the visibility of assets returned to the callers. If, for example, a user interface was calling Asset Catalog OMAS to provide information about assets for its user, this service would call Asset Consumer OMAS in the metadata store. It could be set up to only return assets of a particular quality. If the UI needed to also perform a complex query using Metadata Explorer OMVS, it could set the URL Marker to be "asset-catalog" and the request would be passed to the same Asset Consumer OMAS as the other Asset Catalog OMAS calls - and so returning assets with the same visibility.

???+ education "If Metadata Explorer OMVS is always active, do I need to configure it in my view server?"
You only need to configure Metadata Explorer OMVS if you want to use the `metadata-explorer` URL Marker to call the Asset Consumer OMAS in a specific Metadata Access Store.

### Additional request parameters

In additional there are optional request parameters for lineage and duplicate processing requests.
There are optional request parameters for lineage and duplicate processing requests.

* forLineage (default=false) - set this request parameter to true if this request is to support a lineage query - it will include the mementos representing elements in the graph that are deleted.
* forDuplicateProcessing (default=false) - set this request parameter to true if the query is supporting deduplication processing and so it turns off the automatic deduplicate processing
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 7e10e89

Please sign in to comment.