config

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Aug 3, 2026 License: BSD-3-Clause Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AdminAPI added in v0.9.0

type AdminAPI struct {
	// Cookies contain cookie settings for the csrf, session, and refresh cookies.
	Cookies *Cookies `json:"cookies,omitempty"`
	// Origins holds configuration for CORS origins. In addition, Origins other than the allowed ones
	// will be rejected with a 403 response.
	Origins *Origins `json:"origins,omitempty"`
	// TLS holds configuration for TLS settings for the admin API.
	TLS *ServerTLS `json:"tls,omitempty"`
}

AdminAPI holds configuration for the admin API.

type AdminConfig added in v0.8.1

type AdminConfig struct {
	SuperUser *SuperUser `json:"superUser"`
	API       *AdminAPI  `json:"api,omitempty"`
}

AdminConfig holds configuration for the admin API.

type AuthConfig added in v0.8.1

type AuthConfig struct {
	Methods *AuthMethods `json:"methods"`
	Scheme  *AuthScheme  `json:"scheme"`
	Order   int          `json:"order"`
}

AuthConfig holds configuration for authentication and authorization.

type AuthMapping added in v0.8.1

type AuthMapping struct {
	Backend       string   `json:"backend"`
	Method        string   `json:"method"`
	Exempt        []string `json:"exempt"`
	Authorization *AuthZ   `json:"authorization"`
}

type AuthMethodBasic added in v0.8.1

type AuthMethodBasic struct {
	API *AuthMethodBasicAPI `json:"api,omitempty"`
}

type AuthMethodBasicAPI added in v1.3.0

type AuthMethodBasicAPI struct {
	Cookies *Cookies `json:"cookies,omitempty"`
	Origins *Origins `json:"origins,omitempty"`
}

type AuthMethods added in v0.8.1

type AuthMethods struct {
	Basic *AuthMethodBasic `json:"basic"`
}

type AuthScheme added in v0.8.1

type AuthScheme struct {
	Mappings []*AuthMapping `json:"mappings"`
}

type AuthZ added in v0.8.1

type AuthZ struct {
	Groups []string            `json:"groups"`
	Paths  map[string][]string `json:"paths"`
}

type BackendTLS added in v0.9.0

type BackendTLS struct {
	// RootCAFile is the path to a PEM-encoded CA bundle used to verify the backend's certificate.
	// When empty, the system certificate pool is used.
	RootCAFile string `json:"rootCAFile,omitempty"`
	// ClientCertFile and ClientKeyFile enable mTLS.
	// Both must be set together.
	ClientCertFile string `json:"clientCertFile,omitempty"`
	ClientKeyFile  string `json:"clientKeyFile,omitempty"`
	// InsecureSkipVerify disables server certificate verification.
	// Must only be used in non-production environments.
	InsecureSkipVerify bool `json:"insecureSkipVerify,omitempty"`
}

BackendTLS holds per-backend TLS settings. When nil, the forwarder uses plain HTTP for that backend.

type ConnectorConfig added in v1.2.0

type ConnectorConfig struct {
	// Whitelist is a list of allowed hosts for the connector.
	Whitelist []string `json:"whitelist,omitempty"`

	// Persistence holds configuration for the persistence layer.
	Persistence *PersistenceConfig `json:"persistence"`

	// ServerTLS holds configuration for the server TLS settings.
	ServerTLS *ServerTLS `json:"serverTls,omitempty"`
}

type Cookies added in v1.3.0

type Cookies struct {
	// Domain is the domain setting for cookies, this translates directly to Domain=<value> for cookies.
	Domain string `json:"domain,omitempty"`
	// SameSite is the SameSite setting for cookies, this translates directly to SameSite=<value> for cookies.
	SameSite string `json:"sameSite,omitempty"`
}

type GatewayConfig added in v0.9.0

type GatewayConfig struct {
	Router *Router    `json:"router"`
	TLS    *ServerTLS `json:"tls,omitempty"`
}

GatewayConfig holds configuration for the API gateway.

type OASBackendMapping added in v0.8.1

type OASBackendMapping struct {
	Backend       string                 `json:"backend"`
	Specification string                 `json:"specification"`
	Options       *OASBackendMappingOpts `json:"options"`
}

type OASBackendMappingOpts added in v0.8.1

type OASBackendMappingOpts struct {
	ValidateBody bool `json:"validateBody"`
}

type OASConfig added in v0.8.1

type OASConfig struct {
	Order    int                  `json:"order"`
	Mappings []*OASBackendMapping `json:"mappings"`
}

OASConfig holds configuration for OAS-based request routing and validation.

type ObservabilityConfig added in v0.8.1

type ObservabilityConfig struct {
	Enabled        bool `json:"enabled"`
	RuntimeMetrics bool `json:"runtimeMetrics"`
}

ObservabilityConfig holds configuration for observability features.

type Origins added in v1.3.0

type Origins struct {
	// AllowedOrigins is a list of allowed origins for CORS.
	AllowedOrigins []string `json:"allowedOrigins,omitempty"`
	// AllowAll indicates whether to allow all origins for CORS. Mutually exclusive with 'allowedOrigins'.
	// AllowAll will mean the Access-Control-Allow-Origin header is set to whatever Origin was received.
	AllowAll bool `json:"allowAll,omitempty"`
	// DenyAll denies any request with an Origin header, effectively disabling browser access.
	// Mutually exclusive with 'allowedOrigins' and 'allowAll'.
	DenyAll bool `json:"denyAll,omitempty"`
}

Origins holds configuration for CORS origins.

type PersistenceConfig added in v0.10.0

type PersistenceConfig struct {
	// Driver selects the database backend: "sqlite" or "postgres".
	Driver string `json:"driver"`
	// Address is the database address. For postgres: host. For sqlite: file path.
	Address string `json:"address"`

	// Postgres contains specific configuration for the postgres driver. Ignored for other drivers.
	*Postgres `json:"postgres,omitempty"`
}

PersistenceConfig holds configuration for the backing database.

type Postgres added in v0.10.0

type Postgres struct {
	// Database is the database name (postgres only).
	Database string `json:"database"`
	// Username is the database user (postgres only).
	Username *string `json:"username,omitempty"`
	// Password is the database password (postgres only).
	Password *string `json:"password,omitempty"`
	// SSLMode controls TLS for postgres connections (e.g. "disable", "require", "verify-full").
	SSLMode *string `json:"sslMode,omitempty"`
}

type RootConfig added in v0.8.1

type RootConfig struct {
	*GatewayConfig       `json:"gateway"`
	*ObservabilityConfig `json:"observability"`
	*AdminConfig         `json:"admin"`
	*OASConfig           `json:"oas,omitempty"`
	*AuthConfig          `json:"auth,omitempty"`
	*PersistenceConfig   `json:"persistence,omitempty"`
	// contains filtered or unexported fields
}

func New

func New() *RootConfig

func (*RootConfig) AuthEnabled added in v0.8.1

func (rc *RootConfig) AuthEnabled() bool

func (*RootConfig) Load added in v0.8.1

func (rc *RootConfig) Load(data []byte)

func (*RootConfig) OASEnabled added in v0.8.1

func (rc *RootConfig) OASEnabled() bool

func (*RootConfig) Parse added in v0.8.1

func (rc *RootConfig) Parse() error

type Router added in v0.9.0

type Router struct {
	Backends []*RouterBackend `json:"backends"`
}

Router holds configuration for the request router.

type RouterBackend added in v0.8.1

type RouterBackend struct {
	Name      string `json:"name"`
	Host      string `json:"host"`
	Port      int    `json:"port"`
	TimeoutMs int    `json:"timeout,omitempty"`
	// Origins holds configuration for CORS origins. In addition, Origins other than the allowed ones
	// will be rejected with a 403 response.
	Origins *Origins    `json:"origins,omitempty"`
	TLS     *BackendTLS `json:"tls,omitempty"`
}

type ServerTLS added in v0.9.0

type ServerTLS struct {
	CertFile string `json:"serverCertFile"`
	KeyFile  string `json:"serverKeyFile"`
}

type SuperUser added in v0.8.1

type SuperUser struct {
	ClientID     string `json:"clientId"`
	ClientSecret string `json:"clientSecret"`
}

Jump to

Keyboard shortcuts

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