配置管理
获取电子邮件配置 - /api/configuration/email
-
端点:
/api/configuration/email -
方法: GET
-
描述: 检索当前的电子邮件通知配置和是否已启用/配置电子邮件通知。
-
身份验证: 需要有效的会话和CSRF令牌
-
响应 (已配置):
{"configured": true,"config": {"host": "smtp.example.com","port": 465,"connectionType": "ssl","username": "user@example.com","mailto": "admin@example.com","senderName": "duplistatus","fromAddress": "user@example.com","requireAuth": true,"hasPassword": true},"message": "Email is configured and ready to use."} -
响应 (未配置):
{"configured": false,"config": null,"message": "Email is not configured. Please configure SMTP settings."} -
错误响应:
400: 主密钥无效 - 所有加密密码和设置必须重新配置401: 未经授权 - 无效的会话或CSRF令牌500: 获取电子邮件配置失败
-
注意:
- 返回不包含密码的配置以确保安全
- 包含
hasPassword字段以指示是否设置了密码 - 包含
connectionType(plain|starttls|ssl),senderName,fromAddress, 和requireAuth字段 - 指示电子邮件通知是否可用于测试和生产使用
- 温和地处理主密钥验证错误
更新电子邮件配置 - /api/configuration/email
-
端点:
/api/configuration/email -
方法: POST
-
描述: 更新SMTP电子邮件通知配置。
-
身份验证: 需要有效的会话和 CSRF 令牌
-
请求体:
{"host": "smtp.example.com","port": 465,"secure": true,"username": "user@example.com","password": "password","mailto": "admin@example.com"} -
响应:
{"success": true,"message": "SMTP configuration saved successfully"} -
错误响应:
400: 缺少必需字段或无效的端口号401: 未经授权 - 无效的会话或CSRF令牌500: 保存SMTP配置失败
-
注意:
- 所有字段 (主机, 端口, 用户名, 密码, 邮件到) 都是必需的
- 端口必须是1到65535之间的有效数字
- 安全字段是布尔值 (true表示SSL/TLS)
- 密码通过密码端点单独管理
删除电子邮件配置 - /api/configuration/email
-
端点:
/api/configuration/email -
方法: DELETE
-
描述: 删除SMTP电子邮件通知配置。
-
身份验证: 需要有效的会话和 CSRF 令牌
-
响应:
{"success": true,"message": "SMTP configuration deleted successfully"} -
错误响应:
401: 未经授权 - 无效的会话或CSRF令牌404: 没有找到SMTP配置来删除500: 删除SMTP配置失败
-
注意:
- 此操作永久删除SMTP配置
- 如果没有配置存在以删除,则返回404
更新电子邮件密码 - /api/configuration/email/password
-
端点:
/api/configuration/email/password -
方法: PATCH
-
描述: 更新SMTP身份验证的电子邮件密码。
-
身份验证: 需要有效的会话和 CSRF 令牌
-
请求体:
{"password": "new-password","config": {"host": "smtp.example.com","port": 465,"secure": true,"username": "user@example.com","mailto": "admin@example.com"}} -
响应:
{"message": "Email password updated successfully"} -
错误响应:
400: 密码必须是字符串或缺少必需的配置字段401: 未经授权 - 无效的会话或 CSRF 令牌500: 更新电子邮件密码失败
-
注意事项:
- 密码可以是一个空字符串以清除密码
- 如果没有 SMTP 配置,则从提供的配置中创建一个最小的配置
- 配置参数在没有现有 SMTP 配置时是必需的
- 密码使用加密存储安全
获取电子邮件密码 CSRF 令牌 - /api/configuration/email/password
-
端点:
/api/configuration/email/password -
方法: GET
-
描述: 检索电子邮件密码操作的 CSRF 令牌。
-
身份验证: 需要有效的会话
-
响应:
{"csrfToken": "csrf-token-string"} -
错误响应:
401: 无效或过期的会话500: 生成 CSRF 令牌失败
-
注意事项:
- 返回用于密码更新操作的 CSRF 令牌
- 会话必须有效才能生成令牌
获取统一配置 - /api/configuration/unified
-
端点:
/api/configuration/unified -
方法: GET
-
描述: 检索一个包含所有配置数据的统一配置对象,包括 cron 设置、通知频率和带有备份的服务器。
-
身份验证: 需要有效的会话和 CSRF 令牌
-
响应:
{"ntfy": {"url": "https://ntfy.sh","topic": "duplistatus-notifications","accessToken": ""},"templates": {"language": "en-GB","success": {"title": "✅ {status} - {backup_name} @ {server_name}","message": "Backup {backup_name} on {server_name} completed with status '{status}' at {backup_date} in {duration}.","priority": "default","tags": "duplicati, duplistatus, success"},"warning": {"title": "⚠️ {status} - {backup_name} @ {server_name}","message": "Backup {backup_name} on {server_name} completed with status '{status}' at {backup_date}.","priority": "high","tags": "duplicati, duplistatus, warning, error"},"overdueBackup": {"title": "🕑 Overdue - {backup_name} @ {server_name}","message": "The backup {backup_name} is overdue on {server_name}.","priority": "default","tags": "duplicati, duplistatus, overdue"}},"email": {"host": "smtp.example.com","port": 465,"connectionType": "ssl","username": "user@example.com","mailto": "admin@example.com","senderName": "duplistatus","fromAddress": "user@example.com","requireAuth": true,"hasPassword": true},"overdue_tolerance": "2h","backup_settings": {"server1:backup1": {"notificationEvent": "all","expectedInterval": 24,"overdueBackupCheckEnabled": true,"intervalUnit": "hours","expectedBackupDate": "2025-02-07T00:00:00.000Z","lastBackupDate": "2025-02-06T00:00:00.000Z"}},"serverAddresses": [{"id": "server1","name": "Server 1","server_url": "http://localhost:8200"}],"cronConfig": {"cronExpression": "*/20 * * * *","enabled": true},"notificationFrequency": "every_day","serversWithBackups": [{"id": "server1","name": "Server 1","backupName": "backup1","server_url": "http://localhost:8200","alias": "My Server","note": "Primary backup server","hasPassword": true,"expectedBackupDate": "2025-02-07T00:00:00.000Z","lastBackupDate": "2025-02-06T00:00:00.000Z"}]} -
错误响应:
500: 获取统一配置的服务器错误
-
注意事项:
- 返回所有配置数据在一个响应中
- 包括 cron 设置、通知频率和带有备份的服务器
- 电子邮件配置包括
hasPassword字段,但不包括实际密码 - 并行获取所有数据以提高性能
获取 NTFY 配置 - /api/configuration/ntfy
-
端点:
/api/configuration/ntfy -
方法: GET
-
描述: 检索当前 NTFY 配置设置。
-
身份验证: 需要有效的会话和 CSRF 令牌
-
响应:
{"ntfy": {"url": "https://ntfy.sh","topic": "duplistatus-notifications","accessToken": "optional-access-token"}} -
错误响应:
401: 未经授权 - 无效的会话或 CSRF 令牌500: 获取 NTFY 配置失败
-
注意事项:
- 返回当前 NTFY 配置设置
- 用于通知系统管理
- 需要身份验证以访问配置数据
获取通知配置 - /api/configuration/notifications
-
端点:
/api/configuration/notifications -
方法: GET
-
描述: 检索当前通知频率配置。
-
身份验证: 需要有效的会话和 CSRF 令牌
-
响应:
{"value": "every_day"} -
错误响应:
401: 未经授权 - 无效的会话或 CSRF 令牌500: 获取配置失败
-
注意事项:
- 检索当前通知频率配置
- 用于逾期备份通知管理
- 返回以下之一:
"onetime","every_day","every_week","every_month"
更新通知配置 - /api/configuration/notifications
-
端点:
/api/configuration/notifications -
方法: POST
-
描述: 更新通知配置(NTFY 设置或通知频率)。
-
身份验证: 需要有效的会话和 CSRF 令牌
-
请求体: 用于 NTFY 配置:
{"ntfy": {"enabled": true,"url": "https://ntfy.sh","topic": "duplistatus-notifications","accessToken": "optional-access-token"}}
用于通知频率:
{
"value": "every_week"
}
-
响应: 用于 NTFY 配置:
{"message": "Notification config updated successfully","ntfy": {"enabled": true,"url": "https://ntfy.sh","topic": "duplistatus-notifications","accessToken": "optional-access-token"}}
用于通知频率:
{
"value": "every_week"
}
- 可用值:
"onetime","every_day","every_week","every_month" - 错误响应:
401: 未经授权 - 无效的会话或 CSRF 令牌400: NTFY 配置是必需的或无效值500: 更新通知配置时发生服务器错误
- 注意:
- 支持 NTFY 配置和通知频率更新
- 只更新 NTFY 配置当 ntfy 字段提供时
- 更新通知频率当值字段提供时
- 生成默认主题如果没有提供
- 保留现有的配置设置
- 使用
accessToken字段代替单独的用户名/密码字段 - 验证通知频率值对允许的选项
- 影响逾期通知发送的频率
更新备份设置 - /api/configuration/backup-settings
-
端点:
/api/configuration/backup-settings -
方法: POST
-
描述: 更新特定服务器/备份的备份通知设置。
-
身份验证: 需要有效的会话和 CSRF 令牌
-
请求体:
{"backupSettings": {"Server Name:Backup Name": {"notificationEvent": "all","expectedInterval": 24,"overdueBackupCheckEnabled": true,"intervalUnit": "hours"}}} -
响应:
{"message": "Backup settings updated successfully"} -
错误响应:
401: 未经授权 - 无效的会话或 CSRF 令牌400: backupSettings 是必需的500: 更新备份设置时发生服务器错误
-
注意:
- 更新特定服务器/备份的备份通知设置
- 清理已禁用备份的逾期备份通知
- 当超时设置更改时清除通知
更新通知模板 - /api/configuration/templates
-
端点:
/api/configuration/templates -
方法: POST
-
描述: 更新通知模板。
-
身份验证: 需要有效的会话和 CSRF 令牌
-
请求体:
{"templates": {"success": {"title": "✅ {status} - {backup_name} @ {server_name}","message": "Backup {backup_name} on {server_name} completed with status '{status}' at {backup_date} in {duration}.","priority": "default","tags": "duplicati, duplistatus, success"}}} -
响应:
{"message": "Notification templates updated successfully"} -
错误响应:
401: 未经授权 - 无效的会话或 CSRF 令牌400: 模板是必需的500: 更新通知模板时发生服务器错误
-
注意:
- 更新不同备份状态的通知模板
- 保留现有的配置设置
- 模板支持变量替换
获取逾期容忍度 - /api/configuration/overdue-tolerance
-
端点:
/api/configuration/overdue-tolerance -
方法: GET
-
描述: 检索当前的逾期容忍度设置。
-
响应:
{"overdue_tolerance": "2h"} -
错误响应:
500: 获取逾期容忍度失败
-
注意事项:
- 返回当前逾期容忍度设置
- 用于显示当前配置
更新逾期容忍度 - /api/configuration/overdue-tolerance
-
端点:
/api/configuration/overdue-tolerance -
方法: POST
-
描述: 更新逾期容忍度设置。
-
身份验证: 需要有效的会话和 CSRF 令牌
-
请求体:
{"overdue_tolerance": "2h"} -
响应:
{"message": "Overdue tolerance updated successfully"} -
错误响应:
401: 未授权 - 无效的会话或CSRF令牌400: 逾期容忍度是必需的500: 更新逾期容忍度时服务器错误
-
注意事项:
- 更新逾期容忍度设置(接受字符串格式,如
"1h"、"2h"等;新安装的默认值为2h) - 影响何时认为备份已逾期
- 由逾期备份检查器使用
- 更新逾期容忍度设置(接受字符串格式,如