feat(framework): 回灌 OpenFlare 分层、安全与运行时改进

将平台域持久化收敛为 repository 唯一入口,model 去掉 IO。
邮件头写入前清除 CR/LF,防止 header 注入。
httppool 支持可配置 Transport;batchwriter 增加 MinBatchSize/Stats,flush 失败交回批次;任务 PermanentError 作为 SkipRetry 终态。
设置与推送页的确认改为 AlertDialog;axios 去尾斜杠并按 Gin 数组序列化查询参数。
升级共享 Go 依赖(Gin、Asynq、OTel、GORM、Redis 等)。
This commit is contained in:
ryan
2026-08-16 11:07:20 +08:00
parent b9b42e3174
commit 6a53619dd2
58 changed files with 2201 additions and 1175 deletions
+22 -4
View File
@@ -245,6 +245,12 @@
"rotateFailed": "Failed to rotate access token",
"deleteConfirm": "Revoke token \u201c{name}\u201d? It will stop working immediately and cannot be recovered.",
"rotateConfirm": "Rotate the secret for token \u201c{name}\u201d? A new secret will be issued and the old one will stop working immediately.",
"deleteConfirmTitle": "Confirm token revocation",
"rotateConfirmTitle": "Confirm token rotation",
"confirmRevoke": "Confirm revoke",
"confirmRotate": "Confirm rotate",
"revoking": "Revoking...",
"rotating": "Rotating...",
"subtitle": "Manage API access secrets for development or third-party tools",
"adminBadge": "Admin",
"adminPermission": "Admin permission",
@@ -374,7 +380,10 @@
"type": "Type",
"secretConfigured": "Secret configured",
"secretNotConfigured": "Secret not configured",
"deleteAuthSourceConfirm": "Delete authentication source \u201c{name}\u201d?",
"deleteAuthSourceConfirm": "Delete authentication source \u201c{name}\u201d? This cannot be undone.",
"deleteAuthSourceTitle": "Confirm delete authentication source",
"confirmDelete": "Confirm delete",
"deleting": "Deleting...",
"noAuthSources": "No authentication sources configured. Click the button above to add one.",
"captchaConfig": "CAPTCHA configuration (Cap CAPTCHA)",
"captchaConfigDesc": "Configure Proof-of-Work (PoW) based invisible CAPTCHA to protect login from brute-force and credential-stuffing attacks",
@@ -463,7 +472,10 @@
"custom": "Custom",
"identifier": "Identifier",
"subject": "Subject",
"deleteTemplateConfirm": "Delete template \u201c{name}\u201d?",
"deleteTemplateConfirm": "Delete template \u201c{name}\u201d? This cannot be undone.",
"deleteTemplateTitle": "Confirm delete template",
"confirmDelete": "Confirm delete",
"deleting": "Deleting...",
"noTemplates": "No notification templates configured. Click the button above to add one.",
"editTemplate": "Edit notification template",
"addTemplateTitle": "Add notification template",
@@ -876,7 +888,10 @@
"noChannelSpecified": "No channel specified",
"emailChannel": "Email",
"configure": "Configure",
"deleteEventConfirm": "Delete this notification event configuration?",
"deleteEventConfirm": "Delete this notification event configuration? This cannot be undone.",
"deleteEventTitle": "Confirm delete notification event",
"confirmDelete": "Confirm delete",
"deleting": "Deleting...",
"delete": "Delete",
"addEventDialogTitle": "Add notification event",
"addEventDialogDesc": "Select a system event and bind push channels. It will be active immediately after creation.",
@@ -944,7 +959,10 @@
"noRemark": "No remark",
"test": "Test",
"edit": "Edit",
"deleteChannelConfirm": "Delete channel \"{name}\"?",
"deleteChannelConfirm": "Delete channel \"{name}\"? This cannot be undone.",
"deleteChannelTitle": "Confirm delete channel",
"confirmDelete": "Confirm delete",
"deleting": "Deleting...",
"delete": "Delete",
"editChannelDialogTitle": "Edit channel",
"createChannelDialogTitle": "Create channel",
+22 -4
View File
@@ -245,6 +245,12 @@
"rotateFailed": "轮换访问令牌失败",
"deleteConfirm": "确定要删除并撤销令牌「{name}」吗?删除后此令牌将立即失效且不可恢复。",
"rotateConfirm": "确定要轮换令牌「{name}」的密钥吗?轮换后系统将生成全新密钥,原令牌密钥将立即失效。",
"deleteConfirmTitle": "确认撤销访问令牌",
"rotateConfirmTitle": "确认轮换访问令牌",
"confirmRevoke": "确认撤销",
"confirmRotate": "确认轮换",
"revoking": "撤销中...",
"rotating": "轮换中...",
"subtitle": "管理您的 API 访问密钥,用于开发或第三方工具直接调用系统 API",
"adminBadge": "管理员",
"adminPermission": "管理员权限",
@@ -374,7 +380,10 @@
"type": "类型",
"secretConfigured": "Secret 已配置",
"secretNotConfigured": "Secret 未配置",
"deleteAuthSourceConfirm": "确定删除认证源「{name}」吗?",
"deleteAuthSourceConfirm": "确定删除认证源「{name}」吗?删除后无法恢复。",
"deleteAuthSourceTitle": "确认删除认证源",
"confirmDelete": "确认删除",
"deleting": "删除中...",
"noAuthSources": "暂无配置的认证源,点击上方按钮新增",
"captchaConfig": "人机验证配置 (Cap CAPTCHA)",
"captchaConfigDesc": "配置基于 Proof-of-Work (PoW) 的无感人机验证,保护系统登录免受暴力破解和撞库攻击",
@@ -463,7 +472,10 @@
"custom": "自定义",
"identifier": "标识符",
"subject": "主题",
"deleteTemplateConfirm": "确定删除模板「{name}」吗?",
"deleteTemplateConfirm": "确定删除模板「{name}」吗?删除后无法恢复。",
"deleteTemplateTitle": "确认删除模板",
"confirmDelete": "确认删除",
"deleting": "删除中...",
"noTemplates": "暂无配置的通知模板,点击上方按钮新增",
"editTemplate": "编辑通知模板",
"addTemplateTitle": "新增通知模板",
@@ -876,7 +888,10 @@
"noChannelSpecified": "未指定渠道",
"emailChannel": "邮件",
"configure": "配置",
"deleteEventConfirm": "确定要删除该通知事件配置吗?",
"deleteEventConfirm": "确定要删除该通知事件配置吗?删除后无法恢复。",
"deleteEventTitle": "确认删除通知事件",
"confirmDelete": "确认删除",
"deleting": "删除中...",
"delete": "删除",
"addEventDialogTitle": "新增通知事件",
"addEventDialogDesc": "选择系统内置的事件并绑定推送渠道,创建后即可开始生效",
@@ -944,7 +959,10 @@
"noRemark": "无备注",
"test": "测试",
"edit": "编辑",
"deleteChannelConfirm": "确定要删除通道 \"{name}\" 吗?",
"deleteChannelConfirm": "确定要删除通道「{name}」吗?删除后无法恢复。",
"deleteChannelTitle": "确认删除通道",
"confirmDelete": "确认删除",
"deleting": "删除中...",
"delete": "删除",
"editChannelDialogTitle": "编辑消息通道",
"createChannelDialogTitle": "新建消息通道",