Open-Data-Product-Initiative / dev

Open Data Product Specification Development version
https://opendataproducts.org/dev/
Apache License 2.0
3 stars 1 forks source link

Added data contract element #11

Closed kyyberi closed 4 months ago

kyyberi commented 4 months ago

Optional data contract element with attributes.

Reference to related issue

Resolves #9

kyyberi commented 4 months ago

ODPS supports Data Contracts

Data Product description is different from data contract. Data Product description is more focused on the aspects of the data product as a commodity including data quality, detailed pricing plans, use case examples, usage rights, information about related data products, and SLA to mention a few. Some say that data contracts alone are enough and data product approach is not needed. This might be the case in some scenarios, but not when data is exposed as a commercial product to the mass market eg outside organization borders.

ODPS focuses on the data as a commodity aspect and thus data contract is not a built-in feature of it. The need to have data contracts for data products in some cases is still needed and thus we decided to enable the usage of data contracts in the context of ODPS as well. Instead of defining yet another specification, we decided to use the existing standards mentioned above).

Reference Data Contract as URL in ODPS

In the below screenshot, you can see an example of how a Data Contract is referenced as a URL. The contract element binds together data contract related information in the ODPS.

datacontract-url

The type defines the standard used to describe the data contract and can be now either Open Data Contract Standard “ODCS” or Data Contract Specification “DCS”. The contractURL is the URL to access details of the data contract. That can for example be Datamesh Manager as in the example or any other location as long as it can be expressed with a valid URL.

Define Data Contract as an inline element in ODPS

In the below example, you will see how to add a data contract in your ODPS as an inline element. It is still required to add the necessary metadata but no URL. Instead of the URL pointing to the data contract, you can add the content of it in YAML under spec element.

datacontract-inline