SPB Git

spb/autoscholar

Public
986 B · 31 lines typescript
1import { listWorkers, overviewCounts } from "@autoscholar/core";2import { papers, securityEvents } from "@autoscholar/db";3import { desc, sql } from "drizzle-orm";4import { handler, json } from "@/lib/server/api";5import { db } from "@/lib/server/db";6import { requireAdmin } from "@/lib/server/session";78export const runtime = "nodejs";910export const GET = handler(async (req) => {11  await requireAdmin(req);12  const d = db();13  const counts = await overviewCounts(d);14  const workers = await listWorkers(d);15  const [pubs] = await d.select({ n: sql<number>`count(*)::int` }).from(papers);16  const alerts = await d.select().from(securityEvents).orderBy(desc(securityEvents.createdAt)).limit(10);17  return json({18    runs: counts,19    workers: workers.map((w) => ({20      id: w.id,21      name: w.name,22      status: w.status,23      running: w.running,24      capacity: w.capacity,25      lastHeartbeatAt: w.lastHeartbeatAt,26    })),27    publications: pubs?.n ?? 0,28    alerts,29  });30});31
Files · main
Menu

Theme