diff --git a/core/lib/Drupal/Core/Config/Config.php b/core/lib/Drupal/Core/Config/Config.php index 19899a5..cf31d66 100644 --- a/core/lib/Drupal/Core/Config/Config.php +++ b/core/lib/Drupal/Core/Config/Config.php @@ -215,6 +215,12 @@ public function save() { $this->data[$key] = $this->castValue($key, $value); } } + // @todo Why are these schema not recognized during installation? + elseif (!in_array($this->name, array('system.module'))) { + throw new ConfigException(format_string('Configuration file @name cannot be saved due to lack of schema.', array( + '@name' => $this->name, + ))); + } $this->storage->write($this->name, $this->data); $this->isNew = FALSE; diff --git a/core/modules/system/config/schema/system.schema.yml b/core/modules/system/config/schema/system.schema.yml index 3a14c5c..a4e1d60 100644 --- a/core/modules/system/config/schema/system.schema.yml +++ b/core/modules/system/config/schema/system.schema.yml @@ -341,6 +341,37 @@ system.action.*: type: config_dependencies label: 'Dependencies' +system.action.*.*: + type: mapping + label: 'System action' + mapping: + id: + type: string + label: 'ID' + uuid: + type: string + label: 'UUID' + label: + type: label + label: 'Label' + status: + type: boolean + label: 'Status' + langcode: + type: string + label: 'Default language' + type: + type: string + label: 'Type' + plugin: + type: string + label: 'Plugin' + configuration: + type: action.configuration.[plugin] + dependencies: + type: config_dependencies + label: 'Dependencies' + system.file: type: mapping label: 'File system'