npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@djordje41/medusa-plugin-webhooks

v1.0.6-dev

Published

Webhooks plugin for Medusa v1

Readme

Webhooks Plugin (Medusa v1)

This plugin adds configurable webhooks to your Medusa v1 server:

  • Admin UI to manage endpoints and auth keys, and to view delivery logs
  • Subscribers for order.placed and product.updated
  • Dispatcher that forwards events to configured destinations and stores response logs

Enable the plugin (local/staging/prod)

Edit backend/medusa-config.js and add:

const plugins = [
  // ... other plugins
  {
    resolve: "src/plugins/webhooks",
  }
]

Optionally gate by env var:

process.env.WEBHOOKS_ENABLED === "true" && {
  resolve: "src/plugins/webhooks",
  options: { headerName: "X-Webhook-Key" }
}

Run DB migrations

Creates three tables: webhook_endpoint, webhook_key, webhook_log. Run your project’s migration command, e.g.:

npm run migrate
# or
npm run typeorm -- migration:run

Start the server

cd backend
npm run build && npm run start

Configure in Admin

Open Admin and go to the Webhooks page (backend/src/admin/webhooks/page.tsx).

  • Endpoints: add event (e.g. order.placed), method (POST default), URL, optional JSON headers, enabled flag
  • Auth Keys: create a key; the latest enabled key is injected using headerName
  • Logs: recent deliveries with status, duration, and truncated response

Default events

  • order.placed
  • product.updated

Add more in backend/src/plugins/webhooks/subscribers/webhook-subscriber.ts.

Admin API (mounted at /admin/webhooks)

  • GET /endpoints
  • POST /endpoints { url, method, event, headers, enabled }
  • PUT /endpoints/:id
  • DELETE /endpoints/:id
  • GET /keys
  • POST /keys { name, key, enabled }
  • DELETE /keys/:id
  • GET /logs?limit=&offset=

Local enablement checklist

  1. Add plugin to medusa-config.js
  2. Run migrations
  3. Build & start backend
  4. In Admin: create a key and an endpoint
  5. Trigger an event and verify logs

Staging/Production notes

  • Ensure outbound network access to webhook destinations
  • Run migrations during deploy
  • Configure WEBHOOKS_ENABLED=true if you gated it
  • Adjust headerName if needed

Behavior & limits

  • POST/PUT/PATCH send JSON body; GET/DELETE send payload as query params
  • Endpoint-level headers can be set via the Admin form (JSON)
  • Response bodies are truncated at 500 chars in logs
  • Structured to ease future Medusa v2 migration