system.schema.yml

Same filename and directory in other branches
  1. 11.x core/modules/system/config/schema/system.schema.yml
  2. 10 core/modules/system/config/schema/system.schema.yml
  3. 9 core/modules/system/config/schema/system.schema.yml
  4. 8.9.x core/modules/system/config/schema/system.schema.yml
core/modules/system/config/schema/system.schema.yml
2 string references to 'system.schema'
UpdateHookRegistry::__construct in core/lib/Drupal/Core/Update/UpdateHookRegistry.php
Constructs a new UpdateHookRegistry.
UpdateHookRegistryTest::setUp in core/tests/Drupal/Tests/Core/Update/UpdateHookRegistryTest.php

File

core/modules/system/config/schema/system.schema.yml

View source
  1. # Schema for the configuration files of the System module.
  2. system.site:
  3. type: config_object
  4. label: 'Site information'
  5. mapping:
  6. uuid:
  7. type: uuid
  8. label: 'Site UUID'
  9. constraints:
  10. Uuid: []
  11. NotNull: []
  12. name:
  13. type: label
  14. label: 'Site name'
  15. mail:
  16. type: email
  17. label: 'Email address'
  18. slogan:
  19. type: label
  20. label: 'Slogan'
  21. page:
  22. type: mapping
  23. label: 'Pages'
  24. mapping:
  25. 403:
  26. type: path
  27. label: 'Default 403 (access denied) page'
  28. 404:
  29. type: path
  30. label: 'Default 404 (not found) page'
  31. front:
  32. type: path
  33. label: 'Default front page'
  34. admin_compact_mode:
  35. type: boolean
  36. label: 'Compact mode'
  37. deprecated: "The 'admin_compact_mode' config is deprecated in drupal:11.5.0 and is removed from drupal:12.0.0. There is no replacement. See https://www.drupal.org/node/3588109."
  38. weight_select_max:
  39. type: integer
  40. label: 'Weight element maximum value'
  41. default_langcode:
  42. type: langcode
  43. label: 'Site default language code'
  44. mail_notification:
  45. type: string
  46. label: 'Notification email address'
  47. system.maintenance:
  48. type: config_object
  49. label: 'Maintenance mode'
  50. constraints:
  51. FullyValidatable: ~
  52. mapping:
  53. message:
  54. type: text
  55. label: 'Message to display when in maintenance mode'
  56. system.cron:
  57. type: config_object
  58. label: 'Cron settings'
  59. constraints:
  60. FullyValidatable: ~
  61. mapping:
  62. threshold:
  63. type: mapping
  64. label: 'Thresholds'
  65. mapping:
  66. requirements_warning:
  67. type: integer
  68. label: 'Requirements warning period'
  69. constraints:
  70. # @see \Drupal\system\Hook\SystemRequirementsHooks
  71. Range:
  72. min: 60
  73. requirements_error:
  74. type: integer
  75. label: 'Requirements error period'
  76. constraints:
  77. # @see \Drupal\system\Hook\SystemRequirementsHooks
  78. Range:
  79. min: 300
  80. logging:
  81. type: boolean
  82. label: 'Detailed cron logging'
  83. system.date:
  84. type: config_object
  85. label: 'Date settings'
  86. constraints:
  87. FullyValidatable: ~
  88. mapping:
  89. first_day:
  90. type: integer
  91. label: 'First day of week'
  92. constraints:
  93. Range:
  94. # @see \Drupal\system\Form\RegionalForm::buildForm()
  95. min: 0
  96. max: 6
  97. country:
  98. type: mapping
  99. label: 'Country'
  100. mapping:
  101. default:
  102. nullable: true
  103. type: string
  104. label: 'Default country'
  105. constraints:
  106. # @see \Drupal\system\Form\RegionalForm::buildForm()
  107. CountryCode: []
  108. timezone:
  109. type: mapping
  110. label: 'Time zone settings'
  111. mapping:
  112. default:
  113. type: string
  114. label: 'Default time zone'
  115. nullable: true
  116. constraints:
  117. # @see \Drupal\system\Form\RegionalForm::buildForm()
  118. Choice:
  119. callback: 'DateTimeZone::listIdentifiers'
  120. user:
  121. type: mapping
  122. label: 'User'
  123. mapping:
  124. configurable:
  125. type: boolean
  126. label: 'Users may set their own time zone'
  127. default:
  128. type: integer
  129. label: 'Time zone for new users'
  130. constraints:
  131. # Time zone for new users can have one of the following values:
  132. # - UserInterface::TIMEZONE_DEFAULT
  133. # - UserInterface::TIMEZONE_EMPTY
  134. # - UserInterface::TIMEZONE_SELECT
  135. # @see \Drupal\user\UserInterface::TIMEZONE_*
  136. # @todo Update this to use enum in https://www.drupal.org/project/drupal/issues/3402178
  137. Choice:
  138. choices: [0, 1, 2]
  139. warn:
  140. type: boolean
  141. label: 'Remind users at login if their time zone is not set'
  142. system.diff:
  143. type: config_object
  144. label: 'Diff settings'
  145. constraints:
  146. FullyValidatable: ~
  147. mapping:
  148. context:
  149. type: mapping
  150. label: 'Context'
  151. mapping:
  152. lines_leading:
  153. type: integer
  154. label: 'Number of leading lines in a diff'
  155. constraints:
  156. # @see \Drupal\Component\Diff\DiffFormatter
  157. PositiveOrZero: ~
  158. lines_trailing:
  159. type: integer
  160. label: 'Number of trailing lines in a diff'
  161. constraints:
  162. # @see \Drupal\Component\Diff\DiffFormatter
  163. PositiveOrZero: ~
  164. system.logging:
  165. type: config_object
  166. label: 'Logging settings'
  167. constraints:
  168. FullyValidatable: ~
  169. mapping:
  170. error_level:
  171. type: string
  172. label: 'Error messages to display'
  173. # @see core/includes/bootstrap.inc
  174. # @todo Update this to use enum in https://www.drupal.org/project/drupal/issues/2951046
  175. constraints:
  176. Choice:
  177. choices:
  178. - 'hide'
  179. - 'some'
  180. - 'all'
  181. - 'verbose'
  182. system.performance:
  183. type: config_object
  184. label: 'Performance settings'
  185. mapping:
  186. cache:
  187. type: mapping
  188. label: 'Caching'
  189. mapping:
  190. page:
  191. type: mapping
  192. label: 'Page caching'
  193. mapping:
  194. max_age:
  195. type: integer
  196. label: 'Max age'
  197. css:
  198. type: mapping
  199. label: 'CSS performance settings'
  200. mapping:
  201. preprocess:
  202. type: boolean
  203. label: 'Aggregate CSS files'
  204. gzip:
  205. # @see Drupal\Core\Asset\AssetDumper::dumpToUri()
  206. type: boolean
  207. label: 'Compress CSS files'
  208. deprecated: "The 'gzip' config schema is deprecated in drupal:11.4.0 and is removed from drupal:12.0.0. Use the 'compress' config schema instead. See https://www.drupal.org/node/3526344."
  209. compress:
  210. type: boolean
  211. label: 'Compress CSS files'
  212. fast_404:
  213. type: mapping
  214. label: 'Fast 404 settings'
  215. mapping:
  216. enabled:
  217. type: boolean
  218. label: 'Fast 404 enabled'
  219. paths:
  220. type: string
  221. label: 'Regular expression to match'
  222. exclude_paths:
  223. type: string
  224. label: 'Regular expression to not match'
  225. html:
  226. type: string
  227. label: 'Fast 404 page html'
  228. js:
  229. type: mapping
  230. label: 'JavaScript performance settings'
  231. mapping:
  232. preprocess:
  233. type: boolean
  234. label: 'JavaScript preprocess'
  235. gzip:
  236. # @see Drupal\Core\Asset\AssetDumper::dumpToUri()
  237. type: boolean
  238. label: 'Compress JavaScript files'
  239. deprecated: "The 'gzip' config schema is deprecated in drupal:11.4.0 and is removed from drupal:12.0.0. Use the 'compress' config schema instead. See https://www.drupal.org/node/3526344."
  240. compress:
  241. type: boolean
  242. label: 'Compress JavaScript files.'
  243. system.theme:
  244. type: config_object
  245. label: 'Theme settings'
  246. mapping:
  247. admin:
  248. type: string
  249. label: 'Administration theme'
  250. default:
  251. type: string
  252. label: 'Default theme'
  253. system.menu.*:
  254. type: config_entity
  255. label: 'Menu'
  256. mapping:
  257. id:
  258. type: machine_name
  259. label: 'ID'
  260. # Menu IDs are specifically limited to 32 characters, and allow dashes but not
  261. # underscores.
  262. # @see \Drupal\menu_ui\MenuForm::form()
  263. constraints:
  264. Regex:
  265. pattern: '/^[a-z0-9-]+$/'
  266. message: "The %value machine name is not valid."
  267. Length:
  268. max: 32
  269. label:
  270. type: required_label
  271. label: 'Label'
  272. description:
  273. type: label
  274. label: 'Menu description'
  275. # @see \Drupal\menu_ui\MenuForm::form()
  276. nullable: true
  277. constraints:
  278. Length:
  279. max: 512
  280. locked:
  281. type: boolean
  282. label: 'Locked'
  283. constraints:
  284. FullyValidatable: ~
  285. system.action.*:
  286. type: config_entity
  287. label: 'System action'
  288. constraints:
  289. FullyValidatable: ~
  290. mapping:
  291. id:
  292. type: machine_name
  293. label: 'ID'
  294. constraints:
  295. # Action IDs also allow periods.
  296. # @see user_user_role_insert()
  297. Regex:
  298. pattern: '/^[a-z0-9_\.]+$/'
  299. message: "The %value machine name is not valid."
  300. label:
  301. type: required_label
  302. label: 'Label'
  303. type:
  304. type: string
  305. label: 'Type'
  306. # Action can be specified without type.
  307. # @see \Drupal\action_test\Plugin\Action\NoType
  308. nullable: true
  309. constraints:
  310. NotBlank:
  311. allowNull: true
  312. plugin:
  313. type: string
  314. label: 'Plugin'
  315. constraints:
  316. PluginExists:
  317. manager: plugin.manager.action
  318. interface: 'Drupal\Core\Action\ActionInterface'
  319. configuration:
  320. type: action.configuration.[%parent.plugin]
  321. system.file:
  322. type: config_object
  323. label: 'File system'
  324. constraints:
  325. FullyValidatable: ~
  326. mapping:
  327. allow_insecure_uploads:
  328. type: boolean
  329. label: 'Allow insecure uploads'
  330. default_scheme:
  331. type: string
  332. label: 'Default download method'
  333. constraints:
  334. ClassResolver:
  335. classOrService: 'stream_wrapper_manager'
  336. method: 'isValidScheme'
  337. temporary_maximum_age:
  338. type: integer
  339. label: 'Maximum age for temporary files'
  340. constraints:
  341. PositiveOrZero: ~
  342. system.image:
  343. type: config_object
  344. label: 'Image settings'
  345. constraints:
  346. FullyValidatable: ~
  347. mapping:
  348. toolkit:
  349. type: string
  350. label: 'Toolkit'
  351. constraints:
  352. PluginExists:
  353. manager: 'image.toolkit.manager'
  354. interface: '\Drupal\Core\ImageToolkit\ImageToolkitInterface'
  355. system.image.gd:
  356. type: config_object
  357. label: 'Image settings'
  358. constraints:
  359. FullyValidatable: ~
  360. mapping:
  361. jpeg_quality:
  362. type: integer
  363. label: 'JPEG quality'
  364. constraints:
  365. # @see \Drupal\system\Plugin\ImageToolkit\GDToolkit::buildConfigurationForm()
  366. Range:
  367. min: 0
  368. max: 100
  369. system.mail:
  370. type: config_object
  371. label: 'Mail system'
  372. constraints:
  373. FullyValidatable: ~
  374. mapping:
  375. interface:
  376. type: sequence
  377. label: 'Interfaces'
  378. sequence:
  379. type: string
  380. label: 'Interface'
  381. constraints:
  382. PluginExists:
  383. manager: plugin.manager.mail
  384. interface: 'Drupal\Core\Mail\MailInterface'
  385. mailer_dsn:
  386. type: mailer_dsn
  387. label: 'Symfony mailer transport DSN'
  388. system.theme.global:
  389. type: theme_settings
  390. label: 'Theme global settings'
  391. system.advisories:
  392. type: config_object
  393. label: 'Security advisory settings'
  394. constraints:
  395. FullyValidatable: ~
  396. mapping:
  397. enabled:
  398. type: boolean
  399. label: 'Display critical security advisories'
  400. interval_hours:
  401. type: integer
  402. label: 'How often to check for security advisories, in hours'
  403. # Minimum can be set to 0 as it just means the advisories will be retrieved on every call.
  404. # @see \Drupal\system\SecurityAdvisories\SecurityAdvisoriesFetcher::getSecurityAdvisories
  405. constraints:
  406. PositiveOrZero: ~
  407. block.settings.system_branding_block:
  408. type: block_settings
  409. label: 'Branding block'
  410. constraints:
  411. FullyValidatable: ~
  412. mapping:
  413. use_site_logo:
  414. type: boolean
  415. label: 'Use site logo'
  416. use_site_name:
  417. type: boolean
  418. label: 'Use site name'
  419. use_site_slogan:
  420. type: boolean
  421. label: 'Use site slogan'
  422. block.settings.system_menu_block:*:
  423. type: block_settings
  424. label: 'Menu block'
  425. constraints:
  426. FullyValidatable: ~
  427. IgnoreActiveTrail: ~
  428. mapping:
  429. level:
  430. type: integer
  431. label: 'Starting level'
  432. constraints:
  433. MenuLinkDepth:
  434. min: 0
  435. depth:
  436. type: integer
  437. label: 'Maximum number of levels'
  438. nullable: true
  439. constraints:
  440. MenuLinkDepth:
  441. baseLevel: '[%parent.level]'
  442. min: 1
  443. expand_all_items:
  444. type: boolean
  445. label: 'Expand all items'
  446. ignore_active_trail:
  447. type: boolean
  448. label: 'Ignore active trail'
  449. requiredKey: false
  450. block.settings.local_tasks_block:
  451. type: block_settings
  452. label: 'Tabs block'
  453. constraints:
  454. FullyValidatable: ~
  455. mapping:
  456. primary:
  457. type: boolean
  458. label: 'Whether primary tabs are shown'
  459. secondary:
  460. type: boolean
  461. label: 'Whether secondary tabs are shown'
  462. condition.plugin.request_path:
  463. type: condition.plugin
  464. mapping:
  465. pages:
  466. type: string
  467. condition.plugin.response_status:
  468. type: condition.plugin
  469. constraints:
  470. FullyValidatable: ~
  471. mapping:
  472. status_codes:
  473. type: sequence
  474. sequence:
  475. type: integer
  476. constraints:
  477. # @see \Drupal\system\Plugin\Condition\ResponseStatus::buildConfigurationForm()
  478. Choice:
  479. # HTTP 200 OK, HTTP 403 FORBIDDEN, HTTP 404 NOT FOUND.
  480. choices: [200, 403, 404]
  481. system.feature_flags:
  482. type: config_object
  483. label: 'System Feature Flags'
  484. constraints:
  485. FullyValidatable: ~
  486. mapping:
  487. linkset_endpoint:
  488. type: boolean
  489. label: 'Enable the menu linkset endpoint'
  490. condition.plugin.current_theme:
  491. type: condition.plugin
  492. mapping:
  493. theme:
  494. type: string
  495. label: Theme

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.