From 7053bfce3a32dcb4b3d063d7c3c62c510808a8a5 Mon Sep 17 00:00:00 2001 From: Mandy Chessell Date: Tue, 29 Aug 2023 11:56:16 +0100 Subject: [PATCH] Enhance omag-server-platform assembly (#7766) Signed-off-by: Mandy Chessell --- .../omag-server-platform/README.md | 6 + .../omag-server-platform/build.gradle | 118 ++-- .../omag-server-platform/docs/README.md | 2 + .../docs/{deployment => assembly}/README.md | 0 .../docs/docker-build/README.md | 24 +- .../docs/fileLayout.drawio | 98 ++-- .../omag-server-platform/docs/fileLayout.png | Bin 0 -> 120674 bytes .../docs/platform/README.md | 2 +- .../docs/sample-clients/README.md | 43 +- .../open-metadata-assemblies/build.gradle | 8 +- ...-data-manager-omas.postman_collection.json | 342 ++++++++++- ...nance-program-omas.postman_collection.json | 136 +++++ ...nfrastructure-omas.postman_collection.json | 178 ++++++ ...-subject-area-omas.postman_collection.json | 110 ++++ .../ConnectorConfigurationFactory.java | 1 + ...onnectorConfigurationFactoryErrorCode.java | 3 + ...form-configuration.postman_collection.json | 2 +- ...rver-configuration.postman_collection.json | 35 ++ ...pen-metadata-store.postman_collection.json | 11 +- ...on-daemon-services.postman_collection.json | 369 ++++++++---- ...ple Configurations.postman_collection.json | 542 ++++++++++++++++++ .../docker/platform/Dockerfile | 9 +- .../sample-configs/README.md | 45 ++ .../config/active-metadata-store.config | 1 + .../config/integration-daemon.config | 1 + .../config/simple-metadata-store.config | 1 + .../CreateAvroFileAssetSample.java | 4 +- .../CreateCSVFileAssetSample.java | 4 +- .../README.md | 0 .../build.gradle | 0 .../samples/assetdeploy/AssetDeploy.java | 2 +- .../src/main/resources/logback.xml | 0 .../README.md | 0 .../build.gradle | 0 .../samples/assetlookup/AssetLookUp.java | 0 .../src/main/resources/logback.xml | 0 .../readavrofile/AvroFileReaderSample.java | 4 +- .../asset-reader-csv-sample/README.md | 4 +- .../readcsvfile/CSVFileReaderSample.java | 4 +- .../README.md | 0 .../build.gradle | 0 .../samples/assetsetup/AssetSetUp.java | 2 +- .../assetsetup/GlossaryTermDefinitions.java | 0 .../assetsetup/GovernanceZoneDefinitions.java | 0 .../src/main/resources/logback.xml | 0 .../glossary-workflow-samples/README.md | 4 +- .../GlossaryWorkflowSamples.java | 2 +- .../governance-leadership-sample/README.md | 19 +- .../CreateGovernanceZoneSample.java | 2 +- .../subject-area-client-samples/README.md | 2 +- .../README.md | 2 +- .../build.gradle | 0 .../SubjectAreaDefinitionSample.java | 82 +-- .../src/main/resources/logback.xml | 0 .../build.gradle | 2 +- .../configure/ConfigMetadataServerSample.java | 2 +- .../src/main/resources/logback.xml | 0 settings.gradle | 10 +- 58 files changed, 1955 insertions(+), 283 deletions(-) rename open-metadata-distribution/omag-server-platform/docs/{deployment => assembly}/README.md (100%) create mode 100644 open-metadata-distribution/omag-server-platform/docs/fileLayout.png create mode 100644 open-metadata-implementation/access-services/governance-program/Egeria-governance-program-omas.postman_collection.json create mode 100644 open-metadata-implementation/access-services/it-infrastructure/Egeria-it-infrastructure-omas.postman_collection.json create mode 100644 open-metadata-implementation/access-services/subject-area/Egeria-subject-area-omas.postman_collection.json create mode 100644 open-metadata-resources/open-metadata-deployment/Sample Configurations.postman_collection.json create mode 100644 open-metadata-resources/open-metadata-deployment/sample-configs/README.md create mode 100644 open-metadata-resources/open-metadata-deployment/sample-configs/active-metadata-store/config/active-metadata-store.config create mode 100644 open-metadata-resources/open-metadata-deployment/sample-configs/integration-daemon/config/integration-daemon.config create mode 100644 open-metadata-resources/open-metadata-deployment/sample-configs/simple-metadata-store/config/simple-metadata-store.config rename open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/{asset-deploy => asset-deploy-sample}/README.md (100%) rename open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/{asset-deploy => asset-deploy-sample}/build.gradle (100%) rename open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/{asset-deploy => asset-deploy-sample}/src/main/java/org/odpi/openmetadata/accessservices/itinfrastructure/samples/assetdeploy/AssetDeploy.java (99%) rename open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/{asset-deploy => asset-deploy-sample}/src/main/resources/logback.xml (100%) rename open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/{asset-look-up => asset-look-up-sample}/README.md (100%) rename open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/{asset-look-up => asset-look-up-sample}/build.gradle (100%) rename open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/{asset-look-up => asset-look-up-sample}/src/main/java/org/odpi/openmetadata/accessservices/assetconsumer/samples/assetlookup/AssetLookUp.java (100%) rename open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/{asset-look-up => asset-look-up-sample}/src/main/resources/logback.xml (100%) rename open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/{asset-set-up => asset-set-up-sample}/README.md (100%) rename open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/{asset-set-up => asset-set-up-sample}/build.gradle (100%) rename open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/{asset-set-up => asset-set-up-sample}/src/main/java/org/odpi/openmetadata/accessservices/samples/assetsetup/AssetSetUp.java (99%) rename open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/{asset-set-up => asset-set-up-sample}/src/main/java/org/odpi/openmetadata/accessservices/samples/assetsetup/GlossaryTermDefinitions.java (100%) rename open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/{asset-set-up => asset-set-up-sample}/src/main/java/org/odpi/openmetadata/accessservices/samples/assetsetup/GovernanceZoneDefinitions.java (100%) rename open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/{asset-set-up => asset-set-up-sample}/src/main/resources/logback.xml (100%) rename open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/{subject-area-definition-sample => subject-area-categories-sample}/README.md (94%) rename open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/{subject-area-definition-sample => subject-area-categories-sample}/build.gradle (100%) rename open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/{subject-area-definition-sample => subject-area-categories-sample}/src/main/java/org/odpi/openmetadata/accessservices/subjectarea/samples/definition/SubjectAreaDefinitionSample.java (79%) rename open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/{subject-area-definition-sample => subject-area-categories-sample}/src/main/resources/logback.xml (100%) rename open-metadata-resources/open-metadata-samples/admin-services-samples/{admin-services-config-metadata-server-sample => config-metadata-server-sample}/build.gradle (94%) rename open-metadata-resources/open-metadata-samples/admin-services-samples/{admin-services-config-metadata-server-sample => config-metadata-server-sample}/src/main/java/org/odpi/openmetadata/adminservices/samples/configure/ConfigMetadataServerSample.java (99%) rename open-metadata-resources/open-metadata-samples/admin-services-samples/{admin-services-config-metadata-server-sample => config-metadata-server-sample}/src/main/resources/logback.xml (100%) diff --git a/open-metadata-distribution/omag-server-platform/README.md b/open-metadata-distribution/omag-server-platform/README.md index a81a1126105..8f8518bf824 100644 --- a/open-metadata-distribution/omag-server-platform/README.md +++ b/open-metadata-distribution/omag-server-platform/README.md @@ -7,6 +7,12 @@ The **OMAG Server Platform** module creates a distribution **tar** file that can and used to install Egeria's OMAG Server Platform. For further information see [Installing Egeria Tutorial](https://egeria-project.org/education/tutorials/installing-egeria-tutorial). +The diagram below shows the file layout for the OMAG Server Platform. The directories show in white are built by this assembly. The ones shown in blue are created during the platform operation. + +![File layout for the omag-server-platform assembly](docs/fileLayout.png) + +Each of the directories created by the assembly includes a `README.md` file that describes its content and how to use it. + ---- License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), Copyright Contributors to the ODPi Egeria project. diff --git a/open-metadata-distribution/omag-server-platform/build.gradle b/open-metadata-distribution/omag-server-platform/build.gradle index 16a7111843d..0d970457794 100644 --- a/open-metadata-distribution/omag-server-platform/build.gradle +++ b/open-metadata-distribution/omag-server-platform/build.gradle @@ -49,16 +49,7 @@ dependencies { implementation project(':open-metadata-implementation:adapters:open-connectors:governance-daemon-connectors:open-lineage-connectors:open-lineage-janus-connector') implementation project(':open-metadata-implementation:adapters:open-connectors:repository-services-connectors:open-metadata-archive-connectors:open-metadata-archive-file-connector') implementation project(':open-metadata-implementation:adapters:open-connectors:repository-services-connectors:open-metadata-archive-connectors:open-metadata-archive-directory-connector') - implementation project(':open-metadata-resources:open-metadata-samples:open-metadata-security-samples') implementation project(':open-metadata-implementation:adapters:open-connectors:rest-client-connectors:spring-rest-client-connector') - implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-create-avro-sample') - implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-create-csv-sample') - implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-reader-avro-sample') - implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-reader-csv-sample') - implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-leadership-sample') - implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-subject-area-sample') - implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-zone-create-sample') - implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:subject-area-client-samples:subject-area-definition-sample') implementation project(':open-metadata-implementation:access-services:asset-catalog:asset-catalog-client') implementation project(':open-metadata-implementation:access-services:asset-consumer:asset-consumer-client') implementation project(':open-metadata-implementation:access-services:asset-lineage:asset-lineage-client') @@ -99,13 +90,24 @@ dependencies { implementation project(':open-metadata-implementation:admin-services:admin-services-client') implementation project(':open-metadata-implementation:user-interfaces:ui-chassis:ui-chassis-spring') implementation project(':open-metadata-conformance-suite:open-metadata-conformance-suite-client') - implementation project(':open-metadata-resources:open-metadata-samples:admin-services-samples:admin-services-config-metadata-server-sample') + implementation project(':open-metadata-resources:open-metadata-samples:admin-services-samples:config-metadata-server-sample') implementation project(':open-metadata-resources:open-metadata-archives:open-metadata-types-utility') implementation project(':open-metadata-resources:open-metadata-archives:open-connector-archives') - implementation project(':open-metadata-resources:open-metadata-archives:design-model-archives:glossary-canonical-model') implementation project(':open-metadata-resources:open-metadata-samples:sample-metadata:big-glossaries') implementation project(':open-metadata-resources:open-metadata-samples:governance-services-sample') - + implementation project(':open-metadata-resources:open-metadata-samples:open-metadata-security-samples') + implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-create-avro-sample') + implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-create-csv-sample') + implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-deploy-sample') + implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-set-up-sample') + implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-look-up-sample') + implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-reader-avro-sample') + implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-reader-csv-sample') + implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:glossary-workflow-samples') + implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-leadership-sample') + implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-subject-area-sample') + implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-zone-create-sample') + implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:subject-area-client-samples:subject-area-categories-sample') } distributions { @@ -132,12 +134,12 @@ distributions { } fileMode = 0755 } - into('deployment') { + into('assembly') { // Describe the deployment layout - from { "$rootProject.projectDir/open-metadata-distribution/omag-server-platform/docs/deployment" } + from { "$rootProject.projectDir/open-metadata-distribution/omag-server-platform/docs/assembly" } fileMode = 0755 } - into('deployment/platform') { + into('assembly/platform') { from(rootProject.projectDir) { include 'truststore.p12' include 'keystore.p12' @@ -145,7 +147,7 @@ distributions { } fileMode = 0755 } - into('deployment/platform') { + into('assembly/platform') { // OMAG Server Platform - new name consistent with documentation from { project(':open-metadata-implementation:platform-chassis:platform-chassis-spring').bootJar } rename { String fileName -> @@ -153,27 +155,27 @@ distributions { } fileMode = 0755 } - into('deployment/platform') { + into('assembly/platform') { // Identify how the platform is started from { "$rootProject.projectDir/open-metadata-distribution/omag-server-platform/docs/platform" } fileMode = 0755 } - into('deployment/platform/data') { + into('assembly/platform/data') { // Describe the data files from { "$rootProject.projectDir/open-metadata-distribution/omag-server-platform/docs/data" } fileMode = 0755 } - into('deployment/platform/logs') { + into('assembly/platform/logs') { // Describe the log files from { "$rootProject.projectDir/open-metadata-distribution/omag-server-platform/docs/logs" } fileMode = 0755 } - into('deployment/platform/lib') { + into('assembly/platform/lib') { // Describe connectors from { "$rootProject.projectDir/open-metadata-distribution/omag-server-platform/docs/lib" } fileMode = 0755 } - into('deployment/platform/lib') { + into('assembly/platform/lib') { // All our connectors, plus discovery sample & the sample Coco security connectors from { project(':open-metadata-implementation:adapters:open-connectors:repository-services-connectors:audit-log-connectors:audit-log-console-connector').jar } from { project(':open-metadata-implementation:adapters:open-connectors:repository-services-connectors:audit-log-connectors:audit-log-event-topic-connector').jar } @@ -210,62 +212,68 @@ distributions { from { project(':open-metadata-resources:open-metadata-samples:governance-services-sample').jar } fileMode = 0755 } - into('deployment/platform/extra') { + into('assembly/platform/extra') { // Identify how to add new libs from { "$rootProject.projectDir/open-metadata-distribution/omag-server-platform/docs/extra" } fileMode = 0755 } - into('deployment/etc') { + into('assembly/etc') { // Describe the deployment layout from { "$rootProject.projectDir/open-metadata-distribution/omag-server-platform/docs/etc" } fileMode = 0755 } - into('deployment/etc') { + into('assembly/etc') { from(rootProject.projectDir) { include 'logback.xml' } fileMode = 0755 } - into('deployment/etc/utilities') { + into('assembly/etc/utilities') { // Describe the deployment layout from { "$rootProject.projectDir/open-metadata-distribution/omag-server-platform/docs/utilities" } fileMode = 0755 } - into('deployment/etc/utilities') { + into('assembly/etc/utilities') { from { project(':open-metadata-resources:open-metadata-dev-utilities:egeria-config-utility').shadowJar } from { project(':open-metadata-resources:open-metadata-dev-utilities:egeria-ops-utility').shadowJar } from { project(':open-metadata-resources:open-metadata-samples:sample-metadata:big-glossaries').shadowJar } + rename { String fileName -> + fileName.replace("-jar-with-dependencies", "") + } fileMode = 0755 } - into('deployment/etc/reports') { + into('assembly/etc/reports') { // Describe the reports layout from { "$rootProject.projectDir/open-metadata-distribution/omag-server-platform/docs/reports" } fileMode = 0755 } - into('deployment/etc/reports') { + into('assembly/etc/reports') { from { project(':open-metadata-resources:open-metadata-reports:component-id-report').shadowJar } from { project(':open-metadata-resources:open-metadata-reports:database-report').shadowJar } from { project(':open-metadata-resources:open-metadata-reports:egeria-platform-report').shadowJar } + rename { String fileName -> + fileName.replace("-$rootProject.version-jar-with-dependencies", "") + } fileMode = 0755 } - into('deployment/opt') { + into('assembly/opt') { // Describe the opt layout from { "$rootProject.projectDir/open-metadata-distribution/omag-server-platform/docs/opt" } fileMode = 0755 } - into('deployment/opt') { + into('assembly/opt') { from(rootProject.projectDir) { include 'content-packs/*' include 'sample-data/*/*' } fileMode = 0755 } - into('deployment/opt/sample-data') { + into('assembly/opt/sample-data') { // Describe the sample-data layout from { "$rootProject.projectDir/open-metadata-distribution/omag-server-platform/docs/sample-data" } fileMode = 0755 } - into('deployment/opt/sample-data') { + into('assembly/opt/sample-data') { // Add all sample data from { "$rootProject.projectDir/open-metadata-resources/open-metadata-deployment/sample-data/coco-pharmaceuticals" } { @@ -274,29 +282,41 @@ distributions { } fileMode = 0755 } - into('deployment/opt/sample-clients') { + into('assembly/opt/sample-configs') { + // Add all sample configs + from { "$rootProject.projectDir/open-metadata-resources/open-metadata-deployment/sample-configs" } + fileMode = 0755 + } + into('assembly/opt/sample-clients') { // Describe the sample-clients layout from { "$rootProject.projectDir/open-metadata-distribution/omag-server-platform/docs/sample-clients" } fileMode = 0755 } - into('deployment/opt/sample-clients') { + into('assembly/opt/sample-clients') { from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-create-avro-sample').shadowJar } from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-create-csv-sample').shadowJar } + from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-deploy-sample').shadowJar } + from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-look-up-sample').shadowJar } + from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-set-up-sample').shadowJar } from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-reader-avro-sample').shadowJar } from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-reader-csv-sample').shadowJar } from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-leadership-sample').shadowJar } from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-subject-area-sample').shadowJar } from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-zone-create-sample').shadowJar } - from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:subject-area-client-samples:subject-area-definition-sample').shadowJar } - from { project(':open-metadata-resources:open-metadata-samples:admin-services-samples:admin-services-config-metadata-server-sample').shadowJar } + from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:subject-area-client-samples:subject-area-categories-sample').shadowJar } + from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:glossary-workflow-samples').shadowJar } + from { project(':open-metadata-resources:open-metadata-samples:admin-services-samples:config-metadata-server-sample').shadowJar } + rename { String fileName -> + fileName.replace("-$rootProject.version-jar-with-dependencies", "") + } fileMode = 0755 } - into('deployment/opt/postman-collections') { + into('assembly/opt/postman-collections') { // Describe the sample-clients layout from { "$rootProject.projectDir/open-metadata-distribution/omag-server-platform/docs/postman-collections" } fileMode = 0755 } - into('deployment/opt/postman-collections') { + into('assembly/opt/postman-collections') { from { "$rootProject.projectDir/open-metadata-resources/open-metadata-samples/postman-rest-samples" } { include 'Egeria*.json' @@ -310,6 +330,28 @@ distributions { } fileMode = 0755 } + into('assembly/opt/postman-collections/framework-services') { + from { "$rootProject.projectDir/open-metadata-implementation/framework-services/ocf-metadata-management" } + { + include 'Egeria*.json' + } + from { "$rootProject.projectDir/open-metadata-implementation/framework-services/oif-metadata-management" } + { + include 'Egeria*.json' + } + from { "$rootProject.projectDir/open-metadata-implementation/framework-services/gaf-metadata-management" } + { + include 'Egeria*.json' + } + fileMode = 0755 + } + into('assembly/opt/postman-collections/sample-configs') { + from { "$rootProject.projectDir/open-metadata-resources/open-metadata-deployment" } + { + include 'Egeria*.json' + } + fileMode = 0755 + } } } } diff --git a/open-metadata-distribution/omag-server-platform/docs/README.md b/open-metadata-distribution/omag-server-platform/docs/README.md index 309c72fadc9..faa29a504d4 100644 --- a/open-metadata-distribution/omag-server-platform/docs/README.md +++ b/open-metadata-distribution/omag-server-platform/docs/README.md @@ -1,7 +1,9 @@ +# Documentation files +This is the documentation and diagrams that are inserted into the omag-server-platform assembly. diff --git a/open-metadata-distribution/omag-server-platform/docs/deployment/README.md b/open-metadata-distribution/omag-server-platform/docs/assembly/README.md similarity index 100% rename from open-metadata-distribution/omag-server-platform/docs/deployment/README.md rename to open-metadata-distribution/omag-server-platform/docs/assembly/README.md diff --git a/open-metadata-distribution/omag-server-platform/docs/docker-build/README.md b/open-metadata-distribution/omag-server-platform/docs/docker-build/README.md index b90d97acce5..52548fc6a5f 100644 --- a/open-metadata-distribution/omag-server-platform/docs/docker-build/README.md +++ b/open-metadata-distribution/omag-server-platform/docs/docker-build/README.md @@ -1,27 +1,33 @@ -# Egeria's install image +# Egeria's assembly The contents of this directory were initially created by the gradle build script from the [egeria.git](https://github.com/odpi/egeria) repository. It has two parts to it: -* All the files and built images for egeria are under the `deployment` directory. - Each directory contains a readme that describes its contents. -* A `Docker` build file used to create a docker image +* All the files and built images for egeria are under the `assembly` directory. + Each directory contains a `README.md` that describes its contents. +* A `Docker` build file used to create a docker image. * A directory called `dist` that contains the start up script run when a docker image built from this directory is run. ## Creating a docker image -The Docker file creates a docker image based on the files in the deployment directory. +The `Docker` file provides the context for creating a docker image based on the files in the `assembly` directory. -First add or remove the files from under the `deployment` directory to suit your needs. -Then run `docker build -t egeria-platform:{myversion} -f Dockerfile .` in this -directory to create the image, replacing `{myversion}` with a name or date as a tag for this version of the docker image. +First add or remove the files from under the `platform` directory to suit your needs. +Then run `docker build -t egeria-platform:{tagName} -f Dockerfile .` in this +directory to create the image, replacing `{tagName}` with a name or date as a tag for this version of the docker image. +The docker build packages everything under `platform` into the docker image. -To run the resulting image use `docker run -p 9443:9443 odpi/egeria-platform:{myversion}`. +The docker build is created by a remote docker daemon and the resulting image is +found under the images managed by that daemon. For example, if you are using +[Docker Desktop](https://www.docker.com/products/docker-desktop/), +the docker image is located in the **Images** tab. + +To run the resulting image from the command line, use `docker run -p 9443:9443 odpi/egeria-platform:{tagName}`, again replacing `{tagName}` with your chosen tag. diff --git a/open-metadata-distribution/omag-server-platform/docs/fileLayout.drawio b/open-metadata-distribution/omag-server-platform/docs/fileLayout.drawio index 0a60897f42f..8f7cd9da9b8 100644 --- a/open-metadata-distribution/omag-server-platform/docs/fileLayout.drawio +++ b/open-metadata-distribution/omag-server-platform/docs/fileLayout.drawio @@ -1,11 +1,11 @@ - + - + - - + + @@ -16,16 +16,16 @@ - + - + - + @@ -67,36 +67,36 @@ - + - + - + - + - + - + - + - + - + @@ -105,7 +105,7 @@ - + @@ -113,19 +113,19 @@ - + - + - + - + - + @@ -143,34 +143,34 @@ - + - + - + - + - + - + - + - + - + - + @@ -185,10 +185,10 @@ - + - + @@ -200,7 +200,7 @@ - + @@ -208,13 +208,13 @@ - + - + @@ -222,10 +222,10 @@ - + - + @@ -234,24 +234,32 @@ - + - + - + - + - + - + + + + + + + + + diff --git a/open-metadata-distribution/omag-server-platform/docs/fileLayout.png b/open-metadata-distribution/omag-server-platform/docs/fileLayout.png new file mode 100644 index 0000000000000000000000000000000000000000..2d735bf0b4e832d589269ee72029e44da1fbbba0 GIT binary patch literal 120674 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 Bz4`zE literal 0 HcmV?d00001 diff --git a/open-metadata-distribution/omag-server-platform/docs/platform/README.md b/open-metadata-distribution/omag-server-platform/docs/platform/README.md index e6cfb70da22..181a018102a 100644 --- a/open-metadata-distribution/omag-server-platform/docs/platform/README.md +++ b/open-metadata-distribution/omag-server-platform/docs/platform/README.md @@ -6,7 +6,7 @@ The omag-server-platform.jar file holds the main runtime for Egeria, To start the platform, enter: ```bash -java -Dloader.path=lib,extra omag-server-platform*.jar +java -Dloader.path=lib,extra -jar omag-server-platform*.jar ``` You will see the platform logo plus other messages describing its startup configuration. diff --git a/open-metadata-distribution/omag-server-platform/docs/sample-clients/README.md b/open-metadata-distribution/omag-server-platform/docs/sample-clients/README.md index 62c90d67cc8..9445a1433a0 100644 --- a/open-metadata-distribution/omag-server-platform/docs/sample-clients/README.md +++ b/open-metadata-distribution/omag-server-platform/docs/sample-clients/README.md @@ -4,7 +4,48 @@ # Sample clients The open metadata samples illustrate how to use the various APIs of Egeria. -If you run them, they display help information to control the parameters +When you run them, they display help information describing the parameters +needed to run them successfully. + +* **asset-create-avro-sample** catalogues an Apache Avro file in the open metadata ecosystem as an Asset. This sample uses the [Asset Owner OMAS](https://egeria-project.org/services/omas/asset-owner/overview/). +* **asset-create-csv-sample** catalogues a CSV file in the open metadata ecosystem as an Asset. This sample also uses the [Asset Owner OMAS](https://egeria-project.org/services/omas/asset-owner/overview/). +* **asset-deploy-sample** illustrates the use of the [IT Infrastructure OMAS](https://egeria-project.org/services/omas/it-infrastructure/overview/) APIs to catalog different types of infrastructure. +* **asset-look-up-sample** illustrates the use of the [Asset Consumer OMAS](https://egeria-project.org/services/omas/asset-consumer/overview/) APIs to search for and display the metadata linked to an Asset. +* **asset-reader-avro-sample** illustrates the use of the [Asset Consumer OMAS](https://egeria-project.org/services/omas/asset-consumer/overview/) APIs to create connectors to Avro files. +* **asset-reader-csv-sample** illustrates the use of the [Asset Consumer OMAS](https://egeria-project.org/services/omas/asset-consumer/overview/) APIs to create connectors to CSV files. +* **asset-set-up-sample** illustrates the use of a variety of [OMASs](https://egeria-project.org/services/omas/) APIs to catalog files. +* **config-metadata-server-sample** illustrates the use of the [Administration Services](https://egeria-project.org/services/admin-services/overview) APIs to create a configuration document for a Metadata Access Store. +* **glossary-workflow-samples** show different styles of managing changes to glossary terms. +They are illustrated through the [Asset Manager OMAS glossary management API](https://odpi.github.io/egeria/org/odpi/openmetadata/accessservices/assetmanager/api/management/GlossaryManagementInterface.html). +This interface is used by [Glossary Workflow OMVS](https://egeria-project.org/services/omvs/glossary-workflow/overview) to provide the backend services for UI that provide complex management interfaces. +* **governance-leadership-sample** shows the appointment of different types of governance officers over time. It uses the APIs from [Governance Program OMAS](https://egeria-project.org/services/omas/governance-program/overview/). +* **governance-subject-area-sample** shows the creation of Coco Pharmaceuticals' subject area definitions. It uses the APIs from [Governance Program OMAS](https://egeria-project.org/services/omas/governance-program/overview/). +* **governance-zone-create-sample** shows the creation of Coco Pharmaceuticals' governance zone definitions. It uses the APIs from [Governance Program OMAS](https://egeria-project.org/services/omas/governance-program/overview/). +* **subject-area-categories-sample** shows how to create a hierarchy of categories using the [Subject Area OMAS](https://egeria-project.org/services/omas/subject-area/overview/). + + +These sample clients need access to certifications to validate the platform +they are calling. Copy the JAR files for the samples into the `platform` directory: + +```bash +cp *.jar ../../platform +``` +Change to the `platform` directory. +```bash +cd ../../platform +``` + +Then, once you have the platform running, you can run the samples with the following command: + +```bash +java -Djavax.net.ssl.keyStore=keystore.p12 -Djavax.net.ssl.keyStorePassword=egeria -Djavax.net.ssl.trustStore=truststore.p12 -Djavax.net.ssl.trustStorePassword=egeria -jar {jarFileName} +``` +Replace {jarFileName} with then name of sample's JAR file that you wish to run. +For example, to run the `asset-set-up-sample` enter: + +```bash +java -Djavax.net.ssl.keyStore=keystore.p12 -Djavax.net.ssl.keyStorePassword=egeria -Djavax.net.ssl.trustStore=truststore.p12 -Djavax.net.ssl.trustStorePassword=egeria -jar asset-set-up-sample.jar +``` ---- diff --git a/open-metadata-distribution/open-metadata-assemblies/build.gradle b/open-metadata-distribution/open-metadata-assemblies/build.gradle index fd1d7a7d71e..2fe072fbfc6 100644 --- a/open-metadata-distribution/open-metadata-assemblies/build.gradle +++ b/open-metadata-distribution/open-metadata-assemblies/build.gradle @@ -58,7 +58,7 @@ dependencies { implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-leadership-sample') implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-subject-area-sample') implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-zone-create-sample') - implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:subject-area-client-samples:subject-area-definition-sample') + implementation project(':open-metadata-resources:open-metadata-samples:access-services-samples:subject-area-client-samples:subject-area-categories-sample') implementation project(':open-metadata-implementation:access-services:asset-catalog:asset-catalog-client') implementation project(':open-metadata-implementation:access-services:asset-consumer:asset-consumer-client') implementation project(':open-metadata-implementation:access-services:asset-lineage:asset-lineage-client') @@ -99,7 +99,7 @@ dependencies { implementation project(':open-metadata-implementation:admin-services:admin-services-client') implementation project(':open-metadata-implementation:user-interfaces:ui-chassis:ui-chassis-spring') implementation project(':open-metadata-conformance-suite:open-metadata-conformance-suite-client') - implementation project(':open-metadata-resources:open-metadata-samples:admin-services-samples:admin-services-config-metadata-server-sample') + implementation project(':open-metadata-resources:open-metadata-samples:admin-services-samples:config-metadata-server-sample') implementation project(':open-metadata-resources:open-metadata-archives:open-metadata-types-utility') implementation project(':open-metadata-resources:open-metadata-archives:open-connector-archives') implementation project(':open-metadata-resources:open-metadata-archives:design-model-archives:glossary-canonical-model') @@ -216,8 +216,8 @@ distributions { from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-leadership-sample').shadowJar } from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-subject-area-sample').shadowJar } from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-zone-create-sample').shadowJar } - from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:subject-area-client-samples:subject-area-definition-sample').shadowJar } - from { project(':open-metadata-resources:open-metadata-samples:admin-services-samples:admin-services-config-metadata-server-sample').shadowJar } + from { project(':open-metadata-resources:open-metadata-samples:access-services-samples:subject-area-client-samples:subject-area-categories-sample').shadowJar } + from { project(':open-metadata-resources:open-metadata-samples:admin-services-samples:config-metadata-server-sample').shadowJar } fileMode = 0755 } into('user-interface') { diff --git a/open-metadata-implementation/access-services/data-manager/Egeria-data-manager-omas.postman_collection.json b/open-metadata-implementation/access-services/data-manager/Egeria-data-manager-omas.postman_collection.json index bb8aa5225f3..12709de7c69 100644 --- a/open-metadata-implementation/access-services/data-manager/Egeria-data-manager-omas.postman_collection.json +++ b/open-metadata-implementation/access-services/data-manager/Egeria-data-manager-omas.postman_collection.json @@ -3,7 +3,8 @@ "_postman_id": "45761482-82ad-4ce1-8a51-d0b898bb4cd2", "name": "Egeria-data-manager-omas", "description": "Calls to the REST API of the Data Manager OMAS", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "28623075" }, "item": [ { @@ -178,6 +179,102 @@ }, "response": [] }, + { + "name": "Create a Topic", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"class\" : \"TopicRequestBody\",\n\t\"qualifiedName\" : \"Test.MyTopic\",\n \"displayName\" : \"MyTopic\",\n \"description\" : \"This is a test topic\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/access-services/data-manager/users/{{user}}/topics?eventBrokerIsHome=false", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "access-services", + "data-manager", + "users", + "{{user}}", + "topics" + ], + "query": [ + { + "key": "eventBrokerIsHome", + "value": "false" + } + ] + }, + "description": "Create an Asset entity to represent the Database." + }, + "response": [] + }, + { + "name": "Create an Event Type for a Topic", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "name": "Content-Type", + "type": "text", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n\t\"class\" : \"EventTypeRequestBody\",\n\t\"qualifiedName\" : \"Test.MyTopic.EventType1\",\n \"displayName\" : \"EventType1\",\n \"description\" : \"This is a test event type for a topic\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/access-services/data-manager/users/{{user}}/topics/c3a5ae62-4b79-49ee-bec2-8887c58d6dc6/event-types?eventBrokerIsHome=false", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "access-services", + "data-manager", + "users", + "{{user}}", + "topics", + "c3a5ae62-4b79-49ee-bec2-8887c58d6dc6", + "event-types" + ], + "query": [ + { + "key": "eventBrokerIsHome", + "value": "false" + } + ] + }, + "description": "Create an Asset entity to represent the Database." + }, + "response": [] + }, { "name": "Create a database schema", "request": { @@ -319,6 +416,123 @@ }, "response": [] }, + { + "name": "Get topics for event broker", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/access-services/data-manager/users/{{user}}/event-brokers/db5ff6c5-476b-4aec-a373-0a63c6adea13/TopicMonitor/topics?startFrom=0&pageSize=1", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "access-services", + "data-manager", + "users", + "{{user}}", + "event-brokers", + "db5ff6c5-476b-4aec-a373-0a63c6adea13", + "TopicMonitor", + "topics" + ], + "query": [ + { + "key": "startFrom", + "value": "0" + }, + { + "key": "pageSize", + "value": "1" + } + ] + } + }, + "response": [] + }, + { + "name": "Find topics", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseURL}}/servers/cocoMDSx/open-metadata/access-services/data-manager/users/erinoverview/topics/by-search-string/.*.?startFrom=0&pageSize=100", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "cocoMDSx", + "open-metadata", + "access-services", + "data-manager", + "users", + "erinoverview", + "topics", + "by-search-string", + ".*." + ], + "query": [ + { + "key": "startFrom", + "value": "0" + }, + { + "key": "pageSize", + "value": "100" + } + ] + } + }, + "response": [] + }, + { + "name": "Find endpoints", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"class\" : \"SearchStringRequestBody\",\n \"searchString\" : \".*.\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseURL}}/servers/{{mdrServer}}/open-metadata/access-services/data-manager/users/{{user}}/endpoints/by-search-string?startFrom=0&pageSize=100", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{mdrServer}}", + "open-metadata", + "access-services", + "data-manager", + "users", + "{{user}}", + "endpoints", + "by-search-string" + ], + "query": [ + { + "key": "startFrom", + "value": "0" + }, + { + "key": "pageSize", + "value": "100" + } + ] + } + }, + "response": [] + }, { "name": "GetDatabaseByName", "request": { @@ -355,6 +569,96 @@ }, "response": [] }, + { + "name": "Get Event Type By Name", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"class\" : \"NameRequestBody\",\n \"name\" : \"Test.MyTopic.EventType1\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/access-services/data-manager/users/{{user}}/topics/event-types/by-name?startFrom=0&pageSize=0", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "access-services", + "data-manager", + "users", + "{{user}}", + "topics", + "event-types", + "by-name" + ], + "query": [ + { + "key": "startFrom", + "value": "0" + }, + { + "key": "pageSize", + "value": "0" + } + ] + } + }, + "response": [] + }, + { + "name": "Find Event Type", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"class\" : \"SearchStringRequestBody\",\n \"searchString\" : \"Test.MyTopic.EventType1\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/access-services/data-manager/users/{{user}}/topics/event-types/by-search-string?startFrom=0&pageSize=0", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "access-services", + "data-manager", + "users", + "{{user}}", + "topics", + "event-types", + "by-search-string" + ], + "query": [ + { + "key": "startFrom", + "value": "0" + }, + { + "key": "pageSize", + "value": "0" + } + ] + } + }, + "response": [] + }, { "name": "GetDatabaseByGUID", "request": { @@ -405,6 +709,42 @@ } }, "response": [] + }, + { + "name": "Get Nested Schema Attribute", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseURL}}/servers/cocoMDS2/open-metadata/access-services/data-manager/users/erinoverview/schema-elements/{{guid}}/nested-attributes?startFrom=0&pageSizee=0", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "cocoMDS2", + "open-metadata", + "access-services", + "data-manager", + "users", + "erinoverview", + "schema-elements", + "{{guid}}", + "nested-attributes" + ], + "query": [ + { + "key": "startFrom", + "value": "0" + }, + { + "key": "pageSizee", + "value": "0" + } + ] + } + }, + "response": [] } ] } \ No newline at end of file diff --git a/open-metadata-implementation/access-services/governance-program/Egeria-governance-program-omas.postman_collection.json b/open-metadata-implementation/access-services/governance-program/Egeria-governance-program-omas.postman_collection.json new file mode 100644 index 00000000000..aac9ae8358d --- /dev/null +++ b/open-metadata-implementation/access-services/governance-program/Egeria-governance-program-omas.postman_collection.json @@ -0,0 +1,136 @@ +{ + "info": { + "_postman_id": "4f602427-e761-4ae7-96cb-024d0843f929", + "name": "Egeria-governance-program-omas", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "28623075" + }, + "item": [ + { + "name": "Get Governance Officer", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/access-services/governance-program/users/user/leadership/governance-officers/{{guid}}", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "access-services", + "governance-program", + "users", + "user", + "leadership", + "governance-officers", + "{{guid}}" + ] + } + }, + "response": [ + { + "name": "Get Entity", + "originalRequest": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:8080/open-metadata/repository-services/users/julesk/instances/entity/fd7d41e7-70f5-42ec-86d3-88683e599494", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "open-metadata", + "repository-services", + "users", + "julesk", + "instances", + "entity", + "fd7d41e7-70f5-42ec-86d3-88683e599494" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json;charset=UTF-8", + "name": "Content-Type", + "description": "The mime type of this content" + }, + { + "key": "Date", + "value": "Tue, 11 Sep 2018 13:06:11 GMT", + "name": "Date", + "description": "The date and time that the message was sent" + }, + { + "key": "Transfer-Encoding", + "value": "chunked", + "name": "Transfer-Encoding", + "description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity." + } + ], + "cookie": [], + "body": "{\"class\":\"EntityDetailResponse\",\"relatedHTTPCode\":200,\"entity\":{\"class\":\"EntityDetail\",\"type\":{\"class\":\"InstanceType\",\"typeDefCategory\":\"ENTITY_DEF\",\"typeDefGUID\":\"578a3510-9ad3-45fe-8ada-e4e9572c37c8\",\"typeDefName\":\"GovernanceOfficer\",\"typeDefVersion\":1,\"typeDefDescription\":\"Person responsible for a governance domain.\",\"typeDefSuperTypes\":[{\"guid\":\"a32316b8-dc8c-48c5-b12b-71c1b2a080bf\",\"name\":\"Referenceable\"}],\"validInstanceProperties\":[\"qualifiedName\",\"additionalProperties\",\"title\",\"scope\",\"domain\"]},\"createdBy\":\"julesk\",\"createTime\":\"2018-09-11T13:01:20.139+0000\",\"version\":1,\"instanceProvenanceType\":\"LOCAL_COHORT\",\"metadataCollectionId\":\"87b06ffe-9db2-4ef5-ba6e-8127480cf30d\",\"guid\":\"fd7d41e7-70f5-42ec-86d3-88683e599494\",\"instanceURL\":\"http://localhost:8080/instances/entity/fd7d41e7-70f5-42ec-86d3-88683e599494\",\"properties\":{\"class\":\"InstanceProperties\",\"instanceProperties\":{\"title\":{\"class\":\"PrimitivePropertyValue\",\"instancePropertyCategory\":\"PRIMITIVE\",\"primitiveDefCategory\":\"OM_PRIMITIVE_TYPE_STRING\",\"primitiveValue\":\"Chief Data Officer (CDO)\"},\"qualifiedName\":{\"class\":\"PrimitivePropertyValue\",\"instancePropertyCategory\":\"PRIMITIVE\",\"primitiveDefCategory\":\"OM_PRIMITIVE_TYPE_STRING\",\"primitiveValue\":\"EXEC-CDO\"},\"domain\":{\"class\":\"EnumPropertyValue\",\"instancePropertyCategory\":\"ENUM\",\"ordinal\":1,\"symbolicName\":\"Data\",\"description\":\"The data (information) governance domain.\"}},\"propertyNames\":[\"qualifiedName\",\"domain\",\"title\"],\"propertyCount\":3},\"status\":\"ACTIVE\"}}" + }, + { + "name": "Get Governance Officer", + "originalRequest": { + "method": "GET", + "header": [], + "url": { + "raw": "http://localhost:8080/open-metadata/access-services/governance-program/users/julesk/leadership/governance-officers/fd7d41e7-70f5-42ec-86d3-88683e599494", + "protocol": "http", + "host": [ + "localhost" + ], + "port": "8080", + "path": [ + "open-metadata", + "access-services", + "governance-program", + "users", + "julesk", + "leadership", + "governance-officers", + "fd7d41e7-70f5-42ec-86d3-88683e599494" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json;charset=UTF-8", + "name": "Content-Type", + "description": "The mime type of this content" + }, + { + "key": "Date", + "value": "Tue, 11 Sep 2018 13:10:49 GMT", + "name": "Date", + "description": "The date and time that the message was sent" + }, + { + "key": "Transfer-Encoding", + "value": "chunked", + "name": "Transfer-Encoding", + "description": "The form of encoding used to safely transfer the entity to the user. Currently defined methods are: chunked, compress, deflate, gzip, identity." + } + ], + "cookie": [], + "body": "{\"class\":\"GovernanceOfficerResponse\",\"relatedHTTPCode\":200,\"governanceOfficer\":{\"class\":\"GovernanceOfficer\",\"guid\":\"fd7d41e7-70f5-42ec-86d3-88683e599494\",\"type\":\"GovernanceOfficer\",\"title\":\"Chief Data Officer (CDO)\",\"governanceDomain\":\"DATA\",\"appointmentId\":\"EXEC-CDO\",\"appointee\":{\"guid\":\"0760ac98-69e2-4309-ab1d-53377b105d0a\",\"type\":\"GovernancePost\",\"profile\":{\"guid\":\"053435b5-b19f-434d-bdd5-f6c909f55cb3\",\"type\":\"Person\",\"employeeNumber\":\"026\",\"fullName\":\"Julian Keeper\",\"knownName\":\"Jules Keeper\",\"jobTitle\":\"Chief Data and Privacy Officer\",\"jobRoleDescription\":\"Ensuring CocoP makes the best use of data.\",\"additionalProperties\":{\"ContactType\":\"Employee\",\"WorkLocation\":2}}}}}" + } + ] + } + ] +} \ No newline at end of file diff --git a/open-metadata-implementation/access-services/it-infrastructure/Egeria-it-infrastructure-omas.postman_collection.json b/open-metadata-implementation/access-services/it-infrastructure/Egeria-it-infrastructure-omas.postman_collection.json new file mode 100644 index 00000000000..97cdcc59909 --- /dev/null +++ b/open-metadata-implementation/access-services/it-infrastructure/Egeria-it-infrastructure-omas.postman_collection.json @@ -0,0 +1,178 @@ +{ + "info": { + "_postman_id": "904f428c-0edc-4be9-bbd7-041cfbd67c1d", + "name": "Egeria-it-infrastructure-omas", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "28623075" + }, + "item": [ + { + "name": "Create Software Server Capability", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"class\" : \"SoftwareServerCapabilityRequestBody\",\n \"externalSourceGUID\" : null,\n \"externalSourceName\" : null,\n \"typeName\" : null,\n \"classificationName\" : null,\n \"qualifiedName\" : \"EngineHost2\",\n \"effectiveFrom\" : null,\n \"effectiveTo\" : null,\n \"displayName\" : \"\",\n \"description\" : \"\",\n \"typeDescription\" : null,\n \"version\" : null,\n \"patchLevel\" : null,\n \"source\" : \"postman\",\n \"additionalProperties\" : null,\n \"vendorProperties\" : null,\n \"extendedProperties\" : null\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseURL}}/servers/cocoMDS2/open-metadata/access-services/it-infrastructure/users/{{user}}/software-server-capabilities?infrastructureManagerIsHome=false", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "cocoMDS2", + "open-metadata", + "access-services", + "it-infrastructure", + "users", + "{{user}}", + "software-server-capabilities" + ], + "query": [ + { + "key": "infrastructureManagerIsHome", + "value": "false" + } + ] + } + }, + "response": [] + }, + { + "name": "Create Software Server Capability From Template", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"class\" : \"TemplateRequestBody\",\n \"externalSourceGUID\" : null,\n \"externalSourceName\" : null,\n \"typeName\" : \"\",\n \"classificationName\" : null,\n \"qualifiedName\" : \"\",\n \"displayName\" : \"\",\n \"description\" : \"\",\n \"networkAddress\" : null\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/access-services/it-infrastructure/users/{{user}}/software-server-capabilities/from-template/{{guid}}?infrastructureManagerIsHome=false", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "access-services", + "it-infrastructure", + "users", + "{{user}}", + "software-server-capabilities", + "from-template", + "{{guid}}" + ], + "query": [ + { + "key": "infrastructureManagerIsHome", + "value": "false" + } + ] + } + }, + "response": [] + }, + { + "name": "Create Server Asset Use", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"class\" : \"ServerAssetUseRequestBody\",\n \"externalSourceGUID\" : null,\n \"externalSourceName\" : null,\n \"properties\" : \n {\n \"class\" : \"ServerAssetUseProperties\",\n \"useType\" : \"GOVERNS\",\n \"description\" : \"Governer\"\n },\n \"classificationName\" : null,\n \"qualifiedName\" : \"\",\n \"effectiveFrom\" : null,\n \"effectiveTo\" : null,\n \"displayName\" : \"\",\n \"description\" : \"\",\n \"typeDescription\" : null,\n \"version\" : null,\n \"patchLevel\" : null,\n \"source\" : \"postman\",\n \"additionalProperties\" : null,\n \"vendorProperties\" : null,\n \"extendedProperties\" : null\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseURL}}/servers/cocoMDS2/open-metadata/access-services/it-infrastructure/users/{{user}}/server-asset-uses/software-server-capabilities/4e0db25f-1997-442c-b85c-a16b53767f58/assets/4ce19d15-86cf-42b0-a0ef-15a15553947c?infrastructureManagerIsHome=false", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "cocoMDS2", + "open-metadata", + "access-services", + "it-infrastructure", + "users", + "{{user}}", + "server-asset-uses", + "software-server-capabilities", + "4e0db25f-1997-442c-b85c-a16b53767f58", + "assets", + "4ce19d15-86cf-42b0-a0ef-15a15553947c" + ], + "query": [ + { + "key": "infrastructureManagerIsHome", + "value": "false" + } + ] + } + }, + "response": [] + }, + { + "name": "Get Capabilities for Asset", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"class\" : \"UseTypeRequestBody\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseURL}}/servers/cocoMDS2/open-metadata/access-services/it-infrastructure/users/{{user}}/server-asset-uses/assets/d606772c-197a-47a3-a533-56cd5ebfc63c?startFrom=0&pageSize=0", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "cocoMDS2", + "open-metadata", + "access-services", + "it-infrastructure", + "users", + "{{user}}", + "server-asset-uses", + "assets", + "d606772c-197a-47a3-a533-56cd5ebfc63c" + ], + "query": [ + { + "key": "startFrom", + "value": "0" + }, + { + "key": "pageSize", + "value": "0" + } + ] + } + }, + "response": [] + } + ] +} \ No newline at end of file diff --git a/open-metadata-implementation/access-services/subject-area/Egeria-subject-area-omas.postman_collection.json b/open-metadata-implementation/access-services/subject-area/Egeria-subject-area-omas.postman_collection.json new file mode 100644 index 00000000000..fc9c85a8118 --- /dev/null +++ b/open-metadata-implementation/access-services/subject-area/Egeria-subject-area-omas.postman_collection.json @@ -0,0 +1,110 @@ +{ + "info": { + "_postman_id": "9187aded-af08-4687-9d8f-99bcb9dd3621", + "name": "Egeria-subject-area-omas", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "28623075" + }, + "item": [ + { + "name": "Create Glossary", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"class\" : \"Glossary\",\n \"qualifiedName\" : \"glossaryTime\",\n \"name\" : \"XY\",\n \"effectiveFromTime\" : 77777777,\n \"effectiveToTime\" : 88888888\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/access-services/subject-area/users/{{user}}/glossaries", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "access-services", + "subject-area", + "users", + "{{user}}", + "glossaries" + ] + } + }, + "response": [] + }, + { + "name": "Update Glossary", + "request": { + "method": "PUT", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"class\" : \"Glossary\",\n \"qualifiedName\" : \"glossaryTime\",\n \"name\" : \"XY\",\n \"effectiveFromTime\" : 77777777,\n \"effectiveToTime\" : 9999999999\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/access-services/subject-area/users/{{user}}/glossaries/{{glossaryGUID}}", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "access-services", + "subject-area", + "users", + "{{user}}", + "glossaries", + "{{glossaryGUID}}" + ] + } + }, + "response": [] + }, + { + "name": "Create Term", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"class\" : \"Term\",\n \"qualifiedName\" : \"termXXXX2\",\n \"name\" : \"X\",\n \"glossary\" : \n {\n \"class\" : \"GlossarySummary\",\n \"guid\" : \"01723297-dfc0-4ca6-a81b-29e6e385252e\"\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/access-services/subject-area/users/{{user}}/terms", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "access-services", + "subject-area", + "users", + "{{user}}", + "terms" + ] + } + }, + "response": [] + } + ] +} \ No newline at end of file diff --git a/open-metadata-implementation/adapters/open-connectors/connector-configuration-factory/src/main/java/org/odpi/openmetadata/adapters/repositoryservices/ConnectorConfigurationFactory.java b/open-metadata-implementation/adapters/open-connectors/connector-configuration-factory/src/main/java/org/odpi/openmetadata/adapters/repositoryservices/ConnectorConfigurationFactory.java index 96f180a7307..d9322fda366 100644 --- a/open-metadata-implementation/adapters/open-connectors/connector-configuration-factory/src/main/java/org/odpi/openmetadata/adapters/repositoryservices/ConnectorConfigurationFactory.java +++ b/open-metadata-implementation/adapters/open-connectors/connector-configuration-factory/src/main/java/org/odpi/openmetadata/adapters/repositoryservices/ConnectorConfigurationFactory.java @@ -123,6 +123,7 @@ public Connection getDefaultAuditLogConnection() for (OMRSAuditLogRecordSeverity severityDefinition : supportedSeverityDefinitions) { if ((! OMRSAuditLogRecordSeverity.TRACE.equals(severityDefinition)) && + (! OMRSAuditLogRecordSeverity.ACTIVITY.equals(severityDefinition)) && (! OMRSAuditLogRecordSeverity.PERFMON.equals(severityDefinition))) { supportedSeverities.add(severityDefinition.getName()); diff --git a/open-metadata-implementation/adapters/open-connectors/connector-configuration-factory/src/main/java/org/odpi/openmetadata/adapters/repositoryservices/ConnectorConfigurationFactoryErrorCode.java b/open-metadata-implementation/adapters/open-connectors/connector-configuration-factory/src/main/java/org/odpi/openmetadata/adapters/repositoryservices/ConnectorConfigurationFactoryErrorCode.java index ef72d077390..08152f82c63 100644 --- a/open-metadata-implementation/adapters/open-connectors/connector-configuration-factory/src/main/java/org/odpi/openmetadata/adapters/repositoryservices/ConnectorConfigurationFactoryErrorCode.java +++ b/open-metadata-implementation/adapters/open-connectors/connector-configuration-factory/src/main/java/org/odpi/openmetadata/adapters/repositoryservices/ConnectorConfigurationFactoryErrorCode.java @@ -28,6 +28,9 @@ */ public enum ConnectorConfigurationFactoryErrorCode implements ExceptionMessageSet { + /** + * CONNECTOR-CONFIGURATION-FACTORY-400-001 Invalid Connector Provider class {0}; class loader exception was {1} with message {2} + */ INVALID_CONNECTOR_PROVIDER(400, "CONNECTOR-CONFIGURATION-FACTORY-400-001 ", "Invalid Connector Provider class {0}; class loader exception was {1} with message {2}", "The system is unable to create the requested connector type because the Connector Provider's class is failing to initialize in the JVM" + diff --git a/open-metadata-implementation/admin-services/Egeria-admin-services-platform-configuration.postman_collection.json b/open-metadata-implementation/admin-services/Egeria-admin-services-platform-configuration.postman_collection.json index 90409d06d0e..1f58345819c 100644 --- a/open-metadata-implementation/admin-services/Egeria-admin-services-platform-configuration.postman_collection.json +++ b/open-metadata-implementation/admin-services/Egeria-admin-services-platform-configuration.postman_collection.json @@ -42,7 +42,7 @@ ], "body": { "mode": "raw", - "raw": "{\n \"class\": \"Connection\",\n \"connectorType\": {\n \"class\": \"ConnectorType\",\n \"connectorProviderClassName\": \"org.odpi.openmetadata.adapters.adminservices.configurationstore.encryptedfile.EncryptedFileBasedServerConfigStoreProvider\"\n },\n \"endpoint\": {\n \"class\": \"Endpoint\",\n \"address\": \"omag.server.{0}.config\"\n }\n}" + "raw": "{\n \"class\": \"Connection\",\n \"connectorType\": {\n \"class\": \"ConnectorType\",\n \"connectorProviderClassName\": \"org.odpi.openmetadata.adapters.adminservices.configurationstore.file.FileBasedServerConfigStoreProvider\"\n },\n \"endpoint\": {\n \"class\": \"Endpoint\",\n \"address\": \"data/servers/{0}/config/{0}.config\"\n }\n}" }, "url": { "raw": "{{baseURL}}/open-metadata/admin-services/users/{{adminUserId}}/stores/connection", diff --git a/open-metadata-implementation/admin-services/Egeria-admin-services-server-configuration.postman_collection.json b/open-metadata-implementation/admin-services/Egeria-admin-services-server-configuration.postman_collection.json index f96349af5a8..49c496baad4 100644 --- a/open-metadata-implementation/admin-services/Egeria-admin-services-server-configuration.postman_collection.json +++ b/open-metadata-implementation/admin-services/Egeria-admin-services-server-configuration.postman_collection.json @@ -1111,6 +1111,41 @@ }, "response": [] }, + { + "name": "Reset Remote Cohort URL", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"class\": \"URLRequestBody\",\n \"urlRoot\": \"{{baseURL}}/servers/{{server}}\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseURL}}/open-metadata/admin-services/users/{{adminUserId}}/servers/{{server}}/local-repository/configuration/remote-repository-connector-url", + "host": [ + "{{baseURL}}" + ], + "path": [ + "open-metadata", + "admin-services", + "users", + "{{adminUserId}}", + "servers", + "{{server}}", + "local-repository", + "configuration", + "remote-repository-connector-url" + ] + }, + "description": "This request is used to change the URL broadcast to other members of the cohort. This URL is used by these other members to call this server as part of a federated query.\n\nThis call is used when:\n\n- moving the server to a different platform\n \n- correcting the URL when it has been incorrectly configured." + }, + "response": [] + }, { "name": "Add open metadata archive to server start", "request": { diff --git a/open-metadata-implementation/framework-services/gaf-metadata-management/Egeria-open-metadata-store.postman_collection.json b/open-metadata-implementation/framework-services/gaf-metadata-management/Egeria-open-metadata-store.postman_collection.json index ea91854cef8..7861900d513 100644 --- a/open-metadata-implementation/framework-services/gaf-metadata-management/Egeria-open-metadata-store.postman_collection.json +++ b/open-metadata-implementation/framework-services/gaf-metadata-management/Egeria-open-metadata-store.postman_collection.json @@ -2,7 +2,8 @@ "info": { "_postman_id": "a078b46d-0589-40e9-a300-b35e65264f89", "name": "Egeria-open-metadata-store", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "28623075" }, "item": [ { @@ -256,7 +257,7 @@ "method": "GET", "header": [], "url": { - "raw": "{{baseURL}}/servers/{{server}}/open-metadata/framework-services/{{serviceURLName}}/open-metadata-store/users/{{user}}/valid-metadata-values/validate-map-name/additionalProperties?actualValue=additionalProperties&typeName=ProjectCharter", + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/framework-services/{{serviceURLName}}/open-metadata-store/users/{{user}}/valid-metadata-values/validate-map-name/additionalProperties?actualValue=expectedDuration&typeName=ProjectCharter", "host": [ "{{baseURL}}" ], @@ -276,7 +277,7 @@ "query": [ { "key": "actualValue", - "value": "additionalProperties" + "value": "expectedDuration" }, { "key": "typeName", @@ -293,7 +294,7 @@ "method": "GET", "header": [], "url": { - "raw": "{{baseURL}}/servers/{{server}}/open-metadata/framework-services/{{serviceURLName}}/open-metadata-store/users/{{user}}/valid-metadata-values/get-map-name/additionalProperties?preferredValue=additionalProperties&typeName=ProjectCharter", + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/framework-services/{{serviceURLName}}/open-metadata-store/users/{{user}}/valid-metadata-values/get-map-name/additionalProperties?preferredValue=expectedDuration&typeName=ProjectCharter", "host": [ "{{baseURL}}" ], @@ -313,7 +314,7 @@ "query": [ { "key": "preferredValue", - "value": "additionalProperties" + "value": "expectedDuration" }, { "key": "typeName", diff --git a/open-metadata-implementation/governance-servers/integration-daemon-services/Egeria-integration-daemon-services.postman_collection.json b/open-metadata-implementation/governance-servers/integration-daemon-services/Egeria-integration-daemon-services.postman_collection.json index a982a650dc9..e7c5bbd04c6 100644 --- a/open-metadata-implementation/governance-servers/integration-daemon-services/Egeria-integration-daemon-services.postman_collection.json +++ b/open-metadata-implementation/governance-servers/integration-daemon-services/Egeria-integration-daemon-services.postman_collection.json @@ -3,116 +3,277 @@ "_postman_id": "50d71b46-d513-48b7-9d59-d46c48cb7e4f", "name": "Egeria-integration-daemon-services", "description": "This collection calls the services implemented by the Integration Daemon OMAG Server.", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "28623075" }, "item": [ { - "name": "Get Integration Daemon Status", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{baseURL}}/servers/{{server}}/open-metadata/integration-daemon/users/{{user}}/status", - "host": [ - "{{baseURL}}" - ], - "path": [ - "servers", - "{{server}}", - "open-metadata", - "integration-daemon", - "users", - "{{user}}", - "status" - ] + "name": "Integration Services", + "item": [ + { + "name": "Validate Connector with Files Integrator OMIS", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/integration-services/files-integrator/users/{{user}}/validate-connector/org.odpi.openmetadata.adapters.connectors.integration.basicfiles.DataFolderMonitorIntegrationProvider", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "integration-services", + "files-integrator", + "users", + "{{user}}", + "validate-connector", + "org.odpi.openmetadata.adapters.connectors.integration.basicfiles.DataFolderMonitorIntegrationProvider" + ] + }, + "description": "Checks that the supplied connector provider class name produces a connector that will run in the integration service.\n\nTo check another connector replace `org.odpi.openmetadata.adapters.connectors.integration.basicfiles.DataFolderMonitorIntegrationProvider` with the qualified class name of the connector's provider." + }, + "response": [] }, - "description": "Retrieves the status of the connectors running in the Integration Daemon" - }, - "response": [] - }, - { - "name": "Validate Connector with Files Integrator OMIS", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{baseURL}}/servers/{{server}}/open-metadata/integration-services/files-integrator/users/{{user}}/validate-connector/org.odpi.openmetadata.adapters.connectors.integration.basicfiles.DataFolderMonitorIntegrationProvider", - "host": [ - "{{baseURL}}" - ], - "path": [ - "servers", - "{{server}}", - "open-metadata", - "integration-services", - "files-integrator", - "users", - "{{user}}", - "validate-connector", - "org.odpi.openmetadata.adapters.connectors.integration.basicfiles.DataFolderMonitorIntegrationProvider" - ] + { + "name": "Retrieve the connector type for a connector", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/integration-services/files-integrator/users/{{user}}/validate-connector/org.odpi.openmetadata.adapters.connectors.integration.basicfiles.DataFilesMonitorIntegrationProvider", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "integration-services", + "files-integrator", + "users", + "{{user}}", + "validate-connector", + "org.odpi.openmetadata.adapters.connectors.integration.basicfiles.DataFilesMonitorIntegrationProvider" + ] + }, + "description": "Restarts the requested Integration Service" + }, + "response": [] }, - "description": "Checks that the supplied connector provider class name produces a connector that will run in the integration service.\n\nTo check another connector replace `org.odpi.openmetadata.adapters.connectors.integration.basicfiles.DataFolderMonitorIntegrationProvider` with the qualified class name of the connector's provider." - }, - "response": [] + { + "name": "Refresh All integration Connectors", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/integration-daemon/users/{{user}}/refresh", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "integration-daemon", + "users", + "{{user}}", + "refresh" + ] + }, + "description": "Refreshes all Integration Connectors running in an integration daemon" + }, + "response": [] + }, + { + "name": "Refresh specific integration service", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/integration-daemon/users/{{user}}/integration-services/files-integrator/refresh", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "integration-daemon", + "users", + "{{user}}", + "integration-services", + "files-integrator", + "refresh" + ] + }, + "description": "Restarts the requested Integration Service" + }, + "response": [] + }, + { + "name": "Restart specific integration service", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/integration-daemon/users/{{user}}/integration-services/files-integrator/restart", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "integration-daemon", + "users", + "{{user}}", + "integration-services", + "files-integrator", + "restart" + ] + }, + "description": "Restarts the requested Integration Service" + }, + "response": [] + } + ] }, { - "name": "Refresh All integration Services", - "request": { - "method": "POST", - "header": [], - "url": { - "raw": "{{baseURL}}/servers/{{server}}/open-metadata/integration-daemon/users/{{user}}/refresh", - "host": [ - "{{baseURL}}" - ], - "path": [ - "servers", - "{{server}}", - "open-metadata", - "integration-daemon", - "users", - "{{user}}", - "refresh" - ] - }, - "description": "Refreshes all Integration Connectors running in an integration daemon" - }, - "response": [] + "name": "Integration Groups", + "item": [] }, { - "name": "Refresh specific integration service", - "request": { - "method": "POST", - "header": [], - "url": { - "raw": "{{baseURL}}/servers/{{server}}/open-metadata/integration-daemon/users/{{user}}/integration-services/files-integrator/refresh", - "host": [ - "{{baseURL}}" - ], - "path": [ - "servers", - "{{server}}", - "open-metadata", - "integration-daemon", - "users", - "{{user}}", - "integration-services", - "files-integrator", - "refresh" - ] + "name": "Integration Connectors", + "item": [ + { + "name": "Refresh All integration Connectors", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/integration-daemon/users/{{user}}/integration-connectors/refresh", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "integration-daemon", + "users", + "{{user}}", + "integration-connectors", + "refresh" + ] + }, + "description": "Refreshes all Integration Connectors running in an integration daemon" + }, + "response": [] }, - "description": "Restarts the requested Integration Service" - }, - "response": [] + { + "name": "Refresh Integration Connector", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"class\" : \"NameRequestBody\",\n \"name\" : \"connectorName goes here\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/integration-daemon/users/{{user}}/integration-connectors/refresh", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "integration-daemon", + "users", + "{{user}}", + "integration-connectors", + "refresh" + ] + }, + "description": "Refreshes all Integration Connectors running in an integration daemon" + }, + "response": [] + }, + { + "name": "Restart All integration Connectors", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/integration-daemon/users/{{user}}/integration-connectors/restart", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "integration-daemon", + "users", + "{{user}}", + "integration-connectors", + "restart" + ] + }, + "description": "Refreshes all Integration Connectors running in an integration daemon" + }, + "response": [] + }, + { + "name": "Restart Integration Connector", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"class\" : \"NameRequestBody\",\n \"name\" : \"connectorName goes here\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/integration-daemon/users/{{user}}/integration-connectors/restart", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "{{server}}", + "open-metadata", + "integration-daemon", + "users", + "{{user}}", + "integration-connectors", + "restart" + ] + }, + "description": "Refreshes all Integration Connectors running in an integration daemon" + }, + "response": [] + } + ] }, { - "name": "Restart specific integration service", + "name": "Get Integration Daemon Status", "request": { - "method": "POST", + "method": "GET", "header": [], "url": { - "raw": "{{baseURL}}/servers/{{server}}/open-metadata/integration-daemon/users/{{user}}/integration-services/files-integrator/restart", + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/integration-daemon/users/{{user}}/status", "host": [ "{{baseURL}}" ], @@ -123,22 +284,20 @@ "integration-daemon", "users", "{{user}}", - "integration-services", - "files-integrator", - "restart" + "status" ] }, - "description": "Restarts the requested Integration Service" + "description": "Retrieves the status of the connectors running in the Integration Daemon" }, "response": [] }, { - "name": "Retrieve the connector type for a connector", + "name": "Validate Connector", "request": { "method": "GET", "header": [], "url": { - "raw": "{{baseURL}}/servers/{{server}}/open-metadata/integration-services/files-integrator/users/{{user}}/validate-connector/org.odpi.openmetadata.adapters.connectors.integration.basicfiles.DataFilesMonitorIntegrationProvider", + "raw": "{{baseURL}}/servers/{{server}}/open-metadata/{{serviceURLName}}/users/{{user}}/validate-connector/{{connectorProfileClassName}}", "host": [ "{{baseURL}}" ], @@ -146,15 +305,13 @@ "servers", "{{server}}", "open-metadata", - "integration-services", - "files-integrator", + "{{serviceURLName}}", "users", "{{user}}", "validate-connector", - "org.odpi.openmetadata.adapters.connectors.integration.basicfiles.DataFilesMonitorIntegrationProvider" + "{{connectorProfileClassName}}" ] - }, - "description": "Restarts the requested Integration Service" + } }, "response": [] } diff --git a/open-metadata-resources/open-metadata-deployment/Sample Configurations.postman_collection.json b/open-metadata-resources/open-metadata-deployment/Sample Configurations.postman_collection.json new file mode 100644 index 00000000000..c56277478d7 --- /dev/null +++ b/open-metadata-resources/open-metadata-deployment/Sample Configurations.postman_collection.json @@ -0,0 +1,542 @@ +{ + "info": { + "_postman_id": "47c559f1-5ce0-4bc9-a887-be6315059a61", + "name": "Sample Configurations", + "description": "This postman collection creates the sample-configs included in the omag-server-platform assembly.", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "28623075" + }, + "item": [ + { + "name": "Set up the plain text configuration store", + "item": [ + { + "name": "Set Configuration Document Store Connection", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"class\": \"Connection\",\n \"connectorType\": {\n \"class\": \"ConnectorType\",\n \"connectorProviderClassName\": \"org.odpi.openmetadata.adapters.adminservices.configurationstore.file.FileBasedServerConfigStoreProvider\"\n },\n \"endpoint\": {\n \"class\": \"Endpoint\",\n \"address\": \"data/servers/{0}/config/{0}.config\"\n }\n}" + }, + "url": { + "raw": "{{baseURL}}/open-metadata/admin-services/users/{{adminUserId}}/stores/connection", + "host": [ + "{{baseURL}}" + ], + "path": [ + "open-metadata", + "admin-services", + "users", + "{{adminUserId}}", + "stores", + "connection" + ] + }, + "description": "Overrides the default connector that stores the configuration documents in a plain text file.\nThe request body is a Connection object that is used to create and configure the connector.\nThis call is preconfigured to switch the store to using the encrypted configuration document store." + }, + "response": [] + } + ], + "description": "This command is run immediately after the platform is started to set up the plain text configuration store. The amin is to distribute the sample config in plain text. The configurations will be encrypted the first time they are loaded in the platform." + }, + { + "name": "Configure simple-metadata-store", + "item": [ + { + "name": "Set local server user Id", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseURL}}/open-metadata/admin-services/users/{{adminUserId}}/servers/simple-metadata-store/server-user-id?id=simplemdsnpa", + "host": [ + "{{baseURL}}" + ], + "path": [ + "open-metadata", + "admin-services", + "users", + "{{adminUserId}}", + "servers", + "simple-metadata-store", + "server-user-id" + ], + "query": [ + { + "key": "id", + "value": "simplemdsnpa" + } + ] + }, + "description": "Set up the user Id that this server should use on open metadata requests when it is processing events (and consequently there is no end user id to use)." + }, + "response": [] + }, + { + "name": "Enable the in-memory repository", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseURL}}/open-metadata/admin-services/users/{{adminUserId}}/servers/simple-metadata-store/local-repository/mode/in-memory-repository", + "host": [ + "{{baseURL}}" + ], + "path": [ + "open-metadata", + "admin-services", + "users", + "{{adminUserId}}", + "servers", + "simple-metadata-store", + "local-repository", + "mode", + "in-memory-repository" + ] + }, + "description": "Set up the local reposiotry to use the in-memory implementation." + }, + "response": [] + }, + { + "name": "Enable the Open Metadata Access Services (OMASs)", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseURL}}/open-metadata/admin-services/users/{{adminUserId}}/servers/simple-metadata-store/access-services/no-topics", + "host": [ + "{{baseURL}}" + ], + "path": [ + "open-metadata", + "admin-services", + "users", + "{{adminUserId}}", + "servers", + "simple-metadata-store", + "access-services", + "no-topics" + ] + }, + "description": "Turn on a specific registered Open Metadata Access Services (OMAS).\n\nChange the value of the {{access-service}} variable in the environment to be the URL version of the name. Typically this is done by taking the access service name, dropping \"OMAS\", change to lower-case and link two words with a dash \"-\". For example, Asset Owner OMAS, would have a url name of asset-owner." + }, + "response": [] + }, + { + "name": "Get simple-metadata-store's configuration document", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseURL}}/open-metadata/admin-services/users/{{adminUserId}}/servers/simple-metadata-store/configuration", + "host": [ + "{{baseURL}}" + ], + "path": [ + "open-metadata", + "admin-services", + "users", + "{{adminUserId}}", + "servers", + "simple-metadata-store", + "configuration" + ] + }, + "description": "Retrieve the configuration document for the named server." + }, + "response": [] + } + ], + "description": "This folder contains the commands to configure the Metadata Access Store called simple-metadata-store. This version of the server is configured without event support." + }, + { + "name": "Configure active-metadata-store - with kafka", + "item": [ + { + "name": "Set local server user Id", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseURL}}/open-metadata/admin-services/users/{{adminUserId}}/servers/active-metadata-store/server-user-id?id=activemdsnpa", + "host": [ + "{{baseURL}}" + ], + "path": [ + "open-metadata", + "admin-services", + "users", + "{{adminUserId}}", + "servers", + "active-metadata-store", + "server-user-id" + ], + "query": [ + { + "key": "id", + "value": "activemdsnpa" + } + ] + }, + "description": "Set up the user Id that this server should use on open metadata requests when it is processing events (and consequently there is no end user id to use)." + }, + "response": [] + }, + { + "name": "Set up event bus", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"producer\": {\n \"bootstrap.servers\": \"{{kafkaep}}\"\n },\n \"consumer\":{\n \"bootstrap.servers\": \"{{kafkaep}}\"\n }\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseURL}}/open-metadata/admin-services/users/{{adminUserId}}/servers/active-metadata-store/event-bus", + "host": [ + "{{baseURL}}" + ], + "path": [ + "open-metadata", + "admin-services", + "users", + "{{adminUserId}}", + "servers", + "active-metadata-store", + "event-bus" + ] + }, + "description": "Set up the common properties needed to call your event bus. These properties are passed in the request body.\nThis request just sets up the defaults that will be incorporated into any future configuration that includes an event bus topic." + }, + "response": [] + }, + { + "name": "Enable the in-memory repository", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseURL}}/open-metadata/admin-services/users/{{adminUserId}}/servers/active-metadata-store/local-repository/mode/in-memory-repository", + "host": [ + "{{baseURL}}" + ], + "path": [ + "open-metadata", + "admin-services", + "users", + "{{adminUserId}}", + "servers", + "active-metadata-store", + "local-repository", + "mode", + "in-memory-repository" + ] + }, + "description": "Set up the local reposiotry to use the in-memory implementation." + }, + "response": [] + }, + { + "name": "Enable the Open Metadata Access Services (OMASs) with topics", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseURL}}/open-metadata/admin-services/users/{{adminUserId}}/servers/active-metadata-store/access-services", + "host": [ + "{{baseURL}}" + ], + "path": [ + "open-metadata", + "admin-services", + "users", + "{{adminUserId}}", + "servers", + "active-metadata-store", + "access-services" + ] + }, + "description": "Turn on a specific registered Open Metadata Access Services (OMAS).\n\nChange the value of the {{access-service}} variable in the environment to be the URL version of the name. Typically this is done by taking the access service name, dropping \"OMAS\", change to lower-case and link two words with a dash \"-\". For example, Asset Owner OMAS, would have a url name of asset-owner." + }, + "response": [] + }, + { + "name": "Get active-metadata-store's configuration document", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseURL}}/open-metadata/admin-services/users/{{adminUserId}}/servers/active-metadata-store/configuration", + "host": [ + "{{baseURL}}" + ], + "path": [ + "open-metadata", + "admin-services", + "users", + "{{adminUserId}}", + "servers", + "active-metadata-store", + "configuration" + ] + }, + "description": "Retrieve the configuration document for the named server." + }, + "response": [] + } + ], + "description": "This folder contains the commands to configure the Metadata Access Store called active-metadata-store. This version of the server is configured with event support that relies on Apache Kafka." + }, + { + "name": "Configure integration-daemon server", + "item": [ + { + "name": "Set local server user Id", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseURL}}/open-metadata/admin-services/users/{{adminUserId}}/servers/integration-daemon/server-user-id?id=intgdaemonnpa", + "host": [ + "{{baseURL}}" + ], + "path": [ + "open-metadata", + "admin-services", + "users", + "{{adminUserId}}", + "servers", + "integration-daemon", + "server-user-id" + ], + "query": [ + { + "key": "id", + "value": "intgdaemonnpa" + } + ] + }, + "description": "Set up the user Id that this server should use on open metadata requests when it is processing events (and consequently there is no end user id to use)." + }, + "response": [] + }, + { + "name": "Configure the Files Integrator OMIS", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\n \"class\": \"IntegrationServiceRequestBody\",\n \"omagserverPlatformRootURL\": \"{{baseURL}}\",\n \"omagserverName\": \"active-metadata-store\",\n \"integrationConnectorConfigs\": [\n {\n \"class\": \"IntegrationConnectorConfig\",\n \"connectorName\": \"FilesCataloguer\",\n \"connectorUserId\": \"filecatgnpa\",\n \"connection\": {\n \"class\": \"Connection\",\n \"connectorType\": {\n \"class\": \"ConnectorType\",\n \"connectorProviderClassName\": \"org.odpi.openmetadata.adapters.connectors.integration.basicfiles.DataFilesMonitorIntegrationProvider\"\n },\n \"endpoint\": {\n \"class\": \"Endpoint\",\n \"address\": \"../opt/sample-data/data-files\"\n }\n },\n \"metadataSourceQualifiedName\": \"FileSystem:sample-files\",\n \"refreshTimeInterval\": \"15\",\n \"usesBlockingCalls\": \"false\",\n \"permittedSynchronization\": \"FROM_THIRD_PARTY\"\n }\n ]\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{baseURL}}/open-metadata/admin-services/users/{{adminUserId}}/servers/integration-daemon/integration-services/files-integrator", + "host": [ + "{{baseURL}}" + ], + "path": [ + "open-metadata", + "admin-services", + "users", + "{{adminUserId}}", + "servers", + "integration-daemon", + "integration-services", + "files-integrator" + ] + }, + "description": "Add details of the metadata server to call and the connectors to run." + }, + "response": [] + }, + { + "name": "Get integration-daemon's configuration document", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseURL}}/open-metadata/admin-services/users/{{adminUserId}}/servers/integration-daemon/configuration", + "host": [ + "{{baseURL}}" + ], + "path": [ + "open-metadata", + "admin-services", + "users", + "{{adminUserId}}", + "servers", + "integration-daemon", + "configuration" + ] + }, + "description": "Retrieve the configuration document for the named server." + }, + "response": [] + } + ], + "description": "This folder describes how to set up the nanny server. This is an integration daemon and runs the nanny connectors." + }, + { + "name": "Start Servers", + "item": [ + { + "name": "Start simple-metadata-store server - using stored configuration", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseURL}}/open-metadata/platform-services/users/{{adminUserId}}/server-platform/servers/simple-metadata-store/instance", + "host": [ + "{{baseURL}}" + ], + "path": [ + "open-metadata", + "platform-services", + "users", + "{{adminUserId}}", + "server-platform", + "servers", + "simple-metadata-store", + "instance" + ] + }, + "description": "Activate a server on the OMAG Server Platform. Use the configuration document found in the configuration document store." + }, + "response": [] + }, + { + "name": "Start active-metadata-store server - using stored configuration", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseURL}}/open-metadata/platform-services/users/{{adminUserId}}/server-platform/servers/active-metadata-store/instance", + "host": [ + "{{baseURL}}" + ], + "path": [ + "open-metadata", + "platform-services", + "users", + "{{adminUserId}}", + "server-platform", + "servers", + "active-metadata-store", + "instance" + ] + }, + "description": "Activate a server on the OMAG Server Platform. Use the configuration document found in the configuration document store." + }, + "response": [] + }, + { + "name": "Start integration-daemon server - using stored configuration", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "{{baseURL}}/open-metadata/platform-services/users/{{adminUserId}}/server-platform/servers/integration-daemon/instance", + "host": [ + "{{baseURL}}" + ], + "path": [ + "open-metadata", + "platform-services", + "users", + "{{adminUserId}}", + "server-platform", + "servers", + "integration-daemon", + "instance" + ] + }, + "description": "Activate a server on the OMAG Server Platform. Use the configuration document found in the configuration document store." + }, + "response": [] + }, + { + "name": "Get integration-daemon status", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseURL}}/servers/integration-daemon/open-metadata/integration-daemon/users/{{user}}/status", + "host": [ + "{{baseURL}}" + ], + "path": [ + "servers", + "integration-daemon", + "open-metadata", + "integration-daemon", + "users", + "{{user}}", + "status" + ] + }, + "description": "Retrieves the status of the connectors running in the Integration Daemon" + }, + "response": [] + } + ], + "description": "This folder contains the requests to start up the sample servers." + } + ] +} \ No newline at end of file diff --git a/open-metadata-resources/open-metadata-deployment/docker/platform/Dockerfile b/open-metadata-resources/open-metadata-deployment/docker/platform/Dockerfile index aa2c36ab22f..408215a611e 100644 --- a/open-metadata-resources/open-metadata-deployment/docker/platform/Dockerfile +++ b/open-metadata-resources/open-metadata-deployment/docker/platform/Dockerfile @@ -43,18 +43,21 @@ LABEL org.opencontainers.image.vendor = "ODPi" \ org.opencontainers.image.ext.docker.debug = "docker exec -it $CONTAINER /bin/sh" \ org.opencontainers.image.ext.docker.params = "JAVA_DEBUG=set to true to enable JVM debugging" +# Copy the files to package into the container +COPY assembly/platform /deployments + # Expose port 9443 (default) for client access, and allow for 5005 being used for remote java debug EXPOSE 9443 5005 # By default, we run the OMAG Server Platform -ENV JAVA_APP_JAR=platform/omag-server-platform-${version}.jar +ENV JAVA_APP_JAR=omag-server-platform-${version}.jar # This is used with regular class loader, ie any client code etc -# ENV JAVA_LIBDIR=/deployment/lib +# ENV JAVA_LIBDIR=/deployments/lib # This is used when running a spring app such as the OMAG Server PLatform (default) # Extend this accordingly via the environment, or within a new Dockerfile as needed -ENV LOADER_PATH=/deployment/platform/lib:/deployment/platform/extra +ENV LOADER_PATH=/deployments/lib:/deployments/extra # Joloka will be removed shortly. For now disable to avoid errors # ENV AB_JOLOKIA_OFF=true diff --git a/open-metadata-resources/open-metadata-deployment/sample-configs/README.md b/open-metadata-resources/open-metadata-deployment/sample-configs/README.md new file mode 100644 index 00000000000..9ad124f5a5f --- /dev/null +++ b/open-metadata-resources/open-metadata-deployment/sample-configs/README.md @@ -0,0 +1,45 @@ + + + +# Sample server configurations + +This directory contains the server configurations for three [OMAG Servers](https://egeria-project.org/concepts/omag-server/): + +* **simple-metadata-store** is a [Metadata Access Store](https://egeria-project.org/concepts/metadata-access-store/) + that provides REST APIs for retrieving and maintaining open metadata. + This server is set up to use a repository that keeps its metadata in memory. + This means that each time the server is restarted, it starts with an empty repository. + +The next two servers use Apache Kafka to send and receive events. +The Apache Kafka broker should be listening at `localhost:9092`. + +* **active-metadata-store** is a [Metadata Access Store](https://egeria-project.org/concepts/metadata-access-store/) + that supports both REST APIs for retrieving and maintaining open metadata along with + event notifications each time there is change in the metadata. + +* **integration-daemon** is an [Integration Daemon](https://egeria-project.org/concepts/integration-daemon/) + that catalogs files stored on the filesystem. It is set up to catalog any file located in `sample-data/data-files` + under the `platform` directory. + +To use these configurations, copy their directories under the `platform/data` directory. Then copy `opt/sample-data` to `platform/sample-data`. + +```bash +mkdir ../../platform/data/servers +cp -r * ../../platform/data/servers +cp -r ../sample-data ../../platform +``` +When the OMAG Server Platform is running at `https://localhost:9443`, issue the following curl command, +replacing `{{server}}` with the name of the server to start. Message appear from the platform to indicate the +status of the server. + +```bash +curl --location --request POST 'https://localhost:9443/open-metadata/platform-services/users/garygeeke/server-platform/servers/{{server}}/instance' \ +--data '' +``` + + + + +---- +License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), +Copyright Contributors to the Egeria project. \ No newline at end of file diff --git a/open-metadata-resources/open-metadata-deployment/sample-configs/active-metadata-store/config/active-metadata-store.config b/open-metadata-resources/open-metadata-deployment/sample-configs/active-metadata-store/config/active-metadata-store.config new file mode 100644 index 00000000000..04844148b59 --- /dev/null +++ b/open-metadata-resources/open-metadata-deployment/sample-configs/active-metadata-store/config/active-metadata-store.config @@ -0,0 +1 @@ +{"class":"OMAGServerConfig","versionId":"V2.0","localServerId":"384f4bad-aa5f-42cc-a3a8-d8ea2c43a643","localServerName":"active-metadata-store","localServerURL":"https://localhost:9443","localServerUserId":"activemdsnpa","maxPageSize":1000,"eventBusConfig":{"class":"EventBusConfig","topicURLRoot":"egeria.omag","configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"consumer":{"bootstrap.servers":"localhost:9092"}},"additionalProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"consumer":{"bootstrap.servers":"localhost:9092"}}},"accessServicesConfig":[{"class":"AccessServiceConfig","accessServiceId":210,"accessServiceDevelopmentStatus":"TECHNICAL_PREVIEW","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.datamanager.admin.DataManagerAdmin","accessServiceName":"Data Manager","accessServiceFullName":"Data Manager OMAS","accessServiceURLMarker":"data-manager","accessServiceDescription":"Capture changes to the data stores and data set managed by a data manager such as a database server, content manager or file system.","accessServiceWiki":"https://egeria-project.org/services/omas/data-manager/overview/","accessServiceOperationalStatus":"ENABLED","accessServiceOutTopic":{"class":"Connection","headerVersion":0,"displayName":"Kafka Event Bus Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"3851e8d0-e343-400c-82cb-3918fed81da6","qualifiedName":"Egeria:OpenMetadataTopicConnector:Kafka","displayName":"Apache Kafka Open Metadata Topic Connector","description":"Apache Kafka Open Metadata Topic Connector supports string based events over an Apache Kafka event bus.","supportedAssetTypeName":"KafkaTopic","expectedDataFormat":"PLAINTEXT","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.kafka.KafkaOpenMetadataTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.Connector","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopic","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent"],"recognizedConfigurationProperties":["producer","consumer","local.server.id","sleepTime","eventDirection"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"egeria.omag.server.active-metadata-store.omas.datamanager.outTopic"},"configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"local.server.id":"384f4bad-aa5f-42cc-a3a8-d8ea2c43a643","consumer":{"bootstrap.servers":"localhost:9092"}}}},{"class":"AccessServiceConfig","accessServiceId":226,"accessServiceDevelopmentStatus":"TECHNICAL_PREVIEW","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.subjectarea.admin.SubjectAreaAdmin","accessServiceName":"Subject Area","accessServiceFullName":"Subject Area OMAS","accessServiceURLMarker":"subject-area","accessServiceDescription":"Document knowledge about a subject area","accessServiceWiki":"https://egeria-project.org/services/omas/subject-area/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":218,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.glossaryview.server.admin.GlossaryViewAdmin","accessServiceName":"Glossary View","accessServiceFullName":"Glossary View OMAS","accessServiceURLMarker":"glossary-view","accessServiceDescription":"Support glossary terms visualization","accessServiceWiki":"https://egeria-project.org/services/omas/glossary-view/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":213,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.designmodel.admin.DesignModelAdmin","accessServiceName":"Design Model","accessServiceFullName":"Design Model OMAS","accessServiceURLMarker":"design-model","accessServiceDescription":"Exchange design model content with tools and standard packages","accessServiceWiki":"https://egeria-project.org/services/omas/design-model/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":223,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.securityofficer.server.admin.SecurityOfficerAdmin","accessServiceName":"Security Officer","accessServiceFullName":"Security Officer OMAS","accessServiceURLMarker":"security-officer","accessServiceDescription":"Set up rules and security tags to protect data","accessServiceWiki":"https://egeria-project.org/services/omas/security-officer/overview/","accessServiceOperationalStatus":"ENABLED","accessServiceOutTopic":{"class":"Connection","headerVersion":0,"displayName":"Kafka Event Bus Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"3851e8d0-e343-400c-82cb-3918fed81da6","qualifiedName":"Egeria:OpenMetadataTopicConnector:Kafka","displayName":"Apache Kafka Open Metadata Topic Connector","description":"Apache Kafka Open Metadata Topic Connector supports string based events over an Apache Kafka event bus.","supportedAssetTypeName":"KafkaTopic","expectedDataFormat":"PLAINTEXT","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.kafka.KafkaOpenMetadataTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.Connector","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopic","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent"],"recognizedConfigurationProperties":["producer","consumer","local.server.id","sleepTime","eventDirection"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"egeria.omag.server.active-metadata-store.omas.securityofficer.outTopic"},"configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"local.server.id":"384f4bad-aa5f-42cc-a3a8-d8ea2c43a643","consumer":{"bootstrap.servers":"localhost:9092"}}}},{"class":"AccessServiceConfig","accessServiceId":204,"accessServiceDevelopmentStatus":"TECHNICAL_PREVIEW","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.assetmanager.admin.AssetManagerAdmin","accessServiceName":"Asset Manager","accessServiceFullName":"Asset Manager OMAS","accessServiceURLMarker":"asset-manager","accessServiceDescription":"Manage metadata from a third party asset manager","accessServiceWiki":"https://egeria-project.org/services/omas/asset-manager/overview/","accessServiceOperationalStatus":"ENABLED","accessServiceOutTopic":{"class":"Connection","headerVersion":0,"displayName":"Kafka Event Bus Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"3851e8d0-e343-400c-82cb-3918fed81da6","qualifiedName":"Egeria:OpenMetadataTopicConnector:Kafka","displayName":"Apache Kafka Open Metadata Topic Connector","description":"Apache Kafka Open Metadata Topic Connector supports string based events over an Apache Kafka event bus.","supportedAssetTypeName":"KafkaTopic","expectedDataFormat":"PLAINTEXT","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.kafka.KafkaOpenMetadataTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.Connector","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopic","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent"],"recognizedConfigurationProperties":["producer","consumer","local.server.id","sleepTime","eventDirection"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"egeria.omag.server.active-metadata-store.omas.assetmanager.outTopic"},"configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"local.server.id":"384f4bad-aa5f-42cc-a3a8-d8ea2c43a643","consumer":{"bootstrap.servers":"localhost:9092"}}}},{"class":"AccessServiceConfig","accessServiceId":208,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.itinfrastructure.admin.ITInfrastructureAdmin","accessServiceName":"IT Infrastructure","accessServiceFullName":"IT Infrastructure OMAS","accessServiceURLMarker":"it-infrastructure","accessServiceDescription":"Manage information about the deployed IT infrastructure","accessServiceWiki":"https://egeria-project.org/services/omas/it-infrastructure/overview/","accessServiceOperationalStatus":"ENABLED","accessServiceOutTopic":{"class":"Connection","headerVersion":0,"displayName":"Kafka Event Bus Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"3851e8d0-e343-400c-82cb-3918fed81da6","qualifiedName":"Egeria:OpenMetadataTopicConnector:Kafka","displayName":"Apache Kafka Open Metadata Topic Connector","description":"Apache Kafka Open Metadata Topic Connector supports string based events over an Apache Kafka event bus.","supportedAssetTypeName":"KafkaTopic","expectedDataFormat":"PLAINTEXT","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.kafka.KafkaOpenMetadataTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.Connector","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopic","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent"],"recognizedConfigurationProperties":["producer","consumer","local.server.id","sleepTime","eventDirection"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"egeria.omag.server.active-metadata-store.omas.itinfrastructure.outTopic"},"configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"local.server.id":"384f4bad-aa5f-42cc-a3a8-d8ea2c43a643","consumer":{"bootstrap.servers":"localhost:9092"}}}},{"class":"AccessServiceConfig","accessServiceId":212,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.datascience.admin.DataScienceAdmin","accessServiceName":"Data Science","accessServiceFullName":"Data Science OMAS","accessServiceURLMarker":"data-science","accessServiceDescription":"Create and manage data science definitions and models","accessServiceWiki":"https://egeria-project.org/services/omas/data-science/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":207,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.communityprofile.admin.CommunityProfileAdmin","accessServiceName":"Community Profile","accessServiceFullName":"Community Profile OMAS","accessServiceURLMarker":"community-profile","accessServiceDescription":"Define personal profile and collaborate","accessServiceWiki":"https://egeria-project.org/services/omas/community-profile/overview/","accessServiceOperationalStatus":"ENABLED","accessServiceOutTopic":{"class":"Connection","headerVersion":0,"displayName":"Kafka Event Bus Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"3851e8d0-e343-400c-82cb-3918fed81da6","qualifiedName":"Egeria:OpenMetadataTopicConnector:Kafka","displayName":"Apache Kafka Open Metadata Topic Connector","description":"Apache Kafka Open Metadata Topic Connector supports string based events over an Apache Kafka event bus.","supportedAssetTypeName":"KafkaTopic","expectedDataFormat":"PLAINTEXT","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.kafka.KafkaOpenMetadataTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.Connector","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopic","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent"],"recognizedConfigurationProperties":["producer","consumer","local.server.id","sleepTime","eventDirection"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"egeria.omag.server.active-metadata-store.omas.communityprofile.outTopic"},"configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"local.server.id":"384f4bad-aa5f-42cc-a3a8-d8ea2c43a643","consumer":{"bootstrap.servers":"localhost:9092"}}}},{"class":"AccessServiceConfig","accessServiceId":209,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.dataengine.server.admin.DataEngineAdmin","accessServiceName":"Data Engine","accessServiceFullName":"Data Engine OMAS","accessServiceURLMarker":"data-engine","accessServiceDescription":"Exchange process models and lineage with a data engine","accessServiceWiki":"https://egeria-project.org/services/omas/data-engine/overview/","accessServiceOperationalStatus":"ENABLED","accessServiceInTopic":{"class":"Connection","headerVersion":0,"displayName":"Kafka Event Bus Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"3851e8d0-e343-400c-82cb-3918fed81da6","qualifiedName":"Egeria:OpenMetadataTopicConnector:Kafka","displayName":"Apache Kafka Open Metadata Topic Connector","description":"Apache Kafka Open Metadata Topic Connector supports string based events over an Apache Kafka event bus.","supportedAssetTypeName":"KafkaTopic","expectedDataFormat":"PLAINTEXT","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.kafka.KafkaOpenMetadataTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.Connector","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopic","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent"],"recognizedConfigurationProperties":["producer","consumer","local.server.id","sleepTime","eventDirection"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"egeria.omag.server.active-metadata-store.omas.dataengine.inTopic"},"configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"local.server.id":"384f4bad-aa5f-42cc-a3a8-d8ea2c43a643","consumer":{"bootstrap.servers":"localhost:9092"}}}},{"class":"AccessServiceConfig","accessServiceId":217,"accessServiceDevelopmentStatus":"TECHNICAL_PREVIEW","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.discoveryengine.admin.DiscoveryEngineAdmin","accessServiceName":"Discovery Engine","accessServiceFullName":"Discovery Engine OMAS","accessServiceURLMarker":"discovery-engine","accessServiceDescription":"Support for automated metadata discovery engines","accessServiceWiki":"https://egeria-project.org/services/omas/discovery-engine/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":215,"accessServiceDevelopmentStatus":"TECHNICAL_PREVIEW","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.digitalarchitecture.admin.DigitalArchitectureAdmin","accessServiceName":"Digital Architecture","accessServiceFullName":"Digital Architecture OMAS","accessServiceURLMarker":"digital-architecture","accessServiceDescription":"Design of the digital services for an organization","accessServiceWiki":"https://egeria-project.org/services/omas/digital-architecture/overview/","accessServiceOperationalStatus":"ENABLED","accessServiceOutTopic":{"class":"Connection","headerVersion":0,"displayName":"Kafka Event Bus Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"3851e8d0-e343-400c-82cb-3918fed81da6","qualifiedName":"Egeria:OpenMetadataTopicConnector:Kafka","displayName":"Apache Kafka Open Metadata Topic Connector","description":"Apache Kafka Open Metadata Topic Connector supports string based events over an Apache Kafka event bus.","supportedAssetTypeName":"KafkaTopic","expectedDataFormat":"PLAINTEXT","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.kafka.KafkaOpenMetadataTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.Connector","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopic","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent"],"recognizedConfigurationProperties":["producer","consumer","local.server.id","sleepTime","eventDirection"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"egeria.omag.server.active-metadata-store.omas.digitalarchitecture.outTopic"},"configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"local.server.id":"384f4bad-aa5f-42cc-a3a8-d8ea2c43a643","consumer":{"bootstrap.servers":"localhost:9092"}}}},{"class":"AccessServiceConfig","accessServiceId":205,"accessServiceDevelopmentStatus":"STABLE","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.assetowner.admin.AssetOwnerAdmin","accessServiceName":"Asset Owner","accessServiceFullName":"Asset Owner OMAS","accessServiceURLMarker":"asset-owner","accessServiceDescription":"Manage an asset","accessServiceWiki":"https://egeria-project.org/services/omas/asset-owner/overview/","accessServiceOperationalStatus":"ENABLED","accessServiceOutTopic":{"class":"Connection","headerVersion":0,"displayName":"Kafka Event Bus Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"3851e8d0-e343-400c-82cb-3918fed81da6","qualifiedName":"Egeria:OpenMetadataTopicConnector:Kafka","displayName":"Apache Kafka Open Metadata Topic Connector","description":"Apache Kafka Open Metadata Topic Connector supports string based events over an Apache Kafka event bus.","supportedAssetTypeName":"KafkaTopic","expectedDataFormat":"PLAINTEXT","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.kafka.KafkaOpenMetadataTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.Connector","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopic","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent"],"recognizedConfigurationProperties":["producer","consumer","local.server.id","sleepTime","eventDirection"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"egeria.omag.server.active-metadata-store.omas.assetowner.outTopic"},"configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"local.server.id":"384f4bad-aa5f-42cc-a3a8-d8ea2c43a643","consumer":{"bootstrap.servers":"localhost:9092"}}}},{"class":"AccessServiceConfig","accessServiceId":225,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.stewardshipaction.admin.StewardshipActionAdmin","accessServiceName":"Stewardship Action","accessServiceFullName":"Stewardship Action OMAS","accessServiceURLMarker":"stewardship-action","accessServiceDescription":"Manage exceptions and actions from open governance","accessServiceWiki":"https://egeria-project.org/services/omas/stewardship-action/overview/","accessServiceOperationalStatus":"ENABLED","accessServiceOutTopic":{"class":"Connection","headerVersion":0,"displayName":"Kafka Event Bus Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"3851e8d0-e343-400c-82cb-3918fed81da6","qualifiedName":"Egeria:OpenMetadataTopicConnector:Kafka","displayName":"Apache Kafka Open Metadata Topic Connector","description":"Apache Kafka Open Metadata Topic Connector supports string based events over an Apache Kafka event bus.","supportedAssetTypeName":"KafkaTopic","expectedDataFormat":"PLAINTEXT","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.kafka.KafkaOpenMetadataTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.Connector","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopic","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent"],"recognizedConfigurationProperties":["producer","consumer","local.server.id","sleepTime","eventDirection"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"egeria.omag.server.active-metadata-store.omas.stewardshipaction.outTopic"},"configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"local.server.id":"384f4bad-aa5f-42cc-a3a8-d8ea2c43a643","consumer":{"bootstrap.servers":"localhost:9092"}}}},{"class":"AccessServiceConfig","accessServiceId":220,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.governanceprogram.admin.GovernanceProgramAdmin","accessServiceName":"Governance Program","accessServiceFullName":"Governance Program OMAS","accessServiceURLMarker":"governance-program","accessServiceDescription":"Manage the governance program","accessServiceWiki":"https://egeria-project.org/services/omas/governance-program/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":216,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.digitalservice.admin.DigitalServiceAdmin","accessServiceName":"Digital Service","accessServiceFullName":"Digital Service OMAS","accessServiceURLMarker":"digital-service","accessServiceDescription":"Manage a digital service through its lifecycle","accessServiceWiki":"https://egeria-project.org/services/omas/digital-service/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":203,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.assetlineage.admin.AssetLineageAdmin","accessServiceName":"Asset Lineage","accessServiceFullName":"Asset Lineage OMAS","accessServiceURLMarker":"asset-lineage","accessServiceDescription":"Store asset lineage","accessServiceWiki":"https://egeria-project.org/services/omas/asset-lineage/overview/","accessServiceOperationalStatus":"ENABLED","accessServiceOutTopic":{"class":"Connection","headerVersion":0,"displayName":"Kafka Event Bus Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"3851e8d0-e343-400c-82cb-3918fed81da6","qualifiedName":"Egeria:OpenMetadataTopicConnector:Kafka","displayName":"Apache Kafka Open Metadata Topic Connector","description":"Apache Kafka Open Metadata Topic Connector supports string based events over an Apache Kafka event bus.","supportedAssetTypeName":"KafkaTopic","expectedDataFormat":"PLAINTEXT","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.kafka.KafkaOpenMetadataTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.Connector","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopic","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent"],"recognizedConfigurationProperties":["producer","consumer","local.server.id","sleepTime","eventDirection"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"egeria.omag.server.active-metadata-store.omas.assetlineage.outTopic"},"configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"local.server.id":"384f4bad-aa5f-42cc-a3a8-d8ea2c43a643","consumer":{"bootstrap.servers":"localhost:9092"}}}},{"class":"AccessServiceConfig","accessServiceId":201,"accessServiceDevelopmentStatus":"STABLE","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.assetconsumer.admin.AssetConsumerAdmin","accessServiceName":"Asset Consumer","accessServiceFullName":"Asset Consumer OMAS","accessServiceURLMarker":"asset-consumer","accessServiceDescription":"Access assets through connectors","accessServiceWiki":"https://egeria-project.org/services/omas/asset-consumer/overview/","accessServiceOperationalStatus":"ENABLED","accessServiceOutTopic":{"class":"Connection","headerVersion":0,"displayName":"Kafka Event Bus Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"3851e8d0-e343-400c-82cb-3918fed81da6","qualifiedName":"Egeria:OpenMetadataTopicConnector:Kafka","displayName":"Apache Kafka Open Metadata Topic Connector","description":"Apache Kafka Open Metadata Topic Connector supports string based events over an Apache Kafka event bus.","supportedAssetTypeName":"KafkaTopic","expectedDataFormat":"PLAINTEXT","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.kafka.KafkaOpenMetadataTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.Connector","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopic","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent"],"recognizedConfigurationProperties":["producer","consumer","local.server.id","sleepTime","eventDirection"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"egeria.omag.server.active-metadata-store.omas.assetconsumer.outTopic"},"configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"local.server.id":"384f4bad-aa5f-42cc-a3a8-d8ea2c43a643","consumer":{"bootstrap.servers":"localhost:9092"}}}},{"class":"AccessServiceConfig","accessServiceId":200,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.assetcatalog.admin.AssetCatalogAdmin","accessServiceName":"Asset Catalog","accessServiceFullName":"Asset Catalog OMAS","accessServiceURLMarker":"asset-catalog","accessServiceDescription":"Search and understand your assets","accessServiceWiki":"https://egeria-project.org/services/omas/asset-catalog/overview/","accessServiceOperationalStatus":"ENABLED","accessServiceOutTopic":{"class":"Connection","headerVersion":0,"displayName":"Kafka Event Bus Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"3851e8d0-e343-400c-82cb-3918fed81da6","qualifiedName":"Egeria:OpenMetadataTopicConnector:Kafka","displayName":"Apache Kafka Open Metadata Topic Connector","description":"Apache Kafka Open Metadata Topic Connector supports string based events over an Apache Kafka event bus.","supportedAssetTypeName":"KafkaTopic","expectedDataFormat":"PLAINTEXT","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.kafka.KafkaOpenMetadataTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.Connector","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopic","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent"],"recognizedConfigurationProperties":["producer","consumer","local.server.id","sleepTime","eventDirection"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"egeria.omag.server.active-metadata-store.omas.assetcatalog.outTopic"},"configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"local.server.id":"384f4bad-aa5f-42cc-a3a8-d8ea2c43a643","consumer":{"bootstrap.servers":"localhost:9092"}}}},{"class":"AccessServiceConfig","accessServiceId":214,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.devops.admin.DevOpsAdmin","accessServiceName":"DevOps","accessServiceFullName":"DevOps OMAS","accessServiceURLMarker":"devops","accessServiceDescription":"Manage a DevOps pipeline","accessServiceWiki":"https://egeria-project.org/services/omas/dev-ops/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":224,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.softwaredeveloper.admin.SoftwareDeveloperAdmin","accessServiceName":"Software Developer","accessServiceFullName":"Software Developer OMAS","accessServiceURLMarker":"software-developer","accessServiceDescription":"Interact with software development tools","accessServiceWiki":"https://egeria-project.org/services/omas/software-developer/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":221,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.projectmanagement.admin.ProjectManagementAdmin","accessServiceName":"Project Management","accessServiceFullName":"Project Management OMAS","accessServiceURLMarker":"project-management","accessServiceDescription":"Manage governance related projects","accessServiceWiki":"https://egeria-project.org/services/omas/project-management/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":219,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.governanceengine.admin.GovernanceEngineAdmin","accessServiceName":"Governance Engine","accessServiceFullName":"Governance Engine OMAS","accessServiceURLMarker":"governance-engine","accessServiceDescription":"Set up an operational governance engine","accessServiceWiki":"https://egeria-project.org/services/omas/governance-engine/overview/","accessServiceOperationalStatus":"ENABLED","accessServiceOutTopic":{"class":"Connection","headerVersion":0,"displayName":"Kafka Event Bus Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"3851e8d0-e343-400c-82cb-3918fed81da6","qualifiedName":"Egeria:OpenMetadataTopicConnector:Kafka","displayName":"Apache Kafka Open Metadata Topic Connector","description":"Apache Kafka Open Metadata Topic Connector supports string based events over an Apache Kafka event bus.","supportedAssetTypeName":"KafkaTopic","expectedDataFormat":"PLAINTEXT","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.kafka.KafkaOpenMetadataTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.Connector","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopic","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent"],"recognizedConfigurationProperties":["producer","consumer","local.server.id","sleepTime","eventDirection"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"egeria.omag.server.active-metadata-store.omas.governanceengine.outTopic"},"configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"local.server.id":"384f4bad-aa5f-42cc-a3a8-d8ea2c43a643","consumer":{"bootstrap.servers":"localhost:9092"}}}},{"class":"AccessServiceConfig","accessServiceId":211,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.dataprivacy.admin.DataPrivacyAdmin","accessServiceName":"Data Privacy","accessServiceFullName":"Data Privacy OMAS","accessServiceURLMarker":"data-privacy","accessServiceDescription":"Manage governance of privacy","accessServiceWiki":"https://egeria-project.org/services/omas/data-privacy/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":222,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.securitymanager.admin.SecurityManagerAdmin","accessServiceName":"Security Manager","accessServiceFullName":"Security Manager OMAS","accessServiceURLMarker":"security-manager","accessServiceDescription":"Manages exchange of metadata with a security service","accessServiceWiki":"https://egeria-project.org/services/omas/security-manager/overview/","accessServiceOperationalStatus":"ENABLED","accessServiceOutTopic":{"class":"Connection","headerVersion":0,"displayName":"Kafka Event Bus Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"3851e8d0-e343-400c-82cb-3918fed81da6","qualifiedName":"Egeria:OpenMetadataTopicConnector:Kafka","displayName":"Apache Kafka Open Metadata Topic Connector","description":"Apache Kafka Open Metadata Topic Connector supports string based events over an Apache Kafka event bus.","supportedAssetTypeName":"KafkaTopic","expectedDataFormat":"PLAINTEXT","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.kafka.KafkaOpenMetadataTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.Connector","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopic","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent"],"recognizedConfigurationProperties":["producer","consumer","local.server.id","sleepTime","eventDirection"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"egeria.omag.server.active-metadata-store.omas.securitymanager.outTopic"},"configurationProperties":{"producer":{"bootstrap.servers":"localhost:9092"},"local.server.id":"384f4bad-aa5f-42cc-a3a8-d8ea2c43a643","consumer":{"bootstrap.servers":"localhost:9092"}}}}],"repositoryServicesConfig":{"class":"RepositoryServicesConfig","auditLogConnections":[{"class":"Connection","headerVersion":0,"qualifiedName":"Console- default","displayName":"Console","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"4afac741-3dcc-4c60-a4ca-a6dede994e3f","qualifiedName":"Egeria:AuditLogDestinationConnector:Console","displayName":"Console Audit Log Destination Connector","description":"Connector supports logging of audit log messages to stdout.","connectorProviderClassName":"org.odpi.openmetadata.adapters.repositoryservices.auditlogstore.console.ConsoleAuditLogStoreProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.SecureConnectorExtension","org.odpi.openmetadata.repositoryservices.connectors.stores.auditlogstore.OMRSAuditLogStore"],"recognizedConfigurationProperties":["supportedSeverities"]},"configurationProperties":{"supportedSeverities":["Unknown","Information","Event","Decision","Action","Error","Exception","Security","Startup","Shutdown","Asset","Types","Cohort"]}}],"localRepositoryConfig":{"class":"LocalRepositoryConfig","metadataCollectionId":"e2254dbc-84f6-4937-97af-bda92fd5a1f4","localRepositoryMode":"OPEN_METADATA_NATIVE","localRepositoryLocalConnection":{"class":"Connection","headerVersion":0,"displayName":"In Memory Local Repository Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"65cc9091-757f-4bcd-b937-426160be8bc2","qualifiedName":"Egeria:OMRSRepositoryConnector:InMemory","displayName":"In Memory OMRS Repository Connector","description":"Native open metadata repository connector that maps open metadata calls to a set of in memory hash maps - demo use only.","connectorProviderClassName":"org.odpi.openmetadata.adapters.repositoryservices.inmemory.repositoryconnector.InMemoryOMRSRepositoryConnectorProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.SecureConnectorExtension","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent","org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.repositoryconnector.OMRSMetadataCollectionManager"]}},"localRepositoryRemoteConnection":{"class":"Connection","headerVersion":0,"displayName":"Local Repository Remote Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"75ea56d1-656c-43fb-bc0c-9d35c5553b9e","qualifiedName":"Egeria:OMRSRepositoryConnector:CohortMemberClient:REST","displayName":"REST Cohort Member Client Connector","description":"Cohort member client connector that provides access to open metadata located in a remote repository via REST calls.","connectorProviderClassName":"org.odpi.openmetadata.adapters.repositoryservices.rest.repositoryconnector.OMRSRESTRepositoryConnectorProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.SecureConnectorExtension","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent","org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.repositoryconnector.OMRSMetadataCollectionManager"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"https://localhost:9443/servers/active-metadata-store"}},"eventsToSaveRule":"ALL","eventsToSendRule":"ALL"},"enterpriseAccessConfig":{"class":"EnterpriseAccessConfig","enterpriseMetadataCollectionName":"active-metadata-store Enterprise Metadata Collection","enterpriseMetadataCollectionId":"4f5d7ddf-baaf-46e5-a3eb-623da295844a","enterpriseOMRSTopicConnection":{"class":"VirtualConnection","headerVersion":0,"displayName":"Enterprise OMRS Topic Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"qualifiedName":"org.odpi.openmetadata.repositoryservices.connectors.omrstopic.OMRSTopicProvider","displayName":"OMRS Topic Connector","description":"Provides access to the OMRS Topic that is used to exchange events between members of a cohort, or to notify Open Metadata Access Services (OMASs) of changes to metadata in the enterprise.","connectorProviderClassName":"org.odpi.openmetadata.repositoryservices.connectors.omrstopic.OMRSTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.SecureConnectorExtension","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopicListener","org.odpi.openmetadata.frameworks.connectors.VirtualConnectorExtension","org.odpi.openmetadata.repositoryservices.connectors.omrstopic.OMRSTopic"]},"embeddedConnections":[{"class":"EmbeddedConnection","headerVersion":0,"position":0,"displayName":"Enterprise OMRS Events","embeddedConnection":{"class":"Connection","headerVersion":0,"displayName":"Kafka Event Bus Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"ed8e682b-2fec-4403-b551-02f8c46322ef","qualifiedName":"Egeria:OpenMetadataTopicConnector:InMemory","displayName":"In Memory Open Metadata Topic Connector","description":"In Memory Open Metadata Topic Connector supports string based events over an in memory event bus.","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.inmemory.InMemoryOpenMetadataTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.SecureConnectorExtension","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent","java.lang.Runnable","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopic"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"active-metadata-store.openmetadata.repositoryservices.enterprise.active-metadata-store.OMRSTopic"},"configurationProperties":{"local.server.id":"384f4bad-aa5f-42cc-a3a8-d8ea2c43a643","eventDirection":"inOut"}}}]},"enterpriseOMRSTopicProtocolVersion":"V1"}},"auditTrail":["Mon Aug 28 14:35:42 BST 2023 garygeeke updated configuration for local server's userId to activemdsnpa.","Mon Aug 28 14:35:47 BST 2023 garygeeke updated configuration for default event bus.","Mon Aug 28 14:35:51 BST 2023 garygeeke updated configuration for the local repository.","Mon Aug 28 14:35:57 BST 2023 garygeeke updated configuration for access services.","Mon Aug 28 14:35:57 BST 2023 garygeeke updated configuration for enterprise repository services (used by access services)."]} \ No newline at end of file diff --git a/open-metadata-resources/open-metadata-deployment/sample-configs/integration-daemon/config/integration-daemon.config b/open-metadata-resources/open-metadata-deployment/sample-configs/integration-daemon/config/integration-daemon.config new file mode 100644 index 00000000000..be774711f72 --- /dev/null +++ b/open-metadata-resources/open-metadata-deployment/sample-configs/integration-daemon/config/integration-daemon.config @@ -0,0 +1 @@ +{"class":"OMAGServerConfig","versionId":"V2.0","localServerId":"8962a04f-fcdc-41eb-b27f-980b0ef48c46","localServerName":"integration-daemon","localServerURL":"https://localhost:9443","localServerUserId":"intgdaemonnpa","maxPageSize":1000,"integrationServicesConfig":[{"class":"IntegrationServiceConfig","integrationServiceId":605,"integrationServiceDevelopmentStatus":"TECHNICAL_PREVIEW","integrationServiceContextManagerClass":"org.odpi.openmetadata.integrationservices.files.contextmanager.FilesIntegratorContextManager","integrationServiceName":"Files Integrator","integrationServiceFullName":"Files Integrator OMIS","integrationServiceURLMarker":"files-integrator","integrationServiceDescription":"Extract metadata about files stored in a file system or file manager.","integrationServiceWiki":"https://egeria-project.org/services/omis/files-integrator/overview/","integrationServicePartnerOMAS":"Data Manager OMAS","defaultPermittedSynchronization":"FROM_THIRD_PARTY","integrationServiceOperationalStatus":"ENABLED","integrationConnectorConfigs":[{"class":"IntegrationConnectorConfig","connectorId":"50e7de99-4157-419e-8f66-f2ddd009967f","connectorName":"FilesCataloguer","connectorUserId":"filecatgnpa","connection":{"class":"Connection","headerVersion":0,"connectorType":{"class":"ConnectorType","headerVersion":0,"connectorProviderClassName":"org.odpi.openmetadata.adapters.connectors.integration.basicfiles.DataFilesMonitorIntegrationProvider"},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"sample-data/data-files"}},"metadataSourceQualifiedName":"FileSystem:sample-files","refreshTimeInterval":15,"usesBlockingCalls":false,"permittedSynchronization":"FROM_THIRD_PARTY","generateIntegrationReports":false}],"omagserverName":"active-metadata-store","omagserverPlatformRootURL":"https://localhost:9443"}],"repositoryServicesConfig":{"class":"RepositoryServicesConfig","auditLogConnections":[{"class":"Connection","headerVersion":0,"qualifiedName":"Console- default","displayName":"Console","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"4afac741-3dcc-4c60-a4ca-a6dede994e3f","qualifiedName":"Egeria:AuditLogDestinationConnector:Console","displayName":"Console Audit Log Destination Connector","description":"Connector supports logging of audit log messages to stdout.","connectorProviderClassName":"org.odpi.openmetadata.adapters.repositoryservices.auditlogstore.console.ConsoleAuditLogStoreProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.SecureConnectorExtension","org.odpi.openmetadata.repositoryservices.connectors.stores.auditlogstore.OMRSAuditLogStore"],"recognizedConfigurationProperties":["supportedSeverities"]},"configurationProperties":{"supportedSeverities":["Unknown","Information","Event","Decision","Action","Error","Exception","Security","Startup","Shutdown","Asset","Types","Cohort"]}}]},"auditTrail":["Mon Aug 28 14:36:17 BST 2023 garygeeke updated configuration for local server's userId to intgdaemonnpa.","Mon Aug 28 14:36:21 BST 2023 garygeeke updated configuration for integration service files-integrator."]} \ No newline at end of file diff --git a/open-metadata-resources/open-metadata-deployment/sample-configs/simple-metadata-store/config/simple-metadata-store.config b/open-metadata-resources/open-metadata-deployment/sample-configs/simple-metadata-store/config/simple-metadata-store.config new file mode 100644 index 00000000000..61042a3762f --- /dev/null +++ b/open-metadata-resources/open-metadata-deployment/sample-configs/simple-metadata-store/config/simple-metadata-store.config @@ -0,0 +1 @@ +{"class":"OMAGServerConfig","versionId":"V2.0","localServerId":"a4e23475-7bb2-4509-973b-cbf6d95a4c56","localServerName":"simple-metadata-store","localServerURL":"https://localhost:9443","localServerUserId":"simplemdsnpa","maxPageSize":1000,"accessServicesConfig":[{"class":"AccessServiceConfig","accessServiceId":210,"accessServiceDevelopmentStatus":"TECHNICAL_PREVIEW","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.datamanager.admin.DataManagerAdmin","accessServiceName":"Data Manager","accessServiceFullName":"Data Manager OMAS","accessServiceURLMarker":"data-manager","accessServiceDescription":"Capture changes to the data stores and data set managed by a data manager such as a database server, content manager or file system.","accessServiceWiki":"https://egeria-project.org/services/omas/data-manager/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":226,"accessServiceDevelopmentStatus":"TECHNICAL_PREVIEW","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.subjectarea.admin.SubjectAreaAdmin","accessServiceName":"Subject Area","accessServiceFullName":"Subject Area OMAS","accessServiceURLMarker":"subject-area","accessServiceDescription":"Document knowledge about a subject area","accessServiceWiki":"https://egeria-project.org/services/omas/subject-area/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":218,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.glossaryview.server.admin.GlossaryViewAdmin","accessServiceName":"Glossary View","accessServiceFullName":"Glossary View OMAS","accessServiceURLMarker":"glossary-view","accessServiceDescription":"Support glossary terms visualization","accessServiceWiki":"https://egeria-project.org/services/omas/glossary-view/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":213,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.designmodel.admin.DesignModelAdmin","accessServiceName":"Design Model","accessServiceFullName":"Design Model OMAS","accessServiceURLMarker":"design-model","accessServiceDescription":"Exchange design model content with tools and standard packages","accessServiceWiki":"https://egeria-project.org/services/omas/design-model/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":223,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.securityofficer.server.admin.SecurityOfficerAdmin","accessServiceName":"Security Officer","accessServiceFullName":"Security Officer OMAS","accessServiceURLMarker":"security-officer","accessServiceDescription":"Set up rules and security tags to protect data","accessServiceWiki":"https://egeria-project.org/services/omas/security-officer/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":204,"accessServiceDevelopmentStatus":"TECHNICAL_PREVIEW","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.assetmanager.admin.AssetManagerAdmin","accessServiceName":"Asset Manager","accessServiceFullName":"Asset Manager OMAS","accessServiceURLMarker":"asset-manager","accessServiceDescription":"Manage metadata from a third party asset manager","accessServiceWiki":"https://egeria-project.org/services/omas/asset-manager/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":208,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.itinfrastructure.admin.ITInfrastructureAdmin","accessServiceName":"IT Infrastructure","accessServiceFullName":"IT Infrastructure OMAS","accessServiceURLMarker":"it-infrastructure","accessServiceDescription":"Manage information about the deployed IT infrastructure","accessServiceWiki":"https://egeria-project.org/services/omas/it-infrastructure/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":212,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.datascience.admin.DataScienceAdmin","accessServiceName":"Data Science","accessServiceFullName":"Data Science OMAS","accessServiceURLMarker":"data-science","accessServiceDescription":"Create and manage data science definitions and models","accessServiceWiki":"https://egeria-project.org/services/omas/data-science/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":207,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.communityprofile.admin.CommunityProfileAdmin","accessServiceName":"Community Profile","accessServiceFullName":"Community Profile OMAS","accessServiceURLMarker":"community-profile","accessServiceDescription":"Define personal profile and collaborate","accessServiceWiki":"https://egeria-project.org/services/omas/community-profile/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":209,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.dataengine.server.admin.DataEngineAdmin","accessServiceName":"Data Engine","accessServiceFullName":"Data Engine OMAS","accessServiceURLMarker":"data-engine","accessServiceDescription":"Exchange process models and lineage with a data engine","accessServiceWiki":"https://egeria-project.org/services/omas/data-engine/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":217,"accessServiceDevelopmentStatus":"TECHNICAL_PREVIEW","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.discoveryengine.admin.DiscoveryEngineAdmin","accessServiceName":"Discovery Engine","accessServiceFullName":"Discovery Engine OMAS","accessServiceURLMarker":"discovery-engine","accessServiceDescription":"Support for automated metadata discovery engines","accessServiceWiki":"https://egeria-project.org/services/omas/discovery-engine/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":215,"accessServiceDevelopmentStatus":"TECHNICAL_PREVIEW","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.digitalarchitecture.admin.DigitalArchitectureAdmin","accessServiceName":"Digital Architecture","accessServiceFullName":"Digital Architecture OMAS","accessServiceURLMarker":"digital-architecture","accessServiceDescription":"Design of the digital services for an organization","accessServiceWiki":"https://egeria-project.org/services/omas/digital-architecture/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":205,"accessServiceDevelopmentStatus":"STABLE","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.assetowner.admin.AssetOwnerAdmin","accessServiceName":"Asset Owner","accessServiceFullName":"Asset Owner OMAS","accessServiceURLMarker":"asset-owner","accessServiceDescription":"Manage an asset","accessServiceWiki":"https://egeria-project.org/services/omas/asset-owner/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":225,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.stewardshipaction.admin.StewardshipActionAdmin","accessServiceName":"Stewardship Action","accessServiceFullName":"Stewardship Action OMAS","accessServiceURLMarker":"stewardship-action","accessServiceDescription":"Manage exceptions and actions from open governance","accessServiceWiki":"https://egeria-project.org/services/omas/stewardship-action/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":220,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.governanceprogram.admin.GovernanceProgramAdmin","accessServiceName":"Governance Program","accessServiceFullName":"Governance Program OMAS","accessServiceURLMarker":"governance-program","accessServiceDescription":"Manage the governance program","accessServiceWiki":"https://egeria-project.org/services/omas/governance-program/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":216,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.digitalservice.admin.DigitalServiceAdmin","accessServiceName":"Digital Service","accessServiceFullName":"Digital Service OMAS","accessServiceURLMarker":"digital-service","accessServiceDescription":"Manage a digital service through its lifecycle","accessServiceWiki":"https://egeria-project.org/services/omas/digital-service/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":203,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.assetlineage.admin.AssetLineageAdmin","accessServiceName":"Asset Lineage","accessServiceFullName":"Asset Lineage OMAS","accessServiceURLMarker":"asset-lineage","accessServiceDescription":"Store asset lineage","accessServiceWiki":"https://egeria-project.org/services/omas/asset-lineage/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":201,"accessServiceDevelopmentStatus":"STABLE","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.assetconsumer.admin.AssetConsumerAdmin","accessServiceName":"Asset Consumer","accessServiceFullName":"Asset Consumer OMAS","accessServiceURLMarker":"asset-consumer","accessServiceDescription":"Access assets through connectors","accessServiceWiki":"https://egeria-project.org/services/omas/asset-consumer/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":200,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.assetcatalog.admin.AssetCatalogAdmin","accessServiceName":"Asset Catalog","accessServiceFullName":"Asset Catalog OMAS","accessServiceURLMarker":"asset-catalog","accessServiceDescription":"Search and understand your assets","accessServiceWiki":"https://egeria-project.org/services/omas/asset-catalog/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":214,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.devops.admin.DevOpsAdmin","accessServiceName":"DevOps","accessServiceFullName":"DevOps OMAS","accessServiceURLMarker":"devops","accessServiceDescription":"Manage a DevOps pipeline","accessServiceWiki":"https://egeria-project.org/services/omas/dev-ops/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":224,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.softwaredeveloper.admin.SoftwareDeveloperAdmin","accessServiceName":"Software Developer","accessServiceFullName":"Software Developer OMAS","accessServiceURLMarker":"software-developer","accessServiceDescription":"Interact with software development tools","accessServiceWiki":"https://egeria-project.org/services/omas/software-developer/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":221,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.projectmanagement.admin.ProjectManagementAdmin","accessServiceName":"Project Management","accessServiceFullName":"Project Management OMAS","accessServiceURLMarker":"project-management","accessServiceDescription":"Manage governance related projects","accessServiceWiki":"https://egeria-project.org/services/omas/project-management/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":219,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.governanceengine.admin.GovernanceEngineAdmin","accessServiceName":"Governance Engine","accessServiceFullName":"Governance Engine OMAS","accessServiceURLMarker":"governance-engine","accessServiceDescription":"Set up an operational governance engine","accessServiceWiki":"https://egeria-project.org/services/omas/governance-engine/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":211,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.dataprivacy.admin.DataPrivacyAdmin","accessServiceName":"Data Privacy","accessServiceFullName":"Data Privacy OMAS","accessServiceURLMarker":"data-privacy","accessServiceDescription":"Manage governance of privacy","accessServiceWiki":"https://egeria-project.org/services/omas/data-privacy/overview/","accessServiceOperationalStatus":"ENABLED"},{"class":"AccessServiceConfig","accessServiceId":222,"accessServiceDevelopmentStatus":"IN_DEVELOPMENT","accessServiceAdminClass":"org.odpi.openmetadata.accessservices.securitymanager.admin.SecurityManagerAdmin","accessServiceName":"Security Manager","accessServiceFullName":"Security Manager OMAS","accessServiceURLMarker":"security-manager","accessServiceDescription":"Manages exchange of metadata with a security service","accessServiceWiki":"https://egeria-project.org/services/omas/security-manager/overview/","accessServiceOperationalStatus":"ENABLED"}],"repositoryServicesConfig":{"class":"RepositoryServicesConfig","auditLogConnections":[{"class":"Connection","headerVersion":0,"qualifiedName":"Console- default","displayName":"Console","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"4afac741-3dcc-4c60-a4ca-a6dede994e3f","qualifiedName":"Egeria:AuditLogDestinationConnector:Console","displayName":"Console Audit Log Destination Connector","description":"Connector supports logging of audit log messages to stdout.","connectorProviderClassName":"org.odpi.openmetadata.adapters.repositoryservices.auditlogstore.console.ConsoleAuditLogStoreProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.SecureConnectorExtension","org.odpi.openmetadata.repositoryservices.connectors.stores.auditlogstore.OMRSAuditLogStore"],"recognizedConfigurationProperties":["supportedSeverities"]},"configurationProperties":{"supportedSeverities":["Unknown","Information","Event","Decision","Action","Error","Exception","Security","Startup","Shutdown","Asset","Types","Cohort"]}}],"localRepositoryConfig":{"class":"LocalRepositoryConfig","metadataCollectionId":"3be47857-95c7-4d87-9d2b-2dd440ad8201","localRepositoryMode":"OPEN_METADATA_NATIVE","localRepositoryLocalConnection":{"class":"Connection","headerVersion":0,"displayName":"In Memory Local Repository Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"65cc9091-757f-4bcd-b937-426160be8bc2","qualifiedName":"Egeria:OMRSRepositoryConnector:InMemory","displayName":"In Memory OMRS Repository Connector","description":"Native open metadata repository connector that maps open metadata calls to a set of in memory hash maps - demo use only.","connectorProviderClassName":"org.odpi.openmetadata.adapters.repositoryservices.inmemory.repositoryconnector.InMemoryOMRSRepositoryConnectorProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.SecureConnectorExtension","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent","org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.repositoryconnector.OMRSMetadataCollectionManager"]}},"localRepositoryRemoteConnection":{"class":"Connection","headerVersion":0,"displayName":"Local Repository Remote Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"75ea56d1-656c-43fb-bc0c-9d35c5553b9e","qualifiedName":"Egeria:OMRSRepositoryConnector:CohortMemberClient:REST","displayName":"REST Cohort Member Client Connector","description":"Cohort member client connector that provides access to open metadata located in a remote repository via REST calls.","connectorProviderClassName":"org.odpi.openmetadata.adapters.repositoryservices.rest.repositoryconnector.OMRSRESTRepositoryConnectorProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.SecureConnectorExtension","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent","org.odpi.openmetadata.repositoryservices.connectors.stores.metadatacollectionstore.repositoryconnector.OMRSMetadataCollectionManager"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"https://localhost:9443/servers/simple-metadata-store"}},"eventsToSaveRule":"ALL","eventsToSendRule":"ALL"},"enterpriseAccessConfig":{"class":"EnterpriseAccessConfig","enterpriseMetadataCollectionName":"simple-metadata-store Enterprise Metadata Collection","enterpriseMetadataCollectionId":"0014c4f4-4ade-480d-8ab3-3a7a377a1a8d","enterpriseOMRSTopicConnection":{"class":"VirtualConnection","headerVersion":0,"displayName":"Enterprise OMRS Topic Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"qualifiedName":"org.odpi.openmetadata.repositoryservices.connectors.omrstopic.OMRSTopicProvider","displayName":"OMRS Topic Connector","description":"Provides access to the OMRS Topic that is used to exchange events between members of a cohort, or to notify Open Metadata Access Services (OMASs) of changes to metadata in the enterprise.","connectorProviderClassName":"org.odpi.openmetadata.repositoryservices.connectors.omrstopic.OMRSTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.SecureConnectorExtension","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopicListener","org.odpi.openmetadata.frameworks.connectors.VirtualConnectorExtension","org.odpi.openmetadata.repositoryservices.connectors.omrstopic.OMRSTopic"]},"embeddedConnections":[{"class":"EmbeddedConnection","headerVersion":0,"position":0,"displayName":"Enterprise OMRS Events","embeddedConnection":{"class":"Connection","headerVersion":0,"displayName":"Kafka Event Bus Connection","connectorType":{"class":"ConnectorType","headerVersion":0,"type":{"typeId":"954421eb-33a6-462d-a8ca-b5709a1bd0d4","typeName":"ConnectorType","typeVersion":1,"typeDescription":"A set of properties describing a type of connector."},"guid":"ed8e682b-2fec-4403-b551-02f8c46322ef","qualifiedName":"Egeria:OpenMetadataTopicConnector:InMemory","displayName":"In Memory Open Metadata Topic Connector","description":"In Memory Open Metadata Topic Connector supports string based events over an in memory event bus.","connectorProviderClassName":"org.odpi.openmetadata.adapters.eventbus.topic.inmemory.InMemoryOpenMetadataTopicProvider","connectorFrameworkName":"Open Connector Framework (OCF)","connectorInterfaceLanguage":"Java","connectorInterfaces":["org.odpi.openmetadata.frameworks.connectors.SecureConnectorExtension","org.odpi.openmetadata.frameworks.auditlog.AuditLoggingComponent","java.lang.Runnable","org.odpi.openmetadata.repositoryservices.connectors.openmetadatatopic.OpenMetadataTopic"]},"endpoint":{"class":"Endpoint","headerVersion":0,"address":"simple-metadata-store.openmetadata.repositoryservices.enterprise.simple-metadata-store.OMRSTopic"},"configurationProperties":{"local.server.id":"a4e23475-7bb2-4509-973b-cbf6d95a4c56","eventDirection":"inOut"}}}]},"enterpriseOMRSTopicProtocolVersion":"V1"}},"auditTrail":["Mon Aug 28 14:34:34 BST 2023 garygeeke updated configuration for local server's userId to simplemdsnpa.","Mon Aug 28 14:34:39 BST 2023 garygeeke updated configuration for the local repository.","Mon Aug 28 14:34:43 BST 2023 garygeeke updated configuration for access services.","Mon Aug 28 14:34:43 BST 2023 garygeeke updated configuration for enterprise repository services (used by access services)."]} \ No newline at end of file diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-create-avro-sample/src/main/java/org/odpi/openmetadata/accessservices/assetowner/samples/createavrofile/CreateAvroFileAssetSample.java b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-create-avro-sample/src/main/java/org/odpi/openmetadata/accessservices/assetowner/samples/createavrofile/CreateAvroFileAssetSample.java index 597ef5862c1..abed521afa2 100644 --- a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-create-avro-sample/src/main/java/org/odpi/openmetadata/accessservices/assetowner/samples/createavrofile/CreateAvroFileAssetSample.java +++ b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-create-avro-sample/src/main/java/org/odpi/openmetadata/accessservices/assetowner/samples/createavrofile/CreateAvroFileAssetSample.java @@ -79,8 +79,8 @@ public static void main(String[] args) String fileName = args[0]; - String serverName = "cocoMDS1"; - String serverURLRoot = "https://localhost:9444"; + String serverName = "simple-metadata-store"; + String serverURLRoot = "https://localhost:9443"; String clientUserId = "peterprofile"; diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-create-csv-sample/src/main/java/org/odpi/openmetadata/accessservices/assetowner/samples/createcsvfile/CreateCSVFileAssetSample.java b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-create-csv-sample/src/main/java/org/odpi/openmetadata/accessservices/assetowner/samples/createcsvfile/CreateCSVFileAssetSample.java index d9595716ff2..0ba29ee7132 100644 --- a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-create-csv-sample/src/main/java/org/odpi/openmetadata/accessservices/assetowner/samples/createcsvfile/CreateCSVFileAssetSample.java +++ b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-create-csv-sample/src/main/java/org/odpi/openmetadata/accessservices/assetowner/samples/createcsvfile/CreateCSVFileAssetSample.java @@ -69,8 +69,8 @@ void run() public static void main(String[] args) { String fileName = "open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/ContactList.csv"; - String serverName = "cocoMDS1"; - String serverURLRoot = "https://localhost:9444"; + String serverName = "simple-metadata-store"; + String serverURLRoot = "https://localhost:9443"; String clientUserId = "peterprofile"; if (args.length > 0) diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy/README.md b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy-sample/README.md similarity index 100% rename from open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy/README.md rename to open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy-sample/README.md diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy/build.gradle b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy-sample/build.gradle similarity index 100% rename from open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy/build.gradle rename to open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy-sample/build.gradle diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy/src/main/java/org/odpi/openmetadata/accessservices/itinfrastructure/samples/assetdeploy/AssetDeploy.java b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy-sample/src/main/java/org/odpi/openmetadata/accessservices/itinfrastructure/samples/assetdeploy/AssetDeploy.java similarity index 99% rename from open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy/src/main/java/org/odpi/openmetadata/accessservices/itinfrastructure/samples/assetdeploy/AssetDeploy.java rename to open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy-sample/src/main/java/org/odpi/openmetadata/accessservices/itinfrastructure/samples/assetdeploy/AssetDeploy.java index f4dd40b362e..5e6e80d2348 100644 --- a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy/src/main/java/org/odpi/openmetadata/accessservices/itinfrastructure/samples/assetdeploy/AssetDeploy.java +++ b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy-sample/src/main/java/org/odpi/openmetadata/accessservices/itinfrastructure/samples/assetdeploy/AssetDeploy.java @@ -271,7 +271,7 @@ public static void main(String[] args) String platformURLRoot = "https://localhost:9443"; String clientUserId = "erinoverview"; - String serverName = "cocoMDS1"; + String serverName = "simple-metadata-store"; String mode = interactiveMode; if (args.length > 0) diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy/src/main/resources/logback.xml b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy-sample/src/main/resources/logback.xml similarity index 100% rename from open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy/src/main/resources/logback.xml rename to open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-deploy-sample/src/main/resources/logback.xml diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-look-up/README.md b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-look-up-sample/README.md similarity index 100% rename from open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-look-up/README.md rename to open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-look-up-sample/README.md diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-look-up/build.gradle b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-look-up-sample/build.gradle similarity index 100% rename from open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-look-up/build.gradle rename to open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-look-up-sample/build.gradle diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-look-up/src/main/java/org/odpi/openmetadata/accessservices/assetconsumer/samples/assetlookup/AssetLookUp.java b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-look-up-sample/src/main/java/org/odpi/openmetadata/accessservices/assetconsumer/samples/assetlookup/AssetLookUp.java similarity index 100% rename from open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-look-up/src/main/java/org/odpi/openmetadata/accessservices/assetconsumer/samples/assetlookup/AssetLookUp.java rename to open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-look-up-sample/src/main/java/org/odpi/openmetadata/accessservices/assetconsumer/samples/assetlookup/AssetLookUp.java diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-look-up/src/main/resources/logback.xml b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-look-up-sample/src/main/resources/logback.xml similarity index 100% rename from open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-look-up/src/main/resources/logback.xml rename to open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-look-up-sample/src/main/resources/logback.xml diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-reader-avro-sample/src/main/java/org/odpi/openmetadata/accessservices/assetconsumer/samples/readavrofile/AvroFileReaderSample.java b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-reader-avro-sample/src/main/java/org/odpi/openmetadata/accessservices/assetconsumer/samples/readavrofile/AvroFileReaderSample.java index 17d10487fb5..e796038c357 100644 --- a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-reader-avro-sample/src/main/java/org/odpi/openmetadata/accessservices/assetconsumer/samples/readavrofile/AvroFileReaderSample.java +++ b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-reader-avro-sample/src/main/java/org/odpi/openmetadata/accessservices/assetconsumer/samples/readavrofile/AvroFileReaderSample.java @@ -303,8 +303,8 @@ public static void main(String[] args) } String fileName = args[0]; - String serverName = "cocoMDS4"; - String serverURLRoot = "https://localhost:9444"; + String serverName = "simple-metadata-store"; + String serverURLRoot = "https://localhost:9443"; String clientUserId = "erinoverview"; diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-reader-csv-sample/README.md b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-reader-csv-sample/README.md index 58865380b89..2a153b2b065 100644 --- a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-reader-csv-sample/README.md +++ b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-reader-csv-sample/README.md @@ -20,8 +20,8 @@ The parameters are used to override the sample's default values. ``` String fileName = "open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/ContactList.csv"; - String serverName = "cocoMDS4"; - String serverURLRoot = "https://localhost:9444"; + String serverName = "simple-metadata-store"; + String serverURLRoot = "https://localhost:9443"; String clientUserId = "erinoverview"; ``` diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-reader-csv-sample/src/main/java/org/odpi/openmetadata/accessservices/assetconsumer/samples/readcsvfile/CSVFileReaderSample.java b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-reader-csv-sample/src/main/java/org/odpi/openmetadata/accessservices/assetconsumer/samples/readcsvfile/CSVFileReaderSample.java index 2863b7b6567..d134488a013 100644 --- a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-reader-csv-sample/src/main/java/org/odpi/openmetadata/accessservices/assetconsumer/samples/readcsvfile/CSVFileReaderSample.java +++ b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-reader-csv-sample/src/main/java/org/odpi/openmetadata/accessservices/assetconsumer/samples/readcsvfile/CSVFileReaderSample.java @@ -333,8 +333,8 @@ public static void main(String[] args) { String fileName = "open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/ContactList.csv"; - String serverName = "cocoMDS4"; - String serverURLRoot = "https://localhost:9444"; + String serverName = "simple-metadata-store"; + String serverURLRoot = "https://localhost:9443"; String clientUserId = "erinoverview"; if (args.length > 0) diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up/README.md b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up-sample/README.md similarity index 100% rename from open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up/README.md rename to open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up-sample/README.md diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up/build.gradle b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up-sample/build.gradle similarity index 100% rename from open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up/build.gradle rename to open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up-sample/build.gradle diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up/src/main/java/org/odpi/openmetadata/accessservices/samples/assetsetup/AssetSetUp.java b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up-sample/src/main/java/org/odpi/openmetadata/accessservices/samples/assetsetup/AssetSetUp.java similarity index 99% rename from open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up/src/main/java/org/odpi/openmetadata/accessservices/samples/assetsetup/AssetSetUp.java rename to open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up-sample/src/main/java/org/odpi/openmetadata/accessservices/samples/assetsetup/AssetSetUp.java index ed216b9f9a5..54cc934fa6e 100644 --- a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up/src/main/java/org/odpi/openmetadata/accessservices/samples/assetsetup/AssetSetUp.java +++ b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up-sample/src/main/java/org/odpi/openmetadata/accessservices/samples/assetsetup/AssetSetUp.java @@ -387,7 +387,7 @@ public static void main(String[] args) { String platformURLRoot = "https://localhost:9443"; String clientUserId = "erinoverview"; - String serverName = "cocoMDS1"; + String serverName = "simple-metadata-store"; if (args.length > 0) { diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up/src/main/java/org/odpi/openmetadata/accessservices/samples/assetsetup/GlossaryTermDefinitions.java b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up-sample/src/main/java/org/odpi/openmetadata/accessservices/samples/assetsetup/GlossaryTermDefinitions.java similarity index 100% rename from open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up/src/main/java/org/odpi/openmetadata/accessservices/samples/assetsetup/GlossaryTermDefinitions.java rename to open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up-sample/src/main/java/org/odpi/openmetadata/accessservices/samples/assetsetup/GlossaryTermDefinitions.java diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up/src/main/java/org/odpi/openmetadata/accessservices/samples/assetsetup/GovernanceZoneDefinitions.java b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up-sample/src/main/java/org/odpi/openmetadata/accessservices/samples/assetsetup/GovernanceZoneDefinitions.java similarity index 100% rename from open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up/src/main/java/org/odpi/openmetadata/accessservices/samples/assetsetup/GovernanceZoneDefinitions.java rename to open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up-sample/src/main/java/org/odpi/openmetadata/accessservices/samples/assetsetup/GovernanceZoneDefinitions.java diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up/src/main/resources/logback.xml b/open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up-sample/src/main/resources/logback.xml similarity index 100% rename from open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up/src/main/resources/logback.xml rename to open-metadata-resources/open-metadata-samples/access-services-samples/asset-management-samples/asset-set-up-sample/src/main/resources/logback.xml diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/glossary-workflow-samples/README.md b/open-metadata-resources/open-metadata-samples/access-services-samples/glossary-workflow-samples/README.md index 382d8b3e5b2..618287a79ce 100644 --- a/open-metadata-resources/open-metadata-samples/access-services-samples/glossary-workflow-samples/README.md +++ b/open-metadata-resources/open-metadata-samples/access-services-samples/glossary-workflow-samples/README.md @@ -1,9 +1,9 @@ -# Glossary management samples +# Glossary workflow samples -The glossary management samples show different styles of managing changes to glossary terms. +The glossary workflow samples show different styles of managing changes to glossary terms. They are illustrated through the [Asset Manager OMAS glossary management API](https://odpi.github.io/egeria/org/odpi/openmetadata/accessservices/assetmanager/api/management/GlossaryManagementInterface.html). This interface is used by [Glossary Workflow OMVS](https://egeria-project.org/services/omvs/glossary-workflow/overview) to provide the backend services for UI that provide complex management interfaces. diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/glossary-workflow-samples/src/main/java/org/odpi/openmetadata/accessservices/assetmanager/samples/glossaryworkflow/GlossaryWorkflowSamples.java b/open-metadata-resources/open-metadata-samples/access-services-samples/glossary-workflow-samples/src/main/java/org/odpi/openmetadata/accessservices/assetmanager/samples/glossaryworkflow/GlossaryWorkflowSamples.java index a174c28e9dd..aa69d27cae5 100644 --- a/open-metadata-resources/open-metadata-samples/access-services-samples/glossary-workflow-samples/src/main/java/org/odpi/openmetadata/accessservices/assetmanager/samples/glossaryworkflow/GlossaryWorkflowSamples.java +++ b/open-metadata-resources/open-metadata-samples/access-services-samples/glossary-workflow-samples/src/main/java/org/odpi/openmetadata/accessservices/assetmanager/samples/glossaryworkflow/GlossaryWorkflowSamples.java @@ -29,7 +29,7 @@ public class GlossaryWorkflowSamples */ public static void main(String[] args) { - String serverName = "cocoMDS1"; + String serverName = "simple-metadata-store"; String platformURLRoot = "https://localhost:9443"; String clientUserId = "peterprofile"; diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/governance-program-client-samples/governance-leadership-sample/README.md b/open-metadata-resources/open-metadata-samples/access-services-samples/governance-program-client-samples/governance-leadership-sample/README.md index 5421ed8bb64..9b3fa7be867 100644 --- a/open-metadata-resources/open-metadata-samples/access-services-samples/governance-program-client-samples/governance-leadership-sample/README.md +++ b/open-metadata-resources/open-metadata-samples/access-services-samples/governance-program-client-samples/governance-leadership-sample/README.md @@ -4,15 +4,15 @@ # Governance Leadership Sample In the governance leadership sample, -[Jules Keeper](https://opengovernance.odpi.org/coco-pharmaceuticals/personas/jules-keeper.html), the CDO at +[Jules Keeper](https://egeria-project.org/practices/coco-pharmaceuticals/personas/jules-keeper/), the CDO at Coco Pharmaceuticals, is setting up details about the team of governance leaders who will drive the different domains of -[Coco Pharmaceuticals governance program](https://opengovernance.odpi.org/coco-pharmaceuticals/). +[Coco Pharmaceuticals governance program](https://egeria-project.org/practices/coco-pharmaceuticals/). Together they will form the Governance Board that will lead Coco Pharmaceuticals business transformation to personalized medicine. Jules first creates a personal profile for himself and -[Ivor Padlock](https://opengovernance.odpi.org/coco-pharmaceuticals/personas/ivor-padlock.html). +[Ivor Padlock](https://egeria-project.org/practices/coco-pharmaceuticals/personas/ivor-padlock/). Next he creates governance officer positions for: @@ -22,22 +22,22 @@ Next he creates governance officer positions for: He appoints himself as the CDO and the CPO and Ivor as the CSO. -He later persuades [Faith Broker](https://opengovernance.odpi.org/coco-pharmaceuticals/personas/faith-broker.html) to take on the role of CPO. +He later persuades [Faith Broker](https://egeria-project.org/practices/coco-pharmaceuticals/personas/faith-broker/) to take on the role of CPO. He creates a new profile for Faith, removes himself as the CPO and appoints Faith in his place. He also updates his personal profile to reflect he is no longer CPO. -Jules also wants to recognize the work that [Erin Overview](https://opengovernance.odpi.org/coco-pharmaceuticals/personas/erin-overview.html) +Jules also wants to recognize the work that [Erin Overview](https://egeria-project.org/practices/coco-pharmaceuticals/personas/erin-overview/) does in supporting the information architecture for their -systems and also [Gary Geeke's](https://opengovernance.odpi.org/coco-pharmaceuticals/personas/gary-geeke.html) work running the IT infrastructure. +systems and also [Gary Geeke's](https://egeria-project.org/practices/coco-pharmaceuticals/personas/gary-geeke/) work running the IT infrastructure. He appoints Erin as the CDO for the IT Systems and Gary as the Chief IT Officer responsible for the IT governance domain. -Completing the team, [Reggie Mint](https://opengovernance.odpi.org/coco-pharmaceuticals/personas/reggie-mint.html) from finance is the corporate -governance officer and [Polly Tasker](https://opengovernance.odpi.org/coco-pharmaceuticals/personas/polly-tasker.html) is responsible for the +Completing the team, [Reggie Mint](https://egeria-project.org/practices/coco-pharmaceuticals/personas/reggie-mint/) from finance is the corporate +governance officer and [Polly Tasker](https://egeria-project.org/practices/coco-pharmaceuticals/personas/polly-tasker/) is responsible for the software development lifecycle governance domain. Talking to Ivor at a later date, they decide to change the @@ -46,8 +46,7 @@ Talking to Ivor at a later date, they decide to change the Throughout the sample, Jules is checking that he can retrieve the definitions that he is creating. -At the end of the sample, all of the definitions are deleted -so the sample can run again without error. +At the end of the sample, all the definitions are deleted so the sample can run again without error. ---- * [Return to Governance Program Samples](..) diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/governance-program-client-samples/governance-zone-create-sample/src/main/java/org/odpi/openmetadata/accessservices/governanceprogram/samples/zonecreate/CreateGovernanceZoneSample.java b/open-metadata-resources/open-metadata-samples/access-services-samples/governance-program-client-samples/governance-zone-create-sample/src/main/java/org/odpi/openmetadata/accessservices/governanceprogram/samples/zonecreate/CreateGovernanceZoneSample.java index 46f0f1479e8..7ab7b38543d 100644 --- a/open-metadata-resources/open-metadata-samples/access-services-samples/governance-program-client-samples/governance-zone-create-sample/src/main/java/org/odpi/openmetadata/accessservices/governanceprogram/samples/zonecreate/CreateGovernanceZoneSample.java +++ b/open-metadata-resources/open-metadata-samples/access-services-samples/governance-program-client-samples/governance-zone-create-sample/src/main/java/org/odpi/openmetadata/accessservices/governanceprogram/samples/zonecreate/CreateGovernanceZoneSample.java @@ -146,7 +146,7 @@ public void run() */ public static void main(String[] args) { - String serverName = "cocoMDS2"; + String serverName = "simple-metadata-store"; String serverURLRoot = "https://localhost:9443"; String clientUserId = "erinoverview"; diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/README.md b/open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/README.md index 9a1497016e7..3e25416c21e 100644 --- a/open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/README.md +++ b/open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/README.md @@ -6,7 +6,7 @@ These samples shows how to call the Subject Area OMAS's client. There is a sample for each of the Subject Area OMAS's interfaces. -* **[Subject Area Definitions](subject-area-definition-sample)** shows how to create Subject Area Definitions. +* **[Subject Area Categories](subject-area-categories-sample)** shows how to create a hierarchy of categories. diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-definition-sample/README.md b/open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-categories-sample/README.md similarity index 94% rename from open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-definition-sample/README.md rename to open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-categories-sample/README.md index a1281ddd133..7a8f8ba0eb3 100644 --- a/open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-definition-sample/README.md +++ b/open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-categories-sample/README.md @@ -1,7 +1,7 @@ -# Subject Area Definitions Sample +# Subject Area Categories Sample The [Coco Pharmaceuticals case study](https://odpi.github.io/data-governance/coco-pharmaceuticals/) involves the definition of subject areas. This sample is code that defines the subject areas diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-definition-sample/build.gradle b/open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-categories-sample/build.gradle similarity index 100% rename from open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-definition-sample/build.gradle rename to open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-categories-sample/build.gradle diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-definition-sample/src/main/java/org/odpi/openmetadata/accessservices/subjectarea/samples/definition/SubjectAreaDefinitionSample.java b/open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-categories-sample/src/main/java/org/odpi/openmetadata/accessservices/subjectarea/samples/definition/SubjectAreaDefinitionSample.java similarity index 79% rename from open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-definition-sample/src/main/java/org/odpi/openmetadata/accessservices/subjectarea/samples/definition/SubjectAreaDefinitionSample.java rename to open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-categories-sample/src/main/java/org/odpi/openmetadata/accessservices/subjectarea/samples/definition/SubjectAreaDefinitionSample.java index 226a42a21b5..6f20c634127 100644 --- a/open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-definition-sample/src/main/java/org/odpi/openmetadata/accessservices/subjectarea/samples/definition/SubjectAreaDefinitionSample.java +++ b/open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-categories-sample/src/main/java/org/odpi/openmetadata/accessservices/subjectarea/samples/definition/SubjectAreaDefinitionSample.java @@ -20,7 +20,8 @@ import java.io.InputStreamReader; /** - * SubjectAreaDefinition Sample provides a client program that calls the Subject Area OMAS to create sample Subject Area Definitions. + * SubjectAreaDefinition Sample provides a client program that calls the Subject Area OMAS to create a category hierarchy + * that matches the subject area definitions defined by Coco Pharmaceuticals. */ public class SubjectAreaDefinitionSample { @@ -50,16 +51,16 @@ public class SubjectAreaDefinitionSample private static final String DISTRIBUTION = "Distribution"; private static final String INVOICE = "Invoice"; - private static final String GLOSSARY_NAME = "Coco Pharmaceuticals Subject Area Definitions"; - private static final String GLOSSARY_DESCRIPTION = "Coco Pharmaceuticals Core Subject Areas for Personalized Medicine."; - private static final String DEFAULT_SERVER_NAME = "cocoMDS4"; + private static final String GLOSSARY_NAME = "Coco Pharmaceuticals Common Data Definitions"; + private static final String GLOSSARY_DESCRIPTION = "Coco Pharmaceuticals semantic definitions for personalized medicine."; + private static final String DEFAULT_SERVER_NAME = "simple-metadata-store"; private static final String DEFAULT_USERID = "erinoverview"; private static final String DEFAULT_URL = "https://localhost:9443"; - private String serverURLRoot; - private String clientUserId; - private String serverName; - private SubjectAreaNodeClient subjectAreaGlossary =null; + private final String serverURLRoot; + private final String clientUserId; + private final String serverName; + private SubjectAreaNodeClient subjectAreaGlossary = null; private SubjectAreaNodeClient subjectAreaCategory =null; @@ -81,7 +82,8 @@ private SubjectAreaDefinitionSample(String serverURLRoot, String serverName, Str * Run the sample * @throws SubjectAreaCheckedException error */ - private void run() throws SubjectAreaCheckedException, InvalidParameterException, PropertyServerException, UserNotAuthorizedException { + private void run() throws SubjectAreaCheckedException, InvalidParameterException, PropertyServerException, UserNotAuthorizedException + { SubjectArea subjectArea = new SubjectAreaImpl(this.serverName, this.serverURLRoot); subjectAreaGlossary = subjectArea.nodeClients().glossaries(); subjectAreaCategory = subjectArea.nodeClients().categories(); @@ -96,43 +98,43 @@ private void run() throws SubjectAreaCheckedException, InvalidParameterException */ String glossaryGuid = glossary.getSystemAttributes().getGUID(); SubjectAreaDefinition organisation = createTopSubjectAreaDefinition(ORGANIZATION,glossaryGuid); - SubjectAreaDefinition hospital= createChildSubjectAreaDefinition(HOSPITAL,organisation,glossaryGuid); - SubjectAreaDefinition supplier= createChildSubjectAreaDefinition(SUPPLIER,organisation,glossaryGuid); + createChildSubjectAreaDefinition(HOSPITAL,organisation,glossaryGuid); + createChildSubjectAreaDefinition(SUPPLIER,organisation,glossaryGuid); /* * create Person subject areas */ SubjectAreaDefinition person = createTopSubjectAreaDefinition(PERSON,glossaryGuid); - SubjectAreaDefinition patient= createChildSubjectAreaDefinition(PATIENT,person,glossaryGuid); - SubjectAreaDefinition clinician= createChildSubjectAreaDefinition(CLINICIAN,person,glossaryGuid); - SubjectAreaDefinition employee= createChildSubjectAreaDefinition(EMPLOYEE,person,glossaryGuid); - SubjectAreaDefinition collaborator= createChildSubjectAreaDefinition(COLLABORATOR,person,glossaryGuid); + createChildSubjectAreaDefinition(PATIENT,person,glossaryGuid); + createChildSubjectAreaDefinition(CLINICIAN,person,glossaryGuid); + createChildSubjectAreaDefinition(EMPLOYEE,person,glossaryGuid); + createChildSubjectAreaDefinition(COLLABORATOR,person,glossaryGuid); /* * create Clinical subject areas */ SubjectAreaDefinition clinical = createTopSubjectAreaDefinition(CLINICAL,glossaryGuid); - SubjectAreaDefinition symptom= createChildSubjectAreaDefinition(SYMPTOM,clinical,glossaryGuid); - SubjectAreaDefinition measurement= createChildSubjectAreaDefinition(MEASUREMENT,clinical,glossaryGuid); - SubjectAreaDefinition prescription= createChildSubjectAreaDefinition(PRESCRIPTION,clinical,glossaryGuid); - SubjectAreaDefinition outcome= createChildSubjectAreaDefinition(OUTCOME,clinical,glossaryGuid); + createChildSubjectAreaDefinition(SYMPTOM,clinical,glossaryGuid); + createChildSubjectAreaDefinition(MEASUREMENT,clinical,glossaryGuid); + createChildSubjectAreaDefinition(PRESCRIPTION,clinical,glossaryGuid); + createChildSubjectAreaDefinition(OUTCOME,clinical,glossaryGuid); /* * create Treatment subject areas */ SubjectAreaDefinition treatment = createTopSubjectAreaDefinition(TREATMENT,glossaryGuid); - SubjectAreaDefinition product= createChildSubjectAreaDefinition(PRODUCT,treatment,glossaryGuid); - SubjectAreaDefinition order= createChildSubjectAreaDefinition(ORDER,treatment,glossaryGuid); - SubjectAreaDefinition recipe= createChildSubjectAreaDefinition(RECIPE,treatment,glossaryGuid); + createChildSubjectAreaDefinition(PRODUCT,treatment,glossaryGuid); + createChildSubjectAreaDefinition(ORDER,treatment,glossaryGuid); + createChildSubjectAreaDefinition(RECIPE,treatment,glossaryGuid); /* * create Service Quality subject areas */ SubjectAreaDefinition serviceQuality = createTopSubjectAreaDefinition(SERVICE_QUALITY,glossaryGuid); - SubjectAreaDefinition contract= createChildSubjectAreaDefinition(CONTRACT,serviceQuality,glossaryGuid); - SubjectAreaDefinition stock= createChildSubjectAreaDefinition(STOCK,serviceQuality,glossaryGuid); - SubjectAreaDefinition distribution= createChildSubjectAreaDefinition(DISTRIBUTION,serviceQuality,glossaryGuid); - SubjectAreaDefinition invoice= createChildSubjectAreaDefinition(INVOICE,serviceQuality,glossaryGuid); + createChildSubjectAreaDefinition(CONTRACT,serviceQuality,glossaryGuid); + createChildSubjectAreaDefinition(STOCK,serviceQuality,glossaryGuid); + createChildSubjectAreaDefinition(DISTRIBUTION,serviceQuality,glossaryGuid); + createChildSubjectAreaDefinition(INVOICE,serviceQuality,glossaryGuid); } @@ -142,7 +144,10 @@ private void run() throws SubjectAreaCheckedException, InvalidParameterException * @param glossaryGuid guid of the glossary to associate the Subject Area with. * @return SubjectAreaDefinition the created Subject Area Definition */ - private SubjectAreaDefinition createTopSubjectAreaDefinition( String name, String glossaryGuid) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException { + private SubjectAreaDefinition createTopSubjectAreaDefinition( String name, String glossaryGuid) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { System.out.println("----------------------------"); System.out.println("Creating a top level Subject Area Definition called " + name); SubjectAreaDefinition subjectAreaDefinition = new SubjectAreaDefinition(); @@ -156,12 +161,17 @@ private SubjectAreaDefinition createTopSubjectAreaDefinition( String name, Strin /** * Create a child Subject Area Definition - this means a Subject Area Definition that has a superCategory. - * @param name name of the Subject Area Definition to create - * @param parent parent Category + * + * @param name name of the Subject Area Definition to create + * @param parent parent Category * @param glossaryGuid guid of the glossary to associate the Subject Area with. - * @return SubjectAreaDefinition the created Subject Area Definition */ - private SubjectAreaDefinition createChildSubjectAreaDefinition(String name, SubjectAreaDefinition parent, String glossaryGuid) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException { + private void createChildSubjectAreaDefinition(String name, + SubjectAreaDefinition parent, + String glossaryGuid) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { SubjectAreaDefinition subjectAreaDefinition = new SubjectAreaDefinition(); subjectAreaDefinition.setName(name); GlossarySummary glossarySummary = new GlossarySummary(); @@ -175,7 +185,6 @@ private SubjectAreaDefinition createChildSubjectAreaDefinition(String name, Subj { System.out.println("Created Subject Area Definition " + newSubjectAreaDefinition.getName() + " with guid " + newSubjectAreaDefinition.getSystemAttributes().getGUID() + ", parent SubjectArea Definition is " + parent.getName()); } - return newSubjectAreaDefinition; } @@ -187,7 +196,12 @@ private SubjectAreaDefinition createChildSubjectAreaDefinition(String name, Subj * @param glossaryDescription description of the Glossary * @return created glossary */ - private Glossary createGlossary(String userId, String glossaryName, String glossaryDescription) throws InvalidParameterException, PropertyServerException, UserNotAuthorizedException { + private Glossary createGlossary(String userId, + String glossaryName, + String glossaryDescription) throws InvalidParameterException, + PropertyServerException, + UserNotAuthorizedException + { Glossary glossary = new Glossary(); glossary.setName(glossaryName); glossary.setDescription(glossaryDescription); @@ -235,7 +249,7 @@ public static void main(String[] args) throws IOException /** * This method gets the url that the sample will use to issue calls to the server. *

- * If arguments are supplied then the first parameter is used as a url. + * If arguments are supplied then the first parameter is used as the url. *

* If no url is supplied then prompt the user to enter a valid url, enter means to use the default url. * diff --git a/open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-definition-sample/src/main/resources/logback.xml b/open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-categories-sample/src/main/resources/logback.xml similarity index 100% rename from open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-definition-sample/src/main/resources/logback.xml rename to open-metadata-resources/open-metadata-samples/access-services-samples/subject-area-client-samples/subject-area-categories-sample/src/main/resources/logback.xml diff --git a/open-metadata-resources/open-metadata-samples/admin-services-samples/admin-services-config-metadata-server-sample/build.gradle b/open-metadata-resources/open-metadata-samples/admin-services-samples/config-metadata-server-sample/build.gradle similarity index 94% rename from open-metadata-resources/open-metadata-samples/admin-services-samples/admin-services-config-metadata-server-sample/build.gradle rename to open-metadata-resources/open-metadata-samples/admin-services-samples/config-metadata-server-sample/build.gradle index 6c08bb15dca..020c9455f1e 100644 --- a/open-metadata-resources/open-metadata-samples/admin-services-samples/admin-services-config-metadata-server-sample/build.gradle +++ b/open-metadata-resources/open-metadata-samples/admin-services-samples/config-metadata-server-sample/build.gradle @@ -18,7 +18,7 @@ dependencies { implementation project(':open-metadata-implementation:adapters:authentication-plugins:http-helper') } -description = 'Admin Services Config Metadata Server Sample' +description = 'Config Metadata Server Sample' java { withJavadocJar() diff --git a/open-metadata-resources/open-metadata-samples/admin-services-samples/admin-services-config-metadata-server-sample/src/main/java/org/odpi/openmetadata/adminservices/samples/configure/ConfigMetadataServerSample.java b/open-metadata-resources/open-metadata-samples/admin-services-samples/config-metadata-server-sample/src/main/java/org/odpi/openmetadata/adminservices/samples/configure/ConfigMetadataServerSample.java similarity index 99% rename from open-metadata-resources/open-metadata-samples/admin-services-samples/admin-services-config-metadata-server-sample/src/main/java/org/odpi/openmetadata/adminservices/samples/configure/ConfigMetadataServerSample.java rename to open-metadata-resources/open-metadata-samples/admin-services-samples/config-metadata-server-sample/src/main/java/org/odpi/openmetadata/adminservices/samples/configure/ConfigMetadataServerSample.java index a3e35b8ccc5..0a1af50b358 100644 --- a/open-metadata-resources/open-metadata-samples/admin-services-samples/admin-services-config-metadata-server-sample/src/main/java/org/odpi/openmetadata/adminservices/samples/configure/ConfigMetadataServerSample.java +++ b/open-metadata-resources/open-metadata-samples/admin-services-samples/config-metadata-server-sample/src/main/java/org/odpi/openmetadata/adminservices/samples/configure/ConfigMetadataServerSample.java @@ -42,7 +42,7 @@ public class ConfigMetadataServerSample private static final String[] supportedZones = { "quarantine", "clinical-trials", "research", "data-lake", "trash-can" }; private static final String[] defaultZones = { "quarantine" }; - private MetadataAccessStoreConfigurationClient configurationClient; + private final MetadataAccessStoreConfigurationClient configurationClient; /** diff --git a/open-metadata-resources/open-metadata-samples/admin-services-samples/admin-services-config-metadata-server-sample/src/main/resources/logback.xml b/open-metadata-resources/open-metadata-samples/admin-services-samples/config-metadata-server-sample/src/main/resources/logback.xml similarity index 100% rename from open-metadata-resources/open-metadata-samples/admin-services-samples/admin-services-config-metadata-server-sample/src/main/resources/logback.xml rename to open-metadata-resources/open-metadata-samples/admin-services-samples/config-metadata-server-sample/src/main/resources/logback.xml diff --git a/settings.gradle b/settings.gradle index f7a4e8b7c7c..13a3aca7efd 100644 --- a/settings.gradle +++ b/settings.gradle @@ -343,15 +343,15 @@ include(':open-metadata-resources:open-metadata-samples:access-services-samples: include(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-create-avro-sample') include(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-reader-csv-sample') include(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-create-csv-sample') -include(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-deploy') -include(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-look-up') -include(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-set-up') +include(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-deploy-sample') +include(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-look-up-sample') +include(':open-metadata-resources:open-metadata-samples:access-services-samples:asset-management-samples:asset-set-up-sample') include(':open-metadata-resources:open-metadata-samples:access-services-samples:glossary-workflow-samples') include(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-zone-create-sample') include(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-leadership-sample') include(':open-metadata-resources:open-metadata-samples:access-services-samples:governance-program-client-samples:governance-subject-area-sample') -include(':open-metadata-resources:open-metadata-samples:access-services-samples:subject-area-client-samples:subject-area-definition-sample') -include(':open-metadata-resources:open-metadata-samples:admin-services-samples:admin-services-config-metadata-server-sample') +include(':open-metadata-resources:open-metadata-samples:access-services-samples:subject-area-client-samples:subject-area-categories-sample') +include(':open-metadata-resources:open-metadata-samples:admin-services-samples:config-metadata-server-sample') include(':open-metadata-resources:open-metadata-samples:sample-metadata:simple-catalogs') include(':open-metadata-resources:open-metadata-samples:sample-metadata:big-glossaries') include(':open-metadata-resources:open-metadata-samples:open-metadata-security-samples')