From b22f0d6abfddc97325ae472a45307bb03aa9cb7f Mon Sep 17 00:00:00 2001
From: jano3 <jano@bob.co.za>
Date: Thu, 10 Oct 2024 09:21:10 +0200
Subject: [PATCH] Allow getting S3 credentials from environment variables

---
 secrets_manager/secrets_manager.go | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/secrets_manager/secrets_manager.go b/secrets_manager/secrets_manager.go
index 9a4e99b..102e351 100644
--- a/secrets_manager/secrets_manager.go
+++ b/secrets_manager/secrets_manager.go
@@ -51,15 +51,23 @@ func GetDatabaseCredentials(secretID string, isDebug bool) (DatabaseCredentials,
 }
 
 func GetS3UploadCredentialsProvider(secretID string, isDebug bool) (credentials.StaticCredentialsProvider, error) {
-	secret, _ := GetSecret(secretID, isDebug)
 	var secretValue S3UploadCredentials
-	err := struct_utils.UnmarshalJSON([]byte(secret), &secretValue)
-	if err != nil {
-		return credentials.StaticCredentialsProvider{}, err
+	if secretID != "" {
+		secret, _ := GetSecret(secretID, isDebug)
+		err := struct_utils.UnmarshalJSON([]byte(secret), &secretValue)
+		if err != nil {
+			return credentials.StaticCredentialsProvider{}, err
+		}
+	}
+
+	// Attempt to get credentials from the environment variables if not set in the secret
+	if secretValue.AccessKeyID == "" && secretValue.SecretKey == "" {
+		secretValue.AccessKeyID = os.Getenv("AWS_ACCESS_KEY")
+		secretValue.SecretKey = os.Getenv("AWS_SECRET_KEY")
 	}
 
 	if secretValue.AccessKeyID == "" || secretValue.SecretKey == "" {
-		return credentials.StaticCredentialsProvider{}, err
+		return credentials.StaticCredentialsProvider{}, nil
 	}
 
 	return credentials.NewStaticCredentialsProvider(secretValue.AccessKeyID, secretValue.SecretKey, ""), nil
-- 
GitLab