Sync Monitoring

School configuration

The fields on a school, and what its list and detail screens report.

A school is one pair of databases and the configuration that binds them: the tables that sync, the token its agents authenticate with, and the history of what those agents did.

Setting one up for the first time

Get started walks through creating a school and getting a table syncing. This page describes the fields and screens themselves.

Fields

Create School at the top of the school list, and Edit in a school's actions menu, open the same dialog.

FieldDefaultNotes
Name—Required
Code—Required. Agents identify themselves with this, so it goes in their .env verbatim
Setup tokenGeneratedShow, copy and regenerate buttons sit inside the field
StatusActiveSuspended schools are rejected by the sync API
Sync interval (minutes)5One clock for the whole school; minimum 1

Code and Setup token are the two values an agent needs.

The token is only shown in this dialog

The server stores a hash of it, so once the dialog closes the full value cannot be recovered — the list only ever shows a hint. If it is lost, edit the school to issue a new one and update both agents.

The school page

Opening a school shows its Overview, with five tabs across the top: Overview, Sync tables, Schema, Sync history and Conflicts.

The detail grid holds Code, Status, Last seen, Last sync, Sync interval and the number of configured Sync tables. If the last cycle reported a problem, a Last error panel appears above the grid with the message the agent sent.

Table Monitoring below it lists the configured tables with the row count each side reported, which is the cheapest way to spot drift. Counts are refreshed on a slower clock than the sync itself, so a small lag between the two numbers right after a large import is normal. Where a side is genuinely behind, request a backfill for that table and direction and the next cycle re-sends its rows.

Agent logs opens a panel with what the agents have reported, which is where a blocked apply shows up with the row that caused it.

The actions menu offers Copy ID, Edit, and Suspend or Activate. Suspending is the switch to reach for during maintenance: the sync API refuses a suspended school, so its agents stop moving data without anyone touching the hosts. Nothing is lost — captured changes stay in the outbox and ship once the school is active again.

The school list

The landing page lists every school with five columns.

ColumnShows
NameThe school's name, with its code underneath
StatusActive or Suspended
Token hintThe last few characters of the issued token, or Not shown
Last seenWhen an agent last authenticated
Last syncWhen a cycle last moved data

Search matches name, code and status together, and the Status filter narrows to active or suspended. Long lists page in with Load More.

A blank Last seen means no agent has ever reached the server with that school's code and token. A Last seen that updates while Last sync stays still means the agent is running and connecting, but has nothing to send — usually no triggers on the database yet.

On this page