diff --git a/core/config/schema/core.entity.schema.yml b/core/config/schema/core.entity.schema.yml
index 73d84bc4df..b5dc2c16c9 100644
--- a/core/config/schema/core.entity.schema.yml
+++ b/core/config/schema/core.entity.schema.yml
@@ -206,6 +206,9 @@ field.widget.settings.boolean_checkbox:
     display_label:
       type: boolean
       label: 'Display label'
+    required:
+      type: boolean
+      label: 'Whether or not to make the checkbox required'
 
 field.widget.settings.hidden:
   type: mapping
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/BooleanCheckboxWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/BooleanCheckboxWidget.php
index 660a06460e..0e481aee01 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/BooleanCheckboxWidget.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/BooleanCheckboxWidget.php
@@ -26,6 +26,7 @@ class BooleanCheckboxWidget extends WidgetBase {
   public static function defaultSettings() {
     return [
       'display_label' => TRUE,
+      'required' => FALSE,
     ] + parent::defaultSettings();
   }
 
@@ -39,6 +40,23 @@ public function settingsForm(array $form, FormStateInterface $form_state) {
       '#default_value' => $this->getSetting('display_label'),
       '#weight' => -1,
     ];
+    // There is no way to distinguish between the "Off" value and no value at
+    // all using a checkbox input. Making a checkbox input required in fact does
+    // not require that "a value" (in other words either the "On" value or the
+    // "Off" value) is input, instead it forces the checkbox to be checked which
+    // corresponds to selecting the "On" value. Therefore we allow the
+    // administrator to choose whether or not the checkbox should be required,
+    // even if the field itself is required.
+    // Strictly speaking the checkbox widget should only be available for
+    // required field definitions in the first place, but enforcing this would
+    // both break existing sites and present a confusing user interface to users
+    // who are not aware of this subtlety.
+    $element['required'] = [
+      '#type' => 'checkbox',
+      '#title' => t('Force users to check the checkbox.'),
+      '#default_value' => $this->getSetting('required'),
+      '#access' => $this->fieldDefinition->isRequired(),
+    ];
     return $element;
   }
 
@@ -51,6 +69,10 @@ public function settingsSummary() {
     $display_label = $this->getSetting('display_label');
     $summary[] = t('Use field label: @display_label', ['@display_label' => ($display_label ? t('Yes') : 'No')]);
 
+    if ($this->fieldDefinition->isRequired()) {
+      $required = $this->getSetting('required');
+      $summary[] = t('Required: @required', ['@required' => ($required ? t('Yes') : 'No')]);
+    }
     return $summary;
   }
 
@@ -71,6 +93,10 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
       $element['value']['#title'] = $this->fieldDefinition->getSetting('on_label');
     }
 
+    // Allow the administrator to decide whether the checkbox should be
+    // required.
+    $element['value']['#required'] = $this->getSetting('required') && $element['value']['#required'];
+
     return $element;
   }
 
diff --git a/core/modules/book/config/optional/core.entity_form_display.node.book.default.yml b/core/modules/book/config/optional/core.entity_form_display.node.book.default.yml
index b1db6d18a7..eb11b5bb58 100644
--- a/core/modules/book/config/optional/core.entity_form_display.node.book.default.yml
+++ b/core/modules/book/config/optional/core.entity_form_display.node.book.default.yml
@@ -30,6 +30,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 15
     region: content
     third_party_settings: {  }
@@ -37,6 +38,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 120
     region: content
     third_party_settings: {  }
@@ -44,6 +46,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 16
     region: content
     third_party_settings: {  }
diff --git a/core/modules/forum/config/optional/core.entity_form_display.node.forum.default.yml b/core/modules/forum/config/optional/core.entity_form_display.node.forum.default.yml
index 965a691c9e..5cb1bf8461 100644
--- a/core/modules/forum/config/optional/core.entity_form_display.node.forum.default.yml
+++ b/core/modules/forum/config/optional/core.entity_form_display.node.forum.default.yml
@@ -39,6 +39,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 15
     region: content
     third_party_settings: {  }
@@ -46,6 +47,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 120
     region: content
     third_party_settings: {  }
@@ -53,6 +55,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 16
     region: content
     third_party_settings: {  }
diff --git a/core/modules/node/node.install b/core/modules/node/node.install
index 6469245c49..a3edaae39a 100644
--- a/core/modules/node/node.install
+++ b/core/modules/node/node.install
@@ -179,7 +179,7 @@ function node_update_8001() {
 /**
  * Remove obsolete indexes from the node schema.
  */
-function node_update_8002() {
+function _node_update_8002() {
   // The "node__default_langcode" and "node_field__langcode" indexes were
   // removed from \Drupal\node\NodeStorageSchema in
   // https://www.drupal.org/node/2261669, but this update function wasn't
diff --git a/core/modules/node/tests/src/Functional/Update/NodeUpdateTest.php b/core/modules/node/tests/src/Functional/Update/NodeUpdateTest.php
index 223676b31e..8aff6038d3 100644
--- a/core/modules/node/tests/src/Functional/Update/NodeUpdateTest.php
+++ b/core/modules/node/tests/src/Functional/Update/NodeUpdateTest.php
@@ -59,8 +59,12 @@ public function testStatusCheckbox() {
      */
     foreach ($form_displays as $id => $form_display) {
       $component = $form_display->getComponent('status');
-      $this->assertEqual('boolean_checkbox', $component['type']);
-      $this->assertEqual(['display_label' => TRUE], $component['settings']);
+      $this->assertSame('boolean_checkbox', $component['type']);
+      $expected_settings = [
+        'display_label' => TRUE,
+        'required' => FALSE,
+      ];
+      $this->assertEquals($expected_settings, $component['settings']);
     }
   }
 
diff --git a/core/modules/options/tests/options_config_install_test/config/install/core.entity_form_display.node.options_install_test.default.yml b/core/modules/options/tests/options_config_install_test/config/install/core.entity_form_display.node.options_install_test.default.yml
index ff5f0ec275..3044e9962c 100644
--- a/core/modules/options/tests/options_config_install_test/config/install/core.entity_form_display.node.options_install_test.default.yml
+++ b/core/modules/options/tests/options_config_install_test/config/install/core.entity_form_display.node.options_install_test.default.yml
@@ -38,6 +38,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 15
     region: content
     third_party_settings: {  }
@@ -45,6 +46,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 16
     region: content
     third_party_settings: {  }
diff --git a/core/modules/rest/tests/src/Functional/EntityResource/EntityFormDisplay/EntityFormDisplayResourceTestBase.php b/core/modules/rest/tests/src/Functional/EntityResource/EntityFormDisplay/EntityFormDisplayResourceTestBase.php
index cc4cf588a7..ba4db21196 100644
--- a/core/modules/rest/tests/src/Functional/EntityResource/EntityFormDisplay/EntityFormDisplayResourceTestBase.php
+++ b/core/modules/rest/tests/src/Functional/EntityResource/EntityFormDisplay/EntityFormDisplayResourceTestBase.php
@@ -71,6 +71,7 @@ protected function getExpectedNormalizedEntity() {
           'type' => 'boolean_checkbox',
           'settings' => [
             'display_label' => TRUE,
+            'required' => FALSE,
           ],
           'weight' => 15,
           'region' => 'content',
@@ -82,6 +83,7 @@ protected function getExpectedNormalizedEntity() {
           'region' => 'content',
           'settings' => [
             'display_label' => TRUE,
+            'required' => FALSE,
           ],
           'third_party_settings' => [],
         ],
@@ -89,6 +91,7 @@ protected function getExpectedNormalizedEntity() {
           'type' => 'boolean_checkbox',
           'settings' => [
             'display_label' => TRUE,
+            'required' => FALSE,
           ],
           'weight' => 16,
           'region' => 'content',
diff --git a/core/modules/system/system.post_update.php b/core/modules/system/system.post_update.php
index 66fa24aa16..5899fecacd 100644
--- a/core/modules/system/system.post_update.php
+++ b/core/modules/system/system.post_update.php
@@ -8,6 +8,8 @@
 use Drupal\Core\Entity\Display\EntityDisplayInterface;
 use Drupal\Core\Entity\Entity\EntityFormDisplay;
 use Drupal\Core\Entity\Entity\EntityViewDisplay;
+use Drupal\Core\Field\Plugin\Field\FieldType\BooleanItem;
+use Drupal\Core\Field\Plugin\Field\FieldWidget\BooleanCheckboxWidget;
 
 /**
  * Re-save all configuration entities to recalculate dependencies.
@@ -130,3 +132,43 @@ function system_post_update_change_delete_action_plugins() {
     }
   }
 }
+
+/**
+ * Update form displays to add the "required" setting to checkbox widgets.
+ */
+function system_post_update_boolean_checkbox_widget_required_setting() {
+  /* @var \Drupal\Core\Entity\EntityFieldManagerInterface $entity_field_manager */
+  $entity_field_manager = \Drupal::service('entity_field.manager');
+  /* @var \Drupal\Core\Entity\Display\EntityFormDisplayInterface $form_display */
+  foreach (EntityFormDisplay::loadMultiple() as $form_display) {
+    $field_definitions = $entity_field_manager->getFieldDefinitions($form_display->getTargetEntityTypeId(), $form_display->getTargetBundle());
+
+    $changed = FALSE;
+    foreach ($form_display->getComponents() as $name => $component) {
+      // Only update required boolean fields which use the checkbox widget.
+      if (!isset($field_definitions[$name])) {
+        continue;
+      }
+
+      $field_definition = $field_definitions[$name];
+      if (!is_a($field_definition->getItemDefinition()->getClass(), BooleanItem::class, TRUE)) {
+        continue;
+      }
+
+      $renderer = $form_display->getRenderer($name);
+      if (!$renderer || !($renderer instanceof BooleanCheckboxWidget)) {
+        continue;
+      }
+
+      // While the required setting is FALSE by default even for required
+      // fields, setting it to TRUE matches the previous behavior.
+      $component['settings']['required'] = $field_definition->isRequired();
+      $form_display->setComponent($name, $component);
+      $changed = TRUE;
+    }
+
+    if ($changed) {
+      $form_display->save();
+    }
+  }
+}
diff --git a/core/modules/system/tests/fixtures/update/drupal-8.boolean-checkbox-widget-update.php b/core/modules/system/tests/fixtures/update/drupal-8.boolean-checkbox-widget-update.php
new file mode 100644
index 0000000000..0d6acafeeb
--- /dev/null
+++ b/core/modules/system/tests/fixtures/update/drupal-8.boolean-checkbox-widget-update.php
@@ -0,0 +1,224 @@
+<?php
+
+/**
+ * @file
+ * Contains a partial database dump for testing purposes.
+ *
+ * This file contains database records for a required boolean field. Run it
+ * on top of a base Drupal 8 dump.
+ *
+ * @see \Drupal\Tests\system\Functional\Update\BooleanCheckboxWidgetSettingsUpdateTest
+ */
+
+use Drupal\Core\Database\Database;
+
+$connection = Database::getConnection();
+
+$connection->update('config')
+  ->condition('collection', '')
+  ->condition('name', 'core.entity_form_display.node.article.default')
+  ->fields([
+    'data' => 'a:10:{s:4:"uuid";s:36:"6cd7cc93-f55f-4ce6-be10-161a3d8113b4";s:8:"langcode";s:2:"en";s:6:"status";b:1;s:12:"dependencies";a:2:{s:6:"config";a:6:{i:0;s:29:"field.field.node.article.body";i:1;s:32:"field.field.node.article.comment";i:2;s:36:"field.field.node.article.field_image";i:3;s:47:"field.field.node.article.field_required_boolean";i:4;s:35:"field.field.node.article.field_tags";i:5;s:17:"node.type.article";}s:6:"module";a:4:{i:0;s:7:"comment";i:1;s:5:"image";i:2;s:4:"path";i:3;s:4:"text";}}s:2:"id";s:20:"node.article.default";s:16:"targetEntityType";s:4:"node";s:6:"bundle";s:7:"article";s:4:"mode";s:7:"default";s:7:"content";a:11:{s:4:"body";a:4:{s:4:"type";s:26:"text_textarea_with_summary";s:6:"weight";i:1;s:8:"settings";a:3:{s:4:"rows";i:9;s:12:"summary_rows";i:3;s:11:"placeholder";s:0:"";}s:20:"third_party_settings";a:0:{}}s:7:"comment";a:4:{s:4:"type";s:15:"comment_default";s:6:"weight";i:20;s:8:"settings";a:0:{}s:20:"third_party_settings";a:0:{}}s:7:"created";a:4:{s:4:"type";s:18:"datetime_timestamp";s:6:"weight";i:10;s:8:"settings";a:0:{}s:20:"third_party_settings";a:0:{}}s:11:"field_image";a:4:{s:4:"type";s:11:"image_image";s:6:"weight";i:4;s:8:"settings";a:2:{s:18:"progress_indicator";s:8:"throbber";s:19:"preview_image_style";s:9:"thumbnail";}s:20:"third_party_settings";a:0:{}}s:22:"field_required_boolean";a:4:{s:4:"type";s:16:"boolean_checkbox";s:6:"weight";i:31;s:8:"settings";a:1:{s:13:"display_label";b:0;}s:20:"third_party_settings";a:0:{}}s:10:"field_tags";a:4:{s:4:"type";s:34:"entity_reference_autocomplete_tags";s:6:"weight";i:3;s:8:"settings";a:0:{}s:20:"third_party_settings";a:0:{}}s:4:"path";a:4:{s:4:"type";s:4:"path";s:6:"weight";i:30;s:8:"settings";a:0:{}s:20:"third_party_settings";a:0:{}}s:7:"promote";a:4:{s:4:"type";s:16:"boolean_checkbox";s:8:"settings";a:1:{s:13:"display_label";b:1;}s:6:"weight";i:15;s:20:"third_party_settings";a:0:{}}s:6:"sticky";a:4:{s:4:"type";s:16:"boolean_checkbox";s:8:"settings";a:1:{s:13:"display_label";b:1;}s:6:"weight";i:16;s:20:"third_party_settings";a:0:{}}s:5:"title";a:4:{s:4:"type";s:16:"string_textfield";s:6:"weight";i:0;s:8:"settings";a:2:{s:4:"size";i:60;s:11:"placeholder";s:0:"";}s:20:"third_party_settings";a:0:{}}s:3:"uid";a:4:{s:4:"type";s:29:"entity_reference_autocomplete";s:6:"weight";i:5;s:8:"settings";a:3:{s:14:"match_operator";s:8:"CONTAINS";s:4:"size";i:60;s:11:"placeholder";s:0:"";}s:20:"third_party_settings";a:0:{}}}s:6:"hidden";a:0:{}}',
+  ])
+  ->execute();
+
+$connection->update('config')
+  ->condition('collection', '')
+  ->condition('name', 'core.entity_form_display.node.page.default')
+  ->fields([
+    'data' => 'a:10:{s:4:"uuid";s:36:"a1fbadb4-7093-439b-b600-d13d38e54016";s:8:"langcode";s:2:"en";s:6:"status";b:1;s:12:"dependencies";a:2:{s:6:"config";a:3:{i:0;s:26:"field.field.node.page.body";i:1;s:44:"field.field.node.page.field_required_boolean";i:2;s:14:"node.type.page";}s:6:"module";a:2:{i:0;s:4:"path";i:1;s:4:"text";}}s:2:"id";s:17:"node.page.default";s:16:"targetEntityType";s:4:"node";s:6:"bundle";s:4:"page";s:4:"mode";s:7:"default";s:7:"content";a:8:{s:4:"body";a:4:{s:4:"type";s:26:"text_textarea_with_summary";s:6:"weight";i:31;s:8:"settings";a:3:{s:4:"rows";i:9;s:12:"summary_rows";i:3;s:11:"placeholder";s:0:"";}s:20:"third_party_settings";a:0:{}}s:7:"created";a:4:{s:4:"type";s:18:"datetime_timestamp";s:6:"weight";i:10;s:8:"settings";a:0:{}s:20:"third_party_settings";a:0:{}}s:22:"field_required_boolean";a:4:{s:4:"type";s:16:"boolean_checkbox";s:6:"weight";i:32;s:8:"settings";a:1:{s:13:"display_label";b:0;}s:20:"third_party_settings";a:0:{}}s:4:"path";a:4:{s:4:"type";s:4:"path";s:6:"weight";i:30;s:8:"settings";a:0:{}s:20:"third_party_settings";a:0:{}}s:7:"promote";a:4:{s:4:"type";s:16:"boolean_checkbox";s:8:"settings";a:1:{s:13:"display_label";b:1;}s:6:"weight";i:15;s:20:"third_party_settings";a:0:{}}s:6:"sticky";a:4:{s:4:"type";s:16:"boolean_checkbox";s:8:"settings";a:1:{s:13:"display_label";b:1;}s:6:"weight";i:16;s:20:"third_party_settings";a:0:{}}s:5:"title";a:4:{s:4:"type";s:16:"string_textfield";s:6:"weight";i:-5;s:8:"settings";a:2:{s:4:"size";i:60;s:11:"placeholder";s:0:"";}s:20:"third_party_settings";a:0:{}}s:3:"uid";a:4:{s:4:"type";s:29:"entity_reference_autocomplete";s:6:"weight";i:5;s:8:"settings";a:3:{s:14:"match_operator";s:8:"CONTAINS";s:4:"size";i:60;s:11:"placeholder";s:0:"";}s:20:"third_party_settings";a:0:{}}}s:6:"hidden";a:0:{}}',
+  ])
+  ->execute();
+
+$connection->insert('config')
+  ->fields([
+    'collection',
+    'name',
+    'data',
+  ])
+  ->values([
+    'collection' => '',
+    'name' => 'field.field.node.article.field_required_boolean',
+    'data' => 'a:16:{s:4:"uuid";s:36:"406c6892-b80e-4514-be0c-12c39208955f";s:8:"langcode";s:2:"en";s:6:"status";b:1;s:12:"dependencies";a:1:{s:6:"config";a:2:{i:0;s:41:"field.storage.node.field_required_boolean";i:1;s:17:"node.type.article";}}s:2:"id";s:35:"node.article.field_required_boolean";s:10:"field_name";s:22:"field_required_boolean";s:11:"entity_type";s:4:"node";s:6:"bundle";s:7:"article";s:5:"label";s:22:"field_required_boolean";s:11:"description";s:0:"";s:8:"required";b:1;s:12:"translatable";b:1;s:13:"default_value";a:0:{}s:22:"default_value_callback";s:0:"";s:8:"settings";a:2:{s:8:"on_label";s:2:"On";s:9:"off_label";s:3:"Off";}s:10:"field_type";s:7:"boolean";}',
+  ])
+  ->values([
+    'collection' => '',
+    'name' => 'field.field.node.page.field_required_boolean',
+    'data' => 'a:16:{s:4:"uuid";s:36:"1a1a5ed7-1f61-4cb7-9500-ed97578e604d";s:8:"langcode";s:2:"en";s:6:"status";b:1;s:12:"dependencies";a:1:{s:6:"config";a:2:{i:0;s:41:"field.storage.node.field_required_boolean";i:1;s:14:"node.type.page";}}s:2:"id";s:32:"node.page.field_required_boolean";s:10:"field_name";s:22:"field_required_boolean";s:11:"entity_type";s:4:"node";s:6:"bundle";s:4:"page";s:5:"label";s:22:"field_required_boolean";s:11:"description";s:0:"";s:8:"required";b:1;s:12:"translatable";b:1;s:13:"default_value";a:0:{}s:22:"default_value_callback";s:0:"";s:8:"settings";a:2:{s:8:"on_label";s:2:"On";s:9:"off_label";s:3:"Off";}s:10:"field_type";s:7:"boolean";}',
+  ])
+  ->values([
+    'collection' => '',
+    'name' => 'field.storage.node.field_required_boolean',
+    'data' => 'a:16:{s:4:"uuid";s:36:"cb4e9331-1868-4258-9306-6fcfab1cdc85";s:8:"langcode";s:2:"en";s:6:"status";b:1;s:12:"dependencies";a:1:{s:6:"module";a:1:{i:0;s:4:"node";}}s:2:"id";s:27:"node.field_required_boolean";s:10:"field_name";s:22:"field_required_boolean";s:11:"entity_type";s:4:"node";s:4:"type";s:7:"boolean";s:8:"settings";a:0:{}s:6:"module";s:4:"core";s:6:"locked";b:0;s:11:"cardinality";i:1;s:12:"translatable";b:1;s:7:"indexes";a:0:{}s:22:"persist_with_no_fields";b:1;s:14:"custom_storage";b:0;}',
+  ])
+  ->execute();
+
+$connection->insert('key_value')
+  ->fields([
+    'collection',
+    'name',
+    'value',
+  ])
+  ->values(array(
+    'collection' => 'config.entity.key_store.field_config',
+    'name' => 'uuid:1a1a5ed7-1f61-4cb7-9500-ed97578e604d',
+    'value' => 'a:1:{i:0;s:44:"field.field.node.page.field_required_boolean";}',
+  ))
+  ->values(array(
+    'collection' => 'config.entity.key_store.field_config',
+    'name' => 'uuid:406c6892-b80e-4514-be0c-12c39208955f',
+    'value' => 'a:1:{i:0;s:47:"field.field.node.article.field_required_boolean";}',
+  ))
+  ->values(array(
+    'collection' => 'config.entity.key_store.field_storage_config',
+    'name' => 'uuid:cb4e9331-1868-4258-9306-6fcfab1cdc85',
+    'value' => 'a:1:{i:0;s:41:"field.storage.node.field_required_boolean";}',
+  ))
+  ->execute();
+
+$connection->update('key_value')
+  ->condition('collection', 'entity.definitions.bundle_field_map')
+  ->condition('name', 'node')
+  ->fields([
+    'value' => 'a:5:{s:4:"body";a:2:{s:4:"type";s:17:"text_with_summary";s:7:"bundles";a:2:{s:7:"article";s:7:"article";s:4:"page";s:4:"page";}}s:7:"comment";a:2:{s:4:"type";s:7:"comment";s:7:"bundles";a:1:{s:7:"article";s:7:"article";}}s:11:"field_image";a:2:{s:4:"type";s:5:"image";s:7:"bundles";a:1:{s:7:"article";s:7:"article";}}s:10:"field_tags";a:2:{s:4:"type";s:16:"entity_reference";s:7:"bundles";a:1:{s:7:"article";s:7:"article";}}s:22:"field_required_boolean";a:2:{s:4:"type";s:7:"boolean";s:7:"bundles";a:2:{s:7:"article";s:7:"article";s:4:"page";s:4:"page";}}}',
+  ])
+  ->execute();
+
+$connection->update('key_value')
+  ->condition('collection', 'entity.definitions.installed')
+  ->condition('name', 'node.field_storage_definitions')
+  ->fields([
+    'value' => 'a:23:{s:3:"nid";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:7:"integer";s:9:" * schema";a:4:{s:7:"columns";a:1:{s:5:"value";a:3:{s:4:"type";s:3:"int";s:8:"unsigned";b:1;s:4:"size";s:6:"normal";}}s:11:"unique keys";a:0:{}s:7:"indexes";a:0:{}s:12:"foreign keys";a:0:{}}s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:2;s:13:" * definition";a:2:{s:4:"type";s:18:"field_item:integer";s:8:"settings";a:6:{s:8:"unsigned";b:1;s:4:"size";s:6:"normal";s:3:"min";s:0:"";s:3:"max";s:0:"";s:6:"prefix";s:0:"";s:6:"suffix";s:0:"";}}}s:13:" * definition";a:7:{s:5:"label";s:7:"Node ID";s:11:"description";s:12:"The node ID.";s:9:"read-only";b:1;s:8:"provider";s:4:"node";s:10:"field_name";s:3:"nid";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:4:"uuid";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:4:"uuid";s:9:" * schema";a:4:{s:7:"columns";a:1:{s:5:"value";a:3:{s:4:"type";s:13:"varchar_ascii";s:6:"length";i:128;s:6:"binary";b:0;}}s:11:"unique keys";a:1:{s:5:"value";a:1:{i:0;s:5:"value";}}s:7:"indexes";a:0:{}s:12:"foreign keys";a:0:{}}s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:33;s:13:" * definition";a:2:{s:4:"type";s:15:"field_item:uuid";s:8:"settings";a:3:{s:10:"max_length";i:128;s:8:"is_ascii";b:1;s:14:"case_sensitive";b:0;}}}s:13:" * definition";a:7:{s:5:"label";s:4:"UUID";s:11:"description";s:14:"The node UUID.";s:9:"read-only";b:1;s:8:"provider";s:4:"node";s:10:"field_name";s:4:"uuid";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:3:"vid";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:7:"integer";s:9:" * schema";a:4:{s:7:"columns";a:1:{s:5:"value";a:3:{s:4:"type";s:3:"int";s:8:"unsigned";b:1;s:4:"size";s:6:"normal";}}s:11:"unique keys";a:0:{}s:7:"indexes";a:0:{}s:12:"foreign keys";a:0:{}}s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:63;s:13:" * definition";a:2:{s:4:"type";s:18:"field_item:integer";s:8:"settings";a:6:{s:8:"unsigned";b:1;s:4:"size";s:6:"normal";s:3:"min";s:0:"";s:3:"max";s:0:"";s:6:"prefix";s:0:"";s:6:"suffix";s:0:"";}}}s:13:" * definition";a:7:{s:5:"label";s:11:"Revision ID";s:11:"description";s:21:"The node revision ID.";s:9:"read-only";b:1;s:8:"provider";s:4:"node";s:10:"field_name";s:3:"vid";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:4:"type";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:16:"entity_reference";s:9:" * schema";a:4:{s:7:"columns";a:1:{s:9:"target_id";a:3:{s:11:"description";s:28:"The ID of the target entity.";s:4:"type";s:13:"varchar_ascii";s:6:"length";i:32;}}s:7:"indexes";a:1:{s:9:"target_id";a:1:{i:0;s:9:"target_id";}}s:11:"unique keys";a:0:{}s:12:"foreign keys";a:0:{}}s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:94;s:13:" * definition";a:2:{s:4:"type";s:27:"field_item:entity_reference";s:8:"settings";a:3:{s:11:"target_type";s:9:"node_type";s:7:"handler";s:12:"default:node";s:16:"handler_settings";a:0:{}}}}s:13:" * definition";a:7:{s:5:"label";s:4:"Type";s:11:"description";s:14:"The node type.";s:9:"read-only";b:1;s:8:"provider";s:4:"node";s:10:"field_name";s:4:"type";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:8:"langcode";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:8:"language";s:9:" * schema";a:4:{s:7:"columns";a:1:{s:5:"value";a:3:{s:4:"type";s:7:"varchar";s:6:"length";i:12;s:8:"is_ascii";b:1;}}s:11:"unique keys";a:0:{}s:7:"indexes";a:0:{}s:12:"foreign keys";a:0:{}}s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:124;s:13:" * definition";a:2:{s:4:"type";s:19:"field_item:language";s:8:"settings";a:0:{}}}s:13:" * definition";a:9:{s:5:"label";s:8:"Language";s:11:"description";s:23:"The node language code.";s:12:"translatable";b:1;s:12:"revisionable";b:1;s:7:"display";a:2:{s:4:"view";a:1:{s:7:"options";a:1:{s:4:"type";s:6:"hidden";}}s:4:"form";a:1:{s:7:"options";a:2:{s:4:"type";s:15:"language_select";s:6:"weight";i:2;}}}s:8:"provider";s:4:"node";s:10:"field_name";s:8:"langcode";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:5:"title";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:6:"string";s:9:" * schema";a:4:{s:7:"columns";a:1:{s:5:"value";a:3:{s:4:"type";s:7:"varchar";s:6:"length";i:255;s:6:"binary";b:0;}}s:11:"unique keys";a:0:{}s:7:"indexes";a:0:{}s:12:"foreign keys";a:0:{}}s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:158;s:13:" * definition";a:2:{s:4:"type";s:17:"field_item:string";s:8:"settings";a:3:{s:10:"max_length";i:255;s:8:"is_ascii";b:0;s:14:"case_sensitive";b:0;}}}s:13:" * definition";a:10:{s:5:"label";s:5:"Title";s:8:"required";b:1;s:12:"translatable";b:1;s:12:"revisionable";b:1;s:13:"default_value";a:1:{i:0;a:1:{s:5:"value";s:0:"";}}s:7:"display";a:2:{s:4:"view";a:1:{s:7:"options";a:3:{s:5:"label";s:6:"hidden";s:4:"type";s:6:"string";s:6:"weight";i:-5;}}s:4:"form";a:2:{s:7:"options";a:2:{s:4:"type";s:16:"string_textfield";s:6:"weight";i:-5;}s:12:"configurable";b:1;}}s:8:"provider";s:4:"node";s:10:"field_name";s:5:"title";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:3:"uid";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:16:"entity_reference";s:9:" * schema";a:4:{s:7:"columns";a:1:{s:9:"target_id";a:3:{s:11:"description";s:28:"The ID of the target entity.";s:4:"type";s:3:"int";s:8:"unsigned";b:1;}}s:7:"indexes";a:1:{s:9:"target_id";a:1:{i:0;s:9:"target_id";}}s:11:"unique keys";a:0:{}s:12:"foreign keys";a:0:{}}s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:201;s:13:" * definition";a:2:{s:4:"type";s:27:"field_item:entity_reference";s:8:"settings";a:3:{s:11:"target_type";s:4:"user";s:7:"handler";s:7:"default";s:16:"handler_settings";a:0:{}}}}s:13:" * definition";a:10:{s:5:"label";s:11:"Authored by";s:11:"description";s:35:"The username of the content author.";s:12:"revisionable";b:1;s:22:"default_value_callback";s:41:"Drupal\node\Entity\Node::getCurrentUserId";s:12:"translatable";b:1;s:7:"display";a:2:{s:4:"view";a:1:{s:7:"options";a:3:{s:5:"label";s:6:"hidden";s:4:"type";s:6:"author";s:6:"weight";i:0;}}s:4:"form";a:2:{s:7:"options";a:3:{s:4:"type";s:29:"entity_reference_autocomplete";s:6:"weight";i:5;s:8:"settings";a:3:{s:14:"match_operator";s:8:"CONTAINS";s:4:"size";s:2:"60";s:11:"placeholder";s:0:"";}}s:12:"configurable";b:1;}}s:8:"provider";s:4:"node";s:10:"field_name";s:3:"uid";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:6:"status";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:7:"boolean";s:9:" * schema";a:4:{s:7:"columns";a:1:{s:5:"value";a:2:{s:4:"type";s:3:"int";s:4:"size";s:4:"tiny";}}s:11:"unique keys";a:0:{}s:7:"indexes";a:0:{}s:12:"foreign keys";a:0:{}}s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:248;s:13:" * definition";a:2:{s:4:"type";s:18:"field_item:boolean";s:8:"settings";a:2:{s:8:"on_label";s:2:"On";s:9:"off_label";s:3:"Off";}}}s:13:" * definition";a:9:{s:5:"label";s:17:"Publishing status";s:11:"description";s:51:"A boolean indicating whether the node is published.";s:12:"revisionable";b:1;s:12:"translatable";b:1;s:13:"default_value";a:1:{i:0;a:1:{s:5:"value";b:1;}}s:8:"provider";s:4:"node";s:10:"field_name";s:6:"status";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:7:"created";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:7:"created";s:9:" * schema";a:4:{s:7:"columns";a:1:{s:5:"value";a:1:{s:4:"type";s:3:"int";}}s:11:"unique keys";a:0:{}s:7:"indexes";a:0:{}s:12:"foreign keys";a:0:{}}s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:278;s:13:" * definition";a:2:{s:4:"type";s:18:"field_item:created";s:8:"settings";a:0:{}}}s:13:" * definition";a:9:{s:5:"label";s:11:"Authored on";s:11:"description";s:35:"The time that the node was created.";s:12:"revisionable";b:1;s:12:"translatable";b:1;s:7:"display";a:2:{s:4:"view";a:1:{s:7:"options";a:3:{s:5:"label";s:6:"hidden";s:4:"type";s:9:"timestamp";s:6:"weight";i:0;}}s:4:"form";a:2:{s:7:"options";a:2:{s:4:"type";s:18:"datetime_timestamp";s:6:"weight";i:10;}s:12:"configurable";b:1;}}s:8:"provider";s:4:"node";s:10:"field_name";s:7:"created";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:7:"changed";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:7:"changed";s:9:" * schema";a:4:{s:7:"columns";a:1:{s:5:"value";a:1:{s:4:"type";s:3:"int";}}s:11:"unique keys";a:0:{}s:7:"indexes";a:0:{}s:12:"foreign keys";a:0:{}}s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:313;s:13:" * definition";a:2:{s:4:"type";s:18:"field_item:changed";s:8:"settings";a:0:{}}}s:13:" * definition";a:8:{s:5:"label";s:7:"Changed";s:11:"description";s:39:"The time that the node was last edited.";s:12:"revisionable";b:1;s:12:"translatable";b:1;s:8:"provider";s:4:"node";s:10:"field_name";s:7:"changed";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:7:"promote";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:7:"boolean";s:9:" * schema";a:4:{s:7:"columns";a:1:{s:5:"value";a:2:{s:4:"type";s:3:"int";s:4:"size";s:4:"tiny";}}s:11:"unique keys";a:0:{}s:7:"indexes";a:0:{}s:12:"foreign keys";a:0:{}}s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:337;s:13:" * definition";a:2:{s:4:"type";s:18:"field_item:boolean";s:8:"settings";a:2:{s:8:"on_label";s:2:"On";s:9:"off_label";s:3:"Off";}}}s:13:" * definition";a:9:{s:5:"label";s:22:"Promoted to front page";s:12:"revisionable";b:1;s:12:"translatable";b:1;s:13:"default_value";a:1:{i:0;a:1:{s:5:"value";b:1;}}s:7:"display";a:1:{s:4:"form";a:2:{s:7:"options";a:3:{s:4:"type";s:16:"boolean_checkbox";s:8:"settings";a:1:{s:13:"display_label";b:1;}s:6:"weight";i:15;}s:12:"configurable";b:1;}}s:8:"provider";s:4:"node";s:10:"field_name";s:7:"promote";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:6:"sticky";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:7:"boolean";s:9:" * schema";a:4:{s:7:"columns";a:1:{s:5:"value";a:2:{s:4:"type";s:3:"int";s:4:"size";s:4:"tiny";}}s:11:"unique keys";a:0:{}s:7:"indexes";a:0:{}s:12:"foreign keys";a:0:{}}s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:374;s:13:" * definition";a:2:{s:4:"type";s:18:"field_item:boolean";s:8:"settings";a:2:{s:8:"on_label";s:2:"On";s:9:"off_label";s:3:"Off";}}}s:13:" * definition";a:9:{s:5:"label";s:22:"Sticky at top of lists";s:12:"revisionable";b:1;s:12:"translatable";b:1;s:13:"default_value";a:1:{i:0;a:1:{s:5:"value";b:0;}}s:7:"display";a:1:{s:4:"form";a:2:{s:7:"options";a:3:{s:4:"type";s:16:"boolean_checkbox";s:8:"settings";a:1:{s:13:"display_label";b:1;}s:6:"weight";i:16;}s:12:"configurable";b:1;}}s:8:"provider";s:4:"node";s:10:"field_name";s:6:"sticky";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:18:"revision_timestamp";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:7:"created";s:9:" * schema";a:4:{s:7:"columns";a:1:{s:5:"value";a:1:{s:4:"type";s:3:"int";}}s:11:"unique keys";a:0:{}s:7:"indexes";a:0:{}s:12:"foreign keys";a:0:{}}s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:411;s:13:" * definition";a:2:{s:4:"type";s:18:"field_item:created";s:8:"settings";a:0:{}}}s:13:" * definition";a:8:{s:5:"label";s:18:"Revision timestamp";s:11:"description";s:47:"The time that the current revision was created.";s:9:"queryable";b:0;s:12:"revisionable";b:1;s:8:"provider";s:4:"node";s:10:"field_name";s:18:"revision_timestamp";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:12:"revision_uid";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:16:"entity_reference";s:9:" * schema";a:4:{s:7:"columns";a:1:{s:9:"target_id";a:3:{s:11:"description";s:28:"The ID of the target entity.";s:4:"type";s:3:"int";s:8:"unsigned";b:1;}}s:7:"indexes";a:1:{s:9:"target_id";a:1:{i:0;s:9:"target_id";}}s:11:"unique keys";a:0:{}s:12:"foreign keys";a:0:{}}s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:435;s:13:" * definition";a:2:{s:4:"type";s:27:"field_item:entity_reference";s:8:"settings";a:3:{s:11:"target_type";s:4:"user";s:7:"handler";s:12:"default:node";s:16:"handler_settings";a:0:{}}}}s:13:" * definition";a:8:{s:5:"label";s:16:"Revision user ID";s:11:"description";s:50:"The user ID of the author of the current revision.";s:9:"queryable";b:0;s:12:"revisionable";b:1;s:8:"provider";s:4:"node";s:10:"field_name";s:12:"revision_uid";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:12:"revision_log";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:11:"string_long";s:9:" * schema";a:4:{s:7:"columns";a:1:{s:5:"value";a:2:{s:4:"type";s:4:"text";s:4:"size";s:3:"big";}}s:11:"unique keys";a:0:{}s:7:"indexes";a:0:{}s:12:"foreign keys";a:0:{}}s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:466;s:13:" * definition";a:2:{s:4:"type";s:22:"field_item:string_long";s:8:"settings";a:1:{s:14:"case_sensitive";b:0;}}}s:13:" * definition";a:9:{s:5:"label";s:20:"Revision log message";s:11:"description";s:43:"Briefly describe the changes you have made.";s:12:"revisionable";b:1;s:12:"translatable";b:1;s:7:"display";a:1:{s:4:"form";a:1:{s:7:"options";a:3:{s:4:"type";s:15:"string_textarea";s:6:"weight";i:25;s:8:"settings";a:1:{s:4:"rows";i:4;}}}}s:8:"provider";s:4:"node";s:10:"field_name";s:12:"revision_log";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:29:"revision_translation_affected";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:7:"boolean";s:9:" * schema";a:4:{s:7:"columns";a:1:{s:5:"value";a:2:{s:4:"type";s:3:"int";s:4:"size";s:4:"tiny";}}s:11:"unique keys";a:0:{}s:7:"indexes";a:0:{}s:12:"foreign keys";a:0:{}}s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:499;s:13:" * definition";a:2:{s:4:"type";s:18:"field_item:boolean";s:8:"settings";a:2:{s:8:"on_label";s:2:"On";s:9:"off_label";s:3:"Off";}}}s:13:" * definition";a:9:{s:5:"label";s:29:"Revision translation affected";s:11:"description";s:72:"Indicates if the last edit of a translation belongs to current revision.";s:9:"read-only";b:1;s:12:"revisionable";b:1;s:12:"translatable";b:1;s:8:"provider";s:4:"node";s:10:"field_name";s:29:"revision_translation_affected";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:16:"default_langcode";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:7:"boolean";s:9:" * schema";a:4:{s:7:"columns";a:1:{s:5:"value";a:2:{s:4:"type";s:3:"int";s:4:"size";s:4:"tiny";}}s:11:"unique keys";a:0:{}s:7:"indexes";a:0:{}s:12:"foreign keys";a:0:{}}s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:527;s:13:" * definition";a:2:{s:4:"type";s:18:"field_item:boolean";s:8:"settings";a:2:{s:8:"on_label";s:2:"On";s:9:"off_label";s:3:"Off";}}}s:13:" * definition";a:9:{s:5:"label";s:19:"Default translation";s:11:"description";s:58:"A flag indicating whether this is the default translation.";s:12:"translatable";b:1;s:12:"revisionable";b:1;s:13:"default_value";a:1:{i:0;a:1:{s:5:"value";b:1;}}s:8:"provider";s:4:"node";s:10:"field_name";s:16:"default_langcode";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:4:"body";O:38:"Drupal\field\Entity\FieldStorageConfig":28:{s:5:" * id";s:9:"node.body";s:13:" * field_name";s:4:"body";s:14:" * entity_type";s:4:"node";s:7:" * type";s:17:"text_with_summary";s:9:" * module";s:4:"text";s:11:" * settings";a:0:{}s:14:" * cardinality";i:1;s:15:" * translatable";b:1;s:9:" * locked";b:0;s:25:" * persist_with_no_fields";b:1;s:14:"custom_storage";b:0;s:10:" * indexes";a:0:{}s:10:" * deleted";b:0;s:13:" * originalId";s:9:"node.body";s:18:" * pluginConfigKey";N;s:9:" * status";b:1;s:7:" * uuid";s:36:"ed2b1eb9-b633-4f00-9006-6b70e0ffa5a0";s:11:" * langcode";s:2:"en";s:23:" * third_party_settings";a:0:{}s:14:" * trustedData";b:1;s:15:" * entityTypeId";s:20:"field_storage_config";s:15:" * enforceIsNew";b:1;s:12:" * typedData";N;s:16:" * cacheContexts";a:0:{}s:12:" * cacheTags";a:0:{}s:14:" * cacheMaxAge";i:-1;s:14:" * _serviceIds";a:0:{}s:15:" * dependencies";a:1:{s:6:"module";a:2:{i:0;s:4:"node";i:1;s:4:"text";}}}s:7:"comment";O:38:"Drupal\field\Entity\FieldStorageConfig":28:{s:5:" * id";s:12:"node.comment";s:13:" * field_name";s:7:"comment";s:14:" * entity_type";s:4:"node";s:7:" * type";s:7:"comment";s:9:" * module";s:7:"comment";s:11:" * settings";a:1:{s:12:"comment_type";s:7:"comment";}s:14:" * cardinality";i:1;s:15:" * translatable";b:1;s:9:" * locked";b:0;s:25:" * persist_with_no_fields";b:0;s:14:"custom_storage";b:0;s:10:" * indexes";a:0:{}s:10:" * deleted";b:0;s:13:" * originalId";s:12:"node.comment";s:18:" * pluginConfigKey";N;s:9:" * status";b:1;s:7:" * uuid";s:36:"34c4c787-8f2a-47d9-a124-3667297f532a";s:11:" * langcode";s:2:"en";s:23:" * third_party_settings";a:0:{}s:14:" * trustedData";b:1;s:15:" * entityTypeId";s:20:"field_storage_config";s:15:" * enforceIsNew";b:1;s:12:" * typedData";N;s:16:" * cacheContexts";a:0:{}s:12:" * cacheTags";a:0:{}s:14:" * cacheMaxAge";i:-1;s:14:" * _serviceIds";a:0:{}s:15:" * dependencies";a:1:{s:6:"module";a:2:{i:0;s:7:"comment";i:1;s:4:"node";}}}s:11:"field_image";O:38:"Drupal\field\Entity\FieldStorageConfig":28:{s:5:" * id";s:16:"node.field_image";s:13:" * field_name";s:11:"field_image";s:14:" * entity_type";s:4:"node";s:7:" * type";s:5:"image";s:9:" * module";s:5:"image";s:11:" * settings";a:6:{s:10:"uri_scheme";s:6:"public";s:13:"default_image";a:5:{s:4:"uuid";N;s:3:"alt";s:0:"";s:5:"title";s:0:"";s:5:"width";N;s:6:"height";N;}s:11:"target_type";s:4:"file";s:13:"display_field";b:0;s:15:"display_default";b:0;s:13:"target_bundle";N;}s:14:" * cardinality";i:1;s:15:" * translatable";b:1;s:9:" * locked";b:0;s:25:" * persist_with_no_fields";b:0;s:14:"custom_storage";b:0;s:10:" * indexes";a:1:{s:9:"target_id";a:1:{i:0;s:9:"target_id";}}s:10:" * deleted";b:0;s:13:" * originalId";s:16:"node.field_image";s:18:" * pluginConfigKey";N;s:9:" * status";b:1;s:7:" * uuid";s:36:"0966a9c5-3884-4c71-ab17-2347f78ac3f4";s:11:" * langcode";s:2:"en";s:23:" * third_party_settings";a:0:{}s:14:" * trustedData";b:1;s:15:" * entityTypeId";s:20:"field_storage_config";s:15:" * enforceIsNew";b:1;s:12:" * typedData";N;s:16:" * cacheContexts";a:0:{}s:12:" * cacheTags";a:0:{}s:14:" * cacheMaxAge";i:-1;s:14:" * _serviceIds";a:0:{}s:15:" * dependencies";a:1:{s:6:"module";a:2:{i:0;s:4:"node";i:1;s:5:"image";}}}s:10:"field_tags";O:38:"Drupal\field\Entity\FieldStorageConfig":28:{s:5:" * id";s:15:"node.field_tags";s:13:" * field_name";s:10:"field_tags";s:14:" * entity_type";s:4:"node";s:7:" * type";s:16:"entity_reference";s:9:" * module";s:16:"entity_reference";s:11:" * settings";a:1:{s:11:"target_type";s:13:"taxonomy_term";}s:14:" * cardinality";i:-1;s:15:" * translatable";b:1;s:9:" * locked";b:0;s:25:" * persist_with_no_fields";b:0;s:14:"custom_storage";b:0;s:10:" * indexes";a:0:{}s:10:" * deleted";b:0;s:13:" * originalId";s:15:"node.field_tags";s:18:" * pluginConfigKey";N;s:9:" * status";b:1;s:7:" * uuid";s:36:"e2c2fe69-c14f-4606-8600-e67e248855a9";s:11:" * langcode";s:2:"en";s:23:" * third_party_settings";a:0:{}s:14:" * trustedData";b:1;s:15:" * entityTypeId";s:20:"field_storage_config";s:15:" * enforceIsNew";b:1;s:12:" * typedData";N;s:16:" * cacheContexts";a:0:{}s:12:" * cacheTags";a:0:{}s:14:" * cacheMaxAge";i:-1;s:14:" * _serviceIds";a:0:{}s:15:" * dependencies";a:1:{s:6:"module";a:2:{i:0;s:4:"node";i:1;s:8:"taxonomy";}}}s:4:"path";O:37:"Drupal\Core\Field\BaseFieldDefinition":5:{s:7:" * type";s:4:"path";s:9:" * schema";N;s:10:" * indexes";a:0:{}s:17:" * itemDefinition";O:51:"Drupal\Core\Field\TypedData\FieldItemDataDefinition":2:{s:18:" * fieldDefinition";r:700;s:13:" * definition";a:2:{s:4:"type";s:15:"field_item:path";s:8:"settings";a:0:{}}}s:13:" * definition";a:8:{s:5:"label";s:9:"URL alias";s:12:"translatable";b:1;s:7:"display";a:1:{s:4:"form";a:2:{s:7:"options";a:2:{s:4:"type";s:4:"path";s:6:"weight";i:30;}s:12:"configurable";b:1;}}s:14:"custom_storage";b:1;s:8:"provider";s:4:"path";s:10:"field_name";s:4:"path";s:11:"entity_type";s:4:"node";s:6:"bundle";N;}}s:22:"field_required_boolean";O:38:"Drupal\field\Entity\FieldStorageConfig":28:{s:5:" * id";s:27:"node.field_required_boolean";s:13:" * field_name";s:22:"field_required_boolean";s:14:" * entity_type";s:4:"node";s:7:" * type";s:7:"boolean";s:9:" * module";s:4:"core";s:11:" * settings";a:0:{}s:14:" * cardinality";i:1;s:15:" * translatable";b:1;s:9:" * locked";b:0;s:25:" * persist_with_no_fields";b:1;s:14:"custom_storage";b:0;s:10:" * indexes";a:0:{}s:10:" * deleted";b:0;s:13:" * originalId";s:27:"node.field_required_boolean";s:18:" * pluginConfigKey";N;s:9:" * status";b:1;s:7:" * uuid";s:36:"cb4e9331-1868-4258-9306-6fcfab1cdc85";s:11:" * langcode";s:2:"en";s:23:" * third_party_settings";a:0:{}s:14:" * trustedData";b:0;s:15:" * entityTypeId";s:20:"field_storage_config";s:15:" * enforceIsNew";b:1;s:12:" * typedData";N;s:16:" * cacheContexts";a:0:{}s:12:" * cacheTags";a:0:{}s:14:" * cacheMaxAge";i:-1;s:14:" * _serviceIds";a:0:{}s:15:" * dependencies";a:0:{}}}',
+  ])
+  ->execute();
+
+$connection->update('key_value')
+  ->condition('collection', 'entity.storage_schema.sql')
+  ->condition('name', 'node.field_schema_data.field_required_boolean')
+  ->fields([
+    'value' => 'a:2:{s:28:"node__field_required_boolean";a:4:{s:11:"description";s:51:"Data storage for node field field_required_boolean.";s:6:"fields";a:7:{s:6:"bundle";a:5:{s:4:"type";s:13:"varchar_ascii";s:6:"length";i:128;s:8:"not null";b:1;s:7:"default";s:0:"";s:11:"description";s:88:"The field instance bundle to which this row belongs, used when deleting a field instance";}s:7:"deleted";a:5:{s:4:"type";s:3:"int";s:4:"size";s:4:"tiny";s:8:"not null";b:1;s:7:"default";i:0;s:11:"description";s:60:"A boolean indicating whether this data item has been deleted";}s:9:"entity_id";a:4:{s:4:"type";s:3:"int";s:8:"unsigned";b:1;s:8:"not null";b:1;s:11:"description";s:38:"The entity id this data is attached to";}s:11:"revision_id";a:4:{s:4:"type";s:3:"int";s:8:"unsigned";b:1;s:8:"not null";b:1;s:11:"description";s:47:"The entity revision id this data is attached to";}s:8:"langcode";a:5:{s:4:"type";s:13:"varchar_ascii";s:6:"length";i:32;s:8:"not null";b:1;s:7:"default";s:0:"";s:11:"description";s:37:"The language code for this data item.";}s:5:"delta";a:4:{s:4:"type";s:3:"int";s:8:"unsigned";b:1;s:8:"not null";b:1;s:11:"description";s:67:"The sequence number for this data item, used for multi-value fields";}s:28:"field_required_boolean_value";a:3:{s:4:"type";s:3:"int";s:4:"size";s:4:"tiny";s:8:"not null";b:1;}}s:11:"primary key";a:4:{i:0;s:9:"entity_id";i:1;s:7:"deleted";i:2;s:5:"delta";i:3;s:8:"langcode";}s:7:"indexes";a:2:{s:6:"bundle";a:1:{i:0;s:6:"bundle";}s:11:"revision_id";a:1:{i:0;s:11:"revision_id";}}}s:37:"node_revision__field_required_boolean";a:4:{s:11:"description";s:63:"Revision archive storage for node field field_required_boolean.";s:6:"fields";a:7:{s:6:"bundle";a:5:{s:4:"type";s:13:"varchar_ascii";s:6:"length";i:128;s:8:"not null";b:1;s:7:"default";s:0:"";s:11:"description";s:88:"The field instance bundle to which this row belongs, used when deleting a field instance";}s:7:"deleted";a:5:{s:4:"type";s:3:"int";s:4:"size";s:4:"tiny";s:8:"not null";b:1;s:7:"default";i:0;s:11:"description";s:60:"A boolean indicating whether this data item has been deleted";}s:9:"entity_id";a:4:{s:4:"type";s:3:"int";s:8:"unsigned";b:1;s:8:"not null";b:1;s:11:"description";s:38:"The entity id this data is attached to";}s:11:"revision_id";a:4:{s:4:"type";s:3:"int";s:8:"unsigned";b:1;s:8:"not null";b:1;s:11:"description";s:47:"The entity revision id this data is attached to";}s:8:"langcode";a:5:{s:4:"type";s:13:"varchar_ascii";s:6:"length";i:32;s:8:"not null";b:1;s:7:"default";s:0:"";s:11:"description";s:37:"The language code for this data item.";}s:5:"delta";a:4:{s:4:"type";s:3:"int";s:8:"unsigned";b:1;s:8:"not null";b:1;s:11:"description";s:67:"The sequence number for this data item, used for multi-value fields";}s:28:"field_required_boolean_value";a:3:{s:4:"type";s:3:"int";s:4:"size";s:4:"tiny";s:8:"not null";b:1;}}s:11:"primary key";a:5:{i:0;s:9:"entity_id";i:1;s:11:"revision_id";i:2;s:7:"deleted";i:3;s:5:"delta";i:4;s:8:"langcode";}s:7:"indexes";a:2:{s:6:"bundle";a:1:{i:0;s:6:"bundle";}s:11:"revision_id";a:1:{i:0;s:11:"revision_id";}}}}',
+  ])
+  ->execute();
+
+$connection->schema()->createTable('node__field_required_boolean', array(
+  'fields' => array(
+    'bundle' => array(
+      'type' => 'varchar_ascii',
+      'not null' => TRUE,
+      'length' => '128',
+      'default' => '',
+    ),
+    'deleted' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'tiny',
+      'default' => '0',
+    ),
+    'entity_id' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'revision_id' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'langcode' => array(
+      'type' => 'varchar_ascii',
+      'not null' => TRUE,
+      'length' => '32',
+      'default' => '',
+    ),
+    'delta' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'field_required_boolean_value' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'tiny',
+    ),
+  ),
+  'primary key' => array(
+    'entity_id',
+    'deleted',
+    'delta',
+    'langcode',
+  ),
+  'indexes' => array(
+    'bundle' => array(
+      'bundle',
+    ),
+    'revision_id' => array(
+      'revision_id',
+    ),
+  ),
+  'mysql_character_set' => 'utf8mb4',
+));
+
+$connection->schema()->createTable('node_revision__field_required_boolean', array(
+  'fields' => array(
+    'bundle' => array(
+      'type' => 'varchar_ascii',
+      'not null' => TRUE,
+      'length' => '128',
+      'default' => '',
+    ),
+    'deleted' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'tiny',
+      'default' => '0',
+    ),
+    'entity_id' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'revision_id' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'langcode' => array(
+      'type' => 'varchar_ascii',
+      'not null' => TRUE,
+      'length' => '32',
+      'default' => '',
+    ),
+    'delta' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'normal',
+      'unsigned' => TRUE,
+    ),
+    'field_required_boolean_value' => array(
+      'type' => 'int',
+      'not null' => TRUE,
+      'size' => 'tiny',
+    ),
+  ),
+  'primary key' => array(
+    'entity_id',
+    'revision_id',
+    'deleted',
+    'delta',
+    'langcode',
+  ),
+  'indexes' => array(
+    'bundle' => array(
+      'bundle',
+    ),
+    'revision_id' => array(
+      'revision_id',
+    ),
+  ),
+  'mysql_character_set' => 'utf8mb4',
+));
diff --git a/core/modules/system/tests/src/Functional/Update/BooleanCheckboxWidgetSettingsUpdateTest.php b/core/modules/system/tests/src/Functional/Update/BooleanCheckboxWidgetSettingsUpdateTest.php
new file mode 100644
index 0000000000..dede5ddf57
--- /dev/null
+++ b/core/modules/system/tests/src/Functional/Update/BooleanCheckboxWidgetSettingsUpdateTest.php
@@ -0,0 +1,81 @@
+<?php
+
+namespace Drupal\Tests\system\Functional\Update;
+
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
+use Drupal\field\Entity\FieldConfig;
+use Drupal\field\Entity\FieldStorageConfig;
+use Drupal\FunctionalTests\Update\UpdatePathTestBase;
+
+/**
+ * Tests upgrading boolean checkbox widget settings.
+ *
+ * @group Update
+ */
+class BooleanCheckboxWidgetSettingsUpdateTest extends UpdatePathTestBase {
+
+  /**
+   * The name of the required boolean field used in this test.
+   *
+   * @var string
+   */
+  protected $fieldName = 'field_required_boolean';
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setDatabaseDumpFiles() {
+    $this->databaseDumpFiles = [
+      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.bare.standard.php.gz',
+      __DIR__ . '/../../../../tests/fixtures/update/drupal-8.boolean-checkbox-widget-update.php',
+    ];
+  }
+
+  /**
+   * Tests upgrading the 'required' setting.
+   *
+   * @see system_post_update_boolean_checkbox_widget_required_setting()
+   */
+  public function testUpdateRequiredSetting() {
+    /* @var \Drupal\Core\Config\ConfigFactoryInterface $config_factory */
+    $config_factory = $this->container->get('config.factory');
+
+    $get_components_to_update = function() use ($config_factory) {
+      // Gather all components that use the boolean checkbox widget.
+      $updates = [
+        'node.article.default' => ['promote', 'sticky', $this->fieldName],
+        'node.page.default' => ['promote', 'sticky', $this->fieldName],
+      ];
+
+      $components = [];
+      foreach ($updates as $form_display_id => $component_names) {
+        $form_display_config = $config_factory->get('core.entity_form_display.' . $form_display_id);
+        foreach ($component_names as $component_name) {
+          $components["$form_display_id:$component_name"] = $form_display_config->get('content.' . $component_name);
+        }
+      }
+
+      return $components;
+    };
+
+    foreach ($get_components_to_update() as $component) {
+      $this->assertSame('boolean_checkbox', $component['type']);
+      $this->assertFalse(isset($component['settings']['required']));
+    }
+
+    $this->runUpdates();
+
+    foreach ($get_components_to_update() as $key => $component) {
+      list(, $component_name) = explode(':', $key);
+      $this->assertSame('boolean_checkbox', $component['type']);
+      $this->assertTrue(isset($component['settings']['required']));
+      if ($component_name === $this->fieldName) {
+        $this->assertTrue($component['settings']['required']);
+      }
+      else {
+        $this->assertFalse($component['settings']['required']);
+      }
+    }
+  }
+
+}
diff --git a/core/profiles/demo_umami/config/install/core.entity_form_display.node.article.default.yml b/core/profiles/demo_umami/config/install/core.entity_form_display.node.article.default.yml
index 122c53e37c..bbed41292a 100644
--- a/core/profiles/demo_umami/config/install/core.entity_form_display.node.article.default.yml
+++ b/core/profiles/demo_umami/config/install/core.entity_form_display.node.article.default.yml
@@ -55,6 +55,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 15
     region: content
     third_party_settings: {  }
@@ -62,6 +63,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 120
     region: content
     third_party_settings: {  }
@@ -69,6 +71,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 16
     region: content
     third_party_settings: {  }
diff --git a/core/profiles/demo_umami/config/install/core.entity_form_display.node.page.default.yml b/core/profiles/demo_umami/config/install/core.entity_form_display.node.page.default.yml
index 682f1a550c..8aae105d8f 100644
--- a/core/profiles/demo_umami/config/install/core.entity_form_display.node.page.default.yml
+++ b/core/profiles/demo_umami/config/install/core.entity_form_display.node.page.default.yml
@@ -37,6 +37,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 15
     region: content
     third_party_settings: {  }
@@ -44,6 +45,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 120
     region: content
     third_party_settings: {  }
@@ -51,6 +53,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 16
     region: content
     third_party_settings: {  }
diff --git a/core/profiles/demo_umami/config/install/core.entity_form_display.node.recipe.default.yml b/core/profiles/demo_umami/config/install/core.entity_form_display.node.recipe.default.yml
index be5523320c..0e9349fc06 100644
--- a/core/profiles/demo_umami/config/install/core.entity_form_display.node.recipe.default.yml
+++ b/core/profiles/demo_umami/config/install/core.entity_form_display.node.recipe.default.yml
@@ -126,6 +126,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 14
     region: content
     third_party_settings: {  }
@@ -133,6 +134,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 17
     region: content
     third_party_settings: {  }
@@ -140,6 +142,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 15
     region: content
     third_party_settings: {  }
diff --git a/core/profiles/standard/config/install/core.entity_form_display.node.article.default.yml b/core/profiles/standard/config/install/core.entity_form_display.node.article.default.yml
index 9082f2d1bd..40b5ca82af 100644
--- a/core/profiles/standard/config/install/core.entity_form_display.node.article.default.yml
+++ b/core/profiles/standard/config/install/core.entity_form_display.node.article.default.yml
@@ -63,6 +63,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 15
     region: content
     third_party_settings: {  }
@@ -70,6 +71,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 120
     region: content
     third_party_settings: {  }
@@ -77,6 +79,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 16
     region: content
     third_party_settings: {  }
diff --git a/core/profiles/standard/config/install/core.entity_form_display.node.page.default.yml b/core/profiles/standard/config/install/core.entity_form_display.node.page.default.yml
index 682f1a550c..8aae105d8f 100644
--- a/core/profiles/standard/config/install/core.entity_form_display.node.page.default.yml
+++ b/core/profiles/standard/config/install/core.entity_form_display.node.page.default.yml
@@ -37,6 +37,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 15
     region: content
     third_party_settings: {  }
@@ -44,6 +45,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 120
     region: content
     third_party_settings: {  }
@@ -51,6 +53,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 16
     region: content
     third_party_settings: {  }
diff --git a/core/profiles/standard/config/optional/core.entity_form_display.media.audio.default.yml b/core/profiles/standard/config/optional/core.entity_form_display.media.audio.default.yml
index b3f5f6497f..ac3400c1e5 100644
--- a/core/profiles/standard/config/optional/core.entity_form_display.media.audio.default.yml
+++ b/core/profiles/standard/config/optional/core.entity_form_display.media.audio.default.yml
@@ -43,6 +43,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 5
     region: content
     third_party_settings: {  }
diff --git a/core/profiles/standard/config/optional/core.entity_form_display.media.file.default.yml b/core/profiles/standard/config/optional/core.entity_form_display.media.file.default.yml
index 8b4ebe9f3b..c1fe66f34b 100644
--- a/core/profiles/standard/config/optional/core.entity_form_display.media.file.default.yml
+++ b/core/profiles/standard/config/optional/core.entity_form_display.media.file.default.yml
@@ -36,6 +36,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 100
     region: content
     third_party_settings: {  }
diff --git a/core/profiles/standard/config/optional/core.entity_form_display.media.image.default.yml b/core/profiles/standard/config/optional/core.entity_form_display.media.image.default.yml
index 4488b02eeb..c6db33307f 100644
--- a/core/profiles/standard/config/optional/core.entity_form_display.media.image.default.yml
+++ b/core/profiles/standard/config/optional/core.entity_form_display.media.image.default.yml
@@ -38,6 +38,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 100
     region: content
     third_party_settings: {  }
diff --git a/core/profiles/standard/config/optional/core.entity_form_display.media.video.default.yml b/core/profiles/standard/config/optional/core.entity_form_display.media.video.default.yml
index 658648fd18..d00e452dd5 100644
--- a/core/profiles/standard/config/optional/core.entity_form_display.media.video.default.yml
+++ b/core/profiles/standard/config/optional/core.entity_form_display.media.video.default.yml
@@ -43,6 +43,7 @@ content:
     type: boolean_checkbox
     settings:
       display_label: true
+      required: false
     weight: 5
     region: content
     third_party_settings: {  }
