cmd/create.go (45 lines of code) (raw):

// Copyright (c) 2022 EPAM Systems, Inc. // // This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at http://mozilla.org/MPL/2.0/. package cmd import ( "github.com/epam/hub-dexctl/dex" "github.com/spf13/cobra" ) var createCmd = &cobra.Command{ Use: "create <password | oidc>", Short: "Create dex resource", } var createPasswordCmd = &cobra.Command{ Use: "password", Short: "Create static password in dex", RunE: func(cmd *cobra.Command, args []string) error { return dex.CreatePassword(email, password) }, } var createOidcCmd = &cobra.Command{ Use: "oidc", Short: "Create oauth2 static client in dex", RunE: func(cmd *cobra.Command, args []string) error { return dex.CreateOidc(clientId, clientSecret, redirectUris, trustedPeers, public, name, logoUrl) }, } func init() { createPasswordCmd.Flags().StringVarP(&email, "email", "e", "", "Username email") createPasswordCmd.MarkFlagRequired("email") createPasswordCmd.Flags().StringVarP(&password, "password", "p", "", "Username password") createPasswordCmd.MarkFlagRequired("password") createPasswordCmd.MarkFlagsRequiredTogether("email", "password") createCmd.AddCommand(createPasswordCmd) createOidcCmd.Flags().StringVarP(&clientId, "client-id", "c", "", "Client ID used to identify the client") createOidcCmd.MarkFlagRequired("client-id") createOidcCmd.Flags().StringVarP(&clientSecret, "client-secret", "s", "", "Client secret used to identify the client") createOidcCmd.MarkFlagRequired("client-secret") createOidcCmd.Flags().StringArrayVarP(&redirectUris, "redirect-uris", "r", nil, "A registered set of redirect URIs") createOidcCmd.MarkFlagRequired("redirect-uris") createOidcCmd.Flags().StringArrayVarP(&trustedPeers, "trusted-peers", "t", nil, "TrustedPeers are a list of peers which can issue tokens on this client's behalf using the dynamic scope") createOidcCmd.Flags().BoolVarP(&public, "public", "p", true, "Public clients are inspired by Google’s “Installed Applications” and are meant to impose restrictions on applications that don’t intend to keep their client secret private") createOidcCmd.Flags().StringVarP(&name, "name", "n", "", "Name used when displaying this client to the end user") createOidcCmd.MarkFlagRequired("name") createOidcCmd.Flags().StringVarP(&logoUrl, "logo-url", "l", "", "LogoURL used when displaying this client to the end user") createOidcCmd.MarkFlagsRequiredTogether("client-id", "client-secret", "redirect-uris", "name") createCmd.AddCommand(createOidcCmd) rootCmd.AddCommand(createCmd) }