config

package
v1.38.2 Latest Latest
Warning

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

Go to latest
Published: Mar 23, 2026 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Overview

Package config manages CLI configuration and profiles.

Index

Constants

View Source
const (
	AccountIDName              = "account_id"
	DeviceNameName             = "device_name"
	DisplayNameName            = "display_name"
	IsTermsAcceptanceValidName = "is_terms_acceptance_valid"
	TestModeAPIKeyName         = "test_mode_api_key"
	TestModePubKeyName         = "test_mode_pub_key"
	TestModeKeyExpiresAtName   = "test_mode_key_expires_at"
	LiveModeAPIKeyName         = "live_mode_api_key"
	LiveModePubKeyName         = "live_mode_pub_key"
	LiveModeKeyExpiresAtName   = "live_mode_key_expires_at"
)

config key names

View Source
const (
	// DateStringFormat is the format for expiredAt date
	DateStringFormat = "2006-01-02"

	// KeyValidInDays is the number of days the API key is valid for
	KeyValidInDays = 90

	// KeyManagementService is the key management service name
	KeyManagementService = "StripeCLI"
)
View Source
const ColorAuto = "auto"

ColorAuto represents the auto-state for colors

View Source
const ColorOff = "off"

ColorOff represents the off-state for colors

View Source
const ColorOn = "on"

ColorOn represnets the on-state for colors

Variables

KeyRing ...

Functions

func RedactAPIKey added in v1.10.4

func RedactAPIKey(apiKey string) string

RedactAPIKey returns a redacted version of API keys. The first 8 and last 4 characters are not redacted, everything else is replaced by "*" characters.

It panics if the provided string has less than 12 characters.

Types

type Config

type Config struct {
	Color            string
	LogLevel         string
	Profile          Profile
	ProfilesFile     string
	InstalledPlugins []string
}

Config handles all overall configuration for the CLI

func (*Config) CopyProfile added in v1.38.0

func (c *Config) CopyProfile(source string, target string) error

func (*Config) EditConfig added in v0.3.0

func (c *Config) EditConfig() error

EditConfig opens the configuration file in the default editor.

func (*Config) GetConfigFolder added in v0.6.0

func (c *Config) GetConfigFolder(xdgPath string) string

func (*Config) GetInstalledPlugins added in v1.9.0

func (c *Config) GetInstalledPlugins() []string

GetInstalledPlugins returns a list of locally installed plugins. This does not vary by profile

func (*Config) GetProfile added in v1.8.0

func (c *Config) GetProfile() *Profile

GetProfile returns the Profile of the config

func (*Config) InitConfig

func (c *Config) InitConfig()

InitConfig reads in profiles file and ENV variables if set.

func (*Config) ListProfiles added in v1.38.0

func (c *Config) ListProfiles() error

func (*Config) PrintConfig added in v0.3.0

func (c *Config) PrintConfig() error

PrintConfig outputs the contents of the configuration file.

func (*Config) RemoveAllProfiles added in v1.4.0

func (c *Config) RemoveAllProfiles() error

RemoveAllProfiles removes all the profiles from the config file.

func (*Config) RemoveProfile added in v1.4.0

func (c *Config) RemoveProfile(profileName string) error

RemoveProfile removes the profile whose name matches the provided profileName from the config file.

func (*Config) SwitchProfile added in v1.38.0

func (c *Config) SwitchProfile(profileName string) error

func (*Config) WriteConfigField added in v1.8.2

func (c *Config) WriteConfigField(field string, value interface{}) error

WriteConfigField updates a configuration field and writes the updated configuration to disk.

type IConfig added in v1.8.0

type IConfig interface {
	GetProfile() *Profile
	GetConfigFolder(xdgPath string) string
	InitConfig()
	EditConfig() error
	PrintConfig() error
	CopyProfile(source string, target string) error
	ListProfiles() error
	SwitchProfile(targetProfileName string) error
	RemoveProfile(profileName string) error
	RemoveAllProfiles() error
	WriteConfigField(field string, value interface{}) error
	GetInstalledPlugins() []string
}

IConfig allows us to add more implementations, such as ones for unit tests

type Profile

type Profile struct {
	DeviceName             string
	ProfileName            string
	APIKey                 string
	LiveModeAPIKey         string
	LiveModePublishableKey string
	TestModeAPIKey         string
	TestModePublishableKey string
	TerminalPOSDeviceID    string
	DisplayName            string
	AccountID              string
}

Profile handles all things related to managing the project specific configurations

func (*Profile) CreateProfile

func (p *Profile) CreateProfile() error

CreateProfile creates a profile when logging in

func (*Profile) DeleteConfigField added in v0.3.0

func (p *Profile) DeleteConfigField(field string) error

DeleteConfigField deletes a configuration field.

func (*Profile) GetAPIKey added in v0.3.0

func (p *Profile) GetAPIKey(livemode bool) (string, error)

GetAPIKey will return the existing key for the given profile

func (*Profile) GetAccountID added in v1.7.4

func (p *Profile) GetAccountID() (string, error)

GetAccountID returns the accountId for the given profile.

func (*Profile) GetColor added in v0.5.2

func (p *Profile) GetColor() (string, error)

GetColor gets the color setting for the user based on the flag or the persisted color stored in the config file

func (*Profile) GetConfigField

func (p *Profile) GetConfigField(field string) string

GetConfigField returns the configuration field for the specific profile

func (*Profile) GetDeviceName

func (p *Profile) GetDeviceName() (string, error)

GetDeviceName returns the configured device name

func (*Profile) GetDisplayName added in v1.5.6

func (p *Profile) GetDisplayName() string

GetDisplayName returns the account display name of the user

func (*Profile) GetExpiresAt added in v1.10.4

func (p *Profile) GetExpiresAt(livemode bool) (time.Time, error)

GetExpiresAt returns the API key expirary date

func (*Profile) GetPublishableKey added in v0.6.0

func (p *Profile) GetPublishableKey(livemode bool) (string, error)

GetPublishableKey returns the publishable key for the user

func (*Profile) GetSessionCredentials added in v1.14.2

func (p *Profile) GetSessionCredentials() (*SessionCredentials, error)

GetSessionCredentials retrieves the session credentials from the keyring

func (*Profile) GetTerminalPOSDeviceID added in v1.4.0

func (p *Profile) GetTerminalPOSDeviceID() string

GetTerminalPOSDeviceID returns the device id from the config for Terminal quickstart to use

func (*Profile) RegisterAlias added in v0.3.0

func (p *Profile) RegisterAlias(alias, key string)

RegisterAlias registers an alias for a given key.

func (*Profile) WriteConfigField added in v0.3.0

func (p *Profile) WriteConfigField(field, value string) error

WriteConfigField updates a configuration field and writes the updated configuration to disk.

type SessionCredentials added in v1.14.2

type SessionCredentials struct {
	UAT        string `json:"uat"`
	PrivateKey string `json:"private_key"`
	AccountID  string `json:"account_id"`
}

SessionCredentials are the credentials needed for this session

Jump to

Keyboard shortcuts

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