19 lines
907 B
TypeScript
19 lines
907 B
TypeScript
import { json } from '@sveltejs/kit';
|
|
import type { RequestHandler } from './$types';
|
|
import { authorize } from '$lib/server/authorize';
|
|
import { requireBackups } from '$lib/server/backups/route-guards';
|
|
import { getInstanceId } from '$lib/server/backups/identity';
|
|
|
|
// This install's stable instance id. The snapshots list used to ride it on an
|
|
// X-Dockhand-Instance response header, but that list is now job-polled (a proxy would
|
|
// abort the sync `restic snapshots` at ~15s) and headers don't survive polling. The
|
|
// client fetches the id here once and matches it against each snapshot's
|
|
// dockhand:instance= tag to tell own snapshots from foreign orphans (#1351).
|
|
export const GET: RequestHandler = async ({ cookies }) => {
|
|
const auth = await authorize(cookies);
|
|
const denied = await requireBackups(auth, 'view');
|
|
if (denied) return denied;
|
|
|
|
return json({ instanceId: await getInstanceId() });
|
|
};
|