Gestión de configuración
Obtener la configuración de correo electrónico - /api/configuration/email
-
Endpoint:
/api/configuration/email -
Método: GET
-
Descripción: Recupera la configuración actual de notificaciones por correo electrónico y si las notificaciones por correo están habilitadas/configuradas.
-
Autenticación: Requiere sesión válida y token CSRF
-
Respuesta (configurado):
{"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."} -
Respuesta (no configurado):
{"configured": false,"config": null,"message": "Email is not configured. Please configure SMTP settings."} -
Respuestas de error:
400: La clave maestra no es válida - Todas las contraseñas y configuraciones cifradas deben reconfigurarse401: No autorizado - Sesión o token CSRF no válido500: No se pudo obtener la configuración de correo electrónico
-
Notas:
- Devuelve la configuración sin la contraseña por motivos de seguridad
- Incluye el campo
hasPasswordpara indicar si se ha establecido la contraseña - Incluye los campos
connectionType(plain|starttls|ssl),senderName,fromAddressyrequireAuth - Indica si las notificaciones por correo están disponibles para uso en pruebas y producción
- Maneja los errores de validación de la clave maestra de forma adecuada
Actualizar la configuración de correo electrónico - /api/configuration/email
-
Endpoint:
/api/configuration/email -
Método: POST
-
Descripción: Actualiza la configuración de notificaciones por correo electrónico SMTP.
-
Autenticación: Requiere sesión válida y token CSRF
-
Cuerpo de la solicitud:
{"host": "smtp.example.com","port": 465,"secure": true,"username": "user@example.com","password": "password","mailto": "admin@example.com"} -
Respuesta:
{"success": true,"message": "SMTP configuration saved successfully"} -
Respuestas de error:
400: Faltan campos obligatorios o número de puerto no válido401: No autorizado - Sesión o token CSRF no válido500: No se pudo guardar la configuración SMTP
-
Notas:
- Todos los campos (host, puerto, nombre de usuario, contraseña, mailto) son obligatorios
- El puerto debe ser un número válido entre 1 y 65535
- El campo secure es booleano (true para SSL/TLS)
- La contraseña se gestiona por separado mediante el punto de conexión de contraseña
Eliminar la configuración de correo electrónico - /api/configuration/email
-
Endpoint:
/api/configuration/email -
Método: DELETE
-
Descripción: Elimina la configuración de notificaciones por correo electrónico SMTP.
-
Autenticación: Requiere sesión válida y token CSRF
-
Respuesta:
{"success": true,"message": "SMTP configuration deleted successfully"} -
Respuestas de error:
401: No autorizado - Sesión o token CSRF no válido404: No se encontró ninguna configuración SMTP para eliminar500: No se pudo eliminar la configuración SMTP
-
Notas:
- Esta operación elimina permanentemente la configuración SMTP
- Devuelve 404 si no existe ninguna configuración para eliminar
Actualizar la contraseña de correo electrónico - /api/configuration/email/password
-
Endpoint:
/api/configuration/email/password -
Método: PATCH
-
Descripción: Actualiza la contraseña de correo electrónico para la autenticación SMTP.
-
Autenticación: Requiere sesión válida y token CSRF
-
Cuerpo de la solicitud:
{"password": "new-password","config": {"host": "smtp.example.com","port": 465,"secure": true,"username": "user@example.com","mailto": "admin@example.com"}} -
Respuesta:
{"message": "Email password updated successfully"} -
Respuestas de error:
400: La contraseña debe ser una cadena o faltan campos de configuración obligatorios401: No autorizado - Sesión o token CSRF no válido500: No se pudo actualizar la contraseña de correo electrónico
-
Notas:
- La contraseña puede ser una cadena vacía para borrarla
- Si no existe ninguna configuración SMTP, crea una mínima a partir de la configuración proporcionada
- El parámetro config es obligatorio cuando no existe una configuración SMTP existente
- La contraseña se almacena de forma segura mediante cifrado
Obtener el token CSRF de contraseña de correo electrónico - /api/configuration/email/password
-
Endpoint:
/api/configuration/email/password -
Método: GET
-
Descripción: Recupera un token CSRF para operaciones relacionadas con la contraseña de correo electrónico.
-
Autenticación: Requiere sesión válida
-
Respuesta:
{"csrfToken": "csrf-token-string"} -
Respuestas de error:
401: Sesión inválida o expirada500: Error al generar el token CSRF
-
Notas:
- Devuelve el token CSRF para usarlo en operaciones de actualización de contraseña
- La sesión debe ser válida para generar el token
Obtener la configuración unificada - /api/configuration/unified
-
Endpoint:
/api/configuration/unified -
Método: GET
-
Descripción: Recupera un objeto de configuración unificada que contiene todos los datos de configuración, incluyendo ajustes de cron, frecuencia de notificaciones y servidores con copias de seguridad.
-
Autenticación: Requiere sesión válida y token CSRF
-
Respuesta:
{"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"}]} -
Respuestas de error:
500: Error del servidor al obtener la configuración unificada
-
Notas:
- Devuelve todos los datos de configuración en una sola respuesta
- Incluye configuración de cron, frecuencia de notificaciones y servidores con copias de seguridad
- La configuración de correo electrónico incluye el campo
hasPasswordpero no la contraseña real - Obtiene todos los datos en paralelo para un mejor rendimiento
Obtener la configuración de NTFY - /api/configuration/ntfy
-
Endpoint:
/api/configuration/ntfy -
Método: GET
-
Descripción: Recupera la configuración actual de NTFY.
-
Autenticación: Requiere sesión válida y token CSRF
-
Respuesta:
{"ntfy": {"url": "https://ntfy.sh","topic": "duplistatus-notifications","accessToken": "optional-access-token"}} -
Respuestas de error:
401: No autorizado - Sesión o token CSRF inválido500: No se pudo obtener la configuración de NTFY
-
Notas:
- Devuelve la configuración actual de NTFY
- Se utiliza para la gestión del sistema de notificaciones
- Requiere autenticación para acceder a los datos de configuración
Obtener la configuración de notificaciones - /api/configuration/notifications
-
Endpoint:
/api/configuration/notifications -
Método: GET
-
Descripción: Recupera la configuración actual de frecuencia de notificaciones.
-
Autenticación: Requiere sesión válida y token CSRF
-
Respuesta:
{"value": "every_day"} -
Respuestas de error:
401: No autorizado - Sesión o token CSRF inválido500: No se pudo obtener la configuración
-
Notas:
- Recupera la configuración actual de frecuencia de notificaciones
- Se utiliza para la gestión de notificaciones de copia de seguridad retrasada
- Devuelve uno de:
"onetime","every_day","every_week","every_month"
Actualizar la configuración de notificaciones - /api/configuration/notifications
-
Endpoint:
/api/configuration/notifications -
Método: POST
-
Descripción: Actualiza la configuración de notificaciones (ajustes de NTFY o frecuencia de notificaciones).
-
Autenticación: Requiere sesión válida y token CSRF
-
Cuerpo de la solicitud: Para la configuración de NTFY:
{"ntfy": {"enabled": true,"url": "https://ntfy.sh","topic": "duplistatus-notifications","accessToken": "optional-access-token"}}
Para la frecuencia de notificación:
{
"value": "every_week"
}
-
Respuesta: Para la configuración de NTFY:
{"message": "Notification config updated successfully","ntfy": {"enabled": true,"url": "https://ntfy.sh","topic": "duplistatus-notifications","accessToken": "optional-access-token"}}
Para la frecuencia de notificación:
{
"value": "every_week"
}
- Valores disponibles:
"onetime","every_day","every_week","every_month" - Respuestas de error:
401: No autorizado - Sesión o token CSRF inválido400: La configuración de NTFY es obligatoria o el valor es inválido500: Error del servidor al actualizar la configuración de notificaciones
- Notas:
- Admite actualizaciones tanto de la configuración de NTFY como de la frecuencia de notificaciones
- Solo actualiza la configuración de NTFY cuando se proporciona el campo ntfy
- Actualiza la frecuencia de notificación cuando se proporciona el campo value
- Genera un tema predeterminado si no se proporciona ninguno
- Mantiene la configuración existente
- Usa el campo
accessTokenen lugar de campos separados de nombre de usuario/contraseña - Valida el valor de frecuencia de notificación contra las opciones permitidas
- Afecta la frecuencia con la que se envían las notificaciones retrasadas
Actualizar la configuración de copias de seguridad - /api/configuration/backup-settings
-
Endpoint:
/api/configuration/backup-settings -
Método: POST
-
Descripción: Actualiza la configuración de notificaciones de copia de seguridad para servidores/copias de seguridad específicos.
-
Autenticación: Requiere sesión válida y token CSRF
-
Cuerpo de la solicitud:
{"backupSettings": {"Server Name:Backup Name": {"notificationEvent": "all","expectedInterval": 24,"overdueBackupCheckEnabled": true,"intervalUnit": "hours"}}} -
Respuesta:
{"message": "Backup settings updated successfully"} -
Respuestas de error:
401: No autorizado - Sesión o token CSRF inválido400: backupSettings es obligatorio500: Error del servidor al actualizar la configuración de copias de seguridad
-
Notas:
- Actualiza la configuración de notificaciones de copia de seguridad para servidores/copias de seguridad específicos
- Limpia las notificaciones de copia de seguridad retrasada para copias deshabilitadas
- Borra las notificaciones cuando cambian los ajustes de tiempo de espera
Actualizar plantillas de notificación - /api/configuration/templates
-
Endpoint:
/api/configuration/templates -
Método: POST
-
Descripción: Actualiza las plantillas de notificación.
-
Autenticación: Requiere sesión válida y token CSRF
-
Cuerpo de la solicitud:
{"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"}}} -
Respuesta:
{"message": "Notification templates updated successfully"} -
Respuestas de error:
401: No autorizado - Sesión o token CSRF inválido400: Las plantillas son obligatorias500: Error del servidor al actualizar las plantillas de notificaciones
-
Notas:
- Actualiza las plantillas de notificaciones para diferentes estados de copia de seguridad
- Mantiene la configuración existente
- Las plantillas admiten sustitución de variables
Obtener la tolerancia de retraso - /api/configuration/overdue-tolerance
-
Endpoint:
/api/configuration/overdue-tolerance -
Método: GET
-
Descripción: Recupera la configuración actual de tolerancia de retraso.
-
Respuesta:
{"overdue_tolerance": "2h"} -
Respuestas de error:
500: Error al obtener la tolerancia de retraso
-
Notas:
- Devuelve la configuración actual de tolerancia de retraso
- Se utiliza para mostrar la configuración actual
Actualizar la tolerancia de retraso - /api/configuration/overdue-tolerance
-
Endpoint:
/api/configuration/overdue-tolerance -
Método: POST
-
Descripción: Actualiza la configuración de tolerancia de retraso.
-
Autenticación: Requiere sesión válida y token CSRF
-
Cuerpo de la solicitud:
{"overdue_tolerance": "2h"} -
Respuesta:
{"message": "Overdue tolerance updated successfully"} -
Respuestas de error:
401: No autorizado - Sesión o token CSRF inválido400: Se requiere overdue_tolerance500: Error del servidor al actualizar la tolerancia de retraso
-
Notas:
- Actualiza la configuración de tolerancia de copias de seguridad vencidas (acepta formato de cadena como
"1h","2h", etc.; predeterminada para nuevas instalaciones es2h) - Afecta cuándo se consideran vencidas las copias de seguridad
- Utilizada por el verificador de copias de seguridad vencidas
- Actualiza la configuración de tolerancia de copias de seguridad vencidas (acepta formato de cadena como