{ "_说明": [ "AgentMail 推送通道配置(可选)。默认路径 /push.json,", "也可用环境变量 PUSH_CONFIG 指向别处。文件不存在 = 没配推送 —— 那是正常状态,", "服务端一切照常(SSE 仍是在线客户端的收信主通道)。", "", "设计要点:", " · 多厂商:providers 是一张表,一项一个厂商(type)。同一实例可以同时接多个厂商。", " · 配置式:加新厂商 = 服务端加一个 Factory 实现 + 一行 RegisterType,用户只改这个文件。", " · 凭证是配置项:密钥走文件(app_secret_file 或 files.*),文件权限建议 600;", " 不喜欢文件也可以内联 app_secret(方便临时验证,但不推荐)。", " · 谁部署谁配:每个用户自己部署服务端、自己选厂商、自己填凭证。", "", "改完这个文件需要重启 gateway 生效:systemctl restart agentmail-gateway", "(重启会打断正在跑的 worker,挑空闲时做。)" ], "providers": [ { "_说明": "华为 HMS Push(鸿蒙设备)。未上架应用必须 test_message=true,否则收不到。", "type": "hms", "name": "hms", "enabled": true, "app_id": "6917616450599975320", "app_secret_file": "/etc/agentmail/hms-app-secret", "client_config_file": "/etc/agentmail/agconnect-services.json", "test_message": true, "daily_limit": 1000 }, { "_说明": [ "同一厂商接多套凭证的写法:显式给 name 区分,客户端按名字登记 token。", "(例如同一个服务端要同时推给两个华为应用)" ], "type": "hms", "name": "hms-second-app", "enabled": false, "app_id": "0000000000000000000", "files": { "app_secret": "/etc/agentmail/hms-second-app.secret" }, "test_message": true }, { "_说明": [ "其它厂商(Web Push / 小米 / 荣耀 …):", "服务端需要先有该厂商的 Factory 实现(internal/push 里 RegisterType),", "否则这一项会在启动日志里被标记为「不支持的类型,已跳过」,其余条目照常启用。", "厂商私有的密钥类文件统一放 files 表里(键名由那个厂商的实现定义)。" ], "type": "webpush", "name": "webpush", "enabled": false, "files": { "vapid_public_key": "/etc/agentmail/vapid.pub", "vapid_private_key": "/etc/agentmail/vapid.pem" } } ] }