types

package
v1.1.3 Latest Latest
Warning

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

Go to latest
Published: Sep 22, 2025 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConnectionInfo

type ConnectionInfo struct {
	Host     string `json:"host"`
	Port     int    `json:"port"`
	Protocol string `json:"protocol"`
	Version  string `json:"version"`
	Secure   bool   `json:"secure"`
}

ConnectionInfo represents middleware provider connection information

type HTTPMiddlewareHandler

type HTTPMiddlewareHandler func(next http.Handler) http.Handler

HTTPMiddlewareHandler represents an HTTP middleware handler

type MiddlewareAction

type MiddlewareAction struct {
	ID         string                 `json:"id"`
	Type       string                 `json:"type"`
	Parameters map[string]interface{} `json:"parameters"`
	Metadata   map[string]interface{} `json:"metadata"`
}

MiddlewareAction represents a middleware action

type MiddlewareChain

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

MiddlewareChain represents a chain of middleware handlers

func NewMiddlewareChain

func NewMiddlewareChain(handlers ...MiddlewareHandler) *MiddlewareChain

NewMiddlewareChain creates a new middleware chain

func (*MiddlewareChain) Add

Add adds a handler to the chain

func (*MiddlewareChain) Execute

Execute executes the middleware chain

type MiddlewareCondition

type MiddlewareCondition struct {
	ID       string                 `json:"id"`
	Type     string                 `json:"type"`
	Field    string                 `json:"field"`
	Operator string                 `json:"operator"`
	Value    interface{}            `json:"value"`
	Metadata map[string]interface{} `json:"metadata"`
}

MiddlewareCondition represents a middleware condition

type MiddlewareConfig

type MiddlewareConfig struct {
	Name       string                 `json:"name"`
	Type       string                 `json:"type"`
	Enabled    bool                   `json:"enabled"`
	Priority   int                    `json:"priority"`
	Timeout    time.Duration          `json:"timeout"`
	RetryCount int                    `json:"retry_count"`
	RetryDelay time.Duration          `json:"retry_delay"`
	Metadata   map[string]interface{} `json:"metadata"`
	Rules      []MiddlewareRule       `json:"rules"`
	Conditions []MiddlewareCondition  `json:"conditions"`
}

MiddlewareConfig represents middleware configuration

type MiddlewareContext

type MiddlewareContext struct {
	Request     *MiddlewareRequest     `json:"request"`
	Response    *MiddlewareResponse    `json:"response"`
	User        *User                  `json:"user,omitempty"`
	Service     *Service               `json:"service,omitempty"`
	Environment map[string]interface{} `json:"environment,omitempty"`
	Metadata    map[string]interface{} `json:"metadata,omitempty"`
}

MiddlewareContext represents middleware execution context

type MiddlewareFeature

type MiddlewareFeature string

MiddlewareFeature represents a middleware feature

const (
	// Authentication features
	FeatureJWT           MiddlewareFeature = "jwt"
	FeatureOAuth2        MiddlewareFeature = "oauth2"
	FeatureBasicAuth     MiddlewareFeature = "basic_auth"
	FeatureAPIKey        MiddlewareFeature = "api_key"
	FeatureSessionAuth   MiddlewareFeature = "session_auth"
	FeatureTwoFactor     MiddlewareFeature = "two_factor"
	FeatureSSO           MiddlewareFeature = "sso"
	FeatureLDAP          MiddlewareFeature = "ldap"
	FeatureSAML          MiddlewareFeature = "saml"
	FeatureOpenIDConnect MiddlewareFeature = "openid_connect"

	// Authorization features
	FeatureRBAC            MiddlewareFeature = "rbac"
	FeatureABAC            MiddlewareFeature = "abac"
	FeatureACL             MiddlewareFeature = "acl"
	FeaturePolicyEngine    MiddlewareFeature = "policy_engine"
	FeatureAttributeBased  MiddlewareFeature = "attribute_based"
	FeatureContextAware    MiddlewareFeature = "context_aware"
	FeatureDynamicPolicies MiddlewareFeature = "dynamic_policies"

	// Logging features
	FeatureStructuredLogging  MiddlewareFeature = "structured_logging"
	FeatureRequestLogging     MiddlewareFeature = "request_logging"
	FeatureResponseLogging    MiddlewareFeature = "response_logging"
	FeatureAuditLogging       MiddlewareFeature = "audit_logging"
	FeatureErrorLogging       MiddlewareFeature = "error_logging"
	FeaturePerformanceLogging MiddlewareFeature = "performance_logging"

	// Monitoring features
	FeatureMetrics      MiddlewareFeature = "metrics"
	FeatureTracing      MiddlewareFeature = "tracing"
	FeatureHealthChecks MiddlewareFeature = "health_checks"
	FeatureProfiling    MiddlewareFeature = "profiling"
	FeatureAlerting     MiddlewareFeature = "alerting"
	FeatureDashboard    MiddlewareFeature = "dashboard"

	// Rate limiting features
	FeatureTokenBucket   MiddlewareFeature = "token_bucket"
	FeatureSlidingWindow MiddlewareFeature = "sliding_window"
	FeatureFixedWindow   MiddlewareFeature = "fixed_window"
	FeatureLeakyBucket   MiddlewareFeature = "leaky_bucket"
	FeatureDistributedRL MiddlewareFeature = "distributed_rate_limit"

	// Circuit breaker features
	FeatureCircuitBreaker MiddlewareFeature = "circuit_breaker"
	FeatureRetryLogic     MiddlewareFeature = "retry_logic"
	FeatureTimeout        MiddlewareFeature = "timeout"
	FeatureBulkhead       MiddlewareFeature = "bulkhead"
	FeatureFallback       MiddlewareFeature = "fallback"

	// Caching features
	FeatureMemoryCache       MiddlewareFeature = "memory_cache"
	FeatureRedisCache        MiddlewareFeature = "redis_cache"
	FeatureDistributedCache  MiddlewareFeature = "distributed_cache"
	FeatureCacheInvalidation MiddlewareFeature = "cache_invalidation"
	FeatureCacheWarming      MiddlewareFeature = "cache_warming"

	// Storage features
	FeatureFileStorage     MiddlewareFeature = "file_storage"
	FeatureObjectStorage   MiddlewareFeature = "object_storage"
	FeatureBlobStorage     MiddlewareFeature = "blob_storage"
	FeatureFileUpload      MiddlewareFeature = "file_upload"
	FeatureFileDownload    MiddlewareFeature = "file_download"
	FeatureFileMetadata    MiddlewareFeature = "file_metadata"
	FeatureFileCompression MiddlewareFeature = "file_compression"
	FeatureFileEncryption  MiddlewareFeature = "file_encryption"

	// Communication features
	FeatureHTTP      MiddlewareFeature = "http"
	FeatureGRPC      MiddlewareFeature = "grpc"
	FeatureWebSocket MiddlewareFeature = "websocket"
	FeatureGraphQL   MiddlewareFeature = "graphql"
	FeatureSSE       MiddlewareFeature = "sse"
	FeatureQUIC      MiddlewareFeature = "quic"

	// Messaging features
	FeatureKafka           MiddlewareFeature = "kafka"
	FeatureNATS            MiddlewareFeature = "nats"
	FeatureRabbitMQ        MiddlewareFeature = "rabbitmq"
	FeatureSQS             MiddlewareFeature = "sqs"
	FeatureRedis           MiddlewareFeature = "redis"
	FeatureMessageQueue    MiddlewareFeature = "message_queue"
	FeaturePubSub          MiddlewareFeature = "pubsub"
	FeatureEventSourcing   MiddlewareFeature = "event_sourcing"
	FeatureCQRS            MiddlewareFeature = "cqrs"
	FeatureDeadLetterQueue MiddlewareFeature = "dead_letter_queue"

	// Chaos engineering features
	FeatureLatencyInjection   MiddlewareFeature = "latency_injection"
	FeatureErrorInjection     MiddlewareFeature = "error_injection"
	FeatureResourceExhaustion MiddlewareFeature = "resource_exhaustion"
	FeatureNetworkPartition   MiddlewareFeature = "network_partition"
	FeatureServiceFailure     MiddlewareFeature = "service_failure"

	// Failover features
	FeatureLoadBalancing    MiddlewareFeature = "load_balancing"
	FeatureHealthChecking   MiddlewareFeature = "health_checking"
	FeatureServiceDiscovery MiddlewareFeature = "service_discovery"
	FeatureFailover         MiddlewareFeature = "failover"
	FeatureGracefulShutdown MiddlewareFeature = "graceful_shutdown"
)

type MiddlewareHandler

type MiddlewareHandler func(ctx context.Context, req *MiddlewareRequest) (*MiddlewareResponse, error)

MiddlewareHandler represents a middleware handler function

type MiddlewareRequest

type MiddlewareRequest struct {
	ID        string                 `json:"id"`
	Type      string                 `json:"type"`
	Method    string                 `json:"method"`
	Path      string                 `json:"path"`
	Headers   map[string]string      `json:"headers"`
	Body      []byte                 `json:"body"`
	Query     map[string]string      `json:"query"`
	UserID    string                 `json:"user_id,omitempty"`
	ServiceID string                 `json:"service_id,omitempty"`
	Context   map[string]interface{} `json:"context,omitempty"`
	Metadata  map[string]interface{} `json:"metadata,omitempty"`
	Timestamp time.Time              `json:"timestamp"`
}

MiddlewareRequest represents a middleware request

type MiddlewareResponse

type MiddlewareResponse struct {
	ID         string                 `json:"id"`
	Success    bool                   `json:"success"`
	StatusCode int                    `json:"status_code"`
	Headers    map[string]string      `json:"headers"`
	Body       []byte                 `json:"body"`
	Message    string                 `json:"message,omitempty"`
	Error      string                 `json:"error,omitempty"`
	Context    map[string]interface{} `json:"context,omitempty"`
	Metadata   map[string]interface{} `json:"metadata,omitempty"`
	Timestamp  time.Time              `json:"timestamp"`
	Duration   time.Duration          `json:"duration"`
}

MiddlewareResponse represents a middleware response

type MiddlewareRule

type MiddlewareRule struct {
	ID          string                 `json:"id"`
	Name        string                 `json:"name"`
	Description string                 `json:"description"`
	Enabled     bool                   `json:"enabled"`
	Priority    int                    `json:"priority"`
	Conditions  []MiddlewareCondition  `json:"conditions"`
	Actions     []MiddlewareAction     `json:"actions"`
	Metadata    map[string]interface{} `json:"metadata"`
}

MiddlewareRule represents a middleware rule

type MiddlewareStats

type MiddlewareStats struct {
	TotalRequests      int64                  `json:"total_requests"`
	SuccessfulRequests int64                  `json:"successful_requests"`
	FailedRequests     int64                  `json:"failed_requests"`
	AverageLatency     time.Duration          `json:"average_latency"`
	MaxLatency         time.Duration          `json:"max_latency"`
	MinLatency         time.Duration          `json:"min_latency"`
	ErrorRate          float64                `json:"error_rate"`
	Throughput         float64                `json:"throughput"`
	ActiveConnections  int64                  `json:"active_connections"`
	ProviderData       map[string]interface{} `json:"provider_data"`
}

MiddlewareStats represents middleware statistics

type Service

type Service struct {
	ID          string                 `json:"id"`
	Name        string                 `json:"name"`
	Version     string                 `json:"version"`
	Environment string                 `json:"environment"`
	Region      string                 `json:"region,omitempty"`
	Metadata    map[string]interface{} `json:"metadata,omitempty"`
}

Service represents service information in middleware context

type User

type User struct {
	ID          string                 `json:"id"`
	Username    string                 `json:"username"`
	Email       string                 `json:"email"`
	Roles       []string               `json:"roles,omitempty"`
	Permissions []string               `json:"permissions,omitempty"`
	Attributes  map[string]interface{} `json:"attributes,omitempty"`
	Metadata    map[string]interface{} `json:"metadata,omitempty"`
}

User represents user information in middleware context

Jump to

Keyboard shortcuts

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