toa://toaservers
Headless statusvisning for spillservere, på hvilket som helst nettsted.
Oversikt
servers er statustjenesten for spillservere i toa://, headless fra bunnen av — pek den mot serverne dine som snakker A2S, så følger den status, ping og antall spillere med jevne mellomrom, og varsler i Discord når noe går ned. Flagger du en server som offentlig, er den levende statusen tilgjengelig over et lese-API som er åpent for CORS, og gjennom en ferdig <toa-servers>-widget du kan bygge inn på hvilket som helst statisk nettsted. Bygget multi-tenant med row-level security i Postgres som resten av suiten; admin- og konfigurasjonspanelet er single sign-on via toa://auth, og selve overvåkingen ligger internt bak det.
Funksjoner
Overvåking over A2S
Spør hver spillserver over A2S-protokollen med jevne mellomrom — oppe eller nede, ping og antall spillere akkurat nå, med en terskel som gjør at ett enkelt hikk ikke utløser varsel.
Åpent API og widget
Legg ut utvalgte servere gjennom et lese-API som er åpent for CORS, og en ferdig <toa-servers> Web Component (Shadow DOM, kan styles) — vis levende status på hvilket som helst statisk nettsted.
Offentlig bare når du sier ifra
Hver server er privat som standard; sett is_public for å vise den fram. Bare servere du har flagget, forlater konfigurasjonspanelet.
Discord-varsler
Varslingsregler per server (tre typer) sender melding til Discord når tilstanden endrer seg, med en cooldown så du ikke blir nedspammet.
Multi-tenant og privat
Row-level security i Postgres holder hvert nettsted for seg (FORCE RLS), og admin- og konfigurasjonspanelet er single sign-on via toa://auth.
Nytt i denne
- added Public read API (
GET /api/public/v1/sites/{slug}/servers) — CORS-open, rate-limited (60/min per site+ip), returns onlyis_publicservers with sanitized latest status (no host/port/internal fields). - added
is_publicopt-in flag and optionalpublic_connectdisplay address per server. - added
<toa-servers>embeddable Web Component (Shadow DOM,--toasv-*token contract, auto-refresh) served from/embed/toa-servers.js. - added Superadmin site selection through the BFF (manage servers for multiple sites).
- changed
servers.toaweb.comdemoted from product to gated config panel, rebuilt on the canonical toa://.t-*console shell. - changed Edge now exposes only
/api/public,/embed,/health; gated routes stay behind the BFF. - security FORCE ROW LEVEL SECURITY on the tenant tables with an explicit
'*'sentinel for the sweep/retention/slug lookups — accidental owner-role queries now fail closed instead of leaking every site. (Full owner-side effect requires the owner DB role to be non-superuser.) - fixed Replaced the default Nuxt 404/500 with a toa://-styled error page.
- changed Database brought to POSTGRESQL_STANDARD: plural table names (
sites,servers,heartbeats,alert_rules,notification_logs),created_at/updated_aton every table with anupdate_updated_at()trigger, andidx_/fk_naming conventions. - changed API brought to FASTAPI_STANDARD: type hints on all signatures and
response_modelon the rule, heartbeat and settings routes. - changed Backend image brought to DOCKER_STANDARD:
uv+uv.lockfor reproducible builds; compose hardened (backendread_only+cap_drop+ resource limits, frontendcap_drop+ limits +depends_onhealthy). - fixed Migration now
GRANTs thetoaservers_approle explicitly, so DML survives table recreation (ALTER DEFAULT PRIVILEGESdoes not).
- fixed Discord alerts: corrected the async dependency and made the sweep resilient to dispatch failures (a failing webhook no longer aborts the tick).
- fixed Frontend design-standard compliance: monospace font, sharp corners, mobile-first layout, page metadata.
- fixed Completed the favicon set per FAVICON_STANDARD (SVG monogram, gaming/blue).
API