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

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.