Conversation
ntner
added a commit
that referenced
this pull request
Mar 31, 2026
## Summary - Bump `github.com/aws/aws-sdk-go` from v1.25.29 (Oct 2019) to v1.55.8 (Jul 2025, final v1.x release) - Regenerate CloudFormation, CloudWatch, and CloudWatchLogs mock interfaces for updated SDK - Fix `TestProcessRunDetached` mock to accommodate new SDK idempotency token behavior ## Details The rack has been on aws-sdk-go v1.25.29 for 6+ years, missing hundreds of releases of bug fixes, security patches, endpoint resolution improvements, retry logic fixes, and credential handling updates across all 18 vendored AWS services (acm, autoscaling, cloudformation, cloudwatch, cloudwatchlogs, dynamodb, ec2, ecr, ecs, eventbridge, iam, kms, rds, s3, sns, sqs, ssm, sts). v1.55.8 is the final v1.x release (AWS SDK Go v1 is now end-of-support). No v1.x breaking changes were found. Two categories of test fixes were required: 1. **Mock interface regeneration**: The SDK added new methods to CloudFormation, CloudWatch, and CloudWatchLogs interfaces. The testify/mockery-generated mocks needed regeneration to satisfy the updated interfaces. 2. **ECS RunTask idempotency token**: The new SDK auto-populates a `clientToken` field on ECS `RunTask` requests. The `TestProcessRunDetached` mock used exact body matching and didn't expect this field. Converted to regex body matching (the test framework already supports this pattern). ## Backward Compatibility This is a health/security update to the vendored SDK. All existing API call patterns remain the same. The rack does NOT use ELBv2 Go API calls — all load balancer management goes through CloudFormation templates. No customer-facing behavior changes. The SDK v1.x maintained strict backward compatibility throughout its lifecycle. The only observable change is the `clientToken` idempotency field added to ECS RunTask requests, which is harmless (ECS accepts and ignores unknown fields, and idempotency tokens improve retry safety). ## Risk **HIGH** — every AWS API call in the rack process flows through this SDK. While the SDK maintained backward compatibility, 6 years of accumulated changes across 18 services means integration testing is essential. ## Test Plan - [x] `go build ./...` passes - [x] `go test ./...` passes (all packages) - [x] `TestProcessRunDetached` passes consistently (3/3) - [ ] Deploy to staging rack (AL2 AMI) — exercise all major operations - [ ] Exercise ECS operations: RunTask, DescribeServices, RegisterTaskDefinition, UpdateService - [ ] Exercise CloudFormation: UpdateStack, DescribeStacks, DescribeStackResources - [ ] Exercise S3: PutObject, GetObject (settings, build artifacts) - [ ] Exercise ECR: GetAuthorizationToken - [ ] Exercise KMS: Encrypt, Decrypt - [ ] Exercise DynamoDB: builds/releases table operations - [ ] Soak on staging for 24-48 hours
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
github.com/aws/aws-sdk-gofrom v1.25.29 (Oct 2019) to v1.55.8 (Jul 2025, final v1.x release)TestProcessRunDetachedmock to accommodate new SDK idempotency token behaviorDetails
The rack has been on aws-sdk-go v1.25.29 for 6+ years, missing hundreds of releases of bug fixes, security patches, endpoint resolution improvements, retry logic fixes, and credential handling updates across all 18 vendored AWS services (acm, autoscaling, cloudformation, cloudwatch, cloudwatchlogs, dynamodb, ec2, ecr, ecs, eventbridge, iam, kms, rds, s3, sns, sqs, ssm, sts).
v1.55.8 is the final v1.x release (AWS SDK Go v1 is now end-of-support). No v1.x breaking changes were found.
Two categories of test fixes were required:
clientTokenfield on ECSRunTaskrequests. TheTestProcessRunDetachedmock used exact body matching and didn't expect this field. Converted to regex body matching (the test framework already supports this pattern).Backward Compatibility
This is a health/security update to the vendored SDK. All existing API call patterns remain the same. The rack does NOT use ELBv2 Go API calls — all load balancer management goes through CloudFormation templates. No customer-facing behavior changes.
The SDK v1.x maintained strict backward compatibility throughout its lifecycle. The only observable change is the
clientTokenidempotency field added to ECS RunTask requests, which is harmless (ECS accepts and ignores unknown fields, and idempotency tokens improve retry safety).Risk
HIGH — every AWS API call in the rack process flows through this SDK. While the SDK maintained backward compatibility, 6 years of accumulated changes across 18 services means integration testing is essential.
Test Plan
go build ./...passesgo test ./...passes (all packages)TestProcessRunDetachedpasses consistently (3/3)