diff --git a/packages/core/src/util.ts b/packages/core/src/util.ts index 82b1a14d..6de49718 100644 --- a/packages/core/src/util.ts +++ b/packages/core/src/util.ts @@ -21,6 +21,18 @@ export async function uuid(): Promise { ].join("-"); } +/** + * Generates a random UUID v4 + * NOT CRYPTOGRAPHICALLY SAFE! + */ +export function unsafeUUID(): string { + return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) { + var r = (Math.random() * 16) | 0, + v = c == "x" ? r : (r & 0x3) | 0x8; + return v.toString(16); + }); +} + /** Caracters, by category */ export const chars = { numbers: "0123456789", diff --git a/packages/server/src/logging/postgres.ts b/packages/server/src/logging/postgres.ts index 62e51264..1d907818 100644 --- a/packages/server/src/logging/postgres.ts +++ b/packages/server/src/logging/postgres.ts @@ -1,4 +1,5 @@ import { Logger, LogEvent } from "@padloc/core/src/logging"; +import { unsafeUUID } from "@padloc/core/src/util"; import { PostgresStorage } from "../storage/postgres"; export class PostgresLogger implements Logger { @@ -6,6 +7,7 @@ export class PostgresLogger implements Logger { log(type: string, data?: any) { const event = new LogEvent(type, data); + event.id = unsafeUUID(); (async () => { try { this._storage.save(event);