config

package
v2.4.0 Latest Latest
Warning

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

Go to latest
Published: Aug 25, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultListenAddr = "127.0.0.1:8080"
	DefaultCacheDir   = "/tmp/llm_proxy"
)

Variables

View Source
var LogSourceConfigAllTrue = LogSourceConfig{
	LogConnectionStats: true,
	LogRequestHeaders:  true,
	LogRequest:         true,
	LogResponseHeaders: true,
	LogResponse:        true,
}

Functions

func NewCacheBehavior added in v2.4.0

func NewCacheBehavior(dir string, engineTitle string) (*cacheBehavior, error)

NewCacheBehavior creates a new cacheBehavior object

Types

type AppMode

type AppMode int
const (
	ProxyRunMode AppMode = iota
	CacheMode
	APIAuditMode
)

func (AppMode) String added in v2.4.0

func (a AppMode) String() string

type CacheEngine added in v2.4.0

type CacheEngine int
const (
	CacheEngineMemory CacheEngine = iota
	CacheEngineBolt
)

func (CacheEngine) String added in v2.4.0

func (c CacheEngine) String() string

type Config

type Config struct {
	AppMode       AppMode
	Cache         *cacheBehavior
	HeaderFilters *HeaderFiltersContainer
	HttpBehavior  *httpBehavior
	TrafficLogger *trafficLogger
	// contains filtered or unexported fields
}

Config is the main config mega-struct

func NewDefaultConfig

func NewDefaultConfig() *Config

func (*Config) EnableOutputDebug added in v2.2.0

func (cfg *Config) EnableOutputDebug()

func (*Config) EnableOutputTrace added in v2.2.0

func (cfg *Config) EnableOutputTrace()

func (*Config) EnableOutputVerbose added in v2.2.0

func (cfg *Config) EnableOutputVerbose()

func (*Config) GetLogger added in v2.2.0

func (cfg *Config) GetLogger() *slog.Logger

func (*Config) GetLoggerLevel added in v2.2.0

func (cfg *Config) GetLoggerLevel() slog.Level

func (*Config) GetTerminalOutputFormat added in v2.2.0

func (cfg *Config) GetTerminalOutputFormat() LogFormat

func (*Config) IsTraceEnabled added in v2.2.0

func (cfg *Config) IsTraceEnabled() bool

IsOutputDebug returns true if the log is configured to add the source file to the log output

func (*Config) IsVerboseOrHigher

func (cfg *Config) IsVerboseOrHigher() bool

IsVerboseOrHigher returns 1 if the log level is verbose or higher

func (*Config) SetLoggerLevel

func (cfg *Config) SetLoggerLevel()

func (*Config) SetTerminalOutputFormat added in v2.2.0

func (cfg *Config) SetTerminalOutputFormat(terminalLogFormat string) (LogFormat, error)

func (*Config) SetTrafficLogFormat added in v2.2.0

func (cfg *Config) SetTrafficLogFormat(logfmt string) error

type HeaderFilterGroup added in v2.3.0

type HeaderFilterGroup struct {
	Headers []string // user-editable list of headers to filter
	// contains filtered or unexported fields
}

HeaderFilterGroup is an object used to filter headers for a specific purpose, such as when reading existing logs (remove content-type), writing new logs (remove auth), or when sending requests to upstream.

func NewHeaderFilterGroup added in v2.3.0

func NewHeaderFilterGroup(name string, userHeaders []string, extraHeaders ...[]string) *HeaderFilterGroup

NewHeaderFilterGroup creates a new HeaderFilterGroup

func (*HeaderFilterGroup) FilterHeaders added in v2.3.0

func (hg *HeaderFilterGroup) FilterHeaders(headers http.Header, additionalHeaders ...string) http.Header

FilterHeaders makes a shallow copy of the headers map and removes any headers that are in the filter group. additionalHeaders is a variadic parameter that allows for additional headers to be removed from the new map that will be returned by this method.

func (*HeaderFilterGroup) IsHeaderInGroup added in v2.3.0

func (hg *HeaderFilterGroup) IsHeaderInGroup(header string) bool

IsHeaderInGroup returns true if the header should be filtered by this group

func (*HeaderFilterGroup) String added in v2.3.0

func (hfg *HeaderFilterGroup) String() string

type HeaderFiltersContainer added in v2.3.0

type HeaderFiltersContainer struct {
	// Headers set by the upstream, to be filtered from requests stored in the cache
	ResponseToCache *HeaderFilterGroup

	// Headers set by the client, to be omitted from logs
	RequestToLogs *HeaderFilterGroup // filter-request-headers-to-logs

	// Headers set by upstream, to be omitted from logs
	ResponseToLogs *HeaderFilterGroup // filter-response-headers-to-logs

	// Headers set by the client, to be filtered from requests sent upstream
	RequestToUpstream *HeaderFilterGroup // filter-request-headers-to-upstream

	// Headers set by upstream, to be filtered from the responses sent to the client
	ResponseToClient *HeaderFilterGroup // filter-response-headers-to-client
}

HeaderFiltersContainer holds the configuration for filtering headers

func NewHeaderFiltersContainer added in v2.3.0

func NewHeaderFiltersContainer() *HeaderFiltersContainer

NewHeaderFiltersContainer creates a new HeaderFiltersContainer with default values

func (*HeaderFiltersContainer) BuildIndexes added in v2.3.0

func (hg *HeaderFiltersContainer) BuildIndexes()

BuildIndexes rebuilds the internal indexes for the header filters

type LogFormat added in v2.2.0

type LogFormat int
const (
	LogFormat_JSON LogFormat = iota
	LogFormat_TXT
)

func StringToLogFormat added in v2.2.0

func StringToLogFormat(logFormat string) (LogFormat, error)

StringToLogFormat converts a string to a LogLevel enum value.

func (LogFormat) String added in v2.2.0

func (f LogFormat) String() string

type LogSourceConfig

type LogSourceConfig struct {
	LogConnectionStats bool
	LogRequestHeaders  bool
	LogRequest         bool
	LogResponseHeaders bool
	LogResponse        bool
}

LogSourceConfig holds the configuration toggles for logging request and response data

func (*LogSourceConfig) String

func (l *LogSourceConfig) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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