* feat(backend): try a new approach for logs formatting (http) * feat(backend): added logger module * feat(backend): added project/session info to /i endpoint * feat(backend): found a solution for correct caller information * feat(backend): finished logs for http handlers * feat(backend): finished logs for mobile http handlers * feat(backend): finished ender * feat(backend): finished assets * feat(backend): finished heuristics * feat(backend): finished image-storage * feat(backend): finished sink * feat(backend): finished storage * feat(backend): formatted logs in all services * feat(backend): finished foss part * feat(backend): added missed foss part * feat(backend): fixed panic in memory manager and sink service * feat(backend): connectors
47 lines
2.1 KiB
Go
47 lines
2.1 KiB
Go
package http
|
|
|
|
import (
|
|
"openreplay/backend/internal/config/common"
|
|
"openreplay/backend/internal/config/configurator"
|
|
"openreplay/backend/internal/config/objectstorage"
|
|
"openreplay/backend/internal/config/redis"
|
|
"openreplay/backend/pkg/env"
|
|
"openreplay/backend/pkg/logger"
|
|
"time"
|
|
)
|
|
|
|
type Config struct {
|
|
common.Config
|
|
common.Postgres
|
|
redis.Redis
|
|
objectstorage.ObjectsConfig
|
|
HTTPHost string `env:"HTTP_HOST,default="`
|
|
HTTPPort string `env:"HTTP_PORT,required"`
|
|
HTTPTimeout time.Duration `env:"HTTP_TIMEOUT,default=60s"`
|
|
TopicRawWeb string `env:"TOPIC_RAW_WEB,required"`
|
|
TopicRawIOS string `env:"TOPIC_RAW_IOS,required"`
|
|
TopicRawImages string `env:"TOPIC_RAW_IMAGES,required"`
|
|
TopicCanvasImages string `env:"TOPIC_CANVAS_IMAGES,required"`
|
|
BeaconSizeLimit int64 `env:"BEACON_SIZE_LIMIT,required"`
|
|
CompressionThreshold int64 `env:"COMPRESSION_THRESHOLD,default=20000"`
|
|
JsonSizeLimit int64 `env:"JSON_SIZE_LIMIT,default=1000"`
|
|
FileSizeLimit int64 `env:"FILE_SIZE_LIMIT,default=10000000"`
|
|
TokenSecret string `env:"TOKEN_SECRET,required"`
|
|
UAParserFile string `env:"UAPARSER_FILE,required"`
|
|
MaxMinDBFile string `env:"MAXMINDDB_FILE,required"`
|
|
UseProfiler bool `env:"PROFILER_ENABLED,default=false"`
|
|
UseAccessControlHeaders bool `env:"USE_CORS,default=false"`
|
|
ProjectExpiration time.Duration `env:"PROJECT_EXPIRATION,default=10m"`
|
|
RecordCanvas bool `env:"RECORD_CANVAS,default=false"`
|
|
CanvasQuality string `env:"CANVAS_QUALITY,default=low"`
|
|
CanvasFps int `env:"CANVAS_FPS,default=1"`
|
|
MobileQuality string `env:"MOBILE_QUALITY,default=low"` // (low, standard, high)
|
|
MobileFps int `env:"MOBILE_FPS,default=1"`
|
|
WorkerID uint16
|
|
}
|
|
|
|
func New(log logger.Logger) *Config {
|
|
cfg := &Config{WorkerID: env.WorkerID()}
|
|
configurator.Process(log, cfg)
|
|
return cfg
|
|
}
|