* perf: redirect request and err log replace perf: dataset openapi feat: session fix: retry input error feat: 468 doc sub page feat: standard sub perf: rerank tip perf: rerank tip perf: api sdk perf: openapi sub plan perf: sub ui fix: ts * perf: init log * fix: variable select * sub page * icon * perf: llm model config * perf: menu ux * perf: system store * perf: publish app name * fix: init data * perf: flow edit ux * fix: value type format and ux * fix prompt editor default value (#13) * fix prompt editor default value * fix prompt editor update when not focus * add key with variable --------- Co-authored-by: Archer <545436317@qq.com> * fix: value type * doc * i18n * import path * home page * perf: mongo session running * fix: ts * perf: use toast * perf: flow edit * perf: sse response * slider ui * fetch error * fix prompt editor rerender when not focus by key defaultvalue (#14) * perf: prompt editor * feat: dataset search concat * perf: doc * fix:ts * perf: doc * fix json editor onblur value (#15) * faq * vector model default config * ipv6 --------- Co-authored-by: heheer <71265218+newfish-cmyk@users.noreply.github.com>
77 lines
2.0 KiB
TypeScript
77 lines
2.0 KiB
TypeScript
import { startQueue } from './utils/tools';
|
|
import { PRICE_SCALE } from '@fastgpt/global/support/wallet/bill/constants';
|
|
import { MongoUser } from '@fastgpt/service/support/user/schema';
|
|
import { connectMongo } from '@fastgpt/service/common/mongo/init';
|
|
import { hashStr } from '@fastgpt/global/common/string/tools';
|
|
import { createDefaultTeam } from '@fastgpt/service/support/user/team/controller';
|
|
import { exit } from 'process';
|
|
import { initVectorStore } from '@fastgpt/service/common/vectorStore/controller';
|
|
import { getInitConfig } from '@/pages/api/common/system/getInitData';
|
|
import { startCron } from './common/system/cron';
|
|
import { mongoSessionRun } from '@fastgpt/service/common/mongo/sessionRun';
|
|
|
|
/**
|
|
* connect MongoDB and init data
|
|
*/
|
|
export function connectToDatabase(): Promise<void> {
|
|
return connectMongo({
|
|
beforeHook: () => {},
|
|
afterHook: async () => {
|
|
initVectorStore();
|
|
// start queue
|
|
startQueue();
|
|
// init system config
|
|
getInitConfig();
|
|
|
|
// cron
|
|
startCron();
|
|
|
|
initRootUser();
|
|
}
|
|
});
|
|
}
|
|
|
|
async function initRootUser() {
|
|
try {
|
|
const rootUser = await MongoUser.findOne({
|
|
username: 'root'
|
|
});
|
|
const psw = process.env.DEFAULT_ROOT_PSW || '123456';
|
|
|
|
let rootId = rootUser?._id || '';
|
|
|
|
await mongoSessionRun(async (session) => {
|
|
// init root user
|
|
if (rootUser) {
|
|
await MongoUser.findOneAndUpdate(
|
|
{ username: 'root' },
|
|
{
|
|
password: hashStr(psw)
|
|
}
|
|
);
|
|
} else {
|
|
const [{ _id }] = await MongoUser.create(
|
|
[
|
|
{
|
|
username: 'root',
|
|
password: hashStr(psw)
|
|
}
|
|
],
|
|
{ session }
|
|
);
|
|
rootId = _id;
|
|
}
|
|
// init root team
|
|
await createDefaultTeam({ userId: rootId, maxSize: 1, balance: 9999 * PRICE_SCALE, session });
|
|
});
|
|
|
|
console.log(`root user init:`, {
|
|
username: 'root',
|
|
password: psw
|
|
});
|
|
} catch (error) {
|
|
console.log('init root user error', error);
|
|
exit(1);
|
|
}
|
|
}
|