Konfigurationsverwaltung
E-Mail-Konfiguration abrufen - /api/configuration/email
-
Endpunkt:
/api/configuration/email -
Methode: GET
-
Beschreibung: Ruft die aktuelle Konfiguration der E-Mail-Benachrichtigungen ab und gibt an, ob E-Mail-Benachrichtigungen aktiviert/konfiguriert sind.
-
Authentifizierung: Erfordert eine gültige Sitzung und ein CSRF-Token
-
Antwort (konfiguriert):
{"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."} -
Antwort (nicht konfiguriert):
{"configured": false,"config": null,"message": "Email is not configured. Please configure SMTP settings."} -
Fehlerantworten:
400: Master-Schlüssel ist ungültig - Alle verschlüsselten Passwörter und Einstellungen müssen neu konfiguriert werden401: Nicht autorisiert - Ungültige Sitzung oder CSRF-Token500: E-Mail-Konfiguration konnte nicht abgerufen werden
-
Hinweise:
- Gibt Konfiguration ohne Passwort aus Sicherheitsgründen zurück
- Enthält
hasPassword-Feld, um anzuzeigen, ob ein Passwort festgelegt ist - Enthält
connectionType(plain|starttls|ssl),senderName,fromAddress- undrequireAuth-Felder - Zeigt an, ob E-Mail-Benachrichtigungen für Test- und Produktionsgebrauch verfügbar sind
- Handhabt Master-Schlüssel-Validierungsfehler ordnungsgemäß
E-Mail-Konfiguration aktualisieren - /api/configuration/email
-
Endpunkt:
/api/configuration/email -
Methode: POST
-
Beschreibung: Aktualisiert die SMTP-E-Mail-Benachrichtigungskonfiguration.
-
Authentifizierung: Erfordert eine gültige Sitzung und ein CSRF-Token
-
Anforderungstext:
{"host": "smtp.example.com","port": 465,"secure": true,"username": "user@example.com","password": "password","mailto": "admin@example.com"} -
Antwort:
{"success": true,"message": "SMTP configuration saved successfully"} -
Fehlerantworten:
400: Erforderliche Felder fehlen oder ungültige Portnummer401: Nicht autorisiert - Ungültige Sitzung oder CSRF-Token500: SMTP-Konfiguration konnte nicht gespeichert werden
-
Hinweise:
- Alle Felder (Host, Port, Benutzername, Passwort, Mailto) sind erforderlich
- Port muss eine gültige Zahl zwischen 1 und 65535 sein
- Secure-Feld ist boolesch (true für SSL/TLS)
- Passwort wird separat über den Passwort-Endpunkt verwaltet
E-Mail-Konfiguration löschen - /api/configuration/email
-
Endpunkt:
/api/configuration/email -
Methode: DELETE
-
Beschreibung: Löscht die SMTP-E-Mail-Benachrichtigungskonfiguration.
-
Authentifizierung: Erfordert eine gültige Sitzung und ein CSRF-Token
-
Antwort:
{"success": true,"message": "SMTP configuration deleted successfully"} -
Fehlerantworten:
401: Nicht autorisiert - Ungültige Sitzung oder CSRF-Token404: Keine zu löschende SMTP-Konfiguration gefunden500: SMTP-Konfiguration konnte nicht gelöscht werden
-
Hinweise:
- Dieser Vorgang entfernt die SMTP-Konfiguration dauerhaft
- Gibt 404 zurück, wenn keine zu löschende Konfiguration existiert
- Gibt 400 zurück, während der tägliche Zusammenfassungsmodus aktiviert ist, da dieser Modus SMTP erfordert
E-Mail-Passwort aktualisieren - /api/configuration/email/password
-
Endpunkt:
/api/configuration/email/password -
Methode: PATCH
-
Beschreibung: Aktualisiert das E-Mail-Passwort für die SMTP-Authentifizierung.
-
Authentifizierung: Erfordert eine gültige Sitzung und ein CSRF-Token
-
Anforderungstext:
{"password": "new-password","config": {"host": "smtp.example.com","port": 465,"secure": true,"username": "user@example.com","mailto": "admin@example.com"}} -
Antwort:
{"message": "Email password updated successfully"} -
Fehlerantworten:
400: Passwort muss eine Zeichenkette sein oder erforderliche Konfigurationsfelder fehlen401: Nicht autorisiert - Ungültige Sitzung oder CSRF-Token500: E-Mail-Passwort konnte nicht aktualisiert werden
-
Hinweise:
- Passwort kann eine leere Zeichenkette sein, um das Passwort zu löschen
- Wenn keine SMTP-Konfiguration existiert, wird eine minimale Konfiguration aus den bereitgestellten Daten erstellt
- Config-Parameter ist erforderlich, wenn keine vorhandene SMTP-Konfiguration existiert
- Passwort wird sicher unter Verwendung von Verschlüsselung gespeichert
E-Mail-Passwort-CSRF-Token abrufen - /api/configuration/email/password
-
Endpunkt:
/api/configuration/email/password -
Methode: GET
-
Beschreibung: Ruft ein CSRF-Token für E-Mail-Passwort-Operationen ab.
-
Authentifizierung: Erfordert eine gültige Sitzung
-
Antwort:
{"csrfToken": "csrf-token-string"} -
Fehlerantworten:
401: Ungültige oder abgelaufene Sitzung500: CSRF-Token konnte nicht generiert werden
-
Hinweise:
- Gibt CSRF-Token für die Verwendung bei Passwortaktualisierungsoperationen zurück
- Die Sitzung muss gültig sein, um Token zu generieren
Einheitliche Konfiguration abrufen - /api/configuration/unified
-
Endpoint:
/api/configuration/unified -
Methode: GET
-
Beschreibung: Ruft ein einheitliches Konfigurationsobjekt ab, das alle Konfigurationsdaten einschließlich Cron-Einstellungen, Benachrichtigungshäufigkeit und Server mit Sicherungen enthält.
-
Authentifizierung: Erfordert eine gültige Sitzung und ein CSRF-Token
-
Antwort:
{"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"},"dailySummary": {"email": {"title": "Daily Backup Summary — {summary_date} — ✅ {success_count} Success, ⚠️ {warning_count} Warning, 🕑 {overdue_count} Overdue, 🛑 {error_count} Error, ❌ {fatal_count} Fatal","message": "## Daily backup summary"}}},"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"}]} -
Fehlerantworten:
500: Serverfehler beim Abrufen der vereinheitlichten Konfiguration
-
Hinweise:
- Gibt alle Konfigurationsdaten in einer einzigen Antwort zurück
- Enthält Cron-Einstellungen, Benachrichtigungshäufigkeit und Server mit Sicherungen
- E-Mail-Konfiguration enthält
hasPassword-Feld, aber nicht das tatsächliche Passwort - Ruft alle Daten parallel ab, um bessere Leistung zu erzielen
NTFY-Konfiguration abrufen - /api/configuration/ntfy
-
Endpoint:
/api/configuration/ntfy -
Methode: GET
-
Beschreibung: Ruft die aktuellen NTFY-Konfigurationseinstellungen ab.
-
Authentifizierung: Erfordert eine gültige Sitzung und ein CSRF-Token
-
Antwort:
{"ntfy": {"url": "https://ntfy.sh","topic": "duplistatus-notifications","accessToken": "optional-access-token"}} -
Fehlerantworten:
401: Nicht autorisiert - Ungültige Sitzung oder CSRF-Token500: NTFY-Konfiguration konnte nicht abgerufen werden
-
Hinweise:
- Gibt aktuelle NTFY-Konfigurationseinstellungen zurück
- Wird für Benachrichtigungssystemverwaltung verwendet
- Erfordert Authentifizierung zum Zugriff auf Konfigurationsdaten
Benachrichtigungskonfiguration abrufen - /api/configuration/notifications
-
Endpoint:
/api/configuration/notifications -
Methode: GET
-
Beschreibung: Ruft die aktuelle Benachrichtigungshäufigkeitskonfiguration ab.
-
Authentifizierung: Erfordert eine gültige Sitzung und ein CSRF-Token
-
Antwort:
{"value": "every_day"} -
Fehlerantworten:
401: Nicht autorisiert - Ungültige Sitzung oder CSRF-Token500: Konfiguration konnte nicht abgerufen werden
-
Hinweise:
- Ruft aktuelle Benachrichtigungshäufigkeitskonfiguration ab
- Wird für Verwaltung überfälliger Sicherungsbenachrichtigungen verwendet
- Gibt einen der folgenden Werte zurück:
"onetime","every_day","every_week","every_month"
Benachrichtigungskonfiguration aktualisieren - /api/configuration/notifications
-
Endpoint:
/api/configuration/notifications -
Methode: POST
-
Beschreibung: Aktualisiert die Benachrichtigungskonfiguration (NTFY-Einstellungen oder Benachrichtigungshäufigkeit).
-
Authentifizierung: Erfordert gültige Sitzung und CSRF-Token
-
Anforderungstext: Für NTFY-Konfiguration:
{"ntfy": {"enabled": true,"url": "https://ntfy.sh","topic": "duplistatus-notifications","accessToken": "optional-access-token"}}
Für Benachrichtigungshäufigkeit:
{
"value": "every_week"
}
-
Antwort: Für NTFY-Konfiguration:
{"message": "Notification config updated successfully","ntfy": {"enabled": true,"url": "https://ntfy.sh","topic": "duplistatus-notifications","accessToken": "optional-access-token"}}
Für Benachrichtigungshäufigkeit:
{
"value": "every_week"
}
- Verfügbare Werte:
"onetime","every_day","every_week","every_month" - Fehlerantworten:
401: Nicht autorisiert - Ungültige Sitzung oder CSRF-Token400: NTFY-Konfiguration ist erforderlich oder ungültiger Wert500: Serverfehler bei Aktualisierung der Benachrichtigungskonfiguration
- Hinweise:
- Unterstützt sowohl NTFY-Konfiguration als auch Aktualisierung der Benachrichtigungshäufigkeit
- Aktualisiert nur die NTFY-Konfiguration, wenn das ntfy-Feld bereitgestellt wird
- Aktualisiert Benachrichtigungshäufigkeit, wenn das value-Feld bereitgestellt wird
- Generiert Standard-Thema, wenn keines bereitgestellt wird
- Erhält bestehende Konfigurationseinstellungen bei
- Verwendet
accessToken-Feld anstelle separater Benutzername/Passwort-Felder - Validiert Benachrichtigungshäufigkeitswert gegen zulässige Optionen
- Beeinflusst, wie oft überfällige Benachrichtigungen gesendet werden
Sicherungseinstellungen aktualisieren - /api/configuration/backup-settings
-
Endpoint:
/api/configuration/backup-settings -
Methode: POST
-
Beschreibung: Aktualisiert die Benachrichtigungseinstellungen für Sicherungen auf bestimmten Servern.
-
Authentifizierung: Erfordert eine gültige Sitzung und ein CSRF-Token
-
Anforderungstext:
{"backupSettings": {"Server Name:Backup Name": {"notificationEvent": "all","expectedInterval": 24,"overdueBackupCheckEnabled": true,"intervalUnit": "hours"}}} -
Antwort:
{"message": "Backup settings updated successfully"} -
Fehlerantworten:
401: Nicht autorisiert - Ungültige Sitzung oder CSRF-Token400: backupSettings ist erforderlich500: Serverfehler bei Aktualisierung der Sicherungseinstellungen
-
Hinweise:
- Aktualisiert Sicherungsbenachrichtigungseinstellungen für bestimmte Server/Sicherungen
- Bereinigt überfällige Sicherungsbenachrichtigungen für deaktivierte Sicherungen
- Löscht Benachrichtigungen, wenn Timeout-Einstellungen geändert werden
Vorlagen für Benachrichtigungen aktualisieren - /api/configuration/templates
-
Endpunkt:
/api/configuration/templates -
Methode: POST
-
Beschreibung: Aktualisiert die Vorlagen für Benachrichtigungen.
-
Authentifizierung: Erfordert eine gültige Sitzung und ein CSRF-Token
-
Anforderungstext:
{"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"}}} -
Antwort:
{"message": "Notification templates updated successfully"} -
Fehlerantworten:
401: Nicht autorisiert - Ungültige Sitzung oder CSRF-Token400: Vorlagen sind erforderlich500: Serverfehler beim Aktualisieren der Benachrichtigungsvorlagen
-
Hinweise:
- Aktualisiert Benachrichtigungsvorlagen für verschiedene Sicherungsstatus
- Erhält vorhandene Konfigurationseinstellungen
- Vorlagen unterstützen Markdown-E-Mail-Textkörper und
{placeholder}-Ersetzung - Eine
dailySummaryE-Mail-Vorlage (Betreff und Markdown-Textkörper) ist erforderlich
Tägliche Zusammenfassung - /api/configuration/daily-summary
- Endpunkt:
/api/configuration/daily-summary - Methode: GET, POST
- Beschreibung: Liest oder aktualisiert den Modus „Tägliche Zusammenfassung“. GET gibt bereinigte Einstellungen, den Dispatcher-Zustand, das nächste Vorkommen und den E-Mail-Zustellstatus zurück. POST speichert
enabled,utcTime(HH:mmUTC),timeZone(Browser-IANA-Zeitzone von der letzten Speicherung), optionalespublicUrlund optionalessmtpRecipient(wenn leer, wird der SMTP-Empfänger aus den E-Mail-Einstellungen verwendet). Das Aktivieren erfordert gültiges SMTP. Das Ändern vonutcTimeaktualisiertdaily-summary-dispatchaufminute hour * * *UTC und lädt den Cron-Dienst neu. Das Ändern des Zeitplans legt das nächste zukünftige Vorkommen fest. - Authentifizierung: GET erfordert eine gültige Sitzung und CSRF-Token. POST erfordert eine Administrator-Sitzung und CSRF-Token.
- Fehlerantworten:
400: Ungültige Zeit/Zeitzone, ungültige öffentliche URL, ungültiger SMTP-Empfänger oder fehlender SMTP401: Nicht autorisiert500: Fehlgeschlagen beim Lesen oder Aktualisieren der Täglichen Zusammenfassung
Tägliche Zusammenfassung senden - /api/configuration/daily-summary/send
- Endpunkt:
/api/configuration/daily-summary/send - Methode: POST
- Beschreibung: Sendet sofort eine zusätzliche Snapshot-Aufnahme des aktuellen Status. Verbraucht nicht das nächste geplante Vorkommen. Verwendet gespeichertes SMTP. Sendet an
daily_summary.smtpRecipient, wenn festgelegt, andernfalls an den Empfänger aus den E-Mail-Einstellungen. Akzeptiert keine Empfängeradressen in der Anfrage. Erfasstdaily_summary_sentim Audit-Protokoll (System). - Authentifizierung: Erfordert eine Administratorsitzung und ein CSRF-Token
Tägliche Zusammenfassung wiederholen - /api/configuration/daily-summary/retry
- Endpunkt:
/api/configuration/daily-summary/retry - Methode: POST
- Beschreibung: Wiederholt fehlgeschlagene Kanäle aus der persistenten Nutzlast. Optionaler Text
{ "occurrenceKey": "..." }; andernfalls wird die letzte fehlgeschlagene E-Mail-Zustellung wiederholt. - Authentifizierung: Erfordert eine Administratorsitzung und ein CSRF-Token
Vorschau der täglichen Zusammenfassung - /api/configuration/daily-summary/preview
- Endpunkt:
/api/configuration/daily-summary/preview - Methode: POST
- Beschreibung: Rendert den aktuellen Snapshot ohne Versand und ohne Schreiben von Zustellungs-Ledger-Zeilen.
- Authentifizierung: Erfordert eine gültige Sitzung und ein CSRF-Token
Überfälligkeitstoleranz abrufen - /api/configuration/overdue-tolerance
-
Endpunkt:
/api/configuration/overdue-tolerance -
Methode: GET
-
Beschreibung: Ruft die aktuelle Einstellung für die Überfälligkeitstoleranz ab.
-
Antwort:
{"overdue_tolerance": "2h"} -
Fehlerantworten:
500: Abrufen der Überfällig-Toleranz fehlgeschlagen
-
Hinweise:
- Gibt die aktuelle Überfällig-Toleranz-Einstellung zurück
- Wird zur Anzeige der aktuellen Konfiguration verwendet
Überfälligkeitstoleranz aktualisieren - /api/configuration/overdue-tolerance
-
Endpunkt:
/api/configuration/overdue-tolerance -
Methode: POST
-
Beschreibung: Aktualisiert die Einstellung für die Überfälligkeitstoleranz.
-
Authentifizierung: Erfordert eine gültige Sitzung und ein CSRF-Token
-
Anforderungstext:
{"overdue_tolerance": "2h"} -
Antwort:
{"message": "Overdue tolerance updated successfully"} -
Fehlerantworten:
401: Nicht autorisiert - Ungültige Sitzung oder CSRF-Token400: overdue_tolerance ist erforderlich500: Serverfehler beim Aktualisieren der Überfällig-Toleranz
-
Hinweise:
- Aktualisiert die Überfällig-Toleranz-Einstellung (akzeptiert Zeichenfolgenformat wie
"1h","2h", usw.; Standard für neue Installationen ist2h) - Beeinflusst, wann Sicherungen als überfällig gelten
- Wird vom Überfällig-Sicherungsprüfer verwendet
- Aktualisiert die Überfällig-Toleranz-Einstellung (akzeptiert Zeichenfolgenformat wie
Externe API-Sicherheit - /api/configuration/external-api-security
-
Endpunkt:
/api/configuration/external-api-security -
Methoden: GET, PATCH
-
Beschreibung: Liest oder aktualisiert, ob Externe APIs einen Schlüssel erfordern, sowie die
/api/upload-Größe und Ratenbegrenzungen. -
Authentifizierung: Erfordert Admin-Berechtigungen, eine gültige Sitzung und ein CSRF-Token
-
PATCH-Body:
{"requireApiKey": false,"uploadLimits": {"enabled": true,"maxBytes": 5242880,"perMinute": 20,"perHour": 200}}
IP-Zulassungsliste - /api/configuration/ip-allowlist
- Endpunkt:
/api/configuration/ip-allowlist - Methoden: GET, PATCH
- Beschreibung: Liest oder aktualisiert Vertrauenswürdige Proxies und die CIDR-Zulassungslisten für Admin / Externe APIs. Das Aktivieren der Admin-Liste schlägt fehl, es sei denn, die aktuelle Client-IP ist bereits aufgeführt (Loopback ist ausgenommen).
- Authentifizierung: Erfordert Admin-Berechtigungen, eine gültige Sitzung und ein CSRF-Token