Module: A2A::Server::Middleware

Defined in:
lib/a2a/modules.rb,
lib/a2a/server/middleware.rb,
lib/a2a/server/middleware/cors_middleware.rb,
lib/a2a/server/middleware/logging_middleware.rb,
lib/a2a/server/middleware/rate_limit_middleware.rb,
lib/a2a/server/middleware/authentication_middleware.rb,
lib/a2a/server/middleware/authentication_middleware.rb

Defined Under Namespace

Classes: AuthenticationMiddleware, Builder, CorsMiddleware, InMemoryStore, LoggingMiddleware, RateLimitMiddleware, RedisStore, Registry

Class Method Summary collapse

Class Method Details

.buildBuilder

Create a new middleware builder

Returns:

  • New middleware builder instance



185
186
187
# File 'lib/a2a/server/middleware.rb', line 185

def self.build
  Builder.new
end

.default_stack(**options) ⇒ Registry

Create a middleware stack with common middleware

Parameters:

  • Configuration options

Returns:

  • Configured middleware registry



194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
# File 'lib/a2a/server/middleware.rb', line 194

def self.default_stack(**options)
  builder = build

  # Add logging by default
  builder.use_logging(options[:logging] || {})

  # Add authentication if configured
  builder.use_authentication(options[:authentication]) if options[:authentication]

  # Add rate limiting if configured
  builder.use_rate_limiting(options[:rate_limiting]) if options[:rate_limiting]

  # Add CORS if configured
  builder.use_cors(options[:cors]) if options[:cors]

  builder.build
end