Make a Rule Set Extendable
If you want to let others extend a rule set in your App UI, you need to explicitly mark the rule set as accessible to extensions. This lets someone add a dependency on the extension that contains your App UI, then add new rules and layouts to the rule set, and use business rules to configure dynamic tables and forms.
- To mark a rule set as accessible to extensions when creating a new one in your App UI:
-
From the Layouts tab in the left navigator, click + Rule Set, and make sure you select Enable Extensions in the pop-up dialog.

Description of the illustration ruleset-accesstoextn-popup1.png
-
From any quick start that associates a dynamic component with a new rule set, select Enable Extensions in the Select Rule Set step of the wizard.

Description of the illustration ruleset-accesstoextn-quickstart.png
-
- To mark a rule set as accessible after it’s been defined:
-
From the Layouts tab in the left navigator, open the rule set, then in its Properties pane, select Enabled under Access for Application Extensions.

Description of the illustration ruleset-accesstoextn-properties.png
-
Enter a description so developers who extend its functionality know what the rule set is used for.
-
Note: After you’ve made a rule set accessible to extensions, you should avoid renaming its ID. Renaming an ID might break the extensions that use it.
Users configuring the page can now see the layout listed as an extendable component in the Properties pane. To see how to customize how the components are listed, see Organize How Constants Are Listed in the Properties Pane.
Some dynamic layouts might only need to use one layout, so there is no need for a rule that has conditions, or for multiple rules. When this is the case, you can edit the rule set’s layout.json file to hide the option to create rules in the Properties pane when users are extending the component. To hide the option to create rules, add @dt.dynamicFormOptions.allowConditions: "off" to the definition of the component in the JSON file:
"leadsDetailForm": {
"type": "leadsRestApi",
...
"label": "Detail",
"@dt": {
"dynamicFormOptions": {
"allowConditions": "off"
}
}
}
When a user extends the component, the Properties pane displays a simpler pane, where the user can change the layout of the fields in the component:
