config

package
v0.2.24 Latest Latest
Warning

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

Go to latest
Published: May 18, 2025 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AppConfig

type AppConfig struct {
	Environment       string `env:"ENVIRONMENT,required" envDefault:"dev"`
	APIPort           string `env:"PORT,required" envDefault:"12222"`
	APIKey            string `env:"API_KEY,required"`
	TrackingPublicUrl string `env:"TRACKING_PUBLIC_URL" envDefault:"https://custosmetrics.com"`
	EMLStorageBucket  string `env:"EML_STORAGE_BUCKET" envDefault:"emails-test"`
	CronDisable       bool   `env:"CRON_DISABLE" envDefault:"false"`
}

type CloudflareConfig

type CloudflareConfig struct {
	Url    string `env:"CLOUDFLARE_URL" envDefault:"https://api.cloudflare.com/client/v4" validate:"required"`
	ApiKey string `env:"CLOUDFLARE_API_KEY" `
	Email  string `env:"CLOUDFLARE_API_EMAIL"`
}

type Config

type Config struct {
	AppConfig               *AppConfig
	Logger                  *logger.Config
	NATSConfig              *NATSConfig
	OpenTelemetry           *telemetry.OpenTelemetryConfig
	MailstackDatabaseConfig *MailstackDatabaseConfig
	DataWarehouseConfig     *DataWarehouseConfig
	CustomerOSAPIConfig     *CustomerOSAPIConfig
	R2StorageConfig         *R2StorageConfig
	DomainConfig            *DomainConfig
	NamecheapConfig         *NamecheapConfig
	CloudflareConfig        *CloudflareConfig
	OpenSrsConfig           *OpenSRSConfig
	GoogleOAuthConfig       *GoogleOAuthConfig
}

func InitConfig

func InitConfig() (*Config, error)

type CustomerOSAPIConfig added in v0.1.1

type CustomerOSAPIConfig struct {
	Url    string `env:"CUSTOMER_OS_API_URL" envDefault:"https://api.customeros.ai" validate:"required"`
	ApiKey string `env:"CUSTOMER_OS_API_KEY"`
}

type DataWarehouseConfig added in v0.2.9

type DataWarehouseConfig struct {
	Host            string `env:"WAREHOUSE_DB_HOST,required"`
	Port            string `env:"WAREHOUSE_DB_PORT,required"`
	User            string `env:"WAREHOUSE_DB_USER,required"`
	DBName          string `env:"WAREHOUSE_DB_NAME,required"`
	Password        string `env:"WAREHOUSE_DB_PASSWORD,required"`
	MaxConn         int    `env:"WAREHOUSE_DB_MAX_CONN"`
	MaxIdleConn     int    `env:"WAREHOUSE_DB_MAX_IDLE_CONN"`
	ConnMaxLifetime int    `env:"WAREHOUSE_DB_CONN_MAX_LIFETIME"`
	LogLevel        string `env:"WAREHOUSE_DB_LOG_LEVEL" envDefault:"WARN"`
}

type DomainConfig

type DomainConfig struct {
	SupportedTlds []string `env:"MAILSTACK_SUPPORTED_TLD" envDefault:"com"`
}

type GoogleOAuthConfig added in v0.2.16

type GoogleOAuthConfig struct {
	ClientID      string `env:"GOOGLE_OAUTH_CLIENT_ID" envDefault:""`
	ClientSecret  string `env:"GOOGLE_OAUTH_CLIENT_SECRET" envDefault:""`
	EncryptionKey string `env:"EMAIL_ENCRYPTION_KEY" envDefault:""`
}

type MailstackDatabaseConfig

type MailstackDatabaseConfig struct {
	Host            string `env:"MAILSTACK_POSTGRES_HOST,required"`
	Port            string `env:"MAILSTACK_POSTGRES_PORT,required"`
	User            string `env:"MAILSTACK_POSTGRES_USER,required"`
	DBName          string `env:"MAILSTACK_POSTGRES_DB_NAME,required"`
	Password        string `env:"MAILSTACK_POSTGRES_PASSWORD,required"`
	MaxConn         int    `env:"MAILSTACK_POSTGRES_DB_MAX_CONN"`
	MaxIdleConn     int    `env:"MAILSTACK_POSTGRES_DB_MAX_IDLE_CONN"`
	ConnMaxLifetime int    `env:"MAILSTACK_POSTGRES_DB_CONN_MAX_LIFETIME"`
	LogLevel        string `env:"MAILSTACK_POSTGRES_LOG_LEVEL" envDefault:"WARN"`
}

type NATSConfig added in v0.2.5

type NATSConfig struct {
	Node1 string `env:"NATS_NODE_1_URL,required"`
	Node2 string `env:"NATS_NODE_2_URL"`
	Node3 string `env:"NATS_NODE_3_URL"`
}

type NamecheapConfig

type NamecheapConfig struct {
	Url                   string  `env:"NAMECHEAP_URL" envDefault:"https://api.namecheap.com/xml.response" validate:"required"`
	ApiKey                string  `env:"NAMECHEAP_API_KEY" `
	ApiUser               string  `env:"NAMECHEAP_API_USER" `
	ApiUsername           string  `env:"NAMECHEAP_API_USERNAME"`
	ApiClientIp           string  `env:"NAMECHEAP_API_CLIENT_IP"`
	MaxPrice              float64 `env:"NAMECHEAP_MAX_PRICE" envDefault:"20.0" `
	Years                 int     `env:"NAMECHEAP_YEARS" envDefault:"1" `
	RegistrantFirstName   string  `env:"NAMECHEAP_REGISTRANT_FIRST_NAME" `
	RegistrantLastName    string  `env:"NAMECHEAP_REGISTRANT_LAST_NAME" `
	RegistrantCompanyName string  `env:"NAMECHEAP_REGISTRANT_COMPANY_NAME" `
	RegistrantJobTitle    string  `env:"NAMECHEAP_REGISTRANT_JOB_TITLE" `
	RegistrantAddress1    string  `env:"NAMECHEAP_REGISTRANT_ADDRESS1" `
	RegistrantCity        string  `env:"NAMECHEAP_REGISTRANT_CITY" `
	RegistrantState       string  `env:"NAMECHEAP_REGISTRANT_STATE" `
	RegistrantZIP         string  `env:"NAMECHEAP_REGISTRANT_ZIP" `
	RegistrantCountry     string  `env:"NAMECHEAP_REGISTRANT_COUNTRY" `
	RegistrantPhoneNumber string  `env:"NAMECHEAP_REGISTRANT_PHONE_NUMBER" `
	RegistrantEmail       string  `env:"NAMECHEAP_REGISTRANT_EMAIL" `
}

type OpenSRSConfig

type OpenSRSConfig struct {
	Url      string `env:"OPENSRS_URL" envDefault:"https://admin.a.hostedemail.com"`
	ApiKey   string `env:"OPENSRS_API_KEY"`
	Username string `env:"OPENSRS_API_USERNAME"`
}

type R2StorageConfig

type R2StorageConfig struct {
	AccountID             string `env:"CLOUDFLARE_R2_ACCOUNT_ID,required"`
	AccessKeyID           string `env:"CLOUDFLARE_R2_ACCESS_KEY_ID,required"`
	AccessKeySecret       string `env:"CLOUDFLARE_R2_ACCESS_KEY_SECRET,required"`
	EmailAttachmentBucket string `env:"BUCKET_NAME_EMAIL_ATTACHMENT" envDefault:"attachments"`
}

Jump to

Keyboard shortcuts

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