Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document Asset Catalog and move it to Tech Preview #798

Merged
merged 4 commits into from
Sep 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
<!-- Copyright Contributors to the ODPi Egeria project. -->

# Get Asset Classifications

This is the ability to retrieve all classifications that exist on a specific asset.

## Java client

AssetCatalog.java, method (more details in javadoc): [ClassificationListResponse getClassificationsForAsset(String userId, String assetGUID, String assetType, String classificationName) throws InvalidParameterException, PropertyServerException;](https://odpi.github.io/egeria/org/odpi/openmetadata/accessservices/assetcatalog/AssetCatalog.html#getClassificationsForAsset(java.lang.String,java.lang.String,java.lang.String,java.lang.String))

## REST endpoint
```
GET {{base-url}}/servers/{{server-id}}/open-metadata/access-services/asset-catalog/users/{{user-id}}/supportedTypes
```
Path and request parameters:
* `serverName` - unique identifier for requested server
* `userId` - the unique identifier for the user
* `assetGUID` - the unique identifier for the asset
* `assetType` - the type of the asset
* `classificationName` - the name of the classification

Response:
* `ClassificationsResponse` - the classification for the asset

More examples can be found in the
[sample collection](samples/collections/Asset-Catalog-endpoints.postman_collection.json).

---8<-- "snippets/abbr.md"







37 changes: 37 additions & 0 deletions site/docs/services/omas/asset-catalog/get-asset-context.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
<!-- Copyright Contributors to the ODPi Egeria project. -->

# Get Asset Context

Return the full context of an asset/glossary term based on its identifier.
The response contains the list of the connections assigned to the asset.

## Java client

AssetCatalog.java, method (more details in javadoc): [AssetResponse getAssetContext(String userId, String assetGUID, String assetType) throws InvalidParameterException, PropertyServerException;](https://odpi.github.io/egeria/org/odpi/openmetadata/accessservices/assetcatalog/AssetCatalog.html#getAssetContext(java.lang.String,java.lang.String,java.lang.String))

## REST endpoint

```
GET {{base-url}}/servers/{{server-id}}/open-metadata/access-services/asset-catalog/users/{{user-id}}/asset-context/{{asset-guid}}
```
Path and request parameters:
* `serverName` - unique identifier for requested server.
* `userId` - the unique identifier for the user
* `assetGUID` - the global unique identifier of the asset
* `assetType` - the type of the asset

Response:
* `AssetResponse` - list of properties used to narrow the search

More examples can be found in the
[sample collection](samples/collections/Asset-Catalog-endpoints.postman_collection.json).

---8<-- "snippets/abbr.md"







36 changes: 36 additions & 0 deletions site/docs/services/omas/asset-catalog/get-asset-details.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
<!-- Copyright Contributors to the ODPi Egeria project. -->

# Get Asset Details

Fetches asset's properties, relationships and classifications.

## Java client

AssetCatalog.java, method (more details in javadoc): [AssetCatalogResponse getAssetDetails(String userId, String assetGUID, String assetType) throws InvalidParameterException, PropertyServerException;](https://odpi.github.io/egeria/org/odpi/openmetadata/accessservices/assetcatalog/AssetCatalog.html#getAssetDetails(java.lang.String,java.lang.String,java.lang.String))

## REST endpoint

```
GET {{base-url}}/servers/{{server-id}}/open-metadata/access-services/asset-catalog/users/{{user-id}}/asset-details/{{asset-guid}}
```
Path and request parameters:
* `serverName` - unique identifier for requested server.
* `userId` - the unique identifier for the user
* `assetGUID` - the global unique identifier of the asset
* `assetType` - the type of the asset

Response:
* `AssetCatalogResponse` - list of properties used to narrow the search

More examples can be found in the
[sample collection](samples/collections/Asset-Catalog-endpoints.postman_collection.json).

---8<-- "snippets/abbr.md"







Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
<!-- Copyright Contributors to the ODPi Egeria project. -->

# Get Asset Relationships

Fetches the relationships for a specific asset.

## Java client

AssetCatalog.java, method (more details in javadoc): [RelationshipResponse getRelationshipBetweenEntities(String userId, String entity1GUID, String entity2GUID, String relationshipType) throws InvalidParameterException, PropertyServerException;](https://odpi.github.io/egeria/org/odpi/openmetadata/accessservices/assetcatalog/AssetCatalog.html#getRelationshipBetweenEntities(java.lang.String,java.lang.String,java.lang.String,java.lang.String))

## REST endpoint

```
GET {{base-url}}/servers/{{server-id}}/open-metadata/access-services/asset-catalog/users/{{user-id}}/asset-relationships/{{asset-guid}}?assetType={{asset-type}}&relationshipType={{relationship-type}}
```
Path and request parameters:
* `serverName` - unique identifier for requested server
* `userId` - the unique identifier for the user
* `assetGUID` - the unique identifier for the asset
* `assetType` - the type of the asset
* `relationshipType` - the type of the relationship
* `from` - offset
* `pageSize` - limit the number of the assets returned

Response:
* `RelationshipListResponse` - list of relationships for the given asset

More examples can be found in the
[sample collection](samples/collections/Asset-Catalog-endpoints.postman_collection.json).

---8<-- "snippets/abbr.md"







36 changes: 36 additions & 0 deletions site/docs/services/omas/asset-catalog/get-asset-universe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
<!-- Copyright Contributors to the ODPi Egeria project. -->

# Get Asset Universe

Fetches asset's header, classification, properties and relationships.

## Java client

AssetCatalog.java, method (more details in javadoc): [AssetCatalogResponse getAssetUniverse(String userId, String assetGUID, String assetType) throws InvalidParameterException, PropertyServerException;](https://odpi.github.io/egeria/org/odpi/openmetadata/accessservices/assetcatalog/AssetCatalog.html#getAssetUniverse(java.lang.String,java.lang.String,java.lang.String))

## REST endpoint

```
GET {{base-url}}/servers/{{server-id}}/open-metadata/access-services/asset-catalog/users/{{user-id}}/asset-relationships/{{asset-guid}}?assetType={{asset-type}}&relationshipType={{relationship-type}}
```
Path and request parameters:
* `serverName` - unique identifier for requested server
* `userId` - the unique identifier for the user
* `assetGUID` - the unique identifier for the asset
* `assetType` - the type of the asset

Response:
* `AssetCatalogResponse` - the asset with its header and the list of associated classifications and relationship

More examples can be found in the
[sample collection](samples/collections/Asset-Catalog-endpoints.postman_collection.json).

---8<-- "snippets/abbr.md"







35 changes: 35 additions & 0 deletions site/docs/services/omas/asset-catalog/get-supported-types.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
<!-- Copyright Contributors to the ODPi Egeria project. -->

# Get Supported Types

Returns the list with supported types for search, including the sub-types supported.

## Java client

AssetCatalog.java, method (more details in javadoc): [AssetCatalogSupportedTypes getSupportedTypes(String userId, String type) throws InvalidParameterException, PropertyServerException;](https://odpi.github.io/egeria/org/odpi/openmetadata/accessservices/assetcatalog/AssetCatalog.html#getSupportedTypes(java.lang.String,java.lang.String))

## REST endpoint

```
GET {{base-url}}/servers/{{server-id}}/open-metadata/access-services/asset-catalog/users/{{user-id}}/supportedTypes
```
Path and request parameters:
* `serverName` - unique identifier for requested server
* `userId` - the unique identifier for the user
* `type` - the type

Response:
* `AssetCatalogSupportedTypes` - list of types and sub-types supported for search

More examples can be found in the
[sample collection](samples/collections/Asset-Catalog-endpoints.postman_collection.json).

---8<-- "snippets/abbr.md"







53 changes: 29 additions & 24 deletions site/docs/services/omas/asset-catalog/overview.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
<!-- Copyright Contributors to the Egeria project. -->

--8<-- "snippets/content-status/in-development.md"
--8<-- "snippets/content-status/tech-preview.md"

# Asset Catalog Open Metadata Access Service (OMAS)

Expand All @@ -21,47 +21,52 @@ to it. This includes:
* assets

The Asset Catalog REST API supports:

* the retrieval of assets based on unique identifiers
* the retrieval of asset's relationships and classifications
* the retrieval of assets based on known classification or relationship
* to query for related assets and to retrieve an asset neighborhood
* to query for related assets
* the retrieval of assets based on their type

The module structure for the Asset Catalog OMAS is as follows:

* [asset-catalog-client](asset-catalog-client) supports the client library.
* [asset-catalog-api](asset-catalog-api) supports the common Java classes that are used both by the client and the server.
* [asset-catalog-server](asset-catalog-server) supports the server side implementation of the access service.
This includes the
* interaction with the [administration services](/services/admin-services/overview) for
registration, configuration, initialization and termination of the access service.
* interaction with the [repository services](/services/omrs) to work with open metadata from the
[cohort](/concepts/cohort-member).
* support for the access service's API and its related event management.
* [asset-catalog-spring](asset-catalog-spring) supports the REST API using the [Spring](/guides/contributor/runtime/#spring) libraries.
This includes the
* interaction with the [administration services](../../admin-services) for
registration, configuration, initialization and termination of the access service.
* interaction with the [repository services](../../repository-services) to work with open metadata from the
[cohort](https://egeria-project.org/concepts/cohort-member).
* support for the access service's API and its related event management.
* [asset-catalog-spring](asset-catalog-spring) supports the REST API using the [Spring](../../../developer-resources/Spring.md) libraries.
* [asset-catalog-topic-connector](asset-catalog-topic-connector) supports asynchronous messaging through a connector
and connector provider class

## Using the Asset Catalog OMAS

Below is the list of tasks supported by Asset Catalog OMAS.

#### [Get Asset Classifications](get-asset-classifications.md)
#### [Get Asset Context](get-asset-context.md)
#### [Get Asset Details](get-asset-details.md)
#### [Get Asset Relationships](get-asset-relationships.md)
#### [Get Asset Universe](get-asset-universe.md)
#### [Get Supported Types](get-supported-types.md)
#### [Search](search.md)



###Search solution
## Search Solution
The search will return Assets, Glossary Terms and Schema Elements that match the search criteria.
As the asset search is to be performed against on one or more repositories a search engine will be used.
As the asset search is to be performed against on one or more repositories a search engine will be used.
The search will be performed using the existing properties of the asset, glossary terms and/or schema elements.
Indexing will be performed by the Asset Catalog OMAS according to supported zones.
The search result will contain: guid, name (name or displayName), description, qualifiedName, classifications, zoneMembership (the basic properties of the element).

In order to get the full context of the element, a second call is performed.
At this step, the specific relationships are traverse for getting the connection to the asset and to get the schema type that is behind the given asset.
This call is using the asset global identifier and the asset type.
This call is using the asset global identifier and the asset type.


![Figure 1: Search](egeria-asset-search.png)
> Figure 1:Integration of search engine

###Other Services
Asset Catalog OMAS provides services to fetch the asset
* classifications
* relationships
* specific entities that connects two assets
* relationships between two known entities
* related assets
> Figure 1: Integration of search engine

--8<-- "snippets/abbr.md"
Loading