On this page
Kater CLI Build and check
kater parse
Reads and checks every model and test in your project, and writes the project's graph to target/manifest.json, as dbt parse does.
Use it in CI, or in a tool that needs to know what each file reads, without a run on the warehouse. A model whose compile is in your computer’s compile cache is not parsed again, so a second parse takes seconds.
Examples
# Go to your local copy of Kater contentcd kater-content# Parse the whole projectkater parse# Parse one workspace and the models it readskater parse --select connections/snowflake_prod_connection/workspaces/ad_reportingOptions
It also takes the global options --json, --kater-root, --scope and --help.
What it prints
Found 10 models, 8 queries, 9 charts, 12 tests.Parsed 3 models again and reused 24 from the compile store.Wrote target/manifest.json.“Models” counts every model that is not a query, a chart or a test: workspaces, semantic models and datasets. After you change one query, a parse reads again only that query and the charts and queries that read it. A model that did not compile is listed below, with its errors. With --json, it prints status, found, parsed, reused, manifest and failed.
The manifest
target/manifest.json has one entry in nodes for each model and test, by its unique_id:
unique_idis the model’s id, the one thatkater model listshows. A test’s id is its file and its name, such astest:connections/snowflake_prod_connection/modeling/kater_objects/tests/ad_reporting.sql#clicks_impressions_by_platform.resource_typeis the kind:query,chart,workspace,semantic,kater_dataset,db_datasetortest.name,pathandtagsare the model’s name, its file and its tags.checksumis the SHA-256 of the model’s file.depends_on.nodeslists the ids of the models it reads. A test reads the model that it tests.
The command exits with 0 when every model compiled, 1 when one did not, and 2 for a command that is not valid. It sends nothing to the warehouse and changes none of your files.