comments resolved for requireEnv, Provider and test env

This commit is contained in:
manoj 2022-10-09 00:49:31 +05:30
parent e37472d498
commit 820d294130
4 changed files with 42 additions and 17 deletions

View File

@ -1,7 +1,6 @@
ENV=test ENV=test
DATABASE_URL=http://localhost:8000 DATABASE_URL=test.db
DATABASE_TYPE=dynamodb DATABASE_TYPE=sqlite
REGION=us-east-1
CUSTOM_ACCESS_TOKEN_SCRIPT="function(user,tokenPayload){var data = tokenPayload;data.extra = {'x-extra-id': user.id};return data;}" CUSTOM_ACCESS_TOKEN_SCRIPT="function(user,tokenPayload){var data = tokenPayload;data.extra = {'x-extra-id': user.id};return data;}"
SMTP_HOST=smtp.mailtrap.io SMTP_HOST=smtp.mailtrap.io
SMTP_PORT=2525 SMTP_PORT=2525

View File

@ -1,12 +1,16 @@
package dynamodb package dynamodb
import ( import (
"os"
"github.com/authorizerdev/authorizer/server/constants"
"github.com/authorizerdev/authorizer/server/db/models" "github.com/authorizerdev/authorizer/server/db/models"
"github.com/authorizerdev/authorizer/server/memorystore" "github.com/authorizerdev/authorizer/server/memorystore"
"github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/aws/session"
"github.com/guregu/dynamo" "github.com/guregu/dynamo"
log "github.com/sirupsen/logrus"
) )
type provider struct { type provider struct {
@ -15,13 +19,18 @@ type provider struct {
// NewProvider returns a new Dynamo provider // NewProvider returns a new Dynamo provider
func NewProvider() (*provider, error) { func NewProvider() (*provider, error) {
region := memorystore.RequiredEnvStoreObj.GetRequiredEnv().REGION
dbURL := memorystore.RequiredEnvStoreObj.GetRequiredEnv().DatabaseURL dbURL := memorystore.RequiredEnvStoreObj.GetRequiredEnv().DatabaseURL
accessKey := memorystore.RequiredEnvStoreObj.GetRequiredEnv().AWS_ACCESS_KEY awsRegion := os.Getenv(constants.EnvAwsRegion)
secretKey := memorystore.RequiredEnvStoreObj.GetRequiredEnv().AWS_SECRET_KEY accessKey := os.Getenv(constants.EnvAwsAccessKey)
secretKey := os.Getenv(constants.EnvAwsSecretKey)
config := aws.Config{ config := aws.Config{
Region: aws.String(region), MaxRetries: aws.Int(3),
MaxRetries: aws.Int(3), CredentialsChainVerboseErrors: aws.Bool(true), // for full error logs
}
if awsRegion != "" {
config.Region = aws.String(awsRegion)
} }
// custom accessKey, secretkey took first priority, if not then fetch config from aws credentials // custom accessKey, secretkey took first priority, if not then fetch config from aws credentials
@ -31,6 +40,8 @@ func NewProvider() (*provider, error) {
// static config in case of testing or local-setup // static config in case of testing or local-setup
config.Credentials = credentials.NewStaticCredentials("key", "key", "") config.Credentials = credentials.NewStaticCredentials("key", "key", "")
config.Endpoint = aws.String(dbURL) 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)) session := session.Must(session.NewSession(&config))

24
server/env/env.go vendored
View File

@ -77,6 +77,9 @@ func InitAllEnv() error {
osResetPasswordURL := os.Getenv(constants.EnvKeyResetPasswordURL) osResetPasswordURL := os.Getenv(constants.EnvKeyResetPasswordURL)
osOrganizationName := os.Getenv(constants.EnvKeyOrganizationName) osOrganizationName := os.Getenv(constants.EnvKeyOrganizationName)
osOrganizationLogo := os.Getenv(constants.EnvKeyOrganizationLogo) osOrganizationLogo := os.Getenv(constants.EnvKeyOrganizationLogo)
osAwsRegion := os.Getenv(constants.EnvAwsRegion)
osAwsAccessKey := os.Getenv(constants.EnvAwsAccessKey)
osAwsSecretKey := os.Getenv(constants.EnvAwsSecretKey)
// os bool vars // os bool vars
osAppCookieSecure := os.Getenv(constants.EnvKeyAppCookieSecure) osAppCookieSecure := os.Getenv(constants.EnvKeyAppCookieSecure)
@ -119,6 +122,27 @@ func InitAllEnv() error {
} }
} }
if val, ok := envData[constants.EnvAwsRegion]; !ok || val == "" {
envData[constants.EnvAwsRegion] = osAwsRegion
}
if osAwsRegion != "" && envData[constants.EnvAwsRegion] != osAwsRegion {
envData[constants.EnvAwsRegion] = osAwsRegion
}
if val, ok := envData[constants.EnvAwsAccessKey]; !ok || val == "" {
envData[constants.EnvAwsAccessKey] = osAwsAccessKey
}
if osAwsAccessKey != "" && envData[constants.EnvAwsAccessKey] != osAwsRegion {
envData[constants.EnvAwsAccessKey] = osAwsAccessKey
}
if val, ok := envData[constants.EnvAwsSecretKey]; !ok || val == "" {
envData[constants.EnvAwsSecretKey] = osAwsSecretKey
}
if osAwsSecretKey != "" && envData[constants.EnvAwsSecretKey] != osAwsRegion {
envData[constants.EnvAwsSecretKey] = osAwsSecretKey
}
if val, ok := envData[constants.EnvKeyAppURL]; !ok || val == "" { if val, ok := envData[constants.EnvKeyAppURL]; !ok || val == "" {
envData[constants.EnvKeyAppURL] = osAppURL envData[constants.EnvKeyAppURL] = osAppURL
} }

View File

@ -16,9 +16,6 @@ import (
// RequiredEnv holds information about required envs // RequiredEnv holds information about required envs
type RequiredEnv struct { type RequiredEnv struct {
EnvPath string `json:"ENV_PATH"` EnvPath string `json:"ENV_PATH"`
REGION string `json:"REGION"`
AWS_ACCESS_KEY string `json:"AWS_ACCESS_KEY"`
AWS_SECRET_KEY string `json:"AWS_SECRET_KEY"`
DatabaseURL string `json:"DATABASE_URL"` DatabaseURL string `json:"DATABASE_URL"`
DatabaseType string `json:"DATABASE_TYPE"` DatabaseType string `json:"DATABASE_TYPE"`
DatabaseName string `json:"DATABASE_NAME"` DatabaseName string `json:"DATABASE_NAME"`
@ -76,9 +73,6 @@ func InitRequiredEnv() error {
log.Infof("using OS env instead of %s file", envPath) log.Infof("using OS env instead of %s file", envPath)
} }
region := os.Getenv(constants.EnvAwsRegion)
awsAccessKey := os.Getenv(constants.EnvAwsAccessKey)
awsSecretKey := os.Getenv(constants.EnvAwsSecretKey)
dbURL := os.Getenv(constants.EnvKeyDatabaseURL) dbURL := os.Getenv(constants.EnvKeyDatabaseURL)
dbType := os.Getenv(constants.EnvKeyDatabaseType) dbType := os.Getenv(constants.EnvKeyDatabaseType)
dbName := os.Getenv(constants.EnvKeyDatabaseName) dbName := os.Getenv(constants.EnvKeyDatabaseName)
@ -134,9 +128,6 @@ func InitRequiredEnv() error {
requiredEnv := RequiredEnv{ requiredEnv := RequiredEnv{
EnvPath: envPath, EnvPath: envPath,
REGION: region,
AWS_ACCESS_KEY: awsAccessKey,
AWS_SECRET_KEY: awsSecretKey,
DatabaseURL: dbURL, DatabaseURL: dbURL,
DatabaseType: dbType, DatabaseType: dbType,
DatabaseName: dbName, DatabaseName: dbName,