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"], )