fix: make env vars name more persistent

This commit is contained in:
Lakhan Samani 2022-10-20 16:27:00 +05:30
parent 844e867d96
commit 1ac060136a
3 changed files with 32 additions and 22 deletions

View File

@ -22,11 +22,11 @@ const (
// EnvKeyDatabaseURL key for env variable DATABASE_URL
EnvKeyDatabaseURL = "DATABASE_URL"
// EnvAwsRegion key for env variable AWS REGION
EnvAwsRegion = "REGION"
// EnvAwsAccessKey key for env variable AWS_ACCESS_KEY
EnvAwsAccessKey = "AWS_ACCESS_KEY"
// EnvAwsAccessKey key for env variable AWS_SECRET_KEY
EnvAwsSecretKey = "AWS_SECRET_KEY"
EnvAwsRegion = "AWS_REGION"
// EnvAwsAccessKeyID key for env variable AWS_ACCESS_KEY_ID
EnvAwsAccessKeyID = "AWS_ACCESS_KEY_ID"
// EnvAwsAccessKey key for env variable AWS_SECRET_ACCESS_KEY
EnvAwsSecretAccessKey = "AWS_SECRET_ACCESS_KEY"
// EnvKeyDatabaseName key for env variable DATABASE_NAME
EnvKeyDatabaseName = "DATABASE_NAME"
// EnvKeyDatabaseUsername key for env variable DATABASE_USERNAME

View File

@ -1,16 +1,18 @@
package dynamodb
import (
"fmt"
"os"
"github.com/authorizerdev/authorizer/server/constants"
"github.com/authorizerdev/authorizer/server/db/models"
"github.com/authorizerdev/authorizer/server/memorystore"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/guregu/dynamo"
log "github.com/sirupsen/logrus"
"github.com/authorizerdev/authorizer/server/constants"
"github.com/authorizerdev/authorizer/server/db/models"
"github.com/authorizerdev/authorizer/server/memorystore"
)
type provider struct {
@ -21,8 +23,8 @@ type provider struct {
func NewProvider() (*provider, error) {
dbURL := memorystore.RequiredEnvStoreObj.GetRequiredEnv().DatabaseURL
awsRegion := os.Getenv(constants.EnvAwsRegion)
accessKey := os.Getenv(constants.EnvAwsAccessKey)
secretKey := os.Getenv(constants.EnvAwsSecretKey)
accessKey := os.Getenv(constants.EnvAwsAccessKeyID)
secretKey := os.Getenv(constants.EnvAwsSecretAccessKey)
config := aws.Config{
MaxRetries: aws.Int(3),
@ -33,6 +35,16 @@ func NewProvider() (*provider, error) {
config.Region = aws.String(awsRegion)
}
if accessKey == "" {
log.Debugf("%s not found", constants.EnvAwsAccessKeyID)
return nil, fmt.Errorf("invalid aws credentials. %s not found", constants.EnvAwsAccessKeyID)
}
if secretKey == "" {
log.Debugf("%s not found", constants.EnvAwsSecretAccessKey)
return nil, fmt.Errorf("invalid aws credentials. %s not found", constants.EnvAwsSecretAccessKey)
}
// custom accessKey, secretkey took first priority, if not then fetch config from aws credentials
if accessKey != "" && secretKey != "" {
config.Credentials = credentials.NewStaticCredentials(accessKey, secretKey, "")
@ -40,8 +52,6 @@ func NewProvider() (*provider, error) {
// static config in case of testing or local-setup
config.Credentials = credentials.NewStaticCredentials("key", "key", "")
config.Endpoint = aws.String(dbURL)
} else {
log.Info("REGION, AWS_ACCESS_KEY and AWS_SECRET_KEY not found in .env, trying to load default profile from aws credentials")
}
session := session.Must(session.NewSession(&config))

20
server/env/env.go vendored
View File

@ -78,8 +78,8 @@ func InitAllEnv() error {
osOrganizationName := os.Getenv(constants.EnvKeyOrganizationName)
osOrganizationLogo := os.Getenv(constants.EnvKeyOrganizationLogo)
osAwsRegion := os.Getenv(constants.EnvAwsRegion)
osAwsAccessKey := os.Getenv(constants.EnvAwsAccessKey)
osAwsSecretKey := os.Getenv(constants.EnvAwsSecretKey)
osAwsAccessKey := os.Getenv(constants.EnvAwsAccessKeyID)
osAwsSecretKey := os.Getenv(constants.EnvAwsSecretAccessKey)
// os bool vars
osAppCookieSecure := os.Getenv(constants.EnvKeyAppCookieSecure)
@ -129,18 +129,18 @@ func InitAllEnv() error {
envData[constants.EnvAwsRegion] = osAwsRegion
}
if val, ok := envData[constants.EnvAwsAccessKey]; !ok || val == "" {
envData[constants.EnvAwsAccessKey] = osAwsAccessKey
if val, ok := envData[constants.EnvAwsAccessKeyID]; !ok || val == "" {
envData[constants.EnvAwsAccessKeyID] = osAwsAccessKey
}
if osAwsAccessKey != "" && envData[constants.EnvAwsAccessKey] != osAwsRegion {
envData[constants.EnvAwsAccessKey] = osAwsAccessKey
if osAwsAccessKey != "" && envData[constants.EnvAwsAccessKeyID] != osAwsRegion {
envData[constants.EnvAwsAccessKeyID] = osAwsAccessKey
}
if val, ok := envData[constants.EnvAwsSecretKey]; !ok || val == "" {
envData[constants.EnvAwsSecretKey] = osAwsSecretKey
if val, ok := envData[constants.EnvAwsSecretAccessKey]; !ok || val == "" {
envData[constants.EnvAwsSecretAccessKey] = osAwsSecretKey
}
if osAwsSecretKey != "" && envData[constants.EnvAwsSecretKey] != osAwsRegion {
envData[constants.EnvAwsSecretKey] = osAwsSecretKey
if osAwsSecretKey != "" && envData[constants.EnvAwsSecretAccessKey] != osAwsRegion {
envData[constants.EnvAwsSecretAccessKey] = osAwsSecretKey
}
if val, ok := envData[constants.EnvKeyAppURL]; !ok || val == "" {