Commit a81d6a83 by Archer Committed by GitHub

Update marketplace (#7093)

* perf: marketplace

* doc

* doc
parent 4d1372a5
......@@ -160,21 +160,19 @@ These variables are mainly validated by `packages/service/env.ts` and apply to `
### Security
| Variable | Default | Description |
| -------------------------------- | ---------------------------- | --------------------------------------------------------------------------------------------------- |
| `USE_IP_LIMIT` | `false` | Whether IP rate limiting is enabled for selected APIs. |
| `CHECK_INTERNAL_IP` | `false` | Whether internal IP checks are enabled to reduce SSRF risk. |
| `PASSWORD_LOGIN_LOCK_SECONDS` | `120` | Lock duration after failed password login attempts, in seconds. |
| `MAX_LOGIN_SESSION` | Empty | Maximum login clients per account. Empty uses the default logic. |
| `ALLOWED_ORIGINS` | Empty | Allowed CORS origins. Use commas to separate multiple origins. Empty allows all origins by default. |
| `MULTIPLE_DATA_TO_BASE64` | `true` | Whether images are forced into base64 before being sent to models. |
| `DISABLE_CACHE` | `false` | Whether system cache hits are disabled, mainly for debugging. |
| `PLUGIN_ACCESS_TOKEN_SECRET` | `plugin_access_token_secret` | Signing secret for plugin access tokens. |
| `PLUGIN_ACCESS_TOKEN_EXPIRES_IN` | `86400` | Plugin access token expiration, in seconds. |
| `HTTP_PROXY` | Empty | Outbound HTTP proxy for Node and workers. |
| `HTTPS_PROXY` | Empty | Outbound HTTPS proxy for Node and workers. |
| `NO_PROXY` | Empty | Address list that bypasses proxies. |
| `ALL_PROXY` | Empty | General outbound proxy. |
| Variable | Default | Description |
| ----------------------------- | ------- | --------------------------------------------------------------------------------------------------- |
| `USE_IP_LIMIT` | `false` | Whether IP rate limiting is enabled for selected APIs. |
| `CHECK_INTERNAL_IP` | `false` | Whether internal IP checks are enabled to reduce SSRF risk. |
| `PASSWORD_LOGIN_LOCK_SECONDS` | `120` | Lock duration after failed password login attempts, in seconds. |
| `MAX_LOGIN_SESSION` | Empty | Maximum login clients per account. Empty uses the default logic. |
| `ALLOWED_ORIGINS` | Empty | Allowed CORS origins. Use commas to separate multiple origins. Empty allows all origins by default. |
| `MULTIPLE_DATA_TO_BASE64` | `true` | Whether images are forced into base64 before being sent to models. |
| `DISABLE_CACHE` | `false` | Whether system cache hits are disabled, mainly for debugging. |
| `HTTP_PROXY` | Empty | Outbound HTTP proxy for Node and workers. |
| `HTTPS_PROXY` | Empty | Outbound HTTPS proxy for Node and workers. |
| `NO_PROXY` | Empty | Address list that bypasses proxies. |
| `ALL_PROXY` | Empty | General outbound proxy. |
### Feature Flags and Limits
......@@ -266,9 +264,9 @@ These variables are loaded and validated by `projects/code-sandbox/src/env.ts`.
| `SANDBOX_PORT` | `3000` | Code Sandbox listening port. |
| `SANDBOX_TOKEN` | Empty | Bearer token for the `/sandbox` endpoint. Empty disables API authentication. It only allows printable ASCII characters and cannot contain spaces. |
| `SANDBOX_POOL_SIZE` | `20` | Number of pre-warmed JS/Python workers, from `1` to `100`. |
| `SANDBOX_API_MAX_BODY_MB` | `8` | Maximum `/sandbox` API JSON body size, including `variables`, in MB. Range: `1` to `100`. |
| `SANDBOX_API_MAX_BODY_MB` | `8` | Maximum `/sandbox` API JSON body size, including `variables`, in MB. Range: `1` to `100`. |
| `SANDBOX_MAX_TIMEOUT` | `60000` | Timeout for one code execution, in milliseconds. Range: `1000` to `600000`. |
| `SANDBOX_MAX_MEMORY_MB` | `256` | Maximum memory for one sandbox, in MB. Range: `32` to `4096`. The runtime reserves an extra `50` MB for overhead. |
| `SANDBOX_MAX_MEMORY_MB` | `256` | Maximum memory for one sandbox, in MB. Range: `32` to `4096`. The runtime reserves an extra `50` MB for overhead. |
| `SANDBOX_MAX_OUTPUT_MB` | `10` | Maximum output JSON size for one code execution, including return values and logs, in MB. Range: `1` to `100`. |
| `CHECK_INTERNAL_IP` | `true` | Whether internal IP checks are enabled for sandbox network requests. |
| `SANDBOX_REQUEST_MAX_COUNT` | `30` | Maximum number of network requests allowed during one code execution. Range: `1` to `1000`. |
......
......@@ -160,21 +160,19 @@ description: projects/app、projects/code-sandbox 与 pro/admin 环境变量说
### 安全配置
| 变量 | 默认值 | 说明 |
| -------------------------------- | ---------------------------- | -------------------------------------------------------------- |
| `USE_IP_LIMIT` | `false` | 是否启用部分接口的 IP 限流。 |
| `CHECK_INTERNAL_IP` | `false` | 是否启用内网 IP 检查,用于降低 SSRF 风险。 |
| `PASSWORD_LOGIN_LOCK_SECONDS` | `120` | 密码登录错误后的锁定时长,单位秒。 |
| `MAX_LOGIN_SESSION` | 空 | 单账号最大登录客户端数量;为空时使用默认逻辑。 |
| `ALLOWED_ORIGINS` | 空 | 允许跨域来源,多个来源使用英文逗号分隔;为空默认允许所有跨域。 |
| `MULTIPLE_DATA_TO_BASE64` | `true` | 是否强制将图片转成 base64 传递给模型。 |
| `DISABLE_CACHE` | `false` | 是否关闭系统缓存命中,主要用于调试。 |
| `PLUGIN_ACCESS_TOKEN_SECRET` | `plugin_access_token_secret` | 插件访问 Token 签名密钥。 |
| `PLUGIN_ACCESS_TOKEN_EXPIRES_IN` | `86400` | 插件访问 Token 有效期,单位秒。 |
| `HTTP_PROXY` | 空 | Node/worker 出站 HTTP 代理。 |
| `HTTPS_PROXY` | 空 | Node/worker 出站 HTTPS 代理。 |
| `NO_PROXY` | 空 | 不走代理的地址列表。 |
| `ALL_PROXY` | 空 | 通用出站代理。 |
| 变量 | 默认值 | 说明 |
| ----------------------------- | ------- | -------------------------------------------------------------- |
| `USE_IP_LIMIT` | `false` | 是否启用部分接口的 IP 限流。 |
| `CHECK_INTERNAL_IP` | `false` | 是否启用内网 IP 检查,用于降低 SSRF 风险。 |
| `PASSWORD_LOGIN_LOCK_SECONDS` | `120` | 密码登录错误后的锁定时长,单位秒。 |
| `MAX_LOGIN_SESSION` | 空 | 单账号最大登录客户端数量;为空时使用默认逻辑。 |
| `ALLOWED_ORIGINS` | 空 | 允许跨域来源,多个来源使用英文逗号分隔;为空默认允许所有跨域。 |
| `MULTIPLE_DATA_TO_BASE64` | `true` | 是否强制将图片转成 base64 传递给模型。 |
| `DISABLE_CACHE` | `false` | 是否关闭系统缓存命中,主要用于调试。 |
| `HTTP_PROXY` | 空 | Node/worker 出站 HTTP 代理。 |
| `HTTPS_PROXY` | 空 | Node/worker 出站 HTTPS 代理。 |
| `NO_PROXY` | 空 | 不走代理的地址列表。 |
| `ALL_PROXY` | 空 | 通用出站代理。 |
### 功能开关与限制
......@@ -266,7 +264,7 @@ description: projects/app、projects/code-sandbox 与 pro/admin 环境变量说
| `SANDBOX_PORT` | `3000` | Code Sandbox 服务监听端口。 |
| `SANDBOX_TOKEN` | 空 | `/sandbox` 接口 Bearer Token;为空时不启用接口认证。仅允许 ASCII 可打印字符且不能包含空格。 |
| `SANDBOX_POOL_SIZE` | `20` | JS/Python 预热 worker 数量,范围 `1` 到 `100`。 |
| `SANDBOX_API_MAX_BODY_MB` | `8` | `/sandbox` API JSON 请求体总大小上限,包含 `variables`,单位 MB,范围 `1` 到 `100`。 |
| `SANDBOX_API_MAX_BODY_MB` | `8` | `/sandbox` API JSON 请求体总大小上限,包含 `variables`,单位 MB,范围 `1` 到 `100`。 |
| `SANDBOX_MAX_TIMEOUT` | `60000` | 单次代码执行超时时间,单位毫秒,范围 `1000` 到 `600000`。 |
| `SANDBOX_MAX_MEMORY_MB` | `256` | 单个沙箱最大内存,单位 MB,范围 `32` 到 `4096`;运行时会额外预留 `50` MB 开销。 |
| `SANDBOX_MAX_OUTPUT_MB` | `10` | 单次代码执行输出 JSON 大小上限,包含返回值和日志,单位 MB,范围 `1` 到 `100`。 |
......
---
title: 'V4.15.0-beta4 (in progress)'
title: 'V4.15.0-beta4'
description: 'FastGPT V4.15.0-beta4 Release Notes'
---
## 📦 Upgrade Guide
‼️ Important update: the plugin service has been upgraded to v1.0.0-beta1, and system tool execution has changed significantly.
### 1. Update Environment Variables
1. Update the `AUTH_TOKEN` environment variable for `fastgpt-plugin`. It must be at least 32 characters long.
2. Update the `PLUGIN_TOKEN` environment variable for `fastgpt` to match the `AUTH_TOKEN` value used by `fastgpt-plugin`.
3. Update the database name in the `MONGODB_URI` environment variable for `fastgpt-plugin` so it does not conflict with the MongoDB database name used by `fastgpt`. For example: `mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt-plugin?authSource=admin`
### 2. Image Changes
- Update the fastgpt-app (FastGPT main service) image tag to v4.15.0-beta4.
- Update the fastgpt-pro (FastGPT commercial edition) image tag to v4.15.0-beta4.
- Update the fastgpt-plugin image tag to v1.0.0-beta2.
- Update the aiproxy image tag to v0.6.1.
### 3. Reinstall System Tools
1. Download the [zip package](<https://github.com/labring/fastgpt-img/raw/refs/heads/main/fastgpt-official-plugins(1).zip>) for all system tools.
2. Open the `fastgpt` web app, click `Admin` in the navbar, click add plugin, click `Import/Update Plugin`, upload the zip package, and confirm. This reinstalls all legacy system tools.
You can also download tools one by one from the plugin marketplace. Before the stable release, the marketplace URL is: [https://v2.marketplace.fastgpt.cn](https://v2.marketplace.fastgpt.cn)
## 🚀 New Features
1. Added virtual list rendering for apps and Knowledge Bases.
2. Added separate OpenAPI documentation to distinguish it from the dev API documentation.
1. Reworked the plugin system architecture.
2. Reworked the chatbox UI.
3. Added virtual list rendering for apps and Knowledge Bases.
4. Added separate OpenAPI documentation to distinguish it from the dev API documentation.
5. Workflow template export now includes the name and description.
## ⚙️ Improvements
1. Added validation to input guide configuration to avoid invalid custom lexicon URLs.
1. Migrated system tool execution to local-pool, with support for process pools, queues, timeouts, retry backoff, and runtime metrics.
2. Added plugin-level runtime config support.
3. Plugin entry files can now be pulled from object storage and cached in the local file directory.
4. Added validation to input guide configuration to avoid invalid custom lexicon URLs.
5. Enhanced validation for Workflow array reference types to avoid conflicts with two-dimensional data.
6. Apps now show a graceful prompt during orchestration when a Knowledge Base has been deleted.
7. Replaced PDFJs with `liteparse` for PDF parsing, improving parsing speed by 3x.
8. Optimized Workflow execution by storing nodeResponse in a flattened format, avoiding failures when saving large nested Workflows.
9. XLSX parsing now automatically removes empty rows and columns and supplements merged cells.
## 🐛 Bug Fixes
1. Fixed a potential unauthorized access risk in training APIs.
1. Fixed abnormal multimodal file link retrieval for models.
2. Fixed a potential unauthorized access risk in training APIs.
3. Fixed an SSRF risk in HTTP tool parsing.
4. Fixed abnormal MCP tool expansion after tool calls following an interaction node.
## 🛠️ Code Improvements
1. Restructured the plugin service from the legacy `runtime` structure into a pnpm workspace monorepo, split into the HTTP service entry, domain models, use cases, API adapters, infrastructure, SDK, and CLI.
2. Rewrote all app API endpoints with zod schemas and generated documentation from them.
3. Process images in workers promptly instead of retaining base64 data, reducing memory usage.
---
title: 'V4.15.0-beta4(进行中)'
title: 'V4.15.0-beta4'
description: 'FastGPT V4.15.0-beta4 更新说明'
---
......@@ -7,29 +7,25 @@ description: 'FastGPT V4.15.0-beta4 更新说明'
‼️重要更新,插件服务更新到 v1.0.0-beta1 版本,系统工具运行方式有较大调整。
### 镜像变更
### 1. 修改环境变量
- 更新 fastgpt-app(fastgpt 主服务) 镜像 tag: v4.15.0-beta4
- 更新 fastgpt-pro(fastgpt 商业版) 镜像 tag: v4.15.0-beta4
- 更新 fastgpt-plugin 镜像 tag: v1.0.0-beta1
- 更新 aiproxy 镜像 tag: v0.6.0
1. 修改 `fastgpt-plugin` 的环境变量 `AUTH_TOKEN`,要求 32 位以上。
2. 同时修改 `fastgpt` 的环境变量 `PLUGIN_TOKEN`,与 `fastgpt-plugin` 的 `AUTH_TOKEN` 一致。
3. 修改 `fastgpt-plugin` 的环境变量 `MONGODB_URI` 中的数据库名,不与 `fastgpt` 的 Mongo 数据库名重名即可,例如:`mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt-plugin?authSource=admin`
### 插件服务升级
### 2. 镜像变更
本次插件服务将系统工具从旧的内置工具源码与运行时缓存机制,升级为独立插件包的上传、安装、版本管理和 local-pool 运行机制。
- 更新 fastgpt-app(fastgpt 主服务) 镜像 tag: v4.15.0-beta4
- 更新 fastgpt-pro(fastgpt 商业版) 镜像 tag: v4.15.0-beta4
- 更新 fastgpt-plugin 镜像 tag: v1.0.0-beta2
- 更新 aiproxy 镜像 tag: v0.6.1
- 升级后可使用官方系统工具 [zip 包](<https://github.com/labring/fastgpt-img/raw/refs/heads/main/fastgpt-official-plugins(1).zip>)重新导入系统工具,该 zip 包含了旧版所有系统工具。
- 模型配置和 workflow 模板保持兼容,无需专项迁移。
- 插件服务建议连接新的 MongoDB 数据库,保留旧插件服务数据库和对象存储数据,便于回滚和审计。
- 插件服务生产环境需设置强 `AUTH_TOKEN`,要求 32 位以上。
### 3. 重装系统工具
插件服务可继续复用原 MongoDB 实例,可使用独立数据库名,避免冲突,参考:
1. 下载所有系统工具的 [zip 包](<https://github.com/labring/fastgpt-img/raw/refs/heads/main/fastgpt-official-plugins(1).zip>)
2. 打开 `fastgpt` 网页 - 点击 `管理员` navbar - 点击添加插件 - 点击 `导入/更新插件` - 上传 zip - 确认。即可重装旧的所有系统工具。
```yaml
fastgpt-plugin:
environment:
MONGODB_URI: mongodb://myusername:mypassword@fastgpt-mongo:27017/fastgpt-plugin?authSource=admin
```
也可以打开插件市场逐个下载,正式版之前,插件市场地址为: [https://v2.marketplace.fastgpt.cn](https://v2.marketplace.fastgpt.cn)
## 🚀 新增内容
......
......@@ -247,6 +247,8 @@
"content/self-host/upgrading/4-14/41421.mdx": "2026-05-23T22:47:02+08:00",
"content/self-host/upgrading/4-14/41422.en.mdx": "2026-05-23T22:47:02+08:00",
"content/self-host/upgrading/4-14/41422.mdx": "2026-05-23T22:47:02+08:00",
"content/self-host/upgrading/4-14/41424.en.mdx": "2026-06-10T17:33:23+08:00",
"content/self-host/upgrading/4-14/41424.mdx": "2026-06-10T17:33:23+08:00",
"content/self-host/upgrading/4-14/4143.en.mdx": "2026-04-26T21:08:47+08:00",
"content/self-host/upgrading/4-14/4143.mdx": "2026-04-26T21:08:47+08:00",
"content/self-host/upgrading/4-14/4144.en.mdx": "2026-04-26T21:08:47+08:00",
......@@ -271,7 +273,7 @@
"content/self-host/upgrading/4-15/41503.en.mdx": "2026-05-28T16:21:09+08:00",
"content/self-host/upgrading/4-15/41503.mdx": "2026-05-28T16:21:09+08:00",
"content/self-host/upgrading/4-15/41504.en.mdx": "2026-06-07T17:54:48+08:00",
"content/self-host/upgrading/4-15/41504.mdx": "2026-06-09T17:46:40+08:00",
"content/self-host/upgrading/4-15/41504.mdx": "2026-06-10T17:33:23+08:00",
"content/self-host/upgrading/outdated/40.en.mdx": "2026-04-26T21:08:47+08:00",
"content/self-host/upgrading/outdated/40.mdx": "2026-04-26T21:08:47+08:00",
"content/self-host/upgrading/outdated/41.en.mdx": "2026-04-26T21:08:47+08:00",
......@@ -412,6 +414,6 @@
"content/self-host/upgrading/outdated/499.mdx": "2026-05-07T15:06:40+08:00",
"content/self-host/upgrading/upgrade-intruction.en.mdx": "2026-04-26T21:08:47+08:00",
"content/self-host/upgrading/upgrade-intruction.mdx": "2026-04-26T21:08:47+08:00",
"content/toc.en.mdx": "2026-06-09T16:03:58+08:00",
"content/toc.mdx": "2026-06-09T16:03:58+08:00"
"content/toc.en.mdx": "2026-06-10T17:33:23+08:00",
"content/toc.mdx": "2026-06-10T17:33:23+08:00"
}
\ No newline at end of file
......@@ -48,6 +48,7 @@ const exactMap: Record<string, string> = {
'/introduction/guide/dashboard/intro': '/guide/build/workflow/intro',
'/introduction/guide/dashboard/mcp_server': '/guide/build/publish/mcp_server',
'/introduction/guide/dashboard/mcp_tools': '/guide/build/tools/mcp_tools',
'/guide/build/tools/system-plugins/dev_system_tool': '/plugin/system-tool-development',
// Workspace.
'/introduction/commercial': '/guide/version/commercial',
......
......@@ -57,10 +57,6 @@ export const serviceEnv = createEnv({
// 插件
PLUGIN_BASE_URL: UrlSchema.default('http://localhost:3004'),
PLUGIN_TOKEN: z.string().default('token'),
PLUGIN_ACCESS_TOKEN_SECRET: z.string().default('plugin_access_token_secret'),
PLUGIN_ACCESS_TOKEN_EXPIRES_IN: IntSchema.default(3600).meta({
description: '过期时间,单位: 秒'
}),
// 代码沙箱
CODE_SANDBOX_URL: UrlSchema.default('http://localhost:3002'),
......
......@@ -23,9 +23,7 @@ ROOT_KEY=fdafasd
# 插件服务
PLUGIN_BASE_URL=http://localhost:3004
PLUGIN_TOKEN=token
PLUGIN_ACCESS_TOKEN_SECRET=plugin_access_token_secret,
PLUGIN_ACCESS_TOKEN_EXPIRES_IN=3600,
PLUGIN_TOKEN=XHgR8zvKx1FhjHUxCKdJMNpzFUMlavM1
# 代码沙箱服务
CODE_SANDBOX_URL=http://localhost:3002
......@@ -36,7 +34,7 @@ AIPROXY_API_ENDPOINT=http://localhost:3010
AIPROXY_API_TOKEN=token
# 插件市场地址
MARKETPLACE_URL=https://marketplace.fastgpt.cn
MARKETPLACE_URL=https://v2.marketplace.fastgpt.cn
# Agent sandbox
AGENT_SANDBOX_PROVIDER=opensandbox
......
......@@ -17,7 +17,8 @@ export const appEnv = createEnv({
HIDE_CHAT_COPYRIGHT_SETTING: BoolSchema.default(false),
AGENT_SANDBOX_FREE_TIP: BoolSchema.default(false),
MARKETPLACE_URL: UrlSchema.default('https://marketplace.fastgpt.cn'),
// 临时
MARKETPLACE_URL: UrlSchema.default('https://v2.marketplace.fastgpt.cn'),
PASSWORD_EXPIRED_MONTH: IntSchema.optional()
},
emptyStringAsUndefined: true,
......
......@@ -373,7 +373,7 @@ const ToolkitMarketplace = () => {
<Button
onClick={() => {
window.open(
'https://doc.fastgpt.io/plugin/system-tool-development',
'https://doc.fastgpt.cn/plugin/system-tool-development',
'_blank'
);
}}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment