Jar File Name: egeria-connector-omrs-caching-1.0-SNAPSHOT.jar
This is a repository proxy that caches content into a native repository.
It simplifies the development of a repository proxy repository because:
All the OMRS APIs are delegated down to the embedded native repository, so there is no need to write any special technology
the event mapper can poll the 3rd party technology and add in the content to the embedded repository.
This connector maybe useful in the following cases:
a quick way to show Egeria connectivity with a repository proxy connector
it is a way to migrate 3rd party content into an Egeria native repository
for small deployments, it provides a cache so queries can be honoured.
In most cases an integration or standard repository proxy pattern is likely to be more appropriate.
Important notice
The gradle JAR step will include some of the dependencies into the connector JAR, making is a semi-Fat Jar. This makes sure that additional dependencies are automatically deployed together with the connector.
An OMAG Server uses an event bus such as Apache Kafka to exchange events with other servers and tools.
Egeria manages the specific topic names and the event payloads; however, it needs to know where the event bus is deployed and any properties needed to configure it.
Since the event bus is used in multiple places, the configuration document allows you to set up the details of the event bus which are then incorporated into all the places where the event bus is needed.
Important sequencing information
You need to set up this information before configuring any of the following:
Using an event topic as the destination for the audit log.
The following command creates information about the event bus. This information is used on the subsequent configuration of the OMAG Server subsystems. It does not affect any subsystems that have already been configured in the configuration document and if the event bus is not needed, its values are ignored.
It is possible to add arbitrary name/value pairs as JSON in the request body. The correct properties to use are defined in the connector type for the event bus.
For example, when using Apache Kafka as your event bus you may want to configure properties that control the behavior of the consumer that receives events and the producer that sends events. This is a typical set of producer and consumer properties:
The basic server properties are used in logging and events originating from the server. They help to document the purpose of the server (which helps with problem determination) and enable performance improvements by allowing the server to ignore activity or metadata that is not relevant to its operation.
Property
Description
localServerDescription
Description for the server. This is useful information for the administrator to understand the role of the server. The default value is null.
organizationName
Descriptive name for the organization that owns the local server/repository. This is useful when the open metadata repository cluster consists of metadata servers from different organizations, or different departments of an enterprise. The default value is null.
localServerUserId
UserId to use for server-initiated REST calls. The default is OMAGServer.
localServerPassword
Password to use for server-initiated REST calls. The default is null. This means that only the userId is sent in the HTTP header.
localServerURL
The URL of the platform where the server is to be deployed. It should be the value used by external services to call the server since its broadcast across an open metadata repository cohort and used when deploying the server's configuration document to the correct platform.
maxPageSize
The maximum page size that can be set on requests to the server. The default value is 1000. A value of zero means unlimited page size. Although supported, the zero value is not recommended because it provides no protection from a large request denial of service attack.
Typically, these values are set up in a single command.
setBasicServerProperties
Set up the basic server properties in a single request. If any values are left blank, they are cleared in the server configuration document.
StringadminUserId="garygeeke";StringserverName="active-metadata-server"StringadminPlatformURLRoot="https://127.0.0.1:9443";OMAGServerConfigurationClientconfigurationClient=newOMAGServerConfigurationClient(adminUserId,serverName,adminPlatformURLRoot);StringorganizationName="Coco Pharmaceuticals";StringserverDescription="This server supports the governance teams";StringserverUserId="cocomds2npa";StringserverPassword="secret";StringserverURLRoot="https://localhost:9443"intmaxPageSize=1000configurationClient.setBasicServerProperties(organizationName,serverDescription,serverUserId,serverPassword,serverURLRoot,maxPageSize);
admin_user_id="garygeeke"server_name="active-metadata-store"admin_platform_url_root="https://127.0.0.1:9443"config_client=CoreServerConfig(server_name,admin_platform_url_root,admin_user_id)local_server_description="This server supports the governance teams"organization_name="Coco Pharmaceuticals"local_server_url="https://127.0.0.1:9443"local_server_user_id="cocomds2npa"local_server_password="secret"max_page_size=1000config_client.set_basic_server_properties(local_server_description,organization_name,local_server_url,local_server_user_id,local_server_password,max_page_size)
POST {{platformURLRoot}}/open-metadata/admin-services/users/{{adminUserId}}/servers/{{serverName}}/server-properties
with a request body of:
{"localServerDescription":"This server supports the governance teams","organizationName":"Coco Pharmaceuticals","localServerURL":"https://localhost:9443","localServerUserId":"cocomds2npa","localServerPassword":"secret","maxPageSize":600}
Alternatively, you can set these properties one at a time.
setServerDescription
The server description should be set to something that describes the OMAG Server's role. It may be the name of a specific product that it is enabling, or a role in the metadata and governance landscape. Its purpose is to help administrators identify which server configuration they need to work with.
POST {{platformURLRoot}}/open-metadata/admin-services/users/{{adminUserId}}/servers/{{serverName}}/server-description
The description is passed in the request body as a text string.
setOrganizationName
The organization name may be the owning organization or you may use it to identify the department or team that is supported by this server.
POST {{platformURLRoot}}/open-metadata/admin-services/users/{{adminUserId}}/servers/{{serverName}}/organization-name?name="{{organizationName}}"
setServerUserId
The server's userId is used when processing requests that do not have an end user, such as receiving an event from a topic. The default value is OMAGServer. Ideally each server should have its own userId, so it is possible to restrict the resources that each server has access to and identify the origin of updates to the metadata elements.
POST {{platformURLRoot}}/open-metadata/admin-services/users/{{adminUserId}}/servers/{{serverName}}/server-user-id?id="{{serverUserId}}"
setServerPassword
If the password is specified, the userId and password combination are used to provide authentication information on each REST call made by the server.
POST {{platformURLRoot}}/open-metadata/admin-services/users/{{adminUserId}}/servers/{{serverName}}/server-user-password?password="{{serverUserPassword}}"
setServerURLRoot
Configure the targetPlatformURLRoot with the platform URL Root value of where the OMAG Server Platform will run.
This may not be the same as platformURLRoot if the configuration document will be deployed to a different OMAG Server Platform from the one used to maintain it.
POST {{platformURLRoot}}/open-metadata/admin-services/users/{{adminUserId}}/servers/{{serverName}}/server-url-root?url={{targetPlatformURLRoot}}
What is the difference between {{platformURLRoot}} and {{targetPlatformURLRoot}}?
The {{targetPlatformURLRoot}} gives the location of the OMAG Server Platform on which this configured service is intended to run, while the {{platformURLRoot}} gives the location of the OMAG Server Platform in which this configuration document is maintained.
They could be, but do not need to be, the same location.
setMaxPageSize
The maximum page size value sets an upper limit on the number of results that a caller can request on any paging REST API to this server. Setting maximum page size helps to prevent a denial of service attack that uses very large requests to overwhelm the server. A value of 0 means no limit, and leaves the server open to such attacks.
POST {{platformURLRoot}}/open-metadata/admin-services/users/{{adminUserId}}/servers/{{serverName}}/max-page-size?limit={{maxPageSize}}
Egeria's audit log provides a configurable set of destinations for audit records and other diagnostic logging for an OMAG Server. Some destinations also support a query interface to allow an administrator to understand how the server is running.
Each audit log record has a severity that can be used to route it to one or more specific destinations. Therefore, when an audit log destination is configured, it is optionally supplied with a list of severities to filter the types of audit log records it should receive.
The audit log severities are as follows:
Severity
Description
Information
The server is providing information about its normal operation.
Event
An event was received from another member of the open metadata repository cohort.
Decision
A decision has been made related to the interaction of the local metadata repository and the rest of the cohort.
Action
An Action is required by the administrator. At a minimum, the situation needs to be investigated and if necessary, corrective action taken.
Error
An error occurred, possibly caused by an incompatibility between the local metadata repository and one of the remote repositories. The local repository may restrict some of the metadata interchange functions as a result.
Exception
An unexpected exception occurred. This means that the server needs some administration attention to correct configuration or fix a logic error because it is not operating as a proper peer in the open metadata repository cohort.
Security
Unauthorized access to a service or metadata instance has been attempted.
Startup
A new component is starting up.
Shutdown
An existing component is shutting down.
Asset
An auditable action relating to an asset has been taken.
Types
Activity is occurring that relates to the open metadata types in use by this server.
Cohort
The server is exchanging registration information about an open metadata repository cohort that it is connecting to.
Trace
This is additional information on the operation of the server that may be of assistance in debugging a problem. It is not normally logged to any destination, but can be added when needed.
PerfMon
This log record contains performance monitoring timing information for specific types of processing. It is not normally logged to any destination, but can be added when needed.
<Unknown>
Uninitialized Severity
The default audit log destination is the console audit log destination. This writes selected parts of each audit log record to "standard out" (stdout).
It is configured to receive log records of all severities except Activity, Event, Trace and PerfMon. It is added automatically to a server's configuration document when other sections are configured.
If the server is a development or test server, then the default audit log configuration is probably sufficient, and you should use the following command:
Note: Using this command overrides all previous audit log destinations configured for the server.
If this server is a production server then you will probably want to set up the audit log destinations explicitly. You can add multiple destinations and each one can be set up to receive different severities of audit log records.
There are various destinations that can be configured for the audit log:
Since the default audit log destination is also a console audit log destination, only use this option to add the Trace and PerfMon severities.
The body of the request should be a list of severities
If an empty list is passed as the request body then all severities are supported by the destination.
This writes full log records to the slf4j ecosystem. When configuring slf4j as destination you also need to specify audit log logger category via the application properties of the OMAG Server Platform. This is described in Connecting the OMAG Audit Log Framework section of the developer logging guide.
The configuration of the slf4j ecosystem determines it ultimate destination(s).
The body of the request should be a list of severities
If an empty list is passed as the request body then all severities are supported by the destination.
This sets up an audit log destination that is described though a connection. In this case, the connection is passed in the request body and the supported severities are supplied in the connection's configuration properties.
It is also possible to set up all the audit log destinations in one command as a list of connections. Using this option overrides all previous audit log destinations and so can be used as the update command. The list of connections is passed in the request body and the supported severities are supplied in each connection's configuration properties.
POST - add a list of connection-based audit log destinations
Security is configured for a specific OMAG Server by adding a connection for this connector to the server's configuration documentusing the following command.
This removes all authorization checking from the server.
Configuring registration to an Open Metadata Repository Cohort¶
An OMAG Server that is capable of being a Cohort Member can register with one or more open metadata repository cohorts.
Each cohort has a memorable name - eg cocoCohort. This name needs to be used in the configuration of each member. At the heart of a cohort are 1-4 cohort topics. These are topics on an event bus that the members use to exchange information.
There is a choice of topic structure for the cohort.
A single topic is used for all types of events
Three topics are used, each dedicated to a specific type of cohort event:
Registration events that exchange information about the members of the cohort.
Type verification events that ensure consistency of the open metadata types used by the
members of the cohort.
Instance events that enable members of the cohort to share metadata elements.
The use of a single topic comes from the original implementation of Egeria. The use of the three dedicated topics was added later in version 2.11 to reduce the latency of cohort registration and to allow tuning of each topic's configuration. This is essential when multiple instances of an OMAG server are running in a cluster because the registration and type verification events need to be received by all server instances and the instance events need only to be received by one of the server instances.
Typically, all members of the cohort should be configured to use the same topic structure. However, if one of the members is back level and can only support the single topic then the other members can be set up to operate both topic structures. This is less efficient as these servers will process most instance events twice. However, it does provide a workaround until the back-level member can be upgraded.
The choices of topic structure are summarized in Figure 1.
Figure 1: Choices of cohort topic structures referred to as SINGLE_TOPIC, DEDICATED_TOPICS and BOTH_SINGLE_AND_DEDICATED_TOPICS reading left to right
The commands for configuring a server as a member of a cohort are shown below. Before calling these commands, make sure that the default settings for the event bus are configured, and you know the name of the cohort and the topic structure it is using.
Add access to a cohort
The following command registers the server with a cohort using the default settings. This includes the default cohort topic structure, which is SINGLE_TOPIC before version 3.0 and DEDICATED_TOPICS for version 3.0 and above.
POST {platformURLRoot}/open-metadata/admin-services/users/{adminUserId}/servers/{serverName}/cohorts/{cohortName}
Alternatively it is possible to explicitly specify the cohort topic structure. The example below sets it to DEDICATED_TOPICS. The other options are SINGLE_TOPIC and BOTH_SINGLE_AND_DEDICATED_TOPICS.
POST {platformURLRoot}/open-metadata/admin-services/users/{adminUserId}/servers/{serverName}/cohorts/{cohortName}/topic-structure/DEDICATED_TOPICS
Both of these commands optionally support passing a map of name-value pairs in the request body. These properties are added to the additionalProperties attribute of the Connection objects for each of the cohort topics. The additional properties supported are specific to the topic connector implementation. For example, see the Apache Kafka Topic Connector Documentation.
The result of the cohort configuration call fills out an entry in the cohort list of the server's configuration document. The fields in a cohort list entry are show in Figure 2.
Figure 2: Fields in an entry in a server's cohort list
It is possible to update any of these fields directly using the following command:
POST {platformURLRoot}/open-metadata/admin-services/users/{adminUserId}/servers/{serverName}/cohorts/{cohortName}/configuration
Where the complete cohort entry structure is passed as the request body.
Below is an example of this structure for a member that is using DEDICATED_TOPICS.
JSON structure for a member that is using DEDICATED_TOPICS
{"class":"CohortConfig","cohortName":"cocoCohort","cohortRegistryConnection":{"class":"Connection","headerVersion":0,"connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"class":"ElementType","headerVersion":0,"elementOrigin":"LOCAL_COHORT","elementVersion":0,"elementTypeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","elementTypeName":"ConnectorType","elementTypeVersion":1,"elementTypeDescription":"A set of properties describing a type of connector."},"guid":"108b85fe-d7a8-45c3-9f88-742ac4e4fd14","qualifiedName":"File Based Cohort Registry Store Connector","displayName":"File Based Cohort Registry Store Connector","description":"Connector supports storing of the open metadata cohort registry in a file.","connectorProviderClassName":"org.odpi.openmetadata.adapters.repositoryservices.cohortregistrystore.file.FileBasedRegistryStoreProvider"},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"./data/servers/cocoMDS4/cohorts/cocoCohort.registrystore"}},"cohortOMRSRegistrationTopicConnection":{"class":"VirtualConnection","headerVersion":0,"connectorType":{"class":"ConnectorType","headerVersion":0,"connectorProviderClassName":"org.odpi.openmetadata.repositoryservices.connectors.omrstopic.OMRSTopicProvider"},"embeddedConnections":[{"class":"EmbeddedConnection","headerVersion":0,"position":0,"displayName":"cocoCohort OMRS Topic for registrations","embeddedConnection":{"class":"Connection","headerVersion":0,"connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"class":"ElementType","headerVersion":0,"elementOrigin":"LOCAL_COHORT","elementVersion":0,"elementTypeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","elementTypeName":"ConnectorType","elementTypeVersion":1,"elementTypeDescription":"A set of properties describing a type of connector."},"guid":"3851e8d0-e343-400c-82cb-3918fed81da6","qualifiedName":"Kafka Open Metadata Topic Connector","displayName":"Kafka Open Metadata Topic Connector","description":"Kafka Open Metadata Topic Connector supports string based events over an Apache Kafka event bus.","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.kafka.KafkaOpenMetadataTopicProvider","recognizedConfigurationProperties":["producer","consumer","local.server.id","sleepTime"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"egeria.omag.openmetadata.repositoryservices.cohort.cocoCohort.OMRSTopic.registration"},"configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"local.server.id":"73955db6-026c-4ba5-a180-1355dbf166cf","consumer":{"bootstrap.servers":"localhost:9092"}}}}]},"cohortOMRSTypesTopicConnection":{"class":"VirtualConnection","headerVersion":0,"connectorType":{"class":"ConnectorType","headerVersion":0,"connectorProviderClassName":"org.odpi.openmetadata.repositoryservices.connectors.omrstopic.OMRSTopicProvider"},"embeddedConnections":[{"class":"EmbeddedConnection","headerVersion":0,"position":0,"displayName":"cocoCohort OMRS Topic for types","embeddedConnection":{"class":"Connection","headerVersion":0,"connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"class":"ElementType","headerVersion":0,"elementOrigin":"LOCAL_COHORT","elementVersion":0,"elementTypeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","elementTypeName":"ConnectorType","elementTypeVersion":1,"elementTypeDescription":"A set of properties describing a type of connector."},"guid":"3851e8d0-e343-400c-82cb-3918fed81da6","qualifiedName":"Kafka Open Metadata Topic Connector","displayName":"Kafka Open Metadata Topic Connector","description":"Kafka Open Metadata Topic Connector supports string based events over an Apache Kafka event bus.","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.kafka.KafkaOpenMetadataTopicProvider","recognizedConfigurationProperties":["producer","consumer","local.server.id","sleepTime"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"egeria.omag.openmetadata.repositoryservices.cohort.cocoCohort.OMRSTopic.types"},"configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"local.server.id":"73955db6-026c-4ba5-a180-1355dbf166cf","consumer":{"bootstrap.servers":"localhost:9092"}}}}]},"cohortOMRSInstancesTopicConnection":{"class":"VirtualConnection","headerVersion":0,"connectorType":{"class":"ConnectorType","headerVersion":0,"connectorProviderClassName":"org.odpi.openmetadata.repositoryservices.connectors.omrstopic.OMRSTopicProvider"},"embeddedConnections":[{"class":"EmbeddedConnection","headerVersion":0,"position":0,"displayName":"cocoCohort OMRS Topic for instances","embeddedConnection":{"class":"Connection","headerVersion":0,"connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"class":"ElementType","headerVersion":0,"elementOrigin":"LOCAL_COHORT","elementVersion":0,"elementTypeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","elementTypeName":"ConnectorType","elementTypeVersion":1,"elementTypeDescription":"A set of properties describing a type of connector."},"guid":"3851e8d0-e343-400c-82cb-3918fed81da6","qualifiedName":"Kafka Open Metadata Topic Connector","displayName":"Kafka Open Metadata Topic Connector","description":"Kafka Open Metadata Topic Connector supports string based events over an Apache Kafka event bus.","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.kafka.KafkaOpenMetadataTopicProvider","recognizedConfigurationProperties":["producer","consumer","local.server.id","sleepTime"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"egeria.omag.openmetadata.repositoryservices.cohort.cocoCohort.OMRSTopic.instances"},"configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"local.server.id":"73955db6-026c-4ba5-a180-1355dbf166cf","consumer":{"bootstrap.servers":"localhost:9092"}}}}]},"cohortOMRSTopicProtocolVersion":"V1","eventsToProcessRule":"ALL"}
Controlling the name of the cohort topic(s)
Typically, a production deployment of an event bus requires the topics to be explicitly defined in its configuration. In addition, many organizations have naming standards for topics. Therefore, Egeria provides commands to query the topic names from the
configuration for easy automation and the ability to override the topic names.
The default single topic name is egeria.omag.openmetadata.repositoryservices.cohort.{cohortName}.OMRSTopic and the default dedicated topic names are:
For registration events - egeria.omag.openmetadata.repositoryservices.cohort.{cohortName}.OMRSTopic.registration
For type verification events - egeria.omag.openmetadata.repositoryservices.cohort.{cohortName}.OMRSTopic.types
For instance events - egeria.omag.openmetadata.repositoryservices.cohort.{cohortName}.OMRSTopic.instances
This is the command to query the single topic name.
GET {platformURLRoot}/open-metadata/admin-services/users/{adminUserId}/servers/{serverName}/cohorts/{cohortName}/topic-name
This is an example of the result for a configured cohort that is using the single topic:
If the server is using the DEDICATED_TOPICS, the result looks like this because the single topic connector is not specified:
{"class":"StringResponse","relatedHTTPCode":200}
If the cohort name is not known, the result looks like this:
{"class":"StringResponse","relatedHTTPCode":400,"exceptionClassName":"org.odpi.openmetadata.adminservices.ffdc.exception.OMAGInvalidParameterException","exceptionErrorMessage":"OMAG-ADMIN-400-033 The OMAG server cocoMDS1 is unable to override the cohort topic until the cocoCohortXXX cohort is set up","exceptionSystemAction":"No change has occurred in this server's configuration document.","exceptionUserAction":"Add the cohort configuration using the administration services and retry the request."}
This is the command to retrieve the dedicated topics:
GET {platformURLRoot}/open-metadata/admin-services/users/{adminUserId}/servers/{serverName}/cohorts/{cohortName}/dedicated-topic-names
The result looks like this with the registration topic showing first, then the type verification topic and lastly the "instances topic":
It is also possible to change the name of the topics used by a cohort. Any changes must be issued against each member of the cohort so that they are all connecting to the same cohort topic(s). The new value takes affect the next time the server is started.
Changing the single topic name is done with the following command
POST {platformURLRoot}/open-metadata/admin-services/users/{adminUserId}/servers/{serverName}/cohorts/{cohortName}/topic-name-override
{newTopicName}
The {newTopicName} flows in the request body as raw text.
This is the command for changing the registration topic name:
POST {platformURLRoot}/open-metadata/admin-services/users/{adminUserId}/servers/{serverName}/cohorts/{cohortName}/topic-name-override/registration
{newTopicName}
This is the command for changing the type verification topic name:
POST {platformURLRoot}/open-metadata/admin-services/users/{adminUserId}/servers/{serverName}/cohorts/{cohortName}/topic-name-override/types
{newTopicName}
This is the command for changing the "instances topic" name:
POST {platformURLRoot}/open-metadata/admin-services/users/{adminUserId}/servers/{serverName}/cohorts/{cohortName}/topic-name-override/instances
{newTopicName}
Archives can be added to the configuration document of a server to ensure their content is loaded each time the server is started. This is intended for repositories that do not store the archive content but keep it in memory.
If an archive is loaded multiple times, its content is only added to the local repository once - that is if the repository does not have the content already. No errors are recorded if the content is already in the repository.
Typically, an open metadata archive is stored as JSON format in a file. To configure the load of such a file use the following command:
POST - specify file to load
POST {{platformURLRoot}}/open-metadata/admin-services/users/{{adminUserId}}/servers/{{serverName}}/open-metadata-archives/file
The body of the request should be the fully-qualified path name or path relative to the startup directory of the OMAG Server Platform -- and the file name should not have any quotes around it.
Alternatively it is possible to set up the list of open metadata archives as a list of connections. These connections refer to connectors that can read and retrieve the open metadata archive content.
The body of the request should be the list of connections from which to load archives.
This option can be used when the open metadata archives are not stored in a file, or a different file connector from the default one for the OMAG Server Platform is required.
Removing an archive from the configuration document on startup¶
Finally, this is how to remove the archives from the configuration document.
DELETE - remove archives from configuration document
The request body should be the connection to use for configuring the connector, which can include any connector-specific options as well as general details like the endpoint and credentials for the third party repository. The connectorProvider should be set to the fully-qualified Java class name for the connector provider of the repository connector.
Example: connection to configure the IBM Information Governance Catalog repository connector
In this example, the type of connector to configure is given by the class name on line 5, and details about how to connect to the third party repository (IBM Information Governance Catalog) itself are provided on lines 9 (hostname and port), and 12-13 (credentials).
Any open metadata repository that supports its own API must also implement an event mapper to ensure the Open Metadata Repository Services (OMRS) is notified when metadata is added to the repository without going through the open metadata APIs.
The event mapper is a connector that listens for proprietary events from the repository and converts them into calls to the OMRS. The OMRS then distributes this new metadata.
The connectorProvider should be set to the fully-qualified Java class name for the connector provider of the event mapper, and the eventSource should give the details for how to access the events (for example, the hostname and port number of an Apache Kafka bootstrap server).
Configure the connectors to the third party metadata repository¶
The mapping between a third party metadata repository and the open metadata protocols in a repository proxy is implemented by two connectors:
The repository proxy can act as a proxy to a third party metadata repository. This is done by adding the connection for the repository connector as follows.
The request body is a virtual connection, which contains an EmbeddedConnection, which should refer
to the required native repository connector that will act as the cache.
In the below example the cache uses the XTDB connector.
{
"class": "VirtualConnection",
"headerVersion": 0,
"displayName": "OMRS Caching Repository Connector",
"connectorType": {
"class": "ConnectorType",
"headerVersion": 0,
"type": {
"class": "ElementType",
"headerVersion": 0,
"elementOrigin": "LOCAL_COHORT",
"elementVersion": 0,
"elementTypeId": "954421eb-33a6-462d-a8ca-b5709a1bd0d4",
"elementTypeName": "ConnectorType",
"elementTypeVersion": 1,
"elementTypeDescription": "A set of properties describing a type of connector."
},
"guid": "41a30f1e-4dad-461b-a21c-eacabb4016cc",
"qualifiedName": "Egeria:OMRSRepositoryConnector:Cached",
"displayName": "OMRS Caching Repository Connector",
"description": " The OMRS caching Repository Connector provides a simple repository implementation that caches metadata in an embedded repository connector.",
"connectorProviderClassName":"org.odpi.openmetadata.adapters.repositoryservices.caching.repositoryconnector.CachingOMRSRepositoryProxyConnectorProvider"
},
"embeddedConnections":[
{
"class":"EmbeddedConnection",
"headerVersion":0,
"position":0,
"displayName":"embedded XTDB store",
"embeddedConnection":{
"class": "Connection",
"connectorType": {
"class": "ConnectorType",
"connectorProviderClassName": "org.odpi.egeria.connectors.juxt.xtdb.repositoryconnector.XtdbOMRSRepositoryConnectorProvider"
}
}
}
]
}