Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,7 @@ Context ordering:
| VPC | VPC Browser |
| VPC | Reachability Analyzer |
| RDS | RDS Browser |
| RDS | Instance Class Modification |
| Route53 | Route53 Browser |
| Secrets Manager | Secrets Browser |
| CloudWatch | Metrics Viewer |
Expand Down Expand Up @@ -375,7 +376,7 @@ checks:
| EC2 Instance Browser | `r` refresh, `/` filter, `A` toggle all-regions scope (multi-region contexts), `Enter` detail, detail `g/a/t/b/n` opens related security groups/ASG/target groups/load balancers/listeners |
| Security Groups | `a` add rule, `d` delete rule, `Tab` switch ingress/egress |
| Reachability Analyzer | Region select first, `←`/`→` or `Tab` change type, `/` filter, `Enter` advance, `Tab`/`↑`/`↓` move config fields, `←`/`→` protocol, `r` rerun |
| RDS | `s` start, `x` stop, `f` failover, `r` refresh |
| RDS | `s` start, `x` stop, `f` failover, `m` modify instance class (filterable class picker, `Tab` apply-immediately toggle, type-to-confirm), `r` refresh |
| Route53 | `c` create, `e` edit, `d` delete |
| IAM Key Rotation | `r` rotate, `c` copy exports, `a` apply and verify, `d` deactivate old key, `x` delete old key |
| Bedrock API Keys | `c` create, choose current IAM user or another user, `r` rotate secret, `d` delete, type the IAM user/key ID to confirm, `c` copy one-time key without printing it, `e` copy `AWS_BEARER_TOKEN_BEDROCK` export |
Expand All @@ -400,6 +401,8 @@ The EKS Browser includes a managed add-on status view for each cluster. Add-on r

The ECR Repository Browser opens image/tag lists from each repository. Image rows include tags, digest, pushed time, and size, and mark untagged images or images older than 90 days as cleanup candidates. Image detail exposes digest and tag values for clipboard copy.

The RDS detail screen can resize an instance with `m`: unic loads the orderable DB instance classes for the instance's engine/version in the active region into a filterable picker (current class marked), then a confirmation screen shows the current and new class with a `Tab`-toggleable apply-immediately choice (default: next maintenance window) and requires typing the instance identifier before calling ModifyDBInstance. After submitting, the detail screen polls the instance status until the change settles.

The FIS Experiment Template Browser lists experiment templates in the active region and opens a detail screen with role ARN, targets, actions, target mappings, parameters, filters, and stop condition summaries without leaving the TUI. Template detail includes a Safe Run Preview that summarizes blast radius, target selection modes, action count, active stop conditions, IAM role, and warnings for missing stop conditions, missing role ARN, broad selection, or unbounded selectors. The preview also states the template ID that any future execution path must type to confirm before a run can start. Press `h` on a selected template or template detail to inspect recent runs for that template, or `H` from the template list to inspect recent experiment history across the active account/region. History rows include run status, timing, and stop/failure summaries, with failed, stopped, stopping, and cancelled runs visually highlighted; `Enter` opens run detail with start/end times, duration, action states, targets, stop conditions, and failure metadata.

The EKS Browser includes a current-version upgrade readiness view for each selected cluster. It compares the control plane version with managed node group versions, checks installed managed add-on versions against EKS compatibility metadata for the current cluster version, includes EKS `UPGRADE_READINESS` insights, and highlights blockers or warnings before planning a target-version upgrade.
Expand Down
1 change: 1 addition & 0 deletions internal/app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ const (
screenReachabilityResult
screenRDSList
screenRDSDetail
screenRDSClassPicker
screenRDSConfirm
screenRoute53ZoneList
screenRoute53RecordList
Expand Down
13 changes: 13 additions & 0 deletions internal/app/help.go
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,7 @@ func (m Model) currentScreenShortcuts() []helpShortcut {
return listScreenShortcuts("open the selected instance", "go back to the feature list", true, false)
case screenRDSDetail:
shortcuts := []helpShortcut{
{"m", "Modify the instance class"},
{"r", "Refresh the selected instance status"},
{"q / esc", "Go back to the instance list"},
}
Expand All @@ -242,13 +243,23 @@ func (m Model) currentScreenShortcuts() []helpShortcut {
shortcuts = append([]helpShortcut{{"f", "Trigger failover for the selected instance or cluster"}}, shortcuts...)
}
return shortcuts
case screenRDSClassPicker:
return listScreenShortcuts("choose the class and continue to confirmation", "go back to the instance detail", true, false)
case screenRDSConfirm:
if m.rds.action == "start" {
return []helpShortcut{
{"y / enter", "Confirm the start action"},
{"n / esc", "Cancel and return to the detail screen"},
}
}
if m.rds.action == "modify" {
return []helpShortcut{
{"type", "Enter the instance identifier to confirm"},
{"tab", "Toggle apply-immediately"},
{"enter", "Confirm the class modification"},
{"esc", "Go back to the class picker"},
}
}
target := "instance identifier"
if m.rds.selected != nil && m.rds.selected.IsClusterMember() {
target = "cluster identifier"
Expand Down Expand Up @@ -838,6 +849,8 @@ func (m Model) helpScreenTitle() string {
return "RDS Instances"
case screenRDSDetail:
return "RDS Detail"
case screenRDSClassPicker:
return "RDS Instance Class Picker"
case screenRDSConfirm:
return "RDS Confirmation"
case screenRoute53ZoneList:
Expand Down
5 changes: 5 additions & 0 deletions internal/app/messages.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,11 @@ type rdsInstancesLoadedMsg struct {
instances []awsservice.RDSInstance
}

type rdsClassesLoadedMsg struct {
instanceID string
classes []string
}

type rdsActionDoneMsg struct {
action string
instanceID string
Expand Down
Loading
Loading