feat: let administrators view and copy encrypted integration credentials
This commit is contained in:
@@ -12,6 +12,7 @@ import (
|
||||
"time"
|
||||
|
||||
"git.yuntuo.hk/k2safe/orbit/internal/config"
|
||||
"git.yuntuo.hk/k2safe/orbit/internal/credentialvault"
|
||||
"git.yuntuo.hk/k2safe/orbit/internal/observability"
|
||||
"git.yuntuo.hk/k2safe/orbit/internal/retention"
|
||||
"git.yuntuo.hk/k2safe/orbit/internal/storage/mysql"
|
||||
@@ -41,6 +42,13 @@ func run() error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
vault, err := credentialvault.LoadFile(cfg.CredentialKeyFile)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if cfg.ConsoleApplicationAdmin != "" && vault == nil {
|
||||
return errors.New("ORBIT_CREDENTIAL_KEY_FILE is required for console application administration")
|
||||
}
|
||||
root, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
|
||||
defer stop()
|
||||
startup, cancel := context.WithTimeout(root, 10*time.Second)
|
||||
@@ -125,7 +133,7 @@ func run() error {
|
||||
httpserver.RegisterWorkflows(server, instance.New(mysql.NewWorkflowInstanceStore(db)), control.New(mysql.NewWorkflowControlStore(db)), weavesignal.New(mysql.NewWorkflowSignalStore(db)), recovery.New(mysql.NewWorkflowRecoveryStore(db)))
|
||||
httpserver.RegisterConsoleRetention(server, consoleAuth, retentionStore, retentionStore)
|
||||
httpserver.RegisterConsoleArchiveJobs(server, consoleAuth, retentionStore, cfg.ArchiveStorageID)
|
||||
consoleApplications := mysql.NewConsoleApplicationStore(db, cfg.ConsoleApplicationAdmin)
|
||||
consoleApplications := mysql.NewConsoleApplicationStore(db, cfg.ConsoleApplicationAdmin, vault)
|
||||
httpserver.RegisterConsoleApplications(server, consoleAuth, consoleApplications)
|
||||
httpserver.RegisterConsoleScopes(server, consoleApplications)
|
||||
httpserver.WrapConsoleAuth(server, consoleAuth, consoleApplications)
|
||||
|
||||
Reference in New Issue
Block a user