system.schema.yml

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

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 system_requirements()
  70. Range:
  71. min: 60
  72. requirements_error:
  73. type: integer
  74. label: 'Requirements error period'
  75. constraints:
  76. # @see system_requirements()
  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. Range:
  156. min: 0
  157. lines_trailing:
  158. type: integer
  159. label: 'Number of trailing lines in a diff'
  160. constraints:
  161. # @see \Drupal\Component\Diff\DiffFormatter
  162. Range:
  163. min: 0
  164. system.logging:
  165. type: config_object
  166. label: 'Logging settings'
  167. mapping:
  168. error_level:
  169. type: string
  170. label: 'Error messages to display'
  171. system.performance:
  172. type: config_object
  173. label: 'Performance settings'
  174. mapping:
  175. cache:
  176. type: mapping
  177. label: 'Caching'
  178. mapping:
  179. page:
  180. type: mapping
  181. label: 'Page caching'
  182. mapping:
  183. max_age:
  184. type: integer
  185. label: 'Max age'
  186. css:
  187. type: mapping
  188. label: 'CSS performance settings'
  189. mapping:
  190. preprocess:
  191. type: boolean
  192. label: 'Aggregate CSS files'
  193. gzip:
  194. type: boolean
  195. label: 'Compress CSS files'
  196. fast_404:
  197. type: mapping
  198. label: 'Fast 404 settings'
  199. mapping:
  200. enabled:
  201. type: boolean
  202. label: 'Fast 404 enabled'
  203. paths:
  204. type: string
  205. label: 'Regular expression to match'
  206. exclude_paths:
  207. type: string
  208. label: 'Regular expression to not match'
  209. html:
  210. type: string
  211. label: 'Fast 404 page html'
  212. js:
  213. type: mapping
  214. label: 'JavaScript performance settings'
  215. mapping:
  216. preprocess:
  217. type: boolean
  218. label: 'JavaScript preprocess'
  219. gzip:
  220. type: boolean
  221. label: 'Compress JavaScript files.'
  222. stale_file_threshold:
  223. type: integer
  224. label: 'Stale file threshold'
  225. deprecated: 'The system.performance.stale_file_threshold config key is deprecated in drupal:10.2.0 and is removed from drupal:11.0.0. See https://www.drupal.org/node/3301744'
  226. system.rss:
  227. type: config_object
  228. label: 'Feed settings'
  229. mapping:
  230. items:
  231. type: mapping
  232. label: 'Feed items'
  233. mapping:
  234. view_mode:
  235. type: string
  236. label: 'Feed content'
  237. system.theme:
  238. type: config_object
  239. label: 'Theme settings'
  240. mapping:
  241. admin:
  242. type: string
  243. label: 'Administration theme'
  244. default:
  245. type: string
  246. label: 'Default theme'
  247. system.menu.*:
  248. type: config_entity
  249. label: 'Menu'
  250. mapping:
  251. id:
  252. type: machine_name
  253. label: 'ID'
  254. # Menu IDs are specifically limited to 32 characters, and allow dashes but not
  255. # underscores.
  256. # @see \Drupal\menu_ui\MenuForm::form()
  257. constraints:
  258. Regex:
  259. pattern: '/^[a-z0-9-]+$/'
  260. message: "The %value machine name is not valid."
  261. Length:
  262. max: 32
  263. label:
  264. type: required_label
  265. label: 'Label'
  266. description:
  267. type: label
  268. label: 'Menu description'
  269. # @see \Drupal\menu_ui\MenuForm::form()
  270. nullable: true
  271. constraints:
  272. Length:
  273. max: 512
  274. locked:
  275. type: boolean
  276. label: 'Locked'
  277. constraints:
  278. FullyValidatable: ~
  279. system.action.*:
  280. type: config_entity
  281. label: 'System action'
  282. mapping:
  283. id:
  284. type: machine_name
  285. label: 'ID'
  286. constraints:
  287. # Action IDs also allow periods.
  288. # @see user_user_role_insert()
  289. Regex:
  290. pattern: '/^[a-z0-9_\.]+$/'
  291. message: "The %value machine name is not valid."
  292. label:
  293. type: required_label
  294. label: 'Label'
  295. type:
  296. type: string
  297. label: 'Type'
  298. plugin:
  299. type: string
  300. label: 'Plugin'
  301. constraints:
  302. PluginExists:
  303. manager: plugin.manager.action
  304. interface: 'Drupal\Core\Action\ActionInterface'
  305. configuration:
  306. type: action.configuration.[%parent.plugin]
  307. system.file:
  308. type: config_object
  309. label: 'File system'
  310. mapping:
  311. allow_insecure_uploads:
  312. type: boolean
  313. label: 'Allow insecure uploads'
  314. default_scheme:
  315. type: string
  316. label: 'Default download method'
  317. path:
  318. type: mapping
  319. label: 'Path settings'
  320. mapping:
  321. temporary:
  322. deprecated: "The 'system.file:path.temporary' config property path is deprecated in drupal:8.8.0 and is removed from drupal 11.0.0. Use settings.php instead. See https://www.drupal.org/node/3039255."
  323. type: string
  324. label: 'Temporary directory'
  325. temporary_maximum_age:
  326. type: integer
  327. label: 'Maximum age for temporary files'
  328. system.image:
  329. type: config_object
  330. label: 'Image settings'
  331. constraints:
  332. FullyValidatable: ~
  333. mapping:
  334. toolkit:
  335. type: string
  336. label: 'Toolkit'
  337. constraints:
  338. PluginExists:
  339. manager: 'image.toolkit.manager'
  340. interface: '\Drupal\Core\ImageToolkit\ImageToolkitInterface'
  341. system.image.gd:
  342. type: config_object
  343. label: 'Image settings'
  344. constraints:
  345. FullyValidatable: ~
  346. mapping:
  347. jpeg_quality:
  348. type: integer
  349. label: 'JPEG quality'
  350. constraints:
  351. # @see \Drupal\system\Plugin\ImageToolkit\GDToolkit::buildConfigurationForm()
  352. Range:
  353. min: 0
  354. max: 100
  355. system.mail:
  356. type: config_object
  357. label: 'Mail system'
  358. mapping:
  359. interface:
  360. type: sequence
  361. label: 'Interfaces'
  362. sequence:
  363. type: string
  364. label: 'Interface'
  365. constraints:
  366. PluginExists:
  367. manager: plugin.manager.mail
  368. interface: 'Drupal\Core\Mail\MailInterface'
  369. mailer_dsn:
  370. type: mapping
  371. label: 'Symfony mailer transport DSN'
  372. mapping:
  373. scheme:
  374. type: string
  375. label: 'Scheme'
  376. constraints:
  377. NotBlank:
  378. message: 'The mailer DSN must contain a scheme.'
  379. host:
  380. type: string
  381. label: 'Host'
  382. constraints:
  383. NotBlank:
  384. message: 'The mailer DSN must contain a host (use "default" by default).'
  385. user:
  386. type: string
  387. nullable: true
  388. label: 'User'
  389. password:
  390. type: string
  391. nullable: true
  392. label: 'Password'
  393. port:
  394. type: integer
  395. nullable: true
  396. label: 'Port'
  397. constraints:
  398. Range:
  399. min: 0
  400. max: 65535
  401. options:
  402. type: sequence
  403. label: 'Options'
  404. sequence:
  405. type: string
  406. label: Option
  407. constraints:
  408. NotNull: []
  409. system.theme.global:
  410. type: theme_settings
  411. label: 'Theme global settings'
  412. system.advisories:
  413. type: config_object
  414. label: 'Security advisory settings'
  415. constraints:
  416. FullyValidatable: ~
  417. mapping:
  418. enabled:
  419. type: boolean
  420. label: 'Display critical security advisories'
  421. interval_hours:
  422. type: integer
  423. label: 'How often to check for security advisories, in hours'
  424. # Minimum can be set to 0 as it just means the advisories will be retrieved on every call.
  425. # @see \Drupal\system\SecurityAdvisories\SecurityAdvisoriesFetcher::getSecurityAdvisories
  426. constraints:
  427. Range:
  428. min: 0
  429. block.settings.system_branding_block:
  430. type: block_settings
  431. label: 'Branding block'
  432. constraints:
  433. FullyValidatable: ~
  434. mapping:
  435. use_site_logo:
  436. type: boolean
  437. label: 'Use site logo'
  438. use_site_name:
  439. type: boolean
  440. label: 'Use site name'
  441. use_site_slogan:
  442. type: boolean
  443. label: 'Use site slogan'
  444. block.settings.system_menu_block:*:
  445. type: block_settings
  446. label: 'Menu block'
  447. mapping:
  448. level:
  449. type: integer
  450. label: 'Starting level'
  451. depth:
  452. type: integer
  453. label: 'Maximum number of levels'
  454. expand_all_items:
  455. type: boolean
  456. label: 'Expand all items'
  457. block.settings.local_tasks_block:
  458. type: block_settings
  459. label: 'Tabs block'
  460. constraints:
  461. FullyValidatable: ~
  462. mapping:
  463. primary:
  464. type: boolean
  465. label: 'Whether primary tabs are shown'
  466. secondary:
  467. type: boolean
  468. label: 'Whether secondary tabs are shown'
  469. condition.plugin.request_path:
  470. type: condition.plugin
  471. mapping:
  472. pages:
  473. type: string
  474. condition.plugin.response_status:
  475. type: condition.plugin
  476. mapping:
  477. status_codes:
  478. type: sequence
  479. sequence:
  480. type: integer
  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.