Feat #43: Add CLI command for the backends #11
3 changed files with 18 additions and 22 deletions
|
@ -1,4 +1,4 @@
|
||||||
package cmd
|
package serve
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
@ -6,12 +6,12 @@ import (
|
||||||
"os/signal"
|
"os/signal"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/config"
|
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/cmd"
|
||||||
|
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/cmd/utils"
|
||||||
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/connector"
|
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/connector"
|
||||||
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/logger"
|
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/logger"
|
||||||
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/server"
|
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/server"
|
||||||
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/services"
|
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/services"
|
||||||
"github.com/dexidp/dex/connector/oidc"
|
|
||||||
dex_server "github.com/dexidp/dex/server"
|
dex_server "github.com/dexidp/dex/server"
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
@ -35,18 +35,11 @@ variables`,
|
||||||
func serve() {
|
func serve() {
|
||||||
mainCtx, cancel := context.WithCancel(context.Background())
|
mainCtx, cancel := context.WithCancel(context.Background())
|
||||||
|
|
||||||
conf, err := config.New(configPath)
|
conf := utils.InitConfig(configPath)
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.Init(conf.LogLevel)
|
logger.Init(conf.LogLevel)
|
||||||
logger.L.Infof("Initialized logger with level %v", conf.LogLevel)
|
logger.L.Infof("Initialized logger with level %v", conf.LogLevel)
|
||||||
|
|
||||||
storageType, err := services.InitStorage(conf)
|
storageType := utils.InitStorage(conf)
|
||||||
if err != nil {
|
|
||||||
logger.L.Fatalf("Failed to initialize storage backend: %s", err.Error())
|
|
||||||
}
|
|
||||||
logger.L.Infof("Initialized storage backend %q", conf.StorageType)
|
logger.L.Infof("Initialized storage backend %q", conf.StorageType)
|
||||||
dexConf := dex_server.Config{
|
dexConf := dex_server.Config{
|
||||||
Web: dex_server.WebConfig{
|
Web: dex_server.WebConfig{
|
||||||
|
@ -64,7 +57,7 @@ func serve() {
|
||||||
|
|
||||||
logger.L.Info("Initializing authentication backends")
|
logger.L.Info("Initializing authentication backends")
|
||||||
|
|
||||||
dex_server.ConnectorsConfig["refuseAll"] = func() dex_server.ConnectorConfig { return new(connector.RefuseAllConfig) }
|
dex_server.ConnectorsConfig[connector.TypeRefuseAll] = func() dex_server.ConnectorConfig { return new(connector.RefuseAllConfig) }
|
||||||
connectors, err := dexConf.Storage.ListConnectors()
|
connectors, err := dexConf.Storage.ListConnectors()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.L.Fatalf("Failed to get existing connectors: %s", err.Error())
|
logger.L.Fatalf("Failed to get existing connectors: %s", err.Error())
|
||||||
|
@ -74,14 +67,7 @@ func serve() {
|
||||||
connectorIDs = append(connectorIDs, conn.ID)
|
connectorIDs = append(connectorIDs, conn.ID)
|
||||||
}
|
}
|
||||||
|
|
||||||
backend := config.BackendConfig{
|
if err := services.AddDefaultBackend(storageType); err != nil {
|
||||||
Config: &oidc.Config{},
|
|
||||||
Name: "RefuseAll",
|
|
||||||
ID: "null",
|
|
||||||
Type: "refuseAll",
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := services.CreateConnector(&backend, &dexConf, connectorIDs); err != nil {
|
|
||||||
logger.L.Errorf("Failed to add connector for backend RefuseAll to stage: %s", err.Error())
|
logger.L.Errorf("Failed to add connector for backend RefuseAll to stage: %s", err.Error())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,7 +126,7 @@ func serve() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
rootCmd.AddCommand(serveCmd)
|
cmd.RootCmd.AddCommand(serveCmd)
|
||||||
|
|
||||||
// Here you will define your flags and configuration settings.
|
// Here you will define your flags and configuration settings.
|
||||||
|
|
|
@ -3,6 +3,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/cmd"
|
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/cmd"
|
||||||
_ "git.faercol.me/faercol/polyculeconnect/polyculeconnect/cmd/backend"
|
_ "git.faercol.me/faercol/polyculeconnect/polyculeconnect/cmd/backend"
|
||||||
|
_ "git.faercol.me/faercol/polyculeconnect/polyculeconnect/cmd/serve"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
package services
|
package services
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/config"
|
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/config"
|
||||||
|
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/connector"
|
||||||
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/logger"
|
"git.faercol.me/faercol/polyculeconnect/polyculeconnect/logger"
|
||||||
"github.com/dexidp/dex/storage"
|
"github.com/dexidp/dex/storage"
|
||||||
"github.com/dexidp/dex/storage/memory"
|
"github.com/dexidp/dex/storage/memory"
|
||||||
|
@ -29,3 +31,10 @@ func InitStorage(conf *config.AppConfig) (storage.Storage, error) {
|
||||||
}
|
}
|
||||||
return storageType, nil
|
return storageType, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func AddDefaultBackend(s storage.Storage) error {
|
||||||
|
if err := s.CreateConnector(connector.RefuseAllConnectorConfig); err != nil && !errors.Is(err, storage.ErrAlreadyExists) {
|
||||||
|
return fmt.Errorf("failed to add default backend: %w", err)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue