Page:
Admin Dashboard Topology
No results
1
Admin Dashboard Topology
Cordy edited this page 2026-08-25 02:20:16 +00:00
Table of Contents
Admin dashboard — topology
How the swisscairn operator dashboard (login heatmap, signup/checkout funnel, custom-key minting) fits together. Tracking issue: #33. Full rationale: Wiki.js ADR-0002 (cairn/adr/0002-admin-dashboard).
Reading the diagram
- Browser · operator —
account.htmlandadmin.htmlare served from the same origin (www.swisscairn.ch), soadmin.htmlreuses the session bearer token fromsessionStorage; no second login.account.htmlshows the Admin link only whenGET /v1/mereportsadmin: true. - Caddy — terminates TLS on the VPS and forwards the real client IP (
X-Forwarded-For); the app trusts only Caddy. - cairn-license-server — the hub: an allowlist gate on
/v1/admin/*; login events resolved to a country via an offline GeoIP DB; the Paddle webhook records the funnel; custom keys minted through the existingissueForpath. - SQLite — the store from ADR-0001;
licensesplus a neweventstable holding only email + resolved country. - Paddle — external; sends
transaction.created(checkout opened) andtransaction.completed(paid) webhooks that drive the funnel. - VPS · Switzerland — everything inside the boundary is on one Swiss VPS. Analytics data is country-level only, short retention, no backups, and never leaves the box — so it never leaves Switzerland.
The .svg source lives at docs/admin-dashboard-topology.svg in the repo.