rules.json Attributes

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.

See Also