Meridian handbook
Features

Features

What the engine does for a website beyond content and templates, in both bundles, and which page explains each feature.

These pages cover the parts of Meridian a website uses beyond its content model and its templates: the media library, search, menus, forms, mail, newsletters, redirects, analytics, AI assistance and accessibility. Every feature here is in both bundles. engine-cms and engine-dmo behave the same for all of them, and the commands on these pages are written as engine-dmo; swap in engine-cms on a plain CMS install.

A feature is switched on in configuration, and engine-dmo check validates that configuration before the server starts. Most features also need a database (they store something) and some need an external service you bring: a search backend, a mail provider, an AI provider. Nothing on these pages needs a third-party service to boot: without a search backend the search page serves browse mode, without a mail provider development mail goes to the log, and without an AI provider the AI features do not appear.

Where each feature is configured

FeatureConfigurationAdmin screenCommand
Media librarymedia: and storage: in engine.yaml; images.yamlMediaengine-dmo media
Searchsearch: in engine.yaml; special.search in routes.yaml; search/synonyms.yamlSearch index, Search synonyms, Insight searchengine-dmo search
Navigationnav: in site.yaml; seed/navigation/Navigation
Formsendpoints.yaml per site; forms: and endpoints: in engine.yamlSubmissions
Transactional mailmail: in engine.yaml; mail: in site.yaml; templates/emails/engine-dmo mail
Newslettersnewsletter: in engine.yaml; a subscribe step in endpoints.yamlNewsletterengine-dmo newsletter
Redirectsredirects: in routes.yaml; the redirect tableengine-dmo redirects
Analyticsanalytics: in engine.yaml; analytics/dashboards.yamlInsightengine-dmo analytics
AI assistanceai: in engine.yaml; ai/prompts/AI queue and the editorengine-dmo ai
Accessibilityaccessibility: in site.yaml; accessibility.yamlengine-dmo a11y

Every key of every file is listed in the configuration reference, and engine-dmo config schema --file <kind> prints a file’s JSON Schema from the binary you are running. <kind> is the kind of file without .yaml (engine, site, routes, endpoints, dashboards, …) or a real path such as config/sites/main/site.yaml; a bare site.yaml is refused.

Common rules

  • Secrets are environment variables. A provider key, token or password in engine.yaml is a bare ${VAR} interpolation. A literal secret is refused (MRD-1004), and so is a secret with a default value.
  • Ids are written by the tooling. Endpoints, navigation slots, entered metrics and other configuration elements carry a stable id. Leave it out when you write the element and run engine-dmo check --fix, which writes one. See stable ids.
  • Every problem at once. engine-dmo check reports every configuration problem with its file, line and column, together, and exits 3 when any is an error. Template warnings (a layout without head(), a missing t() key) are printed above the summary but not counted in it, so 0 errors, 0 warnings can follow printed warnings: read every line, not only the last.
  • Permissions. Each admin screen needs a permission. The built-in roles hold the common ones; a project grants the rest in config/access/roles.yaml. Each page lists the permissions its feature uses.