hgz

package
v0.0.0-...-d772457 Latest Latest
Warning

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

Go to latest
Published: Mar 22, 2022 License: MIT Imports: 18 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 {
	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 Hengin

type Hengin interface {
	InitLocal() Hengin
	InitCloud(stageMode cloudz.StageMode) Hengin
	Deploy()
}

Hengin describes the standard Hengin implementation.

func NewHengin

func NewHengin(cfg *Config) Hengin

NewHengin initializes a new Hengin.

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.

Jump to

Keyboard shortcuts

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