Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create new JSON schema for v3.0.1, update changelog, update examples … #104

Merged
merged 6 commits into from
Jan 8, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/validate-examples.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
name: validate-examples
on:
pull_request:
branches: ["*"]
push:
branches: ["*"]

Expand Down
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,16 @@ image: "https://raw.githubusercontent.com/bitol-io/artwork/main/horizontal/color

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

# v3.0.1 - 2024-12-22 - APPROVED

* Added field `authoritativeDefinitions` into JSON schema
* Added field `description.customProperties` into JSON schema
* Added field `description.authoritativeDefinitions` into JSON schema
* Added field `role.customProperties` into JSON schema
* Updated `status` field to include examples
* Updated `authoritativeDefinitions` description to be vendor agnostic
* Updated `tags` description and included examples

# v3.0.0 - 2024-10-21 - APPROVED

* **New section**: Support & communication channels.
Expand Down
13 changes: 6 additions & 7 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ This section contains general information about the contract.
### Example

```YAML
apiVersion: v3.0.0 # Standard version
apiVersion: v3.0.1 # Standard version
kind: DataContract

id: 53581432-6c55-4ba2-a65f-72344a91553a
Expand All @@ -66,16 +66,16 @@ tags: ['finance']

| Key | UX label | Required | Description |
|--------------------------------------|---------------------------|----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| apiVersion | Standard version | Yes | Version of the standard used to build data contract. Default value is `v3.0.0`. |
| apiVersion | Standard version | Yes | Version of the standard used to build data contract. Default value is `v3.0.1`. |
| kind | Kind | Yes | The kind of file this is. Valid value is `DataContract`. |
| id | ID | Yes | A unique identifier used to reduce the risk of dataset name collisions, such as a UUID. |
| name | Name | No | Name of the data contract. |
| version | Version | Yes | Current version of the data contract. |
| status | Status | Yes | Current status of the data contract. Examples are "proposed", "draft", "active", "deprecated", "retired". |
| status | Status | Yes | Current status of the data contract. Examples are "proposed", "draft", "active", "deprecated", "retired". |
| tenant | Tenant | No | Indicates the property the data is primarily associated with. Value is case insensitive. |
| domain | Domain | No | Name of the logical data domain. |
| dataProduct | Data Product | No | Name of the data product. |
| authoritativeDefinitions | Authoritative Definitions | No | List of links to sources that provide more details on the data contract. |
| authoritativeDefinitions | Authoritative Definitions | No | List of links to sources that provide more details on the data contract. |
| description | Description | No | Object containing the descriptions. |
| description.purpose | Purpose | No | Intended purpose for the provided data. |
| description.limitations | Limitations | No | Technical, compliance, and legal limitations for data use. |
Expand Down Expand Up @@ -218,14 +218,13 @@ schema:

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


| Key | UX label | Required | Description |
|--------------------------|------------------------------|----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| name | Name | Yes | Name of the element. |
| physicalName | Physical Name | No | Physical name. |
| description | Description | No | Description of the element. |
| businessName | Business Name | No | The business name of the element. |
| 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. |
| 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. |
| quality | Quality | No | List of data quality attributes. |
| 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`. |
| customProperties | Custom Properties | No | Custom properties that are not part of the standard. |
Expand Down Expand Up @@ -648,7 +647,7 @@ roles:
| roles.access | Access | No | The type of access provided by the IAM role. |
| roles.firstLevelApprovers | 1st Level Approvers | No | The name(s) of the first-level approver(s) of the role. |
| roles.secondLevelApprovers | 2nd Level Approvers | No | The name(s) of the second-level approver(s) of the role. |
| roles.customProperties | Custom Properties | No | Any custom properties. |
| roles.customProperties | Custom Properties | No | Any custom properties. |


## Service-Level Agreement (SLA)
Expand Down
6 changes: 3 additions & 3 deletions docs/examples/all/full-example.odcs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ description:
limitations: Data based on seller perspective, no buyer information
usage: Predict sales over time
authoritativeDefinitions:
type: privacy-statement
url: https://example.com/gdpr.pdf
- type: privacy-statement
url: https://example.com/gdpr.pdf
tenant: ClimateQuantumInc

kind: DataContract
apiVersion: v3.0.0 # Standard version (follows semantic versioning)
apiVersion: v3.0.1 # Standard version (follows semantic versioning)

# Infrastructure & servers
servers:
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/data-types/all-data-types.odcs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ id: 53581432-6c55-4ba2-a65f-72344a91553a
status: active
name: my_table
dataProduct: my_quantum
apiVersion: v3.0.0
apiVersion: v3.0.1
schema:
- name: transactions_tbl
description: Provides core payment metrics
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ kind: DataContract
id: 53581432-6c55-4ba2-a65f-72344a91553a
status: active
name: my_quantum
apiVersion: v3.0.0
apiVersion: v3.0.1
schema:
- name: tbl
description: Provides core payment metrics
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/quality/column-accuracy.odcs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ id: 53581432-6c55-4ba2-a65f-72344a91553a
status: active
name: my_table
dataProduct: my_quantum
apiVersion: v3.0.0
apiVersion: v3.0.1
schema:
- name: Air_Quality
description: Air quality of the city of New York
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/quality/column-completeness.odcs.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
version: 1.0.0
apiVersion: v3.0.0
apiVersion: v3.0.1
kind: DataContract
id: 53581432-6c55-4ba2-a65f-72344a91553a
status: active
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/quality/column-custom.odcs.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
version: 1.0.0
apiVersion: v3.0.0
apiVersion: v3.0.1
kind: DataContract
id: 53581432-6c55-4ba2-a65f-72344a91553a
status: active
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/quality/column-validity.odcs.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
version: 1.0.0
apiVersion: v3.0.0
apiVersion: v3.0.1
kind: DataContract
id: 53581432-6c55-4ba2-a65f-72344a91553a
status: active
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ status: active
name: my_table
dataProduct: my_quantum
schema: []
apiVersion: v3.0.0
apiVersion: v3.0.1
roles:
- role: microstrategy_user_opr
access: read
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/schema/all-schema-types.odcs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ kind: DataContract
id: 53581432-6c55-4ba2-a65f-72344a91553a
status: active
name: my_quantum
apiVersion: v3.0.0
apiVersion: v3.0.1
schema:
- name: tbl
logicalType: object
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/schema/kafka-schema.odcs.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: v3.0.0
apiVersion: v3.0.1
kind: DataContract
id: orders
status: development
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/schema/kafka-schemaregistry.odcs.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: v3.0.0
apiVersion: v3.0.1
kind: DataContract
id: orders
status: production
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/schema/table-column.odcs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ id: 53581432-6c55-4ba2-a65f-72344a91553b
status: active
name: my_table
dataProduct: my_quantum
apiVersion: v3.0.0
apiVersion: v3.0.1
schema:
- name: tbl
physicalType: table
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ id: 53581432-6c55-4ba2-a65f-72344a91553c
status: active
name: my_table
dataProduct: my_quantum
apiVersion: v3.0.0
apiVersion: v3.0.1
schema:
- name: tbl
physicalType: table
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/server/azure-server.odcs.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
version: 1.0.0
apiVersion: v3.0.0
apiVersion: v3.0.1
kind: DataContract
id: abc123
status: in development
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/server/kafka-server.odcs.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
version: 1.0.0
apiVersion: v3.0.0
apiVersion: v3.0.1
kind: DataContract
id: abc123
status: in development
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/sla/database-table-sla.odcs.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
version: 1.0.0
apiVersion: v3.0.0
apiVersion: v3.0.1
kind: DataContract
id: 53581432-6c55-4ba2-a65f-72344a91553a
status: active
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/stakeholders/basic-four-dpo.odcs.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
version: 1.0.0
apiVersion: v3.0.0
apiVersion: v3.0.1
kind: DataContract
id: 53581432-6c55-4ba2-a65f-72344a91553a
status: active
Expand Down
6 changes: 3 additions & 3 deletions schema/odcs-json-schema-latest.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
},
"apiVersion": {
"type": "string",
"default": "v3.0.0",
"description": "Version of the standard used to build data contract. Default value is v3.0.0.",
"enum": ["v3.0.0", "v2.2.2", "v2.2.1", "v2.2.0"]
"default": "v3.0.1",
"description": "Version of the standard used to build data contract. Default value is v3.0.1.",
"enum": ["v3.0.1", "v3.0.0", "v2.2.2", "v2.2.1", "v2.2.0"]
},
"id": {
"type": "string",
Expand Down
2 changes: 1 addition & 1 deletion schema/odcs-json-schema-v3.0.0.json
Original file line number Diff line number Diff line change
Expand Up @@ -1901,7 +1901,7 @@
},
"Tags": {
"type": "array",
"description": "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`.",
"description": "A list of tags that may be assigned to the elements (object or property); the tags keyword may appear at any level.",
"items": {
"type": "string"
}
Expand Down
Loading
Loading