schemas
tit.server.schemas ¶
Response models for the wire contract (contracts/openapi.yaml).
Names match the contract's components/schemas so --dump-openapi can
be diffed against it by dev/contracts_check.py.
ViewerSceneFile ¶
Bases: BaseModel
One dataset a scene references, as the Viewer page's preview strip shows it.
ViewerOpen ¶
Bases: BaseModel
POST /api/view/open -- where the scene file was written, in both path languages.
V2 (docs/dev/DECISIONS.md § 2026-09-06 (Native panes, job rows and notebooks)). path is
inside this container; host_path is the same file as the host sees
it, and is what the Electron shell hands to the Tetravox desktop app.
host_path is None when this server cannot know its project's host
root (:mod:tit.server.host_path) -- the app then offers the scene as a
download instead of a launch.
ExampleDataFile ¶
Bases: BaseModel
One content-addressed asset of an example part (tit/examples/catalog.json).
ExampleDataPart ¶
Bases: BaseModel
One independently downloadable piece of a dataset -- its NIfTIs, or its head model.
Each part is fetched and detected on its own, which is the whole point of the split: deleting
sub-ernie/anat must not make ernie/headmodel look absent.
ExampleDataset ¶
Bases: BaseModel
One head, with its provenance and its parts.
ExampleDataStatus ¶
Bases: BaseModel
What this project holds of one part, read off disk, plus any download of it in flight.
installed/bytes need no network; downloading/queued/received/total are
the live state of :mod:tit.server.routes.example_data's single background worker, which is
why the renderer can poll one endpoint instead of subscribing to a job stream.
ProjectStatus ¶
Bases: BaseModel
project_status.json as the API shows it. Only the keys the desktop reads or writes
are typed; everything else the file holds passes through untouched.
SwapInfo ¶
Bases: BaseModel
Swap, which the System page reads as a pressure signal rather than a capacity one.
ContainerInfo ¶
Bases: BaseModel
One Docker container the daemon knows about (our siblings: QSIPrep/QSIRecon).
SelfProcessInfo ¶
Bases: BaseModel
The server's own process — the one the jobs are children of.
NetIO ¶
Bases: BaseModel
Cumulative interface counters since boot; the page shows the delta between snapshots.
DockerDf ¶
Bases: BaseModel
docker system df -- the high-level "is the daemon filling the disk" answer.
OwnContainer ¶
Bases: BaseModel
This server's own container, as docker inspect describes it.
DockerHealth ¶
Bases: BaseModel
Everything the System page's Docker panel shows, in one bounded read.
Polled on its own (slower) TTL than the rest of the snapshot: /system/df walks the image
graph and an inspect is a round trip, and neither changes at the 1-2 s cadence the CPU
figures do. reachable: false with an error is a first-class answer -- the panel then
says the daemon is unreachable rather than showing zeros that look like a healthy, empty
daemon.
StorageKind ¶
Bases: BaseModel
One class of project output, and what it costs on disk.
StorageItem ¶
Bases: BaseModel
One named thing inside a kind -- "sub-101 - Flex search".
ProjectStorage ¶
Bases: BaseModel
GET /api/system/storage -- what the project is using, by kind.
Separate from :class:SystemSnapshot because it is a different kind of
read: the snapshot is a cheap sample taken every second, this is a full walk
of the project that can take minutes on a large volume and is therefore
cached on disk and refreshed in the background. scanning says a refresh
is running right now and these are the previous numbers.
OverviewCounts ¶
Bases: BaseModel
High-level output totals for one subject. Never a detailed tree (Results owns that).
OverviewReadiness ¶
Bases: BaseModel
Can this subject run one workflow stage, and if not, the requirement that failed.
OverviewCoverage ¶
Bases: BaseModel
One project-wide coverage tile: how many subjects have this artefact.
Overview ¶
Bases: BaseModel
GET /api/catalog/overview -- everything the Overview page renders.
NotebookEntry ¶
Bases: BaseModel
One notebook as the list shows it.
NotebookList ¶
Bases: BaseModel
GET /api/notebooks.
Notebook ¶
Bases: BaseModel
One notebook and its nbformat v4 document, verbatim.
content is deliberately an untyped object: the .ipynb IS the
document (ARCHITECTURE §7.6), and narrowing it here would be this server
deciding which keys of a format it does not own are allowed to survive.
Kernel ¶
Bases: BaseModel
One running notebook kernel.
KernelList ¶
Bases: BaseModel
GET /api/kernels -- what is running, and the limits it runs under.
MissingInput ¶
Bases: BaseModel
One input a job needs that is not on disk (tit.jobs.preflight.MissingInput).
MissingInputs ¶
Bases: BaseModel
The 422 body a job submission gets when its required inputs are not all on disk.
PreflightResult ¶
Bases: BaseModel
POST /api/jobs/preflight: the sweep's findings, without submitting.