Files
upstream-mirror e0c588ca1c
Some checks failed
build / lint (22) (push) Failing after 17s
build / test (22) (push) Failing after 8s
build / lint (23) (push) Failing after 2s
build / build (22) (push) Has been skipped
build / build (23) (push) Has been skipped
build / test (23) (push) Failing after 4s
docsearch / docsearch (push) Failing after 1s
snapshot of https://github.com/ueberdosis/hocuspocus.git @ cf3cfa355b4d3bb61c6b6c80071f71783e32470e (2026-09-15)
2026-09-15 17:21:35 +05:00
..

@hocuspocus/extension-throttle

Version Downloads License Sponsor

Rate-limit and throttle connections to a Hocuspocus server by IP. Protects your collaboration backend from abuse, accidental reconnect loops, and misbehaving clients.

Installation

npm install @hocuspocus/extension-throttle

Usage

With default thresholds (15 connection attempts per 60 seconds, 5 minute ban):

import { Server } from "@hocuspocus/server"
import { Throttle } from "@hocuspocus/extension-throttle"

const server = new Server({
  extensions: [new Throttle()],
})

server.listen()

Tune the limits

new Throttle({
  throttle: 30,          // allowed connection attempts per window
  consideredSeconds: 60, // window length in seconds
  banTime: 5,            // ban duration in minutes
})

Pass throttle: false (or null) to effectively disable the limiter without removing the extension.

Documentation

Full options reference: tiptap.dev/docs/hocuspocus/server/extensions/throttle.

License

MIT — see LICENSE.md.