Define the source table once
Capture names, source types, nullability, keys, relationships, aliases, and provenance in Universal Metadata Format.
TABLESPEC / SOURCE CONTRACT
Define table types, quality rules, and transformations once. tablespec compiles those contracts into SQL, dbt, Lakeflow, schemas, and Great Expectations suites, plus Excel workbooks and guidebooks for review. Keep source meaning in source-semantic ingested bronze; declare business choices in silver and gold. Review the runtime artifacts before they run.
tables/claims/table.yamlclaims.ingest.sqlmodels/claims.sqlpipeline.ymlsuite.jsonindex.htmlSHARED FORMAT / PIPELINE COMPILER
Universal Metadata Format (UMF) is now a separate project. Its umf-core Python package supplies shared document models, schemas, serialization, and validation machinery. tablespec owns the tablespec.pipeline extension: native table types, source declarations, contextual nullability, keys, relationships, and pipeline policies.
Existing split-directory specs remain supported. Shared documents preserve unknown vocabularies; compilation requires an explicit tablespec execution mapping. Read the format and compatibility boundaries or explore the UMF project.
EVALUATE
Capture names, source types, nullability, keys, relationships, aliases, and provenance in Universal Metadata Format.
Generate the SQL DDL, ingest transform, dbt model, Lakeflow pipeline, JSON Schema, Great Expectations suite, Excel workbook, and guidebook from that spec.
Run checks against raw source records, typed ingested tables, and the derived tables built from them, all generated from the same specs.
WORKED EXAMPLE
Start with a split-format UMF directory for `medical_claims`: one table-level YAML file plus one YAML file per column. tablespec validates that source-table contract, then emits raw-to-ingested SQL, a dbt project, a Great Expectations suite, and a guidebook from the same spec.
Open the exampletablespec validate tables/
tablespec generate tables/medical_claims -f ingest > claims.ingest.sql
tablespec emit tables/ out/dbt --backend dbt --dialect databricks
tablespec validation-sync tables/medical_claims --out gx/
tablespec guidebook tables/ -o site/guidebookDECIDE
Both are UMF contracts compiled by tablespec. The layer names say what each contract may decide.
OPERATE
Install tablespec, write one UMF spec, generate runtime artifacts, then review the diff before anything runs.