Missing config schema for eca_render_link action
<h3 id="summary-problem-motivation">Problem/Motivation</h3> The ECA Render submodule provides the `eca_render_link` action plugin, exposed as **Render: link**, but the corresponding configuration schema entry `action.configuration.eca_render_link` is missing from `modules/render/config/schema/eca_render.schema.yml`. When an ECA model uses this action, Drupal emits a configuration schema warning every time the model is saved. The warning reports that the action configuration is missing schema, for example: ```text Schema errors for eca.eca.<model_id> with the following errors: eca.eca.<model_id>:actions.<action_machine_name>.configuration missing schema. These errors mean there is configuration that does not comply with its schema. This is not a fatal error, but it is recommended to fix these issues. ``` While adding the missing schema for `eca_render_link`, a second pre-existing schema issue becomes visible: the shared `eca_render.action_base` schema declares `weight` as `type: weight`, which is integer-based, but the ECA Render base action stores `weight` as an empty string by default and supports tokenized values. This can result in a type mismatch such as: ```text variable type is string but applied schema class is Drupal\Core\TypedData\Plugin\DataType\IntegerData ``` <h4 id="summary-steps-reproduce">Steps to reproduce</h4> 1. Install Drupal 11 with ECA 3.1.x. 2. Enable ECA and the ECA Render submodule. 3. Create or edit an ECA model. 4. Add the **Render: link** action plugin (`eca_render_link`) to the model. 5. Configure the action with values such as: - `title` - `url` - `link_type` - `width` - `display_as` - `absolute` 6. Save the ECA model. 7. Observe that Drupal emits a configuration schema warning indicating that the action configuration is missing schema. <h3 id="summary-proposed-resolution">Proposed resolution</h3> Update `modules/render/config/schema/eca_render.schema.yml` with the following changes: 1. Add the missing schema definition for `action.configuration.eca_render_link`. 2. Make the new schema extend `eca_render.action_base`, following the same pattern used by other ECA Render actions. 3. Declare the Link action-specific configuration keys: - `title` as `string` - `url` as `string` with a `NotBlank` constraint - `link_type` as `string` - `width` as `string` - `display_as` as `string` - `absolute` as `boolean` 4. Change the inherited `weight` definition in `eca_render.action_base` from `type: weight` to `type: string`. The `weight` change aligns the schema with the actual default configuration and runtime handling in ECA Render, where `weight` defaults to an empty string and may contain tokenized values before being evaluated and applied as a numeric render array weight. Together, these changes allow ECA models using the **Render: link** action to be saved without configuration schema warnings. <h3 id="summary-remaining-tasks">Remaining tasks</h3> Review the proposed schema changes. <h3 id="summary-ui-changes">User interface changes</h3> None. <h3 id="summary-api-changes">API changes</h3> None. <h3 id="summary-data-model-changes">Data model changes</h3> The configuration schema for ECA Render action configuration is updated. A new config schema entry is added for `action.configuration.eca_render_link`, and the inherited `weight` schema type in `eca_render.action_base` is changed from `weight` to `string`.
issue