Custom & Other Properties
This section covers other properties you may find in a data contract.
Custom Properties
This section covers custom properties you can use to add non-standard properties. This block is available in many sections.
Example
customProperties:
- id: rfc_ruleset_name
property: refRulesetName
value: gcsc.ruleset.name
- id: some_property_name
property: somePropertyName
value: property.value
- id: data_proc_cluster_name
property: dataprocClusterName # Used for specific applications
value: [ cluster name ]
description: Cluster name for specific applications
Definitions
| Key | Type | UX label | Required | Description |
|---|---|---|---|---|
| customProperties | array | Custom Properties | No | A list of key/value pairs for custom properties. Initially created to support the REF ruleset property. |
| customProperties.id | string | ID | No | A unique identifier for the element used to create stable, refactor-safe references. Recommended for elements that will be referenced. See References for more details. |
| customProperties.property | string | Property | No | The name of the key. Names should be in camel case–the same as if they were permanent properties in the contract. |
| customProperties.value | any | Value | No | The value of the key. It can be an array. |
| customProperties.description | string | Description | No | Description for humans. |
Avis: With version 3.2.0 the Description of 'customProperties.property' will be updated to "The name of the key. Could be in any notation. If this field is used for referencing it should be in camel case–the same as if they were permanent properties in the contract. Note that since ODCS version 3.1 the field 'customProperties.id' should be used for referencing purposes. In this case the name of the key could be human-readable and self-explanatory to the greatest extent."
Authoritative Definitions
Authoritative Definitions are an essential part of the contract. They allow to delegate the definition to a third party system like an enterprise catalog, repository, etc. The structure describing "Authoritative Definitions" is shared between all Bitol standards. This block is available in many sections.
Example
authoritativeDefinitions:
- url: https://catalog.data.gov/dataset/air-quality
type: businessDefinition
description: Business definition for the dataset.
- url: https://www.youtube.com/watch?v=Iq6SxdsIHHE
type: videoTutorial
description: Discover what a data contract is.
- url: https://github.com/bitol-io/open-data-contract-standard/blob/main/docs/examples/all/full-example.odcs.yaml
type: canonicalUrl
description: Data contract's latest version.
Definitions
| Key | Type | UX label | Required | Description |
|---|---|---|---|---|
| authoritativeDefinitions | array | Link | No | A list of type/link pairs for authoritative definitions. |
| authoritativeDefinitions.id | string | ID | No | A unique identifier for the element used to create stable, refactor-safe references. Recommended for elements that will be referenced. See References for more details. |
| authoritativeDefinitions.type | string | Definition type | Yes | Type of definition for authority. Recommended values are: businessDefinition, transformationImplementation, videoTutorial, tutorial, and implementation. At the root level, a type can also be canonicalUrl to indicate a reference to the data contract's latest version. |
| authoritativeDefinitions.url | string | URL to definition | Yes | URL to the authority. |
| authoritativeDefinitions.description | string | Description | No | Optional description. |
Other Properties
This section covers other properties you may find in a data contract.
Example
Other properties definition
| Key | Type | UX label | Required | Description |
|---|---|---|---|---|
| contractCreatedTs | string | Contract Created UTC | No | Timestamp in UTC of when the data contract was created, using ISO 8601. |