login

package
v1.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 25, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const SwitchAccountFlagKey = "switch-account"
View Source
const SwitchOrgFlagKey = "switch-org"

Variables

View Source
var LoginCmd = &cobra.Command{
	Use:          "login",
	GroupID:      groups.AccountsGroup.ID,
	Short:        "Login to Otterize Cloud",
	Args:         cobra.NoArgs,
	SilenceUsage: true,
	RunE: func(_ *cobra.Command, _ []string) error {
		getConfCtxTimeout, cancel := context.WithTimeout(context.Background(), config.DefaultTimeout)
		defer cancel()

		otterizeAPIAddress := viper.GetString(config.OtterizeAPIAddressKey)
		authClient := auth_api.NewClient(otterizeAPIAddress)
		auth0Config, err := authClient.GetAuth0Config(getConfCtxTimeout)
		if err != nil {
			return err
		}

		loginServer := server.NewLoginServer(auth0Config)
		loginServer.Start()
		loginUrl := loginServer.GetLoginUrl(viper.GetBool(SwitchAccountFlagKey))
		if err := browser.OpenURL(loginUrl); err != nil {
			logrus.Warning("Failed to open browser:", err)
		}
		prints.PrintCliStderr("Please login to Otterize using your browser: %s", loginUrl)
		authResult := <-loginServer.GetAuthResultChannel()
		prints.PrintCliStderr("Login completed successfully! logged in as: %s", authResult.Profile["email"])

		apiAddress := viper.GetString(config.OtterizeAPIAddressKey)
		loginCtx, err := userlogin.NewContext(apiAddress, authResult.AccessToken)
		if err != nil {
			return err
		}

		if err := loginCtx.EnsureUserRegistered(); err != nil {
			return err
		}

		selectedOrgId, err := loginCtx.SelectOrg(viper.GetString(config.ApiSelectedOrganizationId), viper.GetBool(SwitchOrgFlagKey))
		if err != nil {
			return err
		}

		if err := config.SaveConfig(config.Config{
			UserToken:      authResult.AccessToken,
			Expiry:         authResult.Expiry,
			OrganizationId: selectedOrgId,
		}); err != nil {
			return err
		}

		prints.PrintCliStderr("To change your organization selection, log-in again with --%s.", SwitchOrgFlagKey)
		return nil
	},
}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL