Glossary
Short, page-anchored definitions for the recurring AUSUS terms. Skim it once when you start; come back when a concept page assumes a word you have not seen yet.
Action
A named operation an actor can invoke against an entity. v0.1.x ships
three kinds — create, transition, update (see
Action kinds and the
php-dsl reference). Every action runs through
the same Invoker chain regardless of kind.
ActionDescriptor
The JSON shape an action takes on the wire as part of a ViewSchema.
Carries the FQN, the localised label, subjectRequired, the input
field list, and (for update actions) initialValues for prefill. Full
field-by-field reference in
ViewSchema wire.
Actor
The acting principal for an invocation — a Tenant-scoped identity
plus a role/permission set. v0.1.x ships one implementation (StubActor)
and resolves it per-request from X-Actor-Id / X-Actor-Roles over
HTTP. There is no authentication layer; an authenticated gateway is
expected to set the headers.
Application
The bootstrap facade in ausus/standard-stack. Composes the compiler,
the SQLite driver and the default runtime; exposes invoke, run,
http, projection rendering, and direct accessors to every runtime
service. Full reference at
Application & ApplicationConfig.
ApplicationConfig
The typed, immutable fluent builder for Application::create(). Every
setter returns a new instance. The companion to Application; full
reference at Application & ApplicationConfig.
Audit log
The kernel-managed table kernel_audit_log to which the runtime
appends one row per successful action invocation, in the same
database transaction as the row it changed. Schema is fixed by the
runtime and not user-extensible in v0.1.x.
BuiltinEffect
The enum (Create / Transition / Update) the kernel uses to mark
an ActionNode as backed by a runtime-shipped effect rather than a
custom Effect class. The string values
('kernel.builtin.create', …) are stable wire metadata.
Compiler
The kernel service that takes a list of Plugin instances and
produces a single MetadataGraph. Validation (FQN uniqueness,
dangling references, workflow coherence) runs here; the produced graph
is content-hashed and immutable. See
Concepts · Metadata Graph.
Effect
The runtime side of an action. Three built-ins ship in v0.1.x —
CreateEffect, TransitionEffect, UpdateEffect. Custom effects
implement Ausus\Effect and are addressed by FQN in
ActionNode::effectClass. The effect is the only layer that mutates
state; it runs inside the Invoker's database transaction.
Entity
A kind of record the application stores. Declared on the DSL via
$dsl->entity('name')->fields([...]). The Compiler maps each entity
to one SQL table whose name is the FQN with dots replaced by
underscores (billing.invoice → billing_invoice). The runtime adds
five system fields per entity automatically.
Field
A column on an entity. Declared with Field::string() / ::integer()
/ ::datetime() / ::money() / ::enum(...) /
::reference(targetEntityFqn), optionally tagged nullable, default,
unique, max, currency, options, label. Type list in
DSL reference.
Field reference (relation)
A typed foreign reference declared with
Field::reference('plugin.entity') (RFC-015). Stored as a reference
column whose value is the target instance's 26-char identity handle.
The target is validated at compile time (a reference to an
unregistered entity is a DanglingRelation compile error) and
enforced at write time (the persistence driver rejects an id that
does not resolve to an existing target row in the active tenant with
ReferentialIntegrityViolation — there are no ghost references).
References never cross tenant boundaries. A projection can fold the
parent's display field into each row via
->projection(..., expand: ['ref_field' => 'target_field']), which adds
a {ref_field}_label column to the rendered ViewSchema.
FQN — Fully-Qualified Name
The dotted, plugin-scoped identifier the framework uses to address graph nodes. Conventions:
| Node | FQN shape |
|---|---|
| Entity | {plugin.name}.{entityLocal} — e.g. billing.invoice |
| Action | {entity.fqn}.{actionLocal} — e.g. billing.invoice.create |
| Policy | {entity.fqn}.policy.{actionLocal} — e.g. billing.invoice.policy.create |
| Workflow | {entity.fqn}.lifecycle — e.g. billing.invoice.lifecycle |
| Projection | {entity.fqn}.{projectionLocal} — e.g. billing.invoice.summary |
Invoker
The runtime service that executes an action through the five-step
chain: preflight → policy → workflow guard → effect → audit, all
inside one database transaction. See
Backend · Runtime. Application::invoke()
and Application::run() are thin wrappers over it.
MetadataGraph
The compiled, immutable, content-addressed value the framework runs on. Holds entities, actions, policies, workflows, projections plus a SHA-256 hash that is identical for identical plugins. See Concepts · Metadata Graph.
Plugin
A class describing a piece of domain. Implements Ausus\Plugin or
extends Ausus\DslPlugin. Returns its description from describe()
(or composes one via dsl()). The Compiler folds every registered
plugin into one MetadataGraph. See Concepts · Plugins.
Policy
The authorisation contract evaluated before an action's effect. v0.1.x
ships one implementation, RoleRequired, applied via
->requireRole('member') on the DSL. Custom policies implement
Ausus\Policy. See Concepts · Policies.
Projection
A named read-shaped view of an entity declared on the DSL via
->projection('summary', fields:, actions:, role:). Compiles to a
ProjectionNode; the ProjectionRenderer turns one into a ViewSchema
JSON document. Two shapes — list (data.items) and detail
(data.item).
Reference
The value-object identity of an entity instance:
{ tenantId, entityFqn, identityHandle }. The HTTP wire uses
Reference as the subject field on action POSTs. As of RFC-015 it is
the single canonical instance-identity value object; Subject is now
an alias of it (see Subject).
Renderer
@ausus/renderer-react — the React 18/19 package that consumes
ViewSchema JSON and emits UI. Ships no CSS; ESM-only; React is a peer
dep. See Frontend · React renderer.
Runtime
ausus/runtime-default — the L2 package that contains the Invoker
chain (Invoker, PolicyEngine, WorkflowRuntime, EffectDispatcher,
DefaultAuditor) plus the ProjectionRenderer. The Application wires
it for you; you rarely instantiate it by hand.
Stub actor
The v0.1.x default Actor implementation — fixed identity + role list,
no authentication. Used by ApplicationConfig for CLI invocations and
by the Router for HTTP requests (resolved from X-Actor-* headers).
Subject
The entity-instance identity passed to Policy::evaluate() during the
Invoker chain. As of RFC-015, Ausus\Subject is a class_alias of
Ausus\Reference — one canonical value object. Existing code keeps
working unchanged (new Subject(...), Subject::fromReference(...),
?Subject type hints, instanceof Subject); new code should use
Reference.
System field
A field every entity gets automatically — id, tenant_id, _version,
created_at, updated_at. Runtime-managed; not writable from action
inputs. id is a 26-character Crockford-base32 ULID; _version is
the optimistic-lock token.
Tenant
The isolation key every entity row carries. v0.1.x is single-tenant
per Application instance — to act as another tenant, build another
Application. Cross-tenant references (a Reference.tenantId not
matching the active tenant) raise TenantBoundaryViolation.
Transition
The second action kind. Moves the workflow state field from one value
to another along a declared arrow (from: '…', to: '…'). May be
multi-source via ->addTransition() (or the deprecated alias
->andTransition()). Subject required. See
Concepts · Workflows.
Update
The third action kind, added in v0.2-foundation. Partial-PATCH on a fixed closed list of fields. Cannot patch the workflow state field or any system field. Subject required. See Backend · php-dsl · Action kinds.
ViewSchema
The JSON wire document /projections/{fqn} returns. Fixed
schemaVersion: '1.0.0' and targetProfile: 'react.web.v1' in v0.1.x.
Full reference at
ViewSchema wire reference.
Workflow
The state machine attached to an entity by declaring an enum state
field and listing transitions over it. Compiled to one WorkflowNode;
the runtime enforces "exactly one matching transition per action per
current state." See Concepts · Workflows.
Workflow guard
Step 3 of the Invoker chain. For every action that participates in a
workflow, the guard verifies the entity's current state matches a
declared source for that action. Failure raises
WorkflowStateMismatch; no row is written.
Related
- Concepts — full conceptual model.
- Reference — public API surface.
- Application & ApplicationConfig — the bootstrap centerpiece.