Create AccessKey.ts model

This commit is contained in:
Mathias Wagner
2024-07-20 12:31:43 +02:00
parent cfc85e2c22
commit 76fa7aa863

37
src/models/AccessKey.ts Normal file
View File

@ -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<IAccessKey>({
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<IAccessKey>("access_keys", AccessKeySchema);