middleware

package
v0.60.2 Latest Latest
Warning

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

Go to latest
Published: Nov 20, 2025 License: BSD-3-Clause, AGPL-3.0 Imports: 16 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APIRateLimiter added in v0.59.13

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

APIRateLimiter manages rate limiting for API tokens

func NewAPIRateLimiter added in v0.59.13

func NewAPIRateLimiter(config *RateLimiterConfig) *APIRateLimiter

NewAPIRateLimiter creates a new API rate limiter with the given configuration

func (*APIRateLimiter) Allow added in v0.59.13

func (rl *APIRateLimiter) Allow(key string) bool

Allow checks if a request for the given key (token) is allowed

func (*APIRateLimiter) Reset added in v0.59.13

func (rl *APIRateLimiter) Reset(key string)

Reset removes the rate limiter for a specific key

func (*APIRateLimiter) Stop added in v0.59.13

func (rl *APIRateLimiter) Stop()

Stop stops the cleanup goroutine

func (*APIRateLimiter) Wait added in v0.59.13

func (rl *APIRateLimiter) Wait(ctx context.Context, key string) error

Wait blocks until the rate limiter allows another request for the given key Returns an error if the context is canceled

type AuthMiddleware added in v0.15.0

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

AuthMiddleware middleware to verify personal access tokens (PAT) and JWT tokens

func NewAuthMiddleware added in v0.15.0

func NewAuthMiddleware(
	authManager serverauth.Manager,
	ensureAccount EnsureAccountFunc,
	syncUserJWTGroups SyncUserJWTGroupsFunc,
	getUserFromUserAuth GetUserFromUserAuthFunc,
	rateLimiterConfig *RateLimiterConfig,
) *AuthMiddleware

NewAuthMiddleware instance constructor

func (*AuthMiddleware) Handler added in v0.15.0

func (m *AuthMiddleware) Handler(h http.Handler) http.Handler

Handler method of the middleware which authenticates a user either by JWT claims or by PAT

type EnsureAccountFunc added in v0.37.0

type EnsureAccountFunc func(ctx context.Context, userAuth auth.UserAuth) (string, string, error)

type GetUserFromUserAuthFunc added in v0.42.0

type GetUserFromUserAuthFunc func(ctx context.Context, userAuth auth.UserAuth) (*types.User, error)

type RateLimiterConfig added in v0.59.13

type RateLimiterConfig struct {
	// RequestsPerMinute defines the rate at which tokens are replenished
	RequestsPerMinute float64
	// Burst defines the maximum number of requests that can be made in a burst
	Burst int
	// CleanupInterval defines how often to clean up old limiters (how often garbage collection runs)
	CleanupInterval time.Duration
	// LimiterTTL defines how long a limiter should be kept after last use (age threshold for removal)
	LimiterTTL time.Duration
}

RateLimiterConfig holds configuration for the API rate limiter

func DefaultRateLimiterConfig added in v0.59.13

func DefaultRateLimiterConfig() *RateLimiterConfig

DefaultRateLimiterConfig returns a default configuration

type SyncUserJWTGroupsFunc added in v0.37.0

type SyncUserJWTGroupsFunc func(ctx context.Context, userAuth auth.UserAuth) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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