Class: Braintrust::Server::Rack::App

Inherits:
Object
  • Object
show all
Defined in:
lib/braintrust/server/rack/app.rb

Overview

Builds the Rack middleware stack for the eval server.

Class Method Summary collapse

Class Method Details

.build(evaluators: {}, auth: :clerk_token) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/braintrust/server/rack/app.rb', line 8

def self.build(evaluators: {}, auth: :clerk_token)
  router = Router.new
  router.add("GET", "/", Handlers::Health.new)
  list_handler = Handlers::List.new(evaluators)
  router.add("GET", "/list", list_handler)
  router.add("POST", "/list", list_handler)
  router.add("POST", "/eval", Handlers::Eval.new(evaluators))

  auth_strategy = resolve_auth(auth)

  app = router
  app = Middleware::Auth.new(app, strategy: auth_strategy)
  Middleware::Cors.new(app)
end