Minimal Descriptor Document⚓︎
The previous page showed the overall syntax and structure of a data product descriptor document. The data product descriptor document structure is long and complex so this page just describes the minimal set of fields it must contain while the following pages give more details about specific objects.
Data Product Descriptor Entity⚓︎
The root object in any data product descriptor document is the Data Product Descriptor Entity. The Info Object contains tha genarl info related to the data product while the Interface Components Object contains all its public interfaces.
Fields⚓︎
Only three fields of the Data Product Descriptor Entity are mandatory: dataProductDescriptor, info and interfaceComponents.outputPorts.
dataProductDescriptor(string:version): This indicates the version of the DADS this document is using, e.g. “1.0.0”. Using this field tools can check that the document correctly adheres to the specification.info(Info Object): This provides general information about the data product (like its description and contact information) but the only mandatory fields arefullyQualifiedName,name,version,domainandowner.fullyQualifiedName(string:fqn): This is the unique universal identifier of the data product. It MUST be a URN of the formurn:dpds:{mesh-namespace}:dataproducts:{product-name}:{product-major-version}. It's RECOMMENDED to use asmesh-namespaceyour company's domain name in reverse dot notation (ex.com.company-xyz) in order to ensure that thefullyQualifiedNameis a unique universal idetifier as REQUIRED.version(string:version): this is the semantic version number of the data product (not to be confused with thedataProductDescriptorversion above).domain(string): This is the domain to which the data product belongs.owner(Owner Object): This is a collection of information related to the data product's owner. The only mandatory field is theidof the owner, usually his or her corporate mail address.
interfaceComponents(Interface Components Object): This is a collection of all ports exposed by the data product (i.e. input, output, etc). The only mandatory field isoutputPortswhich contains the list of all output ports of the data product.outputPorts(array of Output Port Component): These are the output ports exposed by the data product.
Example⚓︎
The following example shows a minimal data product descriptor document:
{
"dataProductDescriptor": "1.0.0",
"info": {
"fullyQualifiedName": "urn:dpds:com.company-xyz:dataproducts:tripExecution:1",
"name": "tripExecution",
"version": "1.2.3",
"domain": "Transport Management",
"owner": {
"id": "john.doe@company-xyz.com",
"name": "John Doe"
}
},
"interfaceComponents": {
"outputPorts": []
}
}
This data product is not very useful because it defines no output ports (it does not expose any data). The next page remedies that.
Trip Execution Data Product Descriptor⚓︎
This is the minimal descriptor document of the Trip Execution Data Product. You can read it on GitHub or cut and paste the content of the JSON file to JSON Crack for more interactive visualization.
Summary⚓︎
This page has shown that:
- Every data product descriptor document must contain a root object with at least the fields
dataProductDescriptor,infoandinterfaceComponents.outputPorts.
The next page describes the contents of the interfaceComponents field so ports can be added to the above minimal snippet.