engine.yaml: DMO modules
Every key of engine.yaml's claims section (ownership claim methods, signal weights, auto-approval) and membership section (renewal reminders), with type, default and meaning, and where the portal settings live.
engine-dmo
These sections belong to modules only engine-dmo compiles. engine-cms refuses them by the module’s name.
claims
How a business proves it owns a listing. Each verification method adds a signal with a weight to the claim’s confidence score; staff decide, unless auto-approval is on and the score clears the threshold.
claims:
verification_ttl: 7d
methods:
post:
enabled: true
code_ttl: 30d
auto_approve:
enabled: true
threshold: 120 | Key | Type | Default | Meaning |
|---|---|---|---|
claims.verification_ttl | retention | 7d | A claim not verified in this long expires |
claims.methods.email_domain.enabled | boolean | true | The claimant’s email domain matching the listing’s website domain counts |
claims.methods.listed_email.enabled | boolean | true | A confirmation sent to the email address on the listing counts |
claims.methods.contact_approval.enabled | boolean | true | An existing contact of the organisation approving the claim counts |
claims.methods.phone_callback.enabled | boolean | true | Staff calling the listed number and confirming counts |
claims.methods.post.enabled | boolean | true | A code posted to the listed address and entered by the claimant counts |
claims.methods.post.code_ttl | retention | 30d | How long a posted code works |
claims.methods.post.max_attempts | integer | 5 | Wrong entries allowed for a posted code |
claims.methods.phone_auto.enabled | boolean | false | Automated phone verification. Reserved: true is refused, as no telephony driver ships |
claims.signals | map of integers | See below | Each signal’s weight. Writing the map replaces the listed weights by key |
claims.auto_approve.enabled | boolean | false | Approve a claim automatically when its score reaches the threshold |
claims.auto_approve.threshold | integer | 80 | The score that approves. A warning when it is not above the largest automated signal’s weight, since one signal could then approve a claim |
claims.notify_existing_contacts | boolean | true | Tell the organisation’s existing contacts that someone has claimed it |
claims.free_provider_list | string | bundled | The free email providers (whose domains prove nothing): bundled, the list shipped with the engine, or a path relative to the project of a text file with one domain per line and # comments |
The default signal weights:
| Signal | Weight |
|---|---|
email_domain_match | 50 |
listed_email_match | 60 |
contact_approval | 70 |
contact_objection | -100 |
phone_callback | 60 |
post_code_returned | 60 |
free_provider_only | -20 |
prior_rejection | -30 |
manual | 100 |
engine-dmo crm claims rescore recomputes open claims under changed weights; it never approves one. See Claims.
membership
| Key | Type | Default | Meaning |
|---|---|---|---|
membership.renewal.reminders | list of strings | [60d, 30d, 7d, 0d] | When, before a membership renews, the renewal notice is sent: whole days from 0d to 366d, counted in the site’s time zone |
The tiers themselves are in config/memberships.yaml.
portal
The member portal’s settings live in config/portal/portal.yaml. A portal: block left in engine.yaml is still read, with a warning saying where it belongs; its keys are the same as that file’s.
engine.yaml: analytics and AI
Every key of engine.yaml's analytics section (cookieless ingest, bot filtering, retention, reporting time zone, PDF reports), its ai section (provider, models, data boundary, budget, features, disclosure) and its translation section, with type, default and meaning.
locales.yaml and strings
Every key of config/locales.yaml (the install's locales with their time zone, currency, fallbacks, direction, calendar and sorting) and of config/strings/<locale>.yaml.