mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-23 05:12:39 +00:00
@@ -48,6 +48,13 @@ async function handler(req: ApiRequestProps<{}, ClearHistoriesProps>, res: NextA
|
||||
source: ChatSourceEnum.online
|
||||
};
|
||||
}
|
||||
if (authType === 'apikey') {
|
||||
return {
|
||||
teamId: chatTeamId,
|
||||
appId,
|
||||
source: ChatSourceEnum.api
|
||||
};
|
||||
}
|
||||
|
||||
return Promise.reject('Param are error');
|
||||
})();
|
||||
|
@@ -73,7 +73,7 @@ const WorkflowStatusContextProvider = ({ children }: { children: ReactNode }) =>
|
||||
if (isSaved || !leaveSaveSign.current) return;
|
||||
console.log('Leave auto save');
|
||||
const data = flowData2StoreData();
|
||||
if (!data) return;
|
||||
if (!data || data.nodes.length === 0) return;
|
||||
await onSaveApp({
|
||||
...data,
|
||||
isPublish: false,
|
||||
|
@@ -24,13 +24,14 @@
|
||||
"@nestjs/core": "^10.0.0",
|
||||
"@nestjs/platform-fastify": "^10.3.8",
|
||||
"@nestjs/swagger": "^7.3.1",
|
||||
"fastify": "^4.27.0",
|
||||
"crypto": "^1.0.1",
|
||||
"dayjs": "^1.11.7",
|
||||
"fastify": "^4.27.0",
|
||||
"isolated-vm": "^4.7.2",
|
||||
"tiktoken": "1.0.17",
|
||||
"node-gyp": "^10.1.0",
|
||||
"reflect-metadata": "^0.2.0",
|
||||
"rxjs": "^7.8.1"
|
||||
"rxjs": "^7.8.1",
|
||||
"tiktoken": "1.0.17"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@nestjs/cli": "^10.0.0",
|
||||
|
19
projects/sandbox/src/sandbox/jsFn/crypto.ts
Normal file
19
projects/sandbox/src/sandbox/jsFn/crypto.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import * as crypto from 'crypto';
|
||||
import * as querystring from 'querystring';
|
||||
|
||||
export const createHmac = (algorithm: string, secret: string) => {
|
||||
const timestamp = Date.now().toString();
|
||||
const stringToSign = `${timestamp}\n${secret}`;
|
||||
|
||||
// 创建 HMAC
|
||||
const hmac = crypto.createHmac(algorithm, secret);
|
||||
hmac.update(stringToSign, 'utf8');
|
||||
const signData = hmac.digest();
|
||||
|
||||
const sign = querystring.escape(Buffer.from(signData).toString('base64'));
|
||||
|
||||
return {
|
||||
timestamp,
|
||||
sign
|
||||
};
|
||||
};
|
@@ -1,8 +1,10 @@
|
||||
import { RunCodeDto, RunCodeResponse } from 'src/sandbox/dto/create-sandbox.dto';
|
||||
import IsolatedVM, { ExternalCopy, Isolate, Reference } from 'isolated-vm';
|
||||
|
||||
import { countToken } from './jsFn/tiktoken';
|
||||
import { timeDelay } from './jsFn/delay';
|
||||
import { strToBase64 } from './jsFn/str2Base64';
|
||||
import { createHmac } from './jsFn/crypto';
|
||||
|
||||
const CustomLogStr = 'CUSTOM_LOG';
|
||||
|
||||
@@ -42,7 +44,8 @@ function registerSystemFn(jail: IsolatedVM.Reference<Record<string | number | sy
|
||||
return Promise.all([
|
||||
jail.set('global_delay', new Reference(timeDelay)),
|
||||
jail.set('countToken', countToken),
|
||||
jail.set('strToBase64', strToBase64)
|
||||
jail.set('strToBase64', strToBase64),
|
||||
jail.set('createHmac', createHmac)
|
||||
]);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user