Example repo showing how to manage a Cassis ontology with cassis-cli: version it in Git, validate and run evals in CI on every pull request, and publish on merge.
cassis/— a full Cassis ontology export for a Formula 1 dataset: domains, tables with descriptions and synonyms, joins, and metrics. This is the format produced bycassis ontology pulland consumed bycassis ontology upload..github/workflows/ontology.yml— a minimal GitHub Actions workflow:- check (every PR and push to
main):cassis ontology checkvalidates the YAML files with the same checks as the Cassis GitHub PR check. - eval (PRs only):
cassis eval runruns the project's eval suite against the ontology files on the branch, so you see the impact of a change before merging. Nothing is pushed to Cassis; scoring happens in-memory. - publish (push to
main):cassis ontology uploadreplaces the project's ontology with the files in the repo and publishes a new version. Idempotent: unchanged files are a no-op.
- check (every PR and push to
- Fork this repo.
- In Cassis, create an API key under Organization settings → API keys and add it as the
CASSIS_API_KEYrepository secret. - Find your project ID (the UUID in the project's URL) and add it as the
CASSIS_PROJECT_IDrepository variable. - Open a PR that edits any file under
cassis/(tweak a description, add a synonym) and watch the checks run.
edit cassis/*.yml on a branch
│
▼
open a PR ──► ontology check (YAML + import validation)
│ eval run (does the change help or hurt?)
▼
merge to main ──► ontology upload (publish a new version)
pip install cassis-cli
cassis ontology check # validate ontology files in the current checkout
cassis ontology pull # download the project's unpublished ontology into the checkout
cassis eval run # run the project's eval suite against local files
cassis ontology upload # upload and publish the local files as a new versionAll commands read CASSIS_API_KEY, CASSIS_PROJECT_ID and CASSIS_API_URL from the environment, or take --api-key / --project / --api-url flags.