This commit is contained in:
jarek committed 2026-07-25 08:41:01 +02:00
1 parent 9f09d60a83
commit 64b6dcd744
177 files changed
+21182 -1042

No files matched your search

+13 -1
View File
@@ -2,7 +2,7 @@ import { json } from '@sveltejs/kit';
import { join } from 'path';
import { existsSync, rmSync, renameSync } from 'fs';
import type { RequestHandler } from './$types';
import { getEnvironment, updateEnvironment, deleteEnvironment, getEnvironmentPublicIps, setEnvironmentPublicIp, deleteEnvironmentPublicIp, deleteEnvUpdateCheckSettings, deleteImagePruneSettings, getGitStacksForEnvironmentOnly, deleteGitStack } from '$lib/server/db';
import { getEnvironment, updateEnvironment, deleteEnvironment, getEnvironmentPublicIps, setEnvironmentPublicIp, deleteEnvironmentPublicIp, deleteEnvUpdateCheckSettings, deleteImagePruneSettings, getGitStacksForEnvironmentOnly, deleteGitStack, getBackupConfigs } from '$lib/server/db';
import { clearDockerClientCache } from '$lib/server/docker';
import { deleteGitStackFiles, getGitReposDir } from '$lib/server/git';
import { getStacksDir } from '$lib/server/stacks';
@@ -253,6 +253,18 @@ export const DELETE: RequestHandler = async (event) => {
await deleteImagePruneSettings(id);
unregisterSchedule(id, 'image_prune');
// Unregister backup config schedules for this environment (audit #10).
// The config rows themselves cascade-delete with the environment, but the
// in-memory croner jobs would otherwise stay registered as orphans.
try {
const envBackupConfigs = await getBackupConfigs({ environmentId: id });
for (const config of envBackupConfigs) {
unregisterSchedule(config.id, 'backup');
}
} catch (err) {
console.error(`Failed to unregister backup schedules for environment "${env.name}":`, err);
}
// Clean up stack directory for this environment
// Safety: only delete subdirectory named after the env, never the parent
try {