diff --git a/src/models/MetaData.ts b/src/models/MetaData.ts index 21d9b1d..6999c0a 100644 --- a/src/models/MetaData.ts +++ b/src/models/MetaData.ts @@ -1,8 +1,15 @@ import { model, Schema } from "mongoose"; +import { fieldEncryption } from "mongoose-field-encryption"; + +export enum ILicenseMetaType { + TEXT = "TEXT", + NUMBER = "NUMBER", + BOOLEAN = "BOOLEAN" +} export interface IMetaData { projectId: string, - type: string, + type: ILicenseMetaType, name: string, description?: string, defaultValue?: string, @@ -22,7 +29,10 @@ const MetaDataSchema = new Schema({ type: String, required: true }, - description: String, + description: { + type: String, + required: true + }, defaultValue: String, public: { type: Boolean, @@ -30,4 +40,10 @@ const MetaDataSchema = new Schema({ } }); -export const MetaData = model("MetaData", MetaDataSchema); \ No newline at end of file +MetaDataSchema.plugin(fieldEncryption, { + fields: ["projectId", "type", "name", "description", "defaultValue", "public"], + secret: process.env.ENC_KEY, + saltGenerator: () => process.env.SIG_KEY, +}); + +export const MetaData = model("meta", MetaDataSchema); \ No newline at end of file