This page describes the JSON attributes for defining rule objects used in template-to-app-rules.json and app-to-template-rules.json. For background on how rules fit into the App Template Framework, see Work with App Template Framework Rules.
Rules files are made up of three sections: rules, constants, and macros.
Rules
Attribute
Path
Required
Description
rules
(top-level)
No
An array of rules to define. Can be empty if no rules are needed.
description
rules
No
A description for the rule.
name
rules
Yes
A unique name for a rule.
condition
rules
No
If the condition is met, the rule runs. If the condition is not met, the rule does not run.
appliesTo
rules
Yes
An array of assets the rule applies to, such as dashboards, recipes, schemas, and XMDs.
name
rules.appliesTo
No
The name of the asset. Can be * to apply the rule to all dashboards. Must match the name defined in the template-info for the asset. Best practice is to specify name. If null, defaults to * and the rule applies to all template assets.
type
rules.appliesTo
No
The type of asset: dashboard, workflow, lens, schema, or xmd. Best practice is to specify type. If null, defaults to * and the rule applies to all asset types.
actions
rules
Yes
An array of actions the rule invokes. One or more action are required.
action
rules.actions
Yes
The type of action to perform: set, add, delete, put, eval, or replace.
description
rules.actions
No
A description of the rule action, used for maintainability.
path
rules.actions
Yes
The JSONPath to apply the action to.
value
rules.actions
No
The value to place at the JSONPath. Required for set, add, and put actions.
index
rules.actions
No
The index position for the action. Required for the add action only.
key
rules.actions
No
The key for the action. Required for the put action only.
condition
rules.actions
No
If the condition is met, the action runs. If the condition is not met, the action is skipped. Use this field to apply a condition to a single action instead of the whole rule.
Constants
Attribute
Path
Required
Description
constants
(top-level)
No
An array of constants to define. Can be empty if no constants are needed.
name
constants
Yes
A unique name for a constant, used to reference the constant in other places.
value
constants
Yes
The value of the constant.
Macros
Attribute
Path
Required
Description
macros
(top-level)
No
An array of macro namespace objects. Can be empty if no macros are needed.
namespace
macros
Yes
A unique namespace that groups related macro definitions. Used with a macro’s name to call it, for example ${widget_util:findWidget(...)}.
definitions
macros
Yes
An array of macro definitions within the namespace.
name
macros.definitions
Yes
The name of the macro.
description
macros.definitions
No
A string that describes what the macro does.
parameters
macros.definitions
Yes
An array of zero or more parameter names that the macro expects. Reference a parameter’s value with ${p.<parameterName>}.
actions
macros.definitions
An array of zero or more rule actions to perform as part of the macro, using the same action schema as rules.actions — see the Actions rows above. Omit if the macro only returns a computed value.
returns
macros.definitions
No
An expression or literal value to be returned from the macro. Omit if the macro only performs actions and doesn’t return a value.