Several eca_render_* actions have no config schema section, leaving their configuration unvalidated
Problem/Motivation
Several eca_render_* actions have no config schema section at all, so
their entire configuration is unvalidated. Typed config falls back to
undefined for them.
Affected plugins:
eca_render_markupeca_render_lazyeca_render_file_contentseca_render_text:filter(derivative)eca_render_image:image(derivative)eca_render_responsive_image:responsive_image(derivative)
There is no action.configuration.eca_render_markup (or equivalent) mapping in
modules/render/config/schema/eca_render.schema.yml, so none of their keys are
described, constrained, or type-checked.
A visible symptom: these plugins extend RenderElementActionBase and therefore
offer a mode field, but their mode does not inherit the constraints
declared on eca_render.action_base (eca_render.schema.yml:108), because
there is no per-plugin section to inherit from in the first place. During the
audit for #3590375 (closed) these keys showed up as "no constraint" for exactly this
reason.
Steps to reproduce
- Create an ECA model using
eca_render_markup(or any plugin listed above). - Set any configuration value, including a deliberately invalid one.
- Validate the model's config against its typed schema.
Result: no violations — the configuration is not validated at all. Expected: the plugin's keys are described by a schema mapping and validated like every other ECA action.
Proposed resolution
Add the missing action.configuration.eca_render_* mappings to
modules/render/config/schema/eca_render.schema.yml, inheriting
eca_render.action_base where appropriate so the shared mode and name keys
pick up their existing definitions, and describing each plugin's own keys.
Note the derivative section naming convention already used elsewhere in the
file, e.g. action.configuration.eca_render_views:views — the three
derivatives above need the colon form.
Worth checking at the same time whether any other ECA action, in any
sub-module, is missing its schema section. A test that asserts every ECA action
plugin has a corresponding action.configuration.* mapping would prevent this
class of gap from recurring.
Remaining tasks
- Add the six missing schema sections
- Audit all ECA sub-modules for other actions with no schema section
- Consider a test asserting every action plugin has a schema mapping
User interface changes
None.
Data model changes
None — this describes existing configuration; it does not change it.
Found while auditing the config schema surface for #3590375 (closed).
AI-Generated: Yes (Used OpenCode to audit ECA's config schema coverage while implementing #3590375 (closed); this gap was found incidentally and verified against the 3.1.x source.)
Change record: #3616767