0f3671f42d
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Successful in 23s
CI / integration (pull_request) Successful in 18s
CI / ui (pull_request) Successful in 45s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m5s
Replace the dictionary hot-reload with an online update flow in the GM console (/_gm/dictionary): the operator uploads scrabble-dawg-vX.Y.Z.tar.gz, previews the per-variant words added/removed against the active dictionary, and confirms to install + activate it. Versions are immutable; in-progress games keep their pinned version while new games use the new one. - engine: DiffWords (enumerate both DAWGs, decode only the differences), OpenFinder, Registry.Finder, DictFiles; OpenWithVersions skips the .staging area. - dictadmin: hardened release-archive validation + extraction (path-traversal, symlink, oversize, entry-count rejection) and staging -> install (atomic rename). - game: active dictionary version persisted in the dictionary_state singleton (single source of truth, restored on boot), concurrency-safe accessor. - storage: BACKEND_DICT_DIR is a named volume seeded from the image (nonroot-owned), so uploaded versions persist across redeploys; the build's DICT_VERSION labels the seed and equals the resident tag (BACKEND_DICT_VERSION). - docs: ARCHITECTURE §5, FUNCTIONAL (+ru), backend README, TESTING, PRERELEASE. Tests: engine + dictadmin unit; integration upload->preview->install->activate-> restart->pin->immutability->CSRF.
32 lines
1.2 KiB
Go
32 lines
1.2 KiB
Go
//
|
|
// Code generated by go-jet DO NOT EDIT.
|
|
//
|
|
// WARNING: Changes to this file may cause incorrect behavior
|
|
// and will be lost if the code is regenerated
|
|
//
|
|
|
|
package table
|
|
|
|
// UseSchema sets a new schema name for all generated table SQL builder types. It is recommended to invoke
|
|
// this method only once at the beginning of the program.
|
|
func UseSchema(schema string) {
|
|
AccountStats = AccountStats.FromSchema(schema)
|
|
Accounts = Accounts.FromSchema(schema)
|
|
Blocks = Blocks.FromSchema(schema)
|
|
ChatMessages = ChatMessages.FromSchema(schema)
|
|
Complaints = Complaints.FromSchema(schema)
|
|
DictionaryState = DictionaryState.FromSchema(schema)
|
|
EmailConfirmations = EmailConfirmations.FromSchema(schema)
|
|
FriendCodes = FriendCodes.FromSchema(schema)
|
|
Friendships = Friendships.FromSchema(schema)
|
|
GameDrafts = GameDrafts.FromSchema(schema)
|
|
GameHidden = GameHidden.FromSchema(schema)
|
|
GameInvitationInvitees = GameInvitationInvitees.FromSchema(schema)
|
|
GameInvitations = GameInvitations.FromSchema(schema)
|
|
GameMoves = GameMoves.FromSchema(schema)
|
|
GamePlayers = GamePlayers.FromSchema(schema)
|
|
Games = Games.FromSchema(schema)
|
|
Identities = Identities.FromSchema(schema)
|
|
Sessions = Sessions.FromSchema(schema)
|
|
}
|