Skip to content

Commit f313988

Browse files
authored
Merge pull request #106 from bitol-io/dev
Dev
2 parents 66b46a3 + e645ae9 commit f313988

25 files changed

+2529
-76
lines changed

.github/workflows/validate-examples.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
name: validate-examples
22
on:
3+
pull_request:
4+
branches: ["*"]
35
push:
46
branches: ["*"]
57

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,16 @@ image: "https://raw.githubusercontent.com/bitol-io/artwork/main/horizontal/color
66

77
This document tracks the history and evolution of the **Open Data Contract Standard**.
88

9+
# v3.0.1 - 2024-12-22 - APPROVED
10+
11+
* Added field `authoritativeDefinitions` into JSON schema
12+
* Added field `description.customProperties` into JSON schema
13+
* Added field `description.authoritativeDefinitions` into JSON schema
14+
* Added field `role.customProperties` into JSON schema
15+
* Updated `status` field to include examples
16+
* Updated `authoritativeDefinitions` description to be vendor agnostic
17+
* Updated `tags` description and included examples
18+
919
# v3.0.0 - 2024-10-21 - APPROVED
1020

1121
* **New section**: Support & communication channels.

docs/README.md

Lines changed: 35 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,13 @@ This section contains general information about the contract.
4343
### Example
4444

4545
```YAML
46-
apiVersion: v3.0.0 # Standard version
46+
apiVersion: v3.0.1 # Standard version
4747
kind: DataContract
4848

4949
id: 53581432-6c55-4ba2-a65f-72344a91553a
5050
name: seller_payments_v1
5151
version: 1.1.0 # Data Contract Version
52-
status: production
52+
status: active
5353
domain: seller
5454
dataProduct: payments
5555
tenant: ClimateQuantumInc
@@ -59,26 +59,30 @@ description:
5959
limitations: null
6060
usage: null
6161

62-
tags: null
62+
tags: ['finance']
6363
```
6464
6565
### Definitions
6666
67-
| Key | UX label | Required | Description |
68-
|-------------------------|------------------|----------|------------------------------------------------------------------------------------------------|
69-
| apiVersion | Standard version | Yes | Version of the standard used to build data contract. Default value is `v3.0.0`. |
70-
| kind | Kind | Yes | The kind of file this is. Valid value is `DataContract`. |
71-
| id | ID | Yes | A unique identifier used to reduce the risk of dataset name collisions, such as a UUID. |
72-
| name | Name | No | Name of the data contract. |
73-
| version | Version | Yes | Current version of the data contract. |
74-
| status | Status | Yes | Current status of the data contract. Valid values are `production`, `test`, or `development`. |
75-
| tenant | Tenant | No | Indicates the property the data is primarily associated with. Value is case insensitive. |
76-
| domain | Domain | No | Name of the logical data domain. |
77-
| dataProduct | Data Product | No | Name of the data product. |
78-
| description | Description | No | Object containing the descriptions. |
79-
| description.purpose | Purpose | No | Intended purpose for the provided data. |
80-
| description.limitations | Limitations | No | Technical, compliance, and legal limitations for data use. |
81-
| description.usage | Usage | No | Recommended usage of the data. |
67+
| Key | UX label | Required | Description |
68+
|--------------------------------------|---------------------------|----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
69+
| apiVersion | Standard version | Yes | Version of the standard used to build data contract. Default value is `v3.0.1`. |
70+
| kind | Kind | Yes | The kind of file this is. Valid value is `DataContract`. |
71+
| id | ID | Yes | A unique identifier used to reduce the risk of dataset name collisions, such as a UUID. |
72+
| name | Name | No | Name of the data contract. |
73+
| version | Version | Yes | Current version of the data contract. |
74+
| status | Status | Yes | Current status of the data contract. Examples are "proposed", "draft", "active", "deprecated", "retired". |
75+
| tenant | Tenant | No | Indicates the property the data is primarily associated with. Value is case insensitive. |
76+
| domain | Domain | No | Name of the logical data domain. |
77+
| dataProduct | Data Product | No | Name of the data product. |
78+
| authoritativeDefinitions | Authoritative Definitions | No | List of links to sources that provide more details on the data contract. |
79+
| description | Description | No | Object containing the descriptions. |
80+
| description.purpose | Purpose | No | Intended purpose for the provided data. |
81+
| description.limitations | Limitations | No | Technical, compliance, and legal limitations for data use. |
82+
| description.usage | Usage | No | Recommended usage of the data. |
83+
| description.authoritativeDefinitions | Authoritative Definitions | No | List of links to sources that provide more details on the dataset; examples would be a link to privacy statement, terms and conditions, license agreements, data catalog, or another tool. |
84+
| description.customProperties | Custom Properties | No | Custom properties that are not part of the standard. |
85+
8286

8387

8488
## Schema
@@ -112,7 +116,7 @@ schema:
112116
type: businessDefinition
113117
- url: https://youtu.be/jbY1BKFj9ec
114118
type: videoTutorial
115-
tags: null
119+
tags: ['finance']
116120
dataGranularityDescription: Aggregation on columns txn_ref_dt, pmt_txn_id
117121
properties:
118122
- name: txn_ref_dt
@@ -214,16 +218,16 @@ schema:
214218

215219
#### Applicable to Elements (either Objects or Properties)
216220

217-
| Key | UX label | Required | Description |
218-
|--------------------------|------------------------------|----------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
219-
| name | Name | Yes | Name of the element. |
220-
| physicalName | Physical Name | No | Physical name. |
221-
| description | Description | No | Description of the element. |
222-
| businessName | Business Name | No | The business name of the element. |
223-
| authoritativeDefinitions | Authoritative Definitions | No | List of links to sources that provide more details on the table; examples would be a link to an external definition, a training video, a GitHub repo, Collibra, or another tool. See `authoritativeDefinitions` below. |
224-
| quality | Quality | No | List of data quality attributes. |
225-
| tags | Tags | No | A list of tags that may be assigned to the elements (object or property); the tags keyword may appear at any level. |
226-
| customProperties | Custom Properties | No | Custom properties that are not part of the standard. |
221+
| Key | UX label | Required | Description |
222+
|--------------------------|------------------------------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
223+
| name | Name | Yes | Name of the element. |
224+
| physicalName | Physical Name | No | Physical name. |
225+
| description | Description | No | Description of the element. |
226+
| businessName | Business Name | No | The business name of the element. |
227+
| authoritativeDefinitions | Authoritative Definitions | No | List of links to sources that provide more details on the element; examples would be a link to privacy statement, terms and conditions, license agreements, data catalog, or another tool. |
228+
| quality | Quality | No | List of data quality attributes. |
229+
| tags | Tags | No | 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`. |
230+
| customProperties | Custom Properties | No | Custom properties that are not part of the standard. |
227231

228232
#### Applicable to Objects
229233

@@ -643,6 +647,7 @@ roles:
643647
| roles.access | Access | No | The type of access provided by the IAM role. |
644648
| roles.firstLevelApprovers | 1st Level Approvers | No | The name(s) of the first-level approver(s) of the role. |
645649
| roles.secondLevelApprovers | 2nd Level Approvers | No | The name(s) of the second-level approver(s) of the role. |
650+
| roles.customProperties | Custom Properties | No | Any custom properties. |
646651

647652

648653
## Service-Level Agreement (SLA)
@@ -733,7 +738,7 @@ servers:
733738
- **description**: A description of the server.
734739
- **environment**: The environment where the server operates (e.g., `prod`, `dev`, `uat`). There are no set values.
735740
- **roles**: An optional array of roles that have access to the server.
736-
- **customProperties**: Any additional custom properties specific to the server.
741+
- **customProperties**: Any additional custom properties specific to the server that are not part of the standard.
737742

738743
### Specific Server Properties
739744

docs/examples/all/full-example.odcs.yaml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,21 @@
22
domain: seller # Domain
33
dataProduct: my quantum # Data product name
44
version: 1.1.0 # Version (follows semantic versioning)
5-
status: current
5+
status: active
66
id: 53581432-6c55-4ba2-a65f-72344a91553a
77

88
# Lots of information
99
description:
1010
purpose: Views built on top of the seller tables.
1111
limitations: Data based on seller perspective, no buyer information
1212
usage: Predict sales over time
13+
authoritativeDefinitions:
14+
- type: privacy-statement
15+
url: https://example.com/gdpr.pdf
1316
tenant: ClimateQuantumInc
1417

1518
kind: DataContract
16-
apiVersion: v3.0.0 # Standard version (follows semantic versioning)
19+
apiVersion: v3.0.1 # Standard version (follows semantic versioning)
1720

1821
# Infrastructure & servers
1922
servers:
@@ -35,7 +38,7 @@ schema:
3538
type: businessDefinition
3639
- url: https://youtu.be/jbY1BKFj9ec
3740
type: videoTutorial
38-
tags: [ ]
41+
tags: [ 'finance', 'payments']
3942
dataGranularityDescription: Aggregation on columns txn_ref_dt, pmt_txn_id
4043
properties:
4144
- name: txn_ref_dt
@@ -74,7 +77,7 @@ schema:
7477
partitioned: false
7578
partitionKeyPosition: -1
7679
criticalDataElement: false
77-
tags: [ ]
80+
tags: [ 'uid' ]
7881
classification: restricted
7982
- name: rcvr_cntry_code
8083
primaryKey: false

docs/examples/all/postgresql-adventureworks-contract.odcs.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
version: "1.0.0"
22
apiVersion: "v3.0.0"
33
id: "6aeafdc1-ed62-4c8f-bf0a-da1061c98cdb"
4-
status: "Development"
4+
status: active
55
kind: "DataContract"
66
description: {}
7-
schema:
7+
schema:
88
- name: "department"
99
physicalName: "department"
1010
physicalType: "table"
@@ -82,6 +82,7 @@ schema:
8282
criticalDataElement: false
8383
primaryKey: false
8484
required: false
85+
tags: ['sensitive']
8586
- name: "loginid"
8687
logicalType: "string"
8788
physicalType: "varchar[256]"
@@ -115,6 +116,7 @@ schema:
115116
criticalDataElement: false
116117
primaryKey: false
117118
required: false
119+
tags: ['sensitive']
118120
- name: "maritalstatus"
119121
logicalType: "string"
120122
physicalType: "bpchar"

docs/examples/data-types/all-data-types.odcs.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
version: 1.0.0
22
kind: DataContract
33
id: 53581432-6c55-4ba2-a65f-72344a91553a
4-
status: current
4+
status: active
55
name: my_table
66
dataProduct: my_quantum
7-
apiVersion: v3.0.0
7+
apiVersion: v3.0.1
88
schema:
99
- name: transactions_tbl
1010
description: Provides core payment metrics

docs/examples/fundamentals/table-column-description.odcs.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
version: 1.0.0
22
kind: DataContract
33
id: 53581432-6c55-4ba2-a65f-72344a91553a
4-
status: current
4+
status: active
55
name: my_quantum
6-
apiVersion: v3.0.0
6+
apiVersion: v3.0.1
77
schema:
88
- name: tbl
99
description: Provides core payment metrics

docs/examples/quality/column-accuracy.odcs.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
version: 1.0.0
22
kind: DataContract
33
id: 53581432-6c55-4ba2-a65f-72344a91553a
4-
status: current
4+
status: active
55
name: my_table
66
dataProduct: my_quantum
7-
apiVersion: v3.0.0
7+
apiVersion: v3.0.1
88
schema:
99
- name: Air_Quality
1010
description: Air quality of the city of New York

docs/examples/quality/column-completeness.odcs.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
version: 1.0.0
2-
apiVersion: v3.0.0
2+
apiVersion: v3.0.1
33
kind: DataContract
44
id: 53581432-6c55-4ba2-a65f-72344a91553a
5-
status: current
5+
status: active
66
name: my_table
77
dataProduct: my_quantum
88
schema:
@@ -13,6 +13,7 @@ schema:
1313
type: Reference definition on Data.gov
1414
dataGranularityDescription: Raw records
1515
physicalType: table
16+
tags: ['nyc', 'regional']
1617
properties:
1718
- name: UniqueID
1819
primaryKey: true
@@ -24,4 +25,4 @@ schema:
2425
dimension: completeness
2526
severity: error
2627
rule: nullCheck
27-
businessImpact: operational
28+
businessImpact: operational

docs/examples/quality/column-custom.odcs.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
version: 1.0.0
2-
apiVersion: v3.0.0
2+
apiVersion: v3.0.1
33
kind: DataContract
44
id: 53581432-6c55-4ba2-a65f-72344a91553a
5-
status: current
5+
status: active
66
name: my_table
77
dataProduct: my_quantum
88
schema:

docs/examples/quality/column-validity.odcs.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
version: 1.0.0
2-
apiVersion: v3.0.0
2+
apiVersion: v3.0.1
33
kind: DataContract
44
id: 53581432-6c55-4ba2-a65f-72344a91553a
5-
status: current
5+
status: active
66
name: my_table
77
dataProduct: my_quantum
88
schema:

0 commit comments

Comments
 (0)