import { RouteOptions } from "fastify"; import { BASE_URL, DOMAIN } from "~/config.js"; import { Account } from "~/db/entities/account.js"; import LongmontDataSource from "~/db/index.js"; interface AuthNode { api_base: string; name_suffix: string; software: { name: string; version: string; source: string; }; features: string[]; registrations: "open" | "approval" | "closed"; usage: { users: number | null; }; } const route: RouteOptions = { method: "GET", url: "/.well-known/longmont/auth-node", handler: async (_, res) => { const userCount = await LongmontDataSource.getRepository(Account).count(); res.send({ api_base: BASE_URL, name_suffix: DOMAIN, software: { name: "authsrv", version: "0.1.0-dev", source: "https://github.com/longmont-chat", }, features: [], registrations: "open", usage: { users: userCount, }, } satisfies AuthNode); res.status(204); }, }; export default route;