Skip to content

Commit 4f25ce4

Browse files
committed
fix(aws): Some inputs are not longer required
Signed-off-by: Julio Jimenez <julio@clickhouse.com>
1 parent 96277d6 commit 4f25ce4

4 files changed

Lines changed: 23 additions & 50 deletions

File tree

cmd/clickbom/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func run() error {
4545
}()
4646

4747
// Initialize S3 client
48-
s3Client, err := storage.NewS3Client(ctx, cfg.AWSAccessKeyID, cfg.AWSSecretAccessKey, cfg.AWSRegion)
48+
s3Client, err := storage.NewS3Client(ctx)
4949
if err != nil {
5050
return fmt.Errorf("failed to create S3 client: %w", err)
5151
}

internal/config/config.go

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -70,11 +70,8 @@ type Config struct {
7070
func LoadConfig() (*Config, error) {
7171
cfg := &Config{
7272
// AWS (required)
73-
AWSAccessKeyID: os.Getenv("AWS_ACCESS_KEY_ID"),
74-
AWSSecretAccessKey: os.Getenv("AWS_SECRET_ACCESS_KEY"),
75-
AWSRegion: getEnvOrDefault("AWS_DEFAULT_REGION", "us-east-1"),
76-
S3Bucket: os.Getenv("S3_BUCKET"),
77-
S3Key: getEnvOrDefault("S3_KEY", "sbom.json"),
73+
S3Bucket: os.Getenv("S3_BUCKET"),
74+
S3Key: getEnvOrDefault("S3_KEY", "sbom.json"),
7875

7976
// GitHub
8077
GitHubToken: os.Getenv("GITHUB_TOKEN"),
@@ -139,12 +136,6 @@ func LoadConfig() (*Config, error) {
139136
// Validate checks that all required configuration fields are set appropriately.
140137
func (c *Config) Validate() error {
141138
// AWS is always required
142-
if c.AWSAccessKeyID == "" {
143-
return fmt.Errorf("AWS_ACCESS_KEY_ID is required")
144-
}
145-
if c.AWSSecretAccessKey == "" {
146-
return fmt.Errorf("AWS_SECRET_ACCESS_KEY is required")
147-
}
148139
if c.S3Bucket == "" {
149140
return fmt.Errorf("S3_BUCKET is required")
150141
}

internal/config/config_test.go

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -14,30 +14,24 @@ func TestLoadConfig(t *testing.T) {
1414
{
1515
name: "valid minimal config",
1616
env: map[string]string{
17-
"AWS_ACCESS_KEY_ID": "test-key",
18-
"AWS_SECRET_ACCESS_KEY": "test-secret",
19-
"S3_BUCKET": "test-bucket",
20-
"REPOSITORY": "owner/repo",
17+
"S3_BUCKET": "test-bucket",
18+
"REPOSITORY": "owner/repo",
2119
},
2220
wantErr: false,
2321
},
2422
{
2523
name: "missing required field",
2624
env: map[string]string{
27-
"AWS_ACCESS_KEY_ID": "test-key",
28-
// Missing AWS_SECRET_ACCESS_KEY
29-
"S3_BUCKET": "test-bucket",
25+
// Missing S3_BUCKET
3026
"REPOSITORY": "owner/repo",
3127
},
3228
wantErr: true,
3329
},
3430
{
3531
name: "invalid repository format",
3632
env: map[string]string{
37-
"AWS_ACCESS_KEY_ID": "test-key",
38-
"AWS_SECRET_ACCESS_KEY": "test-secret",
39-
"S3_BUCKET": "test-bucket",
40-
"REPOSITORY": "invalid-repo", // No slash
33+
"S3_BUCKET": "test-bucket",
34+
"REPOSITORY": "invalid-repo", // No slash
4135
},
4236
wantErr: true,
4337
},
@@ -79,35 +73,29 @@ func TestConfigValidate(t *testing.T) {
7973
{
8074
name: "valid github config",
8175
config: &Config{
82-
AWSAccessKeyID: "key",
83-
AWSSecretAccessKey: "secret",
84-
S3Bucket: "bucket",
85-
Repository: "owner/repo",
86-
SBOMSource: "github",
76+
S3Bucket: "bucket",
77+
Repository: "owner/repo",
78+
SBOMSource: "github",
8779
},
8880
wantErr: false,
8981
},
9082
{
9183
name: "valid mend config",
9284
config: &Config{
93-
AWSAccessKeyID: "key",
94-
AWSSecretAccessKey: "secret",
95-
S3Bucket: "bucket",
96-
SBOMSource: "mend",
97-
MendEmail: "test@example.com",
98-
MendOrgUUID: "123e4567-e89b-12d3-a456-426614174000",
99-
MendUserKey: "user-key",
100-
MendProjectUUID: "123e4567-e89b-12d3-a456-426614174001",
85+
S3Bucket: "bucket",
86+
SBOMSource: "mend",
87+
MendEmail: "test@example.com",
88+
MendOrgUUID: "123e4567-e89b-12d3-a456-426614174000",
89+
MendUserKey: "user-key",
90+
MendProjectUUID: "123e4567-e89b-12d3-a456-426614174001",
10191
},
10292
wantErr: false,
10393
},
10494
{
10595
name: "invalid mend config - missing email",
10696
config: &Config{
107-
AWSAccessKeyID: "key",
108-
AWSSecretAccessKey: "secret",
109-
S3Bucket: "bucket",
110-
SBOMSource: "mend",
97+
S3Bucket: "bucket",
98+
SBOMSource: "mend",
11199
// Missing MendEmail
112100
MendOrgUUID: "123e4567-e89b-12d3-a456-426614174000",
113101
MendUserKey: "user-key",

internal/storage/s3.go

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ import (
99

1010
"github.com/aws/aws-sdk-go-v2/aws"
1111
"github.com/aws/aws-sdk-go-v2/config"
12-
"github.com/aws/aws-sdk-go-v2/credentials"
12+
13+
// "github.com/aws/aws-sdk-go-v2/credentials"
1314
"github.com/aws/aws-sdk-go-v2/service/s3"
1415

1516
"github.com/ClickHouse/ClickBOM/pkg/logger"
@@ -21,15 +22,8 @@ type S3Client struct {
2122
}
2223

2324
// NewS3Client creates a new S3Client with the provided AWS credentials and region.
24-
func NewS3Client(ctx context.Context, accessKeyID, secretAccessKey, region string) (*S3Client, error) {
25-
cfg, err := config.LoadDefaultConfig(ctx,
26-
config.WithRegion(region),
27-
config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider(
28-
accessKeyID,
29-
secretAccessKey,
30-
"",
31-
)),
32-
)
25+
func NewS3Client(ctx context.Context) (*S3Client, error) {
26+
cfg, err := config.LoadDefaultConfig(ctx)
3327
if err != nil {
3428
return nil, fmt.Errorf("failed to load AWS config: %w", err)
3529
}

0 commit comments

Comments
 (0)