{"id":"nichedb.dev/nichedb","name":"nichedb","commands":["nichedb"],"examples":[{"run":"nichedb login --api https://nichedb.dev","does":"Save an API key from /settings"},{"run":"nichedb collections","does":"List collections"},{"run":"nichedb items npm-latest --limit 20","does":"Show the latest items in a feed"},{"run":"nichedb search \"mcp server\" --collection packages --json","does":"Search items in a collection"},{"run":"claude mcp add nichedb -- nichedb mcp --api https://nichedb.dev","does":"Use NicheDB as an MCP server in Claude Code"}],"description":"CLI and stdio MCP server for a NicheDB deployment: browse collections, manage sources and feeds, and search items.","homepage":"https://nichedb.dev","repository":"https://github.com/profullstack/niche-db","license":"MIT","agentic":true,"latest_version":"0.58.0","vendor":"Profullstack","install":"curl -fsSL https://nichedb.dev/install.sh | sh","publisher":"profullstack","w3bs":"w3bs install nichedb.dev/nichedb","scan":{"status":"passed","scanner":"threatcrush 0.13.30","filesScanned":853,"summary":{"critical":0,"high":7,"medium":62,"low":109,"info":0},"malware":0,"truncated":true,"version":"0.58.0","sources":{"installer":"https://nichedb.dev/install.sh","installerSha256":"9a9b938e2565b10d0f0ea49e348b9840e657d109cf0dc32549edce25ea1e24ab","repository":"github.com/profullstack/niche-db","commit":"21806b235022d1401590360754cf581939119002"},"notes":[],"scannedAt":"2026-11-03T04:48:18.927Z","findings":[{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"high","category":"secret","cwe":"CWE-798","file":"source/.env.example","line":2,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"high","category":"secret","cwe":"CWE-798","file":"source/.github/workflows/ci.yml","line":40,"malware":false},{"ruleId":"js-ssrf-outbound-request","title":"outbound request to a non-constant URL","severity":"high","category":"code","cwe":"CWE-918","file":"source/apps/web/public/sw.js","line":25,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"high","category":"secret","cwe":"CWE-798","file":"source/docker-compose.yml","line":10,"malware":false},{"ruleId":"tls-verification-disabled","title":"TLS certificate verification disabled","severity":"high","category":"code","cwe":"CWE-295","file":"source/packages/db/src/index.js","line":27,"malware":false},{"ruleId":"py-ssrf-outbound-request","title":"outbound request to a non-constant URL","severity":"high","category":"code","cwe":"CWE-918","file":"source/scripts/discover-police-sources.py","line":70,"malware":false},{"ruleId":"py-ssrf-outbound-request","title":"outbound request to a non-constant URL","severity":"high","category":"code","cwe":"CWE-918","file":"source/scripts/discover-police-sources.py","line":212,"malware":false},{"ruleId":"sh-predictable-temp-path","title":"predictable temporary file","severity":"medium","category":"code","cwe":"CWE-377","file":"source/ops/selfhost-supabase/nichedb-db","line":512,"malware":false},{"ruleId":"sh-predictable-temp-path","title":"predictable temporary file","severity":"medium","category":"code","cwe":"CWE-377","file":"source/ops/selfhost-supabase/nichedb-db","line":516,"malware":false},{"ruleId":"sh-predictable-temp-path","title":"predictable temporary file","severity":"medium","category":"code","cwe":"CWE-377","file":"source/ops/selfhost-supabase/nichedb-db","line":752,"malware":false},{"ruleId":"sh-predictable-temp-path","title":"predictable temporary file","severity":"medium","category":"code","cwe":"CWE-377","file":"source/ops/selfhost-supabase/nichedb-db","line":768,"malware":false},{"ruleId":"js-timing-unsafe-mac-compare","title":"MAC or signature compared with ==","severity":"medium","category":"code","cwe":"CWE-208","file":"source/packages/adapters/src/census-acs.js","line":490,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/packages/adapters/src/installmap.js","line":88,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/auth/src/api-keys.js","line":66,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/auth/src/api-keys.js","line":72,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/auth/src/api-keys.js","line":101,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/packages/core/src/adapter.js","line":252,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/core/src/data-dumps.js","line":146,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/core/src/data-dumps.js","line":215,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/packages/core/src/names.js","line":228,"malware":false},{"ruleId":"redos-nested-quantifier","title":"regex with nested unbounded quantifiers","severity":"medium","category":"code","cwe":"CWE-1333","file":"source/packages/core/src/profiles.js","line":106,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/account.js","line":142,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/account.js","line":144,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/automotive.js","line":21,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/build-indexes.js","line":80,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/build-indexes.js","line":120,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/knowledge.js","line":339,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/knowledge.js","line":479,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/migrate.js","line":47,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/premium.js","line":191,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/profiles.js","line":69,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/profiles.js","line":95,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/profiles.js","line":116,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/profiles.js","line":163,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/profiles.js","line":211,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/profiles.js","line":217,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/profiles.js","line":245,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":210,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":214,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":218,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":239,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":258,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":306,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":310,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":364,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":399,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":546,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":551,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":648,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":1034,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":1453,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":1457,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":1592,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":1717,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":1723,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/queries.js","line":1835,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/revenue.js","line":92,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/revenue.js","line":235,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/revenue.js","line":378,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/tlds.js","line":18,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/tlds.js","line":79,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/tlds.js","line":244,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/tlds.js","line":253,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/tlds.js","line":260,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/db/src/traffic.js","line":317,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/payments/src/referrals.js","line":32,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/payments/src/referrals.js","line":53,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/payments/src/referrals.js","line":57,"malware":false},{"ruleId":"sql-template-interpolation","title":"SQL built from a template literal or f-string","severity":"medium","category":"code","cwe":"CWE-89","file":"source/packages/payments/src/referrals.js","line":95,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/lib/books.test.js","line":3,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/lib/profiles-linkback.test.js","line":14,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/lib/source-config.test.js","line":11,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/lib/webhooks.test.js","line":5,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/routes/coinpay.test.js","line":259,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/routes/crawlstatus.test.js","line":4,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/routes/credits.test.js","line":6,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/routes/data-dumps.test.js","line":4,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/routes/install-sh.test.js","line":4,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/routes/lyrics.test.js","line":12,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/routes/moderate.test.js","line":11,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/routes/opensaas.test.js","line":10,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/routes/premium.test.js","line":4,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/routes/profiles.test.js","line":12,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/routes/push.test.js","line":5,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/routes/signup-profile.test.js","line":17,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/routes/sites.test.js","line":11,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/routes/tlds.test.js","line":12,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/views/reputation.test.jsx","line":3,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/apps/web/src/views/traffic.test.jsx","line":3,"malware":false},{"ruleId":"secret-jwt","title":"JSON Web Token","severity":"low","category":"secret","cwe":"CWE-798","file":"source/packages/adapters/test/fixtures/thetvdb-login.json","line":4,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/adapters.test.js","line":32,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/api-key-permissions.test.js","line":9,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/automotive-part-feeds.test.js","line":4,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/automotive.test.js","line":6,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/aviation.test.js","line":21,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/blacklists.test.js","line":6,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/books-openlibrary-catalog.test.js","line":18,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/business.test.js","line":5,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/consumer-finance.test.js","line":20,"malware":false},{"ruleId":"secret-database-url","title":"Database URL with credentials","severity":"low","category":"secret","cwe":"CWE-798","file":"source/test/courtlistener.test.js","line":22,"malware":false}]}}