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-webhook

Version Downloads License Sponsor

Send HTTP webhooks for Hocuspocus document lifecycle events — document changes, connects, disconnects, and creation. Lets you integrate the collaboration backend with your own services (search indexing, audit logs, downstream data pipelines) without writing a custom extension.

Installation

npm install @hocuspocus/extension-webhook

Usage

import { Server } from "@hocuspocus/server"
import { Webhook, Events } from "@hocuspocus/extension-webhook"

const server = new Server({
  extensions: [
    new Webhook({
      url: "https://example.com/hocuspocus-webhook",
      secret: "your-signing-secret",
      events: [Events.onChange, Events.onConnect, Events.onDisconnect, Events.onCreate],
    }),
  ],
})

server.listen()

Requests are signed with HMAC-SHA256 using your secret, sent in the X-Hocuspocus-Signature-256 header so the receiver can verify authenticity.

onChange events are debounced (default 2000ms, max wait 10000ms) to avoid a request per keystroke — tune with the debounce and debounceMaxWait options.

Documentation

Payload shapes, signature verification, and debounce tuning: tiptap.dev/docs/hocuspocus/server/extensions/webhook.

License

MIT — see LICENSE.md.