Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
9efd171
feat(mcp): add CrowdSec MCP server
thib3113 Oct 26, 2026
6e751f8
feat(mcp): add Docker deployment and harden MCP tools
thib3113 Oct 27, 2026
46755e5
fix(ci): pin actions and update axios
thib3113 Oct 27, 2026
68f8ced
fix(ci): address Sonar security findings
thib3113 Oct 27, 2026
56ad400
fix(deps): update vulnerable transitive packages
thib3113 Oct 27, 2026
0bbe338
fix(ci): run CodeQL after Snyk SARIF upload
thib3113 Oct 27, 2026
f8f459b
refactor(mcp): clear SonarCloud code smells
thib3113 Oct 27, 2026
af61ffd
refactor(mcp): finish SonarCloud cleanup
thib3113 Oct 27, 2026
9265d58
refactor(mcp): make passthrough request factory synchronous
thib3113 Oct 27, 2026
b38dab2
chore(ci): remove unused Context7 refresh workflow
thib3113 Oct 27, 2026
cb0e543
feat(mcp): add docs, prompts and HTTP E2E
thib3113 Oct 27, 2026
a36621a
fix(deps): pin qs to 6.17.0
thib3113 Oct 27, 2026
0290bfa
fix(mcp): clear remaining Sonar issues
thib3113 Oct 27, 2026
8d49e88
chore(mcp): remove internal TODO
thib3113 Oct 27, 2026
bcc5433
docs: link the wiki guides and clarify default scenarios
thib3113 Oct 27, 2026
fd5c4ba
docs(http-middleware): simplify default scenarios wording
thib3113 Oct 27, 2026
5226102
chore: remove context7 config
thib3113 Oct 27, 2026
c8727c5
fix(mcp): align durations with CrowdSec and harden HTTP E2E
thib3113 Oct 27, 2026
951da88
fix(mcp): restore CIDR containment and simplify list_decisions
thib3113 Oct 27, 2026
5b7a28f
fix(mcp): address review findings
thib3113 Oct 28, 2026
a024a97
fix(mcp): address review and Sonar findings
thib3113 Oct 28, 2026
a0f07a2
fix(mcp): hide delete_alerts over tokenless HTTP
thib3113 Oct 29, 2026
ec9e354
chore: normalize non-ASCII punctuation to ASCII
thib3113 Oct 29, 2026
aadf9c8
feat(mcp): require confirm for broad delete_alerts filters and docume…
thib3113 Oct 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @thib3113
14 changes: 2 additions & 12 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,2 @@
# These are supported funding model platforms

github: thib3113 # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
#patreon: # Replace with a single Patreon username
#open_collective: # Replace with a single Open Collective username
#ko_fi: # Replace with a single Ko-fi username
#tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
#community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
#liberapay: # Replace with a single Liberapay username
#issuehunt: # Replace with a single IssueHunt username
#otechie: # Replace with a single Otechie username
custom: paypal.me/thib3113
github: thib3113
custom: https://paypal.me/thib3113
66 changes: 66 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Bug report
description: Report a reproducible bug
title: "[Bug]: "
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Thanks for the report. Do **not** use this form for security
vulnerabilities: see [SECURITY.md](https://github.com/thib3113/node-crowdsec/blob/main/SECURITY.md).
- type: textarea
id: description
attributes:
label: Description
description: What happened, and what did you expect instead?
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Steps to reproduce
placeholder: |
1. Install ...
2. Configure ...
3. Run ...
validations:
required: true
- type: input
id: package
attributes:
label: Package
placeholder: crowdsec-client / crowdsec-http-middleware / crowdsec-client-scenarios / crowdsec-mcp
validations:
required: true
- type: input
id: package-version
attributes:
label: Package version
validations:
required: true
- type: input
id: node-version
attributes:
label: Node.js version
placeholder: "24"
validations:
required: true
- type: dropdown
id: os
attributes:
label: Operating system
options:
- Linux
- macOS
- Windows
- Other
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant logs
description: Remove secrets and personal data before pasting.
render: shell
validations:
required: false
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: Security vulnerability
url: https://github.com/thib3113/node-crowdsec/security/advisories/new
about: Please report security issues privately, not in a public issue.
- name: Guides and usage documentation
url: https://github.com/thib3113/node-crowdsec/wiki
about: Read the guides (authentication, bouncer/watcher setup, performance).
- name: API reference
url: https://thib3113.github.io/node-crowdsec/
about: Read the generated technical documentation.
36 changes: 36 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Feature request
description: Suggest an improvement
title: "[Feature]: "
labels: ["enhancement"]
body:
- type: textarea
id: problem
attributes:
label: Problem
description: What are you trying to do, and what blocks you today?
validations:
required: true
- type: textarea
id: solution
attributes:
label: Proposed solution
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Alternatives considered
validations:
required: false
- type: dropdown
id: package
attributes:
label: Package
options:
- crowdsec-client
- crowdsec-http-middleware
- crowdsec-client-scenarios
- crowdsec-mcp
- documentation
validations:
required: true
23 changes: 23 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
## What changed

<!-- Describe the change and the motivation. -->

## Affected packages

- [ ] `crowdsec-client`
- [ ] `crowdsec-http-middleware`
- [ ] `crowdsec-client-scenarios`
- [ ] `crowdsec-mcp`
- [ ] docs / examples / CI

## Checklist

- [ ] Tests added or updated (`pnpm -F <package> test`)
- [ ] Lint passes (`pnpm -F <package> lint`)
- [ ] README / docs updated if behavior or configuration changed
- [ ] `package.json` metadata updated if the public API changed
- [ ] No secrets or credentials committed

## Related issues

Closes #
Original file line number Diff line number Diff line change
Expand Up @@ -25,23 +25,23 @@ runs:
using: "composite"
steps:
- name: Install Node.js
uses: actions/setup-node@v7
uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7
with:
node-version: ${{ inputs.node-version }}

- uses: pnpm/action-setup@v6
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6
name: Install pnpm
id: pnpm-install
with:
run_install: true
run_install: false

- name: Get pnpm store directory
id: pnpm-cache
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
echo "STORE_PATH=$(pnpm store path)" >> "$GITHUB_OUTPUT"

- uses: actions/cache@v6
- uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6
name: Setup pnpm cache
with:
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
Expand All @@ -50,13 +50,12 @@ runs:
${{ runner.os }}-pnpm-store-

- name: Install dependencies
run: pnpm install
run: pnpm install --frozen-lockfile
shell: bash

- name: run eslint
run: npm run ci:eslint
working-directory: ${{ inputs.package_path }}
continue-on-error: true
shell: bash
env:
CI: true
Expand Down Expand Up @@ -87,7 +86,7 @@ runs:
run: |
echo "safe=$(echo '${{ inputs.node-version }}' | tr -c 'A-Za-z0-9._-' '_')" >> "$GITHUB_OUTPUT"

- uses: actions/upload-artifact@v7
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7
with:
name: "coverage-${{ inputs.package_name }}-${{ steps.norm-node.outputs.safe }}"
path: |
Expand All @@ -98,7 +97,7 @@ runs:
if: ${{ inputs.check == 'true' }}


- uses: codecov/codecov-action@v7
- uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7
with:
token: ${{ inputs.CODECOV_TOKEN }}
flags: ${{ inputs.package_name }}
Expand Down
24 changes: 24 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
changelog:
exclude:
labels:
- ignore-for-release
categories:
- title: Breaking changes
labels:
- breaking
- title: Features
labels:
- enhancement
- feature
- title: Bug fixes
labels:
- bug
- title: Dependencies
labels:
- dependencies
- title: Documentation
labels:
- documentation
- title: Other changes
labels:
- "*"
Loading
Loading