# game_server_web v1.0.935 - Table of Contents

Web interface for Gamend GameServer, built with Phoenix Framework. Provides APIs, authentication, and real-time features.

## Pages

- [GameServer Web](readme.md)

## Modules

- [GameServerWeb](GameServerWeb.md): The entrypoint for defining your web interface, such
as controllers, components, channels, and so on.
- [GameServerWeb.AchievementsLive](GameServerWeb.AchievementsLive.md): Public-facing achievements page.
- [GameServerWeb.AdminLive.Achievements](GameServerWeb.AdminLive.Achievements.md)
- [GameServerWeb.AdminLive.Chat](GameServerWeb.AdminLive.Chat.md)
- [GameServerWeb.AdminLive.Config](GameServerWeb.AdminLive.Config.md)
- [GameServerWeb.AdminLive.Connections](GameServerWeb.AdminLive.Connections.md)
- [GameServerWeb.AdminLive.Geo](GameServerWeb.AdminLive.Geo.md)
- [GameServerWeb.AdminLive.Groups](GameServerWeb.AdminLive.Groups.md)
- [GameServerWeb.AdminLive.Index](GameServerWeb.AdminLive.Index.md)
- [GameServerWeb.AdminLive.KV](GameServerWeb.AdminLive.KV.md)
- [GameServerWeb.AdminLive.Leaderboards](GameServerWeb.AdminLive.Leaderboards.md)
- [GameServerWeb.AdminLive.Lobbies](GameServerWeb.AdminLive.Lobbies.md)
- [GameServerWeb.AdminLive.Logs](GameServerWeb.AdminLive.Logs.md)
- [GameServerWeb.AdminLive.Notifications](GameServerWeb.AdminLive.Notifications.md)
- [GameServerWeb.AdminLive.Parties](GameServerWeb.AdminLive.Parties.md)
- [GameServerWeb.AdminLive.RateLimiting](GameServerWeb.AdminLive.RateLimiting.md)
- [GameServerWeb.AdminLive.Sessions](GameServerWeb.AdminLive.Sessions.md)
- [GameServerWeb.AdminLive.System](GameServerWeb.AdminLive.System.md)
- [GameServerWeb.AdminLive.Translations](GameServerWeb.AdminLive.Translations.md)
- [GameServerWeb.AdminLive.Users](GameServerWeb.AdminLive.Users.md)
- [GameServerWeb.AdminLive.Users.Index](GameServerWeb.AdminLive.Users.Index.md): Admin LiveView for listing and managing users.
- [GameServerWeb.Api.V1.AchievementController](GameServerWeb.Api.V1.AchievementController.md)
- [GameServerWeb.Api.V1.Admin.AchievementController](GameServerWeb.Api.V1.Admin.AchievementController.md)
- [GameServerWeb.Api.V1.Admin.ChatController](GameServerWeb.Api.V1.Admin.ChatController.md)
- [GameServerWeb.Api.V1.Admin.GroupController](GameServerWeb.Api.V1.Admin.GroupController.md)
- [GameServerWeb.Api.V1.Admin.KvController](GameServerWeb.Api.V1.Admin.KvController.md)
- [GameServerWeb.Api.V1.Admin.KvEntryController](GameServerWeb.Api.V1.Admin.KvEntryController.md)
- [GameServerWeb.Api.V1.Admin.LeaderboardController](GameServerWeb.Api.V1.Admin.LeaderboardController.md)
- [GameServerWeb.Api.V1.Admin.LeaderboardRecordController](GameServerWeb.Api.V1.Admin.LeaderboardRecordController.md)
- [GameServerWeb.Api.V1.Admin.LobbyController](GameServerWeb.Api.V1.Admin.LobbyController.md)
- [GameServerWeb.Api.V1.Admin.NotificationController](GameServerWeb.Api.V1.Admin.NotificationController.md)
- [GameServerWeb.Api.V1.Admin.SessionController](GameServerWeb.Api.V1.Admin.SessionController.md)
- [GameServerWeb.Api.V1.Admin.UserController](GameServerWeb.Api.V1.Admin.UserController.md)
- [GameServerWeb.Api.V1.ChatController](GameServerWeb.Api.V1.ChatController.md)
- [GameServerWeb.Api.V1.FriendController](GameServerWeb.Api.V1.FriendController.md)
- [GameServerWeb.Api.V1.GroupController](GameServerWeb.Api.V1.GroupController.md)
- [GameServerWeb.Api.V1.HealthController](GameServerWeb.Api.V1.HealthController.md): Health check endpoint for the API.

- [GameServerWeb.Api.V1.HookController](GameServerWeb.Api.V1.HookController.md)
- [GameServerWeb.Api.V1.KvController](GameServerWeb.Api.V1.KvController.md)
- [GameServerWeb.Api.V1.LeaderboardController](GameServerWeb.Api.V1.LeaderboardController.md)
- [GameServerWeb.Api.V1.LobbyController](GameServerWeb.Api.V1.LobbyController.md)
- [GameServerWeb.Api.V1.MeController](GameServerWeb.Api.V1.MeController.md)
- [GameServerWeb.Api.V1.MetadataController](GameServerWeb.Api.V1.MetadataController.md)
- [GameServerWeb.Api.V1.NotificationController](GameServerWeb.Api.V1.NotificationController.md)
- [GameServerWeb.Api.V1.PartyController](GameServerWeb.Api.V1.PartyController.md)
- [GameServerWeb.Api.V1.ProviderController](GameServerWeb.Api.V1.ProviderController.md)
- [GameServerWeb.Api.V1.SessionController](GameServerWeb.Api.V1.SessionController.md)
- [GameServerWeb.Api.V1.UserController](GameServerWeb.Api.V1.UserController.md)
- [GameServerWeb.ApiSpec](GameServerWeb.ApiSpec.md): OpenAPI specification for the Game Server API.

- [GameServerWeb.Auth.AssignCurrentScope](GameServerWeb.Auth.AssignCurrentScope.md): Plug to assign current_scope from Guardian's loaded user resource.
- [GameServerWeb.Auth.ErrorHandler](GameServerWeb.Auth.ErrorHandler.md): Handles authentication errors for the Guardian pipeline.

- [GameServerWeb.Auth.Guardian](GameServerWeb.Auth.Guardian.md): Guardian implementation for JWT-based authentication.
- [GameServerWeb.Auth.Guardian.Plug](GameServerWeb.Auth.Guardian.Plug.md)
- [GameServerWeb.Auth.OptionalPipeline](GameServerWeb.Auth.OptionalPipeline.md): Guardian pipeline for optional API JWT authentication.
- [GameServerWeb.Auth.Pipeline](GameServerWeb.Auth.Pipeline.md): Guardian pipeline for API JWT authentication.
- [GameServerWeb.AuthController](GameServerWeb.AuthController.md)
- [GameServerWeb.AuthSuccessLive](GameServerWeb.AuthSuccessLive.md)
- [GameServerWeb.BlogLive](GameServerWeb.BlogLive.md): LiveView for the blog section.
- [GameServerWeb.ChangelogLive](GameServerWeb.ChangelogLive.md): LiveView that renders the project changelog from a Markdown file
configured via the `"changelog"` key in the theme config JSON.

- [GameServerWeb.ChatLive](GameServerWeb.ChatLive.md)
- [GameServerWeb.Components.DynamicIcon](GameServerWeb.Components.DynamicIcon.md): A tiny runtime SVG loader for hero-style icons stored under
`priv/static/heroicons/`.
- [GameServerWeb.ConnectionTracker](GameServerWeb.ConnectionTracker.md): Tracks active WebSocket channel and WebRTC peer connections using a `Registry`
with `:duplicate` keys.
- [GameServerWeb.ContentAssetController](GameServerWeb.ContentAssetController.md): Serves static assets (images, etc.) from the blog or changelog directories.
- [GameServerWeb.CoreComponents](GameServerWeb.CoreComponents.md): Provides core UI components.
- [GameServerWeb.ErrorHTML](GameServerWeb.ErrorHTML.md): This module is invoked by your endpoint in case of errors on HTML requests.
- [GameServerWeb.ErrorJSON](GameServerWeb.ErrorJSON.md): This module is invoked by your endpoint in case of errors on JSON requests.
- [GameServerWeb.GeoCountryCleaner](GameServerWeb.GeoCountryCleaner.md): Periodic cleaner for old geo traffic minute buckets.
- [GameServerWeb.Gettext](GameServerWeb.Gettext.md): A module providing Internationalization with a gettext-based API.
- [GameServerWeb.Gettext.Stats](GameServerWeb.Gettext.Stats.md): Provides translation completeness statistics for a given locale.
- [GameServerWeb.GroupChannel](GameServerWeb.GroupChannel.md): Channel for per-group realtime events.
- [GameServerWeb.GroupsChannel](GameServerWeb.GroupsChannel.md): Channel for broadcasting global group list events.
- [GameServerWeb.GroupsLive](GameServerWeb.GroupsLive.md)
- [GameServerWeb.Helpers.ParamParser](GameServerWeb.Helpers.ParamParser.md): Shared helpers for safely parsing controller parameters.
- [GameServerWeb.Layouts](GameServerWeb.Layouts.md): Compatibility facade for the host-owned layout shell.

- [GameServerWeb.LeaderboardsLive](GameServerWeb.LeaderboardsLive.md): Public-facing leaderboards view.
- [GameServerWeb.LiveHelpers](GameServerWeb.LiveHelpers.md): Shared helpers for LiveView rate limiting and client IP extraction.

- [GameServerWeb.LobbiesChannel](GameServerWeb.LobbiesChannel.md): Channel for broadcasting global lobby list events.
- [GameServerWeb.LobbyChannel](GameServerWeb.LobbyChannel.md): Channel for lobby realtime events.
- [GameServerWeb.LobbyLive.Index](GameServerWeb.LobbyLive.Index.md)
- [GameServerWeb.LocaleController](GameServerWeb.LocaleController.md)
- [GameServerWeb.NotificationsLive](GameServerWeb.NotificationsLive.md)
- [GameServerWeb.OnMount.Locale](GameServerWeb.OnMount.Locale.md): LiveView on_mount hook that sets the Gettext locale from the session.
- [GameServerWeb.OnMount.Theme](GameServerWeb.OnMount.Theme.md): on_mount helper for LiveView that ensures `:theme` is assigned on the
socket. LiveViews can rely on `@theme` being present whether rendering
via an HTTP request or a websocket socket lifecycle.
- [GameServerWeb.OnMount.TrackConnection](GameServerWeb.OnMount.TrackConnection.md): LiveView on_mount hook that registers the LiveView process with
`GameServerWeb.ConnectionTracker` when the socket is connected.
- [GameServerWeb.PageController](GameServerWeb.PageController.md)
- [GameServerWeb.PageHTML](GameServerWeb.PageHTML.md): This module contains pages rendered by PageController.
- [GameServerWeb.Pagination](GameServerWeb.Pagination.md): Small helper to build pagination meta for API list endpoints.
- [GameServerWeb.PartyChannel](GameServerWeb.PartyChannel.md): Channel for party realtime events.
- [GameServerWeb.PlayLive](GameServerWeb.PlayLive.md): LiveView wrapper that embeds the Godot web export (`/game/index.html`)
inside the app layout so the navbar is visible.
- [GameServerWeb.Plugs.AcmeChallenge](GameServerWeb.Plugs.AcmeChallenge.md): Plug to serve ACME HTTP-01 challenge files for Let's Encrypt certificate validation.
- [GameServerWeb.Plugs.ColorMode](GameServerWeb.Plugs.ColorMode.md): Reads the `phx_theme` cookie (set by the client-side theme switcher) and
assigns `:color_mode` so that the root layout can render the `data-theme`
attribute server-side, preventing a Flash of Unstyled Content (FOUC) when
the user has selected dark mode.
- [GameServerWeb.Plugs.ContentStatic](GameServerWeb.Plugs.ContentStatic.md): Serves blog & changelog images directly from the endpoint plug pipeline,
bypassing the code-reloader and full browser pipeline.
- [GameServerWeb.Plugs.DynamicCors](GameServerWeb.Plugs.DynamicCors.md): Runtime CORS plug that delegates to Corsica using values read from
application environment at startup. This allows `PHX_ALLOWED_ORIGINS`
to be configured at runtime (via `config/runtime.exs`).
- [GameServerWeb.Plugs.FeatureGate](GameServerWeb.Plugs.FeatureGate.md): Plug that gates routes behind environment-variable feature flags.
- [GameServerWeb.Plugs.GameHeaders](GameServerWeb.Plugs.GameHeaders.md): Adds Cross-Origin headers required by Godot 4 web exports.
- [GameServerWeb.Plugs.GeoCountry](GameServerWeb.Plugs.GeoCountry.md): Resolves the client's country and stores it on `conn.assigns[:country]`.
- [GameServerWeb.Plugs.IpBan](GameServerWeb.Plugs.IpBan.md): Plug that blocks requests from banned IP addresses.
- [GameServerWeb.Plugs.LoadTheme](GameServerWeb.Plugs.LoadTheme.md): Plug that assigns the currently configured Theme provider's theme map as
`conn.assigns.theme` so templates and LiveViews can render config-driven
values like title, logo, banner and a `css` path (external stylesheet).
- [GameServerWeb.Plugs.LocalePath](GameServerWeb.Plugs.LocalePath.md): Extracts an optional locale prefix from the URL path (e.g. `/es/settings`)
and sets the Gettext locale accordingly.
- [GameServerWeb.Plugs.MetricsAuth](GameServerWeb.Plugs.MetricsAuth.md): Authentication for the `/metrics` endpoint.
- [GameServerWeb.Plugs.RateLimiter](GameServerWeb.Plugs.RateLimiter.md): Plug that rate-limits incoming HTTP requests per client IP.
- [GameServerWeb.Plugs.RealIp](GameServerWeb.Plugs.RealIp.md): Extracts the real client IP from proxy headers and sets `conn.remote_ip`.
- [GameServerWeb.Plugs.RequestTimer](GameServerWeb.Plugs.RequestTimer.md): A plug that logs the total request duration at the end of the request.
This runs before the Router and captures the entire pipeline duration.
- [GameServerWeb.Plugs.RequireAdminApi](GameServerWeb.Plugs.RequireAdminApi.md): Ensures the current API request is performed by an admin user.
- [GameServerWeb.Plugs.SecurityHeaders](GameServerWeb.Plugs.SecurityHeaders.md): Sets baseline security headers on every response.
- [GameServerWeb.Plugs.SentryContext](GameServerWeb.Plugs.SentryContext.md): A small Plug that sets Sentry scope information for each request.
- [GameServerWeb.PromEx](GameServerWeb.PromEx.md): Prometheus metrics exporter using PromEx.
- [GameServerWeb.PromEx.GeoPlugin](GameServerWeb.PromEx.GeoPlugin.md): Custom PromEx plugin that exports geo-traffic Prometheus metrics.
- [GameServerWeb.RateLimit](GameServerWeb.RateLimit.md): ETS-backed rate limiter powered by Hammer.
- [GameServerWeb.RoadmapLive](GameServerWeb.RoadmapLive.md): LiveView that renders the project roadmap from a Markdown file
configured via the `"roadmap"` key in the theme config JSON.

- [GameServerWeb.Router](GameServerWeb.Router.md)
- [GameServerWeb.SRI](GameServerWeb.SRI.md): Computes Subresource Integrity (SRI) hashes for static assets.
- [GameServerWeb.Schemas.ErrorResponse](GameServerWeb.Schemas.ErrorResponse.md): Error response schema

- [GameServerWeb.Schemas.HealthResponse](GameServerWeb.Schemas.HealthResponse.md): Health check response schema

- [GameServerWeb.Schemas.OAuthSessionData](GameServerWeb.Schemas.OAuthSessionData.md): Describes the payload stored in `OAuthSession.data` when a session completes or errors.
- [GameServerWeb.Schemas.OAuthSessionStatus](GameServerWeb.Schemas.OAuthSessionStatus.md): Schema describing the response for OAuth session status checks

- [GameServerWeb.SwaggerController](GameServerWeb.SwaggerController.md)
- [GameServerWeb.SwaggerHTML](GameServerWeb.SwaggerHTML.md)
- [GameServerWeb.Telemetry](GameServerWeb.Telemetry.md)
- [GameServerWeb.UserAuth](GameServerWeb.UserAuth.md): Helpers for session / cookie based authentication and LiveView mounts.
- [GameServerWeb.UserChannel](GameServerWeb.UserChannel.md): Channel for sending per-user realtime updates (e.g. metadata changes).
- [GameServerWeb.UserLive.Confirmation](GameServerWeb.UserLive.Confirmation.md)
- [GameServerWeb.UserLive.Login](GameServerWeb.UserLive.Login.md)
- [GameServerWeb.UserLive.Registration](GameServerWeb.UserLive.Registration.md)
- [GameServerWeb.UserLive.Settings](GameServerWeb.UserLive.Settings.md)
- [GameServerWeb.UserSessionController](GameServerWeb.UserSessionController.md)
- [GameServerWeb.UserSocket](GameServerWeb.UserSocket.md)
- [GameServerWeb.WebRTCPeer](GameServerWeb.WebRTCPeer.md): Manages a server-side WebRTC PeerConnection for a single user.

## Mix Tasks

- [mix gettext.export_csv](Mix.Tasks.Gettext.ExportCsv.md): Exports all PO translations and theme JSON config for a locale to CSV.
- [mix gettext.import_csv](Mix.Tasks.Gettext.ImportCsv.md): Imports translations from a CSV file back into PO files and theme JSON config.

