middleware

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Mar 23, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// RequestIDHeader is the header key for request ID
	RequestIDHeader = "X-Request-ID"

	// RequestIDKey is the context key for request ID
	RequestIDKey = "request_id"
)

Variables

This section is empty.

Functions

func ErrorHandler

func ErrorHandler(log *logger.Logger) gin.HandlerFunc

ErrorHandler middleware for handling errors

func GetRequestID

func GetRequestID(c *gin.Context) string

GetRequestID gets the request ID from context

func MetricsMiddleware

func MetricsMiddleware() gin.HandlerFunc

MetricsMiddleware collects metrics for all HTTP requests

func RecordBlockchainOperation

func RecordBlockchainOperation(operation string, status string)

RecordBlockchainOperation records a blockchain operation

func RecordDatabaseOperation

func RecordDatabaseOperation(operation string, repository string, status string, err error)

RecordDatabaseOperation records a database operation

func RecordFunctionExecution

func RecordFunctionExecution(functionID string, status string, memoryUsageBytes int64)

RecordFunctionExecution records a function execution

func RecordSecretOperation

func RecordSecretOperation(operation string, status string)

RecordSecretOperation records a secret operation

func RecordTEEOperation

func RecordTEEOperation(operation string, status string)

RecordTEEOperation records a TEE operation

func RecoveryHandler

func RecoveryHandler(log *logger.Logger) gin.HandlerFunc

RecoveryHandler middleware to recover from panics

func RequestID

func RequestID() gin.HandlerFunc

RequestID middleware adds a unique request ID to each request

func TrackBlockchainOperation

func TrackBlockchainOperation(operation string) *metrics.Timer

TrackBlockchainOperation creates a timer for tracking blockchain operations

func TrackDatabaseOperation

func TrackDatabaseOperation(operation string, repository string) *metrics.Timer

TrackDatabaseOperation creates a timer to track database operations

func TrackFunctionExecution

func TrackFunctionExecution(functionID string) *metrics.Timer

TrackFunctionExecution creates a timer for tracking function execution

func TrackSecretOperation

func TrackSecretOperation(operation string) *metrics.Timer

TrackSecretOperation creates a timer for tracking secret operations

func TrackTEEOperation

func TrackTEEOperation(provider string) *metrics.Timer

TrackTEEOperation creates a timer for tracking TEE operations

Types

type DynamicRateLimiter

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

DynamicRateLimiter provides different rate limits based on the client

func NewDynamicRateLimiter

func NewDynamicRateLimiter(defaultRate, authRate rate.Limit, defaultBurst, authBurst int) *DynamicRateLimiter

NewDynamicRateLimiter creates a new dynamic rate limiter middleware

func (*DynamicRateLimiter) Middleware

func (rl *DynamicRateLimiter) Middleware() gin.HandlerFunc

Middleware returns a Gin middleware function for dynamic rate limiting

type RateLimiter

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

RateLimiter implements a rate limiting middleware

func NewRateLimiter

func NewRateLimiter(r rate.Limit, burst int) *RateLimiter

NewRateLimiter creates a new rate limiter middleware

func (*RateLimiter) Middleware

func (rl *RateLimiter) Middleware() gin.HandlerFunc

Middleware returns a Gin middleware function for rate limiting

type TokenBucket

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

TokenBucket represents a rate limiter for a specific user

Jump to

Keyboard shortcuts

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