Directories
¶
| Path | Synopsis |
|---|---|
|
Package auditlog writes append-only audit_log rows.
|
Package auditlog writes append-only audit_log rows. |
|
Package auth signs and verifies the short-lived JWT issued to players after login (or anonymous signup).
|
Package auth signs and verifies the short-lived JWT issued to players after login (or anonymous signup). |
|
Package billing holds the OSS side of the external-billing handoff: a signed, short-lived token the dashboard mints so the (separate, closed) billing service knows which authenticated tenant is upgrading.
|
Package billing holds the OSS side of the external-billing handoff: a signed, short-lived token the dashboard mints so the (separate, closed) billing service knows which authenticated tenant is upgrading. |
|
Package cache defines the process-local fast tier for rate-limit buckets, per-player connection counters, and short-lived memoised values.
|
Package cache defines the process-local fast tier for rate-limit buckets, per-player connection counters, and short-lived memoised values. |
|
instrument
Package instrument wraps the process-local cache.Store with Prometheus counters.
|
Package instrument wraps the process-local cache.Store with Prometheus counters. |
|
memory
Package memory implements the process-local cache.Store used by every deployment.
|
Package memory implements the process-local cache.Store used by every deployment. |
|
storetest
Package storetest holds the cache.Store contract test suite.
|
Package storetest holds the cache.Store contract test suite. |
|
Package config loads runtime configuration from environment variables.
|
Package config loads runtime configuration from environment variables. |
|
templ: version: v0.3.1070
|
templ: version: v0.3.1070 |
|
Package customtoken holds the shared pieces of the public-key custom-token scheme: the developer's backend signs a JWT with its private key and ggscale verifies it against the tenant's stored public key, so the database holds no signing capability at all.
|
Package customtoken holds the shared pieces of the public-key custom-token scheme: the developer's backend signs a JWT with its private key and ggscale verifies it against the tenant's stored public key, so the database holds no signing capability at all. |
|
Package db wraps pgxpool with a tenant-aware transaction helper.
|
Package db wraps pgxpool with a tenant-aware transaction helper. |
|
Package entitlement serves the internal declarative entitlement API an external billing service calls to converge a tenant onto "tier N with features […]".
|
Package entitlement serves the internal declarative entitlement API an external billing service calls to converge a tenant onto "tier N with features […]". |
|
Package fleet allocates and tracks game-server instances on behalf of the matchmaker.
|
Package fleet allocates and tracks game-server instances on behalf of the matchmaker. |
|
agones
Package agones implements a fleet.Backend backed by an Agones-controlled Kubernetes cluster.
|
Package agones implements a fleet.Backend backed by an Agones-controlled Kubernetes cluster. |
|
build
Package build wires a concrete fleet.Backend from runtime configuration.
|
Package build wires a concrete fleet.Backend from runtime configuration. |
|
plugin
Package plugin glues the fleet.Backend contract to hashicorp/go-plugin's subprocess+gRPC model.
|
Package plugin glues the fleet.Backend contract to hashicorp/go-plugin's subprocess+gRPC model. |
|
Package gamesession owns game-session creation so both the player-facing HTTP handler and the matchmaker worker can mint sessions through one code path (join-code generation, per-project open-session cap, peer seeding).
|
Package gamesession owns game-session creation so both the player-facing HTTP handler and the matchmaker worker can mint sessions through one code path (join-code generation, per-project open-session cap, peer seeding). |
|
Package httpapi assembles the ggscale-server HTTP router.
|
Package httpapi assembles the ggscale-server HTTP router. |
|
Package jobs holds background jobs run via River (github.com/riverqueue/river).
|
Package jobs holds background jobs run via River (github.com/riverqueue/river). |
|
Package lifecycle is the process lifecycle contract shared by the relay node and the API server: a starting → active ⇄ draining → stopping state machine, the /readyz and /lifecycle HTTP routes, their bearer guard, the lifecycle metrics, and the SIGTERM drain wait.
|
Package lifecycle is the process lifecycle contract shared by the relay node and the API server: a starting → active ⇄ draining → stopping state machine, the /readyz and /lifecycle HTTP routes, their bearer guard, the lifecycle metrics, and the SIGTERM drain wait. |
|
Package mailer sends transactional email.
|
Package mailer sends transactional email. |
|
noop
Package noop registers the "noop" mailer provider, which silently discards all mail.
|
Package noop registers the "noop" mailer provider, which silently discards all mail. |
|
smtp
Package smtp registers the "smtp" mailer provider.
|
Package smtp registers the "smtp" mailer provider. |
|
Package matchmaker turns player "find me a match" requests into match results.
|
Package matchmaker turns player "find me a match" requests into match results. |
|
query
Package query implements the matchmaker ticket criteria language: a small boolean expression grammar over string and numeric properties, parsed to an AST and evaluated in Go against candidate tickets.
|
Package query implements the matchmaker ticket criteria language: a small boolean expression grammar over string and numeric properties, parsed to an AST and evaluated in Go against candidate tickets. |
|
Package mcp serves the Model Context Protocol endpoint (POST /mcp) for coding agents.
|
Package mcp serves the Model Context Protocol endpoint (POST /mcp) for coding agents. |
|
Package middleware holds HTTP middleware shared across the ggscale-server router, such as version, rate-limit, tenant, and observability middleware.
|
Package middleware holds HTTP middleware shared across the ggscale-server router, such as version, rate-limit, tenant, and observability middleware. |
|
Package migrate is a thin wrapper around golang-migrate/migrate so the command and tests share one entry point.
|
Package migrate is a thin wrapper around golang-migrate/migrate so the command and tests share one entry point. |
|
Package observability holds in-tree metrics adapters that need to hook into third-party packages (pgx tracer) — orthogonal to the middleware in internal/middleware which lives at the HTTP layer.
|
Package observability holds in-tree metrics adapters that need to hook into third-party packages (pgx tracer) — orthogonal to the middleware in internal/middleware which lives at the HTTP layer. |
|
Package party manages project-scoped groups that queue as one unit.
|
Package party manages project-scoped groups that queue as one unit. |
|
Package period computes leaderboard period reset boundaries.
|
Package period computes leaderboard period reset boundaries. |
|
Package playerauth holds the middleware that authenticates a player via a JWT in the X-Session-Token header.
|
Package playerauth holds the middleware that authenticates a player via a JWT in the X-Session-Token header. |
|
templ: version: v0.3.1070
|
templ: version: v0.3.1070 |
|
Package projectadmin holds the project settings writes that the dashboard and MCP tokens share.
|
Package projectadmin holds the project settings writes that the dashboard and MCP tokens share. |
|
Package quota holds the per-class limit ladder for enforced tenants and the growth checks that back it.
|
Package quota holds the per-class limit ladder for enforced tenants and the growth checks that back it. |
|
Package ratelimit applies a per-API-key token bucket to /v1/* requests.
|
Package ratelimit applies a per-API-key token bucket to /v1/* requests. |
|
Package realtime is the WebSocket fan-out for ggscale.
|
Package realtime is the WebSocket fan-out for ggscale. |
|
Package relay wraps a pion/turn/v5 TURN server with ggscale's tenant + player identity model.
|
Package relay wraps a pion/turn/v5 TURN server with ggscale's tenant + player identity model. |
|
Package relaymeter meters managed-relay credential issuances against the class RelaySessionsPerMonth allowance.
|
Package relaymeter meters managed-relay credential issuances against the class RelaySessionsPerMonth allowance. |
|
Package relaynode is the API server's registry of standalone relay nodes.
|
Package relaynode is the API server's registry of standalone relay nodes. |
|
Package remoteaddr parses, validates, and classifies the typed remote addresses players share for peer-to-peer play: IP addresses, DNS names, and Iroh endpoint IDs.
|
Package remoteaddr parses, validates, and classifies the typed remote addresses players share for peer-to-peer play: IP addresses, DNS names, and Iroh endpoint IDs. |
|
Package secretseal encrypts stored provider credentials that must be replayed to a third party (the Steam Web API key today, the itch key later) with AES-256-GCM.
|
Package secretseal encrypts stored provider credentials that must be replayed to a third party (the Steam Web API key today, the itch key later) with AES-256-GCM. |
|
Package serverlist holds the in-memory registry of game-server heartbeats that powers the server-browser endpoint.
|
Package serverlist holds the in-memory registry of game-server heartbeats that powers the server-browser endpoint. |
|
Package signedcookie is the MAC-signed cookie framing shared by the flows that park short-lived state in a cookie: email verification and the 2FA pending challenge.
|
Package signedcookie is the MAC-signed cookie framing shared by the flows that park short-lived state in a cookie: email verification and the 2FA pending challenge. |
|
Package sso holds the provider protocol mechanics for single sign-on: the OAuth 2.0 code flow with PKCE and the signed state cookie that binds a browser to one attempt.
|
Package sso holds the provider protocol mechanics for single sign-on: the OAuth 2.0 code flow with PKCE and the signed state cookie that binds a browser to one attempt. |
|
ssotest
Package ssotest is a fake OAuth 2.0 provider for tests.
|
Package ssotest is a fake OAuth 2.0 provider for tests. |
|
Package steamauth verifies Steam session tickets against Valve's ISteamUserAuth Web API.
|
Package steamauth verifies Steam session tickets against Valve's ISteamUserAuth Web API. |
|
Package storagelimit resolves and persists per-tenant and per-project overrides for the maximum storage-object value size.
|
Package storagelimit resolves and persists per-tenant and per-project overrides for the maximum storage-object value size. |
|
Package tenant houses the load-bearing tenant-isolation middleware.
|
Package tenant houses the load-bearing tenant-isolation middleware. |
|
Package twofactor holds the TOTP two-factor primitives shared by the control panel and player-account login surfaces: secret encryption at rest, RFC 6238 code validation with replay protection, backup codes, and QR rendering for enrollment.
|
Package twofactor holds the TOTP two-factor primitives shared by the control panel and player-account login surfaces: secret encryption at rest, RFC 6238 code validation with replay protection, backup codes, and QR rendering for enrollment. |
|
Package verifycode provides the shared primitives for 6-digit email verification codes used by both the operator control panel and the player-facing player flow:
|
Package verifycode provides the shared primitives for 6-digit email verification codes used by both the operator control panel and the player-facing player flow: |
|
Package webassets serves the shared front-end assets (Pico CSS, the ggscale stylesheet, and web fonts) used by both the control panel and the player-facing site.
|
Package webassets serves the shared front-end assets (Pico CSS, the ggscale stylesheet, and web fonts) used by both the control panel and the player-facing site. |
|
Package webutil holds the small HTTP helpers shared by every server-rendered surface in ggscale: the operator control panel, the player-facing site, and the JSON auth handlers in internal/httpapi.
|
Package webutil holds the small HTTP helpers shared by every server-rendered surface in ggscale: the operator control panel, the player-facing site, and the JSON auth handlers in internal/httpapi. |
Click to show internal directories.
Click to hide internal directories.