NocoBase v1.6.0 正式版发布

原文链接:NocoBase v1.6.0 正式版发布 - NocoBase

新特性

集群模式

企业版可通过相关插件支持集群模式部署,应用以集群模式运行时,可以通过多个实例和使用多核模式来提高应用的对并发访问处理的性能。

参考文档:集群部署

密码策略

为所有用户设置密码规则,密码有效期和密码登录安全策略,管理锁定用户。

参考文档:密码策略和用户锁定

Token 安全策略

Token 安全策略是一种用于保护系统安全和体验的功能配置。它包括了三个主要配置项:"会话有效期"、"Token 有效周期" 和 "过期 Token 刷新时限" 。

参考文档:Token 安全策略

IP 限制

NocoBase 支持管理员对用户访问 IP 设置白名单或黑名单,以限制未授权的外部网络连接或阻止已知的恶意 IP 地址,降低安全风险。同时支持管理员查询访问拒绝日志,识别风险 IP。

参考文档:IP 限制

变量和密钥

集中配置和管理环境变量和密钥,用于敏感数据存储、配置数据重用、环境配置隔离等。

参考文档:变量和密钥

迁移管理

用于将应用配置从一个应用环境迁移到另一个应用环境。

参考文档:

路由管理

  • 菜单数据独立并改名为路由 :菜单数据从 UI Schema 中拆分出来,改名为路由 ,分为 desktopRoutesmobileRoutes 两张表,分别对应桌面端路由和移动端路由。
  • 菜单前端优化,支持折叠与响应式 :菜单在前端实现了折叠响应式适配,提升了使用体验。

参考文档:路由管理

角色和权限

  • 支持配置更多的操作按钮权限,包括弹窗、链接、扫码、触发工作流

  • 支持配置标签页权限

用户管理

支持配置用户个人资料表单

工作流

在全局工具栏中增加流程待办中心入口,并实时提示人工节点、审批的相关待办任务数量。

工作流:自定义操作事件

支持全局和批量数据触发自定义操作事件。

工作流:审批

  • 支持转签、加签。
  • 支持审批人在提交审批时修改申请内容。
  • 支持在审批界面中配置审批基础信息区块。
  • 优化审批发起和待办区块的样式和交互,同时也在全局的流程待办中心中内置。
  • 不再区分发起审批的位置,审批中心区块可以发起和处理所有审批。

工作流:JSON 变量映射节点

新增用于将上游节点结果中的 JSON 数据映射为变量的专用节点。

参考文档:JSON 变量映射

扩展能力提升及插件示例

扩展项 插件示例
数据表预置字段扩展 @nocobase-sample/plugin-data-source-main-custom-preset-fields
日历颜色字段可选项扩展 @nocobase-sample/plugin-calendar-register-color-field
日历标题字段可选项扩展 @nocobase-sample/plugin-calendar-register-title-field
公式可选项字段扩展 @nocobase-sample/plugin-field-formula-register-expression-field
看板分组字段扩展 @nocobase-sample/plugin-kanban-register-group-field
筛选操作符扩展 @nocobase-sample/plugin-register-filter-operator
文件存储扩展 @nocobase-sample/plugin-file-storage-demo

不兼容变更

Token 安全策略更新

1.6 版本新增了 Token 安全策略,Auth 认证检查未通过时,将返回 401 错误并跳转至登录页。此行为与之前版本有所不同。如需跳过检查,可参考以下示例进行处理:

前端请求

javascript 复制代码
useRequest({
  url: '/test',
  skipAuth: true,
});

api.request({
  url: '/test',
  skipAuth: true,
});

后端中间件

javascript 复制代码
class PluginMiddlewareExampleServer extends plugin {
  middlewareExample = (ctx, next) => {
    if (ctx.path === '/path/to') {
      ctx.skipAuthCheck = true;
    }
    await next();
  };
  async load() {
    this.app.dataSourceManager.afterAddDataSource((dataSource) => {
      dataSource.resourceManager.use(this.middlewareExample, {
        before: 'auth',
      });
    });
  }
}

单元测试函数 agent.login 由同步改为异步

由于认证流程需要进行一些异步操作,测试函数 login 改为异步, 示例:

TypeScript 复制代码
import { createMockServer } from '@nocobase/test';

describe('my db suite', () => {
  let app;
  let agent;

  beforeEach(async () => {
    app = await createMockServer({
      registerActions: true,
      acl: true,
      plugins: ['users', 'auth', 'acl'],
    });
    agent = await app.agent().login(1);
  });

  test('case1', async () => {
    await agent.get('/examples');
    await agent.get('/examples');
    await agent.resource('examples').create();
  });
});

提供全新的用户中心设置项的扩展 API

API

ts 复制代码
type UserCenterSettingsItemOptions = SchemaSettingsItemType & { aclSnippet?: string };

class Application {
  addUserCenterSettingsItem(options: UserCenterSettingsItemOptions);
}

示例

javascript 复制代码
class PluginUserCenterSettingsExampleClient extends plugin {
  async load() {
    this.app.addUserCenterSettingsItem({
      name: 'nickName',
      Component: NickName,
      sort: 0,
    });
  }
}
相关推荐
FIT2CLOUD飞致云5 小时前
四月月报丨MaxKB正在被能源、交通、金属矿产等行业企业广泛采纳
人工智能·开源
lauo6 小时前
智体知识库:ai-docs对分布式智体编程语言Poplang和javascript的语法的比较(知识库问答)
开发语言·前端·javascript·分布式·机器人·开源
FIT2CLOUD飞致云9 小时前
在线地图支持天地图和腾讯地图,仪表板和数据大屏支持发布功能,DataEase开源BI工具v2.10.7 LTS版本发布
开源·数据可视化
草梅友仁10 小时前
AI 开发 afdian-linker 与 GitHub 加星仓库推荐 | 2025 年第 15 周草梅周报
开源·aigc·github copilot
Nu1111 小时前
前端大屏原理系列:高性能拖拽系统的实现
前端·react.js·开源
林鸿群12 小时前
DotnetCore开源库SampleAdmin源码编译
java·开源·mybatis
lisw0513 小时前
埃隆·马斯克如何通过开源创新塑造未来
开源·埃隆.马斯克
Panesle14 小时前
开源的7B参数OCR视觉大模型:RolmOCR
人工智能·开源·大模型·ocr
dogstarhuang14 小时前
PhalApi 2.x:让PHP接口开发从“简单”到“极简”的开源框架
开源·php·接口·接口开发框架
Alpha汇股志14 小时前
英国股票实时API 对比:iTick的差异化优势解析
大数据·人工智能·开源·业界资讯