Introduction
The Rootly Pulumi provider lets you manage your Rootly configuration — severities, services, functionalities, on-call schedules, escalation policies, workflows, custom form fields, and more — as infrastructure as code using Pulumi. This allows you to version-control your Rootly configuration, apply changes through CI/CD pipelines, and keep your incident management setup consistent across environments. The provider is built on top of the Rootly Terraform provider and is available on the Pulumi Registry.The Rootly Pulumi provider currently supports JavaScript and TypeScript only. Support for Python, Go, and .NET is not yet available.
Before You Begin
Before setting up the Pulumi provider, make sure you have:- Pulumi CLI installed
- Node.js installed
- A Rootly API token — generate one in Account > Manage API keys > Generate New API Key
Installation
Configure your API token
Set your Rootly API token. The recommended approach is to store it as an encrypted Pulumi secret:Alternatively, use an environment variable:
Always use
--secret when setting the API token via pulumi config to ensure it is encrypted in your stack state. Never commit an unencrypted API token to version control.Creating Resources
Import the provider and declare resources in your Pulumi program. The following example creates a set of severities, services, functionalities, and a workflow:Supported Resources
The provider supports the full range of Rootly configuration resources, including:| Category | Examples |
|---|---|
| Incident classification | Severity, IncidentType, IncidentRole |
| Services & infrastructure | Service, Functionality, Environment, Team |
| On-call | Schedule, EscalationPolicy |
| Workflows | WorkflowIncident, WorkflowActionItem, and 200+ workflow task types |
| Forms & fields | FormField, FormFieldOption |
| Status pages | StatusPage, StatusPageTemplate |
Deploying Changes
Preview changes before applying them:Troubleshooting
Authentication error: invalid API token
Authentication error: invalid API token
Confirm your API token is set correctly. If using
pulumi config, run pulumi config get rootly:apiToken to verify the value is present. If using the environment variable, confirm ROOTLY_API_TOKEN is exported in your shell. Check that the token has not been revoked in Rootly under Account > Manage API keys.Provider plugin not found
Provider plugin not found
Run the plugin install command again to ensure the binary is present:You can verify installed plugins with
pulumi plugin ls.Resource creation fails with a validation error
Resource creation fails with a validation error
Check the error message from the Pulumi output — it typically includes the Rootly API response. Common causes include missing required fields (e.g.,
name or color on a Severity) or invalid field values. Cross-reference with the Rootly API reference for valid field constraints.Changes are not reflected in Rootly after pulumi up
Changes are not reflected in Rootly after pulumi up
Run
pulumi refresh to reconcile Pulumi’s state with the actual state in Rootly. If resources were modified outside of Pulumi (e.g., via the Rootly UI), they may be out of sync with the Pulumi stack state.Related Pages
Terraform
The Rootly Terraform provider — the Pulumi provider is built on top of it.
Rootly API
The Rootly API reference — all resources the provider manages are available here.
Pulumi Registry
Full resource reference and API docs on the Pulumi Registry.