Separate campaigns from server deployment lifecycle tracking

This commit is contained in:
2026-09-17 16:42:37 -04:00
parent 6c6e63fa80
commit 6f83700161
20 changed files with 1434 additions and 1108 deletions
+42
View File
@@ -0,0 +1,42 @@
import { json, error } from '@sveltejs/kit';
import { db } from '$lib/server/db/index.js';
export async function GET({ params }: { params: { id: string } }) {
const dep = db()
.prepare('SELECT * FROM deployments WHERE id = ?')
.get(params.id) as Record<string, unknown> | undefined;
if (!dep) throw error(404, 'deployment not found');
const servers = db()
.prepare('SELECT * FROM deployment_servers WHERE deployment_id = ? ORDER BY server')
.all(params.id);
// Don't ship blobs in the summary — the client asks for a single file when
// it opens the diff viewer.
const files = db()
.prepare(
`SELECT id, server, verb, rel_path, sha256_before, sha256_after,
LENGTH(content_before) AS size_before,
LENGTH(content_after) AS size_after
FROM deployment_files
WHERE deployment_id = ?
ORDER BY server, rel_path`
)
.all(params.id);
const scripts = db()
.prepare(
`SELECT ds.script_id, s.name AS script_name, s.target_rel_path,
ds.script_version_id, sv.version AS script_version,
ds.prior_version_id, pv.version AS prior_version
FROM deployment_scripts ds
LEFT JOIN scripts s ON s.id = ds.script_id
LEFT JOIN script_versions sv ON sv.id = ds.script_version_id
LEFT JOIN script_versions pv ON pv.id = ds.prior_version_id
WHERE ds.deployment_id = ?
ORDER BY ds.script_id`
)
.all(params.id);
return json({ deployment: dep, servers, files, scripts });
}