Add maintenance cleanup for revoked and orphaned configs
CI / Backend (build + test) (push) Failing after 58s
CI / Frontend (lint + typecheck + build) (push) Successful in 31s

Two new maintenance actions remove VpnConfig records (with their traffic
samples) from the database: all revoked configs, and configs whose inbound
or node no longer exists. 3x-ui is not touched; both write an AuditLog entry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mrleo1nidandClaude Opus 5.5 committed 2026-10-17 01:04:46 +03:00
1 parent 1bc86dc426
commit 2c20fb0427
12 files changed
+367 -1

No files matched your search

+22
View File
@@ -586,6 +586,17 @@ const resources = {
confirm: 'Удалить все отключённые приложения? Действие необратимо.',
deleted: 'Удалено приложений: {{count}}.',
},
configs: {
title: 'Конфиги',
description:
'Удалить из базы отозванные конфиги или конфиги, чей инбаунд/нода уже удалены (в списке — «? · ?»). Вместе с конфигами удаляется история трафика. Действие необратимо.',
revokedAction: 'Удалить все отозванные конфиги',
revokedConfirm: 'Удалить все отозванные конфиги? Действие необратимо.',
orphanedAction: 'Удалить все конфиги без ноды',
orphanedConfirm:
'Удалить все конфиги, чей инбаунд или нода удалены, в любом статусе? Действие необратимо.',
deleted: 'Удалено конфигов: {{count}}.',
},
factoryReset: {
dangerZone: 'Опасная зона',
title: 'Полный сброс панели',
@@ -1205,6 +1216,17 @@ const resources = {
confirm: 'Delete all disabled apps? This cannot be undone.',
deleted: 'Deleted apps: {{count}}.',
},
configs: {
title: 'Configs',
description:
'Delete revoked configs, or configs whose inbound/node no longer exists (shown as "? · ?"), from the database along with their traffic history. This cannot be undone.',
revokedAction: 'Delete all revoked configs',
revokedConfirm: 'Delete all revoked configs? This cannot be undone.',
orphanedAction: 'Delete all configs without a node',
orphanedConfirm:
'Delete all configs whose inbound or node was deleted, in any status? This cannot be undone.',
deleted: 'Deleted configs: {{count}}.',
},
factoryReset: {
dangerZone: 'Danger zone',
title: 'Full panel reset',