Skip to content

Commit

Permalink
Avoid env for auth (#9)
Browse files Browse the repository at this point in the history
* fix: logging with custom field

* enh: auth from CLI flags

* fix: handle errors

* fix: handle errors
  • Loading branch information
notdodo authored Nov 18, 2023
1 parent 99eedc6 commit 9a13931
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 26 deletions.
4 changes: 1 addition & 3 deletions .env_example
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,4 @@ NEO4J_PASS=IAMmeIAMme!1!
NEO4J_AUTH="${NEO4J_USER}/${NEO4J_PASS}"
NEO4J_server_memory_heap_initial__size=12G
NEO4J_server_memory_heap_max__size=16G
NEO4J_server_memory_pagecache_size=12G
OKTA_CLIENT_ORGURL=yourtenant.okta.com
OKTA_CLIENT_TOKEN="00SOMETHINGWRONG"
NEO4J_server_memory_pagecache_size=12G
8 changes: 7 additions & 1 deletion cmd/dump.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,20 @@ package cmd

import (
"github.com/notdodo/IAMme-IAMme/pkg/app"
"github.com/notdodo/IAMme-IAMme/pkg/infra/okta"
"github.com/spf13/cobra"
)

var usersCmd = &cobra.Command{
Use: "dump",
Short: "Fetch Okta info and store them in Neo4j",
Run: func(cmd *cobra.Command, args []string) {
oktaNeo4jApp := app.NewOktaNeo4jApp(clients.okta, clients.neo4j)
markAsRequired("org-url")
markAsRequired("client-token")
if err := rootCmd.ValidateRequiredFlags(); err != nil {
logger.Error("Required flags not provided", err)
}
oktaNeo4jApp := app.NewOktaNeo4jApp(okta.NewOktaClient(orgUrl, oktaClientToken), neo4jClient)
oktaNeo4jApp.Dump()
},
}
Expand Down
27 changes: 15 additions & 12 deletions cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,37 @@ package cmd

import (
"github.com/notdodo/IAMme-IAMme/pkg/infra/neo4j"
"github.com/notdodo/IAMme-IAMme/pkg/infra/okta"
"github.com/notdodo/IAMme-IAMme/pkg/io/logging"

"github.com/spf13/cobra"
)

type clientsType struct {
okta okta.OktaClient
neo4j neo4j.Neo4jClient
}

var clients *clientsType
var logger logging.LogManager
var verbose bool
var orgUrl string
var oktaClientToken string
var neo4jClient neo4j.Neo4jClient
var rootCmd = &cobra.Command{
Use: "iamme",
Short: "A CLI tool to interact with Okta and Neo4j",
}

func init() {
logger = logging.NewLogManager()
rootCmd.PersistentFlags().BoolVarP(&verbose, "verbose", "v", false, "verbose output")
rootCmd.PersistentFlags().StringVarP(&orgUrl, "org-url", "u", "", "Okta Org URL")
rootCmd.PersistentFlags().StringVarP(&oktaClientToken, "client-token", "c", "", "Okta Client Token")
}

func Execute(oktaClient okta.OktaClient, neo4jClient neo4j.Neo4jClient) {
clients = &clientsType{
oktaClient,
neo4jClient,
}
func Execute(neo4j neo4j.Neo4jClient) {
neo4jClient = neo4j
if err := rootCmd.Execute(); err != nil {
logger.Error("Error executing command", "err", err)
}
}

func markAsRequired(flag string) {
if err := rootCmd.MarkFlagRequired(flag); err != nil {
logger.Error("Required flags not provided", "flag", flag)
}
}
9 changes: 3 additions & 6 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,16 @@ package main
import (
"log"

"github.com/joho/godotenv"
"github.com/notdodo/IAMme-IAMme/cmd"
"github.com/notdodo/IAMme-IAMme/pkg/infra/neo4j"
"github.com/notdodo/IAMme-IAMme/pkg/infra/okta"

"github.com/joho/godotenv"
)

func main() {
envFile, err := godotenv.Read(".env")
if err != nil {
log.Fatalln(err.Error())
}
cmd.Execute(
okta.NewOktaClient(envFile["OKTA_CLIENT_ORGURL"], envFile["OKTA_CLIENT_TOKEN"]),
neo4j.NewNeo4jClient(envFile["NEO4J_URL"], envFile["NEO4J_USER"], envFile["NEO4J_PASS"]))
cmd.Execute(neo4j.NewNeo4jClient(envFile["NEO4J_URL"], envFile["NEO4J_USER"], envFile["NEO4J_PASS"]))

}
8 changes: 4 additions & 4 deletions pkg/io/logging/logging.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ func NewLogManager() LogManager {
return &logManager{
logger: log.NewWithOptions(os.Stdout, log.Options{
CallerOffset: 1,
Fields: []interface{}{"err"},
Fields: []interface{}{"err", "flag"},
Level: log.WarnLevel,
ReportCaller: true,
ReportTimestamp: true,
Expand All @@ -36,14 +36,14 @@ func (lm *logManager) Debug(message interface{}, keyvals ...interface{}) {
}

func (lm *logManager) Info(message interface{}, keyvals ...interface{}) {
lm.logger.Info(message)
lm.logger.Info(message, keyvals...)
}

func (lm *logManager) Warn(message interface{}, keyvals ...interface{}) {
lm.logger.Info(message)
lm.logger.Info(message, keyvals...)
}

func (lm *logManager) Error(message interface{}, keyvals ...interface{}) {
lm.logger.Error(message)
lm.logger.Error(message, keyvals...)
os.Exit(1)
}

0 comments on commit 9a13931

Please sign in to comment.