Files
sailpoint-cli/cmd/configure/configure.go
2023-05-18 15:12:20 -05:00

49 lines
1.4 KiB
Go

// Copyright (c) 2021, SailPoint Technologies, Inc. All rights reserved.
package configure
import (
"github.com/sailpoint-oss/sailpoint-cli/internal/config"
"github.com/sailpoint-oss/sailpoint-cli/internal/terminal"
"github.com/spf13/cobra"
)
func NewConfigureCmd(term terminal.Terminal) *cobra.Command {
var ClientID string
var ClientSecret string
var err error
cmd := &cobra.Command{
Use: "configure",
Short: "Configure PAT Authentication for the currently active environment",
Long: "\nConfigure PAT Authentication for the CLI\n\nPrerequisites:\n\nCreate a Client ID and Client Secret\nhttps://developer.sailpoint.com/idn/api/authentication#personal-access-tokens",
Aliases: []string{"conf"},
Args: cobra.NoArgs,
RunE: func(cmd *cobra.Command, args []string) error {
if ClientID == "" {
ClientID, err = term.PromptPassword("Personal Access Token Client ID:")
if err != nil {
return err
}
}
config.SetPatClientID(ClientID)
if ClientSecret == "" {
ClientSecret, err = term.PromptPassword("Personal Access Token Client Secret:")
if err != nil {
return err
}
}
config.SetPatClientSecret(ClientSecret)
return nil
},
}
cmd.Flags().StringVarP(&ClientID, "ClientID", "i", "", "The client id to use for PAT authentication")
cmd.Flags().StringVarP(&ClientSecret, "ClientSecret", "s", "", "The client secret to use for PAT authentication")
return cmd
}