Approval Points

Pause a job until someone approves it

  1. How it works
  2. Approving your own job
  3. Attributes
  4. Examples
    1. 1) Remove host
    2. 2) Ask for approval in Teams

How it works

An approval point pauses the job at its place in the form until an approver answers it:

When you want to pause a job and ask for approval first. You can insert an approval point using the approval-object attributes


Approving your own job

From 7.3.0 the user who launched a job cannot approve it, even with one of the approval’s roles, so it takes a second person; an admin can always approve, their own jobs too. The launcher can still reject (withdraw) their own job. Set allowSelf: true when they may approve it too, for example in a test form:

approval:
  title: Approve the change
  message: Please approve this change
  roles:
    - approvers
  allowSelf: true

Attributes

The attributes of an approval point:

Attribute Comments
title
string

Approval message title
Free text with placeholders

The approval point consists out of a title and message. This is the title attribute, used as the subject of the approval mail.
Without it, the mail gets the default approval subject. A workflow’s approval nodes take the node’s name as title.
Note: This supports placeholders (the placeholders point to extravars)

message
string / required

Approval message
Free text with placeholders

The approval point consists out of a title and message. This is the message attribute.
Note: This supports placeholders (the placeholders point to extravars)

roles
array / required

The approver roles
a valid role

Every role in this list will have the power to approve or reject this job.

notifications
array

The approval recipients
a valid email address

Every email-address in this list will receive the approval message by email with the approval link.

channels
array

The approval channels
the name of a notification channel

The notification channels of Connections > Notifications that receive the approval message, with a link to the job, where it is approved or rejected: Slack, Microsoft Teams, Telegram, a webhook.
A mail channel in this list sends the approval mail to the notifications addresses through that server instead of the active one.
A name that is not there is said in the log and skipped. (Added in 7.0.0)

allowSelf
boolean

The requester may approve their own job
true or false

By default the user who launched a job cannot approve it, even with one of the approver roles: another approver must, so every approved job was seen by two people. The requester can still reject (withdraw) their own job. Set allowSelf: true to let the requester approve their own job too. An admin can always approve any job, their own included, whatever this says. (Added in 7.3.0)


Examples

Example approval points, in YAML:

1) Remove host

The definition, in YAML:

approval:
  title: Remove host $(vm.name) ?
  message: |
    You are about to remove vm $(vm.name).<br>
    Esx server: $(cluster.esxhost.name)<br>
    Status: $(vm.status)<br>
    Change request: $(cr.id)
  roles:
  - approvers
  - vmwareadmin
  notifications:
  - vmware@domain.local
  - approvers@domain.local      

2) Ask for approval in Teams

The definition, in YAML:

approval:
  title: Remove host $(vm.name) ?
  message: You are about to remove vm $(vm.name).
  roles:
  - approvers
  channels:
  - approvers-teams