Something went wrong. Try again.
Ghost is lightweight headless server that enables Ghost self hosters to bridge to standard.site with ease..
Something went wrong. Try again.
ghost: list webhooks via raw HTTP since the lib special-cases the resource master
@tryghost/admin-api exposes webhooks.add/edit/delete but explicitly NOT browse (lines 234-241 of admin-api.js). That broke ensureWebhooks in production: 'client.webhooks.browse is not a function'. Bypass the lib for the list call: hand-roll the same Ghost-style JWT (kid + HMAC-SHA256 over header.payload, 5-min expiry, audience /admin/) and GET /admin/webhooks/ directly. The lib still handles add() since that DOES work. JWT logic is straightforward enough that pulling in jsonwebtoken would be overkill — node:crypto's createHmac is all we need.
Author Tim Trautmann Date (May 29, 2026, 7:27 PM UTC) Commit 9369a278 9369a27841c99a162c7f130427b2daacc45d7e6f Parent 7fcc1085 7fcc1085c1e5660644f8513eef138420df7931e1