Skip to content

Admin Guide

Hails edited this page Jun 18, 2026 · 9 revisions

Admin Guide

This is the practical handbook for hailsDotGO staff. The admin panel lives at /admin and is available to moderators and above; what you can see and do inside it depends on your role. The sections below follow the panel's tabs (Settings, Users, Raids, Awards, Tags, Tag Requests, Translator Apps, Translations, Pages, Donations, Site Stats) and note the minimum role for every action. For what the roles themselves mean, see Accounts and Roles.

Role shorthand used below: Mod+ means moderator, admin, or superadmin; Admin+ means admin or superadmin; Superadmin means only the account named by SUPERADMIN_USER.

Staff protection rules

These are enforced server-side regardless of who clicks the button:

  • Other admins cannot target the superadmin: no password reset, rename, disable, role change, special rank change, or pending-role confirm/reject. The superadmin can reset their own password, rename their own account, and set their own special rank from the panel. Note: renaming the superadmin account requires updating the SUPERADMIN_USER environment variable to match, or superadmin status is lost on the next restart. The superadmin's API access and translator flags are always on and cannot be toggled.
  • Staff (moderators and admins) cannot be raid-banned or hidden from the directory. Demote them first if it ever comes to that.
  • You cannot disable your own account.
  • Demoting an admin to any other role automatically revokes their api_access flag.

Settings tab (Admin+)

  • Registration toggle: opens or closes public registration. Invite links keep working while registration is closed.

Pages tab (Admin+)

Per-page maintenance toggles for: Raids, DPS, PvP, Events, Trainers, Shinies, Shiny Dex, plus two section toggles inside the trainers page (Trainer Directory and Raid Finder), and a Translator Applications toggle. A disabled page renders a maintenance screen with HTTP 503; the Raid Finder toggle also blocks all raid API mutations. When Translator Applications is disabled, logged-in users without an existing application see a "currently closed" message instead of the form.

Invites (Admin+)

Generated from the Settings tab:

  • Choose the granted role (user, tester, moderator, admin) and max uses (1 to 50).
  • Multi-use invites can only grant user; moderator and admin invites must be single-use.
  • Tokens expire after 7 days. Active invites are listed with their use counts and can be cancelled at any time.
  • Staff roles granted by invite arrive as a pending role; see user management below.

Users tab (Mod+)

Search and manage every account. Required role per action:

Action Role Notes
List users (roles, flags, strikes, tags, trust, raid XP) Mod+
Reset password Mod+ Minimum 8 characters
Change username Mod+ Same validation as registration
Disable / re-enable with reason Mod+ Disabling revokes all sessions; the reason is shown at login
Hide from / unhide in directory Mod+ Not usable on staff
Raid ban / unban Mod+ Not usable on staff; banning immediately removes the user from any queue or lobby
Strikes: list, add (reason required), delete Mod+ Audit trail of warnings
Change role Admin+ user, tester, moderator, admin
Confirm or reject a pending staff role Admin+ For invite-granted moderator/admin roles
Set raid XP Admin+ 0 to 9,999,999; changes the rank ladder position
Set rater weight Admin+ 0.1 to 1.5; the user's trust report reliability
Clear legacy ratings Admin+ Wipes old star-rating rows for the user
Refresh activity Admin+ Sets last_raid_at to now (rank decay helper)
Set special rank Admin+ trusted, content_creator, or clear; unlocks custom lobbies
Toggle API access Superadmin Grantable to any account; gates the private API
Toggle translator Superadmin Gates the /translate workspace
Assign / remove tags Mod+ Store-earned custom tags must be managed from Tag Requests instead

Raids tab (Mod+)

Moderation tools for Raid Finder and the Trust and Awards systems.

Lobby moderation

  • List live lobbies (Mod+): host, boss, state, member count.
  • Force-cancel a lobby (Mod+): uses the same path as a host cancel, so members are returned to the front of the queue with no penalty.

Trust tools

  • Event log per user (Mod+): the last 100 trust events with actor, raw delta, weight, applied delta, and note, plus the cached score, effective score, and tier.
  • Manual adjust (Admin+): inserts an auditable staff_adjust event (delta between -100 and +100, with a note). It bypasses the per-event clamp so corrections of any size are possible.
  • Recompute (Admin+): re-sums the event log into the cached trust_score column if it ever drifts.

Awards management

  • List catalog and recent grants (Mod+).
  • Create / update / delete awards (Admin+): name, description, icon, color, sort order, active flag.
  • Revoke a grant (Mod+).

Tags tab

Colored label pills shown next to usernames.

  • List tags and assign or remove them on users: Mod+.
  • Create, edit, delete tags in the catalog: Superadmin only.
  • Custom tags earned through the store cannot be removed here; handle them through Tag Requests so the request state stays consistent.

Tag Requests tab (Mod+)

Reviews the custom tag requests submitted by Supporter Pack holders (see Store).

  • Approve: creates (or recolors) the tag and assigns it. Approval is refused if the user's Supporter Pack has lapsed.
  • Reject with a reason: starts the user's 7-day cooldown before they can submit a fresh request. Rejecting an already-approved tag also strips it from the user.
  • Request revision with notes: the user can resubmit immediately with a new name or color, without the cooldown.

Translator Apps tab (Admin+)

Reviews applications from users who want to become translators. Applications are gated by the section_translator_apps_enabled toggle in the Pages tab; when disabled, logged-in users without an existing application see a "applications closed" message instead of the form.

  • Filter by Pending, Being Reviewed, or All.
  • Mark as Reviewing: moves the application from Pending to Being Reviewed, signalling to the applicant that their submission is under active consideration.
  • Accept: grants the translator flag immediately so the user can access the workspace.
  • Reject: requires a reason (shown to the applicant on their /translate status page).
  • Application status (Pending / Being Reviewed / Accepted / Rejected with reason) is visible to the applicant on /translate so they always know where they stand.

Translations tab (Admin+)

Reviews edits submitted from the Translator Workspace:

  • List pending edits per locale, approve or reject (with a reason) each one.
  • Export a locale's approved overrides as JSON.
  • Sync to GitHub: pushes approved community translations to the repository.
  • Enable or delete locales: translator-created locales stay hidden from the public language switcher until enabled here.

Donations tab (Admin+)

  • Store master toggle: shows or hides the Store page and nav link site-wide. Turning it off does not cancel active perks.
  • Store item management: list the catalog (name, slug, price, type, sort order) and toggle items active or inactive. Prices and new items are managed in the database; see Store.

Site Stats tab (visible to all staff)

The tab is visible to moderators and above, but the live stats dashboard requires Admin+ to load (it fetches GET /api/admin/stats): process uptime, goroutine count, heap usage, GC runs, database pool stats (open, in use, idle, waits, wait time), a live DB ping latency, and app counts (total users, active raids, tracked shinies, active sessions).

This tab also contains the Force data refresh button, which is visible to all staff but only executes for the superadmin (calls POST /admin/refresh-data). It triggers an immediate re-fetch of all game data from upstream sources -- the same effect as POST /api/refresh (see Data Sources).

Outside the panel

One staff power applies in the field:

  • Staff can cancel any lobby and kick any lobby member directly from the raid finder UI.

Clone this wiki locally