Skip to content

feat: Add AWS Route53 DNS record management components#3085

Open
yinebebt wants to merge 2 commits intosuperplanehq:mainfrom
yinebebt:route53-integration
Open

feat: Add AWS Route53 DNS record management components#3085
yinebebt wants to merge 2 commits intosuperplanehq:mainfrom
yinebebt:route53-integration

Conversation

@yinebebt
Copy link
Contributor

Summary

Implements the AWS Route53 integration (closes #3059), adding three
new components for managing DNS records in Route53 hosted zones.

New Components

  • Create DNS Record (aws.route53.createRecord) - creates a new DNS record in a
    hosted zone (fails if record already exists)
  • Upsert DNS Record (aws.route53.upsertRecord) - creates or updates a DNS record
    (idempotent, safe for repeated runs)
  • Delete DNS Record (aws.route53.deleteRecord) - deletes an existing DNS record
    from a hosted zone

What's included

  • Backend (pkg/integrations/aws/route53/): Route53 XML API client with SigV4
    signing, hosted zone resource listing for the UI picker, component implementations
    with configuration validation, example outputs, and inline documentation
  • Frontend (web_src/): Component mappers (node rendering, execution details,
    state registries), Route53 SVG icon, integration icon mapping
  • Tests: Unit tests for all three components covering Setup validation and Execute
    scenarios (success, API errors, missing credentials, invalid config)
  • Docs: Auto-generated component documentation in docs/components/AWS.mdx

Technical notes

  • Route53 uses an XML-based API (unlike most AWS JSON APIs), so a custom HTTP client
    handles XML marshaling/unmarshaling and a local parseError for Route53-specific
    XML error responses
  • Route53 is a global service - the client uses us-east-1 for signing and the global
    route53.amazonaws.com endpoint
  • Hosted zone IDs returned by AWS include a /hostedzone/ prefix which is normalized
    before use in API calls
  • Reuses existing common.CredentialsFromInstallation for AWS OIDC credential exchange

Test plan

  • Tested manually with automation - configured AWS OIDC integration, created a
    hosted zone, and executed Upsert DNS Record to create an A record via a workflow
    trigger. Verified record appeared in the AWS Route53 console.
  • Unit tests pass (go test ./pkg/integrations/aws/route53/...)

Demo video: https://vimeo.com/1164625934?share=copy&fl=sv&fe=ci

Adds Create, Upsert, and Delete DNS record components for the AWS
Route53 integration, enabling users to manage DNS records within
existing hosted zones as part of SuperPlane workflows.

Signed-off-by: yinebebt <yintar5@gmail.com>
@yinebebt yinebebt changed the title Add AWS Route53 DNS record management components feat: Add AWS Route53 DNS record management components Feb 13, 2026
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

This PR is being reviewed by Cursor Bugbot

Details

Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

@AleksandarCole AleksandarCole added the pr:stage-3/3 Ready for full, in-depth, review label Feb 13, 2026
@lucaspin
Copy link
Contributor

@yinebebt I think it would be better if the components waited until the change is not in PENDING state anymore, and have reached the INSYNC state, before finishing the execution. It seems like that takes up to 60s, so it would be probably OK to poll on that. You can check how the aws.ecr.scanImage handles that

- Poll until change status is INSYNC
- Parse InvalidChangeBatch XML error format in parseError
- Consolidate create/upsert/delete mappers to one shared record.ts

Signed-off-by: yinebebt <yintar5@gmail.com>
@yinebebt yinebebt force-pushed the route53-integration branch from 3b524c0 to 78c8d6c Compare February 13, 2026 17:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr:stage-3/3 Ready for full, in-depth, review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[AWS Route53] Expand integration

3 participants