Glossary
The words this documentation uses, and what they mean here specifically.
Application — a directory of YAML describing a domain, who may see it, and what it does. Not code, and not compiled. Also called a bundle.
Attribute — one field of an entity. Becomes a column.
Association — a relationship between entities. reference becomes a foreign
key; referenceSet becomes a junction table.
Bundle — an application, as a directory of files. What serve, validate
and db apply all take.
Constraint — an expression on a role’s access rule that decides which rows
it can reach. Compiled into the WHERE clause of every query that role issues,
never applied afterwards.
Diagnostic — a validation message with a stable code, a location and usually a fix. See Diagnostics.
Entity — one stored thing. Becomes a table.
Flow — a script with a signature: which entity it operates on, which roles may run it, what it takes. Written in Lua. Runs as whoever called it.
Model — the whole application, as the runtime understands it after loading and validating a bundle.
Module — a bounded context within an application: its own entities, roles,
flows and metrics. Also the first half of a qualified name, as in
sales.Customer.
Module role — a role a module defines in its own terms, carrying the actual permissions. Granted to a user role.
Principal — who is making a request: a subject, an email, a name, and the set of module roles they hold. Derived from a bearer token, or from the model’s anonymous role.
Runtime — the interpreter. One binary, one image, serving any application.
Soft drop — a removed column renamed out of the way and made nullable rather
than dropped, so the data is recoverable. What --allow-drop actually does.
System attribute — a field every entity has and nobody declares: id,
createdAt, changedAt, createdBy, changedBy, version.
User role — a role your organisation has, declared in app.yaml, which
grants one or more module roles. The indirection is what lets a module ship a
permission model without knowing anything about the organisation deploying it.
Version — a per-row counter the runtime maintains, carried as an ETag and
checked on conditional writes. Distinct from the application version in
app.yaml and from the runtime’s own release version.