Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { AppDisplayName string `validate:"required"` AppName string `validate:"required,resource-name"` RootDirPath string `validate:"required,dir"` Logic *ConfigLogic `validate:"required"` Local *ConfigLocal `validate:"required"` Cloud *ConfigCloud `validate:"required"` }
Config describes the Hengin config.
func (*Config) MustValidate ¶
func (c *Config) MustValidate()
MustValidate validates the Hengin config.
type ConfigCloud ¶
type ConfigCloud struct { DefaultSecrets SecretsHolder `validate:"required"` AWSRegion string `validate:"required"` Domains *ConfigCloudDomains `validate:"required"` Postgres *ConfigCloudPostgres `validate:"required"` Logic *ConfigCloudLogic `validate:"required"` Hasura *ConfigCloudHasura `validate:"required"` // contains filtered or unexported fields }
ConfigCloud describes part of the Hengin config.
func (*ConfigCloud) GetLoadedSecrets ¶
func (c *ConfigCloud) GetLoadedSecrets() SecretsHolder
GetLoadedSecrets returns the loaded secrets.
type ConfigCloudDomains ¶
type ConfigCloudDomains struct { DomainName string `validate:"required"` HostedZoneID string `validate:"required"` FrontendDomainPrefix *string }
ConfigCloudDomains describes part of the Hengin config.
func (*ConfigCloudDomains) GetBackendDomain ¶
func (c *ConfigCloudDomains) GetBackendDomain(stage cloudz.Stage, prefix string) string
GetBackendDomain generates a backend domain for the given stage and prefix.
func (*ConfigCloudDomains) GetFrontendDomain ¶
func (c *ConfigCloudDomains) GetFrontendDomain(stage cloudz.Stage) string
GetFrontendDomain generates the frontend domain for the given stage.
type ConfigCloudHasura ¶
type ConfigCloudHasura struct { Replicas int `validate:"required"` CPU int `validate:"required"` Memory int `validate:"required"` }
ConfigCloudHasura describes part of the Hengin config.
type ConfigCloudLogic ¶
type ConfigCloudLogic struct {
Memory int `validate:"required"`
}
ConfigCloudLogic describes part of the Hengin config.
type ConfigCloudPostgres ¶
type ConfigCloudPostgres struct { AllocatedStorageGBs int `validate:"required"` InstanceClass string `validate:"required"` }
ConfigCloudPostgres describes part of the Hengin config.
type ConfigLocal ¶
type ConfigLocal struct {
Ports *ConfigLocalPorts `validate:"required"`
}
ConfigLocal describes part of the Hengin config.
type ConfigLocalPorts ¶
type ConfigLocalPorts struct { HasuraConsoleAPI uint16 `validate:"required"` HasuraConsole uint16 `validate:"required"` Hasura uint16 `validate:"required"` LogicAPI uint16 `validate:"required"` LogicFunction uint16 `validate:"required"` Bucket uint16 `validate:"required"` Mailer uint16 `validate:"required"` MailerSMTP uint16 `validate:"required"` PostgresAdmin uint16 `validate:"required"` Postgres uint16 `validate:"required"` }
ConfigLocalPorts describes part of the Hengin config.
type ConfigLogic ¶
type ConfigLogic struct { Router *lambdaz.HTTPRouter `validate:"required"` EnvironmentFunc func(stage cloudz.Stage, deps *pluginz.FunctionDependencies, henginCfg *Config) map[string]string `validate:"required"` RolePoliciesFunc func(stage cloudz.Stage, deps *pluginz.FunctionDependencies, henginCfg *Config) []goiam.Role_Policy `validate:"required"` }
ConfigLogic describes part of the Hengin config.
type Plugins ¶
type Plugins struct { ArtifactsBucket pluginz.Bucket HasuraImageRepository pluginz.ImageRepository BackendCertificate pluginz.Certificate Network pluginz.Network Mailer pluginz.Mailer Postgres pluginz.Postgres PostgresProxy pluginz.PostgresProxy LogicFunction pluginz.Function LogicAPI pluginz.API LoadBalancer pluginz.LoadBalancer Hasura pluginz.Hasura }
Plugins describes the Hengin plugins.
type SecretsHolder ¶
type SecretsHolder interface {
GetSecrets() *SecretsMixin
}
SecretsHolder allows to extend the Hengin secrets.
type SecretsMixin ¶
type SecretsMixin struct { PostgresPassword string `json:"postgresPassword" validate:"required"` HasuraAdminSecret string `json:"hasuraAdminSecret" validate:"required"` LogicAPIKey string `json:"logicApiKey" validate:"required"` JWTPrivateKeyPEM string `json:"jwtPrivateKeyPem" validate:"required"` }
SecretsMixin describes the Hengin secrets.
func GetDefaultSecrets ¶
func GetDefaultSecrets() *SecretsMixin
GetDefaultSecrets returns default, placeholder secrets.
func (*SecretsMixin) GetSecrets ¶
func (s *SecretsMixin) GetSecrets() *SecretsMixin
GetSecrets implements the SecretsHolder interface.