Files
authorizer/server/main.go

84 lines
2.5 KiB
Go
Raw Permalink Normal View History

package main
import (
"flag"
2022-05-13 00:47:01 +05:30
2022-05-30 11:54:16 +05:30
"github.com/authorizerdev/authorizer/server/cli"
"github.com/authorizerdev/authorizer/server/constants"
2021-07-28 11:53:37 +05:30
"github.com/authorizerdev/authorizer/server/db"
2021-12-20 17:33:11 +05:30
"github.com/authorizerdev/authorizer/server/env"
"github.com/authorizerdev/authorizer/server/logs"
2022-05-27 23:20:38 +05:30
"github.com/authorizerdev/authorizer/server/memorystore"
2021-07-23 21:57:44 +05:30
"github.com/authorizerdev/authorizer/server/oauth"
"github.com/authorizerdev/authorizer/server/refs"
2022-01-17 11:32:13 +05:30
"github.com/authorizerdev/authorizer/server/routes"
2022-11-17 10:35:38 +05:30
"github.com/sirupsen/logrus"
)
2022-10-21 11:19:32 +05:30
// VERSION is used to define the version of authorizer from build tags
2021-12-24 17:47:35 +05:30
var VERSION string
func main() {
2022-05-30 11:54:16 +05:30
cli.ARG_DB_URL = flag.String("database_url", "", "Database connection string")
cli.ARG_DB_TYPE = flag.String("database_type", "", "Database type, possible values are postgres,mysql,sqlite")
cli.ARG_ENV_FILE = flag.String("env_file", "", "Env file path")
cli.ARG_LOG_LEVEL = flag.String("log_level", "", "Log level, possible values are debug,info,warn,error,fatal,panic")
2022-05-31 08:14:03 +05:30
cli.ARG_REDIS_URL = flag.String("redis_url", "", "Redis connection string")
2022-05-25 15:04:26 +05:30
flag.Parse()
2022-11-17 10:35:38 +05:30
// global log level
logrus.SetFormatter(logs.LogUTCFormatter{&logrus.JSONFormatter{}})
2022-05-27 23:20:38 +05:30
2022-03-09 18:55:18 +05:30
constants.VERSION = VERSION
2021-12-24 17:47:35 +05:30
2022-05-27 23:20:38 +05:30
// initialize required envs (mainly db, env file path and redis)
err := memorystore.InitRequiredEnv()
2022-02-26 10:06:26 +05:30
if err != nil {
2022-11-17 10:35:38 +05:30
logrus.Fatal("Error while initializing required envs: ", err)
2022-02-26 10:06:26 +05:30
}
2022-11-17 10:35:38 +05:30
log := logs.InitLog(refs.StringValue(cli.ARG_LOG_LEVEL))
2022-05-27 23:20:38 +05:30
// initialize memory store
err = memorystore.InitMemStore()
if err != nil {
log.Fatal("Error while initializing memory store: ", err)
}
2022-02-26 09:44:55 +05:30
// initialize db provider
2022-02-26 10:06:26 +05:30
err = db.InitDB()
if err != nil {
2022-05-25 12:30:22 +05:30
log.Fatalln("Error while initializing db: ", err)
2022-02-26 10:06:26 +05:30
}
2022-02-26 09:44:55 +05:30
// initialize all envs
2022-02-26 10:06:26 +05:30
// (get if present from db else construct from os env + defaults)
err = env.InitAllEnv()
if err != nil {
log.Fatalln("Error while initializing env: ", err)
}
2022-02-26 09:44:55 +05:30
// persist all envs
2022-02-26 10:06:26 +05:30
err = env.PersistEnv()
2022-02-26 09:44:55 +05:30
if err != nil {
2022-05-25 12:30:22 +05:30
log.Fatalln("Error while persisting env: ", err)
2022-02-26 09:44:55 +05:30
}
2021-12-31 13:52:10 +05:30
2022-02-26 10:06:26 +05:30
// initialize oauth providers based on env
err = oauth.InitOAuth()
if err != nil {
2022-05-25 12:30:22 +05:30
log.Fatalln("Error while initializing oauth: ", err)
2022-02-26 10:06:26 +05:30
}
2022-05-25 15:04:26 +05:30
router := routes.InitRouter(log)
2022-05-13 00:47:01 +05:30
log.Info("Starting Authorizer: ", VERSION)
2022-05-30 11:54:16 +05:30
port, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyPort)
2022-08-30 23:35:43 +05:30
log.Info("Authorizer running at PORT: ", port)
2022-05-30 11:54:16 +05:30
if err != nil {
log.Info("Error while getting port from env using default port 8080: ", err)
port = "8080"
}
router.Run(":" + port)
}