diff --git a/packages/data-schemas/src/methods/file.spec.ts b/packages/data-schemas/src/methods/file.spec.ts index 015c04c615..66fb44c761 100644 --- a/packages/data-schemas/src/methods/file.spec.ts +++ b/packages/data-schemas/src/methods/file.spec.ts @@ -1,7 +1,7 @@ import mongoose from 'mongoose'; import { v4 as uuidv4 } from 'uuid'; import { MongoMemoryServer } from 'mongodb-memory-server'; -import { EToolResources, FileContext } from 'librechat-data-provider'; +import { EToolResources, FileContext, FileSources } from 'librechat-data-provider'; import { _resetStrictCache } from '~/models/plugins/tenantIsolation'; import { runAsSystem } from '~/config/tenantContext'; import { createFileMethods } from './file'; @@ -63,6 +63,9 @@ describe('File Methods', () => { expect(file).not.toBeNull(); expect(file?.file_id).toBe(fileId); expect(file?.filename).toBe('test.txt'); + expect(file?.object).toBe('file'); + expect(file?.usage).toBe(0); + expect(file?.source).toBe(FileSources.local); expect(file?.expiresAt).toBeDefined(); }); diff --git a/packages/data-schemas/src/methods/file.ts b/packages/data-schemas/src/methods/file.ts index b952796104..99563c0054 100644 --- a/packages/data-schemas/src/methods/file.ts +++ b/packages/data-schemas/src/methods/file.ts @@ -1,4 +1,4 @@ -import { EToolResources, FileContext } from 'librechat-data-provider'; +import { EToolResources, FileContext, FileSources } from 'librechat-data-provider'; import type { FilterQuery, SortOrder, Model } from 'mongoose'; import type { IMongoFile } from '~/types/file'; import { tenantSafeBulkWrite } from '~/utils/tenantBulkWrite'; @@ -368,6 +368,11 @@ export function createFileMethods(mongoose: typeof import('mongoose')): { const definedFields = Object.fromEntries( Object.entries(fields).filter(([, value]) => value !== undefined), ); + const insertDefaults = { + object: { $ifNull: ['$object', 'file'] }, + usage: { $ifNull: ['$usage', 0] }, + source: { $ifNull: ['$source', FileSources.local] }, + }; let expiryUpdate = {}; if (expiredAt instanceof Date) { expiryUpdate = { @@ -379,7 +384,7 @@ export function createFileMethods(mongoose: typeof import('mongoose')): { return File.findOneAndUpdate( { file_id: data.file_id }, - [{ $set: { ...definedFields, ...expiryUpdate } }], + [{ $set: { ...insertDefaults, ...definedFields, ...expiryUpdate } }], { new: true, upsert: true,