Glossary
Definitions of every RECAP term used across the documentation.
Core model
- Namespace
-
A hierarchical path such as
beamline/amxthat owns templates, resources, and process runs. Namespaces scope queries and writes, and on a server they are the unit of authorization. The same name may exist in two different namespaces without conflict. See How RECAP Organizes Data. - Resource
- One trackable physical, digital, or logical entity: a sample, a plate, a detector file, an instrument, a derived dataset. Created from a resource template.
- ResourceTemplate
- The blueprint for a category of resources. Declares property groups, typed attributes, defaults, and optional child templates.
- ProcessTemplate
- The versioned blueprint for a workflow. Declares ordered steps, parameters, resource slots, and role bindings.
- ProcessRun
- One concrete execution of a process template, recording which resources filled which slots and which parameter values were used.
- Step
- One ordered unit of work within a process template or run. Carries parameter groups and slot bindings.
- Slot
- A named placeholder in a process template for a resource, with a direction (input or output) and an accepted resource type. A run assigns a real resource to each slot. Slots are what make a workflow reusable across many resources.
- Role binding
-
A local alias a step uses to refer to one of the template’s slots, created with
bind_slot(role, slot_name). The role string is chosen by you and is not validated against any fixed vocabulary. - Direction
- Whether a slot is consumed (Direction.input) or produced (Direction.output) by the process. Direction is what makes the provenance graph directed.
- Parameter
- A typed setting attached to a step, declared with a type, a default, and an optional unit. A run records the values actually used. See Property and Parameter Access.
- Property
- A typed value attached to a resource, declared by its template. Properties are organized into named groups. See Property and Parameter Access.
- Attribute wrapper
-
The object returned when you read a property or parameter without a trailing
.value. It holds the value alongside itsunitand template definition. It renders as its value when printed but does not compare equal to it, so reading a bare number or string always ends in.value. - Property group / attribute group
-
A named collection of related typed attributes, for example a
dimensionsgroup holdingrowsandcolumns. - Provenance graph
- The directed graph formed by resources and process runs, in which a run’s output resources become a later run’s inputs. Tracing a result to its origin means walking this graph backwards.
Lifecycle and consistency
- Lifecycle status
- The state of a stored entity: MUTABLE, ACTIVE, or ARCHIVED. Transitions are forward-only.
- Mutable
- The initial draft state. Mutable entities are excluded from query results, so half-built records do not appear. finalize() moves an entity to active.
- Active
- The normal visible state. Queries return active entities by default.
- Archived
- Retired but retained. Excluded from results unless a query calls include_archived().
- Frozen
- A template or resource that has acquired a stable reference and can no longer be edited in place. Changes are made by copying instead. See Manage Resource Lifecycle.
- Copy-on-write
-
Deriving a new resource from a frozen one rather than editing it, preserving the link to the source through
copied_from_id. - Revision
-
A per-entity counter incremented on every successful write, used for optimistic concurrency. Sent over HTTP as an
ETagand checked withIf-Match. - Idempotency key
- A client-supplied header that lets a write be retried safely. A repeat of the same key with the same request fingerprint replays the stored response instead of applying the change twice.
- Aggregate
- The unit a builder saves and a command writes in one transaction: a root entity together with its nested children, such as a resource with its properties.
Client and queries
- RecapClient
-
The entry point for all RECAP work, created with from_sqlite() for a local database or from_url() for a server.
client.namespace(path)returns a view of the client scoped to one namespace. - Builder
- A context manager that collects changes, validates them together, and saves once on clean exit. A builder body that raises writes nothing.
- QueryDSL
- The query interface returned by query_maker(). Queries are immutable, so each call returns a new query rather than mutating the existing one. The same query behaves identically against a local database and a remote server.
- Load / hydration
-
Whether a query result’s related records are fetched. Results are unloaded by default;
include(...)requests specific relationships andload="eager"requests the configured set. See Query Model and Loading. - Identity map
- The client-side cache keyed by entity type and UUID, ensuring the same entity fetched through two different queries is one object in memory, with fuller loads upgrading the existing object.
- Shape
-
A deprecated query option.
shape="full"is the supported value and returns canonical models;shape="ref"normalizes to it. Useloadto control relationship hydration instead.
Server and security
- Actor
- The authenticated identity behind a request, carrying an actor ID, provider identities, credential scopes, and optional namespace restrictions.
- Scope
- A separate read or write permission for one entity family. Write permission does not imply read permission.
- Entitlement snapshot
- The compiled, immutable authorization data used in multi-user mode, mapping identities to groups, roles, and scopes at namespace paths. Evaluation fails closed when the snapshot is missing, corrupt, or stale.
- Single-user mode
- The currently runnable server deployment, authenticating with one shared API key.
- Multi-user mode
-
Snapshot-based per-identity authorization.
ServerConfigvalidates it, but therecap-serverstartup path does not yet wire it up. See Server Configuration. - Command
- A write operation. Commands own authorization, one database transaction, revision checks, idempotency, and audit. Local and remote writes use the same command shapes.
- Request ID
- A stable identifier attached to each request, safe to quote in an error report because it exposes no internal detail.
- Audit record
- A record of a mutation capturing request ID, actor, target, outcome, and a safe reason code. Audit output never contains credentials, property values, or parameter values.