Tools and automation
Automate schema deployment
On this page
Validate and render documents offline before giving an automation job access to a deployment target. See Deploy a schema safely for dry runs and destructive-operation flags.
Consume structured results
GitHub Actions or another CI shell can consume the stable JSON envelope:
- name: Validate database schema
shell: bash
run: duburl schema validate schema.yaml --output-format json > schema-validation.json
Python can invoke the tool without a shell:
import json
import subprocess
completed = subprocess.run(
["duburl", "schema", "validate", "schema.yaml", "--output-format", "json"],
check=True,
capture_output=True,
text=True,
)
result = json.loads(completed.stdout)
Use duburl capabilities --json to discover supported document versions, commands, renderable dialect aliases, active connectors, deployable schemes, and whether deployment is available. Rendering only requires a registered dialect; deployment additionally requires an installed connector containing the corresponding DubUrl module and ADO.NET driver.
Deployment in CI
Provide the target connection URL through the CI environment and select its variable name with --connection-env. Run a dry run first. Live deployment requires the corresponding connector to be installed and active; render-only jobs require only the dialect.
Persistent clients
For repeated operations without starting a process each time, use the JSON-RPC worker and its Python client example.