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

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