aboutsummaryrefslogtreecommitdiffstats
path: root/src/api/dashboard/mod.rs
Commit message (Collapse)AuthorAgeFilesLines
* dashboard: a content security policy, framed by nonetv6 days1-4/+57
| | | | | | | | | | | | | | | | | | Review finding 12, browsers: the dashboard holds a bearer token in memory and edits the document, but had no content security policy and could be framed by any page of the same site (another port on the same host, anything sharing a domain behind a proxy), acting with its user's token. The dashboard and the login page now come with a policy that runs only their own inline script (by its hash, computed when first served), loads nothing from elsewhere, and lets no page frame them (frame-ancestors 'none', X-Frame-Options DENY). Fetches stay open to any origin, as the members' dashboards are wherever the member list says. The browser check (check.js) loads the page from a file, without the header, so the policy wants one look in a browser.
* auth: a login page and browser sessionstv7 days1-0/+7
| | | | | | | | | GET /login without authentication: log in by password or with a token (from a login by key). POST/DELETE /auth/session keep the token as an HttpOnly, SameSite=Strict cookie; the dashboard sends a browser without a user there and renews the session while open. Auth plan M2/M3 (browsers).
* dashboard: without LINKS; LINKS removedtv7 days1-107/+25
| | | | | | | | | The dashboard reads every member's links from the members themselves; LINKS and LINKS_REPLY, swarm::links and their wire tags go (wire version bumped). Nodes the browser can't reach are drawn from what the reachable ones measure. Auth plan M3.
* dashboard: clocks on the pagetv7 days1-14/+1
| | | | | | | | The page compares the clocks the reports on its map carry: this node's peers', and those of the nodes it subscribes to; the node no longer gathers them from LINKS (api/dashboard/clocks.rs goes). Auth plan M3 (preparing LINKS' removal).
* dashboard: the writers' trees as this node knows themtv7 days1-39/+5
| | | | | | | | The tree drawn is computed as every node computes its own part of it: from the member list, and whom it and its neighbours reach, as they told it; no longer from the links members report over LINKS. Auth plan M3 (preparing LINKS' removal).
* dashboard: subscribed nodes' messages in the consoletv7 days1-26/+36
| | | | | | | Each tick's messages of a subscribed node, listed in the console with this node's own, from its own stream. Auth plan M3 (live data from every reachable node).
* dashboard: subscribed nodes' messages as dotstv7 days1-0/+48
| | | | | | | The page reads a subscribed node's message counts from it too, and draws them as dots on the map, as this node's own. Auth plan M3 (live data from every reachable node).
* dashboard: own links over the API, and CORStv7 days1-0/+54
| | | | | | | | | GET /admin/dashboard/links/own and its event stream: a node's own links, as LINKS_REPLY carried them, for other members' dashboards with a token. CORS for the members' dashboard origins and --cors-origins, without credentials. Auth plan M3.
* dashboard: what its user may readtv7 days1-3/+69
| | | | | | | The dashboard's document box is read through the store, as its user may, and the page is told only of changes where its user may read. Auth plan M1 (the dashboard).
* dashboard: browser checkstv9 days1-0/+27
|
* dashboard: snapshot lazytv9 days1-18/+47
|
* round trips in treestv10 days1-10/+20
|
* dashboard: add epoch switch indicatortv10 days1-0/+1
|
* dashboard: map remake votestv10 days1-2/+10
|
* dashboard: swarm-wide epoch shinetv10 days1-2/+9
|
* dashboard: show writer treestv12 days1-0/+47
|
* replace eager links by treestv12 days1-2/+0
|
* dashboard: show eager links on the maptv12 days1-0/+2
|
* swarm: relay links messagestv12 days1-5/+4
|
* dashboard: show newly joined remote peers asaptv12 days1-2/+14
|
* dashboard: double-click opens peer dashboardtv12 days1-3/+8
|
* api: /stream & dashboard send X-Accel-Bufferingtv12 days1-1/+5
|
* dashboard: always try showing ping/pong aliastv13 days1-1/+24
|
* dashboard: allow message inspectiontv13 days1-2/+33
|
* dashboard: allow delayed linkstv14 days1-9/+46
|
* links report downtv14 days1-0/+1
|
* dashboard: judge peers's clockstv2026-10-311-10/+33
|
* unify hex builderstv2026-10-311-6/+2
|
* dashboard: write growing list into page when servingtv2026-10-311-4/+9
|
* compute per-peer totals in /admin/stats oncetv2026-10-311-2/+4
|
* add lastSyncSecsAgo and description to /peerstv2026-10-311-0/+1
|
* move ChangeSet from swarm to documenttv2026-10-311-1/+1
|
* unify closing logictv2026-10-311-2/+3
|
* allow links subscriptionstv2026-10-301-10/+28
|
* dashboard: click on live/reconnecting triggerstv2026-10-301-3/+21
|
* dashboard: document follows changestv2026-10-301-8/+67
|
* dashboard: reload new versiontv2026-10-301-4/+26
|
* links answers connection typetv2026-10-301-0/+1
|
* dasboard cannot block shutdowntv2026-10-301-24/+55
|
* dashboard: show all links between peerstv2026-10-301-2/+6
|
* add dashboardtv2026-10-301-0/+394