LibreChat/api/server/services/start/migration.js

49 lines
1.3 KiB
JavaScript
Raw Normal View History

const mongoose = require('mongoose');
const { logger } = require('@librechat/data-schemas');
const {
logAgentMigrationWarning,
logPromptMigrationWarning,
checkAgentPermissionsMigration,
checkPromptPermissionsMigration,
} = require('@librechat/api');
const { getProjectByName } = require('~/models/Project');
const { Agent, PromptGroup } = require('~/db/models');
const { findRoleByIdentifier } = require('~/models');
/**
* Check if permissions migrations are needed for shared resources
* This runs at the end to ensure all systems are initialized
*/
async function checkMigrations() {
try {
const agentMigrationResult = await checkAgentPermissionsMigration({
mongoose,
methods: {
findRoleByIdentifier,
getProjectByName,
},
AgentModel: Agent,
});
logAgentMigrationWarning(agentMigrationResult);
} catch (error) {
logger.error('Failed to check agent permissions migration:', error);
}
try {
const promptMigrationResult = await checkPromptPermissionsMigration({
mongoose,
methods: {
findRoleByIdentifier,
getProjectByName,
},
PromptGroupModel: PromptGroup,
});
logPromptMigrationWarning(promptMigrationResult);
} catch (error) {
logger.error('Failed to check prompt permissions migration:', error);
}
}
module.exports = {
checkMigrations,
};