Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Extension points

The seams for reaching outside a resource declaration. Four have full sections of their own: Authenticator, Uploader, Panel::layout_shell, and wired_table. The remaining three are documented here.

Relationship option sources

A relationship choice field loads its options through tablo::schema::OptionSource. Every resource is one, answering from its def as the request’s panel mounted it: scoped_query states the tenant-scoped seed query, allows gates rows per ability (default deny), and requires_tenant, search_expr, and order_by shape scoping, search, and ordering. Loads are bounded to 200 options, memoized per request, and fail closed on denial.

Table state values

tablo::Sort (?sort=<column>&dir=asc|desc) and tablo::Cursor (?after= / ?before=) are the parsed sort and pagination of a list URL; see Tables. Cursors are opaque: conflicting cursors parse as none and render the first page.

Notifications

An Action result flashes a tablo::Notification, rendered in the panel shell and stored as a one-time hardened cookie. Build one with Notification::success / error / info / warning plus .description(), and store it with tablo::set_notification; see Security.