From 2d47e6ed893e106b6b26d12d35da170a457bc8f2 Mon Sep 17 00:00:00 2001 From: zkldi Date: Mon, 30 Aug 2021 20:38:09 +0100 Subject: [PATCH] Define OPTIONS_ALWAYS_SUCCEEDS for development purposes --- server/src/lib/setup/config.ts | 2 ++ server/src/server/server.ts | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/server/src/lib/setup/config.ts b/server/src/lib/setup/config.ts index 1e1ccd85b..239960f3f 100644 --- a/server/src/lib/setup/config.ts +++ b/server/src/lib/setup/config.ts @@ -65,6 +65,7 @@ export interface TachiConfig { CLIENT_DEV_SERVER?: string | null; SERVER_TYPE_INFO: StaticConfig.ServerConfig; RATE_LIMIT: integer; + OPTIONS_ALWAYS_SUCCEEDS?: boolean; } const isValidOauth2 = p.optional({ @@ -93,6 +94,7 @@ const err = p(config, { CLIENT_DEV_SERVER: "*?string", TYPE: p.isIn("ktchi", "btchi", "omni"), RATE_LIMIT: p.optional(p.isPositiveInteger), + OPTIONS_ALWAYS_SUCCEEDS: "*boolean", }); if (err) { diff --git a/server/src/server/server.ts b/server/src/server/server.ts index 7024d5979..005adcd78 100644 --- a/server/src/server/server.ts +++ b/server/src/server/server.ts @@ -54,7 +54,9 @@ if (process.env.NODE_ENV !== "production" && ServerConfig.CLIENT_DEV_SERVER) { }); // hack to allow all OPTIONS requests. Remember that this setting should not be on in production! - // app.options("*", (req, res) => res.send()); + if (ServerConfig.OPTIONS_ALWAYS_SUCCEEDS) { + app.options("*", (req, res) => res.send()); + } } else { if (process.env.NODE_ENV !== "test") { logger.info("Enabling Helmet, as no CLIENT_DEV_SERVER was set, or we are in production.");