Admin
Content store and GitHub write-back
Kater holds every organisation's content. Optionally, it writes the shared layer to a GitHub repository as one pull request.
Kater keeps all of your organisation’s content in its own content store, so access rules hold everywhere. If your engineers want the shared layer in GitHub, Kater writes it there as one pull request. Nothing comes back from GitHub.
Where content lives
| Place | What it holds | Who reads it |
|---|---|---|
| Content store | Everything: the shared layer, workspaces, apps, agent tools and Personal folders | Kater, for each person through their access |
| Local copy | Only what its owner can read, as one snapshot | Its owner, their editor and their agents |
| GitHub (optional) | Each connection’s modeling/ tree | Anyone with access to the repository |
- Kater owns content. The content store is a git repository that Kater hosts. Nobody clones it directly.
- Every save is a commit. Each change is a commit authored by the person who made it, so History and Undo work everywhere.
- Access sits beside it. Grants live next to the store, never in its files. See Files and access.
Local copies
kater git clone makes a local copy of everything a person can read. kater git pull merges new content into it, and kater git push publishes their commits as one all-or-nothing change. Every other kater git subcommand is plain git. See Work in a local copy.
Write back to GitHub
Write-back publishes only each connection’s modeling/ tree: the shared layer, plus the database datasets in modeling/db_objects/ that it reads, so the copy in GitHub compiles on its own. The compiler’s own layer rule decides what is in it, never grants, so a grant can never publish content.
-
Connect a repository.
Run
kater admin write-back connect. It authorizes Kater’s GitHub App, then asks for the repository, folder and schedule. Connecting again replaces the repository. -
Select a schedule.
on_publishwrites back about 60 seconds after the last publish.cronwrites back on a five-field cron expression in UTC. -
Check it.
kater admin write-back statusshows the repository, its folder and schedule, the last run and the open pull request. -
Run it now.
kater admin write-back runwrites back without waiting for the next publish or cron run.
| Option | What it does | Example |
|---|---|---|
--installation-id | The GitHub App installation to use | --installation-id 12345 |
--repository-id | The repository to write back to | --repository-id 67890 |
--path-prefix | Folder in the repository for the shared layer. The default is kater/. | --path-prefix kater/ |
--schedule | on_publish or cron | --schedule cron |
--cron | Five-field cron expression in UTC, with --schedule cron | --cron "0 6 * * 1" |
What each run does
- One branch. It force-pushes the branch
kater/sharedas one commit on top of the repository’s default branch, with the prefix folder replaced by Kater’s shared layer. - One pull request. It opens or updates one pull request into the default branch, titled “Kater: shared layer”. Merge it to bring the default branch up to date.
- Nothing flows back. Kater never reads from GitHub. An edit made directly on the default branch shows as reverted in the next pull request.
Change the shared layer in Kater, not in GitHub
Make changes in the portal, in a local copy or through an agent. The next pull request undoes any edit made in the repository’s kater/ folder.
Stop writing back
kater admin write-back disconnect stops writing back and forgets the repository. What is already in GitHub stays.
Where to run it
Run kater admin write-back in your own terminal. Agents and the Files terminal refuse it. The Settings › Repository page in the Admin Console shows only a title today.
Next steps
- GitHub: each step of write-back, with screenshots
- Work in a local copy
- Scheduled jobs