gadget/gadget-code/src/models/csrf-token.ts
Rob Colbert e0fd6ece54 fix: remove syncIndexes from models, mock DB in drone-session tests
- 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
2026-05-19 16:32:58 -04:00

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;