Meridian handbook
ReferenceConfiguration

Seed files

Every key of config/search/synonyms.yaml, config/tags/vocabulary.yaml and config/tags/smartlists.yaml, the files commands import into the database, and of the seed/organisations and seed/people records.

The first three files below seed data the database then owns. Each is read by a command, never reconciled at boot; after that, staff edit the data in the admin. engine-dmo seed apply also reads all three when they exist.

FileRead byHolds
config/search/synonyms.yamlengine-dmo search synonyms importSearch synonyms. Rules already held are left alone
config/tags/vocabulary.yamlengine-dmo tags importThe tag vocabulary. Existing keys are left alone. engine-dmo tags export writes the live vocabulary back
config/tags/smartlists.yamlengine-dmo seed applySmart lists. engine-dmo check and engine-dmo lists check validate them against the schema and the vocabulary

search/synonyms.yaml

KeyTypeDefaultMeaning
synonymslist of objects[]Search synonym rules
synonyms[].fromstringA one-way rule: this word also finds terms
synonyms[].localestringEvery localeThe locale it applies in
synonyms[].siteslist of stringEvery siteThe sites it applies on
synonyms[].termslist of stringRequiredWords that mean the same; with from, what it expands to

tags/vocabulary.yaml

KeyTypeDefaultMeaning
tagslist of objects[]The tag tree
tags[].childrenlist of objects[]Child tags, with the same keys, to any depth. Each child’s key is the full dotted key under its parent (stay.hotel under stay)
tags[].colourstringIts colour in the admin
tags[].keystringRequiredThe tag’s key
tags[].kindstringtopic; a child takes its parent’stopic, audience, operational or internal
tags[].labelmap of stringIts label per locale
tags[].publicbooleantrue; a child takes its parent’sListed to the public, in the content API’s tag list

tags/smartlists.yaml

KeyTypeDefaultMeaning
smart_listslist of objects[]Seeded smart lists: saved queries over content or the CRM
smart_lists[].keystringRequiredThe list’s key
smart_lists[].limitintegerThe most rows
smart_lists[].namemap of stringIts name per locale
smart_lists[].publicbooleanTemplates may read it
smart_lists[].querymap of anyRequiredThe query, by field
smart_lists[].sitestringThe site it belongs to
smart_lists[].sortobjectIts order
smart_lists[].sort.directionstringasc or desc
smart_lists[].sort.fieldstringThe field it sorts by
smart_lists[].subjectstringRequiredWhat it lists

seed/organisations and seed/people

engine-dmo: one YAML file per record, under seed/, read by engine-dmo seed apply. Organisations and people has an example of each.

organisations/<key>.yaml

KeyTypeDefaultMeaning
keystringThe file nameThe key a document’s organisation: names
namestringRequiredThe organisation’s name
legal_namestringIts legal name
statusstringactiveprospect, active, lapsed or archived
email, websitestringIts own address and website
phone, addressmap of anyStored as given
custommap of anyThe fields of config/crm/organisation.yaml, by handle
tagslist of stringVocabulary tag keys
networkstringThe first membership’s site’s, else the default site’sThe network’s key
trashbooleanfalsePuts it in the trash once everything else is done
contacts[].personstringA people/ key or a contact’s email. Each contact needs this or name
contacts[].name, .email, .phone, .customThe details of a person created for this contact
contacts[].rolestringThe job title, free text
contacts[].partner_rolestringcontactThe partner role’s key
contacts[].is_primarybooleanfalseThe primary contact
contacts[].started_on, .ended_ondateended_on makes a former contact
memberships[].sitestringThe default siteThe site’s key
memberships[].tierstringThe tier’s key
memberships[].statusstringactivepending, active, lapsed or cancelled
memberships[].joined_on, .renews_on, .ended_ondateIts dates
memberships[].amount, .currency, .external_ref, .notesstringThe fee, its currency, your reference and staff notes
memberships[].history[]list of objectsLater changes in order: tier, status, renews_on, ended_on, amount, reason
invitations[].email, .name, .role, .partner_rolestringWho is invited
invitations[].sitestringThe default siteThe site
invitations[].bystringRequiredA people/ key or contact’s email, holding people.invite
invitations[].acceptedbooleanfalseAccept it at once

people/<key>.yaml

KeyTypeDefaultMeaning
keystringThe file nameThe key a contact’s person: names
namestringgiven_name and family_nameThe display name
given_name, family_namestringThe parts of the name
emailstringTheir address
phone, custommap of anyTheir phone, and the fields of config/crm/person.yaml by handle
marketing_consentdateWhen they consented to marketing
networkstringThe default site’sThe network’s key
tagslist of stringVocabulary tag keys
trashbooleanfalsePuts them in the trash once everything else is done