Descriptor reference
Declarative definition of an Alvo backend.
Guide: The project descriptor
Declarative definition of an Alvo backend. One artifact for every path: Docker mount, alvo apply, Management API, AddAlvo().FromDescriptor(), and admin UI export. Conditions (rules, hook/automation conditions) use a CEL subset; payload transformations use JSONata. Env/secrets (connection strings, admin credentials) do NOT belong here — the descriptor defines the backend, not the infrastructure configuration.
Top-level keys
Section titled “Top-level keys”Blocks, each documented on its own page:
branding— Identity of THIS project/backend (display name, logo), shown wherever the project is presented: its section in the admin dashboard, generated end-user surfaces, transactional emails.tenancy— Declares this backend as multi-tenant (definition, not infrastructure).dynamicEntities— Governance for runtime, user-defined entities (the dynamic schema-registry driver).auth— Authentication and application roles.access— Who may manage THIS project in the admin dashboard (project-scoped), mapped to management levels by ROLE MEMBERSHIP.entities— Entity definitions.automation— ECA rules (event–condition–action).templates— Reusable message templates referenced by email/notification actions.formats— Reusable named validation formats referenced by field.format (beyond the built-ins email/uri/phone).webhooks— Managed webhook endpoints (Standard Webhooks: HMAC signing, retries, DLQ).functions— Custom logic — csx scripts (standalone).
Keys matching ^x- are accepted. Extension keys. Alvo ignores these but guarantees passthrough through apply -> export. Use for host/tooling metadata (UI hints, provenance).
$schema
Section titled “$schema”Optional editor hint pointing at this schema; ignored by Alvo.
- Type:
string - Required: no
apiVersion
Section titled “apiVersion”Descriptor format version. Self-describing so a loader can dispatch the right parser before fetching the schema. Within v1 the format evolves additively only; a breaking change becomes alvo.dev/v2 at a new URL.
- Type:
string - Required: yes
- Values:
"alvo.dev/v1"
Project identifier (kebab-case). In standalone mode it identifies the project within the instance.
- Type:
string - Required: yes
- Pattern:
^[a-z][a-z0-9-]{1,62}$
description
Section titled “description”Human-readable description of this project/backend (what it is), surfaced to agents and in the admin UI.
- Type:
string - Required: no
revision
Section titled “revision”Content revision counter, incremented on every applied change; used for optimistic concurrency during apply. NOT the format version (that is apiVersion).
- Type:
integer - Required: no