feat(server): refactor mail queue (#15204)

This commit is contained in:
DarkSky
2026-07-07 08:38:16 +08:00
committed by GitHub
parent 9581432d21
commit 998b255afd
72 changed files with 8386 additions and 763 deletions

View File

@@ -50,6 +50,10 @@
"queues.backendRuntime": {
"type": "Object",
"desc": "The config for backend runtime job queue"
},
"queues.inviteAbuse": {
"type": "Object",
"desc": "The config for invite abuse disposition job queue"
}
},
"throttle": {
@@ -87,6 +91,18 @@
"type": "Number",
"desc": "Minimum account age in seconds before new accounts can invite members or create share links."
},
"trustedCloudflareHeaders": {
"type": "Boolean",
"desc": "Whether request abuse source facts should trust Cloudflare headers from the origin edge."
},
"inviteQuotaShadowMode": {
"type": "Boolean",
"desc": "Whether workspace invite quota should record would-block decisions without rejecting requests or executing abuse actions."
},
"inviteQuotaFailOpenOnRuntimeError": {
"type": "Boolean",
"desc": "Whether workspace invite quota should fail open when native runtime admission is unavailable. Keep disabled for production."
},
"passwordRequirements": {
"type": "Object",
"desc": "The password strength requirements when set new password."
@@ -140,6 +156,18 @@
"type": "Array",
"desc": "The emails from these domains are always sent using the fallback SMTP server."
},
"deliveryWorker.batchSize": {
"type": "Number",
"desc": "Number of mail delivery rows claimed by each worker tick."
},
"deliveryWorker.leaseMs": {
"type": "Number",
"desc": "Mail delivery worker lease duration in milliseconds."
},
"deliveryWorker.retentionDays": {
"type": "Number",
"desc": "Days to retain anonymized terminal mail delivery ledger rows."
},
"fallbackSMTP.name": {
"type": "String",
"desc": "Hostname used for fallback SMTP HELO/EHLO (e.g. mail.example.com). Leave empty to use the system hostname."