updated layout for webmail and added http dns letsencrypt
This commit is contained in:
+18
-1
@@ -208,7 +208,10 @@ CREATE TABLE IF NOT EXISTS esrv_mailboxes (
|
||||
created_by INTEGER REFERENCES esrv_admin_users(id),
|
||||
totp_secret TEXT NOT NULL DEFAULT '',
|
||||
totp_enabled INTEGER NOT NULL DEFAULT 0,
|
||||
mfa_exempt INTEGER NOT NULL DEFAULT 0
|
||||
mfa_exempt INTEGER NOT NULL DEFAULT 0,
|
||||
-- Off by default: collapse a run of same-subject messages in a folder view into one
|
||||
-- expandable row. Per-mailbox, not global, since this is purely a display preference.
|
||||
group_messages INTEGER NOT NULL DEFAULT 0
|
||||
);
|
||||
|
||||
-- Self-service webmail portal sessions — deliberately a parallel schema to
|
||||
@@ -309,6 +312,10 @@ CREATE TABLE IF NOT EXISTS esrv_mailbox_messages (
|
||||
cached_from TEXT NOT NULL DEFAULT '',
|
||||
cached_to TEXT NOT NULL DEFAULT '',
|
||||
cached_subject TEXT NOT NULL DEFAULT '',
|
||||
-- First ~150 characters of the plain-text body, cached in plain text (like the
|
||||
-- other cached_* columns) so the folder list can show a preview snippet without
|
||||
-- decrypting the full message just to render the list.
|
||||
cached_preview TEXT NOT NULL DEFAULT '',
|
||||
storage_path TEXT NOT NULL,
|
||||
nonce BLOB NOT NULL,
|
||||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
@@ -432,6 +439,16 @@ func migrateAddedColumns(db *sql.DB) {
|
||||
// unrecoverable-without-code-that-no-longer-exists) keys, same "not migrated"
|
||||
// treatment as the singular-table identities before them.
|
||||
`ALTER TABLE esrv_mailbox_smime_identities ADD COLUMN key_pem TEXT NOT NULL DEFAULT ''`,
|
||||
`ALTER TABLE esrv_mailboxes ADD COLUMN group_messages INTEGER NOT NULL DEFAULT 0`,
|
||||
`ALTER TABLE esrv_mailbox_messages ADD COLUMN cached_preview TEXT NOT NULL DEFAULT ''`,
|
||||
}
|
||||
// The three old columns above were NOT NULL with no default, so simply adding
|
||||
// key_pem left them behind still blocking every new insert (which only ever sets
|
||||
// key_pem, never these) on any DB created before this migration — confirmed live:
|
||||
// "NOT NULL constraint failed: esrv_mailbox_smime_identities.key_ciphertext". Needs
|
||||
// SQLite 3.35+ for DROP COLUMN; modernc.org/sqlite is well past that.
|
||||
for _, col := range []string{"key_ciphertext", "key_nonce", "key_salt"} {
|
||||
db.Exec(`ALTER TABLE esrv_mailbox_smime_identities DROP COLUMN ` + col)
|
||||
}
|
||||
for _, stmt := range stmts {
|
||||
db.Exec(stmt)
|
||||
|
||||
Reference in New Issue
Block a user