Class: RosettAi::Mcp::Middleware::RequestSize

Inherits:
Object
  • Object
show all
Defined in:
lib/rosett_ai/mcp/middleware/request_size.rb

Overview

Rack middleware that enforces maximum request body size.

Returns 413 Payload Too Large for oversized requests. Default limit: 1 MB.

Author:

  • hugo

  • claude

Constant Summary collapse

DEFAULT_MAX_SIZE =

1 MB

1_048_576

Instance Method Summary collapse

Constructor Details

#initialize(app, max_size: DEFAULT_MAX_SIZE) ⇒ RequestSize

Returns a new instance of RequestSize.

Parameters:

  • app (#call)

    the next Rack application

  • max_size (Integer) (defaults to: DEFAULT_MAX_SIZE)

    maximum request body size in bytes



21
22
23
24
# File 'lib/rosett_ai/mcp/middleware/request_size.rb', line 21

def initialize(app, max_size: DEFAULT_MAX_SIZE)
  @app = app
  @max_size = max_size
end

Instance Method Details

#call(env) ⇒ Array

Returns Rack response triplet.

Parameters:

  • env (Hash)

    Rack environment

Returns:

  • (Array)

    Rack response triplet



28
29
30
31
32
33
# File 'lib/rosett_ai/mcp/middleware/request_size.rb', line 28

def call(env)
  content_length = env['CONTENT_LENGTH'].to_i
  return payload_too_large(content_length) if content_length > @max_size

  @app.call(env)
end