Skip to content

Sapi support - #23

Open
buixor wants to merge 4 commits into
mainfrom
SAPI-support
Open

Sapi support#23
buixor wants to merge 4 commits into
mainfrom
SAPI-support

Conversation

@buixor

@buixor buixor commented Aug 3, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI review requested due to automatic review settings August 3, 2026 07:27

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds first-class support for CrowdSec’s premium Console Service API (SAPI) as a separate skill alongside the existing local/operational crowdsec skill, and updates routing/docs/metadata accordingly.

Changes:

  • Introduces a new crowdsec-service-api skill with an “act on the user’s behalf” contract and resource-grouped reference docs (auth, blocklists, allowlists, integrations, metrics, decisions).
  • Updates the existing crowdsec skill docs to route cloud Service API tasks to the new skill, and adds an API-management pointer from the Console enrollment doc.
  • Enhances check-verification.py to support checking verification coverage for either skill via a --root argument.

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
skills/crowdsec/SKILL.md Updates the skill boundary table to route Service API usage to the new crowdsec-service-api skill.
skills/crowdsec/scripts/check-verification.py Adds --root to run verification coverage checks against either skill directory; recognizes env: sapi as canonical.
skills/crowdsec/references/install/console.md Adds a short section directing programmatic Console management to the new Service API skill.
skills/crowdsec-service-api/SKILL.md Adds the new SAPI skill router, operating contract (key handling + confirm-before-mutate), and intent-to-reference map.
skills/crowdsec-service-api/references/authentication.md Documents key creation, key resolution, /info validation, and a Python SDK pointer.
skills/crowdsec-service-api/references/blocklists.md Documents blocklist lifecycle, IP operations (add/delete/bulk overwrite), subscribers/shares, and search.
skills/crowdsec-service-api/references/allowlists.md Documents allowlist lifecycle, item operations, and subscriber models (engine/tag/org).
skills/crowdsec-service-api/references/integrations.md Documents creating integrations and pulling vendor-formatted feeds via Basic auth, plus update/delete.
skills/crowdsec-service-api/references/metrics.md Documents read-only remediation ROI metrics via GET /metrics/remediation.
skills/crowdsec-service-api/references/decisions.md Documents org-level decisions, aggregated view, creation, and observed delete caveats.
README.md Updates top-level README to describe both skills and expands coverage/examples for the Service API skill.
CLAUDE.md Extends the repo authoring/contribution conventions to include the new crowdsec-service-api skill layout and verification expectations.
.claude-plugin/plugin.json Registers the new skill directory in the plugin and updates metadata/keywords to include SAPI.
.claude-plugin/marketplace.json Updates marketplace metadata/keywords to reflect the added Service API skill.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread skills/crowdsec/SKILL.md
| Debug "logs not parsing" / "no alerts" / "bouncer not blocking" | this skill |
| Migrate from fail2ban | this skill |
| **Write** a parser, scenario, or WAF (AppSec) rule | out of scope — this skill is operational only |
| **Write** a parser, scenario, or WAF (AppSec) rule | the `crowdsec-local-mcp` mcp |
Comment on lines +29 to +32
> **Access:** the `/decisions` group needs a **decision-scoped key**. A key scoped
> only to blocklist/allowlist management gets `403 {"message":"Forbidden"}` on
> every call here — an entitlement gap, not a bad request. A blocklist-only key
> silently fails.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants