Skip to main content
On this page

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.

Audience
Platform admins
Prerequisites
  • settings:manage for write-back
  • A GitHub repository where you can install Kater's GitHub App

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

PlaceWhat it holdsWho reads it
Content storeEverything: the shared layer, workspaces, apps, agent tools and Personal foldersKater, for each person through their access
Local copyOnly what its owner can read, as one snapshotIts owner, their editor and their agents
GitHub (optional)Each connection’s modeling/ treeAnyone 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.

  1. 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.

  2. Select a schedule.

    on_publish writes back about 60 seconds after the last publish. cron writes back on a five-field cron expression in UTC.

  3. Check it.

    kater admin write-back status shows the repository, its folder and schedule, the last run and the open pull request.

  4. Run it now.

    kater admin write-back run writes back without waiting for the next publish or cron run.

OptionWhat it doesExample
--installation-idThe GitHub App installation to use--installation-id 12345
--repository-idThe repository to write back to--repository-id 67890
--path-prefixFolder in the repository for the shared layer. The default is kater/.--path-prefix kater/
--scheduleon_publish or cron--schedule cron
--cronFive-field cron expression in UTC, with --schedule cron--cron "0 6 * * 1"

What each run does

  • One branch. It force-pushes the branch kater/shared as 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