{"id":17278986,"url":"https://github.com/thib3113/node-crowdsec","last_synced_at":"2025-04-14T09:23:01.790Z","repository":{"id":171127469,"uuid":"647023472","full_name":"thib3113/node-crowdsec","owner":"thib3113","description":"client node to talk with crowdsec API","archived":false,"fork":false,"pushed_at":"2025-04-10T02:35:38.000Z","size":8088,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T03:32:50.185Z","etag":null,"topics":["crowdsec","firewall","nodejs","security"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thib3113.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"thib3113","custom":"paypal.me/thib3113"}},"created_at":"2023-05-29T22:32:54.000Z","updated_at":"2025-01-30T21:05:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"ca6bdf35-309c-4c2a-a4e4-4c0b589517c6","html_url":"https://github.com/thib3113/node-crowdsec","commit_stats":null,"previous_names":["thib3113/node-crowdsec"],"tags_count":38,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thib3113%2Fnode-crowdsec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thib3113%2Fnode-crowdsec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thib3113%2Fnode-crowdsec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thib3113%2Fnode-crowdsec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thib3113","download_url":"https://codeload.github.com/thib3113/node-crowdsec/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248852345,"owners_count":21171877,"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":["crowdsec","firewall","nodejs","security"],"created_at":"2024-10-15T09:15:03.614Z","updated_at":"2025-04-14T09:23:01.765Z","avatar_url":"https://github.com/thib3113.png","language":"TypeScript","funding_links":["https://github.com/sponsors/thib3113","paypal.me/thib3113","https://paypal.me/thib3113"],"categories":[],"sub_categories":[],"readme":"# node-crowdsec\n[![CI](https://github.com/thib3113/node-crowdsec/actions/workflows/CI.yml/badge.svg)](https://github.com/thib3113/node-crowdsec/actions/workflows/CI.yml)\n[![codecov](https://codecov.io/gh/thib3113/node-crowdsec/branch/main/graph/badge.svg?token=bQdlb31gcU)](https://codecov.io/gh/thib3113/node-crowdsec)\n[![Known Vulnerabilities](https://snyk.io/test/github/thib3113/node-crowdsec/badge.svg)](https://snyk.io/test/github/thib3113/node-crowdsec)\n[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg?logo=paypal)](https://paypal.me/thib3113)\n[![GitHub stars](https://img.shields.io/github/stars/thib3113/node-crowdsec.svg?style=social\u0026label=Star)](https://github.com/thib3113/node-crowdsec/stargazers/)\n\n![Dependencies update - renovate](https://img.shields.io/badge/renovate-enabled-green?style=for-the-badge\u0026logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjUgNSAzNzAgMzcwIj48Y2lyY2xlIGN4PSIxODkiIGN5PSIxOTAiIHI9IjE4NCIgZmlsbD0iI2ZlMiIvPjxwYXRoIGZpbGw9IiM4YmIiIGQ9Ik0yNTEgMjU2bC0zOC0zOGExNyAxNyAwIDAxMC0yNGw1Ni01NmMyLTIgMi02IDAtN2wtMjAtMjFhNSA1IDAgMDAtNyAwbC0xMyAxMi05LTggMTMtMTNhMTcgMTcgMCAwMTI0IDBsMjEgMjFjNyA3IDcgMTcgMCAyNGwtNTYgNTdhNSA1IDAgMDAwIDdsMzggMzh6Ii8+PHBhdGggZmlsbD0iI2Q1MSIgZD0iTTMwMCAyODhsLTggOGMtNCA0LTExIDQtMTYgMGwtNDYtNDZjLTUtNS01LTEyIDAtMTZsOC04YzQtNCAxMS00IDE1IDBsNDcgNDdjNCA0IDQgMTEgMCAxNXoiLz48cGF0aCBmaWxsPSIjYjMwIiBkPSJNMjg1IDI1OGw3IDdjNCA0IDQgMTEgMCAxNWwtOCA4Yy00IDQtMTEgNC0xNiAwbC02LTdjNCA1IDExIDUgMTUgMGw4LTdjNC01IDQtMTIgMC0xNnoiLz48cGF0aCBmaWxsPSIjYTMwIiBkPSJNMjkxIDI2NGw4IDhjNCA0IDQgMTEgMCAxNmwtOCA3Yy00IDUtMTEgNS0xNSAwbC05LThjNSA1IDEyIDUgMTYgMGw4LThjNC00IDQtMTEgMC0xNXoiLz48cGF0aCBmaWxsPSIjZTYyIiBkPSJNMjYwIDIzM2wtNC00Yy02LTYtMTctNi0yMyAwLTcgNy03IDE3IDAgMjRsNCA0Yy00LTUtNC0xMSAwLTE2bDgtOGM0LTQgMTEtNCAxNSAweiIvPjxwYXRoIGZpbGw9IiNiNDAiIGQ9Ik0yODQgMzA0Yy00IDAtOC0xLTExLTRsLTQ3LTQ3Yy02LTYtNi0xNiAwLTIybDgtOGM2LTYgMTYtNiAyMiAwbDQ3IDQ2YzYgNyA2IDE3IDAgMjNsLTggOGMtMyAzLTcgNC0xMSA0em0tMzktNzZjLTEgMC0zIDAtNCAybC04IDdjLTIgMy0yIDcgMCA5bDQ3IDQ3YTYgNiAwIDAwOSAwbDctOGMzLTIgMy02IDAtOWwtNDYtNDZjLTItMi0zLTItNS0yeiIvPjxwYXRoIGZpbGw9IiMxY2MiIGQ9Ik0xNTIgMTEzbDE4LTE4IDE4IDE4LTE4IDE4em0xLTM1bDE4LTE4IDE4IDE4LTE4IDE4em0tOTAgODlsMTgtMTggMTggMTgtMTggMTh6bTM1LTM2bDE4LTE4IDE4IDE4LTE4IDE4eiIvPjxwYXRoIGZpbGw9IiMxZGQiIGQ9Ik0xMzQgMTMxbDE4LTE4IDE4IDE4LTE4IDE4em0tMzUgMzZsMTgtMTggMTggMTgtMTggMTh6Ii8+PHBhdGggZmlsbD0iIzJiYiIgZD0iTTExNiAxNDlsMTgtMTggMTggMTgtMTggMTh6bTU0LTU0bDE4LTE4IDE4IDE4LTE4IDE4em0tODkgOTBsMTgtMTggMTggMTgtMTggMTh6bTEzOS04NWwyMyAyM2M0IDQgNCAxMSAwIDE2TDE0MiAyNDBjLTQgNC0xMSA0LTE1IDBsLTI0LTI0Yy00LTQtNC0xMSAwLTE1bDEwMS0xMDFjNS01IDEyLTUgMTYgMHoiLz48cGF0aCBmaWxsPSIjM2VlIiBkPSJNMTM0IDk1bDE4LTE4IDE4IDE4LTE4IDE4em0tNTQgMThsMTgtMTcgMTggMTctMTggMTh6bTU1LTUzbDE4LTE4IDE4IDE4LTE4IDE4em05MyA0OGwtOC04Yy00LTUtMTEtNS0xNiAwTDEwMyAyMDFjLTQgNC00IDExIDAgMTVsOCA4Yy00LTQtNC0xMSAwLTE1bDEwMS0xMDFjNS00IDEyLTQgMTYgMHoiLz48cGF0aCBmaWxsPSIjOWVlIiBkPSJNMjcgMTMxbDE4LTE4IDE4IDE4LTE4IDE4em01NC01M2wxOC0xOCAxOCAxOC0xOCAxOHoiLz48cGF0aCBmaWxsPSIjMGFhIiBkPSJNMjMwIDExMGwxMyAxM2M0IDQgNCAxMSAwIDE2TDE0MiAyNDBjLTQgNC0xMSA0LTE1IDBsLTEzLTEzYzQgNCAxMSA0IDE1IDBsMTAxLTEwMWM1LTUgNS0xMSAwLTE2eiIvPjxwYXRoIGZpbGw9IiMxYWIiIGQ9Ik0xMzQgMjQ4Yy00IDAtOC0yLTExLTVsLTIzLTIzYTE2IDE2IDAgMDEwLTIzTDIwMSA5NmExNiAxNiAwIDAxMjIgMGwyNCAyNGM2IDYgNiAxNiAwIDIyTDE0NiAyNDNjLTMgMy03IDUtMTIgNXptNzgtMTQ3bC00IDItMTAxIDEwMWE2IDYgMCAwMDAgOWwyMyAyM2E2IDYgMCAwMDkgMGwxMDEtMTAxYTYgNiAwIDAwMC05bC0yNC0yMy00LTJ6Ii8+PC9zdmc+\n)\n\n\nThis repository will host multiples packages, you can found them with examples below\n\nTechnical documentation is available [here](https://thib3113.github.io/node-crowdsec/)\n\n## Packages\n\n### [crowdsec-client](./packages/crowdsec-client)\n\n[![NPM version](https://img.shields.io/npm/v/crowdsec-client.svg)](https://www.npmjs.com/package/crowdsec-client)\n[![Downloads](https://img.shields.io/npm/dm/crowdsec-client.svg)](https://www.npmjs.com/package/crowdsec-client)\n[![License](https://img.shields.io/npm/l/crowdsec-client)](https://github.com/thib3113/node-crowdsec/blob/main/LICENSE)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=thib3113_node-crowdsec\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=thib3113_node-crowdsec)\n[![Package Quality](https://packagequality.com/shield/crowdsec-client.svg)](https://packagequality.com/#?package=crowdsec-client)\n\n[//]: # ([![crowdsec-client-snyk]\u0026#40;https://snyk.io/advisor/npm-package/crowdsec-client/badge.svg\u0026#41;]\u0026#40;https://snyk.io/advisor/npm-package/crowdsec-client\u0026#41;)\n[![NPM](https://nodei.co/npm/crowdsec-client.png?months=3\u0026height=1)](https://nodei.co/npm/crowdsec-client/)\n\n### [crowdsec-http-middleware](./packages/crowdsec-http-middleware)\n\n[![NPM version](https://img.shields.io/npm/v/crowdsec-http-middleware.svg)](https://www.npmjs.com/package/crowdsec-http-middleware)\n[![Downloads](https://img.shields.io/npm/dm/crowdsec-http-middleware.svg)](https://www.npmjs.com/package/crowdsec-http-middleware)\n[![License](https://img.shields.io/npm/l/crowdsec-http-middleware)](https://github.com/thib3113/node-crowdsec/blob/main/LICENSE)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=thib3113_crowdsec-http-middleware\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=thib3113_node-crowdsec)\n[![Package Quality](https://packagequality.com/shield/crowdsec-http-middleware.svg)](https://packagequality.com/#?package=crowdsec-http-middleware)\n\n[//]: # ([![crowdsec-http-middleware-snyk]\u0026#40;https://snyk.io/advisor/npm-package/crowdsec-http-middleware/badge.svg\u0026#41;]\u0026#40;https://snyk.io/advisor/npm-package/crowdsec-http-middleware\u0026#41;)\n[![NPM](https://nodei.co/npm/crowdsec-http-middleware.png?months=3\u0026height=1)](https://nodei.co/npm/crowdsec-http-middleware/)\n\nan alpha http middleware that allow to include CrowdSec to protect your http serveur\n\n### [crowdsec-client-scenarios](./packages/crowdsec-client-scenarios)\n\n[![NPM version](https://img.shields.io/npm/v/crowdsec-client-scenarios.svg)](https://www.npmjs.com/package/crowdsec-client-scenarios)\n[![Downloads](https://img.shields.io/npm/dm/crowdsec-client-scenarios.svg)](https://www.npmjs.com/package/crowdsec-client-scenarios)\n[![License](https://img.shields.io/npm/l/crowdsec-client-scenarios)](https://github.com/thib3113/node-crowdsec/blob/main/LICENSE)\n[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=thib3113_crowdsec-client-scenarios\u0026metric=coverage)](https://sonarcloud.io/summary/new_code?id=thib3113_node-crowdsec)\n[![Package Quality](https://packagequality.com/shield/crowdsec-client-scenarios.svg)](https://packagequality.com/#?package=crowdsec-client-scenarios)\n\n[//]: # ([![crowdsec-client-scenarios-snyk]\u0026#40;https://snyk.io/advisor/npm-package/crowdsec-client-scenarios/badge.svg\u0026#41;]\u0026#40;https://snyk.io/advisor/npm-package/crowdsec-client-scenarios\u0026#41;)\n[![NPM](https://nodei.co/npm/crowdsec-client-scenarios.png?months=3\u0026height=1)](https://nodei.co/npm/crowdsec-client-scenarios/)\n\nHere are some optionals scenarios available to use with the middleware\n\n## Examples\n - [express-bouncer](./examples/express-bouncer) : an example of use of the [crowdsec-client](./packages/crowdsec-client) to create an express bouncer\n - [express-bouncer-cjs](./examples/express-bouncer-cjs) : the same as [express-bouncer](./examples/express-bouncer), but wrote in (common) js only\n - [express-web-parser](./examples/express-web-parser) : a watcher example that will ban user checking the user-agent\n\nThis library is a Node.js client to talk with crowdsec rest API .\n\n## Thanks to\n\n- [Crowdsec team](https://www.crowdsec.net/) for the crowdsec tool\n- [University of Delaware](https://www.udel.edu/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthib3113%2Fnode-crowdsec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthib3113%2Fnode-crowdsec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthib3113%2Fnode-crowdsec/lists"}