DUXPLIMA Documentation

Overview

What is stored, the tables, sharing one database across a network, and moving.

Everything the door knows is in one database, so every member of a network reads it alike.

Tables

TableHolds
uxmauth_accountOne row per account: the name as first written, the name in lower case (its unique index decides a race between two registrations), the kind, the UUID, the hash, dates
uxmauth_metaFacts the plugin keeps about itself, such as the UUID scheme of the first start
uxmauth_renameAccounts moved to a marked name by a conflict
uxmauth_disputeNames a cracked holder and a paid owner both want, and those staff settled
uxmauth_addressWhat each address did wrong: failures, ban step, banned until
uxmauth_sessionRemembered sessions
uxmauth_session_choiceWhat each account chose, where players choose
uxmauth_factorApp secrets, sealed with AES-GCM, and the last step a code was taken for
uxmauth_backup_codeBackup codes, hashed as passwords are
uxmauth_emailConfirmed addresses, and whether the login code is mailed
uxmauth_mail_codeCodes mailed for confirming, logging in or recovering, hashed
uxmauth_loginEvery login: when, from where, how; kept history.keep-days
uxmauth_last_serverThe server each player was on when they last left the network
uxmauth_website_linkWhich website-table rows are known to be an account's

A network

Point the proxy and every server at the same database. Accounts, sessions, bans, factors and the history are then the same everywhere; see A network.

Moving

/uxmauth database move copies every account to storage.move-to; see Moving accounts.

Backing up

Back up the database with data/second-factor.key on a lone server: without the key no sealed app secret opens.

Related: Backends