Fix: Webhook-Settings — Backup-Maskierung + Support-Bundle-Diagnose
Audit-Befunde SET-2, SET-4: - notifyUrl in die SENSITIVE_KEYS des Backup-Imports aufgenommen: ein mit "***" maskierter Wert (haendisch redigierte Backup-Datei) wird wieder durch den aktuellen ersetzt statt als kaputte URL persistiert zu werden — die Webhook-URL ist ein Capability-Secret wie die Tokens. - Support-Bundle enthaelt jetzt einen notifications-Block (konfiguriert?, URL-Format plausibel?, welche Toggles an) — "warum kam kein Webhook" ist damit aus einem Bundle diagnostizierbar, ohne die URL selbst zu leaken.
This commit is contained in:
parent
3fb9e85ba2
commit
5f8b02e970
@ -696,7 +696,8 @@ public async checkDebridAccounts(): Promise<DebridAccountStatus[]> {
|
|||||||
const SENSITIVE_KEYS: (keyof AppSettings)[] = [
|
const SENSITIVE_KEYS: (keyof AppSettings)[] = [
|
||||||
"token", "megaLogin", "megaPassword", "bestToken", "allDebridToken",
|
"token", "megaLogin", "megaPassword", "bestToken", "allDebridToken",
|
||||||
"ddownloadLogin", "ddownloadPassword", "oneFichierApiKey",
|
"ddownloadLogin", "ddownloadPassword", "oneFichierApiKey",
|
||||||
"debridLinkApiKeys", "linkSnappyLogin", "linkSnappyPassword"
|
"debridLinkApiKeys", "linkSnappyLogin", "linkSnappyPassword",
|
||||||
|
"notifyUrl"
|
||||||
];
|
];
|
||||||
for (const key of SENSITIVE_KEYS) {
|
for (const key of SENSITIVE_KEYS) {
|
||||||
const val = importedSettingsRecord[key];
|
const val = importedSettingsRecord[key];
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import { getDebridLinkApiKeyIds } from "../shared/debrid-link-keys";
|
import { getDebridLinkApiKeyIds } from "../shared/debrid-link-keys";
|
||||||
|
import { isNotifyUrlValid } from "./notify";
|
||||||
import type { AppSettings, HistoryEntry, UiSnapshot } from "../shared/types";
|
import type { AppSettings, HistoryEntry, UiSnapshot } from "../shared/types";
|
||||||
|
|
||||||
function hasText(value: unknown): boolean {
|
function hasText(value: unknown): boolean {
|
||||||
@ -131,6 +132,14 @@ export function buildRedactedSettingsPayload(settings: AppSettings): Record<stri
|
|||||||
updateRepo: settings.updateRepo,
|
updateRepo: settings.updateRepo,
|
||||||
autoUpdateCheck: settings.autoUpdateCheck
|
autoUpdateCheck: settings.autoUpdateCheck
|
||||||
},
|
},
|
||||||
|
notifications: {
|
||||||
|
notifyUrlConfigured: Boolean(String(settings.notifyUrl || "").trim()),
|
||||||
|
notifyUrlLooksValid: isNotifyUrlValid(settings.notifyUrl),
|
||||||
|
notifyMentionConfigured: Boolean(String(settings.notifyMention || "").trim()),
|
||||||
|
notifyOnPackageCompleted: settings.notifyOnPackageCompleted,
|
||||||
|
notifyOnPackageFailed: settings.notifyOnPackageFailed,
|
||||||
|
notifyOnRunFinished: settings.notifyOnRunFinished
|
||||||
|
},
|
||||||
statistics: {
|
statistics: {
|
||||||
totalDownloadedAllTime: settings.totalDownloadedAllTime,
|
totalDownloadedAllTime: settings.totalDownloadedAllTime,
|
||||||
totalCompletedFilesAllTime: settings.totalCompletedFilesAllTime,
|
totalCompletedFilesAllTime: settings.totalCompletedFilesAllTime,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user