Skip to main content

Data Catalog Plugin

It is possible to add a Data Catalog provisioning phase during the deploy phase of a data product. To do this, register the endpoint for the data catalog in the Provisioning Coordinator configuration file:

provisioning-coordinator {
data-catalog-provisioning {
is-enabled = true
}

depends-on = [
{
datacatalogplugin = [
{
environment = "dev"
uri = "http://your_endpoint"
},
{
environment = "prod"
uri = "http://your_endpoint"
}
]
}
]
}

The data catalog is similar to a technology adapter, with a few differences. It takes in the whole data product descriptor already enriched with specific provisioners' deploy info. It also can return its deploy info to be stored in the descriptor. The deploy info returned by the data catalog is an object that has the following fields:

{
"deployInfo": {
"publicInfo": {},
"privateInfo": {}
}
}

It is similar to the additional details that can be returned by the technology adapter (more info in Tech Adapter). . The objects contained in publicInfo and privateInfo need to be compliant with the following specification to be properly processed by the coordinator and eventually displayed in the "Technical Information" card of the components.

Info structure

To return public information for a component that will be displayed in the UI, create an object inside publicInfo with the key being the component id. Inside, any number of information fields can be added. Here's an example:

{
"privateInfo": {
"urn:dmb:cmp:marketing:myDataProduct:1:outputPortOne": {
"dataCatalogVerySecretValue": {
"type": "string",
"label": "Secret Data Catalog Value",
"value": "62ef27d7-55c2-40fd-83fe-79f6dc7b1712"
},
"anotherDataCatalogSecretValue": {
"type": "string",
"label": "Another secret value",
"value": "aaaa27d7-55c2-40fd-83fe-79f6dc7b1712"
}
},
"urn:dmb:cmp:marketing:myDataProduct:1:outputPortTwo": {
"aSecretString": {
"type": "string",
"label": "A secret string",
"value": "secret"
},
"aSecretLink": {
"type": "string",
"label": "a secret link",
"value": "alink",
"href": "http://my.remote.url"
}
}
},
"publicInfo": {
"urn:dmb:cmp:marketing:myDataProduct:1:outputPortOne": {
"dataCatalogPublicInfo": {
"type": "string",
"label": "Data Catalog Info",
"value": "Something something"
}
}
}
}

In this example, we have returned two private fields and a public field for outputPortOne, and two private fields for outputPortTwo. The private fields will remain in the data product descriptor stored in the database, while the public fields will also be displayed in the "Technical Information" card of outputPortOne.