Skip to content

Commit

Permalink
chore(misc) : 3404 - monstache integration POC (#4377)
Browse files Browse the repository at this point in the history
Co-authored-by: Anselme <[email protected]>
  • Loading branch information
pitiscarf and achorein authored Oct 9, 2024
1 parent 3ff4c0b commit aff2b3e
Show file tree
Hide file tree
Showing 54 changed files with 5,328 additions and 77 deletions.
1 change: 1 addition & 0 deletions api/config/default.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,4 +68,5 @@ module.exports = {
ENABLE_2FA: false,
LOG_LEVEL: "info", // error, warn, info, http, debug
DO_MIGRATION: true,
ENABLE_MONGOOSE_ELASTIC: false,
};
1 change: 1 addition & 0 deletions api/config/production.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,6 @@ module.exports = {
TASK_QUEUE_PREFIX: "production",
MAIL_TRANSPORT: "BREVO",
ENABLE_2FA: true,
ENABLE_MONGOOSE_ELASTIC: true,
...secrets,
};
5 changes: 4 additions & 1 deletion api/src/models/PlanDeTransport/ligneBus.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { Schema, InferSchemaType } from "mongoose";
import mongooseElastic from "@selego/mongoose-elastic";
import patchHistory from "mongoose-patch-history";
Expand Down Expand Up @@ -46,7 +47,9 @@ schema.plugin(patchHistory, {
excludes: ["/updatedAt"],
});

schema.plugin(mongooseElastic(esClient), MODELNAME);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient), MODELNAME);
}

schema.index({ cohort: 1 });
schema.index({ cohort: 1, busId: 1 }, { unique: true });
Expand Down
5 changes: 4 additions & 1 deletion api/src/models/PlanDeTransport/ligneToPoint.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { Schema, InferSchemaType } from "mongoose";
import patchHistory from "mongoose-patch-history";
import mongooseElastic from "@selego/mongoose-elastic";
Expand Down Expand Up @@ -35,7 +36,9 @@ schema.plugin(patchHistory, {
excludes: ["/updatedAt"],
});

schema.plugin(mongooseElastic(esClient), MODELNAME);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient), MODELNAME);
}

type LigneToPointType = InterfaceExtended<InferSchemaType<typeof schema>>;
export type LigneToPointDocument<T = {}> = DocumentExtended<LigneToPointType & T>;
Expand Down
7 changes: 5 additions & 2 deletions api/src/models/PlanDeTransport/modificationBus.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import mongoose, { InferSchemaType, Schema } from "mongoose";
import config from "config";
import mongoose, { Schema, InferSchemaType } from "mongoose";
import patchHistory from "mongoose-patch-history";
import mongooseElastic from "@selego/mongoose-elastic";

Expand Down Expand Up @@ -40,7 +41,9 @@ schema.plugin(patchHistory, {
excludes: ["/updatedAt"],
});

schema.plugin(mongooseElastic(esClient), MODELNAME);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient), MODELNAME);
}

type ModificationBusType = InterfaceExtended<InferSchemaType<typeof schema>>;
export type ModificationBusDocument<T = {}> = DocumentExtended<ModificationBusType & T>;
Expand Down
7 changes: 5 additions & 2 deletions api/src/models/PlanDeTransport/planTransport.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import mongoose, { InferSchemaType, Schema } from "mongoose";
import config from "config";
import mongoose, { Schema, InferSchemaType } from "mongoose";
import patchHistory from "mongoose-patch-history";
import mongooseElastic from "@selego/mongoose-elastic";

Expand Down Expand Up @@ -49,7 +50,9 @@ schema.plugin(patchHistory, {
excludes: ["/updatedAt"],
});

schema.plugin(mongooseElastic(esClient), MODELNAME);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient), MODELNAME);
}

schema.index({ ligneDeBusId: 1 });

Expand Down
5 changes: 4 additions & 1 deletion api/src/models/PlanDeTransport/pointDeRassemblement.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { InferSchemaType, Schema } from "mongoose";
import patchHistory from "mongoose-patch-history";
import mongooseElastic from "@selego/mongoose-elastic";
Expand Down Expand Up @@ -35,7 +36,9 @@ schema.plugin(patchHistory, {
excludes: ["/updatedAt"],
});

schema.plugin(mongooseElastic(esClient), MODELNAME);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient), MODELNAME);
}

type PointDeRassemblementType = InterfaceExtended<InferSchemaType<typeof schema>>;
export type PointDeRassemblementDocument<T = {}> = DocumentExtended<PointDeRassemblementType & T>;
Expand Down
5 changes: 4 additions & 1 deletion api/src/models/PlanDeTransport/tableDeRepartition.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { Schema, InferSchemaType } from "mongoose";
import mongooseElastic from "@selego/mongoose-elastic";
import esClient from "../../es";
Expand Down Expand Up @@ -34,7 +35,9 @@ schema.plugin(patchHistory, {
excludes: ["/updatedAt"],
});

schema.plugin(mongooseElastic(esClient), MODELNAME);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient), MODELNAME);
}

type TableDeRepartitionType = InterfaceExtended<InferSchemaType<typeof schema>>;
export type TableDeRepartitionDocument<T = {}> = DocumentExtended<TableDeRepartitionType & T>;
Expand Down
5 changes: 4 additions & 1 deletion api/src/models/alerteMessage.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { Schema } from "mongoose";
import mongooseElastic from "@selego/mongoose-elastic";
import esClient from "../es";
Expand Down Expand Up @@ -35,7 +36,9 @@ schema.plugin(patchHistory, {
excludes: ["/updatedAt"],
});

schema.plugin(mongooseElastic(esClient), MODELNAME);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient), MODELNAME);
}

export type AlerteMessageDocument<T = {}> = DocumentExtended<AlerteMessageType & T>;
type SchemaExtended = AlerteMessageDocument & UserExtension;
Expand Down
6 changes: 5 additions & 1 deletion api/src/models/application.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { Schema, InferSchemaType } from "mongoose";
import patchHistory from "mongoose-patch-history";
import mongooseElastic from "@selego/mongoose-elastic";
Expand Down Expand Up @@ -45,7 +46,10 @@ schema.plugin(patchHistory, {
},
excludes: ["/updatedAt"],
});
schema.plugin(mongooseElastic(esClient), MODELNAME);

if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient), MODELNAME);
}

type ApplicationType = InterfaceExtended<InferSchemaType<typeof schema>>;
export type ApplicationDocument<T = {}> = DocumentExtended<ApplicationType & T>;
Expand Down
5 changes: 4 additions & 1 deletion api/src/models/cle/classe.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose from "mongoose";
import patchHistory from "mongoose-patch-history";

Expand Down Expand Up @@ -93,7 +94,9 @@ schema.plugin(patchHistory, {
excludes: ["/updatedAt"],
});

schema.plugin(mongooseElastic(esClient), MODELNAME);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient), MODELNAME);
}

export type ClasseDocument<T = {}> = DocumentExtended<
ClasseType & {
Expand Down
5 changes: 4 additions & 1 deletion api/src/models/cle/etablissement.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { Schema } from "mongoose";
import patchHistory from "mongoose-patch-history";

Expand Down Expand Up @@ -51,7 +52,9 @@ schema.plugin(patchHistory, {
excludes: ["/updatedAt"],
});

schema.plugin(mongooseElastic(esClient), MODELNAME);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient), MODELNAME);
}

export type EtablissementDocument<T = {}> = DocumentExtended<EtablissementType & T>;
type SchemaExtended = EtablissementDocument & UserExtension;
Expand Down
5 changes: 4 additions & 1 deletion api/src/models/cohesionCenter.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { Schema } from "mongoose";
import patchHistory from "mongoose-patch-history";
import mongooseElastic from "@selego/mongoose-elastic";
Expand Down Expand Up @@ -40,7 +41,9 @@ schema.plugin(patchHistory, {
excludes: ["/updatedAt"],
});

schema.plugin(mongooseElastic(esClient), MODELNAME);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient), MODELNAME);
}

export type CohesionCenterDocument<T = {}> = DocumentExtended<CohesionCenterType & T>;
type SchemaExtended = CohesionCenterDocument & UserExtension;
Expand Down
5 changes: 4 additions & 1 deletion api/src/models/contract.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { Schema, InferSchemaType } from "mongoose";
import patchHistory from "mongoose-patch-history";
import mongooseElastic from "@selego/mongoose-elastic";
Expand Down Expand Up @@ -40,7 +41,9 @@ schema.plugin(patchHistory, {
excludes: ["/parent1Token", "/projectManagerToken", "/structureManagerToken", "/parent2Token", "/youngContractToken", "/updatedAt"],
});

schema.plugin(mongooseElastic(esClient), MODELNAME);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient), MODELNAME);
}

type ContractType = InterfaceExtended<InferSchemaType<typeof schema>>;
export type ContractDocument<T = {}> = DocumentExtended<ContractType & T>;
Expand Down
5 changes: 4 additions & 1 deletion api/src/models/departmentService.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { Schema, InferSchemaType } from "mongoose";
import patchHistory from "mongoose-patch-history";

Expand Down Expand Up @@ -41,7 +42,9 @@ schema.plugin(patchHistory, {
excludes: ["/updatedAt"],
});

schema.plugin(mongooseElastic(esClient), MODELNAME);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient), MODELNAME);
}

type DepartmentServiceType = InterfaceExtended<InferSchemaType<typeof schema>>;
export type DepartmentServiceDocument<T = {}> = DocumentExtended<DepartmentServiceType & T>;
Expand Down
5 changes: 4 additions & 1 deletion api/src/models/email.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { Schema, InferSchemaType } from "mongoose";
import mongooseElastic from "@selego/mongoose-elastic";
import esClient from "../es";
Expand All @@ -11,7 +12,9 @@ const MODELNAME = "email";

const schema = new Schema(EmailSchema);

schema.plugin(mongooseElastic(esClient), MODELNAME);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient), MODELNAME);
}

type EmailType = InterfaceExtended<InferSchemaType<typeof schema>>;
export type EmailDocument<T = {}> = DocumentExtended<EmailType & T>;
Expand Down
5 changes: 4 additions & 1 deletion api/src/models/inscriptionGoal.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { Schema, InferSchemaType } from "mongoose";
import patchHistory from "mongoose-patch-history";
import mongooseElastic from "@selego/mongoose-elastic";
Expand Down Expand Up @@ -35,7 +36,9 @@ schema.plugin(patchHistory, {
excludes: ["/updatedAt"],
});

schema.plugin(mongooseElastic(esClient), MODELNAME);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient), MODELNAME);
}

type InscriptionGoalType = InterfaceExtended<InferSchemaType<typeof schema>>;
export type InscriptionGoalDocument<T = {}> = DocumentExtended<InscriptionGoalType & T>;
Expand Down
6 changes: 5 additions & 1 deletion api/src/models/mission.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { InferSchemaType } from "mongoose";
import mongooseElastic from "@selego/mongoose-elastic";
import patchHistory from "mongoose-patch-history";
Expand Down Expand Up @@ -40,7 +41,10 @@ schema.plugin(patchHistory, {
},
excludes: ["/updatedAt"],
});
schema.plugin(mongooseElastic(esClient, { selectiveIndexing: true, ignore: ["jvaRawData"] }), MODELNAME);

if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient, { selectiveIndexing: true, ignore: ["jvaRawData"] }), MODELNAME);
}

type MissionType = InterfaceExtended<InferSchemaType<typeof schema>>;
export type MissionDocument<T = {}> = DocumentExtended<MissionType & T>;
Expand Down
5 changes: 4 additions & 1 deletion api/src/models/missionAPI.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { Schema, InferSchemaType } from "mongoose";
import patchHistory from "mongoose-patch-history";
import mongooseElastic from "@selego/mongoose-elastic";
Expand Down Expand Up @@ -35,7 +36,9 @@ schema.plugin(patchHistory, {
excludes: ["/updatedAt"],
});

schema.plugin(mongooseElastic(esClient), MODELNAME);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient), MODELNAME);
}

type MissionAPIType = InterfaceExtended<InferSchemaType<typeof schema>>;
export type MissionAPIDocument<T = {}> = DocumentExtended<MissionAPIType & T>;
Expand Down
47 changes: 25 additions & 22 deletions api/src/models/referent.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { Schema } from "mongoose";
import patchHistory from "mongoose-patch-history";
import bcrypt from "bcryptjs";
Expand Down Expand Up @@ -88,28 +89,30 @@ schema.plugin(patchHistory, {
],
});

schema.plugin(
mongooseElastic(esClient, {
selectiveIndexing: true,
ignore: [
"password",
"lastLogoutAt",
"passwordChangedAt",
"nextLoginAttemptIn",
"forgotPasswordResetToken",
"forgotPasswordResetExpires",
"invitationToken",
"invitationExpires",
"loginAttempts",
"attempts2FA",
"updatedAt",
"lastActivityAt",
"token2FA",
"token2FAExpires",
],
}),
MODELNAME,
);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(
mongooseElastic(esClient, {
selectiveIndexing: true,
ignore: [
"password",
"lastLogoutAt",
"passwordChangedAt",
"nextLoginAttemptIn",
"forgotPasswordResetToken",
"forgotPasswordResetExpires",
"invitationToken",
"invitationExpires",
"loginAttempts",
"attempts2FA",
"updatedAt",
"lastActivityAt",
"token2FA",
"token2FAExpires",
],
}),
MODELNAME,
);
}

schema.set("toObject", { virtuals: true });
schema.set("toJSON", { virtuals: true });
Expand Down
6 changes: 4 additions & 2 deletions api/src/models/schoolRAMSES.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { Schema, InferSchemaType } from "mongoose";
import patchHistory from "mongoose-patch-history";
import mongooseElastic from "@selego/mongoose-elastic";
Expand Down Expand Up @@ -34,8 +35,9 @@ schema.plugin(patchHistory, {
},
excludes: ["/updatedAt"],
});

schema.plugin(mongooseElastic(esClient, { selectiveIndexing: true, ignore: ["raw_data"] }), MODELNAME);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient, { selectiveIndexing: true, ignore: ["raw_data"] }), MODELNAME);
}

type SchoolRAMSESType = InterfaceExtended<InferSchemaType<typeof schema>>;
export type SchoolRAMSESDocument<T = {}> = DocumentExtended<SchoolRAMSESType & T>;
Expand Down
5 changes: 4 additions & 1 deletion api/src/models/sessionPhase1.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { Schema } from "mongoose";
import mongooseElastic from "@selego/mongoose-elastic";
import patchHistory from "mongoose-patch-history";
Expand Down Expand Up @@ -58,7 +59,9 @@ schema.plugin(patchHistory, {
excludes: ["/updatedAt"],
});

schema.plugin(mongooseElastic(esClient, { selectiveIndexing: true, ignore: ["team"] }), MODELNAME);
if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient, { selectiveIndexing: true, ignore: ["team"] }), MODELNAME);
}

schema.index({ cohesionCenterId: 1 });

Expand Down
6 changes: 5 additions & 1 deletion api/src/models/structure.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import config from "config";
import mongoose, { Schema, InferSchemaType } from "mongoose";
import patchHistory from "mongoose-patch-history";
import mongooseElastic from "@selego/mongoose-elastic";
Expand Down Expand Up @@ -40,7 +41,10 @@ schema.plugin(patchHistory, {
},
excludes: ["/updatedAt"],
});
schema.plugin(mongooseElastic(esClient, { selectiveIndexing: true, ignore: ["jvaRawData"] }), MODELNAME);

if (config.get("ENABLE_MONGOOSE_ELASTIC")) {
schema.plugin(mongooseElastic(esClient, { selectiveIndexing: true, ignore: ["jvaRawData"] }), MODELNAME);
}

type StructureType = InterfaceExtended<InferSchemaType<typeof schema>>;
export type StructureDocument<T = {}> = DocumentExtended<StructureType & T>;
Expand Down
Loading

0 comments on commit aff2b3e

Please sign in to comment.