From 76fa7aa86398f39d17bdc32ddf009bea7059f334 Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Sat, 20 Jul 2024 12:31:43 +0200 Subject: [PATCH] Create AccessKey.ts model --- src/models/AccessKey.ts | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/models/AccessKey.ts diff --git a/src/models/AccessKey.ts b/src/models/AccessKey.ts new file mode 100644 index 0000000..528b953 --- /dev/null +++ b/src/models/AccessKey.ts @@ -0,0 +1,37 @@ +import { model, ObjectId, Schema } from "mongoose"; +import crypto from "crypto"; + +export enum IKeyRole { + VIEW, + MANAGE, + ADMIN +} + +export interface IAccessKey { + projectId: ObjectId, + name: string, + role: IKeyRole, + token: string +} + +const AccessKeySchema = new Schema({ + projectId: { + type: String, + required: true, + }, + name: { + type: String, + default: "Default key", + }, + role: { + type: Number, + default: IKeyRole.VIEW, + enum: IKeyRole, + }, + token: { + type: String, + default: crypto.randomBytes(64).toString("hex"), + }, +}); + +export const AccessKey = model("access_keys", AccessKeySchema); \ No newline at end of file