bootstrap

package
v1.49.0 Latest Latest
Warning

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

Go to latest
Published: Mar 7, 2025 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const ApplicationName = "transaction"

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	EnvName                    string `env:"ENV_NAME"`
	LogLevel                   string `env:"LOG_LEVEL"`
	ServerAddress              string `env:"SERVER_ADDRESS"`
	PrimaryDBHost              string `env:"DB_HOST"`
	PrimaryDBUser              string `env:"DB_USER"`
	PrimaryDBPassword          string `env:"DB_PASSWORD"`
	PrimaryDBName              string `env:"DB_NAME"`
	PrimaryDBPort              string `env:"DB_PORT"`
	ReplicaDBHost              string `env:"DB_REPLICA_HOST"`
	ReplicaDBUser              string `env:"DB_REPLICA_USER"`
	ReplicaDBPassword          string `env:"DB_REPLICA_PASSWORD"`
	ReplicaDBName              string `env:"DB_REPLICA_NAME"`
	ReplicaDBPort              string `env:"DB_REPLICA_PORT"`
	MaxOpenConnections         int    `env:"DB_MAX_OPEN_CONNS"`
	MaxIdleConnections         int    `env:"DB_MAX_IDLE_CONNS"`
	MongoURI                   string `env:"MONGO_URI"`
	MongoDBHost                string `env:"MONGO_HOST"`
	MongoDBName                string `env:"MONGO_NAME"`
	MongoDBUser                string `env:"MONGO_USER"`
	MongoDBPassword            string `env:"MONGO_PASSWORD"`
	MongoDBPort                string `env:"MONGO_PORT"`
	MaxPoolSize                int    `env:"MONGO_MAX_POOL_SIZE"`
	CasdoorAddress             string `env:"CASDOOR_ADDRESS"`
	CasdoorClientID            string `env:"CASDOOR_CLIENT_ID"`
	CasdoorClientSecret        string `env:"CASDOOR_CLIENT_SECRET"`
	CasdoorOrganizationName    string `env:"CASDOOR_ORGANIZATION_NAME"`
	CasdoorApplicationName     string `env:"CASDOOR_APPLICATION_NAME"`
	CasdoorModelName           string `env:"CASDOOR_MODEL_NAME"`
	JWKAddress                 string `env:"CASDOOR_JWK_ADDRESS"`
	RabbitURI                  string `env:"RABBITMQ_URI"`
	RabbitMQHost               string `env:"RABBITMQ_HOST"`
	RabbitMQPortHost           string `env:"RABBITMQ_PORT_HOST"`
	RabbitMQPortAMQP           string `env:"RABBITMQ_PORT_AMPQ"`
	RabbitMQUser               string `env:"RABBITMQ_DEFAULT_USER"`
	RabbitMQPass               string `env:"RABBITMQ_DEFAULT_PASS"`
	RabbitMQBalanceCreateQueue string `env:"RABBITMQ_BALANCE_CREATE_QUEUE"`
	OtelServiceName            string `env:"OTEL_RESOURCE_SERVICE_NAME"`
	OtelLibraryName            string `env:"OTEL_LIBRARY_NAME"`
	OtelServiceVersion         string `env:"OTEL_RESOURCE_SERVICE_VERSION"`
	OtelDeploymentEnv          string `env:"OTEL_RESOURCE_DEPLOYMENT_ENVIRONMENT"`
	OtelColExporterEndpoint    string `env:"OTEL_EXPORTER_OTLP_ENDPOINT"`
	EnableTelemetry            bool   `env:"ENABLE_TELEMETRY"`
	RedisHost                  string `env:"REDIS_HOST"`
	RedisPort                  string `env:"REDIS_PORT"`
	RedisUser                  string `env:"REDIS_USER"`
	RedisPassword              string `env:"REDIS_PASSWORD"`
	AuthEnabled                bool   `env:"AUTH_ENABLED"`
	AuthHost                   string `env:"AUTH_HOST"`
}

Config is the top level configuration struct for the entire application.

type MultiQueueConsumer added in v1.48.0

type MultiQueueConsumer struct {
	UseCase *command.UseCase
	// contains filtered or unexported fields
}

MultiQueueConsumer represents a multi-queue consumer.

func NewMultiQueueConsumer added in v1.48.0

func NewMultiQueueConsumer(routes *rabbitmq.ConsumerRoutes, useCase *command.UseCase) *MultiQueueConsumer

NewMultiQueueConsumer create a new instance of MultiQueueConsumer.

func (*MultiQueueConsumer) Run added in v1.48.0

func (mq *MultiQueueConsumer) Run(l *pkg.Launcher) error

Run starts consumers for all registered queues.

type Server

type Server struct {
	mlog.Logger
	mopentelemetry.Telemetry
	// contains filtered or unexported fields
}

Server represents the http server for Ledger services.

func NewServer

func NewServer(cfg *Config, app *fiber.App, logger mlog.Logger, telemetry *mopentelemetry.Telemetry) *Server

NewServer creates an instance of Server.

func (*Server) Run

func (s *Server) Run(l *pkg.Launcher) error

Run runs the server.

func (*Server) ServerAddress

func (s *Server) ServerAddress() string

ServerAddress returns is a convenience method to return the server address.

type Service

type Service struct {
	*Server
	*MultiQueueConsumer
	mlog.Logger
}

Service is the application glue where we put all top level components to be used.

func InitServers

func InitServers() *Service

InitServers initiate http and grpc servers.

func (*Service) Run

func (app *Service) Run()

Run starts the application. This is the only necessary code to run an app in main.go

Jump to

Keyboard shortcuts

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