panel v0.9.1 — open-source game server manager
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
-- 008_steam_credentials.sql — operator's cached Steam login for SteamCMD.
|
||||
--
|
||||
-- Some games (DayZ app 223350, Arma, a handful of others) require a Steam
|
||||
-- account that owns the game — anonymous SteamCMD login returns
|
||||
-- "No subscription". The panel stores one Steam credential per operator
|
||||
-- (for v1 we only support single-user mode, so a single row is enough).
|
||||
--
|
||||
-- password_ciphertext is AES-GCM encrypted using a key derived from the
|
||||
-- controller's CA private key via HKDF-SHA256; see auth.go's
|
||||
-- steamCredentialKey(). The plaintext password never touches disk or logs.
|
||||
--
|
||||
-- sentry_file is the SSFN-style device-auth blob SteamCMD writes after a
|
||||
-- successful Steam Guard challenge. Storing it lets subsequent logins skip
|
||||
-- the 2FA prompt. NULL until first successful login.
|
||||
|
||||
CREATE TABLE IF NOT EXISTS steam_credentials (
|
||||
id SERIAL PRIMARY KEY,
|
||||
username TEXT NOT NULL UNIQUE,
|
||||
password_ciphertext BYTEA NOT NULL,
|
||||
password_nonce BYTEA NOT NULL,
|
||||
sentry_file BYTEA, -- SSFN device-auth blob, filled after successful login
|
||||
last_used_at TIMESTAMPTZ,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||
);
|
||||
Reference in New Issue
Block a user