Web UI
odirscan serves scan results through a built-in web server with an embedded single-page application.
HTTP Endpoints
| Route | Method | Description |
|---|---|---|
/ | GET | Serves the HTML dashboard (embedded in the binary via go:embed) |
/api/findings | GET | Returns all scan findings as a JSON array |
Dashboard
The dashboard is built with Tabulator.js and uses virtual rendering for efficient display of large result sets.
Columns
| Column | Field | Description |
|---|---|---|
| URL | Url | The discovered file URL (displayed as decoded path) |
| Content Type | ContentType | MIME type from the HTTP response |
| Content Length | ContentLength | File size in bytes |
| Scan Time | ScanTime | When the HEAD request was made |
| Last Modified | LastModified | File modification date from the server |
Context Menu
Right-clicking a URL cell opens a context menu with an option to open the URL in a new browser tab.
Statistics Panel
A collapsible summary bar above the table shows:
- Total entries (filtered / total when a filter is active)
- Number of distinct sites (hostnames)
- Content type breakdown with counts
- Total size of all displayed findings