From 327a716b12ff4d8e2738edf0cac8ee49661ad0b9 Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Sat, 13 Apr 2024 21:51:00 -1000 Subject: [PATCH] Add new ServerHandler package which handles requests --- Dockerfile.FE | 45 ++++ build.ts | 3 + bun.lockb | Bin 564332 -> 2584 bytes docker-compose.yml | 24 +- packages/request-parser/index.ts | 8 +- packages/server-handler/index.ts | 178 +++++++++++++ packages/server-handler/package.json | 6 + packages/server-handler/tests.test.ts | 363 ++++++++++++++++++++++++++ routes.ts | 5 +- server.ts | 94 +------ 10 files changed, 616 insertions(+), 110 deletions(-) create mode 100644 Dockerfile.FE create mode 100644 packages/server-handler/index.ts create mode 100644 packages/server-handler/package.json create mode 100644 packages/server-handler/tests.test.ts diff --git a/Dockerfile.FE b/Dockerfile.FE new file mode 100644 index 00000000..c1c89bb2 --- /dev/null +++ b/Dockerfile.FE @@ -0,0 +1,45 @@ +# Bun doesn't run well on Musl but this seems to work +FROM imbios/bun-node:1.1.3-current-alpine as base + +# Install dependencies into temp directory +# This will cache them and speed up future builds +FROM base AS install + +RUN mkdir -p /temp +COPY . /temp +WORKDIR /temp +RUN bun install --frozen-lockfile + +FROM base as build + +# Copy the project +RUN mkdir -p /temp +COPY . /temp +# Copy dependencies +COPY --from=install /temp/node_modules /temp/node_modules +# Build the project +WORKDIR /temp +RUN bun run prod-build +WORKDIR /temp/dist + +# Copy production dependencies and source code into final image +FROM oven/bun:1.1.3-alpine + +# Create app directory +RUN mkdir -p /app +COPY --from=build /temp/dist /app/dist +COPY entrypoint.sh /app + +LABEL org.opencontainers.image.authors "Gaspard Wierzbinski (https://cpluspatch.dev)" +LABEL org.opencontainers.image.source "https://github.com/lysand-org/lysand" +LABEL org.opencontainers.image.vendor "Lysand Org" +LABEL org.opencontainers.image.licenses "AGPL-3.0" +LABEL org.opencontainers.image.title "Lysand Server" +LABEL org.opencontainers.image.description "Lysand Server docker image" + +# CD to app +WORKDIR /app +ENV NODE_ENV=production +ENTRYPOINT [ "/bin/sh", "/app/entrypoint.sh" ] +# Run migrations and start the server +CMD [ "start" ] diff --git a/build.ts b/build.ts index 2389ce10..28c94ecc 100644 --- a/build.ts +++ b/build.ts @@ -2,6 +2,9 @@ import { $ } from "bun"; import { rawRoutes } from "~routes"; +const feOnly = process.argv.includes("--frontend"); +const serverOnly = process.argv.includes("--server"); + console.log("Building frontend..."); await $`bun fe:build`; diff --git a/bun.lockb b/bun.lockb index 2905d7f8dd319922c8581e589896af60e75d104b..b4658ef19a1a661e6b106562d3f2cebe6e349c67 100755 GIT binary patch delta 834 zcmaE}LurP{1U;><`fB&J5u(FyvGgC+4Ly;zUN+CdQsKcbIfVekNbHgId7B9ZHvplbzd&*P5-#Q%P&vGqE<4to3~>o`?dDS z`kqLQlZ-t3&fMBL;d|^+PTkD!K(iPb{_+0<(o77~i_)3=reB%Dc+Im29$ifi&YgU zHr?(qtAw+Wo(ae#22fzZ0*47~2S^kae6ZjWV2m@?Gqlh%U=Uyh$uofH>CyMt?71DF z0u5|HH$7rgwFBzaElbSFOi3)s%+J$JEh@?{Do9MuPE1cN)=$pK)GbIXDo#Zb%Fj#7 zOxMj#%mb<@ntt&Sn-q6WK0;u_BQ{ZMxB=3C59N>VF+Ri(ZqnMHV04RZh04G9+6SoI683U8^^xv~MY;A$j xz#t5a3UweY4y5gXv>=f72hyM@N(R!RK)M1*ivj6AAT0x=R{?49>4xkqlL0A$@WB88 literal 564332 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 diff --git a/docker-compose.yml b/docker-compose.yml index 1898fede..252440ed 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,15 +1,16 @@ ---- services: lysand: - image: ghcr.io/lysand-org/lysand:main + build: . # Automatic builds are currently broken, please build from source + # image: ghcr.io/lysand-org/lysand:latest volumes: - - ./logs:/app/logs - - ./config:/app/config - - ./uploads:/app/uploads + - ./logs:/app/dist/logs + - ./config:/app/dist/config + - ./uploads:/app/dist/uploads restart: unless-stopped container_name: lysand networks: - lysand-net + db: image: ghcr.io/lysand-org/postgres:main container_name: lysand-db @@ -17,32 +18,33 @@ services: environment: POSTGRES_DB: lysand POSTGRES_USER: lysand - POSTGRES_PASSWORD: lysand + POSTGRES_PASSWORD: _______________ networks: - lysand-net volumes: - ./db-data:/var/lib/postgresql/data + redis: - image: redis:latest + image: redis:alpine container_name: lysand-redis volumes: - ./redis-data:/data restart: unless-stopped networks: - lysand-net + meilisearch: stdin_open: true environment: - - MEILI_MASTER_KEY=add_your_key_here + - MEILI_MASTER_KEY=__________________ tty: true networks: - lysand-net volumes: - ./meili-data:/meili_data - image: getmeili/meilisearch:v1.5 + image: getmeili/meilisearch:v1.7 container_name: lysand-meilisearch restart: unless-stopped networks: - lysand-net: - internal: true + lysand-net: \ No newline at end of file diff --git a/packages/request-parser/index.ts b/packages/request-parser/index.ts index 7e42699d..630ca9be 100644 --- a/packages/request-parser/index.ts +++ b/packages/request-parser/index.ts @@ -136,12 +136,8 @@ export class RequestParser { * @private * @throws Error if body is invalid */ - private async parseJson(): Promise> { - try { - return (await this.request.json()) as T; - } catch { - return {}; - } + private async parseJson(): Promise { + return (await this.request.json()) as T; } /** diff --git a/packages/server-handler/index.ts b/packages/server-handler/index.ts new file mode 100644 index 00000000..582ab420 --- /dev/null +++ b/packages/server-handler/index.ts @@ -0,0 +1,178 @@ +import { errorResponse, jsonResponse, response } from "@response"; +import type { MatchedRoute } from "bun"; +import { type Config, config } from "config-manager"; +import { LogLevel, type LogManager, type MultiLogManager } from "log-manager"; +import { RequestParser } from "request-parser"; +import { type ZodType, z } from "zod"; +import { fromZodError } from "zod-validation-error"; +import { + type AuthData, + type UserWithRelations, + getFromRequest, +} from "~database/entities/User"; + +type MaybePromise = T | Promise; +type HttpVerb = "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "OPTIONS"; + +export type RouteHandler< + RouteMeta extends APIRouteMetadata, + ZodSchema extends ZodType, +> = ( + req: Request, + matchedRoute: MatchedRoute, + extraData: { + auth: { + // If the route doesn't require authentication, set the type to UserWithRelations | null + // Otherwise set to UserWithRelations + user: RouteMeta["auth"]["required"] extends true + ? UserWithRelations + : UserWithRelations | null; + token: RouteMeta["auth"]["required"] extends true + ? string + : string | null; + }; + parsedRequest: z.infer; + configManager: { + getConfig: () => Promise; + }; + }, +) => MaybePromise | MaybePromise; + +export interface APIRouteMetadata { + allowedMethods: HttpVerb[]; + ratelimits: { + max: number; + duration: number; + }; + route: string; + auth: { + required: boolean; + requiredOnMethods?: HttpVerb[]; + oauthPermissions?: string[]; + }; +} + +export interface APIRouteExports { + meta: APIRouteMetadata; + schema: z.AnyZodObject; + default: RouteHandler; +} + +const exampleZodSchema = z.object({ + allowedMethods: z.array(z.string()), + ratelimits: z.object({ + max: z.number(), + duration: z.number(), + }), + route: z.string(), + auth: z.object({ + required: z.boolean(), + }), +}); + +export const processRoute = async ( + matchedRoute: MatchedRoute, + request: Request, + logger: LogManager | MultiLogManager, +): Promise => { + if (request.method === "OPTIONS") { + return response(); + } + + const route: APIRouteExports | null = await import( + matchedRoute.filePath + ).catch(() => null); + + if (!route) { + return errorResponse("Route not found", 404); + } + + // Check if the request method is allowed + if (!route.meta.allowedMethods.includes(request.method as HttpVerb)) { + return errorResponse("Method not allowed", 405); + } + + let auth: AuthData | null = null; + + if ( + route.meta.auth.required || + route.meta.auth.requiredOnMethods?.includes(request.method as HttpVerb) + ) { + auth = await getFromRequest(request); + + if (!auth.user) { + return errorResponse( + "Unauthorized: access to this method requires an authenticated user", + 401, + ); + } + } + + // Check if Content-Type header is missing in POST, PUT and PATCH requests + if (["POST", "PUT", "PATCH"].includes(request.method)) { + if (!request.headers.has("Content-Type")) { + return errorResponse( + `Content-Type header is missing but required on method ${request.method}`, + 400, + ); + } + } + + const parsedRequest = await new RequestParser(request) + .toObject() + .catch(async (err) => { + await logger.logError( + LogLevel.ERROR, + "Server.RouteRequestParser", + err as Error, + ); + return null; + }); + + if (!parsedRequest) { + return errorResponse( + "The request could not be parsed, it may be malformed", + 400, + ); + } + + const parsingResult = route.schema?.safeParse(parsedRequest); + + if (parsingResult && !parsingResult.success) { + // Return a 422 error with the first error message + return errorResponse(fromZodError(parsingResult.error).toString(), 422); + } + + try { + const output = await route.default(request, matchedRoute, { + auth: { + token: auth?.token ?? null, + user: auth?.user ?? null, + }, + parsedRequest: parsingResult + ? (parsingResult.data as z.infer) + : parsedRequest, + configManager: { + getConfig: async () => config as Config, + }, + }); + + // If the output is a normal JS object and not a Response, convert it to a jsonResponse + if (!(output instanceof Response)) { + return jsonResponse(output); + } + + return output; + } catch (err) { + await logger.logError( + LogLevel.ERROR, + "Server.RouteHandler", + err as Error, + ); + + return errorResponse( + `A server error occured: ${(err as Error).message}`, + 500, + ); + } +}; diff --git a/packages/server-handler/package.json b/packages/server-handler/package.json new file mode 100644 index 00000000..32dcb22c --- /dev/null +++ b/packages/server-handler/package.json @@ -0,0 +1,6 @@ +{ + "name": "server-handler", + "version": "0.0.0", + "main": "index.ts", + "dependencies": { "zod": "^3.22.4", "zod-validation-error": "^3.1.0" } +} diff --git a/packages/server-handler/tests.test.ts b/packages/server-handler/tests.test.ts new file mode 100644 index 00000000..6a312b8b --- /dev/null +++ b/packages/server-handler/tests.test.ts @@ -0,0 +1,363 @@ +import { afterAll, describe, expect, it, mock } from "bun:test"; +import type { MatchedRoute } from "bun"; +import { LogManager } from "log-manager"; +import { z } from "zod"; +import { getTestUsers } from "~tests/utils"; +import { type APIRouteExports, processRoute } from "."; + +describe("Route Processor", () => { + it("should return a Response", async () => { + mock.module( + "./route", + () => + ({ + default: async () => new Response(), + meta: { + allowedMethods: ["GET"], + ratelimits: { + max: 100, + duration: 60, + }, + route: "/route", + auth: { + required: false, + }, + }, + schema: z.object({}), + }) as APIRouteExports, + ); + + const output = await processRoute( + { + filePath: "./route", + } as MatchedRoute, + new Request("https://test.com/route", { + method: "GET", + }), + new LogManager(Bun.file("/dev/null")), + ); + + expect(output).toBeInstanceOf(Response); + }); + + it("should return a 404 when the route does not exist", async () => { + const output = await processRoute( + { + filePath: "./nonexistent-route", + } as MatchedRoute, + new Request("https://test.com/nonexistent-route"), + new LogManager(Bun.file("/dev/null")), + ); + + expect(output.status).toBe(404); + }); + + it("should return a 405 when the request method is not allowed", async () => { + mock.module( + "./route", + () => + ({ + default: async () => new Response(), + meta: { + allowedMethods: ["POST"], + ratelimits: { + max: 100, + duration: 60, + }, + route: "/route", + auth: { + required: false, + }, + }, + schema: z.object({}), + }) as APIRouteExports, + ); + + const output = await processRoute( + { + filePath: "./route", + } as MatchedRoute, + new Request("https://test.com/route", { + method: "GET", + }), + new LogManager(Bun.file("/dev/null")), + ); + + expect(output.status).toBe(405); + }); + + it("should return a 401 when the route requires authentication but no user is authenticated", async () => { + mock.module( + "./route", + () => + ({ + default: async () => new Response(), + meta: { + allowedMethods: ["POST"], + ratelimits: { + max: 100, + duration: 60, + }, + route: "/route", + auth: { + required: true, + }, + }, + schema: z.object({}), + }) as APIRouteExports, + ); + + const output = await processRoute( + { + filePath: "./route", + } as MatchedRoute, + new Request("https://test.com/route", { + method: "POST", + }), + new LogManager(Bun.file("/dev/null")), + ); + + expect(output.status).toBe(401); + }); + + it("should return a 400 when the Content-Type header is missing in POST, PUT and PATCH requests", async () => { + mock.module( + "./route", + () => + ({ + default: async () => new Response(), + meta: { + allowedMethods: ["POST", "PUT", "PATCH"], + ratelimits: { + max: 100, + duration: 60, + }, + route: "/route", + auth: { + required: false, + }, + }, + schema: z.object({}), + }) as APIRouteExports, + ); + + const output = await processRoute( + { + filePath: "./route", + } as MatchedRoute, + new Request("https://test.com/route", { + method: "POST", + }), + new LogManager(Bun.file("/dev/null")), + ); + + expect(output.status).toBe(400); + + const output2 = await processRoute( + { + filePath: "./route", + } as MatchedRoute, + new Request("https://test.com/route", { + method: "PUT", + }), + new LogManager(Bun.file("/dev/null")), + ); + + expect(output2.status).toBe(400); + + const output3 = await processRoute( + { + filePath: "./route", + } as MatchedRoute, + new Request("https://test.com/route", { + method: "PATCH", + }), + new LogManager(Bun.file("/dev/null")), + ); + + expect(output3.status).toBe(400); + }); + + it("should return a 400 when the request could not be parsed", async () => { + mock.module( + "./route", + () => + ({ + default: async () => new Response(), + meta: { + allowedMethods: ["POST"], + ratelimits: { + max: 100, + duration: 60, + }, + route: "/route", + auth: { + required: false, + }, + }, + schema: z.object({}), + }) as APIRouteExports, + ); + + const output = await processRoute( + { + filePath: "./route", + } as MatchedRoute, + new Request("https://test.com/route", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: "invalid-json", + }), + new LogManager(Bun.file("/dev/null")), + ); + + expect(output.status).toBe(400); + }); + + it("should return a 422 when the request does not match the schema", async () => { + mock.module( + "./route", + () => + ({ + default: async () => new Response(), + meta: { + allowedMethods: ["POST"], + ratelimits: { + max: 100, + duration: 60, + }, + route: "/route", + auth: { + required: false, + }, + }, + schema: z.object({ + foo: z.string(), + }), + }) as APIRouteExports, + ); + + const output = await processRoute( + { + filePath: "./route", + } as MatchedRoute, + new Request("https://test.com/route", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ bar: "baz" }), + }), + new LogManager(Bun.file("/dev/null")), + ); + + expect(output.status).toBe(422); + }); + + it("should convert any JS objects returned by the route to a Response", async () => { + mock.module( + "./route", + () => + ({ + default: async () => ({ status: 200 }), + meta: { + allowedMethods: ["GET"], + ratelimits: { + max: 100, + duration: 60, + }, + route: "/route", + auth: { + required: false, + }, + }, + schema: z.object({}), + }) as APIRouteExports, + ); + + const output = await processRoute( + { + filePath: "./route", + } as MatchedRoute, + new Request("https://test.com/route", { + method: "GET", + }), + new LogManager(Bun.file("/dev/null")), + ); + + expect(output.status).toBe(200); + }); + + it("should handle route errors", async () => { + mock.module( + "./route", + () => + ({ + default: async () => { + throw new Error("Route error"); + }, + meta: { + allowedMethods: ["GET"], + ratelimits: { + max: 100, + duration: 60, + }, + route: "/route", + auth: { + required: false, + }, + }, + schema: z.object({}), + }) as APIRouteExports, + ); + + const output = await processRoute( + { + filePath: "./route", + } as MatchedRoute, + new Request("https://test.com/route", { + method: "GET", + }), + new LogManager(Bun.file("/dev/null")), + ); + + expect(output.status).toBe(500); + }); + + it("should return the route output when everything is valid", async () => { + mock.module( + "./route", + () => + ({ + default: async () => new Response("OK"), + meta: { + allowedMethods: ["GET"], + ratelimits: { + max: 100, + duration: 60, + }, + route: "/route", + auth: { + required: false, + }, + }, + schema: z.object({}), + }) as APIRouteExports, + ); + + const output = await processRoute( + { + filePath: "./route", + } as MatchedRoute, + new Request("https://test.com/route", { + method: "GET", + }), + new LogManager(Bun.file("/dev/null")), + ); + + expect(output.status).toBe(200); + expect(await output.text()).toBe("OK"); + }); +}); diff --git a/routes.ts b/routes.ts index 098ca672..5e5655cb 100644 --- a/routes.ts +++ b/routes.ts @@ -1,3 +1,4 @@ +import type { APIRouteExports } from "~packages/server-handler"; import type { RouteHandler } from "./server/api/routes.type"; import type { APIRouteMeta } from "./types/api"; @@ -107,10 +108,6 @@ export const matchRoute = async >(url: string) => { if (!route) return { file: null, matchedRoute: null }; return { - file: (await import(rawRoutes[route.name])) as { - default: RouteHandler; - meta: APIRouteMeta; - }, matchedRoute: route, }; }; diff --git a/server.ts b/server.ts index 9f5fe3fd..68360cff 100644 --- a/server.ts +++ b/server.ts @@ -1,15 +1,9 @@ -import { - clientResponse, - errorResponse, - jsonResponse, - response, -} from "@response"; +import { errorResponse, response } from "@response"; import type { Config } from "config-manager"; import { matches } from "ip-matching"; import type { LogManager, MultiLogManager } from "log-manager"; import { LogLevel } from "log-manager"; -import { RequestParser } from "request-parser"; -import { getFromRequest } from "~database/entities/User"; +import { processRoute } from "~packages/server-handler"; import { matchRoute } from "~routes"; export const createServer = ( @@ -97,91 +91,13 @@ export const createServer = ( ); } - if (req.method === "OPTIONS") { - return jsonResponse({}); - } - // If route is .well-known, remove dot because the filesystem router can't handle dots for some reason - const { file: filePromise, matchedRoute } = await matchRoute( + const { matchedRoute } = await matchRoute( req.url.replace(".well-known", "well-known"), ); - const file = filePromise; - - if (matchedRoute && file === undefined) { - await logger.log( - LogLevel.ERROR, - "Server", - `Route file ${matchedRoute.filePath} not found or not registered in the routes file`, - ); - - return errorResponse("Route not found", 500); - } - - if (matchedRoute && matchedRoute.name !== "/[...404]" && file) { - const meta = file.meta; - - // Check for allowed requests - // @ts-expect-error Stupid error - if (!meta.allowedMethods.includes(req.method)) { - return errorResponse( - `Method not allowed: allowed methods are: ${meta.allowedMethods.join( - ", ", - )}`, - 405, - ); - } - - // TODO: Check for ratelimits - const auth = await getFromRequest(req); - - // Check for authentication if required - if ( - (meta.auth.required || - (meta.auth.requiredOnMethods ?? []).includes( - // @ts-expect-error Stupid error - req.method, - )) && - !auth.user - ) { - return errorResponse("Unauthorized", 401); - } - - // Check is Content-Type header is missing in relevant requests - if (["POST", "PUT", "PATCH"].includes(req.method)) { - if (!req.headers.has("Content-Type")) { - return errorResponse( - `Content-Type header is missing but required on method ${req.method}`, - 400, - ); - } - } - - let parsedRequest = {}; - - try { - parsedRequest = await new RequestParser(req).toObject(); - } catch (e) { - await logger.logError( - LogLevel.ERROR, - "Server.RouteRequestParser", - e as Error, - ); - return errorResponse("Bad request", 400); - } - - return await file.default(req.clone(), matchedRoute, { - auth, - parsedRequest, - // To avoid having to rewrite each route - configManager: { - getConfig: () => Promise.resolve(config), - }, - }); - } - - if (new URL(req.url).pathname.startsWith("/api")) { - return errorResponse("Route not found", 404); + if (matchedRoute && matchedRoute.name !== "/[...404]") { + return await processRoute(matchedRoute, req, logger); } const base_url_with_http = config.http.base_url.replace(