Add Support for "required": true in Toggle Fields
M
Maksym Kozlov
Current Behaviour:
Toggle fields ("type": "boolean") in self-service action form do not currently support the "required" validation.
There is no built-in way to enforce that a toggle must be explicitly set to true or false before submission.
Problem:
Without "required" support, it is impossible to enforce explicit user action on toggles in cases where confirmation or a deliberate choice is critical. This can lead to accidental submissions without the user enabling or disabling important settings.
Proposed Solution:
Introduce "required": true support for toggle fields so that the form can validate that the user has explicitly set the toggle to the required value before proceeding.
Example:
"toggle": {
"type": "boolean",
"title": "Enable Feature",
"default": false,
"visible": true,
"required": true
}
This would ensure that validation fails unless the toggle is explicitly set to true.
Example Use Cases:
- Explicit Confirmation – Require true to confirm that the user has read and agreed to terms and conditions.
- Mandatory Feature Activation – Require true to enable a critical feature (e.g., API access, two-factor authentication).
- Security or Compliance Setting – Require true to enable encryption or logging for compliance purposes.
- Mandatory Opt-Out – Require false to ensure the user has actively chosen to disable a feature.
- Mode Switching – Require true to confirm a switch from testing to production mode.
Benefits:
- Adds missing parity with other field types that already support "required".
- Improves form validation capabilities for boolean fields.
- Helps ensure critical settings are explicitly confirmed by the user.
Notable Workaround:
it is a known UX and validation design limitation in many frameworks. The workaround is to use a hidden, required, and disabled input field that depends on the toggle being true.
- If the toggle is true, the field returns true.
- If the toggle is false, the field returns null.
Because the field is required, a null value will fail validation, preventing the form from advancing to the next step or allowing the user to execute the action.
Dor Meiri
Thanks for the detailed request,
You can work around the missing "required" support for booleans by switching the field type to a string enum with a single allowed value.
Example:
```json
{
"identifier": "ack_test",
"title": "Ack test",
"trigger": {
"type": "self-service",
"operation": "CREATE",
"userInputs": {
"properties": {
"acknowledge": {
"type": "string",
"title": "Acknowledge",
"icon": "Checklist",
"enum": [
"Ack"
],
"enumColors": {
"Ack": "green"
}
}
},
"required": [
"acknowledge"
],
"order": [
"acknowledge"
]
}
},
"invocationMethod": {
"type": "WEBHOOK",
"url": "https://example.com",
"synchronized": true
}
}
```
In the form UI, this will show as a dropdown with only one choice, and because it’s required, the user must actively select it before submission.
This enforces explicit confirmation without relying on the "required" property for boolean fields.