Releases: bitol-io/open-data-contract-standard
Releases · bitol-io/open-data-contract-standard
Version 3.1.0
Highlights
- Splits Main specification document into several smaller documents.
- Most sections have gained an optional
idto enable easier linking as per RFC 26. - The
teamblock is accepting both ODCS v3.0.x structure (now obsolete) or the updated RFC16 structure. The obsolete structure will be removed in ODCS v4. - Adds Relationships (Foreign Keys):
- Add
relationshipsarray field to bothSchemaObjectandSchemaPropertyto define foreign key relationships. - Support for property-level relationships where
fromfield is implicit. - Support for schema-level relationships with explicit
fromandtofields. - Support for composite foreign keys using arrays in
fromandtofields. - Support for nested property references using dot shorthand notation (e.g.,
accounts.address_street). - Support for nested property references using fully qualified references (e.g
/schema/schema_id/properties/my_property) - Add
customPropertiesto relationships for metadata like cardinality, labels, and descriptions. - New
Relationshipdefinition in JSON schema with fields:type: Type of relationship (defaults toforeignKey)from: Source property reference (optional at property level)to: Target property reference (required)customProperties: Additional metadata
- Add
- Breaking change to the JSON Schema (as a reminder the standard is not the JSON Schema but the textual document):
- Alter
exclusiveMaximumandexclusiveMinimumforinteger/numberlogical data type to benumberinstead ofboolean. Conforms with JSON Schema specification. - Alter
exclusiveMaximumandexclusiveMinimumfordatelogical data type to bestringinstead ofboolean. - No additional or unevaluated properties are allowed for the following sections of the schema:
authoritativeDefinitionscustomPropertiesdataQualitydataQualityCheckpriceroleschemaElementserverslaPropertiessupportteam
- Alter
teamto be an object instead of an array.- Adds
name,description,members,tags,customProperties,authoritativeDefinitionsfields toteam. - Adds
tags,customProperties,authoritativeDefinitionsfields toteam.members.
- Adds
- Alter
- Changes to logicalType and logicalTypeOptions:
- Add
timestampandtimetologicalTypeoptions. - Add
timezoneanddefaultTimezonetologicalTypeOptionsoptions fortimestampandtime.
- Add
- Changes to Quality
- Add a maintained library of commonly used quality metrics
rowCount,nullValues,invalidValues,duplicateValues, andmissingValues. - Add
scheduleandschedulerto data quality properties.
- Add a maintained library of commonly used quality metrics
- Changes to SLA:
- Add optional
descriptionfield to SLA entries for human-readable context.
- Add optional
- Changes to Support Channels:
- Change
urlfield to be optional. - Add
customPropertiesfield for additional metadata. - Add
notificationsas an example forscope - Add
googlechatas an example fortool
- Change
- Changes to Servers:
- AzureServer
formatnot longer an enum ofparquet,delta,json,csv, but rather a string with the same examples. - AzureServer
delimiternot longer an enum ofnew_line,array, but rather a string with the same examples. - S3Server
formatnot longer an enum ofparquet,delta,json,csv, but rather a string with the same examples. - S3Server
delimiternot longer an enum ofnew_line,array, but rather a string with the same examples. - SftpServer
formatnot longer an enum ofparquet,delta,json,csv, but rather a string with the same examples. - SftpServer
delimiternot longer an enum ofnew_line,array, but rather a string with the same examples. - Added HiveServer with type
hive. - Added ImpalaServer with type
impala - Duckdb schema was expecting an integer, but should expect a string.
- Added support for Actian Zen Server.
- Added missing
streamproperty to CustomServer.
- AzureServer
- Deprecations:
slaDefaultElementis deprecated, and will be removed in ODCS v4.0.0 (see RFC 21).- The
teamstructure has evolved. Both are valid, however the ODCS v3.0.x structure is deprecated (see RFC 16).
- Changes to custom properties and authoritative definitions:
- Add
descriptionfield to bothcustomPropertiesandauthoritativeDefinitions.
- Add
What's Changed
- Add Open Data Contract Standard Python package to vendors list by @simonharrer in #126
- Add in strict schema to ensure no additional properties not defined i… by @pflooky in #133
- Correction of typos by @jgperrin in #134
- fix tests by @simonharrer in #139
- Update AUTHORS.md by @simonharrer in #138
- Fix exlcusiveMaximum and exclusiveMinimum to be number type instead o… by @pflooky in #135
- Feature/format examples by @pflooky in #141
- Add in RFC-0017 date types by @pflooky in #142
- Update README.md by @jgperrin in #144
- Update vendors.md alphabetically by @tomdw in #143
- restore dev branch by @dccakes in #147
- doc: added tags into fundamentals def by @johnhroch in #148
- feat: add automatic light/dark mode toggle to mkdocs configuration by @jochenchrist in #151
- feat: add in RFC-09 and RFC-13 for v3.1.0 release by @dccakes in #146
- feat: add Hive server support to JSON schema and update documentation by @simonharrer in #153
- RFC 12 Quality Metrics by @jochenchrist in #149
- feat: deprecate slaDefaultElement in documentation by @simonharrer in #154
- feat: update SLA entries with optional description field by @simonharrer in #156
- feat: update support channel schema with optional fields and examples by @simonharrer in #157
- feat: add description field to custom properties and authoritative de… by @simonharrer in #158
- Add in codeowners file to get TSC approval for PRs by @pflooky in #160
- doc: add physicalType description for Elements by @a-vico in #165
- docs(TIDY UP): Update broken test docs and general cleanup by @PeteZ238 in #152
- Feature/update teams by @pflooky in #166
- chore(DEV SETUP): added Bash and PowerShell dev setup scripts by @p-y-t-h-e-c in #167
- bugfix: duckdb server schema was integer, but should be string by @simonharrer in #183
- feat: Add in schedule and scheduler to data quality properties by @pflooky in #185
- v3.1.0 by @jgperrin in #191
- Formatting tables by @jgperrin in #192
- Jgp cleaning+rfc25 by @jgperrin in #193
- docs(rfc-0026b): Update relationship language by @dccakes in #190
- Feature/merge main dev by @pflooky in #195
- feat(rfc-0026a) class wide id field by @dccakes in #194
- RFC 28 v2 + Cleaning of main doc by @jgperrin in #196
- RFC-16 continued support for old structure by @jochenchrist in #199
- Feature/mkdocs split by @pflooky in #200
- Refactor docs: Split README into 11 dedicated section files + update … by @jgperrin in #198
- Update CHANGELOG for v3.1.0 proposed changes by @jgperrin in #204
- Jgperrin finetune doc by @jgperrin in #205
- add impala server type by @simonharrer in #202
- fixed bug in json schema where the stream property was missing for cu… by @simonharrer in #203
- V3.1.0 review finally done by @jgperrin in #214
- This is it... release to v3.1.0 by @jgperrin in ...
Version 3.0.2
What's Changed
- Correct title of ApiServer by @markdumay in #108
- Fix link to data caterer by @andrewrjones in #109
- Add myself as a service provider by @andrewrjones in #110
- Make physicalType and logicalType optional (already in JSON schema, u… by @simonharrer in #112
- Update README.md by @jgperrin in #113
- Fix naming for required field for stagingDir in Athena Server by @ed-fbiberger in #118
- Add in common server properties table in docs README by @pflooky in #116
- add Expressing Date / Datetime / Timezone information to readme by @dccakes in #121
- Update README.md by @jgperrin in #122
- Add AgileLab to service providers by @tmnd1991 in #120
- Update full-example.odcs.yaml by @jgperrin in #123
- v3.0.2 release by @pflooky in #124
New Contributors
- @markdumay made their first contribution in #108
- @andrewrjones made their first contribution in #109
- @ed-fbiberger made their first contribution in #118
- @tmnd1991 made their first contribution in #120
Full Changelog: v3.0.1...v3.0.2
Version 3.0.1
Highlights
- Added field
authoritativeDefinitionsinto JSON schema - Added field
description.customPropertiesinto JSON schema - Added field
description.authoritativeDefinitionsinto JSON schema - Added field
role.customPropertiesinto JSON schema - Updated
statusfield to include examples - Updated
authoritativeDefinitionsdescription to be vendor agnostic - Updated
tagsdescription and included examples
What's Changed
- Fix doc site deploy, update changelog to show approved by @pflooky in #93
- Add custom properties in roles by @simonharrer in #94
- Fix apiVersion by @jochenchrist in #95
- Status is not related to dev/prod by @simonharrer in #96
- Add three new fields: by @simonharrer in #98
- Introduce examples for status by @simonharrer in #99
- Kafka schema examples by @dirkvandepoel in #101
- Add Meta Analysis to list of vendors by @msorel-meta in #103
- Issue add tags to readme by @dccakes in #105
- Create new JSON schema for v3.0.1, update changelog, update examples … by @pflooky in #104
- Dev by @pflooky in #106
New Contributors
- @msorel-meta made their first contribution in #103
- @dccakes made their first contribution in #105
Full Changelog: v3.0.0...v3.0.1
Version 3.0.0
Highlights
- New section: Support & communication channels.
- New section: Servers.
- Changes to fundamentals :
- Rename
uuidtoid. - Add
name. - Rename
quantumNametodataProductand make it optional. - Rename
datasetDomaintodomain(we avoid the dataset prefix). - Drop
datasetKind(example:virtualDataset, was optional, have not seen any usage). - Drop
userConsumptionMode(examples:analytical, was optional, already deprecated in v2.). - Drop
sourceSystem(example:bigQuery, information will be encoded in servers). - Drop
sourcePlatform(example:googleCloudPlatform, information will be encoded in servers). - Drop
productSlackChannel(will move to support channels). - Drop
productFeedbackUrl(will move to support channels). - Drop
productDl(will move to support channels). - Drop
username(credentials should not be stored in the data contract). - Drop
password(credentials should not be stored in the data contract). - Drop
driverVersion(will move to servers if needed). - Drop
driver(will move to servers if needed). - Drop
server(will move to servers if needed). - Drop
project(BigQuery-specific, will move to servers). - Drop
datasetName(BigQuery-specific, will move to servers). - Drop
database(BigQuery-specific, will move to servers). - Drop
schedulerAppName(not part of the contract).
- Rename
- Changes to Schema:
- Major changes, check spec.
- Adds support for non table formats, hierarchies, and arrays.
nameis a new fielditemsis a new fieldpriorTableNameis not supported anymore, if needed, consider a custom property.tableis not supported anymore, if needed, consider usingname.columnsis nowpropertiesdataGranularityis nowdataGranularityDescription.encryptedColumnNameis nowencryptedName.partitionStatusis nowpartitioned.clusterStatusis not supported anymore, if needed, consider a custom property.clusterKeyPositionis not supported anymore, if needed, consider a custom property.sampleValuesis nowexamples.isNullableis nowrequired.isUniqueis nowunique.isPrimaryKeyis nowprimaryKey.criticalDataElementStatusis nowcriticalDataElement.clusterKeyPositionis not supported anymore, if needed, consider a custom property.transformSourceTablesis nowtransformSourceObjects- Restrict
schema.*.logicalTypeto be one ofstring,date,number,integer,object,array,boolean. - Add
schema.*.logicalTypeOptions.
- Changes to Data Quality:
- Significant changes have been applied to support more tools and use cases. Please review the new section.
- If needed,
templateNameis a custom property. toolNameis obsolete, replaced bytype=custom; engine: <engine name>.scheduleCronExpressionis replaced byscheduleandscheduler.scheduleCronExpression: 0 20 * * *becomesschedule: 0 20 * * *andscheduler: cron.
- Pricing:
- No changes.
- Changes to Team (fka stakeholders):
- Replaces
stakeholders. Content stays the same.
- Replaces
- Changes to Role:
- Added
description - Changed
accessis not required anymore
- Added
- Security:
- No changes.
- Changes to SLA:
- Starting with v3, the schema is not purely tables and columns, hence minor modifications: columns are now elements.
slaDefaultColumnis nowslaDefaultElement.columnis nowelement.- Explicit reference to Data QoS.
- Changes to custom and other properties:
systemInstanceis not supported anymore, if needed, consider a custom property.
What's Changed
- Some examples included 'isPrimary', it should be 'isPrimaryKey' as pr… by @pflooky in #47
- Create vendors.md by @jgperrin in #51
- Update README.md by @jgperrin in #52
- Jgperrin patch 6 by @jgperrin in #53
- Update vendors.md by @simonharrer in #55
- Change schema file naming by @destouma in #56
- Add in data caterer as vendor, add vendor to docs site by @pflooky in #57
- Schemastore by @pflooky in #58
- Fixing a broken link for JSON Schema by @kidanekal in #60
- Rfc 0002 data types by @pflooky in #46
- RFC-5 Top Level Changes by @jochenchrist in #61
- Update markdown files in docs folder to use README file name, add in … by @pflooky in #62
- RFC 6 Support by @jgperrin in #63
- Explanation around rfc4 by @jgperrin in #64
- Update JSON Schema by @pflooky in #65
- Add properties key to logicalType object for nested fields. by @jochenchrist in #66
- Update database-table-sla.odcs.yaml by @jgperrin in #68
- More details in team member by @jgperrin in #67
- Add in data contract playground to vendors by @pflooky in #70
- RFC 7 by @jgperrin in #69
- Quality: Rename type implicit to library by @jochenchrist in #71
- Add Data Contract Manager to Vendor list by @jochenchrist in #72
- Rfc 7 update schema by @pflooky in #73
- Jgperrin's update on rfc1 by @jgperrin in #74
- Last changes for server by @simonharrer in #75
- Merge dev_v3 into dev by @jgperrin in #78
- ODCS 36 - Move script folder by @pflooky in #79
- Remove type from fundamentals by @pflooky in #81
- Update README.md by @dirkvandepoel in #83
- Update README.md by @dirkvandepoel in #84
- Update README.md by @jochenchrist in #85
- Last changes for server by @simonharrer in #88
- Add custom properties in schema by @simonharrer in #91
- Fix formatting issues in markdown that caused doc site to change text… by @pflooky in #89
- Dev by @pflooky in #92
New Contributors
- @simonharrer made their first contribution in #55
- @destouma made their first contribution in #56
- @kidanekal made their first contribution in #60
- @jochenchrist made their first contribution in #61
- @dirkvandepoel made their first contribution in #83
Full Changelog: v2.2.2...v3.0.0
Version 2.2.2
Highlights
- Change
dataset.descriptiondata type from array to string - Change
dataset.column.isPrimaryKeydata type from string to boolean - Change
price.priceAmountdata type from string to number - Change
slaProperties.valuedata type from string to oneOf[string, number] - Change
slaProperties.valueExtdata type from string to oneOf[string, number] - Update examples to adhere to JSON schema
- Full example from README directs to full-example.yaml
- Add in mkdocs for creating documentation website
What's Changed
- sync back w/ dev by @jgperrin in #27
- Dev examples fix schema by @pflooky in #31
- Documentation: Reorder definition tables to match examples by @chrfoyer in #32
- Update README.md by @jgperrin in #33
- Dev mkdocs by @pflooky in #35
- Update postgresql-adventureworks-contract.yaml by @jgperrin in #37
- Fixing the links to Issues and New Issue Page by @caladogan in #40
- Dev merge fix by @pflooky in #43
- RFC-0002 data types by @pflooky in #44
- Revert "RFC-0002 data types" by @pflooky in #45
- v2.2.2 release by @pflooky in #42
New Contributors
- @chrfoyer made their first contribution in #32
- @caladogan made their first contribution in #40
Full Changelog: v2.2.1...v2.2.2
Version 2.2.1
Highlights:
- Additional optional details for columns.
- Clarification of authoritative definitions.
- JSON Schema for validating contracts.
v2.2.1 is a non-breaking update of v2.2.0.
See CHANGELOG for a list of changes.
Version 2.2.0
Merge pull request #3 from AIDAUserGroup/dev v2.2 release