Skip to content

A site’s content models, menus, editorial workflows, and roles are configuration. Configuration sync moves them between the site and a working copy as YAML in a .acquia/config directory, using acli. The working copy needs no repository host and does not have to be under version control, though committing it is what protects your edits.

An import goes from the working copy to the site, and an export goes from the site to the working copy. acli source:cms:config:pull exports and acli source:cms:config:push imports, named from the working copy’s side the way git is.

An export writes, and an import accepts, these configuration types, plus their translation overrides:

  • Content types
  • Fields and field storage
  • Form displays
  • Taxonomy vocabularies
  • Media types
  • Editorial workflow
  • User roles and permissions
  • JSON:API settings
  • CORS settings
  • Site settings
  • Languages and language negotiation
  • Menus
  • Text formats
  • Metatag defaults and settings

How an entity is edited syncs, and how it is displayed does not: view displays (core.entity_view_display.*) stay with the site for every entity type. Themes, content (nodes, taxonomy terms, media items), and configuration that holds credentials do not sync either. An import naming anything outside this list is refused. Canvas components, patterns, page regions, and content templates sync separately, through Canvas CLI, so a change touching both a content type and the template that renders it travels as two operations.

Was this page helpful?