* refactor: move model definitions and database-related methods to packages/data-schemas * ci: update tests due to new DB structure fix: disable mocking `librechat-data-provider` feat: Add schema exports to data-schemas package - Introduced a new schema module that exports various schemas including action, agent, and user schemas. - Updated index.ts to include the new schema exports for better modularity and organization. ci: fix appleStrategy tests fix: Agent.spec.js ci: refactor handleTools tests to use MongoMemoryServer for in-memory database fix: getLogStores imports ci: update banViolation tests to use MongoMemoryServer and improve session mocking test: refactor samlStrategy tests to improve mock configurations and user handling ci: fix crypto mock in handleText tests for improved accuracy ci: refactor spendTokens tests to improve model imports and setup ci: refactor Message model tests to use MongoMemoryServer and improve database interactions * refactor: streamline IMessage interface and move feedback properties to types/message.ts * refactor: use exported initializeRoles from `data-schemas`, remove api workspace version (this serves as an example of future migrations that still need to happen) * refactor: update model imports to use destructuring from `~/db/models` for consistency and clarity * refactor: remove unused mongoose imports from model files for cleaner code * refactor: remove unused mongoose imports from Share, Prompt, and Transaction model files for cleaner code * refactor: remove unused import in Transaction model for cleaner code * ci: update deploy workflow to reference new Docker Dev Branch Images Build and add new workflow for building Docker images on dev branch * chore: cleanup imports |
||
|---|---|---|
| .. | ||
| src | ||
| .gitignore | ||
| babel.config.cjs | ||
| jest.config.mjs | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
| rollup.config.js | ||
| tsconfig.json | ||
| tsconfig.spec.json | ||
@librechat/data-schemas
Mongoose schemas and models for LibreChat. This package provides a comprehensive collection of Mongoose schemas used across the LibreChat project, enabling robust data modeling and validation for various entities such as actions, agents, messages, users, and more.
Features
- Modular Schemas: Includes schemas for actions, agents, assistants, balance, banners, categories, conversation tags, conversations, files, keys, messages, plugin authentication, presets, projects, prompts, prompt groups, roles, sessions, shared links, tokens, tool calls, transactions, and users.
- TypeScript Support: Provides TypeScript definitions for type-safe development.
- Ready for Mongoose Integration: Easily integrate with Mongoose to create models and interact with your MongoDB database.
- Flexible & Extensible: Designed to support the evolving needs of LibreChat while being adaptable to other projects.
Installation
Install the package via npm or yarn:
npm install @librechat/data-schemas
Or with yarn:
yarn add @librechat/data-schemas
Usage
After installation, you can import and use the schemas in your project. For example, to create a Mongoose model for a user:
import mongoose from 'mongoose';
import { userSchema } from '@librechat/data-schemas';
const UserModel = mongoose.model('User', userSchema);
// Now you can use UserModel to create, read, update, and delete user documents.
You can also import other schemas as needed:
import { actionSchema, agentSchema, messageSchema } from '@librechat/data-schemas';
Each schema is designed to integrate seamlessly with Mongoose and provides indexes, timestamps, and validations tailored for LibreChat’s use cases.
Development
This package uses Rollup and TypeScript for building and bundling.
Available Scripts
-
Build:
Cleans thedistdirectory and builds the package.npm run build -
Build Watch:
Rebuilds automatically on file changes.npm run build:watch -
Test:
Runs tests with coverage in watch mode.npm run test -
Test (CI):
Runs tests with coverage for CI environments.npm run test:ci -
Verify:
Runs tests in CI mode to verify code integrity.npm run verify -
Clean:
Removes thedistdirectory.npm run clean
For those using Bun, equivalent scripts are available:
- Bun Clean:
bun run b:clean - Bun Build:
bun run b:build
Repository & Issues
The source code is maintained on GitHub.
- Repository: LibreChat Repository
- Issues & Bug Reports: LibreChat Issues
License
This project is licensed under the MIT License.
Contributing
Contributions to improve and expand the data schemas are welcome. If you have suggestions, improvements, or bug fixes, please open an issue or submit a pull request on the GitHub repository.
For more detailed documentation on each schema and model, please refer to the source code or visit the LibreChat website.