From baa652f31493aad1490cf8e5d50bb04dc0006da1 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Sat, 2 Aug 2025 17:42:12 +0200 Subject: [PATCH] feat(api): add info endpoint (#3737) --- packages/api/src/root.ts | 2 ++ packages/api/src/router/info.ts | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 packages/api/src/router/info.ts diff --git a/packages/api/src/root.ts b/packages/api/src/root.ts index 7aec5f2ac..6efc10ca5 100644 --- a/packages/api/src/root.ts +++ b/packages/api/src/root.ts @@ -8,6 +8,7 @@ import { groupRouter } from "./router/group"; import { homeRouter } from "./router/home"; import { iconsRouter } from "./router/icons"; import { importRouter } from "./router/import/import-router"; +import { infoRouter } from "./router/info"; import { integrationRouter } from "./router/integration/integration-router"; import { inviteRouter } from "./router/invite"; import { kubernetesRouter } from "./router/kubernetes/router/kubernetes-router"; @@ -47,6 +48,7 @@ export const appRouter = createTRPCRouter({ media: mediaRouter, updateChecker: updateCheckerRouter, certificates: certificateRouter, + info: infoRouter, }); // export type definition of API diff --git a/packages/api/src/router/info.ts b/packages/api/src/router/info.ts new file mode 100644 index 000000000..cedf7a435 --- /dev/null +++ b/packages/api/src/router/info.ts @@ -0,0 +1,16 @@ +import z from "zod"; + +import packageJson from "../../../../package.json"; +import { createTRPCRouter, protectedProcedure } from "../trpc"; + +export const infoRouter = createTRPCRouter({ + getInfo: protectedProcedure + .input(z.void()) + .output(z.object({ version: z.string() })) + .meta({ openapi: { method: "GET", path: "/api/info", tags: ["info"] } }) + .query(() => { + return { + version: packageJson.version, + }; + }), +});