Releases: superplanehq/superplane
v0.12.0
What's new since v0.11.0
Canvas change requests
Canvas versioning adds support for creating change requests. Similar to pull-requests on GitHub,
change requests in SuperPlane allow your team to propose changes to a canvas, review them, and
publish the changes when approved by the canvas maintainers.
1 new integration
- New Relic
26 new components and triggers
- New Relic: Report Metric, Run NRQL Query, On Issue
- Google Cloud Artifact Registry: Get Artifact, Get Artifact Analysis, On Artifact Push, On Artifact Analysis
- Google Cloud Pub/Sub: Publish Message, Create Topic, Delete Topic, Create Subscription, Delete Subscription, On Message
- Google Cloud DNS: Create Record, Update Record, Delete Record
- DigitalOcean: Get Droplet, Delete Droplet, Manage Droplet Power, Create Snapshot, Delete Snapshot
- Dash0: Create Check Rule, Get Check Rule, Update Check Rule, Delete Check Rule, Send Log Event
Improvements
- Canvas Settings: Configure canvas-level settings from a dedicated page instead of relying on scattered controls.
- YAML Viewer: The YAML version of the canvas is now viewable in the UI, not just via the CLI.
- CLI Discovery: Use a widgets discovery command in the CLI index to find available widgets faster.
Security
- Fixed: Signature validation now uses constant-time comparison to reduce timing attack risk.
- Fixed: Default blocked host and IP range protections were re-enabled for safer outbound HTTP handling.
Bug Fixes
- Fixed: Reverted a mutation update that could break GitHub integration setup in organization settings.
- Fixed: Removed stale webhooks reliably during cleanup to avoid orphaned webhook records.
- Fixed: Auto-layout now handles multi-select, disconnected segments, and nodes without output channels more reliably.
- Fixed: Duplicating multiple nodes now preserves their existing connections.
- Fixed: Long node names in canvas search render correctly in the UI.
- Fixed: Cancelling wait executions no longer emits extra events.
Merged Pull-Requests
- feat: Add New Relic integration by @vukasin-djuricic in #3322
- feat: Add widgets discovery command to CLI index by @manasa-bhagwat in #3351
- feat: Canvas Settings Page by @forestileao in #3397
- fix: uncomment default blocked ip ranges and hosts by @forestileao in #3403
- fix: use constant-time comparison for signatures by @lucaspin in #3406
- feat: yaml editor by @AleksandarCole in #3400
- chore(deps-dev): bump hono from 4.12.3 to 4.12.5 in /web_src by @dependabot[bot] in #3404
- chore(deps-dev): bump @hono/node-server from 1.19.9 to 1.19.11 in /web_src by @dependabot[bot] in #3417
- chore(deps): bump tar from 7.5.9 to 7.5.11 in /web_src by @dependabot[bot] in #3420
- fix: do not emit when cancelling wait execution by @lucaspin in #3421
- fix: improve worker processing speed by @lucaspin in #3419
- fix: events callback not working for subscription messages by @lucaspin in #3422
- feat: add change request approvals and conflicts resolving by @forestileao in #3431
- fix: fix empty payload on dash0 getHTTPSyntheticCheck by @felixgateru in #3430
- feat: add dash0 createCheckRule, getCheckRule, updateCheckRule and deleteCheckRule components by @felixgateru in #3399
- feat: introduce webhook response body by @e-todorovski-bm in #3428
- feat: add dash0 send log event action by @felixgateru in #3388
- feat: add gcp artifact registry integration by @WashingtonKK in #3401
- feat: add gcp pub sub integration by @WashingtonKK in #3414
- chore: remove Header versioning off label by @shiroyasha in #3412
- chore: readd previous save undo buttons when versioning is off by @forestileao in #3436
- feat(gcp/cloud-dns): add gcp cloud dns integration by @WashingtonKK in #3433
- fix: auto layout behavior by @forestileao in #3437
- fix: selection toolbar movement + icons size by @cursor[bot] in #3432
- fix: Remove Deleted Webhooks by @e-todorovski-bm in #3426
- fix: preserve connections when duplicating multiple selected nodes. by @samuel-asleep in #3429
- feat: add DigitalOcean getDroplet, deleteDroplet and manageDropletPower actions by @felixgateru in #3439
- fix: Auto-layout multi select by @forestileao in #3447
- fix: use X-Github-Delivery header for log messages on triggers by @lucaspin in #3448
- fix: elk auto layout error for nodes that doesn't specify output channels by @forestileao in #3449
- fix: Canvas search long names rendering (#2809) by @masicaaa in #3402
- fix: align create/update auto-layout behavior and stabilize backend horizontal layout by @forestileao in #3455
- fix: make frontend autolayouy to stack vertically disconnected segments by @forestileao in #3452
- fix: refactor HTTP component by @lucaspin in #3459
- feat: add DigitalOcean createSnapshot and deleteSnapshot actions by @felixgateru in #3440
- fix: Revert updateMutation that breaks github integration by @shiroyasha in #3462
New Contributors
- @vukasin-djuricic made their first contribution in #3322
- @cursor[bot] made their first contribution in #3432
- @masicaaa made their first contribution in #3402
Full Changelog: v0.11.0...v0.12.0
SuperPlane v0.11.0
What's new since v0.10.0
Canvas Versioning
Canvas versioning adds support for versioned edits to your workflow and lays the
groundwork for a built-in review system. It is available now as an early
capability and will expand with future updates.
New Integrations
This release adds 2 new integrations:
- Microsoft Teams
- FireHydrant
17 new components and triggers
- Microsoft Teams: Send Text Message, On Mention, On Message
- FireHydrant: Create Incident, On Incident
- Google Cloud: Cloud Build Create Build, Cloud Build Get Build, Cloud Build Run Trigger, Cloud Build On Build Complete, Cloud Functions Invoke Function
- Dash0: Get HTTP Synthetic Check, On Alert Notification, On Synthetic Check Notification
- Hetzner: Create Snapshot, Delete Snapshot
- GitHub: Add Reaction
- Core: Upsert Memory
Improvements
- Memory Components: New dedicated section for all memory components.
- Hetzner Machine Creation: Browse firewall resources while configuring Hetzner server components.
- Canvas minimap: Every canvas now has a minimap for easier navigation.
Bug Fixes
- Fixed: SSH component details now show the correct user.
- Fixed: SSH components handle missing connection retry values without nil dereference errors.
- Fixed: Secret passphrase fields allow empty selection when intended.
- Fixed: CLI
whoamioutput now aligns with versioning behavior.
Merged Pull-Requests
- feat: Agent is able to remove an edge by @shiroyasha in #3324
- feat: Github action for adding a reaction to comments by @shiroyasha in #3325
- feat: Add FireHydrant integration by @felixgateru in #3255
- fix: nil deference if connection retry is not set in the SSH component by @shiroyasha in #3333
- feat: Allow passing environment variables to SSH commands by @shiroyasha in #3334
- fix: Show the correct user in the SSH component details by @shiroyasha in #3343
- chore: add cli default auto-layout strategy + UI autolayout toggle by @forestileao in #3344
- fix: Allow selecting no passphrase by @shiroyasha in #3345
- feat: Canvas minimap by @shiroyasha in #3346
- feat: Give a hint that memory is not empty by showing a count by @shiroyasha in #3347
- feat: Accept AI actions with cmd+enter by @shiroyasha in #3348
- fix: daytona.executeCode syntax error by @forestileao in #3349
- feat: Add what is selected to the agents context by @shiroyasha in #3353
- feat: Show additional metadata on hetzner nodes by @shiroyasha in #3354
- feat: Hetzner components for creating and destroying server snapshots by @shiroyasha in #3355
- feat: Store minimap toggle state in localstorage by @shiroyasha in #3356
- chore: Scripts for booting up ephemeral ready dev env by @shiroyasha in #3360
- feat: multi node selection menu by @AleksandarCole in #3368
- chore: Reduced min zoom level to 10% by @AleksandarCole in #3369
- feat: Allow listing firewalls when connecting to Hetzner by @shiroyasha in #3366
- feat: add simple versioning + sandbox mode by @forestileao in #3373
- fix: publish requiring two clicks to work by @forestileao in #3383
- feat: Add GCP run cloud function by @WashingtonKK in #3377
- feat: GCP Cloud Build Integration by @WashingtonKK in #3357
- feat: Add dash0 get synthetic check component by @felixgateru in #3359
- feat: separate dash0 onNotification trigger into onAlertNotification trigger and onSyntheticCheckNotification trigger by @felixgateru in #3336
- feat: Introduce a dedicated memory category in the sidebar by @shiroyasha in #3385
- feat: Teams Integration by @e-todorovski-bm in #3378
- fix: Minimap toggle persistence by @shiroyasha in #3389
- feat: Upsert memory component by @shiroyasha in #3391
- fix: update cli whoami for versioning by @forestileao in #3392
New Contributors
- @felixgateru made their first contribution in #3255
Full Changelog: v0.10.0...v0.11.0
SuperPlane v0.10.0
What's new since v0.9.0
4 new integrations
- Honeycomb
- incident.io
- LaunchDarkly
- Octopus Deploy
34 new components and triggers
- Core: Add Memory, Read Memory, Update Memory, Delete Memory
- Honeycomb: Create Event, On Alert Fired
- incident.io: Create Incident, On Incident
- LaunchDarkly: Get Feature Flag, Delete Feature Flag, On Feature Flag Change
- Octopus Deploy: Deploy Release, On Deployment Event
- AWS: CodePipeline • Get Pipeline, CodePipeline • Get Pipeline Execution, CodePipeline • Retry Stage Execution, CodePipeline • On Pipeline
- CircleCI: Get Workflow, Get Last Workflow, Get Recent Workflow Runs, Get Test Metrics, Get Flaky Tests
- Daytona: Create Repository Sandbox, Get Preview URL
- GitHub: Get Repository Permission, On PR Review Comment
- Prometheus: Create Silence, Expire Silence, Get Silence, Query, Query Range
- Rootly: On Incident Timeline Event
- Semaphore: Get Pipeline
- Telegram: Wait for Button Click
Improvements
- Canvas auto-layout: Automatically arrange nodes on the canvas.
- Realtime canvas updates: Canvas updates via the CLI are streamed to the UI.
- Daytona secrets: Inject secrets into Daytona sandboxes for bootstrap and command execution.
- AI canvas builder: Build canvases by chatting with an agent.
- CLI discovery output: More helpful agent guidance when using discovery commands with
output=text. - Canvas memory: Canvas-scoped data storage. Used by components to persist and retrieve values across different paths and executions of the same canvas.
Bug Fixes
- Fixed: HTTP requests now read the response body before context cancellation to avoid losing error details.
- Fixed: HTTP timeout errors no longer expose internal error details, but instead show user-friendly error messages.
- Fixed: Organization scoping failures return 404 instead of 401.
- Fixed: Nested invisible fields are filtered correctly in the UI.
- Fixed: Payload modal is now larger and easier to read.
- Fixed: CLI
whoamioutput includes the organization name.
Merged Pull-Requests
- feat: Add prometheus.createSilence and prometheus.expireSilence by @samuel-asleep in #3219
- feat: Add semaphore.getPipeline action by @Suraj-kumar00 in #2973
- feat: Add AWS CodePipeline Get Pipeline component by @manasa-bhagwat in #3220
- feat: Add AWS CodePipeline Get Pipeline Execution component by @manasa-bhagwat in #3225
- feat: Add rootly.onIncidentTimelineEvent component by @devroy10 in #3150
- feat: add prometheus.getSilence ,prometheus.query and prometheus.queryRange action components by @samuel-asleep in #3229
- fix: return 404 for organization-scoping failures instead of 401 by @forestileao in #3234
- feat: Add incident.io integration by @Vukotije in #3136
- feat: stream canvas updates through websocket by @lucaspin in #3245
- feat: Add AWS CodePipeline On Pipeline trigger by @manasa-bhagwat in #3242
- chore: Integrations ux improvements by @ropsii in #3244
- feat: add daytona.getPreviewUrl action by @forestileao in #3254
- feat: Enable agent mode in the organization settings by @shiroyasha in #3258
- feat: Build a canvas by chatting with an AI agent by @shiroyasha in #3259
- feat: Every component has a skill and the built in agent is able to discover them via tool calling by @shiroyasha in #3262
- feat: Resume previous conversations with the agent by @shiroyasha in #3263
- feat: Introduce /clear command to start a new conversation with the agent by @shiroyasha in #3264
- feat: AI builder is able to intelligently layout stuff on the canvas by @shiroyasha in #3265
- feat: AI builder is able to deduce which output channels to use for connections by @shiroyasha in #3267
- feat: Provide AI skill for the Wait and SSH component by @shiroyasha in #3269
- chore: add env variables and output channels to daytona component by @forestileao in #3270
- fix: update webhook trigger's code example and custom UI on auth change by @devroy10 in #3135
- fix: split pr comment trigger in PR review comment and PR comment by @forestileao in #3272
- fix(http): make timeout errors easier to understand by @SaurabhCodesAI in #3214
- feat: Add Octopus Deploy integration + 2 components by @zakaneki in #3221
- fix: allow expressions in GitHub comment repository by @hadzija7 in #3227
- fix: unable to do password login after setup by @usernamenenad in #3233
- feat: Add CircleCI Get Workflow, Get Last Workflow, Get Recent Workflow Runs, Get Test Metrics, Get Flaky Tests by @vikramships in #3240
- feat: more information on discovery commands when output=text by @lucaspin in #3277
- fix: use 80% of screen for payload modal size by @lucaspin in #3280
- fix: update daytona sandbox naming by @forestileao in #3282
- feat: new daytona.createRepositorySandbox component by @lucaspin in #3283
- fix(ui): filter nested invisible fields by @lucaspin in #3285
- feat: Canvas Auto-Layout (Frontend + Backend + CLI) by @forestileao in #3286
- feat: github.getRepositoryPermission component by @lucaspin in #3287
- fix: Daytona execute command ui by @forestileao in #3288
- fix: timeout handling for daytona.createRepositorySandbox by @lucaspin in #3289
- feat: add telegram.waitForButtonClick by @samuel-asleep in #3253
- feat: Add AWS CodePipeline Retry Stage Execution component by @manasa-bhagwat in #3266
- feat: Introduce canvas data storage by @shiroyasha in #3293
- feat: Add unique entry ID and timestamps for canvas memory by @shiroyasha in #3294
- feat: Memory view for canvases by @shiroyasha in #3295
- feat: Add Honeycomb integration by @gaga1307 in #3149
- feat: add filters on semaphore.onPipelineDone trigger by @lucaspin in #3296
- feat: Add Launchdarkly integration by @WashingtonKK in #3256
- feat: inject secrets into daytona sandbox by @lucaspin in #3297
- fix: CLI show organization name in whoami output by @manasa-bhagwat in #3292
- fix: Improve CodePipeline resource field UX consistency across components by @manasa-bhagwat in #3279
- feat: Access memory from expressions by @shiroyasha in #3299
- feat: Introduce a dedicated component for accessing memory elements by @shiroyasha in #3300
- feat: Components for deleting data from memory by @shiroyasha in #3301
- feat: Components for updating memory by @shiroyasha in #3302
- fix: read HTTP response body before context cancellation by @clarabennettdev in #3146
- chore(deps): bump rollup from 4.40.2 to 4.59.0 in /web_src by @dependabot[bot] in #3303
- chore(deps): bump minimatch in /web_src by @dependabot[bot] in #3304
- chore(deps): bump go.opentelemetry.io/otel/sdk from 1.39.0 to 1.40.0 by @dependabot[bot] in #3305
- chore(deps-dev): bump storybook from 9.1.17 to 9.1.19 in /web_src by @dependabot[bot] in #3306
- chore(deps-dev): bump hono from 4.12.0 to 4.12.3 in /web_src by @dependabot[bot] in #3307
- feat: AI Builder is able to pick up existing integrations + add Daytona skills by @shiroyasha in #3271
- chore: Cleanup AI code structure by @shiroyasha in #3309
- chore: Use new auto-layouting when adding nodes to the canvas by @Shiroy...
SuperPlane v0.9.0
What's new since v0.8.0
9 new integrations
- Bitbucket
- DigitalOcean
- GCP
- Grafana
- Harness
- JFrog Artifactory
- ServiceNow
- Statuspage
- Telegram
53 new components
- AWS: Describe Service, Run Task, Stop Task, Create Service, Update Service, Execute Command, Create Image, Get Image, On Image, Copy Image, Deregister Image, Enable Image, Disable Image, Enable Image Deprecation, Disable Image Deprecation, Create Queue, Get Queue, Send Message, Purge Queue, Delete Queue, Create Record, Upsert Record, Delete Record, Run Pipeline
- Bitbucket: On Push
- Dash0: Create HTTP Synthetic Check, Update HTTP Synthetic Check, Delete HTTP Synthetic Check, On Notification
- DigitalOcean: Create Droplet, On Droplet Event
- GCP: Create VM, On VM Instance
- GitHub: Get Workflow Usage, Add Issue Label, Remove Issue Label, Add Issue Assignee, Remove Issue Assignee
- Grafana: Query Data Source, On Alert Firing
- Harness: Run Pipeline, On Pipeline Completed
- Hetzner: Create Load Balancer, Delete Load Balancer
- JFrog Artifactory: Get Artifact Info, Delete Artifact, On Artifact Uploaded
- PagerDuty: Acknowledge Incident, Resolve Incident, Escalate Incident
- Rootly: Get Incident
- ServiceNow: Create Incident, Get Incident
- Slack: Wait For Button Click
- Statuspage: Create Incident, Get Incident, Update Incident
- Telegram: Send Message, On Mention
Improvements
- Service Accounts: Create and use service accounts for automation that should not depend on individual user credentials.
- CLI Secrets Management: Create, update, and delete organization secrets directly from the CLI.
- CLI Contexts: Connect one CLI setup to multiple organizations and switch contexts more easily.
- CLI Execution Controls: Manage executions, inspect root events, and operate node queues from the CLI.
- CLI Discovery UX: Use grouped discovery commands under a dedicated
indexcommand for faster lookup. - CLI Canvas Management: Configure the active canvas from the CLI for quicker environment switching.
- OpenAI Configuration: Set an optional custom base URL for proxy, gateway, or OpenAI-compatible endpoints.
- Webhook Trigger Authentication: Use a header token option to verify inbound webhook trigger requests.
Bug Fixes
- Fixed: HTTP component retries now use exponential backoff correctly, improving resilience under transient network failures.
- Fixed: OIDC webhook flows now consistently use the configured webhook base URL, including signer paths.
- Fixed: AWS EventBridge-based triggers and rules handle region filtering and multi-region provisioning more reliably.
- Fixed: Daytona command execution avoids endless-running states and uses a more stable session API flow.
- Fixed: Long filter values now wrap correctly in UI tooltips, improving readability in dense specs.
Merged Pull-Requests
- chore: Add new integrations to Readme by @AleksandarCole in #3125
- feat: manage secrets through CLI by @lucaspin in #3126
- docs: Eliminated naming inconcistency in the itegration guide by @kkomelin in #3127
- chore: Fix generated integration filenames by @shiroyasha in #3128
- feat(cli): group discovery-related commands under index command by @lucaspin in #3131
- feat: Introduce service accounts by @shiroyasha in #3133
- feat: AWS ECS integration + 3 components by @forestileao in #3118
- feat: Add AWS Route53 DNS record management components by @yinebebt in #3085
- feat: Add Rootly Get Incident action by @Manideepchopperla in #2974
- fix: Use webhook base url for OIDC by @shiroyasha in #3145
- feat: Add slack.waitForButtonClick action by @samuel-asleep in #3031
- fix: Use webhook base url for oidc signer as well by @shiroyasha in #3148
- feat: Add Bitbucket integration by @ishaksebsib in #3039
- feat(cli): commands for managing node queue by @lucaspin in #3151
- feat(cli): new root events command by @lucaspin in #3152
- feat(cli): manage executions by @lucaspin in #3153
- feat(cli): connect to multiple organizations through contexts by @lucaspin in #3154
- feat(cli): configure active canvas by @lucaspin in #3156
- feat: Add github.getWorkflowUsage component for Actions billing by @samuel-asleep in #3158
- fix(ci): use go mod download in test.setup by @lucaspin in #3181
- feat: bootstrap EC2 integration by @lucaspin in #3170
- fix: Switch to Daytona SessionAPI for commands by @AleksandarCole in #3178
- feat: Dash0 Synthetic Events 3 Components by @alabro-bm in #3183
- feat: Dash0 Webhook Integration and On Notification Component by @alabro-bm in #3184
- fix: Fix daytona endless running command issue by @AleksandarCole in #3186
- feat: Add Grafana integration by @mfuzailzubari in #3040
- feat: statuspage integration + 3 components by @re-pixel in #3117
- fix: multi-region EventBridge rule provisioning by @lucaspin in #3188
- feat: Added pooling for Daytona Create Sandbox by @alabro-bm in #3187
- fix: filter AWS EventBridge events by region by @lucaspin in #3189
- fix: Revert "feat: Dash0 Webhook Integration and On Notification Component" by @AleksandarCole in #3190
- fix: rule provisioning check for AWS ECS by @lucaspin in #3191
- feat: add DigitalOcean integration with droplet trigger and action by @aldoabellto235 in #2983
- feat: Add Create & Delete Hetzner Load Balancer integrations by @usernamenenad in #3169
- feat: remaining EC2 AMI operations by @lucaspin in #3182
- chore: add _target blank and noreferrer to markdown renderer anchors by @forestileao in #3192
- fix: grafana docs tags by @forestileao in #3199
- chore: HTML sanitizer for docs generation by @shiroyasha in #3201
- feat: add header token for webhook trigger by @forestileao in #3202
- feat: Add ServiceNow integration by @ConeDjordjic in #3113
- feat: dash0.onNotification trigger by @lucaspin in #3204
- chore(deps): bump tar from 7.5.7 to 7.5.9 in /web_src by @dependabot[bot] in #3203
- feat: Add Harness integration starter components by @0vertake in #3120
- chore(deps-dev): bump qs from 6.14.1 to 6.15.0 in /web_src by @dependabot[bot] in #3206
- chore(deps-dev): bump hono from 4.11.9 to 4.12.0 in /web_src by @dependabot[bot] in #3208
- chore(deps): bump filippo.io/edwards25519 from 1.1.0 to 1.1.1 by @dependabot[bot] in #3209
- feat: Aws Sqs Components by @tinhuynh1 in #3167
- feat: [WIP] ecs create,update service and execute command by @forestileao in #3144
- feat: Add AWS CodePipeline Run Pipeline action by @manasa-bhagwat in #3174
- feat: Add GCP base and components by @harxhist in #3138
- feat: Acknowledge, Resolve and Escalate incidents on PagerDuty by @shiroyasha in #3212
- fix: Enhance SpecsTooltip to support long filter value wrapping by @PrashantIndurkar in #2874
- feat: add optional base URL config to OpenAI integration by @kkomelin in #2929
- fix: Apply exponential backoff to retry delay instead of request timeout in HTTP component by @shiroyasha in #3213
- feat: add telegram integration by @samuel-asleep in #3210
- feat: Jfrog Artifactory Base by @alabro-bm in #3165
- feat: Add github components for adding, removing issue labels and assignees by @shiroyasha in #3216
- chore: New integratio...
SuperPlane v0.8.0
What's new since v0.7.0
7 new integrations
- CircleCI
- Cursor
- DockerHub
- GitLab
- Hetzner
- Prometheus
- Render
53 new components and triggers
- AWS CloudWatch (On Alarm)
- AWS CodeArtifact (Create Repository, Delete Repository, Get Package Version, On Package Version, Copy Package Versions, Delete Package Versions, Dispose Package Versions, Update Package Versions Status)
- AWS SNS (Create Topic, Delete Topic, Get Topic, Get Subscription, Publish Message, On Topic Message)
- CircleCI (Run Pipeline, On Workflow Completed)
- Cursor (Launch Cloud Agent, Get Last Message, Get Daily Usage Data)
- DockerHub (Get Image Tag, On Image Push)
- GitLab (Run Pipeline, On Pipeline, Get Pipeline, Get Latest Pipeline, Get Test Report Summary, On Merge Request, On Milestone, On Tag, On Release, On Vulnerability, Create Issue, On Issue)
- Hetzner (Create Server, Delete Server)
- Prometheus (Get Alert, On Alert)
- Render (Get Service, Get Deploy, Deploy, Cancel Deploy, Rollback Deploy, Purge Cache, Update Env Var, On Deploy, On Build)
- Rootly (Update Incident, Create Event)
- GitHub (Create Review, Create Issue Comment)
- PagerDuty (List Log Entries, List Notes)
Improvements
- Snap-to-grid toggle: Nodes will snap to a grid when moving or creating them if the toggle is enabled.
- SSH connection retries: Specify the number of retries and the delay between them in case of connection failure.
- Integrations:
- Support for multiple integrations of the same type. e.g. You can have multiple GitHub organizations connected at the same time.
- Integration names are editable.
- Error messages from integrations are now shown in the configuration sidebar.
- CLI:
integrations list- List integrations.integrations list-resources- List resources for a given integration.components list- List all available components.triggers list- List all available triggers.- Global
--outputflag (json / yaml / text) for command output.
Merged Pull Requests
What's Changed
- docs: Building an integration by @shiroyasha in #2980
- feat: integration state and configuration should be on the same page by @lucaspin in #2982
- feat: render integration base + 2 components by @forestileao in #2905
- feat: Implement initial GitLab integration (OAuth + PAT) by @dimbaja in #2696
- chore: add Logger to WebhookRequestContext by @lucaspin in #2988
- fix: infinite redirect due to invalid org ID by @forestileao in #2992
- chore: Update changelog skill for cursor by @AleksandarCole in #2993
- fix: prevent option selection reset in AutoCompleteSelect by @kkomelin in #2931
- feat: PagerDuty list notes by @e-todorovski-bm in #2857
- chore: Fix frontend mappers to use new format by @shiroyasha in #2996
- feat: add snap-to-grid toggle to workflow canvas by @prudh-vi in #2925
- chore: Overhaul of the researcher skill by @AleksandarCole in #3007
- feat: Add github.createIssueComment component by @Manideepchopperla in #2967
- feat(github): Add createReview component by @energypantry in #2940
- feat: PagerDuty list log entries by @shiroyasha in #3012
- fix: allow integrations of the same type + allow editing integration name by @forestileao in #3019
- fix: show integration error on the sidebar by @forestileao in #3020
- feat: Add rootly.createEvent component by @devroy10 in #2979
- feat: DockerHub base integration by @lucaspin in #2969
- chore: Hide run button by @AleksandarCole in #3028
- chore: Integrations list in readme by @AleksandarCole in #3037
- feat: AWS CodeArtifact expansion - repos + package version operations by @yinebebt in #2944
- feat: Add CircleCI integration by @vikramships in #2916
- feat: Add render.getService and render.getDeploy components by @vikramships in #3016
- feat: Add render.cancelDeploy and render.rollbackDeploy components by @vikramships in #3017
- feat: Add Render Purge Cache and Update Env Var components by @vikramships in #3018
- chore: Multi step integrations setup UI improvement by @ropsii in #3062
- chore: WebhookContext is now available for action components in the Setup and Execute callback function by @shiroyasha in #3072
- feat: Add Cursor Integration by @harxhist in #2991
- feat: Add new cursor.getLastMessage component by @shiroyasha in #3075
- feat: aws.cloudwatch.onAlarm trigger by @lucaspin in #3023
- feat: Add rootly.updateIncident action by @Manideepchopperla in #2978
- feat: Prometheus Base integration by @forestileao in #3068
- feat: GitLab triggers for merge requests, milestones, tags, releases and vulnerabilities by @lucaspin in #3084
- chore: Multi instance integrations UI by @ropsii in #3094
- fix: ignore integration with serialization issues when listing them by @lucaspin in #3111
- feat: bootstrap AWS SNS integration components by @fadhilijuma in #2963
- feat: new components for GitLab pipelines by @lucaspin in #3109
- feat: gitlab.runPipeline and gitlab.onPipeline by @lucaspin in #3115
- feat: Connection retries for SSH component by @shiroyasha in #3112
- feat: Hetzner integration with createServer and deleteServer by @shiroyasha in #3116
- feat: include discovery commands on CLI by @lucaspin in #3119
New Contributors
- @dimbaja made their first contribution in #2696
- @kkomelin made their first contribution in #2931
- @prudh-vi made their first contribution in #2925
- @Manideepchopperla made their first contribution in #2967
- @energypantry made their first contribution in #2940
- @devroy10 made their first contribution in #2979
- @yinebebt made their first contribution in #2944
- @vikramships made their first contribution in #2916
- @fadhilijuma made their first contribution in #2963
Full Changelog: v0.7.0...v0.8.0
SuperPlane v0.7.0
What's new since v0.6.0
3 new integrations
- Claude
- SendGrid
- Jira
15 new components
- SSH (Run Command) – standalone component to run commands on remote hosts
- AWS ECR (Get Image, Scan Image, Get Image Scan Findings, On Image Push, On Image Scan)
- AWS CodeArtifact (Get Package Version, On Package Version)
- GitHub (Get Release)
- Claude (Text Prompt)
- SendGrid (Send Email, On Email Event, Create Contact, Update Contact)
- Jira (Create Issue)
Improvements
- RBAC: Role-based access control. Define roles and permissions and control what each user can do in your organization.
- Secrets: Create, update, and delete organization secrets. Secrets can be used in the SSH component to store private keys. More components will support secrets in the future.
- Integrations UI/UX: Clearer flows when browsing and configuring integrations, and a fix for the duplicate integration banner.
Security Updates
- SSRF protection for HTTP requests
- Enforce payload limit on HTTP responses
- Security updates for dependencies
Merged Pull Requests
- fix: add dialog descriptions and keep canvas websocket reconnecting by @forestileao in #2695
- feat: Cleanup() for Component and Trigger by @lucaspin in #2783
- feat: Allow, creating, updating and deleting secrets from the organization menu by @shiroyasha in #2790
- chore: Allow running multiple Superplane instances at once by @shiroyasha in #2792
- chore: migrate RBAC prefixes to route-style + casbin_rule usage reduced by @forestileao in #2805
- chore: Instructions for Bounties by @AleksandarCole in #2802
- chore: Cursor skill - log issues by @AleksandarCole in #2814
- fix: webhoook trigger reset key not working by @forestileao in #2817
- feat: AWS ECR components and triggers by @lucaspin in #2806
- fix: missing Cleanup() on AWS components by @lucaspin in #2819
- chore: Remove InstallationID from contexts by @lucaspin in #2838
- feat: Enable RBAC UI with permission guard by @forestileao in #2839
- feat: initial AWS CodeArtifact blocks for package versions by @lucaspin in #2841
- fix: show correct number of permissions by @forestileao in #2842
- chore: reduce flakyness of tests + better test performance by @forestileao in #2844
- chore: improved integrations ux by @ropsii in #2823
- feat: list assets as part of aws.codeArtifact.getPackageVersion by @lucaspin in #2863
- fix: duplication for integration banner by @AleksandarCole in #2868
- fix: new common.FloatTime for AWS API timestamps by @lucaspin in #2864
- fix: missing auth guard in some places by @forestileao in #2876
- chore: getTriggerProps and CustomFieldRenderer signatures should not use API types by @lucaspin in #2877
- chore: update UI mappers signatures by @lucaspin in #2878
- chore: use BUILDKIT_PROGRESS = plain by @lucaspin in #2880
- chore: Dedicated API operations for keys in secrets + E2E tests for secrets by @shiroyasha in #2866
- fix: always fallback to defaultTriggerRenderer by @lucaspin in #2883
- feat: add GitHub Get Release component by @sangokp in #2832
- chore: update bounty program documentation by @AleksandarCole in #2889
- feat: use additional parameters when listing integration resources by @lucaspin in #2891
- feat: Jira Base Integration by @alabro-bm in #2890
- feat: SSH component by @shiroyasha in #2892
- feat: sendgrid integration base + components by @forestileao in #2893
- chore: improve sendgrid component designs by @forestileao in #2900
- chore(sendgrid): update event filtering to use predicate list by @forestileao in #2902
- fix: add SSRF protection to HTTP requests by @cchristous in #2804
- chore: Support up to 5 running instances by @shiroyasha in #2907
- Cursor can create changelog now by @AleksandarCole in #2912
- feat: Add Claude integration and Create Message component by @harxhist in #2909
- docs: update component-review.rules.md by @lucaspin in #2917
- fix: enforce limit on HTTP responses by @lucaspin in #2918
- docs: include security considerations on component review rules by @lucaspin in #2919
- fix: Component docs sync by @shiroyasha in #2935
- chore: Rename claude.createMessage -> claude.textPrompt by @shiroyasha in #2948
- chore: Add docs how to submit PRs for integrations by @shiroyasha in #2949
- chore(deps): bump tar and @hey-api/openapi-ts in /web_src by @dependabot[bot] in #2950
- chore(deps): bump react-router and react-router-dom in /web_src by @dependabot[bot] in #2951
- chore(deps): bump vite in /web_src by @dependabot[bot] in #2952
- chore(deps-dev): bump @modelcontextprotocol/sdk from 1.11.2 to 1.26.0 in /web_src by @dependabot[bot] in #2953
- chore(deps): bump glob from 10.4.5 to 10.5.0 in /web_src by @dependabot[bot] in #2955
- chore(deps-dev): bump storybook from 9.1.7 to 9.1.17 in /web_src by @dependabot[bot] in #2956
- chore(deps): bump golang.org/x/crypto from 0.37.0 to 0.45.0 by @dependabot[bot] in #2958
- chore(deps): bump esbuild, @vitest/ui and vitest in /web_src by @dependabot[bot] in #2960
- chore(deps): bump github.com/go-chi/chi/v5 from 5.1.0 to 5.2.2 by @dependabot[bot] in #2962
- chore: add WebhookHandler interface by @lucaspin in #2937
- chore: Use standard unit tests without explicit mocks by @shiroyasha in #2968
- fix: regen api files for TS due to updated lib by @forestileao in #2970
- feat: restrict event payload size emitted by components by @lucaspin in #2971
- chore: refactor NodeRef structure in Integrations API by @lucaspin in #2972
New Contributors
- @sangokp made their first contribution in #2832
- @cchristous made their first contribution in #2804
- @harxhist made their first contribution in #2909
Full Changelog: v0.6.0...v0.7.0
SuperPlane v0.6.0
What's new since v0.5.0
17 new components
- Cloudflare (Create/Update/Delete DNS Record)
- Daytona.io (Create/Delete Sandboxes, Run Scripts and Commands)
- Discord (Send Text Message)
- Datadog (Create Event)
- Rootly (Create Incident, On Incident)
- PagerDuty (Annotate Incident, Snooze Incident, On Incident Annotated)
Improvements
- Ability to pause processing of nodes on a canvas
- Configuration toggle for switching between fixed and expression based values
Bug Fixes
- Fixed: HTTP 500 while creating canvases with duplicate names
- Fixed: Non-standard terminology used for canvases and integrations
- Fixed: Component metadata not updating for github components
Merged Pull-Requests
- fix: node name duplication by @forestileao in #1871
- chore: Simplify component counting by @shiroyasha in #1880
- feat: pause component by @forestileao in #1882
- fix(annotations): Prevent pending debounced updates from being cancelled mid-typing by @forestileao in #1883
- chore: Introduce a cursor command for reviewing components in the application by @shiroyasha in #1884
- chore: Product design guidelines for components by @AleksandarCole in #1885
- chore: Add tags for component type by @AleksandarCole in #1886
- feat: add Datadog integration with createEvent component by @thiagokroger in #1878
- chore: better context for pause tooltip + new icon by @forestileao in #1897
- chore: remove .env by @e-todorovski-bm in #1900
- feat: PagerDuty Snooze Incident and On Incident Annotated by @e-todorovski-bm in #1895
- fix: undefined errors in mappers by @forestileao in #1901
- fix: metadata not updating for github + webhook replacement on setup by @forestileao in #1907
- chore(deps-dev): bump qs from 6.14.0 to 6.14.1 in /web_src by @dependabot[bot] in #1872
- fix: CSS security error on take screenshots by @forestileao in #1910
- chore: Reduce noisy console errors for handled UI failures by @forestileao in #1909
- fix: canvas with name should not throw error 500 by @forestileao in #1953
- feat: Discord Integration with Send Text Message by @e-todorovski-bm in #1728
- chore: improved error handling in pagerduty components by @e-todorovski-bm in #1903
- chore: Clean up the install instructions for discord bots by @shiroyasha in #2342
- feat: Rootly integration by @e-todorovski-bm in #2282
- feat: PagerDuty Annotate Incident by @e-todorovski-bm in #2514
- feat: Daytona.io Integration by @alabro-bm in #1889
- fix: control integration state through interface by @lucaspin in #2515
- test: update TimeGate E2E to work during weekends by @lucaspin in #2522
- feat: new Integration.Cleanup() method by @lucaspin in #2521
- feat: Actions() for Integration by @lucaspin in #2523
- chore: rename integration models and workers by @lucaspin in #2520
- chore: workflows.proto to canvases.proto by @lucaspin in #2524
- chore: use /canvases in UI routes by @lucaspin in #2525
- fix/button-text-copy-clipboard-download-file by @PrashantIndurkar in #1894
- chore: Introduce dev.pr.clean.checkout by @shiroyasha in #2526
- chore: rename workflow related models by @lucaspin in #2527
- chore: rename canvas related workers by @lucaspin in #2528
- Deleting GH Action by @AleksandarCole in #2530
- feat: Allow me to switch between selecting from a list, or using an expression by @shiroyasha in #2531
- feat: Update DNS Record by @shiroyasha in #2516
- feat: Creating cursor rules so it can log integrations by @AleksandarCole in #2550
- feat: Cloudflare Create DNS Record by @shiroyasha in #2517
- chore: Git stats script formatting + sort by commit number desc by @shiroyasha in #2551
- feat: cloudflare.deleteDnsRecord by @shiroyasha in #2519
- fix: wait component with wrong Copy + add defaults by @forestileao in #2679
- fix: trigger icon crash when metadata is missing by @forestileao in #2680
New Contributors
- @thiagokroger made their first contribution in #1878
- @alabro-bm made their first contribution in #1889
- @PrashantIndurkar made their first contribution in #1894
Full Changelog: v0.5.3...v0.6.0
SuperPlane is currently in alpha and moving fast. Expect rough edges and occasional breaking changes as we stabilize the core model and integrations. Early feedback is extremely valuable.
SuperPlane v0.5.3
First public (alpha) release of SuperPlane.
SuperPlane is an open-source (Apache 2.0) DevOps control plane for defining and running event-driven workflows across the tools you already use: CI/CD, release management, incident response, infrastructure, notifications, and more.
Available now
✓ 40+ starter components (10+ core, 30+ integrations)
✓ Event-driven workflow engine
✓ Visual Canvas builder
✓ Run history, event chain view, and debug console
✓ CLI and example workflows
In progress / upcoming
→ 200+ new components (AWS, Grafana, Datadog, Azure, GitLab, Jira, and more)
→ Canvas version control
→ SAML/SCIM with extended RBAC and permissions
→ Artifact version tracking
→ Public API
SuperPlane is currently in alpha and moving fast. Expect rough edges and occasional breaking changes as we stabilize the core model and integrations. Early feedback is extremely valuable.
v0.5.0
Release v0.5.0
v0.1.6
Release v0.1.6