fix encryption

This commit is contained in:
Nawaz Dhandala
2022-04-11 13:50:28 +01:00
parent 407ee62e36
commit 1a81499cfa
118 changed files with 1003 additions and 478 deletions

View File

@@ -1,34 +0,0 @@
import crypto from 'crypto';
import EncryptionKeys from './encryptionKeys';
const algorithm = EncryptionKeys.algorithm;
const key = EncryptionKeys.key;
export default {
encrypt: (plainText: $TSFixMe, iv: $TSFixMe) => {
const promise = new Promise((resolve, reject) => {
try {
const cipher = crypto.createCipheriv(algorithm, key, iv);
let encoded = cipher.update(plainText, 'utf8', 'hex');
encoded += cipher.final('hex');
resolve(encoded);
} catch (error) {
reject(error);
}
});
return promise;
},
decrypt: (encText: $TSFixMe, iv: $TSFixMe) => {
const promise = new Promise((resolve, reject) => {
try {
const decipher = crypto.createDecipheriv(algorithm, key, iv);
let decoded = decipher.update(encText, 'hex', 'utf8');
decoded += decipher.final('utf8');
resolve(decoded);
} catch (error) {
reject(error);
}
});
return promise;
},
};

View File

@@ -1,4 +0,0 @@
export default {
algorithm: 'aes-256-cbc',
key: process.env['ENCRYPTION_KEY'],
};

7
Common/Utils/UUID.ts Normal file
View File

@@ -0,0 +1,7 @@
import { v1 as uuidv1 } from 'uuid';
export default class UUID {
public static generate(): string {
return uuidv1();
}
}

View File

@@ -10,11 +10,13 @@
"license": "ISC",
"dependencies": {
"@types/nanoid-dictionary": "^4.2.0",
"@types/uuid": "^8.3.4",
"axios": "^0.26.1",
"moment": "^2.29.2",
"nanoid": "^3.3.2",
"nanoid-dictionary": "^4.3.0",
"slugify": "^1.6.5"
"slugify": "^1.6.5",
"uuid": "^8.3.2"
},
"devDependencies": {
"@types/node": "^17.0.22"
@@ -31,6 +33,11 @@
"integrity": "sha512-8FwbVoG4fy+ykY86XCAclKZDORttqE5/s7dyWZKLXTdv3vRy5HozBEinG5IqhvPXXzIZEcTVbuHlQEI6iuwcmw==",
"dev": true
},
"node_modules/@types/uuid": {
"version": "8.3.4",
"resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
"integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw=="
},
"node_modules/axios": {
"version": "0.26.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
@@ -89,6 +96,14 @@
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
"bin": {
"uuid": "dist/bin/uuid"
}
}
},
"dependencies": {
@@ -103,6 +118,11 @@
"integrity": "sha512-8FwbVoG4fy+ykY86XCAclKZDORttqE5/s7dyWZKLXTdv3vRy5HozBEinG5IqhvPXXzIZEcTVbuHlQEI6iuwcmw==",
"dev": true
},
"@types/uuid": {
"version": "8.3.4",
"resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz",
"integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw=="
},
"axios": {
"version": "0.26.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
@@ -135,6 +155,11 @@
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.5.tgz",
"integrity": "sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ=="
},
"uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
}
}
}

View File

@@ -14,10 +14,12 @@
},
"dependencies": {
"@types/nanoid-dictionary": "^4.2.0",
"@types/uuid": "^8.3.4",
"axios": "^0.26.1",
"moment": "^2.29.2",
"nanoid": "^3.3.2",
"nanoid-dictionary": "^4.3.0",
"slugify": "^1.6.5"
"slugify": "^1.6.5",
"uuid": "^8.3.2"
}
}

View File

@@ -1,5 +1,7 @@
import Protocol from 'Common/Types/API/Protocol';
// Export starts here.
export const DatabaseUrl: string =
process.env['MONGO_URL'] || 'mongodb://localhost:27017/oneuptimedb';
@@ -7,7 +9,7 @@ export const DatabaseName: string = process.env['DB_NAME'] || 'oneuptimedb';
export const IsMongoReplicaSet: boolean = !!process.env['IS_MONGO_REPLICA_SET'];
export const TokenSecret: string = process.env['TOKEN_SECRET'] || '';
export const EncryptionSecret: string = process.env['ENCRYPTIOJN_SECRET'] || '';
export const AirtableApiKey: string = process.env['AIRTABLE_API_KEY'] || '';

View File

@@ -33,3 +33,5 @@ export interface Model<T> extends mongoose.Model<T> {}
export interface RequiredFields extends Array<string> {}
export interface UniqueFields extends Array<string> {}
export interface EncryptedFields extends Array<string> {}

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -35,7 +39,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Alert', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -15,7 +19,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('AlertCharge', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -51,7 +55,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Announcement', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -52,7 +56,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('AnnouncementLog', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -14,7 +18,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('ApiStatus', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -43,7 +47,8 @@ schema.virtual('component', {
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('ApplicationLog', schema);

View File

@@ -1,20 +1,38 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
createdAt: { type: Date, default: Date.now },
applicationScannerKey: { type: String },
applicationScannerName: { type: String },
slug: { type: String },
version: { type: String },
lastAlive: { type: Date, default: Date.now },
deleted: { type: Boolean, default: false },
deletedAt: { type: Date },
applicationScannerImage: { type: String },
projectId: {
type: Schema.Types.ObjectId,
ref: 'Project',
alias: 'project',
index: true,
},
componentId: {
type: Schema.Types.ObjectId,
ref: 'Component',
alias: 'component',
index: true,
},
});
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('applicationScanner', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
@@ -36,7 +40,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('ApplicationSecurity', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
@@ -24,7 +28,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('ApplicationSecurityLog', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -14,7 +18,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('AuditLog', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -59,7 +63,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('AutomationSript', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -47,7 +51,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('AutomationSriptLog', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -20,7 +24,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('callLogs', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -42,7 +46,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('CallRouting', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -33,7 +37,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('CallRoutingLog', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -22,7 +26,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Certificate', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
@@ -19,7 +23,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('CertificateStore', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -35,7 +39,8 @@ schema.virtual('project', {
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Component', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -13,7 +17,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('containerScanner', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
@@ -37,7 +41,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('ContainerSecurity', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
@@ -24,7 +28,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('ContainerSecurityLog', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -15,7 +19,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('CustomField', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -32,7 +36,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('DefaultManager', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
@@ -20,7 +24,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('DockerCredential', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -26,7 +30,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('DomainVerificationToken', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -23,7 +27,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('EmailSent', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -32,7 +36,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('EmailTemplate', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -53,7 +57,8 @@ schema.virtual('errorTracker', {
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('ErrorEvent', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -43,7 +47,8 @@ schema.virtual('component', {
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('ErrorTracker', schema);

View File

@@ -1,4 +1,9 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
import TeamMemberSchema from './EscalationTeamMember';
const Schema = mongoose.Schema;
@@ -52,7 +57,8 @@ schema.virtual('teams.teamMembers.groups', {
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Escalation', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -21,7 +25,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default schema;

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -40,7 +44,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('ExternalStatusPage', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -18,7 +22,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Feedback', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
@@ -25,7 +29,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('GitCredential', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
@@ -11,7 +15,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('GlobalConfig', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
@@ -36,7 +40,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Groups', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -136,7 +140,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Incident', schema);

View File

@@ -1,4 +1,9 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -17,7 +22,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('IncidentCommunicationSla', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -40,7 +44,8 @@ schema.virtual('incident', {
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('IncidentMessage', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -27,7 +31,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('IncidentNoteTemplate', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -29,7 +33,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('IncidentPriority', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
@@ -33,7 +37,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('IncidentSMSAction', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -34,7 +38,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('IncidentSettings', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -32,7 +36,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('IncidentTimeline', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
@@ -70,7 +74,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('IncomingRequest', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
@@ -49,7 +53,8 @@ schema.index({ projectId: 1, teamId: -1 });
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Integrations', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -56,7 +60,8 @@ schema.virtual('errorTracker', {
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Issue', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -35,7 +39,8 @@ schema.virtual('issue', {
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('IssueMember', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -24,7 +28,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('IssueTimeline', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -26,7 +30,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Lead', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -21,7 +25,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('LighthouseLog', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -43,7 +47,8 @@ schema.virtual('applicationLog', {
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Log', schema);

View File

@@ -1,4 +1,9 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -21,7 +26,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('LoginIPLog', schema);

View File

@@ -1,4 +1,9 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
// a schema definition for a criterion event, i.e up, down, or degraded
@@ -201,7 +206,8 @@ schema.virtual('project', {
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Monitor', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -15,7 +19,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('MonitorCustomField', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -39,7 +43,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('MonitorLog', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -36,7 +40,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('MonitorLogByDay', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -35,7 +39,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('MonitorLogByHour', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -35,7 +39,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('MonitorLogByWeek', schema);

View File

@@ -1,4 +1,9 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -16,7 +21,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('MonitorSla', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -31,7 +35,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('MonitorStatus', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -22,7 +26,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Notification', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -38,7 +42,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('OnCallScheduleStatus', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -27,7 +31,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('PerformanceTracker', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
@@ -23,7 +27,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('PerformanceTrackerMetric', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -14,7 +18,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Probe', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -136,7 +140,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Project', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -34,7 +38,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('ResourceCategory', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -15,7 +19,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Ssl', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -53,7 +57,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Sso', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -42,7 +46,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Schedule', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -91,7 +95,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('ScheduledEvent', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -26,7 +30,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('ScheduledEventNote', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -17,7 +21,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('SiteManager', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -21,7 +25,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('SmsCount', schema);

View File

@@ -1,13 +1,17 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
projectId: { type: String, ref: 'Project', index: true }, //which project does this belong to.
accountSid: String,
authToken: String,
phoneNumber: String,
iv: Schema.Types.Buffer,
enabled: { type: Boolean, default: false },
iv: Schema.Types.Buffer,
createdAt: {
type: Date,
default: Date.now,
@@ -19,13 +23,28 @@ const schema = new Schema({
type: Date,
},
provider: {
type: String,
enum: ['twilio'],
required: true,
},
providerCredentials: {
twilio: {
accountSid: String,
authToken: String,
phoneNumber: String,
},
},
deletedById: { type: String, ref: 'User', index: true },
});
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Twilio', schema);
export default mongoose.model('SmsProvider', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -32,7 +36,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('SmsTemplate', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -29,7 +33,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Smtp', schema);

View File

@@ -1,4 +1,9 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
import { RoleArray } from 'Common/Types/Role';
const Schema = mongoose.Schema;
@@ -37,7 +42,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('SsoDefaultRole', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
@@ -147,5 +151,6 @@ export default new Schema({
});
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const requiredFields: RequiredFields = ['name', 'projectId'];

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -32,7 +36,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('StatusPageCategory', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -40,7 +44,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Subscriber', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema({
@@ -44,7 +48,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('SubscriberAlert', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const schema = new Schema(
@@ -105,7 +109,8 @@ const schema = new Schema(
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('User', schema);

View File

@@ -1,4 +1,9 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
const { EMAIL_VERIFY_TIME } = process.env;
@@ -24,7 +29,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('VerificationToken', schema);

View File

@@ -1,4 +1,8 @@
import mongoose, { RequiredFields, UniqueFields } from '../Infrastructure/ORM';
import mongoose, {
RequiredFields,
UniqueFields,
EncryptedFields,
} from '../Infrastructure/ORM';
const Schema = mongoose.Schema;
@@ -24,7 +28,8 @@ const schema = new Schema({
export const requiredFields: RequiredFields = schema.requiredPaths();
export const uniqueFields: UniqueFields = [];
export const encryptedFields: EncryptedFields = [];
export const sligifyField: string = '';
export const slugifyField: string = '';
export default mongoose.model('Zapier', schema);

View File

@@ -1,4 +1,8 @@
import Model, { requiredFields, uniqueFields } from '../Models/AlertCharge';
import Model, {
requiredFields,
uniqueFields,
slugifyField,
} from '../Models/AlertCharge';
import DatabaseService from './DatabaseService';
export default class AlertChargeService extends DatabaseService<typeof Model> {
@@ -49,7 +53,7 @@ export default class AlertChargeService extends DatabaseService<typeof Model> {
select: [],
},
isResourceByProject: false,
slugifyField: '',
slugifyField: slugifyField,
});
}
}

View File

@@ -1,4 +1,8 @@
import Model, { requiredFields, uniqueFields } from '../Models/ApiStatus';
import Model, {
requiredFields,
uniqueFields,
slugifyField,
} from '../Models/ApiStatus';
import DatabaseService from './DatabaseService';
export default class SslService extends DatabaseService<typeof Model> {
@@ -49,7 +53,7 @@ export default class SslService extends DatabaseService<typeof Model> {
select: [],
},
isResourceByProject: false,
slugifyField: '',
slugifyField: slugifyField,
});
}
}

View File

@@ -1,91 +1,85 @@
export default class Service {
async create(data) {
let applicationScannerKey;
if (data.applicationScannerKey) {
applicationScannerKey = data.applicationScannerKey;
} else {
applicationScannerKey = uuidv1();
}
import Model, {
requiredFields,
uniqueFields,
slugifyField,
} from '../Models/ApplicationScanner';
import DatabaseService from './DatabaseService';
import UUID from 'Common/Utils/UUID';
import CreateBy from '../Types/DB/CreateBy';
import Document from '../Infrastructure/ORM';
import OneUptimeDate from 'Common/Types/Date';
const storedApplicationScanner = await this.findOneBy({
query: { applicationScannerName: data.applicationScannerName },
select: 'applicationScannerName',
export default class SslService extends DatabaseService<typeof Model> {
constructor() {
super({
model: Model,
requiredFields: requiredFields,
uniqueFields: uniqueFields,
friendlyName: 'Application Scanner',
publicListProps: {
populate: [],
select: [],
},
adminListProps: {
populate: [],
select: [],
},
ownerListProps: {
populate: [],
select: [],
},
memberListProps: {
populate: [],
select: [],
},
viewerListProps: {
populate: [],
select: [],
},
publicItemProps: {
populate: [],
select: [],
},
adminItemProps: {
populate: [],
select: [],
},
memberItemProps: {
populate: [],
select: [],
},
viewerItemProps: {
populate: [],
select: [],
},
ownerItemProps: {
populate: [],
select: [],
},
isResourceByProject: true,
slugifyField: slugifyField,
});
if (
storedApplicationScanner &&
storedApplicationScanner.applicationScannerName
) {
const error = new Error('applicationScanner name already exists.');
}
error.code = 400;
throw error;
protected override async onBeforeCreate({
data,
}: CreateBy): Promise<CreateBy> {
let applicationScannerKey;
if (data.get('applicationScannerKey')) {
applicationScannerKey = data.get('applicationScannerKey');
} else {
const applicationScanner = new ApplicationScannerModel();
applicationScanner.applicationScannerKey = applicationScannerKey;
applicationScanner.applicationScannerName =
data.applicationScannerName;
applicationScanner.version = data.applicationScannerVersion;
const savedApplicationScanner = await applicationScanner.save();
return savedApplicationScanner;
}
}
async updateOneBy(query: Query, data) {
if (!query) {
query = {};
applicationScannerKey = UUID.generate();
}
query['deleted'] = false;
const applicationScanner =
await ApplicationScannerModel.findOneAndUpdate(
query,
{ $set: data },
{
new: true,
}
);
return applicationScanner;
data.set('applicationScannerKey', applicationScannerKey);
return Promise.resolve({ data } as CreateBy);
}
async findOneBy({ query, select, populate, sort }: FindOneBy) {
if (!query) {
query = {};
}
async updateStatus(applicationScannerId: string) {
const data = new Document<typeof Model>();
data.set('lastAlive', OneUptimeDate.getCurrentDate());
query['deleted'] = false;
const applicationScannerQuery = ApplicationScannerModel.findOne(query)
.sort(sort)
.lean();
applicationScannerQuery.select(select);
applicationScannerQuery.populate(populate);
const applicationScanner = await applicationScannerQuery;
return applicationScanner;
}
async updateApplicationScannerStatus(applicationScannerId: string) {
const applicationScanner =
await ApplicationScannerModel.findOneAndUpdate(
{ _id: applicationScannerId },
{ $set: { lastAlive: Date.now() } },
{ new: true }
);
return applicationScanner;
await this.updateOneBy({ query: { _id: applicationScannerId }, data });
}
}
/**
* verifies if a specific script condition satisfies
* @param {'and' | 'or'} conditionLogic
* @returns {{ valid : boolean, reason : string} | undefined} whether the condition is satisfied
*/
import ApplicationScannerModel from '../Models/applicationScanner';
import { v1 as uuidv1 } from 'uuid';
import FindOneBy from '../Types/DB/FindOneBy';
import Query from '../Types/DB/Query';

View File

@@ -1,4 +1,8 @@
import Model, { requiredFields, uniqueFields } from '../Models/CallRoutingLog';
import Model, {
requiredFields,
uniqueFields,
slugifyField,
} from '../Models/CallRoutingLog';
import DatabaseService from './DatabaseService';
export default class CallRoutingLogService extends DatabaseService<
@@ -51,7 +55,7 @@ export default class CallRoutingLogService extends DatabaseService<
select: [],
},
isResourceByProject: true,
slugifyField: '',
slugifyField: slugifyField,
});
}
}

View File

@@ -9,7 +9,11 @@ import { IS_SAAS_SERVICE } from '../config/server';
import ProjectService from './ProjectService';
import FileService from './FileService';
import Query from '../Types/DB/Query';
import Model, { requiredFields, uniqueFields } from '../Models/CallRouting';
import Model, {
requiredFields,
uniqueFields,
slugifyField,
} from '../Models/CallRouting';
import DatabaseService from './DatabaseService';
import CallRoutingLogService from './CallRoutingLogService';
import BadDataException from 'Common/Types/Exception/BadDataException';
@@ -61,7 +65,7 @@ export default class CallRoutingService extends DatabaseService<typeof Model> {
select: [],
},
isResourceByProject: true,
slugifyField: '',
slugifyField: slugifyField,
});
}

View File

@@ -1,6 +1,7 @@
import Model, {
requiredFields,
uniqueFields,
slugifyField,
} from '../Models/CertificateStore';
import DatabaseService from './DatabaseService';
@@ -54,7 +55,7 @@ export default class CertificateStoreService extends DatabaseService<
select: [],
},
isResourceByProject: false,
slugifyField: '',
slugifyField: slugifyField,
});
}
}

View File

@@ -1,7 +1,7 @@
import Slug from 'Common/utils/Slug';
import Populate from '../Types/DB/Populate';
import Select from '../Types/DB/Select';
import { Model } from '../Infrastructure/ORM';
import { EncryptedFields, Model } from '../Infrastructure/ORM';
import { RequiredFields, UniqueFields, Document } from '../Infrastructure/ORM';
import FindOneBy from '../Types/DB/FindOneBy';
import UpdateOneBy from '../Types/DB/UpdateOneBy';
@@ -18,6 +18,7 @@ import BadDataException from 'Common/Types/Exception/BadDataException';
import OneUptimeDate from 'Common/Types/Date';
import Exception from 'Common/Types/Exception/Exception';
import SearchResult from '../Types/DB/SearchResult';
import Encryption from '../Utils/Encryption';
export interface ListProps {
populate: Populate;
@@ -54,6 +55,7 @@ class DatabaseService<ModelType> {
public publicListProps: ListProps;
public requiredFields: RequiredFields;
public uniqueFields: UniqueFields;
public encryptedFields: EncryptedFields;
public viewerItemProps: ItemProps;
public viewerListProps: ListProps;
public isResourceByProject: boolean;
@@ -76,6 +78,7 @@ class DatabaseService<ModelType> {
viewerItemProps,
isResourceByProject = true,
slugifyField = '',
encryptedFields,
}: {
uniqueFields: UniqueFields;
adminItemProps: ItemProps;
@@ -93,6 +96,7 @@ class DatabaseService<ModelType> {
ownerListProps: ListProps;
isResourceByProject: boolean;
slugifyField: string;
encryptedFields: EncryptedFields;
}) {
this.model = model;
this.friendlyName = friendlyName;
@@ -110,6 +114,7 @@ class DatabaseService<ModelType> {
this.slugifyField = slugifyField;
this.ownerItemProps = ownerItemProps;
this.ownerListProps = ownerListProps;
this.encryptedFields = encryptedFields;
}
protected isValid(data: Document): boolean {
@@ -134,6 +139,27 @@ class DatabaseService<ModelType> {
return Promise.resolve({ data } as CreateBy);
}
protected encrypt(data: Document): Document {
const iv: Buffer = Encryption.getIV();
data.set('iv', iv);
for (const key of this.encryptedFields) {
data.set(key, Encryption.encrypt(data.get(key), iv));
}
return data;
}
protected decrypt(data: Document): Document {
const iv: Buffer = data.get('iv');
for (const key of this.encryptedFields) {
data.set(key, Encryption.decrypt(data.get(key), iv));
}
return data;
}
protected async onBeforeDelete(deleteBy: DeleteBy): Promise<DeleteBy> {
// a place holder method used for overriding.
return Promise.resolve(deleteBy);
@@ -179,9 +205,11 @@ class DatabaseService<ModelType> {
return Promise.resolve(error);
}
protected async onFindSuccess() {
protected async onFindSuccess(
items: Array<Document>
): Promise<Array<Document>> {
// a place holder method used for overriding.
return Promise.resolve();
return Promise.resolve(items);
}
protected async onFindError(error: Exception): Promise<Exception> {
@@ -206,13 +234,19 @@ class DatabaseService<ModelType> {
}
public async create(createBy: CreateBy): Promise<Document> {
const { data } = await this.onBeforeCreate({ data: createBy.data });
const _createdBy = await this.onBeforeCreate({ data: createBy.data });
let data = _createdBy.data;
this.checkRequiredFields(data);
if (!this.isValid(data)) {
throw new BadDataException('Data is not valid');
}
// Encrypt data
data = this.encrypt(data);
try {
const item = new this.model();
@@ -530,9 +564,17 @@ class DatabaseService<ModelType> {
dbQuery.select(onBeforeFind.select);
dbQuery.populate(onBeforeFind.populate);
const items = await dbQuery;
await this.onFindSuccess();
return items as Array<Document>;
const items = (await dbQuery) as Array<Document>;
const decryptedItems = [];
for (const item of items) {
decryptedItems.push(this.decrypt(item));
}
await this.onFindSuccess(decryptedItems);
return decryptedItems;
} catch (error) {
await this.onFindError(error as Exception);
throw this.getException(error as Exception);

Some files were not shown because too many files have changed in this diff Show More