Skip to content

Commit ffc099f

Browse files
committed
feat: add vdb exploits/fixes/versions/gcve subcommands, rename cve→vuln, extend product to 3-arg form
- Rename `vdb cve` → `vdb vuln` (aligns with /vuln/{id} endpoint) - Add `vdb exploits <CVE-ID>` — GET /exploits/{id} - Add `vdb fixes <CVE-ID>` — GET /vuln/{id}/fixes - Add `vdb versions <package>` — GET /{pkg}/versions - Add `vdb gcve --start --end` — GET /gcve?start=...&end=... - Extend `vdb product` to accept optional ecosystem 3rd arg (GET /product/{name}/{ver}/{eco}) - Add corresponding API methods to internal/vdb/api.go - Update all docs: vdb.md, vdb-quickstart.md, _index.md
1 parent 2bd5b72 commit ffc099f

19 files changed

Lines changed: 553 additions & 1986 deletions

.claude/settings.local.json

Lines changed: 169 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,178 @@
11
{
22
"permissions": {
33
"allow": [
4-
"Bash(go test:*)",
4+
"Bash(grep:*)",
5+
"Bash(rg:*)",
6+
"Bash(npx tsc:*)",
7+
"Bash(mv:*)",
58
"Bash(find:*)",
6-
"mcp__claude_ai_Cloudflare_Developer_Platform__accounts_list",
9+
"Bash(ls:*)",
10+
"Bash(mkdir:*)",
11+
"Bash(cp:*)",
12+
"Bash(npm:*)",
13+
"WebFetch(domain:docs.github.com)",
14+
"WebFetch(domain:www.anthropic.com)",
15+
"WebFetch(domain:raw.githubusercontent.com)",
16+
"WebFetch(domain:cloud.google.com)",
17+
"WebFetch(domain:opencode.ai)",
18+
"Bash(yarn:*)",
19+
"Bash(cat:*)",
20+
"Bash(git status:*)",
21+
"Bash(git commit:*)",
22+
"Bash(git cherry-pick:*)",
23+
"Bash(git log:*)",
24+
"Bash(git diff:*)",
25+
"Bash(git fetch:*)",
26+
"Bash(git clone:*)",
27+
"Bash(npx vue-tsc:*)",
28+
"Bash(npx prisma:*)",
29+
"WebFetch(domain:chromium.googlesource.com)",
30+
"WebFetch(domain:github.com)",
31+
"WebFetch(domain:vulnetix.com)",
32+
"WebFetch(domain:arxiv.org)",
33+
"WebFetch(domain:advisories.ecosyste.ms)",
34+
"Bash(npx wrangler d1 info:*)",
35+
"mcp__ide__getDiagnostics",
36+
"WebFetch(domain:docs.oasis-open.org)",
37+
"WebSearch",
38+
"Bash(node:*)",
39+
"Bash(npx tsx:*)",
40+
"WebFetch(domain:www.vulnetix.com)",
41+
"Bash(just:*)",
42+
"Bash(curl:*)",
43+
"WebFetch(domain:google.github.io)",
44+
"WebFetch(domain:ossf.github.io)",
45+
"Bash(magick:*)",
46+
"WebFetch(domain:developers.cloudflare.com)",
47+
"WebFetch(domain:gist.github.com)",
48+
"WebFetch(domain:ess-api.coalitioninc.com)",
49+
"WebFetch(domain:euvd.enisa.europa.eu)",
50+
"WebFetch(domain:www.cisa.gov)",
51+
"WebFetch(domain:nvd.nist.gov)",
52+
"WebFetch(domain:csrc.nist.gov)",
53+
"WebFetch(domain:services.nvd.nist.gov)",
54+
"WebFetch(domain:docs.deps.dev)",
55+
"Bash(npx esbuild:*)",
56+
"Bash(npx wrangler r2 object list:*)",
57+
"Bash(awk:*)",
58+
"Bash(sed:*)",
59+
"WebFetch(domain:www.first.org)",
60+
"WebFetch(domain:gcve.eu)",
61+
"Bash(npx wrangler d1 migrations list:*)",
62+
"Bash(npx wrangler r2 bucket list:*)",
63+
"WebFetch(domain:docs.astral.sh)",
64+
"WebFetch(domain:cveawg.mitre.org)",
65+
"Bash(nslookup:*)",
66+
"Bash(dig:*)",
67+
"Bash(host:*)",
68+
"Read(//tmp/**)",
69+
"Bash(xmllint:*)",
70+
"Bash(npx wrangler d1 export:*)",
71+
"Bash(npx wrangler --version)",
72+
"WebFetch(domain:www.prisma.io)",
73+
"Bash(npx wrangler:*)",
74+
"Bash(npx vite build:*)",
75+
"WebFetch(domain:owasp.org)",
76+
"Bash(uv run:*)",
77+
"Bash(unzip:*)",
78+
"Bash(perl -i -pe:*)",
79+
"Bash(psql:*)",
80+
"Bash(jq:*)",
81+
"WebFetch(domain:www.opengrep.dev)",
82+
"Bash(npx ajv-cli:*)",
83+
"Bash(head:*)",
84+
"Bash(wc:*)",
85+
"WebFetch(domain:sass-lang.com)",
86+
"Bash(file:*)",
87+
"Bash(cut:*)",
88+
"WebFetch(domain:qwenlm.github.io)",
89+
"WebFetch(domain:openvex.dev)",
90+
"WebFetch(domain:octodex.github.com)",
91+
"WebFetch(domain:spdx.org)",
92+
"Bash(ping:*)",
93+
"WebFetch(domain:docs.snyk.io)",
94+
"WebFetch(domain:www.synopsys.com)",
95+
"WebFetch(domain:help.sonatype.com)",
96+
"WebFetch(domain:fossa.com)",
97+
"WebFetch(domain:www.blackduck.com)",
98+
"Bash(xargs:*)",
99+
"WebFetch(domain:www.npmjs.com)",
100+
"WebFetch(domain:pypi.org)",
101+
"WebFetch(domain:crates.io)",
102+
"WebFetch(domain:rubygems.org)",
103+
"WebFetch(domain:www.nuget.org)",
104+
"WebFetch(domain:www.gnu.org)",
105+
"WebFetch(domain:opensource.guide)",
106+
"WebFetch(domain:opensource.org)",
107+
"WebFetch(domain:choosealicense.com)",
108+
"WebFetch(domain:rules.sonarsource.com)",
109+
"WebFetch(domain:semgrep.dev)",
110+
"Bash(podman ps:*)",
111+
"Bash(gh pr:*)",
112+
"Bash(git worktree:*)",
113+
"Bash(podman-compose build:*)",
114+
"Bash(podman-compose logs:*)",
115+
"Bash(docker ps:*)",
116+
"Bash(podman network:*)",
117+
"Bash(docker network:*)",
118+
"Bash(podman inspect:*)",
7119
"Bash(gh api:*)",
8-
"mcp__claude_ai_Cloudflare_Developer_Platform__set_active_account",
9-
"mcp__claude_ai_Cloudflare_Developer_Platform__search_cloudflare_documentation",
10-
"Bash(hugo version:*)",
11-
"Bash(hugo mod:*)",
12-
"Bash(hugo:*)",
120+
"Bash(# Check the specific tar versions installed find /home/chris/GitHub/Vulnetix/saas/node_modules -path \"\"*/tar/package.json\"\" -maxdepth 5)",
121+
"Bash(# Check what version of hono is actually in node_modules for @prisma/dev find /home/chris/GitHub/Vulnetix/saas/node_modules -path \"\"*/@prisma/dev/package.json\"\" -maxdepth 5)",
122+
"Bash(# Check if @prisma/studio-server has a newer version that uses a newer express npm view @prisma/studio-server versions --json)",
123+
"Bash(# Check latest lodash-es version available npm view lodash-es versions --json)",
124+
"Bash(# What about lodash? npm view lodash versions --json)",
125+
"Bash(# Check if tst-reflect / tst-reflect-transformer are actually used in the codebase grep -r \"\"tst-reflect\"\" /home/chris/GitHub/Vulnetix/saas/src/ --include=\"\"*.ts\"\" --include=\"\"*.vue\"\" -l)",
126+
"Bash(# Check vite config for tst-reflect-transformer usage grep -r \"\"tst-reflect\\\\|ttypescript\\\\|rttist\"\" /home/chris/GitHub/Vulnetix/saas/vite.config.* /home/chris/GitHub/Vulnetix/saas/tsconfig.*)",
127+
"Bash(# Check if there are iconify bx/bxl/bxs sets used grep -r \"\"@iconify-json/bx\"\" /home/chris/GitHub/Vulnetix/saas/src/ --include=\"\"*.ts\"\" --include=\"\"*.vue\"\" -l)",
128+
"Bash(# Check the actual boxicons usage pattern - is it direct CSS import or iconify? grep -r \"\"boxicons\"\" /home/chris/GitHub/Vulnetix/saas/src/ --include=\"\"*.ts\"\" --include=\"\"*.vue\"\" --include=\"\"*.scss\"\" --include=\"\"*.css\"\")",
129+
"Bash(# Check what @parcel/watcher version is installed and who pulls it yarn why @parcel/watcher)",
130+
"Bash(# Check the exact tar spec from @parcel/watcher''s node-gyp npm view @parcel/watcher@latest dependencies)",
131+
"Bash(wrangler --version:*)",
13132
"WebFetch(domain:api.vdb.vulnetix.com)",
14-
"Bash(go mod:*)",
15-
"Bash(go build:*)",
16-
"Bash(./bin/vulnetix version:*)",
17-
"Bash(./bin/vulnetix auth:*)",
18-
"Bash(./bin/vulnetix vdb:*)",
19133
"Bash(make dev:*)",
20-
"Bash(./bin/vulnetix upload:*)",
21-
"Bash(./bin/vulnetix gha:*)",
22-
"Bash(gh run:*)",
23-
"mcp__claude_ai_Cloudflare_Developer_Platform__kv_namespaces_list",
24-
"Bash(make build:*)"
134+
"Bash(make test:*)",
135+
"Bash(./bin/vulnetix vdb:*)"
25136
],
26-
"deny": []
27-
}
137+
"deny": [
138+
"Bash(dd:*)",
139+
"Bash(chmod:*)",
140+
"Bash(fsck:*)",
141+
"Bash(python3:*)"
142+
],
143+
"ask": [
144+
"Bash(export:*)",
145+
"Bash(env:*)",
146+
"Bash(/bin:*)",
147+
"Bash(npx wrangler d1 migrations apply:*)",
148+
"Bash(git pull:*)",
149+
"Bash(git push:*)",
150+
"Bash(git commit:*)",
151+
"Bash(git add:*)",
152+
"Bash(source:*)",
153+
"Bash(rm:*)",
154+
"Bash(podman run:*)",
155+
"Bash(podman exec:*)",
156+
"Bash(git checkout:*)",
157+
"Bash(git switch:*)",
158+
"Bash(git rm:*)",
159+
"Bash(git reset:*)",
160+
"Bash(git add .)",
161+
"Bash(git rebase:*)",
162+
"Bash(git merge:*)",
163+
"Bash(git revert:*)",
164+
"Bash(git branch:*)",
165+
"Bash(git remote:*)"
166+
]
167+
},
168+
"enableAllProjectMcpServers": true,
169+
"enabledMcpjsonServers": [
170+
"chrome-devtools"
171+
],
172+
"statusLine": {
173+
"type": "command",
174+
"command": "/home/chris/GitHub/Vulnetix/cli/.claude/statusline-command.sh"
175+
},
176+
"outputStyle": "default",
177+
"spinnerTipsEnabled": false
28178
}

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,14 +92,13 @@ Vulnetix supports multiple task types to cover different aspects of vulnerabilit
9292
| Task | Description | Use Case | Required Flags |
9393
|------|-------------|----------|----------------|
9494
| `release` | Release readiness assessment | Pre-release security validation | `--org-id`, `--production-branch`, `--release-branch` |
95-
| `sarif` | Upload and validate SARIF files | Integrate with external security tools | `--org-id`, `<sarif-file>` |
9695

9796
### Configuration Options
9897

9998
| Flag | Description | Default | Example |
10099
|------|-------------|---------|---------|
101100
| `--org-id` | Organization ID (UUID) - **Required** | - | `123e4567-e89b-12d3-a456-426614174000` |
102-
| `--task` | Task to perform | - | `release` `sarif` |
101+
| `--task` | Task to perform | - | `release` |
103102
| `--project-name` | Project name for context | - | `my-web-app` |
104103
| `--team-name` | Team responsible for the project | - | `security-team` |
105104
| `--production-branch` | Production branch name | `main` | `main`, `master`, `production` |

USAGE.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ chmod +x vulnetix
8181
./vulnetix --org-id "your-org-id-here" --task release --project-name "my-app"
8282

8383
# Upload SARIF file
84-
./vulnetix sarif --org-id "your-org-id-here" my-scan-results.sarif
84+
vulnetix upload --file my-scan-results.sarif --org-id "your-org-id-here"
8585
```
8686

8787
## Installation
@@ -372,11 +372,7 @@ echo "📤 Uploading SARIF results to Vulnetix..."
372372
for sarif_file in "${SCAN_RESULTS_DIR}"/*.sarif; do
373373
if [ -f "$sarif_file" ]; then
374374
echo "Uploading: $sarif_file"
375-
vulnetix sarif \
376-
--org-id "${ORG_ID}" \
377-
--project-name "${PROJECT_NAME}" \
378-
--team-name "${TEAM_NAME}" \
379-
"$sarif_file"
375+
vulnetix upload --file "$sarif_file" --org-id "${ORG_ID}"
380376
fi
381377
done
382378

0 commit comments

Comments
 (0)