Skip to content
Alvo is pre-v0.1: the image runs from its edge tag, and no NuGet package or release is published yet.Pre-v0.1: no release yet.Roadmap and status

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.

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).

Optional editor hint pointing at this schema; ignored by Alvo.

  • Type: string
  • Required: no

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}$

Human-readable description of this project/backend (what it is), surfaced to agents and in the admin UI.

  • Type: string
  • Required: no

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