PRISM v2.4.0 — Graceful Degradation, Demo & New Tools
PRISM v2.4.0 — a big quality-of-life release: modules now fail gracefully, a one-command demo, two new standalone tools, per-module refresh, and a pile of fixes.
Live demo: https://getprism.su
Added
- Graceful degradation for key-dependent modules — Shodan, VirusTotal, AbuseIPDB, Censys, Leak-Lookup/HIBP and Telegram now report
skipped(no key) orrate_limited(HTTP 429) instead of failing, with per-module status badges in the dashboard (#61). HIBP_API_KEYsupport for breach lookups (#61).- One-command demo —
docker compose -f docker-compose.demo.yml upboots PRISM with preloaded sample scans, no API keys required (#63). - IP / Subnet calculator standalone tool (#45).
- Hash Identifier standalone tool — MD5 / SHA-1 / SHA-256 / SHA-512 (#76).
- Per-module refresh — re-run a single module from its result card (#104).
- Approximate region-level GeoIP map for phone scans (geocoded operator region).
- Bundled Unicode fonts (DejaVu) so PDF reports render non-Latin text.
- Project polish — README API reference + env-vars table, FAQ, Table of Contents,
LICENSE(MIT),CITATION.cff,SUPPORT.md,CODEOWNERS,.editorconfig,.gitattributes,.dockerignore, Sponsor config, and Bug/Feature issue forms.
Changed
- Scan history is sorted newest-first, auto-refreshes after a scan, and is localized in all 5 languages.
- The scan engine caches only successful (
ok) results, so a missing key isn't frozen in cache (#61). - The Censys tab is hidden when the module is skipped (no key) instead of showing an empty card.
- Removed the default Leaflet attribution flag from all maps.
Fixed
- PDF reports rendered non-Latin (e.g. Cyrillic) text as empty grey boxes — fixed with bundled DejaVu fonts.
- GeoIP map sometimes rendered blank — map now recalculates size after layout.
- New scans could be missing from history — list was capped before sorting.
- Sidebar "Modules" label showed a raw i18n key — fixed and localized.
- Empty numeric env vars crashed startup —
CACHE_TTL_HOURS/MAX_STORED_SCANS/MAX_UPLOAD_MBnow fall back to defaults (#122).
Full changelog: https://github.com/NovaCode37/Prism-platform/blob/main/CHANGELOG.md