Type object
File match *.odps.yaml *.odps.yml
Schema URL https://catalog.lintel.tools/schemas/schemastore/open-data-product-standard-odps/latest.json
Source https://raw.githubusercontent.com/bitol-io/open-data-product-standard/main/schema/odps-json-schema-latest.json

Validate with Lintel

npx @lintel/lintel check
Type: object

An open data product standard descriptor to enable defining data products.

Properties

apiVersion string required

Version of the standard used to build data product. Default value is v1.0.0.

Default: "v1.0.0"
Values: "v0.9.0" "v1.0.0"
kind string required

The kind of file this is. Valid value is DataProduct.

Default: "DataProduct"
Values: "DataProduct"
id string required

A unique identifier used to reduce the risk of dataset name collisions, such as a UUID.

status string required

Current status of the data product.

Examples: "proposed", "draft", "active", "deprecated", "retired"
name string

Name of the data product.

version string

Current version of the data product. Not required, but highly recommended.

domain string

Business domain

tenant string

Organization identifier

authoritativeDefinitions AuthoritativeDefinition[]

List of links to sources that provide more details on the data contract.

description object

Object containing the descriptions.

5 nested properties
purpose string

Intended purpose for the provided data.

limitations string

Technical, compliance, and legal limitations for data use.

usage string

Recommended usage of the data.

authoritativeDefinitions AuthoritativeDefinition[]

List of links to sources that provide more details on the data contract.

customProperties CustomProperty[]

A list of key/value pairs for custom properties.

customProperties CustomProperty[]

A list of key/value pairs for custom properties.

tags string[]

A list of tags that may be assigned to the elements (object or property); the tags keyword may appear at any level. Tags may be used to better categorize an element. For example, finance, sensitive, employee_record.

Examples: "finance", "sensitive", "employee_record"
inputPorts InputPort[]

List of objects describing an input port. You need at least one as a data product needs to get data somewhere.

outputPorts OutputPort[]

List of objects describing an output port. You need at least one, as a data product without output is useless.

managementPorts ManagementPort[]

Management ports define access points for managing the data product.

support Support[]

Support and communication channels.

team object

Team information.

6 nested properties
name string

Team name.

description string

Team description.

members TeamMember[]

List of members.

tags string[]

A list of tags that may be assigned to the elements (object or property); the tags keyword may appear at any level. Tags may be used to better categorize an element. For example, finance, sensitive, employee_record.

Examples: "finance", "sensitive", "employee_record"
customProperties CustomProperty[]

Custom properties block.

authoritativeDefinitions AuthoritativeDefinition[]

Authoritative definitions block.

productCreatedTs string

Timestamp in UTC of when the data product was created, using ISO 8601.

format=date-time

Definitions

Tags string[]

A list of tags that may be assigned to the elements (object or property); the tags keyword may appear at any level. Tags may be used to better categorize an element. For example, finance, sensitive, employee_record.

Examples:
  • "finance"
  • "sensitive"
  • "employee_record"
Description object

Object containing the descriptions.

purpose string

Intended purpose for the provided data.

limitations string

Technical, compliance, and legal limitations for data use.

usage string

Recommended usage of the data.

authoritativeDefinitions AuthoritativeDefinition[]

List of links to sources that provide more details on the data contract.

customProperties CustomProperty[]

A list of key/value pairs for custom properties.

CustomProperty object

A key/value pair for custom properties.

property string required

The name of the key. Names should be in camel case, the same as if they were permanent properties in the contract.

value required

The value of the key.

description string

Optional description.

AuthoritativeDefinition object

A type/link pair for authoritative definitions.

type string required

Type of definition for authority.

Examples: "businessDefinition", "transformationImplementation", "videoTutorial", "tutorial", "implementation"
url string required

URL to the authority.

format=uri
description string

Optional description.

InputPort object

An input port describing expectations.

name string required

Name of the input port.

version string required

Version of the input port.

contractId string required

Contract ID for the input port.

tags string[]

A list of tags that may be assigned to the elements (object or property); the tags keyword may appear at any level. Tags may be used to better categorize an element. For example, finance, sensitive, employee_record.

Examples: "finance", "sensitive", "employee_record"
customProperties CustomProperty[]

Custom properties block.

authoritativeDefinitions AuthoritativeDefinition[]

Authoritative definitions block.

OutputPort object

An output port describing promises.

name string required

Name of the output port.

version string required

For each version, a different instance of the output port is listed. The combination of the name and version is the key.

description string

Human readable short description of the output port.

type string

There can be different types of output ports, each automated and handled differently. Here you can indicate the type.

contractId string

Contract ID for the output port.

sbom SBOM[]

The SBOM can/should be at the version level.

inputContracts InputContract[]

Dependencies or input contracts.

tags string[]

A list of tags that may be assigned to the elements (object or property); the tags keyword may appear at any level. Tags may be used to better categorize an element. For example, finance, sensitive, employee_record.

Examples: "finance", "sensitive", "employee_record"
customProperties CustomProperty[]

Custom properties block.

authoritativeDefinitions AuthoritativeDefinition[]

Authoritative definitions block.

SBOM object

Software Bill of Materials.

url string required

URL to the SBOM.

format=uri
type string

Type of SBOM.

Default: "external"
InputContract object

Input contract dependency.

id string required

Contract ID or contractId.

version string required

Version of the input contract.

ManagementPort object

Management port for managing the data product.

name string required

Endpoint identifier or unique name.

content string required

Content type.

Examples: "discoverability", "observability", "control", "dictionary"
type string

Type: can be rest or topic. Default is rest.

Default: "rest"
Examples: "rest", "topic"
url string

URL to access the endpoint.

format=uri
channel string

Channel to communicate with the data product.

description string

Purpose and usage.

tags string[]

A list of tags that may be assigned to the elements (object or property); the tags keyword may appear at any level. Tags may be used to better categorize an element. For example, finance, sensitive, employee_record.

Examples: "finance", "sensitive", "employee_record"
customProperties CustomProperty[]

Custom properties block.

authoritativeDefinitions AuthoritativeDefinition[]

Authoritative definitions block.

Support object

Support channel.

channel string required

Channel name or identifier.

url string required

Access URL using normal URL scheme (https, mailto, etc.).

format=uri
description string

Description of the channel, free text.

tool string

Name of the tool.

Examples: "email", "slack", "teams", "discord", "ticket", "other"
scope string

Scope can be: interactive, announcements, issues.

Examples: "interactive", "announcements", "issues"
invitationUrl string

Some tools uses invitation URL for requesting or subscribing. Follows the URL scheme.

format=uri
tags string[]

A list of tags that may be assigned to the elements (object or property); the tags keyword may appear at any level. Tags may be used to better categorize an element. For example, finance, sensitive, employee_record.

Examples: "finance", "sensitive", "employee_record"
customProperties CustomProperty[]

Custom properties block.

authoritativeDefinitions AuthoritativeDefinition[]

Authoritative definitions block.

TeamMember object

Team member information.

username string required

The user's username or email.

name string

The user's name.

description string

The user's description.

role string

The user's job role; Examples might be owner, data steward. There is no limit on the role.

dateIn string

The date when the user joined the team.

format=date
dateOut string

The date when the user ceased to be part of the team.

format=date
replacedByUsername string

The username of the user who replaced the previous user.

tags string[]

A list of tags that may be assigned to the elements (object or property); the tags keyword may appear at any level. Tags may be used to better categorize an element. For example, finance, sensitive, employee_record.

Examples: "finance", "sensitive", "employee_record"
customProperties CustomProperty[]

Custom properties block.

authoritativeDefinitions AuthoritativeDefinition[]

Authoritative definitions block.

Team object

Team information.

name string

Team name.

description string

Team description.

members TeamMember[]

List of members.

tags string[]

A list of tags that may be assigned to the elements (object or property); the tags keyword may appear at any level. Tags may be used to better categorize an element. For example, finance, sensitive, employee_record.

Examples: "finance", "sensitive", "employee_record"
customProperties CustomProperty[]

Custom properties block.

authoritativeDefinitions AuthoritativeDefinition[]

Authoritative definitions block.