Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

oak-general-business 更新日志

当前 package6.1.0
最新 tag6.0.0
覆盖区间5.11.2..6.0.0 / 6.0.0..HEAD

6.1.0 未发布(区间:6.0.0..HEAD

未发布系统翻译、HumanVerify、邀请归因、UserAuth、Domain 路由和配置面板是主要变化面。
  • 新增系统翻译链路:System 增加 translationtranslateStatetranslationError,并增加 translate / translateSuccess / translateFail 状态机动作;utils/systemTranslation 会按系统翻译配置调用 OpenAI-compatible LLM,将目标实体文本写入 localizedContent,通过 digest 跳过未变更内容,并保留人工翻译。
  • 新增系统翻译运行时和 UI:start / stop routine 会注册和注销系统翻译 runtime env,system trigger 会在翻译配置或 LLM 配置变化后维护定时任务,components/system/translationcomponents/system/translationManage 支持配置翻译实体、筛选缺失 / 过期 / 已翻译内容、人工编辑翻译和触发翻译动作。
  • 新增 localizedContentareaLocale:区域名称增加 en_USes_ESfr_FRar_SAru_RU 入库语言,data/areaLocale 同步新增多语言数据文件,areaLocalearea + language 建唯一索引,供 Area picker 和多语言展示读取。
  • 新增 LLM 配置能力:Config 增加 LlmOpenAICompatibleLlmConfig 支持命名、extraBodytestExtraBody 和默认 60000ms timeout,配置面板提供 LLM 账号维护和 testLlmConfig(...) 测试入口。
  • 新增 HumanVerify 人机校验体系:内置 debugturnstilealtcha provider,内置场景覆盖账号登录、登录名注册、手机验证码和邮箱验证码;系统配置可按场景设置 observe / enforceminScoreaction 和 provider 错误策略。
  • HumanVerify 前后端注册面补齐:后端默认注册 debug / Turnstile / ALTCHA provider,并开放 humanVerify/altcha/challenge free endpoint;前端增加 features.humanVerifyoak-humanVerifyHost 全局组件、provider bundle / client / acquire component / config component 注册入口,配置页内置 debug、Turnstile、ALTCHA 面板。
  • 登录、注册和验证码流程接入 HumanVerify:loginByAccountregisterUserByLoginNamesendCaptchaByMobilesendCaptchaByEmail 会校验传入的 proof;前端 features.token 方法增加可选 humanVerify 参数。
  • registerUserByLoginName 变为“注册后立即登录”:后端创建用户和 loginName 后会建立 token,返回 tokenValueinviteTouchId,前端注册成功后直接进入登录态。
  • 新增邀请归因链路:新增 inviteinviteTouchinviteRelation 实体和 getMyInvite / touchInvite aspect;前端 features.invite 会把未登录访问的 touch 暂存在 localStorage,登录、注册或 token materialize 后写入关系并清理 pending touch。
  • 邀请二维码自动化:创建 invite 时会按目标应用类型创建关联 wechatQrCode,支持 wechatPublic 服务号、带 qrCodePrefix 的小程序 domain URL,以及普通小程序码。
  • 用户实名认证从 user 字段迁到独立 userAuth 申请实体:新增 userAuth 状态机、审核字段、附件关系和 components/userAuth/* / template/my/userAuth,旧 components/user/authenticatetemplate/my/auth 已移除。
  • 应用访问入口迁移到 DomainApplication.config.location 从配置类型、模板数据和配置面板中移除,前端页面 URL 通过 composeDomainUrl(...) 生成,后台接口 URL 通过 composeServerUrl(...) 生成;getApplication、微信回调、邀请落地页和二维码调试链接都会过滤已禁用域名。
  • Domain 增加启用状态并弱化端口配置:新增 ableState 以及 enable / disable 动作,port 改为可空;管理列表改为启用 / 禁用确认操作,新增和编辑弹框补齐取消按钮、空值占位与国际化文案。
  • 微信扫码中转页和二维码有效期改为系统配置:System.config.App.scanPage 统一配置扫码中转页,默认 wechatQrCode/scan,小程序侧会规范化为 pages/<scanPage>/indexSystem.config.App.wechatQrCodeExpireSeconds 控制微信临时二维码有效期,单位秒,默认并封顶为 2592000
  • 微信公众号 / 小程序回调改为注册表模式:src/endpoints/wechat.ts 只负责 HTTP 验证和解析,项目层通过 src/registry.backend.ts 注册 registerWeChatPublicEventHandler / registerWeChatPublicEventAfterHandlerregisterWeChatMpEventHandler / registerWeChatMpEventAfterHandlerapplicationIdmsgType 必填,event 仅在 msgType === 'event' 时必填,旧 registerWeChatPublicEventCallback 只保留兼容并会在注册时提示弃用。
  • wechatQrCode 创建兜底更明确:显式传入 applicationId / type 时按目标应用生成;未传时才按 System.config.App.qrCodeApplicationId、当前应用、服务号、小程序顺序自动兜底。公众号扫码后的图文链接、微信登录扫码、授权领取和开发环境调试链接都改用启用的 Domain 拼接。
  • 配置组件扩展:components/config/upsert 增加 LLM、HumanVerify、SMS / COS 配置注入点,COS 增加 S3 / MinIO 兼容配置,Config 类型补齐 humanVerify、S3 account / cos 配置和组件 props 类型。
  • 系统配置与 OAuth 管理界面优化:基础设置 tab 将默认值说明移到 help / tooltip,表单 label 防止被 tag 挤压;OAuth provider / OAuth app 创建弹框限制浏览器高度并在弹框内滚动,列表列宽和横向滚动做了适配。
  • 前端主题迁出通用业务包:删除 package-local features/themetypes/Theme,共享主题能力改由 oak-frontend-basefeatures.themeoakTheme 和 CSS 变量承接。
  • 页面 / 组件配置迁移到 index.config.ts:大量组件补齐 CreateComponentConfig,模板和 tabBar 改用 setNamespacePath(...) / getNamespacePath(),并统一使用当前 pageHeader 入口。
  • 多语言和依赖元数据更新:组件、实体和 humanVerify locale 增加英文资源;package.json.oak 使用 oak.packageoak.business.moduleoak.business.featureInitoak.compiler.transform 和前端全局组件声明;peer 依赖对齐 React 19、AntD 6、oak-domain ^6.0.1oak-frontend-base ^6.0.4
  • 修复 token web 多标签同步竞态:web 开发态也注册 storage 监听,刷新旧 token、过期 remove 事件和 token rotation 不会再覆盖或清掉较新的本地 token;switchTo 会清理 frontend-base 的 console context 缓存。
  • 修复用户证件校验类型、unset 带点字面量 key、过时 wx.* 方法、AntD Divider titlePlacement 和注册页 header 布局。
  • 业务组件已迁移到 oak-cli 的 render props 推导,并在 ES 构建启用 XML 与 Less Module 严格检查;传统 TSX 不再以手写 WebComponentProps 作为主合同,小程序模板和样式错误会直接阻断构建。
  • Application feature 增加 Desktop 解析:浏览器 Web 与 Tauri/Electron 使用 renderer/runtime metadata 区分,离线快照会回放 application opRecords 后再从 cache 读取当前应用。
主要 diff 文件:src/entities/System.tssrc/entities/Application.tssrc/entities/Domain.tssrc/entities/LocalizedContent.tssrc/entities/AreaLocale.tssrc/entities/UserAuth.tssrc/entities/Invite*.tssrc/types/HumanVerify.tssrc/types/Translation.tssrc/types/Config.tssrc/utils/domain.tssrc/utils/session.tssrc/utils/wechatQrCode.tssrc/utils/wechatEvent/*src/utils/systemTranslation.tssrc/utils/humanVerify/*src/aspects/session.tssrc/aspects/token.tssrc/aspects/user.tssrc/aspects/invite.tssrc/aspects/wechatQrCode.tssrc/registry.backend.tssrc/endpoints/wechat.tssrc/endpoints/index.tssrc/features/token.tssrc/features/invite.tssrc/features/humanVerify.tssrc/components/system/*src/components/domain/*src/components/config/upsert/*src/components/oauth/management/*src/components/userAuth/*src/data/areaLocale/*upgrade/6.1.0/*.sql

6.0.0(tag:6.0.0,区间:5.11.2..6.0.0

已发布通用业务包的 6.x metadata 和多语言准备版本。
  • 包 metadata 补齐 oak.package / isLib,feature 初始化转为 package metadata 语义。
  • 去掉旧 OAK_DEV_MODE 参数和部分 alias / fix 脚本依赖。
  • 增加英文 locale,通用业务开始为多语言发布包做准备。
  • token storage sync 范围收窄,Area picker breadcrumb 和权限编辑组件修复。
主要 diff 文件:package.jsonsrc/locales/*src/initialize*src/components/areaPicker/*src/components/relation/*

升级注意

默认实体覆盖:覆盖通用业务默认实体时必须兼容旧结构。尤其是 UserUserEntityGrantSystem 这类会被应用广泛引用的实体,不能只保留新字段而丢掉旧 action/state/locale/style。
数据库升级:6.1.0 带有 upgrade/6.1.0/01.sql04.sql,并新增 05.mysql.sql / 05.postgres.sql。前四组脚本会创建 localizedContentareaLocaleuserAuthinviteinviteTouchinviteRelation,为 system 增加翻译字段,并从 user 删除旧证件字段;第 5 组脚本会让 domain.port 可空、增加 domain.ableState,并从 application.config 移除历史 location。升级前需要确认历史实名认证数据迁移策略和应用入口域名配置。
System 覆盖:应用如果覆盖 System,必须保留 translationtranslateStatetranslationError 以及 translate / translateSuccess / translateFail 动作,否则共享 components/system/panel、系统翻译 trigger 和定时任务会失效。
HumanVerify:开启 enforce 后,登录、注册和验证码发送会因为缺少 proof、前端 provider bundle / host 未注册、后端 provider 不可用或评分不足而被拒绝。应用侧需要在 registry / 初始化流程中注册所选 provider,并确认 oak-humanVerifyHost 已被全局组件机制挂载。
实名认证入口:旧的 @oak-general-business/components/user/authenticate 已不存在,改用 @oak-general-business/components/userAuth/upsert/index 并以 userAuth 单节点承载申请 / 审核状态。
注册语义:features.token.registerByLoginName(...) 现在会注册并登录,成功后会写入 token。历史代码如果把注册成功页和登录页分离,或假设注册 aspect 只返回用户信息,需要调整后续跳转和状态处理。
应用入口配置:不要继续在 Application.config.location 里维护前端访问地址。升级后应在 Domain 配置系统可用域名,必要时用 Application.domainId 精确绑定某个应用;扫码中转页放到 System.config.App.scanPage,微信临时二维码有效期放到 System.config.App.wechatQrCodeExpireSeconds
主题迁移:不要继续从 oak-general-business/features/themeoak-general-business/types/Theme 引入主题能力;改用 oak-frontend-basefeatures.themeoakTheme 和主题设置组件。