app

package
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: Aug 12, 2026 License: AGPL-3.0, AGPL-3.0-or-later Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Run

func Run() error

Types

type AppConfig

type AppConfig struct {
	VerboseLevel       string `env:"APP_VERBOSE_LEVEL" envDefault:"warn"`
	VerboseCount       int    `flag:"verbose"`
	Debug              bool   `env:"APP_DEBUG" envDefault:"false" flag:"debug"`
	DisableTagDeletion bool   `env:"DISABLE_TAG_DELETION" envDefault:"false"`
	ShowUsageBar       bool   `env:"SHOW_USAGE_BAR" envDefault:"false"`
}

type Config

type Config struct {
	App           AppConfig
	Server        ServerConfig
	Scraper       ScraperConfig
	Database      DatabaseConfig
	OIDC          OIDCConfig
	SessionSecret string        `env:"SESSION_SECRET"`
	SessionMaxAge time.Duration `env:"SESSION_MAX_AGE" envDefault:"24h"`
	RegistryList  []registry.Config
}

func LoadConfig

func LoadConfig(flags *pflag.FlagSet) (*Config, error)

type DatabaseConfig

type DatabaseConfig struct {
	Connection string `env:"DATABASE_CONNECTION" envDefault:"sqlite" flag:"database-connection"`
	URL        string `env:"DATABASE_URL" envDefault:"data/ui.db" flag:"database-url"`
	ShowSQL    bool   `env:"DATABASE_SHOW_SQL" envDefault:"false" flag:"show-sql"`
}

type OIDCConfig added in v1.3.0

type OIDCConfig struct {
	IssuerURL           string `env:"OIDC_ISSUER_URL"`
	ClientID            string `env:"OIDC_CLIENT_ID"`
	ClientSecret        string `env:"OIDC_CLIENT_SECRET"`
	RedirectURI         string `env:"OIDC_REDIRECT_URI"`
	AllowedEmails       string `env:"OIDC_ALLOWED_EMAILS"`
	AllowedEmailDomains string `env:"OIDC_ALLOWED_EMAIL_DOMAINS"`
	AllowedGroups       string `env:"OIDC_ALLOWED_GROUPS"`
	AllowedRoles        string `env:"OIDC_ALLOWED_ROLES"`
	ClaimEmail          string `env:"OIDC_CLAIM_EMAIL" envDefault:"email"`
	ClaimGroups         string `env:"OIDC_CLAIM_GROUPS" envDefault:"groups"`
	ClaimRoles          string `env:"OIDC_CLAIM_ROLES" envDefault:"roles"`
	ClaimName           string `env:"OIDC_CLAIM_NAME" envDefault:"name"`
}

func (OIDCConfig) Enabled added in v1.3.0

func (c OIDCConfig) Enabled() bool

func (OIDCConfig) Validate added in v1.3.0

func (c OIDCConfig) Validate() error

type ScraperConfig

type ScraperConfig struct {
	SyncInterval            time.Duration `env:"SCRAPER_SYNC_INTERVAL" envDefault:"1h" flag:"sync-interval"`
	Workers                 int           `env:"SCRAPER_WORKERS" envDefault:"20" flag:"workers"`
	MaxPerRegistry          int           `env:"SCRAPER_MAX_PER_REGISTRY" envDefault:"0" flag:"max-per-registry"`
	ShowProgress            bool          `env:"SCRAPER_SHOW_PROGRESS" envDefault:"false" flag:"show-progress"`
	Debug                   bool          `env:"SCRAPER_DEBUG" envDefault:"false" flag:"scraper-debug"`
	CircuitBreakerThreshold int           `env:"SCRAPER_CIRCUIT_BREAKER_THRESHOLD" envDefault:"5" flag:"circuit-breaker-threshold"`
	HttpMaxRetries          int           `env:"SCRAPER_HTTP_MAX_RETRIES" envDefault:"2" flag:"http-max-retries"`
}

type ServerConfig

type ServerConfig struct {
	Host  string `env:"SERVER_HOST" envDefault:"localhost" flag:"host"`
	Port  string `env:"SERVER_PORT" envDefault:"3000" flag:"port"`
	Debug bool   `env:"SERVER_DEBUG" envDefault:"false" flag:"debug"`
}

Jump to

Keyboard shortcuts

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