config

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Apr 18, 2026 License: BSD-3-Clause Imports: 11 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 {
	TLS *ServerTLS `json:"tls,omitempty"`
}

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{}

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 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 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"`
	// 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"`
	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