config

package
v0.14.1 Latest Latest
Warning

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

Go to latest
Published: Oct 27, 2023 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var RawDefault = struct {
	HealthcheckInterval string `koanf:"healthcheck.interval"`
	TimeFormat          string `koanf:"time_format"`
	MaxPayloadSize      string `koanf:"max_payload_size"`
	DataDirectory       string `koanf:"data_directory"`
	PythonExecutable    string `koanf:"python_executable"`
	SMTPPort            uint16 `koanf:"smtp.port"`
	SMTPMaxPayloadSize  string `koanf:"smtp.max_payload_size"`
	HTTPPort            uint16 `koanf:"http.port"`
	RetentionTraceAge   string `koanf:"retention.trace_age"`
	MailmanWorkers      int    `koanf:"mailman.workers"`
}{
	HealthcheckInterval: "5m",
	TimeFormat:          timeFormat12H,
	SMTPMaxPayloadSize:  "25 MB",
	DataDirectory:       "smtpbridge_data",
	PythonExecutable:    "python3",
	RetentionTraceAge:   "168h",
	SMTPPort:            1025,
	HTTPPort:            8080,
	MailmanWorkers:      1,
}

Functions

func WithFlagSet added in v0.13.0

func WithFlagSet(flags *flag.FlagSet) *flag.FlagSet

WithFlagSet includes CLI flags with the config reading.

Types

type Config

type Config struct {
	Debug                bool
	TimeHourFormat       string
	DatabasePath         string
	AttachmentsDirectory string
	CSRFSecretPath       string
	SessionSecretPath    string
	SessionsDirectory    string
	HealthcheckURL       string
	HealthcheckInterval  time.Duration
	HealthcheckStartup   bool
	MailmanWorkers       int
	HTTPDisable          bool
	HTTPAddress          string
	HTTPPort             uint16
	HTTPURL              string
	SMTPDisable          bool
	SMTPAddress          string
	SMTPMaxMessageBytes  int64
	// IMAPDisable            bool
	// IMAPAddress            string
	Config                 *models.Config
	EndpointFactory        endpoint.Factory
	InternalEndpoints      []models.Endpoint
	InternalRules          []models.Rule
	InternalRuleToEndpoint map[string][]string
}

type Parser added in v0.13.0

type Parser struct {
	// contains filtered or unexported fields
}

func NewParser added in v0.13.0

func NewParser(flags *flag.FlagSet) (Parser, error)

func (Parser) Parse added in v0.13.0

func (p Parser) Parse(raw Raw) (Config, error)

func (Parser) Read added in v0.13.0

func (p Parser) Read() (Raw, error)

type Raw added in v0.11.0

type Raw struct {
	Debug                   bool   `koanf:"debug"`
	TimeFormat              string `koanf:"time_format"`
	DataDirectory           string `koanf:"data_directory"`
	PythonExecutable        string `koanf:"python_executable"`
	RetentionEnvelopeCount  string `koanf:"retention.envelope_count"`
	RetentionEnvelopeAge    string `koanf:"retention.envelope_age"`
	RetentionAttachmentSize string `koanf:"retention.attachment_size"`
	RetentionTraceAge       string `koanf:"retention.trace_age"`
	HealthcheckURL          string `koanf:"healthcheck.url"`
	HealthcheckInterval     string `koanf:"healthcheck.interval"`
	HealthcheckStartup      bool   `koanf:"healthcheck.startup"`
	MailmanWorkers          uint   `koanf:"mailman.workers"`
	SMTPDisable             bool   `koanf:"smtp.disable"`
	SMTPHost                string `koanf:"smtp.host"`
	SMTPPort                uint16 `koanf:"smtp.port"`
	SMTPUsername            string `koanf:"smtp.username"`
	SMTPPassword            string `koanf:"smtp.password"`
	SMTPMaxPayloadSize      string `koanf:"smtp.max_payload_size"`
	HTTPDisable             bool   `koanf:"http.disable"`
	HTTPHost                string `koanf:"http.host"`
	HTTPPort                uint16 `koanf:"http.port"`
	HTTPUsername            string `koanf:"http.username"`
	HTTPPassword            string `koanf:"http.password"`
	HTTPURL                 string `koanf:"http.url"`
	// IMAPDisable             bool    `koanf:"imap.disable"`
	// IMAPHost                string  `koanf:"imap.host"`
	// IMAPPort                uint16  `koanf:"imap.port"`
	Endpoints map[string]RawEndpoint
	Rules     map[string]RawRule
}

type RawEndpoint added in v0.11.0

type RawEndpoint struct {
	Name              string            `koanf:"name"`
	Kind              string            `koanf:"kind"`
	TextDisable       bool              `koanf:"text_disable"`
	TitleTemplate     *string           `koanf:"title_template"`
	BodyTemplate      *string           `koanf:"body_template"`
	AttachmentDisable bool              `koanf:"attachment_disable"`
	Config            map[string]string `koanf:"config"`
}

type RawRule added in v0.11.0

type RawRule struct {
	Name       string   `koanf:"name"`
	Expression string   `koanf:"expression"`
	Endpoints  []string `koanf:"endpoints"`
}

Jump to

Keyboard shortcuts

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