Problem/Motivation
Node types have 1 property paths that are not yet validatable:
./vendor/bin/drush config:inspect --filter-keys=node.type.page --detail --list-constraints --fields=key,validatability,constraints
➜ 🤖 Analyzing…
------------------------------------------- ------------- ---------------------------------------------------------------------------------------------
Key Validatable Validation constraints
------------------------------------------- ------------- ---------------------------------------------------------------------------------------------
node.type.page 93% ValidKeys: '<infer>'
node.type.page: Validatable ValidKeys: '<infer>'
node.type.page:_core Validatable ValidKeys:
- default_config_hash
node.type.page:_core.default_config_hash Validatable NotNull: { }
Regex: '/^[a-zA-Z0-9\-_]+$/'
Length: 43
↣ PrimitiveType: { }
node.type.page:dependencies Validatable ValidKeys: '<infer>'
node.type.page:description Validatable Regex:
pattern: '/([^\PC\x09\x0a\x0d])/u'
match: false
message: 'Text is not allowed to contain control characters, only visible characters.'
↣ PrimitiveType: { }
node.type.page:display_submitted Validatable ↣ PrimitiveType: { }
node.type.page:help Validatable Regex:
pattern: '/([^\PC\x09\x0a\x0d])/u'
match: false
message: 'Text is not allowed to contain control characters, only visible characters.'
↣ PrimitiveType: { }
node.type.page:langcode Validatable NotNull: { }
Choice:
callback: 'Drupal\Core\TypedData\Plugin\DataType\LanguageReference::getAllValidLangcodes'
↣ PrimitiveType: { }
node.type.page:name Validatable Regex:
pattern: '/([^\PC])/u'
match: false
message: 'Labels are not allowed to span multiple lines or contain control characters.'
NotBlank: { }
↣ PrimitiveType: { }
node.type.page:new_revision Validatable ↣ PrimitiveType: { }
node.type.page:preview_mode NOT ⚠️ @todo Add validation constraints to config entity type: node.type.*
node.type.page:status Validatable ↣ PrimitiveType: { }
node.type.page:type Validatable Length:
max: 32
↣ PrimitiveType: { }
↣ Regex:
pattern: '/^[a-z0-9_]+$/'
message: 'The %value machine name is not valid.'
node.type.page:uuid Validatable Uuid: { }
↣ PrimitiveType: { }
------------------------------------------- ------------- ---------------------------------------------------------------------------------------------
Steps to reproduce
- Get a local git clone of Drupal core
11.x. composer require drupal/config_inspector— or manually install https://www.drupal.org/project/config_inspector/releases/2.1.5 or newer (which supports Drupal 11!)composer require drush/drushvendor/bin/drush config:inspect --filter-keys=node.type.page --detail --list-constraints
Proposed resolution
Add validation constraints to:
node.type.*:preview_mode
This requires looking at the existing code and admin UI (if any) to understand which values could be considered valid. Eventually this needs to be reviewed by the relevant subsystem maintainer.
For examples, search *.schema.yml files for the string constraints: 😊
Reach out to @borisson_ or @wimleers in the #distributions-and-recipes.
Remaining tasks
node.type.*:preview_mode
User interface changes
None.
API changes
None.
Data model changes
More validation 🚀
Release notes snippet
None.
Issue fork drupal-3397524
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #3
borisson_Comment #4
smustgrave commentedConstraint makes sense with the 3 radio button options.
Comment #5
borisson_duplicate of #3379091: Make NodeType config entities fully validatable