diff --git a/src/client/ClientGameRunner.ts b/src/client/ClientGameRunner.ts index ebee81856..bcddbf86e 100644 --- a/src/client/ClientGameRunner.ts +++ b/src/client/ClientGameRunner.ts @@ -119,7 +119,7 @@ export function joinLobby( }; } -export async function createClientGame( +async function createClientGame( lobbyConfig: LobbyConfig, eventBus: EventBus, transport: Transport, @@ -224,6 +224,7 @@ export class ClientGameRunner { startTime(), Date.now(), update.winner, + this.lobby.serverConfig, ); endGame(record); } diff --git a/src/client/LocalServer.ts b/src/client/LocalServer.ts index 2adbdda3e..6d4cd8805 100644 --- a/src/client/LocalServer.ts +++ b/src/client/LocalServer.ts @@ -199,6 +199,7 @@ export class LocalServer { this.startedAt, Date.now(), this.winner?.winner, + this.lobbyConfig.serverConfig, ); if (!saveFullGame) { // Clear turns because beacon only supports up to 64kb diff --git a/src/core/Schemas.ts b/src/core/Schemas.ts index 1f94f4179..c062929fa 100644 --- a/src/core/Schemas.ts +++ b/src/core/Schemas.ts @@ -526,6 +526,8 @@ export const AnalyticsRecordSchema = z.object({ info: GameEndInfoSchema, version: z.literal("v0.0.2"), gitCommit: GitCommitSchema, + subdomain: z.string(), + domain: z.string(), }); export type AnalyticsRecord = z.infer; diff --git a/src/core/Util.ts b/src/core/Util.ts index d78f7091d..b83bbe894 100644 --- a/src/core/Util.ts +++ b/src/core/Util.ts @@ -12,6 +12,7 @@ import { Winner, } from "./Schemas"; +import { ServerConfig } from "./configuration/Config"; import { BOT_NAME_PREFIXES, BOT_NAME_SUFFIXES, @@ -192,10 +193,13 @@ export function createGameRecord( start: number, end: number, winner: Winner, + serverConfig: ServerConfig, ): GameRecord { const duration = Math.floor((end - start) / 1000); const version = "v0.0.2"; - const gitCommit = process.env.GIT_COMMIT ?? "unknown"; + const gitCommit = serverConfig.gitCommit(); + const subdomain = serverConfig.subdomain(); + const domain = serverConfig.domain(); const num_turns = allTurns.length; const turns = allTurns.filter( (t) => t.intents.length !== 0 || t.hash !== undefined, @@ -213,6 +217,8 @@ export function createGameRecord( }, version, gitCommit, + subdomain, + domain, turns, }; return record; diff --git a/src/core/configuration/Config.ts b/src/core/configuration/Config.ts index 0daf4d89f..f9b3d3bcb 100644 --- a/src/core/configuration/Config.ts +++ b/src/core/configuration/Config.ts @@ -39,7 +39,6 @@ export interface ServerConfig { workerPort(gameID: GameID): number; workerPortByIndex(workerID: number): number; env(): GameEnv; - region(): string; adminToken(): string; adminHeader(): string; // Only available on the server diff --git a/src/core/configuration/DefaultConfig.ts b/src/core/configuration/DefaultConfig.ts index 1eab712c5..a7fcf4a54 100644 --- a/src/core/configuration/DefaultConfig.ts +++ b/src/core/configuration/DefaultConfig.ts @@ -130,12 +130,6 @@ export abstract class DefaultServerConfig implements ServerConfig { otelPassword(): string { return process.env.OTEL_PASSWORD ?? ""; } - region(): string { - if (this.env() === GameEnv.Dev) { - return "dev"; - } - return process.env.REGION ?? ""; - } gitCommit(): string { return process.env.GIT_COMMIT ?? ""; } diff --git a/src/server/Archive.ts b/src/server/Archive.ts index d3b702660..e9d4cdd55 100644 --- a/src/server/Archive.ts +++ b/src/server/Archive.ts @@ -47,11 +47,13 @@ export async function archive(gameRecord: GameRecord) { async function archiveAnalyticsToR2(gameRecord: GameRecord) { // Create analytics data object - const { info, version, gitCommit } = gameRecord; + const { info, version, gitCommit, subdomain, domain } = gameRecord; const analyticsData: AnalyticsRecord = { info, version, gitCommit, + subdomain, + domain, }; try { diff --git a/src/server/GameServer.ts b/src/server/GameServer.ts index eda377740..73ccbd97c 100644 --- a/src/server/GameServer.ts +++ b/src/server/GameServer.ts @@ -628,6 +628,7 @@ export class GameServer { this._startTime ?? 0, Date.now(), this.winner?.winner, + this.config, ), ); } diff --git a/tests/util/TestServerConfig.ts b/tests/util/TestServerConfig.ts index 4858ddafb..5db2c4ca4 100644 --- a/tests/util/TestServerConfig.ts +++ b/tests/util/TestServerConfig.ts @@ -46,9 +46,6 @@ export class TestServerConfig implements ServerConfig { otelPassword(): string { throw new Error("Method not implemented."); } - region(): string { - return "test"; - } turnIntervalMs(): number { throw new Error("Method not implemented."); }