config

package
v0.0.0-...-6d13c91 Latest Latest
Warning

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

Go to latest
Published: Apr 30, 2024 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	APIRootPath               string        `envconfig:"APP_API_ROOT_PATH,default=/instance-creator"`
	APITenantMappingsEndpoint string        `envconfig:"API_TENANT_MAPPINGS_ENDPOINT,default=/v1/tenantMappings/{tenant-id}"`
	Address                   string        `envconfig:"APP_ADDRESS,default=localhost:8080"`
	SkipSSLValidation         bool          `envconfig:"APP_HTTP_CLIENT_SKIP_SSL_VALIDATION,default=false"`
	JWKSEndpoint              string        `envconfig:"APP_JWKS_ENDPOINT,default=file://hack/default-jwks.json"`
	ServerTimeout             time.Duration `envconfig:"APP_SERVER_TIMEOUT,default=110s"`
	ClientTimeout             time.Duration `envconfig:"APP_CLIENT_TIMEOUT,default=105s"`
	AuthorizationHeaderKey    string        `envconfig:"APP_AUTHORIZATION_HEADER_KEY,default=Authorization"`
	AllowJWTSigningNone       bool          `envconfig:"APP_ALLOW_JWT_SIGNING_NONE,default=false"`
	SMInstancesSecretPath     string        `envconfig:"APP_SM_INSTANCES_SECRET_PATH"`

	InstanceClientIDPath         string                    `envconfig:"APP_SM_INSTANCE_CLIENT_ID_PATH"`
	InstanceSMURLPath            string                    `envconfig:"APP_SM_INSTANCE_SM_URL_PATH"`
	InstanceTokenURLPath         string                    `envconfig:"APP_SM_INSTANCE_TOKEN_URL_PATH"`
	InstanceAppNamePath          string                    `envconfig:"APP_SM_INSTANCE_APP_NAME_PATH"`
	InstanceCertificatePath      string                    `envconfig:"APP_SM_INSTANCE_CERTIFICATE_PATH"`
	InstanceCertificateKeyPath   string                    `envconfig:"APP_SM_INSTANCE_CERTIFICATE_KEY_PATH"`
	ExternalClientCertSecretName string                    `envconfig:"APP_EXTERNAL_CLIENT_CERT_SECRET_NAME"`
	OAuthTokenPath               string                    `envconfig:"APP_SM_INSTANCE_OAUTH_TOKEN_PATH"`
	RegionToInstanceConfig       map[string]InstanceConfig `envconfig:"-"`
	SMClientTimeout              time.Duration             `envconfig:"APP_SM_CLIENT_TIMEOUT,default=30s"`

	CertLoaderConfig credloader.CertConfig

	Ticker  time.Duration `envconfig:"APP_SM_ASYNC_API_TICKER,default=3s"`
	Timeout time.Duration `envconfig:"APP_SM_ASYNC_API_TIMEOUT,default=30s"`

	Log        log.Config
	TenantInfo TenantInfo

	Database persistence.DatabaseConfig
}

Config contains necessary configurations for the instance-creator to operate

func (*Config) MapInstanceConfigs

func (c *Config) MapInstanceConfigs() error

MapInstanceConfigs parses the InstanceConfigs json string to map with key: region name and value: InstanceConfig for the instance in the region

func (*Config) PrepareConfiguration

func (c *Config) PrepareConfiguration() error

PrepareConfiguration loads credentials for each region

type InstanceConfig

type InstanceConfig struct {
	ClientID       string
	SMURL          string
	TokenURL       string
	AppName        string
	Certificate    string
	CertificateKey string
}

InstanceConfig is a service instance config

type TenantInfo

type TenantInfo struct {
	Endpoint           string        `envconfig:"APP_TENANT_INFO_ENDPOINT,default=localhost:8080/v1/info"`
	RequestTimeout     time.Duration `envconfig:"APP_TENANT_INFO_REQUEST_TIMEOUT,default=30s"`
	InsecureSkipVerify bool          `envconfig:"APP_TENANT_INFO_INSECURE_SKIP_VERIFY,default=false"`
}

TenantInfo contains necessary configuration for determining the CMP tenant info

Jump to

Keyboard shortcuts

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