Dev v3.2.0 - #315
Closed
jgperrin wants to merge 36 commits into
Closed
Conversation
As discussed in the working group added an avis for an updated description for version 3.2.0.
The v3.1.0 standard deprecates `dataProduct`, but neither the v3.1.0 JSON schema, the `latest` JSON schema, nor `docs/fundamentals.md` reflected the deprecation. Adds `"deprecated": true` to both schemas and strikes through the property in the docs table. Closes #226. Supersedes #238 (which mishandled the dated-snapshot naming convention; that policy lives on `dev` and is not in scope here). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add ContractGate to official ODCS vendors list
Update vendors.md
… fix v3.1.0 is a released line, so the silent-update rule applies: any modification to `odcs-json-schema-v3.1.0.json` should be accompanied by a frozen dated snapshot so downstream consumers who pin a specific day's validator can recover the exact bytes. Snapshot file equals the patched rolling file (`deprecated: true` on `dataProduct`) at this commit. UTC committer date is 2026-05-05. Refs #226, #274. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ustomProperties.property Update custom-other-properties.md
Avis was supposed to be under the table.
…ition Update custom-other-properties.md
…v3.1.0 fix(schema): mark dataProduct as deprecated in v3.1.0
Signed-off-by: Speculator55005 <50082482+fas89@users.noreply.github.com>
Update vendors.md
Aligns the external shorthand reference example with the fully-qualified example above it (both use '#/'). Same fix as #221 (merged to dev), applied here to the dev-v3.2.0 line. Claude-Session: https://claude.ai/code/session_01Adou6Wv1WCxD3JzmMkewvY Co-authored-by: FriedrichBu <FriedrichBu@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds a single vendor entry for Collate, the managed cloud service built on the open-source OpenMetadata platform, with direct ODCS documentation links for both. Reconstructed from #232 against dev-v3.2.0. Claude-Session: https://claude.ai/code/session_01Adou6Wv1WCxD3JzmMkewvY Co-authored-by: PubChimps <PubChimps@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Allow both .yaml and .yml file extensions in external references (\.yaml# -> \.ya?ml#) in odcs-json-schema-latest.json. Clean reapplication of #220, which also injected a stray leading 'r' into the pattern, edited the frozen v3.1.0 schema, and reformatted the whole file. This applies only the intended change to the latest schema. Claude-Session: https://claude.ai/code/session_01Adou6Wv1WCxD3JzmMkewvY Co-authored-by: FriedrichBu <FriedrichBu@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
PR #285 merged a stale single-file revision (latest.json only) due to a force-push/merge race, dropping the rolling-minor sync. Per schema/README.md, the .yaml->.ya?ml relaxation must also live in the rolling v3.2.0 file so latest and v3.2.0 stay consistent. - schema/odcs-json-schema-v3.2.0.json: apply \.yaml# -> \.ya?ml# - schema/README.md: v3.2.0 snapshot changelog entry (2026-06-23) Frozen v3.1.0 schema intentionally untouched. Claude-Session: https://claude.ai/code/session_01Adou6Wv1WCxD3JzmMkewvY Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
logicalType is valid on schema objects (the JSON schema allows it on SchemaObject, and the examples use logicalType: object), but the schema docs only listed it under 'Applicable to Properties'. Move it to the shared 'Applicable to Elements (either Objects or Properties)' table and note its object-level usage. logicalTypeOptions, items, and map remain property-specific. Closes #228. Claude-Session: https://claude.ai/code/session_01Adou6Wv1WCxD3JzmMkewvY Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Brings main-only work into the v3.2.0 line so it is not lost when the release chain (dev-v3.2.0 -> dev -> main) eventually runs: - dataProduct deprecation (#274/#226): schema + fundamentals.md - FLUID Forge, Data Contract Editor, Entropy Data vendors; richer Data Contract CLI description (#279/#272 et al.) - custom-other-properties.md edits (#270/#275) - v3.1.0-20260505 dated snapshot Conflict resolutions: - docs/fundamentals.md: keep the v3.2.0 table (apiVersion default v3.2.0, status optional per schema) AND mark dataProduct deprecated (from main). - vendors.md: union of both native-support lists (Collate + Data Contract Manager from v3.2.0 line; FLUID Forge etc. from main). Also synced the dataProduct deprecation note into odcs-json-schema-v3.2.0.json to keep it consistent with latest.json (per schema/README.md). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Adou6Wv1WCxD3JzmMkewvY
Reconcile main into dev-v3.2.0 (no main-only work lost)
…293) Implements approved RFC-0043 (Physical Data Encoding) for ODCS v3.2.0. Adds an optional free-form `encoding` string to the server types that expose serialized payloads (Azure, Glue, Custom, Kafka, Kinesis, Local, S3, SFTP), alongside `format`/`delimiter`. Default UTF-8, non-breaking. - schema: encoding on 8 server defs in both latest + v3.2.0 (lockstep) - docs: encoding row in infrastructure-servers.md for those servers - example: docs/examples/server/s3-server-encoding.odcs.yaml (validated) - negative test: server-encoding-wrong-type.odcs.yaml (schema rejects) - CHANGELOG entry Approved RFC: https://github.com/bitol-io/tsc/blob/main/rfcs/approved/odcs-v3.2.0/0043-physical-data-encoding.md Claude-Session: https://claude.ai/code/session_01Adou6Wv1WCxD3JzmMkewvY Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…properties (#294) Implements approved RFC-0028 (Deprecated flag), shared with ODPS v1.1.0, for ODCS v3.2.0. Adds an optional `deprecated` boolean (default false) on SchemaElement, which both schema objects and properties (including nested) inherit — mirroring the synonyms placement. - schema: deprecated on SchemaElement in both latest + v3.2.0 (lockstep) - docs: deprecated row in schema.md + a Deprecated section - example: docs/examples/schema/deprecated.odcs.yaml (validated) - negative test: deprecated-wrong-type.odcs.yaml (schema rejects non-boolean) - CHANGELOG entry Approved RFC: https://github.com/bitol-io/tsc/blob/main/rfcs/approved/odcs-v3.2.0/0028-deprecated-flag.md Claude-Session: https://claude.ai/code/session_01Adou6Wv1WCxD3JzmMkewvY Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Implements approved RFC-0035 (Vendor Attribution), shared with ODPS v1.1.0 and OORS v1.0.0, for ODCS v3.2.0. Adds an optional `vendor` string to CustomProperty. Per the RFC, vendor SHOULD be lowercase / match ^[a-z0-9][a-z0-9-]*$ but this is NOT enforced as a schema pattern (tools MUST preserve unknown vendor values); the recommended format is documented. - schema: vendor on CustomProperty in both latest + v3.2.0 (lockstep) - docs: vendor row in custom-other-properties.md - example: docs/examples/custom-other-properties/vendor.odcs.yaml (validated) - negative test: vendor-wrong-type.odcs.yaml (schema rejects non-string) - CHANGELOG entry Approved RFC: https://github.com/bitol-io/tsc/blob/main/rfcs/approved/odcs-v3.2.0/0035-extensions.md Claude-Session: https://claude.ai/code/session_01Adou6Wv1WCxD3JzmMkewvY Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Update all ODCS references to the deprecated-flag RFC from 0028 to 0051 after the number was renumbered in bitol-io/tsc to resolve a collision with the earlier RFC-0028 (Permalink). Claude-Session: https://claude.ai/code/session_01FRgkVBM2ry2NQecEAeddnN Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Implements approved RFC-0042 (Vector Type) for ODCS v3.2.0. Adds a `vector` value to the logicalType enum and a conditional logicalTypeOptions block (if logicalType==vector) with required `dimensions` plus optional `elementType`, `distanceMetric`, `normalized`, `embeddingModel`, and `embeddingModelVersion`. Field names are those the TSC ratified at approval (`dimensions`, `elementType`). - schema: vector enum value + conditional options block in both latest + v3.2.0 (lockstep); `dimensions` required when logicalType==vector - docs: vector rows in Logical Type Options table + a Vectors section in schema.md - example: docs/examples/schema/vector.odcs.yaml (validated) - negative test: vector-missing-dimensions.odcs.yaml (schema rejects: missing dimensions) - CHANGELOG entry Approved RFC: https://github.com/bitol-io/tsc/blob/main/rfcs/approved/odcs-v3.2.0/0042-vector-type.md Claude-Session: https://claude.ai/code/session_01Adou6Wv1WCxD3JzmMkewvY Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Implements approved RFC-0045 for ODCS v3.2.0. Adds `hana` to the server type enum, a HanaServer ServerSource def, and the type->$ref mapping. Required `host` plus optional `port`, `database` (tenant), and `schema`. Note: the RFC lists `port` as "number"; implemented as integer to match every other server type (a port is an integer). - schema: hana enum value + HanaServer def + oneOf mapping in both latest + v3.2.0 (lockstep); only `host` required - docs: SAP HANA section in infrastructure-servers.md - example: docs/examples/server/hana-server.odcs.yaml (validated) - negative test: hana-missing-host.odcs.yaml (schema rejects: missing host) - CHANGELOG entry Approved RFC: https://github.com/bitol-io/tsc/blob/main/rfcs/approved/odcs-v3.2.0/0045-hana-server-type.md Claude-Session: https://claude.ai/code/session_01Adou6Wv1WCxD3JzmMkewvY Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…n SLA properties (#299) Implements approved RFC-0046 for ODCS v3.2.0. Adds optional `customProperties` and `authoritativeDefinitions` (reusing the existing $defs) to each slaProperties[] entry, consistent with other ODCS objects. - schema: both fields on ServiceLevelAgreementProperty in both latest + v3.2.0 (lockstep) - docs: two rows in service-level-agreement.md - example: docs/examples/sla/sla-extensions.odcs.yaml (validated) - negative test: sla-authoritativedefinition-missing-type.odcs.yaml (schema rejects: authoritativeDefinitions entry missing required `type`) - CHANGELOG entry Approved RFC: https://github.com/bitol-io/tsc/blob/main/rfcs/approved/odcs-v3.2.0/0046-sla-custom-properties-and-authoritative-definitions.md Claude-Session: https://claude.ai/code/session_01Adou6Wv1WCxD3JzmMkewvY Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…faults (#300) Applies approved RFC-0050 (Variables) to ODCS v3.2.0: any string value MAY contain ${VAR_NAME} references resolved at runtime by tooling, with the POSIX ${VAR_NAME:-default} form for inline defaults (Option B, TSC 2026-07-13). No schema change — the RFC adds no section or field. New docs page, example, and a negative test (variable token in an integer-typed field is rejected). Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Applies approved RFC-0047 to ODCS v3.2.0: a new optional `id` string on RelationshipBase (surfaced on schema-level and property-level relationships), completing RFC-0026a's stable-identifier coverage. Unique within its relationships array; SHOULD be stable; cannot contain . # / \ @ ! % & ^. Both schema files updated in lockstep; references.md field table + example extended. No negative-test fixture: the RFC adds only an optional string with no schema-enforced pattern/uniqueness (id-format rules are textual, like every other ODCS id), so there is no schema-level violation to assert. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Applies approved RFC-0049 to ODCS v3.2.0: new `iceberg` server type for Apache Iceberg catalogs via the Iceberg REST API. Both schema files updated in lockstep — enum value, conditional dispatch, and IcebergServer def with required catalog + catalogUrl (per the RFC field table / TSC decision) and optional namespace + warehouse. Docs section, positive example, and a negative test (missing catalogUrl → rejected). Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ssary/taxonomy) (#304) The contract-level context example in docs/context.md documented authoritativeDefinitions in the Definitions table but no longer showed it in use. Re-add the Ontology/Glossary/Taxonomy authoritativeDefinitions block on a constraint, matching the approved RFC-0038 example. Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
The variables RFC allows ${VAR_NAME} references in string values only,
which made it impossible to parameterize server ports: the unresolved
token is a string and the integer-typed port rejected it.
Relax all 19 server port definitions via a shared Port $def typed as
integer or string, so a port can hold a variable reference such as
${DB_PORT} or ${DB_PORT:-5432}.
Discussed in the bitol-wg Slack thread; other integer fields remain
integer-only.
Applies approved RFC-0058 to ODCS v3.2.0: new `exasol` server type for Exasol, an in-memory MPP analytics database. Both schema files updated in lockstep — enum value, conditional dispatch, and ExasolServer def with required host and optional port (default 8563) + schema. No `database` field: an Exasol cluster runs a single database and the schema is the namespace. Docs section, positive example, and a negative test (missing host -> rejected). Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…BM Informix (#314) Consistency pass over docs/infrastructure-servers.md. Eighteen server sections jumped straight from the heading to the property table while the rest opened with a one-line definition of the technology. Adds that definition (linked to the vendor/project page, matching the existing style) for: API, Azure, Databricks, IBM Db2, Denodo, Dremio, Amazon Glue, Kafka, Amazon Kinesis, Local Files, MySQL, Oracle, Presto, Snowflake, Synapse, Trino, Vertica, and Custom. All 36 server sections now have one. Informix is always named as "HCL Informix and IBM Informix" — heading, intro, and the host/port descriptions, which previously said just "Informix". The lowercase `informix` in the `type` value list is the schema enum value and is left as is. Also re-aligns the three tables whose pipes had drifted (Common Server Properties, Exasol, Informix) — no content change. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Brings the dev-only work into the v3.2.0 line: the ShorthandReference dash fix (#260), the Enkinex vendor entry (#310), the references URL fragment fix (#221), and the v3.1.0 dated schema snapshots. Conflict resolution — 8 files. All but one conflict is dev replaying an older snapshot of dev-v3.2.0 content through the #290/#301 rollup merges, so the version-branch side is kept: * CHANGELOG.md, docs/infrastructure-servers.md, docs/variables.md, docs/examples/fundamentals/variables.odcs.yaml, src/script/negative-tests/variables-in-integer-field.odcs.yaml — kept dev-v3.2.0 (exasol RFC-0058, the server definitions pass, and the RFC-0050 follow-up #307 that lets `port` hold a string). * schema/odcs-json-schema-{latest,v3.2.0}.json — kept dev-v3.2.0 for the `exasol` enum value and the `$defs/Port` reference; dev's ShorthandReference dash pattern merged in cleanly and is preserved. * vendors.md — kept dev's Enkinex ODCS entry (the only genuinely new dev-side content in a conflicted file). Validated: validate-examples.sh and validate-negative.sh both exit 0, Total failed=0. The two schema files remain in lockstep. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
Author
|
Closing this one — superseded. The v3.2.0 → dev rollup can be re-cut cleanly from here when v3.2.0 is ready to ship. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
RFC 58