From eadf9acdc3c2e17f61040b7d0c35036f0dca2605 Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Tue, 17 Oct 2023 18:44:59 +0200 Subject: [PATCH] [backend] Generate VAPID keys during meta bootstrap --- packages/backend/src/misc/fetch-meta.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/backend/src/misc/fetch-meta.ts b/packages/backend/src/misc/fetch-meta.ts index a94f73f6f..4fb69f923 100644 --- a/packages/backend/src/misc/fetch-meta.ts +++ b/packages/backend/src/misc/fetch-meta.ts @@ -1,5 +1,6 @@ import { db } from "@/db/postgre.js"; import { Meta } from "@/models/entities/meta.js"; +import push from 'web-push'; let cache: Meta; @@ -46,12 +47,16 @@ export async function fetchMeta(noCache = false): Promise { cache = meta; return meta; } else { + const { publicKey, privateKey } = push.generateVAPIDKeys(); + // If fetchMeta is called at the same time when meta is empty, this part may be called at the same time, so use fail-safe upsert. const saved = await transactionalEntityManager .upsert( Meta, { id: "x", + swPublicKey: publicKey, + swPrivateKey: privateKey, }, ["id"], )