Skip to content

feat: Add Route53 hosted zones and DNS records browser#38

Merged
nathanhuh merged 1 commit intomainfrom
feat/route53-hosted-zones
Mar 26, 2026
Merged

feat: Add Route53 hosted zones and DNS records browser#38
nathanhuh merged 1 commit intomainfrom
feat/route53-hosted-zones

Conversation

@nathanhuh
Copy link
Copy Markdown
Contributor

Summary

Add Route53 support to the TUI (PLAN.md M3.6 phase 1 — read-only browsing). Users can list hosted zones, drill into DNS records, and view record details with filtering on both views.

New files:

  • route53_model.go — HostedZone and DNSRecord models
  • route53.go — ListHostedZones and ListResourceRecordSets with pagination
  • route53_test.go — 12 tests covering API methods and models

Modified files:

  • Domain layer: added ServiceRoute53 + FeatureRoute53Browser constants and catalog registration
  • Repository: added Route53ClientAPI interface, client field, and initialization
  • App: added 3 screens (zone list → record list → record detail), messages, state, handlers, filters, and views

Related Issues

Closes #13

Validation

  • make test — all tests pass (existing + 12 new Route53 tests)
  • make build — binary compiles successfully
  • Tests cover: happy path, empty results, error handling, nil config, alias records, model methods, zone ID cleaning

Checklist

  • Scope is focused
  • Docs updated (if needed)
  • Tests/validation included
  • Breaking changes documented

- Add Route53 service and Route53 Browser feature to domain catalog
- Implement ListHostedZones and ListResourceRecordSets with pagination
- Add Route53ClientAPI interface and client initialization in repository
- Add 3 TUI screens: zone list, record list, record detail
- Support filtering on both zone list and record list views
- Add HostedZone and DNSRecord models with DisplayTitle/FilterText
- Add comprehensive tests for API methods and model functions
instanceID string
}

type route53ZonesLoadedMsg struct {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

제가 go는 잘 모르는데 Type는 별도로 types.go로 모듈로 분리했던것 같아요

Copy link
Copy Markdown
Contributor Author

@nathanhuh nathanhuh Mar 26, 2026

Choose a reason for hiding this comment

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

혹시 types.go를 쓰는 게 흔한 패턴인가요? Effective Go Google Golang Style guide, Reddit 등의 discussion에서는 centralized해서 보는 것보다는 사용하는 곳 근처에 두는 걸 recommend합니다!

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

https://github.com/gravitational/teleport/blob/dda523e52f9a09e1811c27b0776fa1598d5c422a/tool/tctl/common/config/global.go#L45
teleport 에서도 분리해서 쓴걸 확인할 수 있습니다.

이건 패턴이라...

route53RecordIdx int
route53RecordFilter string
route53RecordFilterActive bool
selectedRoute53Record *awsservice.DNSRecord
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

route53 healtcheck필드도 필요할까요?

Copy link
Copy Markdown
Contributor Author

@nathanhuh nathanhuh Mar 26, 2026

Choose a reason for hiding this comment

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

healthcheck로 이해했습니다!
필요할 거 같다는 말씀이신가요?

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

(마이너) 아! 옵션이어서 당장은 필요없을 것 같아요! 나중에 필요하면 추가하면 될 것 같습니다.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

오! 그런 사항은 GitHub Issue에 등록해주시면 진행해보겠습니다!

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@choisungwook offered insights to possible implementation of Route 53 healthcheck to unic.
Suggested adding a new GitHub Issue for that specific enhancement.

Copy link
Copy Markdown
Contributor

@YoungJinJung YoungJinJung left a comment

Choose a reason for hiding this comment

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

please use in english for everything(eg. comment, discuss. etc)

@nathanhuh nathanhuh merged commit ef5cde3 into main Mar 26, 2026
1 check passed
@nathanhuh nathanhuh deleted the feat/route53-hosted-zones branch March 26, 2026 07:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Add Route53 ListHostedZones support

3 participants