Documentation ¶
Index ¶
- func BindAllEnv(v *viper.Viper)
- type AlertingConfigFile
- type AnalyticsConfigFile
- type AuthConfig
- type ConfigFileAuth
- type ConfigFileAuthCookie
- type ConfigFileAuthGithub
- type ConfigFileAuthGoogle
- type ConfigFileGithub
- type ConfigFileRuntime
- type ConfigFileVCS
- type EncryptionConfigFile
- type EncryptionConfigFileCloudKMS
- type EncryptionConfigFileJWT
- type MessageQueueConfigFile
- type PosthogConfigFile
- type RabbitMQConfigFile
- type SentryConfigFile
- type ServerConfig
- type ServerConfigFile
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BindAllEnv ¶
Types ¶
type AlertingConfigFile ¶ added in v0.15.2
type AlertingConfigFile struct {
Sentry SentryConfigFile `mapstructure:"sentry" json:"sentry,omitempty"`
}
Alerting options
type AnalyticsConfigFile ¶ added in v0.20.1
type AnalyticsConfigFile struct {
Posthog PosthogConfigFile `mapstructure:"posthog" json:"posthog,omitempty"`
}
type AuthConfig ¶
type AuthConfig struct { ConfigFile ConfigFileAuth GoogleOAuthConfig *oauth2.Config GithubOAuthConfig *oauth2.Config JWTManager token.JWTManager }
type ConfigFileAuth ¶
type ConfigFileAuth struct { // RestrictedEmailDomains sets the restricted email domains for the instance. RestrictedEmailDomains []string `mapstructure:"restrictedEmailDomains" json:"restrictedEmailDomains,omitempty"` // BasedAuthEnabled controls whether email and password-based login is enabled for this // Hatchet instance BasicAuthEnabled bool `mapstructure:"basicAuthEnabled" json:"basicAuthEnabled,omitempty" default:"true"` // SetEmailVerified controls whether the user's email is automatically set to verified SetEmailVerified bool `mapstructure:"setEmailVerified" json:"setEmailVerified,omitempty" default:"false"` // Configuration options for the cookie Cookie ConfigFileAuthCookie `mapstructure:"cookie" json:"cookie,omitempty"` Google ConfigFileAuthGoogle `mapstructure:"google" json:"google,omitempty"` Github ConfigFileAuthGithub `mapstructure:"github" json:"github,omitempty"` }
type ConfigFileAuthCookie ¶
type ConfigFileAuthCookie struct { Name string `mapstructure:"name" json:"name,omitempty" default:"hatchet"` Domain string `mapstructure:"domain" json:"domain,omitempty"` Secrets string `mapstructure:"secrets" json:"secrets,omitempty"` Insecure bool `mapstructure:"insecure" json:"insecure,omitempty" default:"false"` }
type ConfigFileAuthGithub ¶ added in v0.20.0
type ConfigFileAuthGithub struct { Enabled bool `mapstructure:"enabled" json:"enabled,omitempty" default:"false"` ClientID string `mapstructure:"clientID" json:"clientID,omitempty"` ClientSecret string `mapstructure:"clientSecret" json:"clientSecret,omitempty"` Scopes []string `mapstructure:"scopes" json:"scopes,omitempty" default:"[\"read:user\", \"user:email\"]"` }
type ConfigFileAuthGoogle ¶
type ConfigFileAuthGoogle struct { Enabled bool `mapstructure:"enabled" json:"enabled,omitempty" default:"false"` ClientID string `mapstructure:"clientID" json:"clientID,omitempty"` ClientSecret string `mapstructure:"clientSecret" json:"clientSecret,omitempty"` Scopes []string `mapstructure:"scopes" json:"scopes,omitempty" default:"[\"openid\", \"profile\", \"email\"]"` }
type ConfigFileGithub ¶ added in v0.11.0
type ConfigFileGithub struct { Enabled bool `mapstructure:"enabled" json:"enabled"` GithubAppClientID string `mapstructure:"appClientID" json:"appClientID,omitempty"` GithubAppClientSecret string `mapstructure:"appClientSecret" json:"appClientSecret,omitempty"` GithubAppName string `mapstructure:"appName" json:"appName,omitempty"` GithubAppWebhookSecret string `mapstructure:"appWebhookSecret" json:"appWebhookSecret,omitempty"` GithubAppWebhookURL string `mapstructure:"appWebhookURL" json:"appWebhookURL,omitempty"` GithubAppID string `mapstructure:"appID" json:"appID,omitempty"` GithubAppSecretPath string `mapstructure:"appSecretPath" json:"appSecretPath,omitempty"` }
type ConfigFileRuntime ¶
type ConfigFileRuntime struct { // Port is the port that the core server listens on Port int `mapstructure:"port" json:"port,omitempty" default:"8080"` // ServerURL is the full server URL of the instance, including protocol. ServerURL string `mapstructure:"url" json:"url,omitempty" default:"http://localhost:8080"` // GRPCPort is the port that the grpc service listens on GRPCPort int `mapstructure:"grpcPort" json:"grpcPort,omitempty" default:"7070"` // GRPCBindAddress is the address that the grpc server binds to. Should set to 0.0.0.0 if binding in docker container. GRPCBindAddress string `mapstructure:"grpcBindAddress" json:"grpcBindAddress,omitempty" default:"127.0.0.1"` // GRPCBroadcastAddress is the address that the grpc server broadcasts to, which is what clients should use when connecting. GRPCBroadcastAddress string `mapstructure:"grpcBroadcastAddress" json:"grpcBroadcastAddress,omitempty" default:"127.0.0.1:7070"` // GRPCInsecure controls whether the grpc server is insecure or uses certs GRPCInsecure bool `mapstructure:"grpcInsecure" json:"grpcInsecure,omitempty" default:"false"` // Whether the internal worker is enabled for this instance WorkerEnabled bool `mapstructure:"workerEnabled" json:"workerEnabled,omitempty" default:"false"` // ShutdownWait is the time between the readiness probe being offline when a shutdown is triggered and the actual start of cleaning up resources. ShutdownWait time.Duration `mapstructure:"shutdownWait" json:"shutdownWait,omitempty" default:"20s"` }
General server runtime options
type ConfigFileVCS ¶ added in v0.11.0
type ConfigFileVCS struct {
Github ConfigFileGithub `mapstructure:"github" json:"github,omitempty"`
}
type EncryptionConfigFile ¶ added in v0.7.0
type EncryptionConfigFile struct { // MasterKeyset is the raw master keyset for the instance. This should be a base64-encoded JSON string. You must set // either MasterKeyset, MasterKeysetFile or cloudKms.enabled with CloudKMS credentials MasterKeyset string `mapstructure:"masterKeyset" json:"masterKeyset,omitempty"` // MasterKeysetFile is the path to the master keyset file for the instance. MasterKeysetFile string `mapstructure:"masterKeysetFile" json:"masterKeysetFile,omitempty"` JWT EncryptionConfigFileJWT `mapstructure:"jwt" json:"jwt,omitempty"` // CloudKMS is the configuration for Google Cloud KMS. You must set either MasterKeyset or cloudKms.enabled. CloudKMS EncryptionConfigFileCloudKMS `mapstructure:"cloudKms" json:"cloudKms,omitempty"` }
Encryption options
type EncryptionConfigFileCloudKMS ¶ added in v0.7.0
type EncryptionConfigFileCloudKMS struct { // Enabled controls whether the Cloud KMS service is enabled for this Hatchet instance. Enabled bool `mapstructure:"enabled" json:"enabled,omitempty" default:"false"` // KeyURI is the URI of the key in Google Cloud KMS. This should be in the format of // gcp-kms://... KeyURI string `mapstructure:"keyURI" json:"keyURI,omitempty"` // CredentialsJSON is the JSON credentials for the Google Cloud KMS service account. CredentialsJSON string `mapstructure:"credentialsJSON" json:"credentialsJSON,omitempty"` }
type EncryptionConfigFileJWT ¶ added in v0.7.0
type EncryptionConfigFileJWT struct { // PublicJWTKeyset is a base64-encoded JSON string containing the public keyset which has been encrypted // by the master key. PublicJWTKeyset string `mapstructure:"publicJWTKeyset" json:"publicJWTKeyset,omitempty"` // PublicJWTKeysetFile is the path to the public keyset file for the instance. PublicJWTKeysetFile string `mapstructure:"publicJWTKeysetFile" json:"publicJWTKeysetFile,omitempty"` // PrivateJWTKeyset is a base64-encoded JSON string containing the private keyset which has been encrypted // by the master key. PrivateJWTKeyset string `mapstructure:"privateJWTKeyset" json:"privateJWTKeyset,omitempty"` // PrivateJWTKeysetFile is the path to the private keyset file for the instance. PrivateJWTKeysetFile string `mapstructure:"privateJWTKeysetFile" json:"privateJWTKeysetFile,omitempty"` }
type MessageQueueConfigFile ¶ added in v0.16.0
type MessageQueueConfigFile struct { Kind string `mapstructure:"kind" json:"kind,omitempty" validate:"required"` RabbitMQ RabbitMQConfigFile `mapstructure:"rabbitmq" json:"rabbitmq,omitempty" validate:"required"` }
type PosthogConfigFile ¶ added in v0.20.1
type PosthogConfigFile struct { // Enabled controls whether the Posthog service is enabled for this Hatchet instance. Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"` // APIKey is the API key for the Posthog instance ApiKey string `mapstructure:"apiKey" json:"apiKey,omitempty"` // Endpoint is the endpoint for the Posthog instance Endpoint string `mapstructure:"endpoint" json:"endpoint,omitempty"` }
type RabbitMQConfigFile ¶
type RabbitMQConfigFile struct {
URL string `mapstructure:"url" json:"url,omitempty" validate:"required" default:"amqp://user:password@localhost:5672/"`
}
type SentryConfigFile ¶ added in v0.15.2
type SentryConfigFile struct { // Enabled controls whether the Sentry service is enabled for this Hatchet instance. Enabled bool `mapstructure:"enabled" json:"enabled,omitempty"` // DSN is the Data Source Name for the Sentry instance DSN string `mapstructure:"dsn" json:"dsn,omitempty"` // Environment is the environment that the instance is running in Environment string `mapstructure:"environment" json:"environment,omitempty" default:"development"` }
type ServerConfig ¶
type ServerConfig struct { *database.Config Auth AuthConfig Alerter errors.Alerter Analytics analytics.Analytics Encryption encryption.EncryptionService Runtime ConfigFileRuntime Services []string Namespaces []string MessageQueue msgqueue.MessageQueue Logger *zerolog.Logger TLSConfig *tls.Config SessionStore *cookie.UserSessionStore Validator validator.Validator Ingestor ingestor.Ingestor OpenTelemetry shared.OpenTelemetryConfigFile VCSProviders map[vcs.VCSRepositoryKind]vcs.VCSProvider InternalClient client.Client }
func (*ServerConfig) HasService ¶
func (c *ServerConfig) HasService(name string) bool
type ServerConfigFile ¶
type ServerConfigFile struct { Auth ConfigFileAuth `mapstructure:"auth" json:"auth,omitempty"` Alerting AlertingConfigFile `mapstructure:"alerting" json:"alerting,omitempty"` Analytics AnalyticsConfigFile `mapstructure:"analytics" json:"analytics,omitempty"` Encryption EncryptionConfigFile `mapstructure:"encryption" json:"encryption,omitempty"` Runtime ConfigFileRuntime `mapstructure:"runtime" json:"runtime,omitempty"` MessageQueue MessageQueueConfigFile `mapstructure:"msgQueue" json:"msgQueue,omitempty"` Services []string `` /* 178-byte string literal not displayed */ TLS shared.TLSConfigFile `mapstructure:"tls" json:"tls,omitempty"` Logger shared.LoggerConfigFile `mapstructure:"logger" json:"logger,omitempty"` OpenTelemetry shared.OpenTelemetryConfigFile `mapstructure:"otel" json:"otel,omitempty"` VCS ConfigFileVCS `mapstructure:"vcs" json:"vcs,omitempty"` }
Click to show internal directories.
Click to hide internal directories.