summary refs log tree commit diff
path: root/api/src
diff options
context:
space:
mode:
Diffstat (limited to 'api/src')
-rw-r--r--api/src/middlewares/Authentication.ts2
-rw-r--r--api/src/routes/-/healthz.ts17
-rw-r--r--api/src/routes/-/readyz.ts17
3 files changed, 36 insertions, 0 deletions
diff --git a/api/src/middlewares/Authentication.ts b/api/src/middlewares/Authentication.ts
index 5a082751..59a181e6 100644
--- a/api/src/middlewares/Authentication.ts
+++ b/api/src/middlewares/Authentication.ts
@@ -9,6 +9,8 @@ export const NO_AUTHORIZATION_ROUTES = [
 	"/ping",
 	"/gateway",
 	"/experiments",
+	"/-/readyz",
+	"/-/healthz",
 	/\/guilds\/\d+\/widget\.(json|png)/
 ];
 
diff --git a/api/src/routes/-/healthz.ts b/api/src/routes/-/healthz.ts
new file mode 100644
index 00000000..a42575f8
--- /dev/null
+++ b/api/src/routes/-/healthz.ts
@@ -0,0 +1,17 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+import { getConnection } from "typeorm";
+
+const router = Router();
+
+router.get("/", route({}), (req: Request, res: Response) => {
+	try {
+		// test that the database is alive & responding
+		getConnection();
+		return res.sendStatus(200);
+	} catch(e) {
+		res.sendStatus(503);
+	}
+});
+
+export default router;
diff --git a/api/src/routes/-/readyz.ts b/api/src/routes/-/readyz.ts
new file mode 100644
index 00000000..a42575f8
--- /dev/null
+++ b/api/src/routes/-/readyz.ts
@@ -0,0 +1,17 @@
+import { Router, Response, Request } from "express";
+import { route } from "@fosscord/api";
+import { getConnection } from "typeorm";
+
+const router = Router();
+
+router.get("/", route({}), (req: Request, res: Response) => {
+	try {
+		// test that the database is alive & responding
+		getConnection();
+		return res.sendStatus(200);
+	} catch(e) {
+		res.sendStatus(503);
+	}
+});
+
+export default router;