← All use cases

Custom outputs

If it's text-based, ADL can generate it. SQL is just the start — test fixtures, deployment scripts, API configurations, custom documentation formats, configuration files. The template engine is yours to point wherever your team needs output.

Who this is for

Anyone who maintains text-based artefacts that should be derived from your data design but currently aren't. QA engineers writing test suites that drift from the schema. DevOps teams hand-maintaining deployment scripts. API teams generating OpenAPI specs by hand. Documentation authors keeping data dictionaries in sync the slow way.

The pain we hear most often: "Our schema is the source of truth, but every downstream artefact — tests, configs, docs, API specs — gets hand-written and then drifts. We end up trusting the database, not the documentation." Each artefact is a manual translation of the same underlying design.

How ADL is configured for this

The mechanism is identical to code generation: classify, configure template mappings, generate. The difference is what your templates emit. Because Handlebars is text-agnostic and ADL imposes no opinion on the output format, the same engine that builds a Snowflake warehouse can produce a YAML config, a pytest fixture, a Postman collection, or a custom Markdown report.

Classify

Tag Data Objects by whatever taxonomy your downstream artefacts care about — test priority (smoke, regression, full), deployment tier, API surface, audit category. The classifications you define drive how templates branch and what they emit.

Configure

Map your Data Objects to the templates that should produce output for them. One Data Object can map to many templates, so the same captured design simultaneously produces (say) a CREATE TABLE script, a pytest fixture, and a deployment-config YAML — each in its own output file.

Generate

The same generate-and-deploy loop covers every output. Generated files land in your repo; CI/CD picks them up; downstream systems consume what they're meant to consume. Drift between source-of-truth and dependent artefacts becomes impossible by construction.

In practice

A real example: ADL ships a Testing Framework reference implementation that generates SQL data-quality test assertions directly from your metadata.

The framework reads Data Items + their classifications and emits test scripts:

  • Uniqueness checks on business-key columns
  • Referential integrity tests on relationship-defined foreign keys
  • Domain-value validations from controlled-vocabulary classifications
  • Completeness assertions on non-nullable columns
  • Outlier checks for numeric ranges

All produced from the same metadata that drives your warehouse generation. When the schema changes, regenerate; the tests stay current automatically. The Testing Framework integrates with the DIRECT execution framework for control-logged test runs.

That's one worked example. The same machinery — classify, configure, generate — applies to anything text-based. Some teams use it for:

  • dbt model definitions generated from ADL's logical layer
  • OpenAPI specs for APIs that expose data warehouse data
  • Terraform / Bicep infrastructure-as-code that follows the data model
  • Power BI semantic-model definitions
  • Internal data dictionaries in whatever format your governance team prefers

What ships today

  • Handlebars template engine — open-source, well-documented, easy to learn. If you've used mail merge, you've used a Handlebars-style template before. Read about templates & code generation.
  • Custom Handlebars helpers — ADL ships 13 helpers extending standard Handlebars for real-world metadata work: string operations (compare, diff, replace, wrap, replicate), extension lookups, and test-data generation (random date, number, string). Browse the helper reference.
  • Testing Framework reference — generates SQL data-quality test assertions from metadata. Integrates with the DIRECT execution framework for control-logged test runs. A worked example of non-SQL-warehouse code generation.
  • Markdown documentation templates — included in the shipped template library. The same metadata that drives DDL drives the documentation your team actually reads.
  • Custom template guidestep-by-step to write your first custom template against ADL's metadata.

Try it

Install any starter solution and open one of its templates in the editor. Modify it to emit a different output format — say, a Markdown documentation file instead of SQL — and run the generator. You'll see the substitution mechanism in five minutes.

Try the app — free in public preview