wip
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
-- DB update 2026_07_22_00 -> 2026_08_16_00
|
||||
-- MoonWell launcher-only authentication.
|
||||
|
||||
ALTER TABLE `account`
|
||||
ADD COLUMN `session_auth` enum('none','launcher','dev') NOT NULL DEFAULT 'none' AFTER `session_key`;
|
||||
|
||||
UPDATE `account`
|
||||
SET `session_key` = NULL,
|
||||
`session_auth` = 'none';
|
||||
|
||||
CREATE TABLE `launcher_ticket` (
|
||||
`account_id` int unsigned NOT NULL,
|
||||
`generation_id` binary(16) NOT NULL,
|
||||
`srp_salt` binary(32) NOT NULL,
|
||||
`srp_verifier` binary(32) NOT NULL,
|
||||
`client_build` smallint unsigned NOT NULL,
|
||||
`launcher_session_hash` binary(32) DEFAULT NULL,
|
||||
`issued_at` datetime(6) NOT NULL,
|
||||
`expires_at` datetime(6) NOT NULL,
|
||||
PRIMARY KEY (`account_id`),
|
||||
UNIQUE KEY `uq_launcher_ticket_generation` (`generation_id`),
|
||||
KEY `idx_launcher_ticket_expiry` (`expires_at`),
|
||||
CONSTRAINT `fk_launcher_ticket_account`
|
||||
FOREIGN KEY (`account_id`) REFERENCES `account` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `chk_launcher_ticket_expiry`
|
||||
CHECK (`expires_at` > `issued_at` AND `expires_at` <= `issued_at` + INTERVAL 60 SECOND)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE `launcher_ticket_consumption` (
|
||||
`generation_id` binary(16) NOT NULL,
|
||||
`account_id` int unsigned NOT NULL,
|
||||
`claim_nonce` binary(16) NOT NULL,
|
||||
`consumed_at` datetime(6) NOT NULL,
|
||||
PRIMARY KEY (`generation_id`),
|
||||
UNIQUE KEY `uq_launcher_ticket_claim_nonce` (`claim_nonce`),
|
||||
KEY `idx_launcher_ticket_consumption_account` (`account_id`, `consumed_at`),
|
||||
CONSTRAINT `fk_launcher_ticket_consumption_account`
|
||||
FOREIGN KEY (`account_id`) REFERENCES `account` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE `launcher_dev_account` (
|
||||
`account_id` int unsigned NOT NULL,
|
||||
`allowed_ip` varchar(45) CHARACTER SET ascii COLLATE ascii_bin NOT NULL,
|
||||
`comment` varchar(255) NOT NULL DEFAULT '',
|
||||
`enabled` tinyint unsigned NOT NULL DEFAULT 1,
|
||||
PRIMARY KEY (`account_id`, `allowed_ip`),
|
||||
CONSTRAINT `fk_launcher_dev_account_account`
|
||||
FOREIGN KEY (`account_id`) REFERENCES `account` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
Reference in New Issue
Block a user