@microi.net/cli 5.1.3 → 5.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codebuddy-plugin/marketplace.json +2 -2
- package/.codebuddy-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.workbuddy-plugin/marketplace.json +2 -2
- package/.workbuddy-plugin/plugin.json +1 -1
- package/assets/build-meta.json +5 -5
- package/cordis.patch.yml +1 -1
- package/package.json +1 -1
- package/scripts/mcp-server.js +84 -84
- package/scripts/microi-cli.js +21 -21
- package/scripts/microi-skills.meta.json +186 -186
- package/skills/.microi-skills-version.json +2 -2
- package/skills/app-store/SKILL.md +1 -0
- package/skills/job-engine/SKILL.md +1 -1
- package/skills/microi-form-engine/SKILL.md +7 -0
- package/skills/microi-form-engine/references/component-catalog.md +31 -1
- package/skills/microi-left-right-layout/SKILL.md +5 -0
- package/skills/v8-api-config/SKILL.md +2 -2
- package/skills/v8-debugging/SKILL.md +5 -6
- package/skills/v8-menu-buttons/SKILL.md +4 -0
- package/skills/v8-table-event/references/progressive-02-/345/211/215/347/253/257/344/272/213/344/273/266/345/220/215-v8-eventname-/345/217/257/350/203/275/347/232/204/345/200/274.md +1 -1
|
@@ -35,7 +35,7 @@ description: Microi V8 接口引擎配置指南。用于设置 ApiEngineKey、Ap
|
|
|
35
35
|
- 嵌套调用不重复占用全局/租户并发名额,同一调用树重入同 Key 也不会自锁;不同子接口 Key 仍受自己的 Key 并发门保护。
|
|
36
36
|
- `V8.Limits` 可读取本片有效预算和当前深度。异常优先检查 `DataAppend.V8Limit.Code`,不要看到“2GB”就判断服务器真实吃满 2GB。
|
|
37
37
|
- 后台任务使用同一执行引擎。总任务可以运行数小时,但单片仍受 `Timeout/MaxStatements/LimitMemory` 约束;超过 10 分钟必须返回 `HasMore + Checkpoint` 分片续跑,不能只把 `Timeout` 调到 1800/3600。
|
|
38
|
-
-
|
|
38
|
+
- 接口引擎使用正向 `V8Limit`:默认 `0/false`,不设置当前 Jint Engine 的单次超时、语句、函数递归、累计分配和 Promise 固定等待预算;只有 `1/true` 才应用 `Timeout/MaxStatements/LimitMemory/LimitRecursion`。常驻内存保护、取消令牌、并发、接口嵌套深度、权限沙箱及数据库限制在两种状态下都保留。老 `V8Unlimited` 只作协议兼容;MCP/Manifest 新配置统一写 `v8Limit`。
|
|
39
39
|
|
|
40
40
|
### 通用实时事件(SignalR)
|
|
41
41
|
|
|
@@ -264,7 +264,7 @@ return { Code: 1, Data: { Upstream: resp.Content, Summary: summary.Data } };
|
|
|
264
264
|
- [ ] 是否没有使用 `setTimeout` / `Task.Run` 承担请求外后台任务?
|
|
265
265
|
- [ ] 大任务是否按阈值主动使用后台任务,超过 10 分钟是否有 `HasMore + Checkpoint`?
|
|
266
266
|
- [ ] 是否区分累计分配、调用树预算、JS递归与接口嵌套,而不是盲目抬高全部限制?
|
|
267
|
-
- [ ]
|
|
267
|
+
- [ ] 是否确认 `V8Limit=false` 表示接口不限 Jint 单次预算、`true` 才启用限制,并避免继续写入旧 `V8Unlimited` 字段?
|
|
268
268
|
- [ ] 保存后是否通过稳定路径 `/apiengine/{key}` + `osclient` Header 做过 HTTP 复测?特殊 GET/HEAD 路径是否仅用于无法设置 Header/Form/Query 的场景?
|
|
269
269
|
|
|
270
270
|
## 常见错误
|
|
@@ -87,12 +87,11 @@ return {
|
|
|
87
87
|
`V8_NESTED_DEPTH_LIMIT` 和 `V8_EXECUTION_QUEUE_TIMEOUT` 必须分别处理。
|
|
88
88
|
- 后台任务总时长可以超过 10/30 分钟,但单片仍受上述预算;使用
|
|
89
89
|
`HasMore + Checkpoint` 续跑,不要只提高单次超时或内存。
|
|
90
|
-
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
长事务锁、日志和回滚风险,下游接口/表事件需分别开启,不能从请求参数启用。
|
|
90
|
+
- 接口引擎的正向开关是 `sys_apiengine.V8Limit`:默认关闭时
|
|
91
|
+
`V8.Limits.UnlimitedRuntime=true`,打开后才应用超时、语句、函数递归、
|
|
92
|
+
累计分配和 Promise 等待限制。表后端事件仍用 `diy_table.V8Unlimited`。
|
|
93
|
+
常驻内存保护、外部取消、并发、接口嵌套深度、权限沙箱与数据库限制始终
|
|
94
|
+
生效;两类开关都只能来自持久化可信元数据,不能从请求参数启用。
|
|
96
95
|
- 服务端另有一个内置受信任特例:主租户中由持久队列恢复的
|
|
97
96
|
`import-microi-store-package`:必须同时具备可信用户快照、`Level >= 9999`
|
|
98
97
|
和 TaskId,才允许 `V8.Limits.MemoryAccounting=ResidentMemoryGuardOnly`。
|
|
@@ -167,6 +167,10 @@ V8.OpenDialog({
|
|
|
167
167
|
|
|
168
168
|
按钮应设置稳定 `Id`、`ShowRow:true`、`Icon:"fas fa-key"`。前端显隐只改善体验,创建、查询、吊销等接口仍必须在服务端重新校验普通登录会话以及本人/平台管理员权限。
|
|
169
169
|
|
|
170
|
+
复杂策略编辑器(例如角色 AI 数据权限)应把行按钮持久化到菜单 `MoreBtns`,按钮只通过
|
|
171
|
+
`V8.OpenDialog({ ComponentName, DataAppend })` 打开已注册的 Vue 组件。验收需同时回读菜单按钮 JSON、
|
|
172
|
+
确认组件进入生产构建,并在真实列表行打开弹层;只保留旧定制页面里的按钮不算低代码菜单已迁移。
|
|
173
|
+
|
|
170
174
|
<!-- /microi-progressive:chunk -->
|
|
171
175
|
## 详细参考路由(渐进披露)
|
|
172
176
|
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
- `_InvokeType:'Server'` 只表达事件调用语义,不是客户端授权开关;浏览器伪造它不会获得受信任权限
|
|
36
36
|
- `V8.FormSubmitAction` 的值是 `'Insert'`/`'Update'`/`'Delete'`(非 Add/Upt/Del)
|
|
37
37
|
- 在 DataFilterV8 中使用 `V8.CacheData` 缓存查询结果,避免每行执行 N+1 查询
|
|
38
|
-
- 表事件调用下游接口时,`diy_table.V8Unlimited`
|
|
38
|
+
- 表事件调用下游接口时,`diy_table.V8Unlimited` 不会改变下游接口;下游接口独立读取正向 `sys_apiengine.V8Limit`(默认 0 表示不限 Jint 单次预算,1 表示启用限制)
|
|
39
39
|
|
|
40
40
|
### 复盘:提交后事件误把增量表单当作完整记录
|
|
41
41
|
|