際際滷

際際滷Share a Scribd company logo
CMI feedback
 D.org config API overview / summary
 Demo / Examples
 Custom Config + Translation
 Environement specific (overrides + splits)
 Configuration by multisite
(site specific names, core base field overrides)
 Override existing config by modules
 Install site from existing configuration
Configuration vs. other types of information
 Content - site editors
 Session - user's interactions with the site
 State - Change frequently, don't need to be
deployed
 Configuration - site builders, will be deployed
 Cache - Speed up data retrieval, Tags
invalidation, Contexts
Configuration Storage in Drupal 8
 YAML format
 Has a schema metadata
 The site syncronize directory
 Defined in settings.php (ex. sites/default/config/sync)
 Or outside of the webroot
$config_directories[CONFIG_SYNC_DIRECTORY] = '../config/default/sync';
 Active configuration: in the database
 File system based workflow
 For modules (Only when the module is installed)
 config/install  module's installation fails if at least one of their
dependencies are not met.
 config/optional  that configs are installed only if all their
dependencies are met.
Configuration override system
 About
 See d.org introduction
 Always overrides and is only for reading
 Merge Deep Array with preserve integer keys
 Global overrides
sites/default/settings.local.php or sites/default/settings.$env.php :
global $config;
$config['system.logging']['error_level'] = 'verbose';
 Language overrides (Configuration translation)
sites/default/config/sync/language/fr/user.role.anonymous.yml :
label: 'Utilisateur anonyme'
 Overrides from modules (For custom purpose)
sites/default/config/sync/system.site.yml :
page:
front: /user
Configuration schema/metadata
 Cheat sheet

Each module define the type of the configuration it
ships with  config/schema/modulename.schema.yml
 See also core shema files - system.schema.yml,
core.data_types.schema.yml
 Used for
 multilingual support, translation forms for configuration
 the default persistence implementation for configuration
entities requires a configuration schema
 typecast values to their expected types
 Properties
 For debug The configuration inspector module
Configuration
Entity vs. Simple
 Lists of things that users can
create and delete;
 Work fine whether there are 0 or
100+ (image styles, views, etc)
 Complete set of CRUD hooks
 Easier to implement
 Can only depend on the module
that provides it
 Configuration entity dependencies
 Dependency can be: module, theme or entity (content, config)
 Dynamic dependencies - If in a view has filter to show Article
nodes, then it will also gain a dependency on the Article
configuration (node.type.article)
 Dependencies must be installed before the configuration entity
can be installed
 Install my_prf profile
 Copy the source config/sync
directory
 Get database uuids
 Import Configuration
 Configuration management UI, drush
 Config Override
 Environment (and/or multisite) overrides + splits
 Override existing configs by modules
 Config example module
 Working with Configuration Forms
 Defining and using your own configuration
 Translating configuration
 Allow a site to be installed from existing configuration
Until done:
 Create my_prf profile with just my_prf.info.yml. Use
core/profiles/minimal/minimal.info.yml as example
 Add as dependencies all modules from the source site
core.extension.yml.
Configuration Split
 Split means in some way like a partial
 Sets of configuration (a split) that will get exported to separate
directories when exporting, and get merged together when
importing
 Blacklist
 Configs and/or module's configs will be removed from the sync
directory to the split directory. Example of devel module with all his
configs (including the entry in core.extension)
 Greylist
 Configs will be copied (the current database value) to the split
directory and will not be removed from the sync directory
 Option to include dependant configs
 Option to split only when different (Excluded environment)
 Advanced Configuration Management (CMI) Workflows
Environment export to sync
 Splits are used for adding "dev" new files (ex. devel related configs)
 Overrides are used for "dev" specific config changes
 "dev" external services uris, site mail address
 "prd" changes go to config/sync.
 Use empty config file to delete it from "dev"
 Compare from backuped sync to
 Exported in split, from database values
 Applied overrides on sync
 Compare each other: the database version and the override
version of the environment specific configs
 Create splits, overrides from remote (ex. integ, ppd)
 Import the remote database
 Export for diff config/diff/integ
 The same way that for "dev" specifics
Environment import
 Local : Import with only "dev" split enabled, after "dev" overrides and
db uuids have been applied on sync
 Clean sync from overrides and/or uuids
 Remote (ex. not dev)
 Import with "integ" and "excluded" splits enabled after "integ" overrides and
db uuids have been applied
 Will drop configs from other disabled splits (ex. devel ones)
 Intended for "prd"
 Import with only "excluded" split enabled after db uuids have been applied
 No sense of "prd" split, nor "override" : the sync is intended for "prd"
 Remote delivery with keeping BO changes
 Define menus (system.menu.*) as client side configs
 Export excluded split before config files delivery (only when different)
 Import will not replace the menus user changes
 Config not in excluded will be imported
Git Workflow / Three-Way Merge
Configurations by modules
 Using Features Module
 Use features for packaging reusable components
 Use CMI for deployment : local (dev) => remote (live)
 Using the config override system.
 For existing configs use my_module/config/override
 For new configs, use my_module/config/install
 Get configuration from updated modules and profiles
 for import write the module's install configs (and the module's
optional ones if exist in sync) to sync then apply all modules'
overrides
 Compare (instead to write to) config/sync version of module's
configs with applied all modules' overrides (written to --destination)
to module's config (my_module/condfig)
 Feature module to export the database version - with
disabled module's overrides
See also
 Configuration Synchronizer
 Safely importing site configuration from updated modules, themes,
or distributions.
 requires Configuration Update Manager (like features)
 Configuration development
 auto import (into the active storage ) / export (configuration
objects into files)
 import automatique des yml du config/install (between the active
storage and exported modules)
 Configuration Tools
 Stores your current active configuration as yml in a specified
directory
 Auto commits changes to your configuration
 ...
Ad

Recommended

The Drupal Strongarm Module - Tips and Tricks.
The Drupal Strongarm Module - Tips and Tricks.
cgmonroe
JUDCon Brazil 2013 - Domain Models with JBoss AS 7
JUDCon Brazil 2013 - Domain Models with JBoss AS 7
Samuel Tauil
Rails application refactoring steps
Rails application refactoring steps
Masud Rana
MySQL Replication Basics
MySQL Replication Basics
Abdul Manaf
Query editor for multi databases
Query editor for multi databases
Aarthi Raghavendra
Collaborate 2012 - Administering MySQL for Oracle DBAs
Collaborate 2012 - Administering MySQL for Oracle DBAs
Nelson Calero
MySQL Enterprise Backup: PITR Partial Online Recovery
MySQL Enterprise Backup: PITR Partial Online Recovery
Keith Hollman
How to configure the cluster based on Multi-site (WAN) configuration
How to configure the cluster based on Multi-site (WAN) configuration
Akihiro Kitada
Config management
Config management
Alexei Goja
Getting Into Drupal 8 Configuration
Getting Into Drupal 8 Configuration
Philip Norton
Advanced Configuration Management with Config Split et al.
Advanced Configuration Management with Config Split et al.
Nuvole
Drupal 8 Configuration Management
Drupal 8 Configuration Management
Philip Norton
Configuration Deployment in Drupal 8
Configuration Deployment in Drupal 8
Manifesto Digital
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Erich Beyrent
Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)
Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)
Nuvole
CMI 2.0 session at Drupal DevDays in Cluj-Napoca
CMI 2.0 session at Drupal DevDays in Cluj-Napoca
Nuvole
Developing with Configuration Management on Drupal 7
Developing with Configuration Management on Drupal 7
Ryan Szrama
Drupal 8 configuration management
Drupal 8 configuration management
Alexander Tkachev
Drupal 8 Configuration Management for you and your team
Drupal 8 Configuration Management for you and your team
Luc B辿zier
Gestione della configurazione in Drupal 8
Gestione della configurazione in Drupal 8
Eugenio Minardi
DDAY2014 - Features per Drupal 8
DDAY2014 - Features per Drupal 8
DrupalDay
Drupal 8 Configuration Management with Features
Drupal 8 Configuration Management with Features
Nuvole
Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)
Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)
Nuvole
Creating a Reusable Drupal Website for Higher Education - Webinar
Creating a Reusable Drupal Website for Higher Education - Webinar
Suzanne Dergacheva
Drupal 8 Configuration Management
Drupal 8 Configuration Management
Sathya Sheela Sankaralingam
Drupal con Sydney configuration management in drupal 7
Drupal con Sydney configuration management in drupal 7
Arradi Nur Rizal
Configuration Management and Deployment
Configuration Management and Deployment
SomnathMore3
Improving your Drupal 8 development workflow DrupalCampLA
Improving your Drupal 8 development workflow DrupalCampLA
Jesus Manuel Olivas
FL Studio Crack Full Version [Latest 2025]
FL Studio Crack Full Version [Latest 2025]
Jackson lithms
PEN TO PODIUM powerpoint presentation.pptx
PEN TO PODIUM powerpoint presentation.pptx
Vanessa accad

More Related Content

Similar to CMI feedback.dnd (20)

Config management
Config management
Alexei Goja
Getting Into Drupal 8 Configuration
Getting Into Drupal 8 Configuration
Philip Norton
Advanced Configuration Management with Config Split et al.
Advanced Configuration Management with Config Split et al.
Nuvole
Drupal 8 Configuration Management
Drupal 8 Configuration Management
Philip Norton
Configuration Deployment in Drupal 8
Configuration Deployment in Drupal 8
Manifesto Digital
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Erich Beyrent
Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)
Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)
Nuvole
CMI 2.0 session at Drupal DevDays in Cluj-Napoca
CMI 2.0 session at Drupal DevDays in Cluj-Napoca
Nuvole
Developing with Configuration Management on Drupal 7
Developing with Configuration Management on Drupal 7
Ryan Szrama
Drupal 8 configuration management
Drupal 8 configuration management
Alexander Tkachev
Drupal 8 Configuration Management for you and your team
Drupal 8 Configuration Management for you and your team
Luc B辿zier
Gestione della configurazione in Drupal 8
Gestione della configurazione in Drupal 8
Eugenio Minardi
DDAY2014 - Features per Drupal 8
DDAY2014 - Features per Drupal 8
DrupalDay
Drupal 8 Configuration Management with Features
Drupal 8 Configuration Management with Features
Nuvole
Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)
Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)
Nuvole
Creating a Reusable Drupal Website for Higher Education - Webinar
Creating a Reusable Drupal Website for Higher Education - Webinar
Suzanne Dergacheva
Drupal 8 Configuration Management
Drupal 8 Configuration Management
Sathya Sheela Sankaralingam
Drupal con Sydney configuration management in drupal 7
Drupal con Sydney configuration management in drupal 7
Arradi Nur Rizal
Configuration Management and Deployment
Configuration Management and Deployment
SomnathMore3
Improving your Drupal 8 development workflow DrupalCampLA
Improving your Drupal 8 development workflow DrupalCampLA
Jesus Manuel Olivas
Config management
Config management
Alexei Goja
Getting Into Drupal 8 Configuration
Getting Into Drupal 8 Configuration
Philip Norton
Advanced Configuration Management with Config Split et al.
Advanced Configuration Management with Config Split et al.
Nuvole
Drupal 8 Configuration Management
Drupal 8 Configuration Management
Philip Norton
Configuration Deployment in Drupal 8
Configuration Deployment in Drupal 8
Manifesto Digital
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Erich Beyrent
Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)
Configuration Management in Drupal 8: A preview (DrupalCamp Alpe Adria 2014)
Nuvole
CMI 2.0 session at Drupal DevDays in Cluj-Napoca
CMI 2.0 session at Drupal DevDays in Cluj-Napoca
Nuvole
Developing with Configuration Management on Drupal 7
Developing with Configuration Management on Drupal 7
Ryan Szrama
Drupal 8 configuration management
Drupal 8 configuration management
Alexander Tkachev
Drupal 8 Configuration Management for you and your team
Drupal 8 Configuration Management for you and your team
Luc B辿zier
Gestione della configurazione in Drupal 8
Gestione della configurazione in Drupal 8
Eugenio Minardi
DDAY2014 - Features per Drupal 8
DDAY2014 - Features per Drupal 8
DrupalDay
Drupal 8 Configuration Management with Features
Drupal 8 Configuration Management with Features
Nuvole
Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)
Configuration Management in Drupal 8: A preview (DrupalDays Milano 2014)
Nuvole
Creating a Reusable Drupal Website for Higher Education - Webinar
Creating a Reusable Drupal Website for Higher Education - Webinar
Suzanne Dergacheva
Drupal con Sydney configuration management in drupal 7
Drupal con Sydney configuration management in drupal 7
Arradi Nur Rizal
Configuration Management and Deployment
Configuration Management and Deployment
SomnathMore3
Improving your Drupal 8 development workflow DrupalCampLA
Improving your Drupal 8 development workflow DrupalCampLA
Jesus Manuel Olivas

Recently uploaded (19)

FL Studio Crack Full Version [Latest 2025]
FL Studio Crack Full Version [Latest 2025]
Jackson lithms
PEN TO PODIUM powerpoint presentation.pptx
PEN TO PODIUM powerpoint presentation.pptx
Vanessa accad
puskhar camel yauvh on the hot wheels for
puskhar camel yauvh on the hot wheels for
nandanitiwari82528
ENGLISh.pptxENGLISh.pptxENGLISh.pptxENGLISh.pptx
ENGLISh.pptxENGLISh.pptxENGLISh.pptxENGLISh.pptx
MervieJadeBabao
What say you - ethical issues in research
What say you - ethical issues in research
ssuser8aff01
Joint Family And Nuclear Family to .. pdf.
Joint Family And Nuclear Family to .. pdf.
shrujapanchal813
The Love of a Father 06 15 2025.pptx
The Love of a Father 06 15 2025.pptx
FamilyWorshipCenterD
case ObGy - Post term pregnacy.pptx case presentation
case ObGy - Post term pregnacy.pptx case presentation
fortuneassey
Google Algorithm Updates A Complete Guide for Digital Marketing Students.pdf
Google Algorithm Updates A Complete Guide for Digital Marketing Students.pdf
Nithinks37
ENGLISh.pptxtausug.pptxtausug.pptxtausug.pptx
ENGLISh.pptxtausug.pptxtausug.pptxtausug.pptx
MervieJadeBabao
Josaya - Abstract for the research of the youth development.pdf
Josaya - Abstract for the research of the youth development.pdf
Josaya Injesi
Analysis of Tausog Language English.pptx
Analysis of Tausog Language English.pptx
MervieJadeBabao
Japan's Media and Telecom Markets: Evolution, Global Competition, and NTT Law...
Japan's Media and Telecom Markets: Evolution, Global Competition, and NTT Law...
Toshiya Jitsuzumi
Types of Information Sources (Primary, Secondary, and Tertiary Sources)
Types of Information Sources (Primary, Secondary, and Tertiary Sources)
jenicahmendoza1
Bob Stewart Acts 17 Study 06 11 2025.pptx
Bob Stewart Acts 17 Study 06 11 2025.pptx
FamilyWorshipCenterD
2025-06-15 Abraham 03 (shared slides).pptx
2025-06-15 Abraham 03 (shared slides).pptx
Dale Wells
Personal letter personal letter personal letter.pptx
Personal letter personal letter personal letter.pptx
GedeJuliana2
AI Unleashed: Transforming Ideas into Intelligent Solutions.pptx
AI Unleashed: Transforming Ideas into Intelligent Solutions.pptx
Arana Technologies
Briefing on the upcoming UNFSS +4 Stocktake
Briefing on the upcoming UNFSS +4 Stocktake
Francois Stepman
FL Studio Crack Full Version [Latest 2025]
FL Studio Crack Full Version [Latest 2025]
Jackson lithms
PEN TO PODIUM powerpoint presentation.pptx
PEN TO PODIUM powerpoint presentation.pptx
Vanessa accad
puskhar camel yauvh on the hot wheels for
puskhar camel yauvh on the hot wheels for
nandanitiwari82528
ENGLISh.pptxENGLISh.pptxENGLISh.pptxENGLISh.pptx
ENGLISh.pptxENGLISh.pptxENGLISh.pptxENGLISh.pptx
MervieJadeBabao
What say you - ethical issues in research
What say you - ethical issues in research
ssuser8aff01
Joint Family And Nuclear Family to .. pdf.
Joint Family And Nuclear Family to .. pdf.
shrujapanchal813
The Love of a Father 06 15 2025.pptx
The Love of a Father 06 15 2025.pptx
FamilyWorshipCenterD
case ObGy - Post term pregnacy.pptx case presentation
case ObGy - Post term pregnacy.pptx case presentation
fortuneassey
Google Algorithm Updates A Complete Guide for Digital Marketing Students.pdf
Google Algorithm Updates A Complete Guide for Digital Marketing Students.pdf
Nithinks37
ENGLISh.pptxtausug.pptxtausug.pptxtausug.pptx
ENGLISh.pptxtausug.pptxtausug.pptxtausug.pptx
MervieJadeBabao
Josaya - Abstract for the research of the youth development.pdf
Josaya - Abstract for the research of the youth development.pdf
Josaya Injesi
Analysis of Tausog Language English.pptx
Analysis of Tausog Language English.pptx
MervieJadeBabao
Japan's Media and Telecom Markets: Evolution, Global Competition, and NTT Law...
Japan's Media and Telecom Markets: Evolution, Global Competition, and NTT Law...
Toshiya Jitsuzumi
Types of Information Sources (Primary, Secondary, and Tertiary Sources)
Types of Information Sources (Primary, Secondary, and Tertiary Sources)
jenicahmendoza1
Bob Stewart Acts 17 Study 06 11 2025.pptx
Bob Stewart Acts 17 Study 06 11 2025.pptx
FamilyWorshipCenterD
2025-06-15 Abraham 03 (shared slides).pptx
2025-06-15 Abraham 03 (shared slides).pptx
Dale Wells
Personal letter personal letter personal letter.pptx
Personal letter personal letter personal letter.pptx
GedeJuliana2
AI Unleashed: Transforming Ideas into Intelligent Solutions.pptx
AI Unleashed: Transforming Ideas into Intelligent Solutions.pptx
Arana Technologies
Briefing on the upcoming UNFSS +4 Stocktake
Briefing on the upcoming UNFSS +4 Stocktake
Francois Stepman
Ad

CMI feedback.dnd

  • 1. CMI feedback D.org config API overview / summary Demo / Examples Custom Config + Translation Environement specific (overrides + splits) Configuration by multisite (site specific names, core base field overrides) Override existing config by modules Install site from existing configuration
  • 2. Configuration vs. other types of information Content - site editors Session - user's interactions with the site State - Change frequently, don't need to be deployed Configuration - site builders, will be deployed Cache - Speed up data retrieval, Tags invalidation, Contexts
  • 3. Configuration Storage in Drupal 8 YAML format Has a schema metadata The site syncronize directory Defined in settings.php (ex. sites/default/config/sync) Or outside of the webroot $config_directories[CONFIG_SYNC_DIRECTORY] = '../config/default/sync'; Active configuration: in the database File system based workflow For modules (Only when the module is installed) config/install module's installation fails if at least one of their dependencies are not met. config/optional that configs are installed only if all their dependencies are met.
  • 4. Configuration override system About See d.org introduction Always overrides and is only for reading Merge Deep Array with preserve integer keys Global overrides sites/default/settings.local.php or sites/default/settings.$env.php : global $config; $config['system.logging']['error_level'] = 'verbose'; Language overrides (Configuration translation) sites/default/config/sync/language/fr/user.role.anonymous.yml : label: 'Utilisateur anonyme' Overrides from modules (For custom purpose) sites/default/config/sync/system.site.yml : page: front: /user
  • 5. Configuration schema/metadata Cheat sheet Each module define the type of the configuration it ships with config/schema/modulename.schema.yml See also core shema files - system.schema.yml, core.data_types.schema.yml Used for multilingual support, translation forms for configuration the default persistence implementation for configuration entities requires a configuration schema typecast values to their expected types Properties For debug The configuration inspector module
  • 6. Configuration Entity vs. Simple Lists of things that users can create and delete; Work fine whether there are 0 or 100+ (image styles, views, etc) Complete set of CRUD hooks Easier to implement Can only depend on the module that provides it Configuration entity dependencies Dependency can be: module, theme or entity (content, config) Dynamic dependencies - If in a view has filter to show Article nodes, then it will also gain a dependency on the Article configuration (node.type.article) Dependencies must be installed before the configuration entity can be installed
  • 7. Install my_prf profile Copy the source config/sync directory Get database uuids Import Configuration Configuration management UI, drush Config Override Environment (and/or multisite) overrides + splits Override existing configs by modules Config example module Working with Configuration Forms Defining and using your own configuration Translating configuration Allow a site to be installed from existing configuration Until done: Create my_prf profile with just my_prf.info.yml. Use core/profiles/minimal/minimal.info.yml as example Add as dependencies all modules from the source site core.extension.yml.
  • 8. Configuration Split Split means in some way like a partial Sets of configuration (a split) that will get exported to separate directories when exporting, and get merged together when importing Blacklist Configs and/or module's configs will be removed from the sync directory to the split directory. Example of devel module with all his configs (including the entry in core.extension) Greylist Configs will be copied (the current database value) to the split directory and will not be removed from the sync directory Option to include dependant configs Option to split only when different (Excluded environment) Advanced Configuration Management (CMI) Workflows
  • 9. Environment export to sync Splits are used for adding "dev" new files (ex. devel related configs) Overrides are used for "dev" specific config changes "dev" external services uris, site mail address "prd" changes go to config/sync. Use empty config file to delete it from "dev" Compare from backuped sync to Exported in split, from database values Applied overrides on sync Compare each other: the database version and the override version of the environment specific configs Create splits, overrides from remote (ex. integ, ppd) Import the remote database Export for diff config/diff/integ The same way that for "dev" specifics
  • 10. Environment import Local : Import with only "dev" split enabled, after "dev" overrides and db uuids have been applied on sync Clean sync from overrides and/or uuids Remote (ex. not dev) Import with "integ" and "excluded" splits enabled after "integ" overrides and db uuids have been applied Will drop configs from other disabled splits (ex. devel ones) Intended for "prd" Import with only "excluded" split enabled after db uuids have been applied No sense of "prd" split, nor "override" : the sync is intended for "prd" Remote delivery with keeping BO changes Define menus (system.menu.*) as client side configs Export excluded split before config files delivery (only when different) Import will not replace the menus user changes Config not in excluded will be imported
  • 11. Git Workflow / Three-Way Merge
  • 12. Configurations by modules Using Features Module Use features for packaging reusable components Use CMI for deployment : local (dev) => remote (live) Using the config override system. For existing configs use my_module/config/override For new configs, use my_module/config/install Get configuration from updated modules and profiles for import write the module's install configs (and the module's optional ones if exist in sync) to sync then apply all modules' overrides Compare (instead to write to) config/sync version of module's configs with applied all modules' overrides (written to --destination) to module's config (my_module/condfig) Feature module to export the database version - with disabled module's overrides
  • 13. See also Configuration Synchronizer Safely importing site configuration from updated modules, themes, or distributions. requires Configuration Update Manager (like features) Configuration development auto import (into the active storage ) / export (configuration objects into files) import automatique des yml du config/install (between the active storage and exported modules) Configuration Tools Stores your current active configuration as yml in a specified directory Auto commits changes to your configuration ...