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)