Source-change commands
Read the Data source review queue from a checkout: what drifted in the source, what it breaks in the ontology, and what the suggested fix would be.
These commands read the same queue as the Data source feed under Review in the web app, described in Review data-source changes, and as the MCP source-change tools: the schema drift Cassis detected between your source and what the ontology tracks. They need cassis-cli 1.6.0 or newer. Like the other project-bound commands, the project id comes from cassis/project.yml in the checkout, CASSIS_PROJECT_ID, or --project, and --path points at a checkout other than the current directory.
Reading only, on purpose. Approving or dismissing a change stays in the web app, because approving edits the ontology and dismissing mutes the table. Headlessly, you act on a change the way you make any other ontology change: edit the files and open a pull request. What these commands add is the reading — so an agent working in a checkout can see that a breaking column_removed is pending on the very table it is about to touch.
source-changes list
Lists the queue newest first, one line per change: id, type, severity, status, and target. The target is schema.table for a table change and schema.table.column for a column change. The id is what source-changes show takes.
# What is waiting for review
cassis source-changes list
# Another bucket
cassis source-changes list --status approved
# Page through a long queue
cassis source-changes list --limit 20 --offset 20
# Raw JSON
cassis source-changes list --json
- Status
--statustakespending,approved,rejected(what dismissing in the app records), orsuperseded(a later detection found the change no longer holds, for instance after a corrected DDL upload). Omit it for the pending queue, which is the one you normally want. An unknown value is a usage error, exit 2.- Paging
--limit(100 by default, 500 maximum) and--offset. When more changes match than the page shows, the last line names the--offsetfor the next page. A queue can hold thousands of rows after a large schema refresh, so expect to page.- Types
table_added,table_removed,table_renamed,column_added,column_removed,column_renamed,column_retyped.- Severity
breakingmeans a curated ontology object — a join, metric, virtual table, or grain — references the changed source object, so something in the ontology is already wrong.benignmeans nothing references it yet. Spend your attention here rather than on queue order.- Machine-readable output
--jsonprints the page as{items, total}, so a script can size the queue without paging it. Feed rows carry the suggested edit’s summary line and its manual-review notes, not the full edit: that comes fromshow.- Exit codes
- 0 on success, including an empty queue. 2 on a usage error, 3 on a transport or API error.
source-changes show
Shows one change in full: its target, how many times detection has raised it and when it was last seen, the ontology objects it affects, and the edit Cassis suggests.
cassis source-changes show 019f0000-0000-7000-8000-0000000000a1
# The full record, suggested-edit operations included
cassis source-changes show 019f0000-0000-7000-8000-0000000000a1 --json
- Impact
- One line per referencing object: its kind (join, metric, virtual table, grain), the confidence, and the object itself. Confidence is
exactfor a structured match,heuristicfor an unqualified column resolved through its home table, andunverifiedwhen the object’s SQL did not parse but the name appears in it as an identifier. Treatunverifiedas a lead to check, not a fact. - Suggested edit
- A one-line summary of what approving in the app would do: the rename to apply, the type to correct. It is a description of the fix, not the fix — make the equivalent change in the ontology files. Anything the suggestion cannot decide for you is printed under
Manual review. - Exit codes
- 0 on success. 1 when the project has no change with that id, which is a real answer rather than a transport failure. 2 on a usage error, 3 on a transport or API error.
The headless loop from a checkout: cassis status tells you something is pending, source-changes list shows what and how bad, source-changes show gives you the impact and the suggested edit, then you edit the ontology files, prove the change with cassis verify, and open the pull request. A DDL-only project refreshes the source with cassis schema push, which is what fills this queue in the first place.