Skip to content

0.4.0

Latest

Choose a tag to compare

@bbatsov bbatsov released this 13 Jul 09:23
  • Add drawbridge.bridge: a local nREPL socket server that relays to a remote Drawbridge endpoint, so socket-based clients (CIDER, Calva, rebel-readline, nrepl.cmdline) can connect to Drawbridge.
  • Add drawbridge.auth/wrap-token (constant-time bearer-token middleware) and drawbridge.core/secure-ring-handler, a one-form secure endpoint that refuses to run unauthenticated unless passed :insecure true.
  • #44: Add a WebSocket transport (drawbridge.websocket server side, drawbridge.websocket-client client side, registered on url-connect for ws/wss) with server push instead of HTTP long-polling.
  • Add an options arity to ring-client-transport accepting :http-headers.
  • The bridge CLI writes a .nrepl-port file for editor auto-detection, reads the token from DRAWBRIDGE_TOKEN, validates its arguments, and supports --help.
  • The bridge reports connection failures to the local client as an in-band :err message instead of just dropping the socket.
  • The WebSocket server pings connections every 30s (:ping-interval-ms) so proxies do not drop idle REPL sessions.
  • Add a deps.edn, making Drawbridge usable as a git dependency.
  • #11: Confirmed fixed - the handler keeps its session state in a private store under its own cookie and no longer clobbers the application ring session (now covered by a regression test).
  • Fix a session-affinity race in the HTTP client transport that could strand responses in an orphaned session.