Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • zl-test
  • v0.9.2
  • v0.9.1
  • v0.9.0
  • v0.8.5
  • v0.8.4
  • v0.8.3
  • v0.8.2
  • v0.8.1
  • v0.8.0
  • v0.7.2
  • v0.7.1
  • v0.7.0
  • v0.6.3
  • v0.6.2
  • v0.6.1
  • v0.6.0
  • v0.5.0
  • v0.4.2
  • v0.4.1
  • v0.4.0
22 results

settings.go

  • Tomaz Lovrec's avatar
    a4789fc0
    parse the user JWT from auth api · a4789fc0
    Tomaz Lovrec authored
    The Auth API has recently switched to a more secure shared-key signed
    JWT to transmit user information to downstream services instead of a
    plain JSON in order to allow the consumers to verify the token issuer.
    Verified
    a4789fc0
    History
    parse the user JWT from auth api
    Tomaz Lovrec authored
    The Auth API has recently switched to a more secure shared-key signed
    JWT to transmit user information to downstream services instead of a
    plain JSON in order to allow the consumers to verify the token issuer.
settings.go 1.79 KiB
package settings

import (
	"cmp"
	"fmt"
	"os"

	"github.com/rs/zerolog"

	postgresdbComponent "gitlab.com/slax0rr/go-lmu-setup-api/pkg/bootstrapify-components-contrib/postgresdb"
	"gitlab.com/slax0rr/go-lmu-setup-api/pkg/env"
)

const (
	defaultServiceName        string        = "go-lmu-setup-api"
	defaultLogLevel           zerolog.Level = zerolog.DebugLevel
	defaultPort               int           = 8000
	defaultDatabasePort       uint          = 5432
	defaultStoreLocation      string        = "./setup_store/"
	defaultMigrationsLocation string        = "./db/migrations/"
	defaultUserTokenHeader    string        = "X-AuthAPI-UserToken"
)

var (
	ServiceName string
	ServerPort  int
	LogLevel    zerolog.Level

	DatabaseDSN        string
	StoreLocation      string
	MigrationsLocation string

	UserTokenHeader     string
	EncodedUserTokenKey []byte
)

func Configure() error {
	ServiceName = cmp.Or(os.Getenv("SERVICE_NAME"), defaultServiceName)
	ServerPort = int(env.GetInt64OrDefault("SERVER_PORT", int64(defaultPort)))
	UserTokenHeader = defaultUserTokenHeader

	DatabaseDSN = cmp.Or(os.Getenv("DATABASE_DSN"), postgresdbComponent.BuildDSN(
		os.Getenv("DATABASE_USER"),
		os.Getenv("DATABASE_PASSWORD"),
		os.Getenv("DATABASE_HOST"),
		os.Getenv("DATABASE_NAME"),
		uint(env.GetUintOrDefault("DATABASE_PORT", uint64(defaultDatabasePort))),
	).String())

	level, err := zerolog.ParseLevel(cmp.Or(os.Getenv("LOG_LEVEL"),
		defaultLogLevel.String()))
	if err != nil {
		return fmt.Errorf("parse log level: %w", err)
	}
	zerolog.SetGlobalLevel(level)
	LogLevel = level

	StoreLocation = cmp.Or(os.Getenv("STORE_LOCATION"), defaultStoreLocation)
	MigrationsLocation = cmp.Or(os.Getenv("DB_MIGRATIONS_LOCATION"),
		defaultMigrationsLocation)

	EncodedUserTokenKey = []byte(os.Getenv("USER_TOKEN_ENCODED_KEY"))

	return nil
}