Exposure
The SQL schema

Exposure

Not every table is reachable straight from the API. Some are served by the generated routes, which give a table the same list, create, read, update and delete calls as every other. Some are reached only through a route written by hand, because what they hold needs more care than a plain table call can give. Which is which is called the table's exposure.

Description

The list of exposed tables is TABLE_EXPOSURE, kept in the backend. Each entry gives the table a tier: owner, for your own rows; catalog, for rows everyone can read and staff can write; or admin. A table with no entry stops the backend from starting.

Reached only by hand-written routes: auth, rdid, organization, oauth, announcement, notification, presence, social, processing, sync, theme, gamification, registry, discussion, project (except tasks), system (except audit_events, which is admin), access (except team_permissions, which is admin), and customer (only customers).

Served by the generated routes, in whole or in part: content, document, bucket, persona, persona_memory, personal, settings.notifications, team.teams, ecosystem.applications, billing, usage, monitoring, integration, game, audience and shipr.groups.

The All Data browser in the hub shows a narrower set still, chosen by a list of allowed schemas.

Tech Detail
Languages
TypeScript
APIs & protocols
OpenAPI
The stack of The SQL schema