Documentation
¶
Index ¶
- Variables
- func DefaultAdvancedRateLimiter() fiber.Handler
- func DefaultRateLimiter() fiber.Handler
- func DeleteLimiter(cfg RateLimitConfig) fiber.Handler
- func NewAdvancedRateLimiter(max int, duration time.Duration) fiber.Handler
- func NewRateLimiter(max int, duration time.Duration) fiber.Handler
- func RateLimitKey(c *fiber.Ctx) string
- func SecurityMiddleware(cfg SecurityConfig) []fiber.Handler
- func UploadLimiter(cfg RateLimitConfig) fiber.Handler
- type CORSConfig
- type RateLimitConfig
- type RedisStorage
- type SecurityConfig
Constants ¶
This section is empty.
Variables ¶
var RateLimiterConfig = limiter.Config{ Max: config.GetEnvAsIntOrDefault("RATE_LIMIT", 100), Expiration: time.Duration(config.GetEnvAsIntOrDefault("RATE_LIMIT_DURATION", 1)) * time.Minute, KeyGenerator: func(c *fiber.Ctx) string { return c.IP() }, LimitReached: func(c *fiber.Ctx) error { return c.Status(fiber.StatusTooManyRequests).JSON(fiber.Map{ "success": false, "message": "Rate limit exceeded. Please try again later.", }) }, SkipFailedRequests: false, SkipSuccessfulRequests: false, }
RateLimiterConfig default rate limiter configuration
Functions ¶
func DefaultAdvancedRateLimiter ¶
DefaultAdvancedRateLimiter returns a default rate limiter middleware (100 requests per minute)
func DefaultRateLimiter ¶
DefaultRateLimiter creates a rate limiter with default configuration
func DeleteLimiter ¶
func DeleteLimiter(cfg RateLimitConfig) fiber.Handler
DeleteLimiter returns specific rate limiter for delete endpoints
func NewAdvancedRateLimiter ¶
NewAdvancedRateLimiter creates a new rate limiter middleware with Redis storage
func NewRateLimiter ¶
NewRateLimiter creates a new rate limiter middleware with custom config
func RateLimitKey ¶
RateLimitKey generates a unique key for rate limiting based on IP and token
func SecurityMiddleware ¶
func SecurityMiddleware(cfg SecurityConfig) []fiber.Handler
SecurityMiddleware returns security middleware chain
func UploadLimiter ¶
func UploadLimiter(cfg RateLimitConfig) fiber.Handler
UploadLimiter returns specific rate limiter for upload endpoints
Types ¶
type CORSConfig ¶
type RateLimitConfig ¶
type RedisStorage ¶
type RedisStorage struct {
// contains filtered or unexported fields
}
RedisStorage implements fiber.Storage interface for Redis
func NewRedisStorage ¶
func NewRedisStorage() (*RedisStorage, error)
NewRedisStorage creates a new Redis storage adapter
func (*RedisStorage) Delete ¶
func (r *RedisStorage) Delete(key string) error
Delete removes a value from Redis
func (*RedisStorage) Get ¶
func (r *RedisStorage) Get(key string) ([]byte, error)
Get retrieves a value from Redis
func (*RedisStorage) Reset ¶
func (r *RedisStorage) Reset() error
Reset clears all values from Redis
type SecurityConfig ¶
type SecurityConfig struct {
Token string
RateLimit RateLimitConfig
CORS CORSConfig
TrustedProxies []string
MaxRequestBodySize int
RequestTimeout time.Duration
}
SecurityConfig represents security middleware configuration
func DefaultSecurityConfig ¶
func DefaultSecurityConfig() SecurityConfig
DefaultSecurityConfig returns default security configuration