Skip to content

event targets element ​

The targets section enables a developer to emit a notification, send a webhook, and/or trigger a task.

Examples ​

Slack Notification ​

yaml
events:
  all-deployments:
    # ...
    targets:
      slack:
        channels:
          - deployments

Webhook ​

yaml
events:
  all-deployments:
    # ...
    targets:
      webhook:
        url: https://example.com/webhook

Attributes ​

slack ​

The slack target allows you to configure notifications to Slack channel(s) when an event occurs.

Before using this, you must connect a Slack workspace to your Nullstone organization. Visit "Integrations" in Nullstone under "global configuration". You can find this in the left pane at the bottom when logged in to Nullstone.

slack.channels ​

The channels section allows a developer to choose a list of Slack channels to send notifications.

TIP

The Nullstone bot must be a member of private channels. Type /invite @Nullstone in the Slack channel after configuring the Slack integration.

webhook ​

The webhook target allows you to configure a webhook to send a POST request to a URL when an event occurs.

Webhook Payload ​

Nullstone sends the following payload to the specified URL when an event occurs:

json
{
  "action": "string: enum(launch-failed, launched, destroy-failed, destroyed, update-failed, updated, first-deployed, first-deploy-failed, deployed, deploy-failed)",
  "eventAction": "string: enum(app-deployed, app-first-deployed, block-launched, block-updated, block-destroyed, block-needs-approval, env-launched, env-destroyed)",
  "eventStatus": "string: enum(failed, completed, cancelled, disapproved)",
  "message": "string",
  "workspace": {
    "uid": "string (uuid)",
    "createdAt": "string (timestamp)",
    "createdBy": "string",
    "status": "string",
    "statusAt": "string (timestamp)",
    "orgName": "string",
    "stackId": "integer",
    "blockId": "integer",
    "envId": "integer",
    "provisionedAt": "string (timestamp)",
    "currentActivity": "string",
    "hasPartialChanges": "boolean",
    "provisionStartedAt": "string (timestamp)"
  },
  "stack": {
    "id": "integer",
    "name": "string",
    "orgName": "string",
    "description": "string",
    "createdAt": "string (timestamp)",
    "updatedAt": "string (timestamp)",
    "providerType": "string",
    "status": "string"
  },
  "block": {
    "id": "integer",
    "name": "string",
    "orgName": "string",
    "moduleSource": "string",
    "createdAt": "string (timestamp)",
    "updatedAt": "string (timestamp)",
    "moduleSourceVersion": "string",
    "type": "string",
    "repo": "string",
    "framework": "string",
    "dnsName": "string",
    "registrar": "string",
    "reference": "string",
    "stackId": "integer",
    "isVerified": "boolean",
    "status": "string",
    "isShared": "boolean",
    "owningRepo": "string"
  },
  "environment": {
    "id": "integer",
    "name": "string",
    "orgName": "string",
    "providerConfig": "object",
    "pipelineOrder": "integer (nullable)",
    "createdAt": "string (timestamp)",
    "updatedAt": "string (timestamp)",
    "stackId": "integer",
    "type": "string",
    "status": "string",
    "contextKey": "string",
    "isProd": "boolean",
    "createdBy": "string"
  },
  "appVersion": "string",
  "module": "string",
  "moduleVersion": "string",
  "initiator": {
    "trigger": {
      "source": "string: enum(manual, github)",
      "event": "string: enum(user, automation, vcs-push, vcs-pull-request-opened, vcs-pull-request-labelled, gitops-enable, gitops-change-branch, env-create)",
    },
    "repoInfo": {},
    "commitInfo": {}
  },
  "targetUrl": "string"
}