config

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2023 License: BSD-3-Clause Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuthConfig added in v0.2.0

type AuthConfig struct {
	KeysURL      string `split_words:"true" default:"https://auth.rotational.app/.well-known/jwks.json"`
	Audience     string `default:"https://rotational.app"`
	Issuer       string `default:"https://auth.rotational.app"`
	CookieDomain string `split_words:"true" default:"rotational.app"`
}

Configures the authentication and authorization for the Tenant API.

func (AuthConfig) Validate added in v0.2.0

func (c AuthConfig) Validate() error

type Config

type Config struct {
	Maintenance  bool                `default:"false"`                                    // $TENANT_MAINTENANCE
	BindAddr     string              `split_words:"true" default:":8088"`                 // $TENANT_BIND_ADDR
	Mode         string              `default:"release"`                                  // $TENANT_MODE
	LogLevel     logger.LevelDecoder `split_words:"true" default:"info"`                  // $TENANT_LOG_LEVEL
	ConsoleLog   bool                `split_words:"true" default:"false"`                 // $TENANT_CONSOLE_LOG
	AllowOrigins []string            `split_words:"true" default:"http://localhost:3000"` // $TENANT_ALLOW_ORIGINS
	Auth         AuthConfig          `split_words:"true"`
	Database     DatabaseConfig      `split_words:"true"`
	Ensign       EnsignConfig        `split_words:"true"`
	Topics       SDKConfig           `split_words:"true"`
	Quarterdeck  QuarterdeckConfig   `split_words:"true"`
	SendGrid     emails.Config       `split_words:"false"`
	Sentry       sentry.Config
	// contains filtered or unexported fields
}

Config uses envconfig to load required settings from the environment, parses and validates them, and loads defaults where necessary in preparation for running the Tenant API service. This is the top-level config, any sub configurations will need to be defined as properties of this Config.

func New

func New() (conf Config, err error)

New loads and parses the config from the environment and validates it, marking it as processed so that external users can determine if the config is ready for use. This should be the only way Config objects are created for use in the application.

func (Config) AllowAllOrigins

func (c Config) AllowAllOrigins() bool

Returns true if the allow origins slice contains one entry that is a "*"

func (Config) GetLogLevel

func (c Config) GetLogLevel() zerolog.Level

func (Config) IsZero

func (c Config) IsZero() bool

Returns true if the config has not been correctly processed from the environment.

func (Config) Mark

func (c Config) Mark() (_ Config, err error)

Mark a manually constructed config as processed as long as it is valid.

func (Config) Validate

func (c Config) Validate() (err error)

Custom validations are added here, particularly validations that require one or more fields to be processed before the validation occurs. NOTE: ensure that all nested config validation methods are called here.

type DatabaseConfig added in v0.1.1

type DatabaseConfig struct {
	URL      string `default:"trtl://localhost:4436"`
	Insecure bool   `default:"true"`
	CertPath string `split_words:"true"`
	PoolPath string `split_words:"true"`
	Testing  bool   `default:"false"`
}

Configures the connection to trtl for replicated data storage.

func (DatabaseConfig) Endpoint added in v0.1.1

func (c DatabaseConfig) Endpoint() (_ string, err error)

func (DatabaseConfig) Validate added in v0.1.1

func (c DatabaseConfig) Validate() (err error)

If not insecure, the cert and pool paths are required.

type EnsignConfig added in v0.5.0

type EnsignConfig struct {
	Endpoint string `default:":5356"`
	Insecure bool   `default:"false"`
}

Configures the client connection to Ensign.

func (EnsignConfig) Client added in v0.5.0

func (c EnsignConfig) Client() (_ pb.EnsignClient, err error)

Client returns a new Ensign gRPC client from the configuration. This method assumes that the configuration has already been validated.

func (EnsignConfig) Validate added in v0.5.0

func (c EnsignConfig) Validate() (err error)

type QuarterdeckConfig added in v0.2.0

type QuarterdeckConfig struct {
	URL          string        `default:"https://auth.rotational.app"`
	WaitForReady time.Duration `default:"5m" split_words:"true"`
}

Configures the client connection to Quarterdeck.

func (QuarterdeckConfig) Client added in v0.2.0

func (c QuarterdeckConfig) Client() (_ qd.QuarterdeckClient, err error)

func (QuarterdeckConfig) Validate added in v0.2.0

func (c QuarterdeckConfig) Validate() (err error)

type SDKConfig added in v0.5.0

type SDKConfig struct {
	Ensign  ensign.Options
	TopicID string `split_words:"true"`
}

Configures an SDK connection to Ensign for pub/sub.

func (SDKConfig) Validate added in v0.5.0

func (c SDKConfig) Validate() (err error)

Jump to

Keyboard shortcuts

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