Skip to content

Commit 9c9e376

Browse files
mikeeeyaron2
andauthored
fix(common): add missing region and remove session token requirement (#3914)
Signed-off-by: Mike Nguyen <[email protected]> Co-authored-by: Yaron Schneider <[email protected]>
1 parent eb8fefd commit 9c9e376

File tree

7 files changed

+66
-124
lines changed

7 files changed

+66
-124
lines changed

bindings/aws/s3/s3.go

Lines changed: 52 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,17 @@ import (
2424
"net/http"
2525
"os"
2626
"reflect"
27-
"slices"
2827
"strings"
2928
"time"
3029

31-
"github.com/aws/aws-sdk-go-v2/service/s3/types"
3230
"github.com/aws/aws-sdk-go/aws"
33-
awsCommon "github.com/dapr/components-contrib/common/aws"
34-
awsCommonAuth "github.com/dapr/components-contrib/common/aws/auth"
35-
36-
"github.com/aws/aws-sdk-go-v2/feature/s3/manager"
37-
"github.com/aws/aws-sdk-go-v2/service/s3"
31+
"github.com/aws/aws-sdk-go/aws/awserr"
32+
"github.com/aws/aws-sdk-go/service/s3"
33+
"github.com/aws/aws-sdk-go/service/s3/s3manager"
3834
"github.com/google/uuid"
3935

4036
"github.com/dapr/components-contrib/bindings"
37+
awsAuth "github.com/dapr/components-contrib/common/authentication/aws"
4138
commonutils "github.com/dapr/components-contrib/common/utils"
4239
"github.com/dapr/components-contrib/metadata"
4340
"github.com/dapr/kit/logger"
@@ -63,12 +60,9 @@ const (
6360

6461
// AWSS3 is a binding for an AWS S3 storage bucket.
6562
type AWSS3 struct {
66-
metadata *s3Metadata
67-
logger logger.Logger
68-
s3Client *s3.Client
69-
s3Uploader *manager.Uploader
70-
s3Downloader *manager.Downloader
71-
s3PresignClient *s3.PresignClient
63+
metadata *s3Metadata
64+
authProvider awsAuth.Provider
65+
logger logger.Logger
7266
}
7367

7468
type s3Metadata struct {
@@ -112,42 +106,10 @@ func NewAWSS3(logger logger.Logger) bindings.OutputBinding {
112106
return &AWSS3{logger: logger}
113107
}
114108

115-
// Init does metadata parsing and connection creation.
116-
func (s *AWSS3) Init(ctx context.Context, metadata bindings.Metadata) error {
117-
m, err := s.parseMetadata(metadata)
118-
if err != nil {
119-
return err
120-
}
121-
s.metadata = m
122-
123-
authOpts := awsCommonAuth.Options{
124-
Logger: s.logger,
125-
126-
Properties: metadata.Properties,
127-
128-
Region: m.Region,
129-
Endpoint: m.Endpoint,
130-
AccessKey: m.AccessKey,
131-
SecretKey: m.SecretKey,
132-
SessionToken: m.SessionToken,
133-
}
134-
135-
var configOptions []awsCommon.ConfigOption
136-
137-
var s3Options []func(options *s3.Options)
138-
139-
if s.metadata.DisableSSL {
140-
s3Options = append(s3Options, func(options *s3.Options) {
141-
options.EndpointOptions.DisableHTTPS = true
142-
})
143-
}
144-
145-
if !s.metadata.ForcePathStyle {
146-
s3Options = append(s3Options, func(options *s3.Options) {
147-
options.UsePathStyle = true
148-
})
149-
}
109+
func (s *AWSS3) getAWSConfig(opts awsAuth.Options) *aws.Config {
110+
cfg := awsAuth.GetConfig(opts).WithS3ForcePathStyle(s.metadata.ForcePathStyle).WithDisableSSL(s.metadata.DisableSSL)
150111

112+
// Use a custom HTTP client to allow self-signed certs
151113
if s.metadata.InsecureSSL {
152114
customTransport := http.DefaultTransport.(*http.Transport).Clone()
153115
customTransport.TLSClientConfig = &tls.Config{
@@ -157,27 +119,44 @@ func (s *AWSS3) Init(ctx context.Context, metadata bindings.Metadata) error {
157119
client := &http.Client{
158120
Transport: customTransport,
159121
}
160-
configOptions = append(configOptions, awsCommon.WithHTTPClient(client))
122+
cfg = cfg.WithHTTPClient(client)
161123

162124
s.logger.Infof("aws s3: you are using 'insecureSSL' to skip server config verify which is unsafe!")
163125
}
126+
return cfg
127+
}
164128

165-
awsConfig, err := awsCommon.NewConfig(ctx, authOpts, configOptions...)
129+
// Init does metadata parsing and connection creation.
130+
func (s *AWSS3) Init(ctx context.Context, metadata bindings.Metadata) error {
131+
m, err := s.parseMetadata(metadata)
166132
if err != nil {
167-
return fmt.Errorf("s3 binding error: failed to create AWS config: %w", err)
133+
return err
168134
}
135+
s.metadata = m
169136

170-
s.s3Client = s3.NewFromConfig(awsConfig, s3Options...)
171-
172-
s.s3Uploader = manager.NewUploader(s.s3Client)
173-
s.s3Downloader = manager.NewDownloader(s.s3Client)
174-
175-
s.s3PresignClient = s3.NewPresignClient(s.s3Client)
137+
opts := awsAuth.Options{
138+
Logger: s.logger,
139+
Properties: metadata.Properties,
140+
Region: m.Region,
141+
Endpoint: m.Endpoint,
142+
AccessKey: m.AccessKey,
143+
SecretKey: m.SecretKey,
144+
SessionToken: m.SessionToken,
145+
}
146+
// extra configs needed per component type
147+
provider, err := awsAuth.NewProvider(ctx, opts, s.getAWSConfig(opts))
148+
if err != nil {
149+
return err
150+
}
151+
s.authProvider = provider
176152

177153
return nil
178154
}
179155

180156
func (s *AWSS3) Close() error {
157+
if s.authProvider != nil {
158+
return s.authProvider.Close()
159+
}
181160
return nil
182161
}
183162

@@ -236,25 +215,19 @@ func (s *AWSS3) create(ctx context.Context, req *bindings.InvokeRequest) (*bindi
236215
r = b64.NewDecoder(b64.StdEncoding, r)
237216
}
238217

239-
var storageClass types.StorageClass
218+
var storageClass *string
240219
if metadata.StorageClass != "" {
241-
// assert storageclass exists in the types.storageclass.values() slice
242-
storageClass = types.StorageClass(strings.ToUpper(metadata.StorageClass))
243-
if !slices.Contains(storageClass.Values(), storageClass) {
244-
return nil, fmt.Errorf("s3 binding error: invalid storage class '%s' provided", metadata.StorageClass)
245-
}
220+
storageClass = aws.String(metadata.StorageClass)
246221
}
247222

248-
s3UploaderPutObjectInput := &s3.PutObjectInput{
223+
resultUpload, err := s.authProvider.S3().Uploader.UploadWithContext(ctx, &s3manager.UploadInput{
249224
Bucket: ptr.Of(metadata.Bucket),
250225
Key: ptr.Of(key),
251226
Body: r,
252227
ContentType: contentType,
253228
StorageClass: storageClass,
254229
Tagging: tagging,
255-
}
256-
257-
resultUpload, err := s.s3Uploader.Upload(ctx, s3UploaderPutObjectInput)
230+
})
258231
if err != nil {
259232
return nil, fmt.Errorf("s3 binding error: uploading failed: %w", err)
260233
}
@@ -323,21 +296,16 @@ func (s *AWSS3) presignObject(ctx context.Context, bucket, key, ttl string) (str
323296
if err != nil {
324297
return "", fmt.Errorf("s3 binding error: cannot parse duration %s: %w", ttl, err)
325298
}
326-
s3GetObjectInput := &s3.GetObjectInput{
299+
objReq, _ := s.authProvider.S3().S3.GetObjectRequest(&s3.GetObjectInput{
327300
Bucket: ptr.Of(bucket),
328301
Key: ptr.Of(key),
329-
}
330-
331-
presignedObjectRequest, err := s.s3PresignClient.PresignGetObject(
332-
ctx,
333-
s3GetObjectInput,
334-
s3.WithPresignExpires(d),
335-
)
302+
})
303+
url, err := objReq.Presign(d)
336304
if err != nil {
337305
return "", fmt.Errorf("s3 binding error: failed to presign URL: %w", err)
338306
}
339307

340-
return presignedObjectRequest.URL, nil
308+
return url, nil
341309
}
342310

343311
func (s *AWSS3) get(ctx context.Context, req *bindings.InvokeRequest) (*bindings.InvokeResponse, error) {
@@ -352,16 +320,16 @@ func (s *AWSS3) get(ctx context.Context, req *bindings.InvokeRequest) (*bindings
352320
}
353321

354322
buff := &aws.WriteAtBuffer{}
355-
_, err = s.s3Downloader.Download(ctx,
323+
_, err = s.authProvider.S3().Downloader.DownloadWithContext(ctx,
356324
buff,
357325
&s3.GetObjectInput{
358326
Bucket: ptr.Of(s.metadata.Bucket),
359327
Key: ptr.Of(key),
360328
},
361329
)
362330
if err != nil {
363-
var awsErr *types.NoSuchKey
364-
if errors.As(err, &awsErr) {
331+
var awsErr awserr.Error
332+
if errors.As(err, &awsErr) && awsErr.Code() == s3.ErrCodeNoSuchKey {
365333
return nil, errors.New("object not found")
366334
}
367335
return nil, fmt.Errorf("s3 binding error: error downloading S3 object: %w", err)
@@ -386,16 +354,16 @@ func (s *AWSS3) delete(ctx context.Context, req *bindings.InvokeRequest) (*bindi
386354
if key == "" {
387355
return nil, fmt.Errorf("s3 binding error: required metadata '%s' missing", metadataKey)
388356
}
389-
_, err := s.s3Client.DeleteObject(
357+
_, err := s.authProvider.S3().S3.DeleteObjectWithContext(
390358
ctx,
391359
&s3.DeleteObjectInput{
392360
Bucket: ptr.Of(s.metadata.Bucket),
393361
Key: ptr.Of(key),
394362
},
395363
)
396364
if err != nil {
397-
var awsErr *types.NoSuchKey
398-
if errors.As(err, &awsErr) {
365+
var awsErr awserr.Error
366+
if errors.As(err, &awsErr) && awsErr.Code() == s3.ErrCodeNoSuchKey {
399367
return nil, errors.New("object not found")
400368
}
401369
return nil, fmt.Errorf("s3 binding error: delete operation failed: %w", err)
@@ -415,9 +383,9 @@ func (s *AWSS3) list(ctx context.Context, req *bindings.InvokeRequest) (*binding
415383
if payload.MaxResults < 1 {
416384
payload.MaxResults = defaultMaxResults
417385
}
418-
result, err := s.s3Client.ListObjects(ctx, &s3.ListObjectsInput{
386+
result, err := s.authProvider.S3().S3.ListObjectsWithContext(ctx, &s3.ListObjectsInput{
419387
Bucket: ptr.Of(s.metadata.Bucket),
420-
MaxKeys: ptr.Of(payload.MaxResults),
388+
MaxKeys: ptr.Of(int64(payload.MaxResults)),
421389
Marker: ptr.Of(payload.Marker),
422390
Prefix: ptr.Of(payload.Prefix),
423391
Delimiter: ptr.Of(payload.Delimiter),

common/aws/auth/auth_static.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ func newAuthStatic(ctx context.Context, opts Options, configOpts []func(*config.
5151
}
5252

5353
switch {
54-
case static.AccessKey != "" && static.SecretKey != "" && static.SessionToken != "":
54+
case static.AccessKey != "" && static.SecretKey != "":
5555
static.ProviderType = StaticProviderTypeStatic
5656
static.CredentialProvider = credentials.NewStaticCredentialsProvider(opts.AccessKey, opts.SecretKey,
5757
opts.SessionToken)

common/aws/config.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,13 @@ func NewConfig(ctx context.Context, authOptions auth.Options, opts ...ConfigOpti
5454
)
5555
}
5656

57+
if authOptions.Region != "" {
58+
configLoadOptions = append(
59+
configLoadOptions,
60+
config.WithRegion(authOptions.Region),
61+
)
62+
}
63+
5764
if options.HTTPClient != nil {
5865
configLoadOptions = append(
5966
configLoadOptions,

go.mod

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,8 @@ require (
4646
github.com/aws/aws-sdk-go-v2/credentials v1.17.70
4747
github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.19.3
4848
github.com/aws/aws-sdk-go-v2/feature/rds/auth v1.3.10
49-
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.83
5049
github.com/aws/aws-sdk-go-v2/service/bedrockruntime v1.17.3
5150
github.com/aws/aws-sdk-go-v2/service/dynamodb v1.43.4
52-
github.com/aws/aws-sdk-go-v2/service/s3 v1.83.0
5351
github.com/aws/aws-sdk-go-v2/service/sns v1.34.7
5452
github.com/aws/aws-sdk-go-v2/service/sqs v1.38.8
5553
github.com/aws/aws-sdk-go-v2/service/sts v1.34.0
@@ -201,16 +199,13 @@ require (
201199
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 // indirect
202200
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36 // indirect
203201
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
204-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36 // indirect
205202
github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.25.6 // indirect
206203
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 // indirect
207-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.4 // indirect
208204
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.17 // indirect
209205
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17 // indirect
210-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17 // indirect
211206
github.com/aws/aws-sdk-go-v2/service/sso v1.25.5 // indirect
212207
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.3 // indirect
213-
github.com/aws/smithy-go v1.22.4 // indirect
208+
github.com/aws/smithy-go v1.22.5 // indirect
214209
github.com/awslabs/kinesis-aggregation/go v0.0.0-20210630091500-54e17340d32f // indirect
215210
github.com/benbjohnson/clock v1.3.5 // indirect
216211
github.com/beorn7/perks v1.0.1 // indirect

go.sum

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -298,17 +298,13 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.32 h1:KAXP9JSHO1vKGCr5f4O6Wm
298298
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.32/go.mod h1:h4Sg6FQdexC1yYG9RDnOvLbW1a/P986++/Y/a+GyEM8=
299299
github.com/aws/aws-sdk-go-v2/feature/rds/auth v1.3.10 h1:z6fAXB4HSuYjrE/P8RU3NdCaN+EPaeq/+80aisCjuF8=
300300
github.com/aws/aws-sdk-go-v2/feature/rds/auth v1.3.10/go.mod h1:PoPjOi7j+/DtKIGC58HRfcdWKBPYYXwdKnRG+po+hzo=
301-
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.83 h1:08otkOELsIi0toRRGMytlJhOctcN8xfKfKFR2NXz3kE=
302-
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.83/go.mod h1:dGsGb2wI8JDWeMAhjVPP+z+dqvYjL6k6o+EujcRNk5c=
303301
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 h1:SsytQyTMHMDPspp+spo7XwXTP44aJZZAC7fBV2C5+5s=
304302
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36/go.mod h1:Q1lnJArKRXkenyog6+Y+zr7WDpk4e6XlR6gs20bbeNo=
305303
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36 h1:i2vNHQiXUvKhs3quBR6aqlgJaiaexz/aNvdCktW/kAM=
306304
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36/go.mod h1:UdyGa7Q91id/sdyHPwth+043HhmP6yP9MBHgbZM0xo8=
307305
github.com/aws/aws-sdk-go-v2/internal/ini v1.2.4/go.mod h1:ZcBrrI3zBKlhGFNYWvju0I3TR93I7YIgAfy82Fh4lcQ=
308306
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo=
309307
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo=
310-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36 h1:GMYy2EOWfzdP3wfVAGXBNKY5vK4K8vMET4sYOYltmqs=
311-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36/go.mod h1:gDhdAV6wL3PmPqBhiPbnlS447GoWs8HTTOYef9/9Inw=
312308
github.com/aws/aws-sdk-go-v2/service/appconfig v1.4.2/go.mod h1:FZ3HkCe+b10uFZZkFdvf98LHW21k49W8o8J366lqVKY=
313309
github.com/aws/aws-sdk-go-v2/service/bedrockruntime v1.17.3 h1:PtP2Zzf3uy94EsVOW+tB7gNt63fFZEHuS9IRWg5q250=
314310
github.com/aws/aws-sdk-go-v2/service/bedrockruntime v1.17.3/go.mod h1:4zuvYEUJm0Vq8tb3gcb2sl04A9I1AA5DKAefbYPA4VM=
@@ -318,17 +314,11 @@ github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.25.6 h1:QHaS/SHXfyNycuu4
318314
github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.25.6/go.mod h1:He/RikglWUczbkV+fkdpcV/3GdL/rTRNVy7VaUiezMo=
319315
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 h1:CXV68E2dNqhuynZJPB80bhPQwAKqBWVer887figW6Jc=
320316
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4/go.mod h1:/xFi9KtvBXP97ppCz1TAEvU1Uf66qvid89rbem3wCzQ=
321-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.4 h1:nAP2GYbfh8dd2zGZqFRSMlq+/F6cMPBUuCsGAMkN074=
322-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.4/go.mod h1:LT10DsiGjLWh4GbjInf9LQejkYEhBgBCjLG5+lvk4EE=
323317
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.17 h1:x187MqiHwBGjMGAed8Y8K1VGuCtFvQvXb24r+bwmSdo=
324318
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.17/go.mod h1:mC9qMbA6e1pwEq6X3zDGtZRXMG2YaElJkbJlMVHLs5I=
325319
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.3.2/go.mod h1:72HRZDLMtmVQiLG2tLfQcaWLCssELvGl+Zf2WVxMmR8=
326320
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17 h1:t0E6FzREdtCsiLIoLCWsYliNsRBgyGD/MCK571qk4MI=
327321
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17/go.mod h1:ygpklyoaypuyDvOM5ujWGrYWpAK3h7ugnmKCU/76Ys4=
328-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17 h1:qcLWgdhq45sDM9na4cvXax9dyLitn8EYBRl8Ak4XtG4=
329-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17/go.mod h1:M+jkjBFZ2J6DJrjMv2+vkBbuht6kxJYtJiwoVgX4p4U=
330-
github.com/aws/aws-sdk-go-v2/service/s3 v1.83.0 h1:5Y75q0RPQoAbieyOuGLhjV9P3txvYgXv2lg0UwJOfmE=
331-
github.com/aws/aws-sdk-go-v2/service/s3 v1.83.0/go.mod h1:kUklwasNoCn5YpyAqC/97r6dzTA1SRKJfKq16SXeoDU=
332322
github.com/aws/aws-sdk-go-v2/service/sns v1.34.7 h1:OBuZE9Wt8h2imuRktu+WfjiTGrnYdCIJg8IX92aalHE=
333323
github.com/aws/aws-sdk-go-v2/service/sns v1.34.7/go.mod h1:4WYoZAhHt+dWYpoOQUgkUKfuQbE6Gg/hW4oXE0pKS9U=
334324
github.com/aws/aws-sdk-go-v2/service/sqs v1.38.8 h1:80dpSqWMwx2dAm30Ib7J6ucz1ZHfiv5OCRwN/EnCOXQ=
@@ -344,8 +334,8 @@ github.com/aws/aws-sdk-go-v2/service/sts v1.34.0/go.mod h1:7ph2tGpfQvwzgistp2+zg
344334
github.com/aws/rolesanywhere-credential-helper v1.0.4 h1:kHIVVdyQQiFZoKBP+zywBdFilGCS8It+UvW5LolKbW8=
345335
github.com/aws/rolesanywhere-credential-helper v1.0.4/go.mod h1:QVGNxlDlYhjR0/ZUee7uGl0hNChWidNpe2+GD87Buqk=
346336
github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E=
347-
github.com/aws/smithy-go v1.22.4 h1:uqXzVZNuNexwc/xrh6Tb56u89WDlJY6HS+KC0S4QSjw=
348-
github.com/aws/smithy-go v1.22.4/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI=
337+
github.com/aws/smithy-go v1.22.5 h1:P9ATCXPMb2mPjYBgueqJNCA5S9UfktsW0tTxi+a7eqw=
338+
github.com/aws/smithy-go v1.22.5/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI=
349339
github.com/awslabs/kinesis-aggregation/go v0.0.0-20210630091500-54e17340d32f h1:Pf0BjJDga7C98f0vhw+Ip5EaiE07S3lTKpIYPNS0nMo=
350340
github.com/awslabs/kinesis-aggregation/go v0.0.0-20210630091500-54e17340d32f/go.mod h1:SghidfnxvX7ribW6nHI7T+IBbc9puZ9kk5Tx/88h8P4=
351341
github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=

tests/certification/go.mod

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,32 +85,26 @@ require (
8585
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
8686
github.com/aws/aws-msk-iam-sasl-signer-go v1.0.1-0.20241125194140-078c08b8574a // indirect
8787
github.com/aws/aws-sdk-go-v2 v1.36.5 // indirect
88-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.11 // indirect
8988
github.com/aws/aws-sdk-go-v2/config v1.29.17 // indirect
9089
github.com/aws/aws-sdk-go-v2/credentials v1.17.70 // indirect
9190
github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue v1.19.3 // indirect
9291
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.32 // indirect
9392
github.com/aws/aws-sdk-go-v2/feature/rds/auth v1.3.10 // indirect
94-
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.83 // indirect
9593
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.36 // indirect
9694
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.36 // indirect
9795
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
98-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36 // indirect
9996
github.com/aws/aws-sdk-go-v2/service/dynamodb v1.43.4 // indirect
10097
github.com/aws/aws-sdk-go-v2/service/dynamodbstreams v1.25.6 // indirect
10198
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.4 // indirect
102-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.4 // indirect
10399
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.10.17 // indirect
104100
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.17 // indirect
105-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17 // indirect
106-
github.com/aws/aws-sdk-go-v2/service/s3 v1.83.0 // indirect
107101
github.com/aws/aws-sdk-go-v2/service/sns v1.34.7 // indirect
108102
github.com/aws/aws-sdk-go-v2/service/sqs v1.38.8 // indirect
109103
github.com/aws/aws-sdk-go-v2/service/sso v1.25.5 // indirect
110104
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.3 // indirect
111105
github.com/aws/aws-sdk-go-v2/service/sts v1.34.0 // indirect
112106
github.com/aws/rolesanywhere-credential-helper v1.0.4 // indirect
113-
github.com/aws/smithy-go v1.22.4 // indirect
107+
github.com/aws/smithy-go v1.22.5 // indirect
114108
github.com/benbjohnson/clock v1.3.5 // indirect
115109
github.com/beorn7/perks v1.0.1 // indirect
116110
github.com/bits-and-blooms/bitset v1.4.0 // indirect

0 commit comments

Comments
 (0)