Skip to content

five-on-it / apps/api/src/config / Config

Interface: Config ​

Defined in: apps/api/src/config.ts:95

The API's configuration.

Properties ​

admins ​

admins: string[]

Defined in: apps/api/src/config.ts:138

The admins' account ids.


artifacts ​

artifacts: { kind: "memory"; } | { kind: "file"; } | object & S3Options

Defined in: apps/api/src/config.ts:122

Where artifacts are kept: in memory, in files, or in an S3 bucket.


auth ​

auth: { kind: "dev"; secret: string; } | { httpKey?: string; kind: "nakama"; serverKey: string; sessionKey: string; url: string; }

Defined in: apps/api/src/config.ts:107

Accounts: made on sight in development, or Nakama.

Union Members ​

Type Literal ​

{ kind: "dev"; secret: string; }


Type Literal ​

{ httpKey?: string; kind: "nakama"; serverKey: string; sessionKey: string; url: string; }

httpKey? ​

optional httpKey?: string

The runtime's HTTP key, for the module's RPCs (keeping the chat); none keeps nothing.

kind ​

kind: "nakama"

serverKey ​

serverKey: string

sessionKey ​

sessionKey: string

url ​

url: string


blockedWords ​

blockedWords: string[]

Defined in: apps/api/src/config.ts:126

Words the word list refuses besides its own.


buildConcurrency ​

buildConcurrency: number

Defined in: apps/api/src/config.ts:134

How many builds this process runs at once (0: none).


claude ​

claude: object

Defined in: apps/api/src/config.ts:128

The Claude classifier's key and model, when moderation uses it.

apiKey ​

apiKey: string | undefined

model ​

model: string


creator ​

creator: CreatorConfig | undefined

Defined in: apps/api/src/config.ts:160

The platform's own model creating games, when on: which model the runners use, their secret, the month's cap.


dataDir ​

dataDir: string

Defined in: apps/api/src/config.ts:118

Where the file store and the artifacts live.


debug ​

debug: boolean

Defined in: apps/api/src/config.ts:162

Whether every bundled level's game is curated, the test levels' too (FOI_DEBUG=1).


debugAccounts ​

debugAccounts: string[]

Defined in: apps/api/src/config.ts:140

The account ids whose join tokens carry debug (FOI_DEBUG_ACCOUNTS; none: off).


entitlement ​

entitlement: "open" | "steam"

Defined in: apps/api/src/config.ts:150

Who the platform is for: anyone, or the owners of the game on Steam.


fleet ​

fleet: FleetGuard & object | undefined

Defined in: apps/api/src/config.ts:144

The fleet's registry, when on: its secret, where its servers may be, where they reach the API.


gameServers ​

gameServers: GameServerRef[]

Defined in: apps/api/src/config.ts:105

The game servers.


join ​

join: "open" | "token"

Defined in: apps/api/src/config.ts:152

Whether the game servers ask every player for a join token (/info says it).


legal: LegalInfo

Defined in: apps/api/src/config.ts:146

Who runs the platform, how to reach them and the country of its law (FOI_LEGAL_*; empty: unsaid).


moderation ​

moderation: "off" | "wordlist" | "claude" | "chain" | "openrouter"

Defined in: apps/api/src/config.ts:124

The moderation.


moderators ​

moderators: string[]

Defined in: apps/api/src/config.ts:136

The moderators' account ids.


openrouter ​

openrouter: object

Defined in: apps/api/src/config.ts:130

OpenRouter's classifier's key and model, when moderation uses it.

apiKey ​

apiKey: string | undefined

model ​

model: string


port ​

port: number

Defined in: apps/api/src/config.ts:97

The port.


publicUrl ​

publicUrl: string

Defined in: apps/api/src/config.ts:101

The platform's public address, where creators reach the OAuth sign-in: the issuer.


quotas ​

quotas: object

Defined in: apps/api/src/config.ts:132

Quotas per account and day, but for an admin's override.

builds ​

builds: number

creations ​

creations: number

rooms ​

rooms: number


respect ​

respect: "on" | "off" | "shadow"

Defined in: apps/api/src/config.ts:164

Respect: shown and gating, computed in the shadow, or off (FOI_RESPECT).


roomSecret ​

roomSecret: string

Defined in: apps/api/src/config.ts:103

The room secret shared with the game servers.


steam ​

steam: { kind: "off"; } | { kind: "fake"; } | { appId: string; kind: "web"; publisherKey: string; }

Defined in: apps/api/src/config.ts:154

Which Steam signs players in: none, the fake, or Steam's Web API with its key and the app id.


steamStoreUrl ​

steamStoreUrl: string | undefined

Defined in: apps/api/src/config.ts:156

The game's page on the Steam store.


store ​

store: { kind: "memory"; } | { kind: "file"; } | { kind: "postgres"; url: string; }

Defined in: apps/api/src/config.ts:120

The store: in memory, a JSON file, or Postgres at a connection string.


telemetryDays ​

telemetryDays: number

Defined in: apps/api/src/config.ts:148

How long the players' telemetry is kept (days, FOI_TELEMETRY_DAYS).


url ​

url: string

Defined in: apps/api/src/config.ts:99

The API's own public URL (artifacts are fetched from it).


webOrigins ​

webOrigins: string[]

Defined in: apps/api/src/config.ts:158

More origins a Steam sign-in may go back to.


workerUrl ​

workerUrl: string | undefined

Defined in: apps/api/src/config.ts:142

The generator worker spec drafts are built on; without one, this process generates when it finds Blender.