Files
backspace/packages/server/src/routes/instance.ts
T
Jannis Braun 22440b5a24 feat: implement Phase 1 server-side federation groundwork
Add multi-instance support foundation: shared federation types
(ReplicatedInstance, InstanceInfoResponse, VerifyPasswordRequest),
database schema changes (home_instance, replicated_instances on users,
instance_name on settings), public instance info endpoint, auth
registration with homeInstance and username@domain collision fallback,
password verification endpoint, and replicatedInstances sync on user
profile. Extract duplicated sanitizeUser into shared utility across
8 server files.
2026-03-02 23:15:43 +01:00

25 lines
820 B
TypeScript

import type { FastifyInstance } from 'fastify';
import { eq } from 'drizzle-orm';
import { getDb, schema } from '../db/index.js';
import { config } from '../config.js';
import type { InstanceInfoResponse } from '@backspace/shared';
const BACKSPACE_VERSION = '1.0.0';
export async function instanceRoutes(app: FastifyInstance): Promise<void> {
app.get('/api/instance/info', async (_request, reply) => {
const db = getDb();
const settings = db.select().from(schema.instanceSettings).where(eq(schema.instanceSettings.id, 1)).get();
const instanceName = settings?.instanceName ?? 'Backspace';
const response: InstanceInfoResponse = {
name: instanceName,
version: BACKSPACE_VERSION,
registrationOpen: config.registrationOpen,
};
return reply.code(200).send(response);
});
}