{"id":18084884,"url":"https://github.com/coderofsalvation/webhookmonkey","last_synced_at":"2025-10-18T17:57:19.831Z","repository":{"id":146965779,"uuid":"59280169","full_name":"coderofsalvation/webhookmonkey","owner":"coderofsalvation","description":"webhook monitoring \u0026 patch platform (prevent webhook-spaghetti \u0026 centralizes webhook routing)","archived":false,"fork":false,"pushed_at":"2020-05-28T19:34:10.000Z","size":472,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-12T06:21:44.995Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/coderofsalvation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":"https://gumroad.com/l/hGYGh"}},"created_at":"2016-05-20T08:59:26.000Z","updated_at":"2020-05-28T19:31:46.000Z","dependencies_parsed_at":"2023-05-05T22:30:46.778Z","dependency_job_id":null,"html_url":"https://github.com/coderofsalvation/webhookmonkey","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderofsalvation%2Fwebhookmonkey","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderofsalvation%2Fwebhookmonkey/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderofsalvation%2Fwebhookmonkey/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderofsalvation%2Fwebhookmonkey/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/coderofsalvation","download_url":"https://codeload.github.com/coderofsalvation/webhookmonkey/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247415976,"owners_count":20935387,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-31T15:08:30.653Z","updated_at":"2025-10-18T17:57:14.797Z","avatar_url":"https://github.com/coderofsalvation.png","language":"JavaScript","funding_links":["https://gumroad.com/l/hGYGh"],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"doc/logo.jpg\" width=\"25%\"/\u003e\n\u003cbr\u003e\n\n\u003e \"We've managed to automate everything using webhooks..at least I think\"\n\nPrevent webhook-spaghetti: webhook monkeypatching and monitoring (using google analytics events).\nComes with api and editor to easily broke, aggregate and route webhooks.\n\n\\![Build Status](https://travis-ci.org/username/reponame.svg?branch=master)\n\n\u003cimg src=\"doc/api.png\" width=\"45%\" align=\"left\"/\u003e\n\u003cimg src=\"doc/webhooks.png\" width=\"45%\"/\u003e\n\n\n                webhookmonkey\n       +---------------------------+\n       |   api  +    flow editor   |------\u003e IFTTT\n       +---------------------------+        Zapier\n                    ^                       server A/B/C\n                    |                       Ganalytics\n                    |                       Bitbucket/github \n                    |                       etc\n                 webhooks \u003c------------------\n\n## Usage\n\n    $ PORT_WEBHOOKS=3001 PORT_API=3000 GANALYTICS_TOKEN=X-XXXXXXX API_URL=\"http://localhost:3000/model\" node app.js\n\n## Features\n\nWebhookmonkey is focusing on webhook monitoring \u0026 webhook monkeypatching. \nFor __microservice__ monitoring check [TRACE](https://trace.risingstack.com/)\n\n* visually setup and glue webhooks together\n* monitor webhook transactions\n* save webhook history to DB (REST API)\n* integrate with backoffice thru REST \n\nWebhookmonkey does not force you to centralize your infrastructure, it just sits in the sweet spot:\n\n\u003cimg src=\"doc/sweetspot.png\" width=\"90%\"/\u003e\n\n\u003cimg src=\"doc/concept.png\"/\u003e\n\n## The api \u0026 editor\n\n* The api documentation is generated at `http://localhost:3000/doc`, and a swagger url at `http://localhost:3000/model`\n* The [webhook editor](https://npmjs.org/package/node-red) can be visited at `http://localhost:3001`\n\nBy default, the api is just simple storage of webhook-history.\nThe webhook editor applies some example logic to the api.\nHowever, this editor allows you to extend it with any (js) logic.\n\nAPI request example:\n\n    curl -X POST \"http://localhost:3000/event\" -H 'Content-Type: application/vnd.api+json' --data '{\"data\":{\"type\":\"event\",\"attributes\":{\"category\":\"foo\",\"groupid\":\"mygroupid\",\"service\":\"myservice\",\"label\":\"mylabel\",\"value\":5,\"data\":{}}}}'\n\n## Doing api requests\n\n* use [swagger-client](https://npmjs.org/package/swagger-client) to easily call the api (using the swagger url, see `lib/index.js`)\n* create `http` nodes in the editor to setup custom points \n* use `context.global.lib.api` in a script-node inside the editor to do internal api-calls\n\n## Extending \n\n* For hardcoded (testable) logic use lib/index.js as entrypoint.\n* For simple wiring/glue code just use script-nodes in the editor.\n\n\u003e lib/index.js is exposed as `context.global.lib` inside a script-node (in the editor)\n\n## Storage\n\nYou can easily swap storage (SQL/Mongodb/Redis/etc), see [flowee docs](http://flowee.isvery.ninja)\n\n## Notes \n\n* you need to enable security in `config/webhook.js` (see [node-red](https://npmjs.org/package/node-red) for more info )\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoderofsalvation%2Fwebhookmonkey","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoderofsalvation%2Fwebhookmonkey","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoderofsalvation%2Fwebhookmonkey/lists"}