Perf webhook (#3406)

* perf: plugin webhook

* perf: plugin webhook
This commit is contained in:
Archer
2024-12-16 16:44:39 +08:00
committed by GitHub
parent 8e9c030600
commit 8ba339e78f
16 changed files with 439 additions and 211 deletions

View File

@@ -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');
})();

View File

@@ -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,

View File

@@ -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",

View 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
};
};

View File

@@ -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)
]);
}