You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**Domain enrichment** — VirusTotal multi-engine verdict, reputation, registrar, creation date, A records, categories, and ThreatFox C2 intelligence
41
41
-**Multi-signal risk scoring** — `riskLevel` computed from manifest-driven rules across all integrations; any single signal can escalate the level independently
42
42
-**Plugin architecture** — each integration is a self-contained Go file implementing a single interface; adding a new vendor requires one file and one registry line
43
-
-**Web UI** — Tailwind CSS + Vue 3, authenticated scanner, generic-endpoint-backed IP/hash/domain views, column visibility toggles, export to CSV/JSON, scan history, and per-vendor cache diagnostics. The current UI keeps its established per-mode layouts while adapting generic `ScanResult` payloads locally underneath
43
+
-**Web UI** — Tailwind CSS + Vue 3, authenticated scanner, generic-endpoint-backed IP/hash/domain views, column visibility toggles, export to CSV/JSON, scan history, and per-vendor cache diagnostics. The current UI keeps its established per-mode layouts while adapting generic `ScanResult` payloads locally underneath, with richer custom cards for key vendors and manifest-driven fallback cards for simple or newly added integrations
44
44
-**Bulk scanning** — up to 100 IPs, hashes, or domains per request
45
45
-**Local cache** — SQLite-backed caching per integration to avoid redundant API calls
46
46
-**Rate limiting** — built-in token-bucket limiter with 1 MB request body cap
@@ -169,7 +169,7 @@ The `-p` flag always overrides the config file port.
| Cards view | Per-indicator detail cards with risk badges and source links. Benign no-hit cards are hidden; diagnostics and raw JSON still show miss/error detail |
172
+
| Cards view | Per-indicator detail cards with risk badges and source links. Core vendors keep handcrafted cards where richer presentation helps, while integrations without custom UI can render automatically through manifest-driven fallback cards. Benign no-hit cards are hidden; diagnostics and raw JSON still show miss/error detail |
│ ├── useIPResults.js — IP scan state, table, export, local generic-result adapter
428
+
│ ├── useIPResults.js — IP scan state, table, export, local generic-result adapter + fallback card view model
428
429
│ └── useScanHistory.js — scan history management
429
430
├── index.html — main UI entry point
430
431
├── main.js — Vue app bootstrap + loadManifests()
@@ -454,7 +455,7 @@ iocscan/
454
455
455
456
| File | Change |
456
457
|------|--------|
457
-
| `web/components/IOCScanner.js` | Usually no change for diagnostics/raw JSON; richer vendor-specific cards or table presentation may still need explicit UI work |
458
+
| `web/components/IOCScanner.js` | Usually no change. Simple integrations can render automatically through manifest-driven fallback cards; only richer vendor-specific cards or bespoke table presentation still need explicit UI work |
458
459
| `auth/models.go` / `auth/handlers.go` | Add encrypted per-user key storage fields if the vendor requires a new key |
459
460
460
461
**Additional wiring for IP integrations that require a key** (e.g. GreyNoise):
@@ -463,7 +464,7 @@ iocscan/
463
464
|------|--------|
464
465
| `server/server.go` | Load the stored key and pass it into the generic scan path |
465
466
466
-
> **Note:** The primary scanner calls generic scan endpoints and adapts generic `ScanResult` payloads locally inside the per-mode frontend composables.
467
+
> **Note:** The primary scanner calls generic scan endpoints and adapts generic `ScanResult` payloads locally inside the per-mode frontend composables. If an integration has no handwritten card in `IOCScanner.js`, the frontend can still render it through `IntegrationCard.js` using the manifest card definition.
0 commit comments