Use when creating or editing Nullstone IaC YAML files under `.nullstone/` — adding or wiring apps, datastores, networks, domains, subdomains, ingresses, clusters, cluster-namespaces; setting `vars`, `environment`, `connections`, or `capabilities`; configuring `events`. Triggers on file paths `.nullstone/config.yml`, `.nullstone/{env}.yml`, `.nullstone/previews.yml`, and anything under `.nullstone/stacks/{stack}/`.
80
100%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
event targets elementThe targets section enables a developer to emit a notification, send a webhook, and/or trigger a task.
events:
all-deployments:
# ...
targets:
slack:
channels:
- deploymentsevents:
all-deployments:
# ...
targets:
webhook:
url: https://example.com/webhookslackThe 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.channelsThe 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.
webhookThe webhook target allows you to configure a webhook to send a POST request to a URL when an event occurs.
Nullstone sends the following payload to the specified URL when an event occurs:
{
"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"
}