config

package
v0.0.0-...-d7ee072 Latest Latest
Warning

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

Go to latest
Published: Dec 15, 2024 License: Apache-2.0 Imports: 8 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 {
	ServiceName         string `env:"SERVICE_NAME" envDefault:"events-processing-platform"`
	Logger              logger.Config
	EventStoreConfig    eventstoredb.EventStoreConfig
	GrpcClientConfig    config.GrpcClientConfig
	Neo4j               config.Neo4jConfig
	PostgresConfig      config.PostgresConfig
	PostgresAsyncConfig config.PostgresAsyncConfig
	Jaeger              tracing.JaegerConfig
	RabbitMQConfig      config.RabbitMQConfig
	Subscriptions       Subscriptions
	Services            Services
	EventNotifications  EventNotifications
	Temporal            config.TemporalConfig
}

func InitConfig

func InitConfig() (*Config, error)

type ContractSubscription

type ContractSubscription struct {
	Enabled           bool   `env:"EVENT_STORE_SUBSCRIPTIONS_CONTRACT_ENABLED" envDefault:"true"`
	GroupName         string `env:"EVENT_STORE_SUBSCRIPTIONS_CONTRACT_GROUP_NAME" envDefault:"contract-v3" validate:"required"`
	Prefix            string `env:"EVENT_STORE_SUBSCRIPTIONS_CONTRACT_PREFIX" envDefault:"contract-" validate:"required"`
	PoolSize          int    `env:"EVENT_STORE_SUBSCRIPTIONS_CONTRACT_POOL_SIZE" envDefault:"5" validate:"required,gte=0"`
	BufferSizeClient  uint32 `env:"EVENT_STORE_SUBSCRIPTIONS_CONTRACT_CLIENT_BUFFER_SIZE" envDefault:"10" validate:"required,gte=0"`
	MessageTimeoutSec int32  `env:"EVENT_STORE_SUBSCRIPTIONS_CONTRACT_MESSAGE_TIMEOUT" envDefault:"120" validate:"required,gte=0"`
}

type EventNotifications

type EventNotifications struct {
	SlackConfig struct {
		InternalAlertsRegisteredWebhook string `env:"SLACK_INTERNAL_ALERTS_REGISTERED_WEBHOOK" envDefault:""`
	}
}

type GraphSubscription

type GraphSubscription struct {
	Enabled              bool   `env:"EVENT_STORE_SUBSCRIPTIONS_GRAPH_ENABLED" envDefault:"true"`
	GroupName            string `env:"EVENT_STORE_SUBSCRIPTIONS_GRAPH_GROUP_NAME" envDefault:"graph-v5" validate:"required"`
	PoolSize             int    `env:"EVENT_STORE_SUBSCRIPTIONS_GRAPH_POOL_SIZE" envDefault:"10" validate:"required,gte=0"`
	BufferSizeClient     uint32 `env:"EVENT_STORE_SUBSCRIPTIONS_GRAPH_CLIENT_BUFFER_SIZE" envDefault:"10" validate:"required,gte=0"`
	CheckpointLowerBound int32  `env:"EVENT_STORE_SUBSCRIPTIONS_GRAPH_CHECKPOINT_LOWER_BOUND" envDefault:"10" validate:"required,gte=0"`
}

type InvoiceSubscription

type InvoiceSubscription struct {
	Enabled           bool   `env:"EVENT_STORE_INVOICE_NOTIFICATIONS_ENABLED" envDefault:"true"`
	GroupName         string `env:"EVENT_STORE_INVOICE_NOTIFICATIONS_GROUP_NAME" envDefault:"invoice-v3" validate:"required"`
	PoolSize          int    `env:"EVENT_STORE_INVOICE_NOTIFICATIONS_POOL_SIZE" envDefault:"5" validate:"required,gte=0"`
	MessageTimeoutSec int32  `env:"EVENT_STORE_INVOICE_NOTIFICATIONS_MESSAGE_TIMEOUT" envDefault:"300" validate:"required,gte=0"`
	BufferSizeClient  uint32 `env:"EVENT_STORE_INVOICE_NOTIFICATIONS_CLIENT_BUFFER_SIZE" envDefault:"5" validate:"required,gte=0"`
	IgnoreEvents      bool   `env:"EVENT_STORE_INVOICE_NOTIFICATIONS_IGNORE_EVENTS" envDefault:"false"`
	PdfConverterUrl   string `env:"EVENT_STORE_INVOICE_NOTIFICATIONS_PDF_CONVERTER_URL" envDefault:"http://localhost:11006"`
}

type LocationValidationSubscription

type LocationValidationSubscription struct {
	Enabled          bool   `env:"EVENT_STORE_SUBSCRIPTIONS_LOCATION_VALIDATION_ENABLED" envDefault:"true"`
	GroupName        string `env:"EVENT_STORE_SUBSCRIPTIONS_LOCATION_VALIDATION_GROUP_NAME" envDefault:"locationValidation-v3" validate:"required"`
	Prefix           string `env:"EVENT_STORE_SUBSCRIPTIONS_LOCATION_PREFIX" envDefault:"location-" validate:"required"`
	PoolSize         int    `env:"EVENT_STORE_SUBSCRIPTIONS_LOCATION_VALIDATION_POOL_SIZE" envDefault:"5" validate:"required,gte=0"`
	BufferSizeClient uint32 `env:"EVENT_STORE_SUBSCRIPTIONS_LOCATION_VALIDATION_CLIENT_BUFFER_SIZE" envDefault:"10" validate:"required,gte=0"`
}

type NotificationsSubscription

type NotificationsSubscription struct {
	Enabled          bool   `env:"EVENT_STORE_SUBSCRIPTIONS_NOTIFICATIONS_ENABLED" envDefault:"true"`
	GroupName        string `env:"EVENT_STORE_SUBSCRIPTIONS_NOTIFICATIONS_GROUP_NAME" envDefault:"notifications-v3" validate:"required"`
	PoolSize         int    `env:"EVENT_STORE_SUBSCRIPTIONS_NOTIFICATIONS_POOL_SIZE" envDefault:"5" validate:"required,gte=0"`
	BufferSizeClient uint32 `env:"EVENT_STORE_SUBSCRIPTIONS_NOTIFICATIONS_CLIENT_BUFFER_SIZE" envDefault:"10" validate:"required,gte=0"`
	IgnoreEvents     bool   `env:"EVENT_STORE_SUBSCRIPTIONS_NOTIFICATIONS_IGNORE_EVENTS" envDefault:"true"`
	RedirectUrl      string `env:"EVENT_STORE_SUBSCRIPTIONS_NOTIFICATIONS_REDIRECT_URL" envDefault:"https://app.openline.dev"`
}

type OrganizationSubscription

type OrganizationSubscription struct {
	Enabled                      bool   `env:"EVENT_STORE_SUBSCRIPTIONS_ORGANIZATION_ENABLED" envDefault:"true"`
	GroupName                    string `env:"EVENT_STORE_SUBSCRIPTIONS_ORGANIZATION_GROUP_NAME" envDefault:"organization-v3" validate:"required"`
	Prefix                       string `env:"EVENT_STORE_SUBSCRIPTIONS_ORGANIZATION_PREFIX" envDefault:"organization-" validate:"required"`
	PoolSize                     int    `env:"EVENT_STORE_SUBSCRIPTIONS_ORGANIZATION_POOL_SIZE" envDefault:"5" validate:"required,gte=0"`
	BufferSizeClient             uint32 `env:"EVENT_STORE_SUBSCRIPTIONS_ORGANIZATION_CLIENT_BUFFER_SIZE" envDefault:"10" validate:"required,gte=0"`
	MessageTimeoutSec            int32  `env:"EVENT_STORE_SUBSCRIPTIONS_ORGANIZATION_MESSAGE_TIMEOUT" envDefault:"180" validate:"required,gte=0"`
	CheckpointLowerBound         int32  `env:"EVENT_STORE_SUBSCRIPTIONS_ORGANIZATION_CHECKPOINT_LOWER_BOUND" envDefault:"10" validate:"required,gte=0"`
	DeletePersistentSubscription bool   `env:"EVENT_STORE_SUBSCRIPTIONS_ORGANIZATION_DELETE_SUBSCRIPTION" envDefault:"false"`
}

type PhoneNumberValidationSubscription

type PhoneNumberValidationSubscription struct {
	Enabled          bool   `env:"EVENT_STORE_SUBSCRIPTIONS_PHONE_NUMBER_VALIDATION_ENABLED" envDefault:"true"`
	GroupName        string `env:"EVENT_STORE_SUBSCRIPTIONS_PHONE_NUMBER_VALIDATION_GROUP_NAME" envDefault:"phoneNumberValidation-v3" validate:"required"`
	Prefix           string `env:"EVENT_STORE_SUBSCRIPTIONS_PHONE_NUMBER_PREFIX" envDefault:"phone_number-" validate:"required"`
	PoolSize         int    `env:"EVENT_STORE_SUBSCRIPTIONS_PHONE_NUMBER_VALIDATION_POOL_SIZE" envDefault:"5" validate:"required,gte=0"`
	BufferSizeClient uint32 `env:"EVENT_STORE_SUBSCRIPTIONS_PHONE_NUMBER_VALIDATION_CLIENT_BUFFER_SIZE" envDefault:"10" validate:"required,gte=0"`
}

type Services

type Services struct {
	EnrichmentApi struct {
		Url    string `env:"ENRICHMENT_API_URL" validate:"required"`
		ApiKey string `env:"ENRICHMENT_API_KEY" validate:"required"`
	}
	ValidationApi struct {
		Url    string `env:"VALIDATION_API_URL" validate:"required"`
		ApiKey string `env:"VALIDATION_API_KEY" validate:"required"`
	}
	Ai struct {
		ApiPath string `env:"AI_API_PATH,required" envDefault:"N/A"`
		ApiKey  string `env:"AI_API_KEY,required" envDefault:"N/A"`
	}
	OpenAi struct {
		Organization string `env:"OPENAI_ORGANIZATION,required" envDefault:""`
	}
	Anthropic 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 */
	}
	Novu               config.NovuConfig
	FileStoreApiConfig fsc.FileStoreApiConfig
	CustomerOsApi      struct {
		ApiUrl string `env:"CUSTOMER_OS_API_URL" envDefault:"https://api.customeros.ai" validate:"required"`
	}
}

type Subscriptions

type Subscriptions struct {
	GraphSubscription                 GraphSubscription
	PhoneNumberValidationSubscription PhoneNumberValidationSubscription
	LocationValidationSubscription    LocationValidationSubscription
	OrganizationSubscription          OrganizationSubscription
	ContractSubscription              ContractSubscription
	NotificationsSubscription         NotificationsSubscription
	InvoiceSubscription               InvoiceSubscription
}

Jump to

Keyboard shortcuts

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