v3.241.0
parruda/swarmv3.241.0May 18, 2026by github-actions[bot]
AI Summary
This release introduces extensive CLI enhancements including JSON output for preview/refresh/destroy operations, comprehensive stack scheduling and webhook management, audit log export, and custom role management for organizations.
Key Highlights
- JSON output support for `pulumi preview`, `refresh`, and `destroy`
- Comprehensive stack scheduling and webhook management commands
- Audit log export and organization webhook management
- Custom role management for organizations
- Pulumi Neo visibility enabled by default
New Features
- JSON output for CLI operations
- Stack scheduling commands (new, list, get, edit, remove)
- Stack and organization webhook commands
- Drift detection commands
- Audit log export command
- Policy compliance and group management commands
- Insights account management commands
- Deployment cancellation command
- Custom role management commands
Full Release Notes
## 3.241.0 (2026-05-18)
### Features
- [cli] Add `--output json` to `pulumi preview` for a structured JSON summary of the operation result
[#22927](https://github.com/pulumi/pulumi/pull/22927)
- [cli] Add `--output json` to `pulumi refresh` for a structured JSON summary of the operation result
[#22928](https://github.com/pulumi/pulumi/pull/22928)
- [cli] Add `--output json` to `pulumi destroy` for a structured JSON summary of the operation result
[#22875](https://github.com/pulumi/pulumi/pull/22875)
- [cli] Add `pulumi stack schedule get` to retrieve the configuration of a scheduled action
[#23153](https://github.com/pulumi/pulumi/pull/23153)
- [cli] Add `pulumi stack schedule list` to list all scheduled actions configured for a stack
[#23153](https://github.com/pulumi/pulumi/pull/23153)
- [cli] Add `pulumi stack schedule new` to create a raw, drift, or TTL deployment schedule for a stack
[#23153](https://github.com/pulumi/pulumi/pull/23153)
- [cli] Add `pulumi stack webhook delivery list` to list recent deliveries for a stack webhook
[#23116](https://github.com/pulumi/pulumi/pull/23116)
- [cli] Add `pulumi stack webhook delivery redeliver` to redeliver a webhook event
[#23118](https://github.com/pulumi/pulumi/pull/23118)
- [cli] Add `pulumi stack webhook edit` to update an existing stack webhook
[#23139](https://github.com/pulumi/pulumi/pull/23139)
- [cli] Add `pulumi stack webhook new` to create a new stack webhook
[#23101](https://github.com/pulumi/pulumi/pull/23101)
- [cli] Add `pulumi stack webhook remove` to delete a stack webhook
[#23102](https://github.com/pulumi/pulumi/pull/23102)
- [cli] Add `pulumi org webhook delivery list` to list recent deliveries for an organization webhook
[#23179](https://github.com/pulumi/pulumi/pull/23179)
- [cli] Add `pulumi org webhook edit` to update an organization webhook
[#23179](https://github.com/pulumi/pulumi/pull/23179)
- [cli] Add `pulumi org webhook list` to list all webhooks configured for an organization
[#23174](https://github.com/pulumi/pulumi/pull/23174)
- [cli] Add `pulumi org webhook new` to create a new organization webhook
[#23172](https://github.com/pulumi/pulumi/pull/23172)
- [cli] Add `pulumi org webhook ping` to send a test ping to an organization webhook
[#23179](https://github.com/pulumi/pulumi/pull/23179)
- [cli] Add `pulumi org webhook remove` to delete an organization webhook
[#23177](https://github.com/pulumi/pulumi/pull/23177)
- [cli] Add `pulumi stack drift list` to list drift detection runs for a stack
[#23159](https://github.com/pulumi/pulumi/pull/23159)
- [cli] Add `pulumi stack drift status` to show the drift detection status for a stack
[#23161](https://github.com/pulumi/pulumi/pull/23161)
- [cli] Add `pulumi stack schedule edit` to update an existing scheduled deployment action
[#23153](https://github.com/pulumi/pulumi/pull/23153)
- [cli] Add `pulumi stack schedule remove` to delete a scheduled deployment action
[#23153](https://github.com/pulumi/pulumi/pull/23153)
- [cli] Add `pulumi audit-log export` command
[#23212](https://github.com/pulumi/pulumi/pull/23212)
- [cli] Add `pulumi org audit-log list`
[#23211](https://github.com/pulumi/pulumi/pull/23211)
- [cli] Add `pulumi policy compliance list` to list compliance results grouped by entity
[#23209](https://github.com/pulumi/pulumi/pull/23209)
- [cli] Add `pulumi policy group new` command to allow creating new policy groups
[#23202](https://github.com/pulumi/pulumi/pull/23202)
- [cli] Add the `pulumi policy issue get` command
[#23200](https://github.com/pulumi/pulumi/pull/23200)
- [cli/cloud] Add `pulumi insights account list` to list Insights accounts in an organization
[#23091](https://github.com/pulumi/pulumi/pull/23091)
- [cli/cloud] Add `pulumi insights account new` to create a Pulumi Insights account
[#23093](https://github.com/pulumi/pulumi/pull/23093)
- [cli/cloud] Add `pulumi insights account scan log` to fetch log output for a Pulumi Insights scan
[#23092](https://github.com/pulumi/pulumi/pull/23092)
- [cli/cloud] Add `pulumi insights account scan` to trigger a resource discovery scan for an Insights account
[#23094](https://github.com/pulumi/pulumi/pull/23094)
- [cli/cloud] Implement `pulumi stack history events` to retrieve engine events for a Pulumi Cloud update
[#23109](https://github.com/pulumi/pulumi/pull/23109)
- [cli/cloud] Add `pulumi deployment cancel` to terminate an in-progress deployment
[#23164](https://github.com/pulumi/pulumi/pull/23164)
- [cli/cloud] Add `pulumi org member list` to list the members of an organization
[#23170](https://github.com/pulumi/pulumi/pull/23170)
- [cli/cloud] Add `pulumi org usage get` to fetch the resources-under-management summary for an organization
[#23166](https://github.com/pulumi/pulumi/pull/23166)
- [cli/cloud] Add `pulumi org role assign` to assign a custom role to a team
[#23117](https://github.com/pulumi/pulumi/pull/23117)
- [cli/cloud] Add `pulumi org role edit` to update a custom role's name, description, or permission tree
[#23117](https://github.com/pulumi/pulumi/pull/23117)
- [cli/cloud] Add `pulumi org role list` to list custom roles for an organization
[#23117](https://github.com/pulumi/pulumi/pull/23117)
- [cli/cloud] Add `pulumi org role new` to create a custom role from a permission descriptor JSON file
[#23117](https://github.com/pulumi/pulumi/pull/23117)
- [cli/cloud] Add `pulumi org role remove` to delete a custom role from an organization
[#23117](https://github.com/pulumi/pulumi/pull/23117)
- [cli/env] Update esc to v0.24.0
[#23213](https://github.com/pulumi/pulumi/pull/23213)
- [cli/neo] Show tool call arguments and results in `pulumi neo` via a `ctrl+o` overlay
[#23075](https://github.com/pulumi/pulumi/pull/23075)
- [cli/neo] Multi-line input in `pulumi neo` - Enter sends, Shift+Enter / Alt+Enter / Ctrl+J / trailing `\` insert a newline
[#23151](https://github.com/pulumi/pulumi/pull/23151)
- [cli/neo] Make `pulumi neo` visible by default; the `PULUMI_EXPERIMENTAL` gate has been removed
[#23228](https://github.com/pulumi/pulumi/pull/23228)
- [cli/policy] Add `pulumi policy group edit` to edit policy groups
[#23206](https://github.com/pulumi/pulumi/pull/23206)
- [cli/policy] Add `pulumi policy group remove` command to remove policies
[#23208](https://github.com/pulumi/pulumi/pull/23208)
- [cli/policy] Add the `pulumi policy group get` command
[#23203](https://github.com/pulumi/pulumi/pull/23203)
### Bug Fixes
- [cli] Add `pulumi policy issue list` command
[#23198](https://github.com/pulumi/pulumi/pull/23198)
- [cli] Fix `pulumi org role list` to send the `uxPurpose` query parameter the service requires
[#23231](https://github.com/pulumi/pulumi/pull/23231)
- [engine] Fix `pulumi import` dropping map entries whose value matched the enum member of a `Union<Input<Enum<T>>, ...>` element type
[#23190](https://github.com/pulumi/pulumi/pull/23190)
- [cli/cloud] Surface a clear error when `pulumi api --all` is used against an endpoint whose response is not paginatable, instead of silently emitting an empty array
[#23191](https://github.com/pulumi/pulumi/pull/23191)
[#23128](https://github.com/pulumi/pulumi/pull/23128)
- [cli/cloud] `pulumi deployment settings edit` no longer clears fields that the patch does not mention
[#23217](https://github.com/pulumi/pulumi/pull/23217)
- [cli/import] Generate PCL for asset and archive inputs when importing resources, instead of returning a "NYI" error
[#22938](https://github.com/pulumi/pulumi/pull/22938)
- [cli/import] Preserve asset/archive/resource-reference values inside map and array inputs, and HCL-escape map keys containing `${` or `%{` template sequences
[#23222](https://github.com/pulumi/pulumi/pull/23222)
- [cli/install] Hint at adding a `.git` / `_git` when VCS URL resolution fails
[#22831](https://github.com/pulumi/pulumi/pull/22831)
- [cli/neo] Transparently reconnect the Neo event stream after a transient network drop, resuming from the last seen event ID
[#23134](https://github.com/pulumi/pulumi/pull/23134)
- [cli/neo] Show `preparing` in the live preview/up block until the first resource arrives
[#23155](https://github.com/pulumi/pulumi/pull/23155)
- [cli/new] Support specific versions when using registry-backed templates with `pulumi new`
[#22909](https://github.com/pulumi/pulumi/pull/22909)