- Removed auto-invoked syncIndexes() blocks from all 11 model files (api-client, api-client-log, csrf-token, drone-monitor, drone-registration, email-log, email-verification, ide-session, user, web-token, web-visit) — no longer needed - Fixed drone-session.test.ts by mocking ChatSession.updateOne(), VectorStoreService.ingestTurn(), and MessageQueue to prevent real DB connections during tests - Removed unused mongoose Types import from drone-session test - All 129 tests now pass across all packages
44 lines
996 B
TypeScript
44 lines
996 B
TypeScript
// src/models/csrf-token.ts
|
|
// Copyright (C) 2026 Robert Colbert <rob.colbert@openplatform.us>
|
|
// All Rights Reserved
|
|
|
|
import { Schema, model } from "mongoose";
|
|
|
|
import { GadgetId, IUser } from "@gadget/api";
|
|
import { nanoid } from "nanoid";
|
|
|
|
export interface ICsrfToken {
|
|
_id: GadgetId;
|
|
created: Date;
|
|
expires: Date;
|
|
claimed?: Date;
|
|
token: string;
|
|
user?: IUser | GadgetId;
|
|
ip: string;
|
|
|
|
/*
|
|
* not saved
|
|
*/
|
|
name?: string;
|
|
}
|
|
|
|
const CsrfTokenSchema = new Schema<ICsrfToken>({
|
|
_id: { type: String, default: () => nanoid() },
|
|
created: {
|
|
type: Date,
|
|
required: true,
|
|
default: Date.now,
|
|
index: -1,
|
|
expires: "72h",
|
|
},
|
|
expires: { type: Date, required: true, default: Date.now, index: -1 },
|
|
claimed: { type: Date },
|
|
token: { type: String, required: true, index: 1 },
|
|
user: { type: String, ref: "User" },
|
|
ip: { type: String, required: true },
|
|
});
|
|
|
|
export const CsrfToken = model<ICsrfToken>("CsrfToken", CsrfTokenSchema);
|
|
export default CsrfToken;
|
|
|