feat: render integration base + 2 components#2905
Conversation
Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com>
…ender-integration
Deploying superplane with
|
| Latest commit: |
74346eb
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://675b86fe.superplane.pages.dev |
| Branch Preview URL: | https://feat-render-integration.superplane.pages.dev |
Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com>
|
1/ Does it work if you set up two different nodes to listen to different events, or will the web hooks clash? |
|
@shiroyasha 2 - It reuses the same webhook 3 - I think we should not have one component for each, since the payload is very simple and we have 55+ events to cover |
I think we shouldn't have a single The way I like to think about triggers is: a trigger is always scoped to a (1) specific resource type, (2) specific resource, (3) some additional things. Examples:
The reason for that is: what dictates what you need to do after receiving an event is usually the resource type. If you received all events through the same trigger, you'd need a filter after it to route build events to one path, and deploy events to another path. For example, for Render, we have Builds and we have Deploys. Those are two different resource types. If I receive an event for a Build, I do something completely different than I would do if I received an event for a Deploy. And we can see that in the screenshot you shared: you have two triggers, one for deploy events, one for build events. So, what I'd propose here is to have triggers per resource: I'm ok with not having a different trigger per event, e.g. |
|
Also additional note: we should always aim to share webhooks, if they use the same underlying event configuration. That's what CompareWebhookConfig() is for. For example, for the GH triggers, if we have two github.onPush triggers, one for main branch, and one for release branches, both of those triggers use the same webhook in GH. |
|
@lucaspin Trigger per Resource Type!! That make total sense! |
|
Also, additional note: if filters are part of the trigger, we should always have a the default filter for the most common use case. Two reasons for this: (1) easier for the user to configure, (2) we don't produce unnecessary events to the system. For example, the default |
|
@lucaspin I think for this specific one will be required to use one webhook for everything |
|
@forestileao is there a way to know which plan the workspace configured in the integration is in? We might use different strategy depending on it
Why one per canvas? It would be one for the integration itself, no? |
|
Yes, sorry, one per integration. |
|
Moved the discussion here to involve more people |
Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com>
|
Updated the PR with:
|
|
Video of the webhook flow: Screen.Recording.2026-02-07.at.12.06.20.mp4 |
…ling Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com>
Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com>
Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com>
Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com>
Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com>
Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com>
Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com>
|
@lucaspin @shiroyasha Added new Outputs channel (success and fail). Also, renamed Note: I needed to inject HTTP and integration context into the webhook context because the render event webhook only sends the eventId and not the deploy id in its payload. So I needed to fetch the event using a GET request to |
Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com>
Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com>
Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com>
Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com>
…ender-integration
|
@lucaspin update: added deployId and BuildId to the payloads. Also added a comment to avoid using http context on webhook nide context |
## Summary Add a new **Render** integration to SuperPlane with: - API key connection (optional workspace ID) - `On Event` trigger from Render webhooks - `Trigger Deploy` action for Render services ## What’s included - Backend integration (`pkg/integrations/render/*`) - Render API client (services, owners, webhooks, deploy trigger) - Automatic webhook provisioning/cleanup through Render API - Webhook signature verification (`webhook-id`, `webhook-timestamp`, `webhook-signature`) - Frontend mappers + icon + registry wiring for Render components/triggers - New docs page: `docs/components/Render.mdx` - Sidebar order updates for docs components Video showing the implementation https://github.com/user-attachments/assets/41c75657-9f1f-422c-8741-3db31480be32 --------- Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com> Signed-off-by: Aldo <aldo.abellto14@gmail.com>
## Summary Add a new **Render** integration to SuperPlane with: - API key connection (optional workspace ID) - `On Event` trigger from Render webhooks - `Trigger Deploy` action for Render services ## What’s included - Backend integration (`pkg/integrations/render/*`) - Render API client (services, owners, webhooks, deploy trigger) - Automatic webhook provisioning/cleanup through Render API - Webhook signature verification (`webhook-id`, `webhook-timestamp`, `webhook-signature`) - Frontend mappers + icon + registry wiring for Render components/triggers - New docs page: `docs/components/Render.mdx` - Sidebar order updates for docs components Video showing the implementation https://github.com/user-attachments/assets/41c75657-9f1f-422c-8741-3db31480be32 --------- Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com> Signed-off-by: Aldo <aldo.abellto14@gmail.com>
## Summary Add a new **Render** integration to SuperPlane with: - API key connection (optional workspace ID) - `On Event` trigger from Render webhooks - `Trigger Deploy` action for Render services ## What’s included - Backend integration (`pkg/integrations/render/*`) - Render API client (services, owners, webhooks, deploy trigger) - Automatic webhook provisioning/cleanup through Render API - Webhook signature verification (`webhook-id`, `webhook-timestamp`, `webhook-signature`) - Frontend mappers + icon + registry wiring for Render components/triggers - New docs page: `docs/components/Render.mdx` - Sidebar order updates for docs components Video showing the implementation https://github.com/user-attachments/assets/41c75657-9f1f-422c-8741-3db31480be32 --------- Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com> Signed-off-by: Aldo <aldo.abellto14@gmail.com>
## Summary Add a new **Render** integration to SuperPlane with: - API key connection (optional workspace ID) - `On Event` trigger from Render webhooks - `Trigger Deploy` action for Render services ## What’s included - Backend integration (`pkg/integrations/render/*`) - Render API client (services, owners, webhooks, deploy trigger) - Automatic webhook provisioning/cleanup through Render API - Webhook signature verification (`webhook-id`, `webhook-timestamp`, `webhook-signature`) - Frontend mappers + icon + registry wiring for Render components/triggers - New docs page: `docs/components/Render.mdx` - Sidebar order updates for docs components Video showing the implementation https://github.com/user-attachments/assets/41c75657-9f1f-422c-8741-3db31480be32 --------- Signed-off-by: Pedro F. Leao <pedroforestileao@gmail.com> Signed-off-by: Muhammad Fuzail Zubari <mfuzail.zubari@gmail.com>




Summary
Add a new Render integration to SuperPlane with:
On Eventtrigger from Render webhooksTrigger Deployaction for Render servicesWhat’s included
pkg/integrations/render/*)webhook-id,webhook-timestamp,webhook-signature)docs/components/Render.mdxVideo showing the implementation
Screen.Recording.2026-02-06.at.01.17.31.mp4