mirror of
https://github.com/jakejarvis/sofa.git
synced 2026-08-29 02:45:39 -04:00
feat(admin): add cache purge controls to settings
Add `purgeMetadataCache` and `purgeImageCache` procedures that let admins free disk space on demand. Metadata purge removes un-enriched stub titles not in any user's library plus orphaned person records; image purge deletes all cached TMDB files from disk. Expose both as POST endpoints under `/admin/cache/` via the oRPC contract, implement the core logic in a new `@sofa/core/cache` module, and surface them in a new "Danger Zone" section on the Settings page with individual confirmation dialogs and a combined "Purge all" action.
This commit is contained in:
@@ -8,6 +8,10 @@ import {
|
||||
listBackups,
|
||||
restoreFromBackup,
|
||||
} from "@sofa/core/backup";
|
||||
import {
|
||||
purgeImageCache as purgeImagesFn,
|
||||
purgeMetadataCache as purgeMetadataFn,
|
||||
} from "@sofa/core/cache";
|
||||
import { getSetting, setSetting } from "@sofa/core/settings";
|
||||
import { isTelemetryEnabled } from "@sofa/core/telemetry";
|
||||
import {
|
||||
@@ -159,3 +163,13 @@ export const triggerJob = os.admin.triggerJob
|
||||
}
|
||||
return { ok: true as const };
|
||||
});
|
||||
|
||||
// ─── Purge ────────────────────────────────────────────────────
|
||||
|
||||
export const purgeMetadataCache = os.admin.purgeMetadataCache
|
||||
.use(admin)
|
||||
.handler(() => purgeMetadataFn());
|
||||
|
||||
export const purgeImageCache = os.admin.purgeImageCache
|
||||
.use(admin)
|
||||
.handler(async () => purgeImagesFn());
|
||||
|
||||
@@ -81,6 +81,8 @@ export const implementedRouter = {
|
||||
telemetry: admin.telemetry,
|
||||
toggleTelemetry: admin.toggleTelemetry,
|
||||
triggerJob: admin.triggerJob,
|
||||
purgeMetadataCache: admin.purgeMetadataCache,
|
||||
purgeImageCache: admin.purgeImageCache,
|
||||
},
|
||||
account: {
|
||||
updateName: account.updateName,
|
||||
|
||||
Reference in New Issue
Block a user