Your data repo#
Each organization has a Git-backed data repo. The in-app Files view and an ordinary Git clone edit the same history, so a model reviewed in a pull request is the model Supernova runs.
models/
revenue.sql
dashboards/
revenue/
page.md
monthly.sql
themes/
skycrane.json
packages/
skycrane/finance/typesql.pkg
typesql.lockFile layout#
| Path | Meaning |
|---|---|
models/**/*.sql | Materialized models. The basename is the output table name. |
dashboards/<slug>/page.md | Dashboard layout and frontmatter. |
dashboards/<slug>/*.sql | Queries used by that dashboard. |
themes/<slug>.json | Organization-authored chart themes. |
packages/<namespace>/<name>/typesql.pkg | Content-pinned typesql packages. |
typesql.lock | Exact package hashes used by type checking. |
Change the repo#
The Files view supports editing, history, and activity without a local checkout. For a local workflow, add an SSH key in organization settings, copy the repo URL, then use standard git clone, git pull, and git push commands.
Every accepted push becomes a new repository revision. Model runs read a fixed revision; they do not mix files from two commits. Dashboard pages resolve their sibling query files from that same history.
Names are contracts#
Moving models/revenue.sql changes the model's namespace. Renaming the file changes its output table. Dashboard and package paths are also identifiers, so review path changes as API changes rather than cosmetic edits.
Supernova derives model dependencies from parsed table references and explicit -- depends_on: directives. Folder order and file modification times never decide run order.