Settings — Macros
Macros define reusable sequences of device commands that can be executed as a single unit. A macro contains an ordered list of steps, each targeting a specific device command. Macros can be run on demand or referenced by Access Paths.
Page Layout
Standard two-column settings layout:
- Left — Macro List: searchable; each row shows the macro display name. + button creates a new macro (requires
macro:create). - Right — Macro Detail Panel: opens when a macro is selected at
/settings/macros/:id.
Add New Macro
Clicking + opens the Add New Macro dialog:
| Field | Description |
|---|---|
| Display Name | Required |
| Actions (steps) | Ordered list of command steps — at least one required |
Each step specifies:
- Target device — from a device picker
- Command — from the command registry
- Parameters — command-specific values
Steps can be added, reordered, and deleted within the dialog. Saving navigates to the new macro’s detail panel.
Macro Detail Panel
| Property | Editable | Permission |
|---|---|---|
| Name | Yes | macro:update |
| Actions (ordered steps) | Yes | macro:update |
Action Buttons
| Button | Permission | Description |
|---|---|---|
| Duplicate Macro | macro:create |
Opens Add dialog with steps pre-filled; new name must be entered |
| Delete Macro | macro:delete |
Requires confirmation |
Macro Recorder
The Macro Recorder is a global floating panel that appears during live recording sessions started from device command menus across the application (not from the Settings page). While recording:
- Executed commands are captured as steps in real time and shown in the floating panel.
- Steps can be deleted during recording.
- When recording stops, the Add New Macro dialog opens pre-populated with the recorded steps.
From the dialog footer, an operator with access-path:create permission can instead save the recorded steps as a new Access Path rather than a standalone macro.
Permissions
| Action | Permission |
|---|---|
| View macro list | /settings/macros route |
| Create macro | macro:create |
| Edit macro name / steps | macro:update |
| Delete macro | macro:delete |
| Create access path from recorder | access-path:create |