diff --git a/core/lib/Drupal/Core/Config/Config.php b/core/lib/Drupal/Core/Config/Config.php index 76a5b33..aed082f 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', 'update.settings'))) { + throw new ConfigException(format_string('Configuration file @name cannot be saved due to lack of schema.', array( + '@name' => $this->name, + ))); + } else { foreach ($this->data as $key => $value) { $this->validateValue($key, $value); diff --git a/core/modules/system/config/schema/system.schema.yml b/core/modules/system/config/schema/system.schema.yml index 2d9d11d..6846145 100644 --- a/core/modules/system/config/schema/system.schema.yml +++ b/core/modules/system/config/schema/system.schema.yml @@ -335,6 +335,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'