config

package
v0.0.0-...-c85e528 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewNeo4jDriver

func NewNeo4jDriver(cfg Neo4jConfig) (neo4j.DriverWithContext, error)

func NewPostgresDBConn

func NewPostgresDBConn(host, port, user, password, db, logLevel string, maxConn, maxIdleConn, connMaxLifetime int) (*sql.DB, *gorm.DB, error)

Types

type AnthropicConfig

type AnthropicConfig struct {
	ApiPath string `env:"ANTHROPIC_API_PATH" envDefault:"https://api.anthropic.com/v1/messages"`
	ApiKey  string `env:"ANTHROPIC_API_KEY" envDefault:""`
	AnthropicPrompts
}

type AnthropicPrompts

type AnthropicPrompts struct {
	IndustryLookupPrompt1    string `` /* 2050-byte string literal not displayed */
	IndustryLookupPrompt2    string `` /* 1839-byte string literal not displayed */
	EmailSummaryPrompt       string `env:"ANTHROPIC_EMAIL_SUMMARY_PROMPT,required" envDefault:"Make a 120 characters summary for this html email: %v"`
	EmailActionsItemsPrompt  string `` /* 283-byte string literal not displayed */
	LocationEnrichmentPrompt string `` /* 996-byte string literal not displayed */
}

type AzureOAuthConfig

type AzureOAuthConfig struct {
	ClientId     string `env:"AZURE_OAUTH_CLIENT_ID" envDefault:""`
	ClientSecret string `env:"AZURE_OAUTH_CLIENT_SECRET" envDefault:""`
}

type BetterContactConfig

type BetterContactConfig struct {
	Url                         string `env:"BETTER_CONTACT_API_URL"`
	ApiKey                      string `env:"BETTER_CONTACT_API_KEY"`
	CallbackUrl                 string `env:"BETTER_CONTACT_CALLBACK_URL"`
	BetterContactCallbackApiKey string `env:"BETTER_CONTACT_CALLBACK_API_KEY"`
}

type BrandfetchConfig

type BrandfetchConfig struct {
	Url     string `env:"BRANDFETCH_API_URL"`
	Limit   int    `env:"BRANDFETCH_LIMIT" envDefault:"250"`
	TtlDays int    `env:"BRANDFETCH_TTL_DAYS" envDefault:"180" required:"true"`
}

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 CommonConfig

type CommonConfig struct {
	Infrastructure InfrastructureConfig
	Internal       InternalServicesConfig
	External       ExternalServicesConfig
}

type CustomerOsApiConfig

type CustomerOsApiConfig struct {
	ApiUrl string `env:"CUSTOMER_OS_API_URL" envDefault:"https://api.customeros.ai"`
	ApiKey string `env:"CUSTOMER_OS_API_KEY"`
}

type EmailConfig

type EmailConfig struct {
	EmailValidationFromDomain                  string `env:"EMAIL_VALIDATION_FROM_DOMAIN"`
	EmailDomainValidationCacheTtlDays          int    `env:"EMAIL_VALIDATION_DOMAIN_CACHE_TTL_DAYS" envDefault:"90"`
	EmailValidationCacheTtlDays                int    `env:"EMAIL_VALIDATION_CACHE_TTL_DAYS" envDefault:"14"`
	EmailValidationSkipProvidersCommaSeparated string `env:"EMAIL_VALIDATION_SKIP_PROVIDERS" envDefault:""`
}

type EnrowConfig

type EnrowConfig struct {
	Enabled               bool   `env:"ENROW_ENABLED" envDefault:"true"`
	ApiUrl                string `env:"ENROW_API_URL" envDefault:"https://api.enrow.io"`
	ApiKey                string `env:"ENROW_API_KEY"`
	CacheTtlDays          int    `env:"ENROW_CACHE_TTL_DAYS" envDefault:"14"`
	MaxWaitResultsSeconds int    `env:"ENROW_MAX_WAIT_RESULTS_SECONDS" envDefault:"5"`
	CallbackUrl           string `env:"ENROW_CALLBACK_URL"`
	EnrowCallbackApiKey   string `env:"ENROW_CALLBACK_API_KEY"`
}

type ExternalServicesConfig

type ExternalServicesConfig struct {
	AnthropicConfig      AnthropicConfig
	AnthropicPrompts     AnthropicPrompts
	BetterContactConfig  BetterContactConfig
	BrandfetchConfig     BrandfetchConfig
	CloudflareConfig     CloudflareConfig
	EnrowConfig          EnrowConfig
	IntegrationAppConfig IntegrationAppConfig
	IpDataConfig         IpDataConfig
	IpHunterConfig       IpHunterConfig
	NamecheapConfig      NamecheapConfig
	NovuCofig            NovuCofig
	OpenSRSConfig        OpenSRSConfig
	PostmarkConfig       PostmarkConfig
	ScrapinConfig        ScrapinConfig
	ScrubbyIoConfig      ScrubbyIoConfig
	SlackConfig          SlackConfig
	SmartyConfig         SmartyConfig
	SnitcherConfig       SnitcherConfig
	StripeConfig         StripeConfig
	TemporalConfig       TemporalConfig
	TrueInboxConfig      TrueInboxConfig
}

type FileStoreConfig

type FileStoreConfig struct {
	FileStoreJwtSecret             string `env:"FILE_STORE_JWT_SECRET"`
	CloudflareImageUploadAccountId string `env:"CLOUDFLARE_IMAGE_UPLOAD_ACCOUNT_ID" envDefault:""`
	CloudflareImageUploadApiKey    string `env:"CLOUDFLARE_IMAGE_UPLOAD_API_KEY" envDefault:""`
	CloudflareImageUploadSignKey   string `env:"CLOUDFLARE_IMAGE_UPLOAD_SIGN_KEY" envDefault:""`
	MaxFileSizeMB                  int64  `env:"MAX_FILE_SIZE_MB"`
	AWS                            struct {
		Region string `env:"AWS_S3_REGION"`
		Bucket string `env:"AWS_S3_BUCKET"`
	}
}

type GoogleOAuthConfig

type GoogleOAuthConfig struct {
	ClientId     string `env:"GOOGLE_OAUTH_CLIENT_ID" envDefault:""`
	ClientSecret string `env:"GOOGLE_OAUTH_CLIENT_SECRET" envDefault:""`
}

type GrpcClientConfig

type GrpcClientConfig struct {
	EventsProcessingPlatformEnabled     bool   `env:"EVENTS_PROCESSING_PLATFORM_ENABLED" envDefault:"true"`
	EventsProcessingPlatformUrl         string `env:"EVENTS_PROCESSING_PLATFORM_URL" `
	EventsProcessingPlatformApiKey      string `env:"EVENTS_PROCESSING_PLATFORM_API_KEY" `
	EventsProcessingPlatformServername  string `env:"EVENTS_PROCESSING_PLATFORM_SERVER_NAME" envDefault:""`
	EventsProcessingPlatformCertificate string `env:"EVENTS_PROCESSING_PLATFORM_CERTIFICATE" envDefault:""`
}

type InfrastructureConfig

type InfrastructureConfig struct {
	PostgresConfig      PostgresConfig
	PostgresAsyncConfig PostgresAsyncConfig
	Neo4jConfig         Neo4jConfig
	GoogleOAuthConfig   GoogleOAuthConfig
	AzureOAuthConfig    AzureOAuthConfig
	GrpcClientConfig    GrpcClientConfig
	RabbitMQConfig      RabbitMQConfig
	JaegerConfig        tracing.JaegerConfig
	LoggerConfig        logger.Config
}

type IntegrationAppConfig

type IntegrationAppConfig struct {
	WorkspaceKey                    string `env:"INTEGRATION_APP_WORKSPACE_KEY"`
	WorkspaceSecret                 string `env:"INTEGRATION_APP_WORKSPACE_SECRET"`
	ApiTriggerUrlCreatePaymentLinks string `env:"INTEGRATION_APP_API_TRIGGER_URL_CREATE_PAYMENT_LINKS"`
}

type InternalServicesConfig

type InternalServicesConfig struct {
	EmailConfig         EmailConfig
	FileStoreConfig     FileStoreConfig
	MailstackConfig     MailstackConfig
	MailSherpaApiConfig MailSherpaApiConfig
	CustomerOsApi       CustomerOsApiConfig
}

type IpDataConfig

type IpDataConfig struct {
	ApiUrl             string `env:"IPDATA_API_URL"`
	ApiKey             string `env:"IPDATA_API_KEY"`
	IpDataCacheTtlDays int    `env:"IPDATA_CACHE_TTL_DAYS" envDefault:"90"`
}

type IpHunterConfig

type IpHunterConfig struct{}

type MailSherpaApiConfig

type MailSherpaApiConfig struct {
	MailsherpaApiUrl string `env:"MAILSHERPA_API_URL" envDefault:"https://mailsherpa.customeros.ai"`
	MailsherpaApiKey string `env:"MAILSHERPA_API_KEY" envDefault:""`
}

type MailstackConfig

type MailstackConfig struct {
	SupportedTlds []string `env:"MAILSTACK_SUPPORTED_TLDS" envDefault:"com"`
}

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 Neo4jConfig

type Neo4jConfig struct {
	Target                          string `env:"NEO4J_TARGET,required"`
	User                            string `env:"NEO4J_AUTH_USER,required,unset"`
	Pwd                             string `env:"NEO4J_AUTH_PWD,required,unset"`
	Realm                           string `env:"NEO4J_AUTH_REALM"`
	MaxConnectionPoolSize           int    `env:"NEO4J_MAX_CONN_POOL_SIZE" envDefault:"100"`
	SocketConnectTimeout            int    `env:"NEO4J_SOCKET_CONN_TIMEOUT_SEC" envDefault:"5"`
	SocketKeepalive                 bool   `env:"NEO4J_SOCKET_KEEP_ALIVE" envDefault:"true"`
	ConnectionAcquisitionTimeoutSec int    `env:"NEO4J_CONN_ACQUISITION_TIMEOUT_SEC" envDefault:"60"`
	LogLevel                        string `env:"NEO4J_LOG_LEVEL" envDefault:"WARNING"`
	Database                        string `env:"NEO4J_DATABASE" envDefault:"neo4j"`
}

type NovuCofig

type NovuCofig struct {
	ApiKey      string `env:"NOVU_API_KEY" envDefault:""`
	FronteraUrl string `env:"NOVU_FRONTERA_URL" envDefault:""`
}

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 PostgresAsyncConfig

type PostgresAsyncConfig struct {
	Host            string `env:"POSTGRES_ASYNC_HOST,required"`
	Port            string `env:"POSTGRES_ASYNC_PORT,required"`
	User            string `env:"POSTGRES_ASYNC_USER,required,unset"`
	Db              string `env:"POSTGRES_ASYNC_DB,required"`
	Password        string `env:"POSTGRES_ASYNC_PASSWORD,required,unset"`
	MaxConn         int    `env:"POSTGRES_ASYNC_DB_MAX_CONN"`
	MaxIdleConn     int    `env:"POSTGRES_ASYNC_DB_MAX_IDLE_CONN"`
	ConnMaxLifetime int    `env:"POSTGRES_ASYNC_DB_CONN_MAX_LIFETIME"`
	LogLevel        string `env:"POSTGRES_LOG_LEVEL" envDefault:"WARN"`
}

type PostgresConfig

type PostgresConfig struct {
	Host            string `env:"POSTGRES_HOST,required"`
	Port            string `env:"POSTGRES_PORT,required"`
	User            string `env:"POSTGRES_USER,required,unset"`
	Db              string `env:"POSTGRES_DB,required"`
	Password        string `env:"POSTGRES_PASSWORD,required,unset"`
	MaxConn         int    `env:"POSTGRES_DB_MAX_CONN"`
	MaxIdleConn     int    `env:"POSTGRES_DB_MAX_IDLE_CONN"`
	ConnMaxLifetime int    `env:"POSTGRES_DB_CONN_MAX_LIFETIME"`
	LogLevel        string `env:"POSTGRES_LOG_LEVEL" envDefault:"WARN"`
}

type PostgresDB

type PostgresDB struct {
	SqlDB  *sql.DB
	GormDB *gorm.DB

	AsyncSqlDB  *sql.DB
	AsyncGormDB *gorm.DB
}

func InitPostgres

func InitPostgres(cfg *CommonConfig) (*PostgresDB, error)

func (*PostgresDB) Close

func (db *PostgresDB) Close()

type PostmarkConfig

type PostmarkConfig struct {
	Url                         string `env:"POSTMARK_URL" envDefault:"https://api.postmarkapp.com"`
	AccountApiKey               string `env:"POSTMARK_ACCOUNT_API_KEY"`
	DefaultInboundStreamWebhook string `env:"POSTMARK_DEFAULT_INBOUND_STREAM_WEBHOOK"`
}

type RabbitMQConfig

type RabbitMQConfig struct {
	Url string `env:"RABBITMQ_URL"`
}

type ScrapinConfig

type ScrapinConfig struct {
	Url     string `env:"SCRAPIN_API_URL" envDefault:"https://api.scrapin.io" required:"true"`
	ApiKey  string `env:"SCRAPIN_API_KEY" required:"true"`
	TtlDays int    `env:"SCRAPIN_TTL_DAYS" envDefault:"90" required:"true"`
}

type ScrubbyIoConfig

type ScrubbyIoConfig struct {
	ApiUrl       string `env:"SCRUBBY_IO_API_URL" envDefault:"https://api.scrubby.io"`
	ApiKey       string `env:"SCRUBBY_IO_API_KEY"`
	CacheTtlDays int    `env:"SCRUBBY_IO_CACHE_TTL_DAYS" envDefault:"90"`
	CallbackUrl  string `env:"SCRUBBY_IO_CALLBACK_URL"`
}

type SlackConfig

type SlackConfig struct {
	ClientID                        string `env:"SLACK_CLIENT_ID"`
	ClientSecret                    string `env:"SLACK_CLIENT_SECRET"`
	NotifyNewTenantRegisteredHook   string `env:"SLACK_NOTIFY_NEW_TENANT_REGISTERED_WEBHOOK"`
	InternalAlertsRegisteredWebhook string `env:"SLACK_INTERNAL_ALERTS_REGISTERED_WEBHOOK" envDefault:""`
	NotifyPostmarkEmail             string `env:"SLACK_NOTIFY_POSTMARK_EMAIL"`
	NotifyFlowGoalAchieved          string `env:"SLACK_NOTIFY_FLOW_GOAL_ACHIEVED"`
}

type SmartyConfig

type SmartyConfig struct {
	AuthId    string `env:"SMARTY_AUTH_ID"`
	AuthToken string `env:"SMARTY_AUTH_TOKEN"`
}

type SnitcherConfig

type SnitcherConfig struct {
	Url    string `env:"SNITCHER_API_URL" required:"true" envDefault:"https://app.snitcher.com/api"`
	ApiKey string `env:"SNITCHER_API_KEY" required:"true"`
}

type StripeConfig

type StripeConfig struct {
	ApiKey string `env:"STRIPE_API_KEY" envDefault:"N/A"`
}

type TemporalConfig

type TemporalConfig struct {
	HostPort            string `env:"TEMPORAL_HOSTPORT" envDefault:"openline-dev-temporal-frontend.openline.svc.cluster.local:7233"`
	Namespace           string `env:"TEMPORAL_NAMESPACE" envDefault:"default"`
	RunWorker           bool   `env:"TEMPORAL_RUN_WORKER" envDefault:"false"`
	NotifyOnFailure     bool   `env:"TEMPORAL_NOTIFY_ON_FAILURE" envDefault:"true"`
	NotifyAfterAttempts int32  `env:"TEMPORAL_NOTIFY_AFTER_ATTEMPTS" envDefault:"7"`
}

type TrueInboxConfig

type TrueInboxConfig struct {
	Enabled      bool   `env:"TRUEINBOX_ENABLED" envDefault:"true"`
	ApiUrl       string `env:"TRUEINBOX_API_URL" envDefault:"https://api.trueinbox.io"`
	ApiKey       string `env:"TRUEINBOX_API_KEY"`
	CacheTtlDays int    `env:"TRUEINBOX_CACHE_TTL_DAYS" envDefault:"30"`
}

Jump to

Keyboard shortcuts

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