From a51a5f55f58bc7a9059099db83fc1360facd607c Mon Sep 17 00:00:00 2001 From: Callum Morris Date: Tue, 4 Aug 2026 14:35:25 +1200 Subject: [PATCH 1/2] nfc: aws sdk version bumps to resolve govuln checks --- go.mod | 26 +++++++++++++------------- go.sum | 24 ++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index 6a593af..f92af4c 100644 --- a/go.mod +++ b/go.mod @@ -1,37 +1,37 @@ module github.com/GeoNet/kit -go 1.23 +go 1.25.0 require ( - github.com/aws/aws-sdk-go-v2 v1.25.3 + github.com/aws/aws-sdk-go-v2 v1.43.3 github.com/aws/aws-sdk-go-v2/config v1.27.7 github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.11 - github.com/aws/aws-sdk-go-v2/service/s3 v1.52.1 + github.com/aws/aws-sdk-go-v2/service/s3 v1.106.4 github.com/aws/aws-sdk-go-v2/service/sns v1.29.2 github.com/aws/aws-sdk-go-v2/service/sqs v1.31.2 github.com/aws/aws-sigv4-auth-cassandra-gocql-driver-plugin v1.1.0 - github.com/aws/smithy-go v1.20.1 + github.com/aws/smithy-go v1.27.6 github.com/gocql/gocql v1.6.0 github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da github.com/lib/pq v1.3.0 github.com/stretchr/testify v1.11.1 - golang.org/x/text v0.14.0 + golang.org/x/text v0.40.0 google.golang.org/protobuf v1.33.0 ) require ( github.com/aws/aws-sdk-go v1.51.1 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.16 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.17.7 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.3 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.3 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.3 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.34 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.34 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.5 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.3 // indirect + github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.35 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.15 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.27 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.34 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.35 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.20.2 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.2 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.28.4 // indirect diff --git a/go.sum b/go.sum index f6465d4..e6d5a75 100644 --- a/go.sum +++ b/go.sum @@ -3,8 +3,12 @@ github.com/aws/aws-sdk-go v1.51.1 h1:AFvTihcDPanvptoKS09a4yYmNtPm3+pXlk6uYHmZiFk github.com/aws/aws-sdk-go v1.51.1/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v1.25.3 h1:xYiLpZTQs1mzvz5PaI6uR0Wh57ippuEthxS4iK5v0n0= github.com/aws/aws-sdk-go-v2 v1.25.3/go.mod h1:35hUlJVYd+M++iLI3ALmVwMOyRYMmRqUXpTtRGW+K9I= +github.com/aws/aws-sdk-go-v2 v1.43.3 h1:XJIcfv8uDs2ukdQsoAC8/Ebu1ejxwzlayl2ZsiFns2A= +github.com/aws/aws-sdk-go-v2 v1.43.3/go.mod h1:70vwSy16txshwG+g55WkpgPKDIByzHI8ccBsOteo3bQ= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 h1:gTK2uhtAPtFcdRRJilZPx8uJLL2J85xK11nKtWL0wfU= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1/go.mod h1:sxpLb+nZk7tIfCWChfd+h4QwHNUR57d8hA1cleTkjJo= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.16 h1:aiuaKlDweRC5qExJondpWjOgyzMHpofpwspGXUtwn4c= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.16/go.mod h1:nG/LOlmox9BDe9HvQnXWzgcK8uKbgBMZ/Hp5pVt/21I= github.com/aws/aws-sdk-go-v2/config v1.27.7 h1:JSfb5nOQF01iOgxFI5OIKWwDiEXWTyTgg1Mm1mHi0A4= github.com/aws/aws-sdk-go-v2/config v1.27.7/go.mod h1:PH0/cNpoMO+B04qET699o5W92Ca79fVtbUnvMIZro4I= github.com/aws/aws-sdk-go-v2/credentials v1.17.7 h1:WJd+ubWKoBeRh7A5iNMnxEOs982SyVKOJD+K8HIezu4= @@ -15,22 +19,38 @@ github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.11 h1:QLDOiTR87HT9qViYMD27 github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.11/go.mod h1:vMy68zrZJ6mOjPOYypUtCEEeLtgVlzbqSE4zLBSPpYw= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.3 h1:ifbIbHZyGl1alsAhPIYsHOg5MuApgqOvVeI8wIugXfs= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.3/go.mod h1:oQZXg3c6SNeY6OZrDY+xHcF4VGIEoNotX2B4PrDeoJI= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.34 h1:vuIfjzoeqhQMGJyOBU3t0ZEjn2jrN8Bbg1N4CgjzM5Q= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.34/go.mod h1:hP28cN4CPJLZHirdQPrZR50JcLN4ApRJP2tzG8cRlhY= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.3 h1:Qvodo9gHG9F3E8SfYOspPeBt0bjSbsevK8WhRAUHcoY= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.3/go.mod h1:vCKrdLXtybdf/uQd/YfVR2r5pcbNuEYKzMQpcxmeSJw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.34 h1:9faHsnqxJ1vDvB4wMZy/ajIDyz5QhllQjjc72RJpXAw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.34/go.mod h1:Yp6nIyejpa23nzlB/LhT63KTla9Jdi06nv/HH/OkAH8= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.3 h1:mDnFOE2sVkyphMWtTH+stv0eW3k0OTx94K63xpxHty4= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.3/go.mod h1:V8MuRVcCRt5h1S+Fwu8KbC7l/gBGo3yBAyUbJM2IJOk= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.35 h1:Oe8gMKJLO5awqpa5EhAGKVnBv1s+brdWVuxM2mDa7zA= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.35/go.mod h1:FZevcG9cOST/FWAAUhHIchjR9fXFXFRCWodOhx+PDLA= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 h1:EyBZibRTVAs6ECHZOw5/wlylS9OcTzwyjeQMudmREjE= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1/go.mod h1:JKpmtYhhPs7D97NL/ltqz7yCkERFW5dOlHyVl66ZYF8= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.15 h1:JJLBQxwY+AFwuPAi5ivGc1ChnTdUt4cXMv7e76m2c/Y= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.15/go.mod h1:lQknBIe78MVL0cQOQDlag8KGflMbMEVFx9mB6O8ENvk= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.5 h1:mbWNpfRUTT6bnacmvOTKXZjR/HycibdWzNpfbrbLDIs= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.5/go.mod h1:FCOPWGjsshkkICJIn9hq9xr6dLKtyaWpuUojiN3W1/8= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.27 h1:zwB6ltUc0UiyOsRQaMQ8jNLjKECbjhadCyl4hqV0y/c= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.9.27/go.mod h1:ce9y+Y+hGLUyPKJZZJGoFLuFJNfCNuWZTujUJAsckQA= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.5 h1:K/NXvIftOlX+oGgWGIa3jDyYLDNsdVhsjHmsBH2GLAQ= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.5/go.mod h1:cl9HGLV66EnCmMNzq4sYOti+/xo8w34CsgzVtm2GgsY= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.34 h1:sYg4qHWLqsjp15PzX7XCOHSOgKEGoZ5vQY43VvZ1pas= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.34/go.mod h1:N58SSz3roKf1HzW5qRaOiyk6MbDLTKgLPvlTfJ90iyI= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.3 h1:4t+QEX7BsXz98W8W1lNvMAG+NX8qHz2CjLBxQKku40g= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.3/go.mod h1:oFcjjUq5Hm09N9rpxTdeMeLeQcxS7mIkBkL8qUKng+A= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.35 h1:ohfdSAm4TA6nryIY7mLqe4mnSIAnAreoAPBM81ZVoIM= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.35/go.mod h1:uUjphnxMb3HH3vIiOHl4dH0fGNKL+csjqRQEabbfw5k= github.com/aws/aws-sdk-go-v2/service/s3 v1.52.1 h1:Y/TTvxMdYwNvhzolvneV1wEEN/ncQUSd1AnzFGTMPqM= github.com/aws/aws-sdk-go-v2/service/s3 v1.52.1/go.mod h1:MGTaf3x/+z7ZGugCGvepnx2DS6+caCYYqKhzVoLNYPk= +github.com/aws/aws-sdk-go-v2/service/s3 v1.106.4 h1:nN+nb2rhWmPOMwFA+e6xDJZJ0h/VAI39XVBzn52Fn8A= +github.com/aws/aws-sdk-go-v2/service/s3 v1.106.4/go.mod h1:lWk6L5Q3YkaC7so1bQUJkvF7hj2KUFzdZ4w15wc2GHY= github.com/aws/aws-sdk-go-v2/service/sns v1.29.2 h1:kHm1SYs/NkxZpKINc4zOXOLJHVMzKtU4d7FlAMtDm50= github.com/aws/aws-sdk-go-v2/service/sns v1.29.2/go.mod h1:ZIs7/BaYel9NODoYa8PW39o15SFAXDEb4DxOG2It15U= github.com/aws/aws-sdk-go-v2/service/sqs v1.31.2 h1:A9ihuyTKpS8Z1ou/D4ETfOEFMyokA6JjRsgXWTiHvCk= @@ -45,6 +65,8 @@ github.com/aws/aws-sigv4-auth-cassandra-gocql-driver-plugin v1.1.0 h1:EJsHUYgFBV github.com/aws/aws-sigv4-auth-cassandra-gocql-driver-plugin v1.1.0/go.mod h1:AxKuXHc0zv2yYaeueUG7R3ONbcnQIuDj0bkdFmPVRzU= github.com/aws/smithy-go v1.20.1 h1:4SZlSlMr36UEqC7XOyRVb27XMeZubNcBNN+9IgEPIQw= github.com/aws/smithy-go v1.20.1/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= +github.com/aws/smithy-go v1.27.6 h1:0zjT8jgK3jbrTT7JJ3EE6JsMhX8JTrZ+f1sEndYDXrA= +github.com/aws/smithy-go v1.27.6/go.mod h1:YE2RhdIuDbA5E5bTdciG9KrW3+TiEONeUWCqxX9i1Fc= github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYEDvkta6I8/rnYM5gSdSV2tJ6XbZuEtY= github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= @@ -121,6 +143,8 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.40.0 h1:Ub2Z6/xjgF1WrYQz2nuITOEegKFtiIy+rieRJ5lHZKs= +golang.org/x/text v0.40.0/go.mod h1:hpnzDAfGV753zIKo+wk3u1bVKCGPbrnF7+7LBF/UHVY= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= From 97097090058a664feb05ef6f4a668d2d485c39b4 Mon Sep 17 00:00:00 2001 From: Callum Morris Date: Tue, 4 Aug 2026 14:35:25 +1200 Subject: [PATCH 2/2] fix: removed custom AWS endpoint resolver, deprecated and no longer needed, to resolve lint errors --- aws/keyspaces/keyspaces.go | 21 +------------------ aws/s3/s3.go | 43 +++++++++++++++++++------------------- aws/sns/sns.go | 20 +----------------- aws/sqs/sqs.go | 20 +----------------- 4 files changed, 24 insertions(+), 80 deletions(-) diff --git a/aws/keyspaces/keyspaces.go b/aws/keyspaces/keyspaces.go index 3d7b0a3..836fe83 100644 --- a/aws/keyspaces/keyspaces.go +++ b/aws/keyspaces/keyspaces.go @@ -215,26 +215,7 @@ func getConfig() (aws.Config, error) { return aws.Config{}, errors.New("AWS_REGION is not set") } - var cfg aws.Config - var err error - - if awsEndpoint := os.Getenv("AWS_ENDPOINT_URL"); awsEndpoint != "" { - customResolver := aws.EndpointResolverWithOptionsFunc(func(service, region string, options ...interface{}) (aws.Endpoint, error) { - return aws.Endpoint{ - PartitionID: "aws", - URL: awsEndpoint, - HostnameImmutable: true, - }, nil - }) - - cfg, err = config.LoadDefaultConfig( - context.TODO(), - config.WithEndpointResolverWithOptions(customResolver), - ) - } else { - cfg, err = config.LoadDefaultConfig(context.TODO()) - } - + cfg, err := config.LoadDefaultConfig(context.TODO()) if err != nil { return aws.Config{}, err } diff --git a/aws/s3/s3.go b/aws/s3/s3.go index 5989a69..6e33cd3 100644 --- a/aws/s3/s3.go +++ b/aws/s3/s3.go @@ -36,7 +36,7 @@ func New() (S3, error) { if err != nil { return S3{}, err } - return S3{client: s3.NewFromConfig(cfg)}, nil + return S3{client: newFromConfig(cfg)}, nil } // NewWithMaxRetries returns the same as New(), but with the @@ -46,7 +46,7 @@ func NewWithMaxRetries(maxRetries int) (S3, error) { if err != nil { return S3{}, err } - client := s3.NewFromConfig(cfg, func(options *s3.Options) { + client := newFromConfig(cfg, func(options *s3.Options) { options.Retryer = retry.AddWithMaxAttempts(options.Retryer, maxRetries) }) return S3{client: client}, nil @@ -59,7 +59,7 @@ func NewWithOptions(optFns ...func(*s3.Options)) (S3, error) { if err != nil { return S3{}, err } - client := s3.NewFromConfig(cfg, optFns...) + client := newFromConfig(cfg, optFns...) return S3{client: client}, nil } @@ -90,31 +90,30 @@ func getConfig() (aws.Config, error) { return aws.Config{}, errors.New("AWS_REGION is not set") } - var cfg aws.Config - var err error - - if awsEndpoint := os.Getenv("AWS_ENDPOINT_URL"); awsEndpoint != "" { - customResolver := aws.EndpointResolverWithOptionsFunc(func(service, region string, options ...interface{}) (aws.Endpoint, error) { - return aws.Endpoint{ - PartitionID: "aws", - URL: awsEndpoint, - HostnameImmutable: true, - }, nil - }) - - cfg, err = config.LoadDefaultConfig( - context.TODO(), - config.WithEndpointResolverWithOptions(customResolver)) - } else { - cfg, err = config.LoadDefaultConfig(context.TODO()) - } - + cfg, err := config.LoadDefaultConfig(context.TODO()) if err != nil { return aws.Config{}, err } return cfg, nil } +// newFromConfig adds the UsePathStyle option to the list of options given (if +// the AWS_ENDPOINT_URL env var is set), and returns a Client. This is to support +// the usage of LocalStack for tests. +func newFromConfig(config aws.Config, optFns ...func(*s3.Options)) *s3.Client { + + if awsEndpoint := os.Getenv("AWS_ENDPOINT_URL"); awsEndpoint != "" { + customResolver := func(options *s3.Options) { + options.UsePathStyle = true + } + optFns = append(optFns, customResolver) + } + + client := s3.NewFromConfig(config, optFns...) + + return client +} + // Ready returns whether the S3 client has been initialised. func (s *S3) Ready() bool { return s.client != nil diff --git a/aws/sns/sns.go b/aws/sns/sns.go index b179ae0..58ab32f 100644 --- a/aws/sns/sns.go +++ b/aws/sns/sns.go @@ -47,25 +47,7 @@ func getConfig() (aws.Config, error) { return aws.Config{}, errors.New("AWS_REGION is not set") } - var cfg aws.Config - var err error - - if awsEndpoint := os.Getenv("AWS_ENDPOINT_URL"); awsEndpoint != "" { - customResolver := aws.EndpointResolverWithOptionsFunc(func(service, region string, options ...interface{}) (aws.Endpoint, error) { - return aws.Endpoint{ - PartitionID: "aws", - SigningRegion: region, - URL: awsEndpoint, - }, nil - }) - - cfg, err = config.LoadDefaultConfig( - context.TODO(), - config.WithEndpointResolverWithOptions(customResolver)) - } else { - cfg, err = config.LoadDefaultConfig(context.TODO()) - } - + cfg, err := config.LoadDefaultConfig(context.TODO()) if err != nil { return aws.Config{}, err } diff --git a/aws/sqs/sqs.go b/aws/sqs/sqs.go index ca7eba4..0d76c69 100644 --- a/aws/sqs/sqs.go +++ b/aws/sqs/sqs.go @@ -62,25 +62,7 @@ func getConfig() (aws.Config, error) { return aws.Config{}, errors.New("AWS_REGION is not set") } - var cfg aws.Config - var err error - - if awsEndpoint := os.Getenv("AWS_ENDPOINT_URL"); awsEndpoint != "" { - customResolver := aws.EndpointResolverWithOptionsFunc(func(service, region string, options ...interface{}) (aws.Endpoint, error) { - return aws.Endpoint{ - PartitionID: "aws", - SigningRegion: region, - URL: awsEndpoint, - }, nil - }) - - cfg, err = config.LoadDefaultConfig( - context.TODO(), - config.WithEndpointResolverWithOptions(customResolver)) - } else { - cfg, err = config.LoadDefaultConfig(context.TODO()) - } - + cfg, err := config.LoadDefaultConfig(context.TODO()) if err != nil { return aws.Config{}, err }