You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
dbt should use the $schema and $ref tags of JSONSchema instead of the current deep_merge and manually-referencing dicts.
Feature description
We should convert our json schema contracts to have $schema values pointing at publicly accessible URLs, use the $ref feature to link behavior of our internal JSON schemas, and modify our APIObject and its descendants to take advantage of it.
We can start by specifying just the outermost "layers" of the schema and add the references as we go along. We should do something like iglu uses and define a decent versioned self-describing format. An example iglu schema is here
We should support namespacing, and give dbt-core a separate namespace from any plugins (like adapters!) or dbt-cloud.
We also will want to specify credential contracts on a per-adapter basis, and adapter-specific configurations at some point (currently we just allow anything).
Serialization should include the schema value so we can try to do deserialization into dbt objects based on the schema.
cmcarthur
changed the title
use JSONSchema $schema for dbt contracts
use JSONSchema $schema for dbt contracts (via dataclasses + jsonschema-dataclasses)
Jun 12, 2019
Feature
dbt should use the
$schema
and$ref
tags of JSONSchema instead of the currentdeep_merge
and manually-referencing dicts.Feature description
We should convert our json schema contracts to have
$schema
values pointing at publicly accessible URLs, use the$ref
feature to link behavior of our internal JSON schemas, and modify ourAPIObject
and its descendants to take advantage of it.We can start by specifying just the outermost "layers" of the schema and add the references as we go along. We should do something like
iglu
uses and define a decent versioned self-describing format. An example iglu schema is hereWe should support namespacing, and give dbt-core a separate namespace from any plugins (like adapters!) or dbt-cloud.
We also will want to specify credential contracts on a per-adapter basis, and adapter-specific configurations at some point (currently we just allow anything).
Serialization should include the schema value so we can try to do deserialization into dbt objects based on the schema.
Who will this benefit?
Anyone consuming
dbt
json output, dbt Cloud, developersThe text was updated successfully, but these errors were encountered: