@microi.net/cli 5.9.2 → 5.9.4

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.
Files changed (171) hide show
  1. package/.codebuddy-plugin/marketplace.json +2 -2
  2. package/.codebuddy-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +1 -1
  4. package/.mcp.json +1 -1
  5. package/.workbuddy-plugin/marketplace.json +2 -2
  6. package/.workbuddy-plugin/plugin.json +1 -1
  7. package/assets/build-meta.json +6 -6
  8. package/cordis.patch.yml +1 -1
  9. package/package.json +1 -1
  10. package/scripts/codex-marketplace.json +20 -20
  11. package/scripts/mcp-codex-stdio-adapter.js +189 -189
  12. package/scripts/mcp-server.js +81 -81
  13. package/scripts/mcp-trae-windows-launcher.cmd +21 -21
  14. package/scripts/microi-cli-mcp.js +7 -7
  15. package/scripts/microi-codex-broker.js +21 -5
  16. package/scripts/microi-codex-router.js +17 -1
  17. package/scripts/microi-skills.meta.json +354 -348
  18. package/skills/.microi-skills-version.json +2 -2
  19. package/skills/.progressive-disclosure-manifest.json +122 -115
  20. package/skills/README.md +287 -287
  21. package/skills/ai-engine/SKILL.md +269 -269
  22. package/skills/ai-engine/references/ai-employees.md +48 -48
  23. package/skills/ai-engine/references/self-hosted-digital-human.md +59 -59
  24. package/skills/ai-platform-governance/SKILL.md +177 -177
  25. package/skills/ai-platform-governance/references/progressive-01-/345/212/237/350/203/275/345/274/200/345/205/263.md +190 -190
  26. package/skills/app-store/SKILL.md +525 -525
  27. package/skills/business-blueprint/SKILL.md +193 -193
  28. package/skills/datasource-engine/SKILL.md +93 -93
  29. package/skills/dos-orm/SKILL.md +101 -95
  30. package/skills/dos-orm/references/api-reference.md +229 -229
  31. package/skills/email-engine/SKILL.md +81 -81
  32. package/skills/email-engine/references/v8-email.md +34 -34
  33. package/skills/job-engine/SKILL.md +176 -176
  34. package/skills/message-notification/SKILL.md +156 -156
  35. package/skills/message-notification/references/contracts.md +102 -102
  36. package/skills/microi/SKILL.md +14 -14
  37. package/skills/microi-ai-application/SKILL.md +115 -115
  38. package/skills/microi-ai-application/references/frontend-baseline.md +164 -164
  39. package/skills/microi-client-frontend/SKILL.md +242 -242
  40. package/skills/microi-client-frontend/references/progressive-01-3-/345/212/250/346/200/201/346/214/211/351/222/256/347/263/273/347/273/237.md +144 -144
  41. package/skills/microi-client-frontend/references/progressive-02-8-/350/277/220/350/241/214/346/227/266/351/253/230/351/242/221/345/235/221/345/244/215/347/233/230.md +196 -196
  42. package/skills/microi-client-frontend/references/progressive-03-vue3-/345/211/215/347/253/257/345/276/256/346/234/215/345/212/241/345/256/277/344/270/273/350/247/204/345/210/231.md +167 -167
  43. package/skills/microi-codex-installer/SKILL.md +231 -231
  44. package/skills/microi-datasource-mapping/SKILL.md +122 -122
  45. package/skills/microi-db-schema/SKILL.md +175 -175
  46. package/skills/microi-db-schema/references/core-tables.md +695 -695
  47. package/skills/microi-db-schema/references/form-component-options.md +256 -256
  48. package/skills/microi-db-schema/references/schema-overview.md +202 -202
  49. package/skills/microi-db-schema/references/schema.md +646 -646
  50. package/skills/microi-db-schema/references/table-catalog.md +1599 -1599
  51. package/skills/microi-deployment/SKILL.md +239 -220
  52. package/skills/microi-deployment/references/deployment-matrix.md +109 -109
  53. package/skills/microi-docs-coverage/SKILL.md +133 -133
  54. package/skills/microi-docs-coverage/references/capability-map.md +90 -90
  55. package/skills/microi-form-engine/SKILL.md +338 -333
  56. package/skills/microi-form-engine/references/component-catalog.md +218 -218
  57. package/skills/microi-form-engine/references/data-source-events.md +124 -124
  58. package/skills/microi-frontend-sdk/SKILL.md +194 -194
  59. package/skills/microi-frontend-sdk/references/progressive-01-token-/345/275/223/345/211/215/347/231/273/345/275/225/347/224/250/346/210/267/344/270/216/345/275/223/345/211/215/347/273/210/347/253/257/347/231/273/345/275/225/345/215/217/350/256/256.md +176 -176
  60. package/skills/microi-left-right-layout/SKILL.md +141 -141
  61. package/skills/microi-microservice/SKILL.md +332 -328
  62. package/skills/microi-microservice/references/runtime-delivery.md +282 -278
  63. package/skills/microi-mobile-app-quality/SKILL.md +203 -203
  64. package/skills/microi-mobile-app-quality/references/progressive-01-4-/351/207/215/350/246/201/346/214/211/351/222/256/345/277/205/351/241/273/345/270/246/345/233/276/346/240/207.md +227 -227
  65. package/skills/microi-mobile-app-quality/references/progressive-02-9-/344/270/273/351/242/230/345/210/207/346/215/242/345/277/205/351/241/273/347/234/237/345/256/236/344/270/224/345/205/250/345/261/200/347/224/237/346/225/210.md +129 -129
  66. package/skills/microi-solution-quotation/SKILL.md +78 -78
  67. package/skills/microi-sso/SKILL.md +95 -91
  68. package/skills/microi-sso/references/acceptance.md +51 -49
  69. package/skills/microi-sso/references/configuration-and-security.md +53 -53
  70. package/skills/microi-sso/references/inbound.md +53 -53
  71. package/skills/microi-sso/references/outbound.md +43 -39
  72. package/skills/microi-ui/SKILL.md +192 -192
  73. package/skills/microi-ui/references/progressive-01-/347/247/273/345/212/250/347/253/257/345/234/272/346/231/257/350/223/235/345/233/276.md +183 -183
  74. package/skills/microi-uniapp-frontend/SKILL.md +206 -204
  75. package/skills/microi-uniapp-frontend/references/progressive-01-/347/247/273/345/212/250/347/253/257/345/210/206/347/261/273-/345/217/214/346/240/217/345/210/227/350/241/250/347/213/254/347/253/213/346/273/232/345/212/250.md +261 -261
  76. package/skills/microi-uniapp-frontend/references/progressive-02-/345/205/263/351/224/256/344/270/232/345/212/241/350/265/204/344/272/247/344/270/215/345/276/227/351/273/230/350/256/244/351/200/211/344/270/255.md +154 -154
  77. package/skills/module-engine/SKILL.md +255 -255
  78. package/skills/module-engine/references/module-config.md +204 -204
  79. package/skills/ocr-engine/SKILL.md +113 -113
  80. package/skills/page-engine/SKILL.md +206 -206
  81. package/skills/page-engine/references/progressive-01-/346/211/200/346/234/211/347/273/204/344/273/266/347/261/273/345/236/213.md +234 -234
  82. package/skills/page-engine/references/progressive-02-/347/211/210/346/234/254/345/216/206/345/217/262-/345/271/266/345/217/221/344/277/235/345/255/230/344/270/216/345/233/236/346/273/232.md +60 -60
  83. package/skills/performance-testing/SKILL.md +227 -221
  84. package/skills/playwright-e2e/SKILL.md +197 -196
  85. package/skills/playwright-e2e/references/progressive-01-/345/205/250/350/207/252/345/212/250/347/231/273/345/275/225-/345/205/215/351/252/214/350/257/201/347/240/201-/344/275/206/344/270/215/345/205/215/345/257/206/347/240/201-/345/277/205/350/257/273.md +173 -173
  86. package/skills/playwright-e2e/references/progressive-02-/346/226/207/345/255/227/345/257/271/346/257/224/345/272/246/344/270/216/345/217/257/350/257/273/346/200/247/350/207/252/345/212/250/345/214/226/346/243/200/346/237/245-/345/277/205/345/201/232.md +183 -183
  87. package/skills/playwright-e2e/references/progressive-03-microi-helper-/346/250/241/346/235/277.md +221 -221
  88. package/skills/playwright-e2e/references/progressive-04-ci-/345/273/272/350/256/256.md +115 -115
  89. package/skills/print-engine/SKILL.md +259 -259
  90. package/skills/production-readonly-audit/SKILL.md +41 -41
  91. package/skills/report-engine/SKILL.md +71 -71
  92. package/skills/search-engine/SKILL.md +75 -75
  93. package/skills/spider-engine/SKILL.md +190 -190
  94. package/skills/system-observability/SKILL.md +259 -246
  95. package/skills/system-observability/references/memory-incident-triage.md +77 -77
  96. package/skills/translate-engine/SKILL.md +140 -140
  97. package/skills/ui-design/SKILL.md +223 -223
  98. package/skills/ui-design/assets/templates/MCI-DESIGN.md +206 -206
  99. package/skills/ui-design/references/design-pattern-library.md +184 -184
  100. package/skills/ui-design/references/mci-design-contract.md +163 -163
  101. package/skills/ui-design/references/motion-and-media.md +78 -78
  102. package/skills/ui-design/references/product-flow-recipes.md +94 -94
  103. package/skills/ui-design/references/progressive-01-/351/242/234/350/211/262/344/275/223/347/263/273-css-variables-/346/224/257/346/214/201/344/270/273/351/242/230/345/210/207/346/215/242.md +218 -218
  104. package/skills/ui-design/references/progressive-02-/345/255/227/344/275/223.md +164 -164
  105. package/skills/ui-design/references/progressive-03-/345/212/250/346/225/210/350/247/204/350/214/203-/344/270/260/345/257/214/344/275/206/344/270/215/345/215/241.md +235 -235
  106. package/skills/ui-design/references/progressive-04-/347/273/204/344/273/266/351/243/216/346/240/274/351/200/237/346/237/245.md +152 -152
  107. package/skills/ui-design/references/progressive-05-/347/247/273/345/212/250/347/253/257/344/270/223/347/224/250/350/247/204/350/214/203.md +238 -238
  108. package/skills/ui-design/references/progressive-06-/344/270/273/351/242/230/345/210/207/346/215/242/345/256/236/347/216/260.md +194 -194
  109. package/skills/ui-design/references/progressive-07-/351/200/237/346/237/245-/344/273/216/345/244/264/346/220/255/345/273/272/344/270/200/344/270/252/347/247/273/345/212/250/347/253/257/351/241/265/351/235/242.md +207 -207
  110. package/skills/ui-design/references/progressive-08-/350/241/250/345/215/225/345/210/206/347/273/204/350/247/204/350/214/203-tabs-vs-collapsegroup-/345/274/272/345/210/266.md +142 -142
  111. package/skills/uniapp-mall-assets/SKILL.md +176 -176
  112. package/skills/unity-integration/SKILL.md +178 -171
  113. package/skills/unity-integration/references/ai-app-delivery.md +119 -119
  114. package/skills/unity-integration/references/sdk-api.md +82 -82
  115. package/skills/unity-integration/references/toolbox-migration.md +66 -66
  116. package/skills/unity-integration/references/webgl-hosting.md +57 -57
  117. package/skills/v8-api-config/SKILL.md +388 -388
  118. package/skills/v8-cache-pattern/SKILL.md +312 -312
  119. package/skills/v8-crud-api/SKILL.md +179 -178
  120. package/skills/v8-crud-api/references/progressive-01-/346/237/245/350/257/242/345/210/227/350/241/250-/345/210/206/351/241/265.md +226 -226
  121. package/skills/v8-crud-api/references/progressive-02-where-/346/235/241/344/273/266/350/257/255/346/263/225/351/200/237/346/237/245.md +49 -49
  122. package/skills/v8-debugging/SKILL.md +284 -284
  123. package/skills/v8-explorer-tree/SKILL.md +228 -228
  124. package/skills/v8-export-import/SKILL.md +219 -219
  125. package/skills/v8-export-import/references/progressive-01-excellayout-/351/253/230/347/272/247/350/207/252/347/224/261/345/270/203/345/261/200.md +211 -211
  126. package/skills/v8-export-import/references/progressive-02-powerpoint-/345/257/274/345/207/272.md +202 -202
  127. package/skills/v8-export-import/references/progressive-03-/345/256/211/345/205/250-/346/200/247/350/203/275/346/263/250/346/204/217.md +42 -42
  128. package/skills/v8-file-upload/SKILL.md +255 -284
  129. package/skills/v8-file-upload/references/cdn-alias-repair.md +13 -0
  130. package/skills/v8-file-upload/references/progressive-01-/345/205/254/346/234/211/346/241/266-vs-/347/247/201/346/234/211/346/241/266.md +263 -263
  131. package/skills/v8-file-upload/references/progressive-02-office-/346/226/207/344/273/266/345/234/250/347/272/277/347/274/226/350/276/221/347/211/210/346/234/254/345/217/267/350/247/204/345/210/231.md +161 -161
  132. package/skills/v8-file-upload/references/progressive-03-/347/251/272/347/233/256/345/275/225/346/240/207/350/256/260/344/270/216/350/277/234/347/250/213/344/270/213/350/275/275.md +36 -0
  133. package/skills/v8-formengine-http/SKILL.md +238 -238
  134. package/skills/v8-frontend-events/SKILL.md +180 -180
  135. package/skills/v8-frontend-events/references/bluetooth-print-api.md +135 -135
  136. package/skills/v8-frontend-events/references/bluetooth-print.md +258 -258
  137. package/skills/v8-frontend-events/references/progressive-01-/345/210/227/350/241/250/344/272/213/344/273/266.md +219 -219
  138. package/skills/v8-http-integration/SKILL.md +182 -182
  139. package/skills/v8-http-integration/references/progressive-01-get-/350/257/267/346/261/202.md +220 -220
  140. package/skills/v8-http-integration/references/progressive-02-/351/224/231/350/257/257/345/244/204/347/220/206/346/250/241/345/274/217.md +44 -44
  141. package/skills/v8-image-processing/SKILL.md +190 -190
  142. package/skills/v8-image-processing/references/api-reference.md +623 -623
  143. package/skills/v8-menu-buttons/SKILL.md +186 -186
  144. package/skills/v8-menu-buttons/references/progressive-01-2-/346/214/211/351/222/256/345/257/271/350/261/241-schema.md +222 -222
  145. package/skills/v8-menu-buttons/references/progressive-02-8-/346/250/241/345/274/217-f-/345/220/216/345/217/260/344/273/273/345/212/241/346/214/211/351/222/256-/351/225/277/344/273/273/345/212/241.md +228 -228
  146. package/skills/v8-menu-buttons/references/progressive-03-10-/345/217/215/346/250/241/345/274/217-/351/201/277/345/205/215.md +104 -104
  147. package/skills/v8-mongodb/SKILL.md +200 -200
  148. package/skills/v8-mq-mqtt/SKILL.md +178 -176
  149. package/skills/v8-mq-mqtt/references/mqtt-production.md +352 -342
  150. package/skills/v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-/347/211/251/350/201/224/347/275/221.md +181 -181
  151. package/skills/v8-saas-multi-tenant/SKILL.md +305 -305
  152. package/skills/v8-security/SKILL.md +227 -210
  153. package/skills/v8-security/references/progressive-01-2-/346/235/203/351/231/220/346/240/241/351/252/214.md +200 -200
  154. package/skills/v8-security/references/progressive-02-7-/346/227/245/345/277/227/350/256/260/345/275/225.md +160 -160
  155. package/skills/v8-sql-query/SKILL.md +302 -302
  156. package/skills/v8-table-event/SKILL.md +176 -176
  157. package/skills/v8-table-event/references/progressive-01-informv8-js-/350/241/250/345/215/225/346/211/223/345/274/200/344/272/213/344/273/266.md +216 -216
  158. 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 +46 -46
  159. package/skills/v8-tcp-integration/SKILL.md +158 -147
  160. package/skills/v8-template-engine/SKILL.md +167 -167
  161. package/skills/v8-utilities/SKILL.md +104 -104
  162. package/skills/v8-utilities/references/client-api-index.md +143 -143
  163. package/skills/v8-utilities/references/platform-http-routes.md +83 -83
  164. package/skills/v8-utilities/references/server-api-index.md +188 -188
  165. package/skills/v8-workflow/SKILL.md +252 -252
  166. package/skills/v8-workflow/references/progressive-01-/350/212/202/347/202/271/345/274/200/345/247/213-v8-/344/272/213/344/273/266.md +180 -180
  167. package/skills/v8-workflow/references/workflow-configuration.md +49 -49
  168. package/skills/vision-engine/SKILL.md +160 -160
  169. package/skills/vision-engine/references/architecture-and-acceptance.md +194 -194
  170. package/skills/workspace-conventions/SKILL.md +13 -13
  171. package/skills/workspace-conventions/references/progressive-03-cli-/344/270/216-ide-/346/217/222/344/273/266/351/224/231/347/211/210/345/205/261/345/255/230/347/272/246/345/256/232.md +2 -2
@@ -1,71 +1,71 @@
1
- ---
2
- name: report-engine
3
- description: Microi 报表引擎设计与验收规范。用于 Rpt_Report 虚拟表格、数据源、报表字段、查询/增删改接口替换、统计聚合、导出、行级权限和界面引擎图表。
4
- ---
5
-
6
- > **Microi吾码基础规范(强制):** 任何 AI 模型与宿主每次新建或接续吾码任务,先完整读取 `../workspace-conventions/SKILL.md`,必须执行版本播报、`@microi.net/cli` 后台自动升级、Skills/MCP 同步和进度播报。安装与诊断读取 `../microi-codex-installer/SKILL.md`;更新失败延后重试,不阻断当前工作。
7
-
8
- # Microi 报表引擎
9
-
10
- ## 定位
11
-
12
- 报表引擎以 `Rpt_Report`、报表字段配置和数据源引擎组成虚拟表格。表格展示使用报表引擎;ECharts 图表和仪表盘使用界面引擎。报表字段是虚拟字段,不能假设存在同名物理表列。
13
-
14
- ## 建模顺序
15
-
16
- 1. 明确指标口径、时间粒度、维度、权限和导出上限。
17
- 2. 创建只读数据源(SQL/V8/JSON),使用稳定 `DataSourceKey`。
18
- 3. 创建报表并绑定数据源。
19
- 4. 配置字段 `Name/Label/Component`、查询列、排序、格式和表内编辑。
20
- 5. 如需写操作,为查询/新增/修改/删除分别绑定专用接口引擎。
21
- 6. 菜单只暴露用户需要的报表入口,配置数据范围。
22
-
23
- ## 权限与 SQL
24
-
25
- - 报表数据源必须应用当前租户和服务端用户数据范围。菜单权限不会自动保护任意聚合 SQL。
26
- - 聚合结果也可能泄露敏感信息;小样本、人员薪资、客户金额等需最小分组阈值或字段脱敏。
27
- - SQL 动态值参数化,维度/排序/指标使用白名单映射,不接收原始 SQL、列名或 `GROUP BY`。
28
- - 管理员专用平台表不能作为普通用户报表数据源;只读委托表只有获得真实 `Read` 授权后才能查询,`mic_page/mic_print` 继续按角色权限处理。
29
-
30
- ## 写入型报表
31
-
32
- 统计报表通常来自多表。新增、修改、删除必须调用接口引擎,在一个事务中完成校验与写入:
33
-
34
- ```js
35
- var result = await V8.ApiEngine.Run('report_adjust_inventory', {
36
- RowId: V8.Form.Id,
37
- ExpectedVersion: V8.Form.Version,
38
- Quantity: Number(V8.Form.Quantity || 0)
39
- });
40
- ```
41
-
42
- 接口引擎重新校验角色、记录范围、当前版本和业务状态。前端隐藏按钮、只读字段或报表行数据不能作为授权。
43
-
44
- ## 性能
45
-
46
- - 默认分页,限制最大页数/每页行数/导出行数。
47
- - 大聚合在数据库建立合适索引或使用预聚合表;不要每次全表扫描。
48
- - 缓存 Key 包含 `OsClient + ReportId + 权限主体/授权版本 + 查询参数哈希`。
49
- - 导出走后台任务;生成文件放私有桶并绑定菜单、记录和字段访问上下文。
50
-
51
- ## MCP 工作流
52
-
53
- 1. `microi_get_db_schema` 读取 `Rpt_Report`、数据源、字段、菜单和业务表。
54
- 2. `microi_save_data_source` 保存数据源并回读。
55
- 3. 创建/更新报表及字段;复杂写操作先创建接口引擎。
56
- 4. 设置菜单与角色权限。
57
- 5. 用真实普通角色验收列表、筛选、汇总、详情、编辑与导出。
58
-
59
- ## 图表
60
-
61
- 界面引擎图表应调用返回稳定 `{Code, Data}` 的统计接口引擎,不在前端下载明细再聚合。统计接口设置时间范围、维度和最大点数,返回空数据时保持稳定结构。
62
-
63
- ## 验收清单
64
-
65
- - [ ] 指标口径、时区和小数精度明确
66
- - [ ] 当前租户与行级范围在数据库查询中生效
67
- - [ ] 虚拟字段与物理字段没有混用
68
- - [ ] 写操作走事务接口引擎并校验并发版本
69
- - [ ] 分页、聚合、导出均有资源上限
70
- - [ ] 缓存按租户和权限隔离
71
- - [ ] 普通角色、无权限角色、跨租户负向测试通过
1
+ ---
2
+ name: report-engine
3
+ description: Microi 报表引擎设计与验收规范。用于 Rpt_Report 虚拟表格、数据源、报表字段、查询/增删改接口替换、统计聚合、导出、行级权限和界面引擎图表。
4
+ ---
5
+
6
+ > **Microi吾码基础规范(强制):** 任何 AI 模型与宿主每次新建或接续吾码任务,先完整读取 `../workspace-conventions/SKILL.md`,必须执行版本播报、`@microi.net/cli` 后台自动升级、Skills/MCP 同步和进度播报。安装与诊断读取 `../microi-codex-installer/SKILL.md`;更新失败延后重试,不阻断当前工作。
7
+
8
+ # Microi 报表引擎
9
+
10
+ ## 定位
11
+
12
+ 报表引擎以 `Rpt_Report`、报表字段配置和数据源引擎组成虚拟表格。表格展示使用报表引擎;ECharts 图表和仪表盘使用界面引擎。报表字段是虚拟字段,不能假设存在同名物理表列。
13
+
14
+ ## 建模顺序
15
+
16
+ 1. 明确指标口径、时间粒度、维度、权限和导出上限。
17
+ 2. 创建只读数据源(SQL/V8/JSON),使用稳定 `DataSourceKey`。
18
+ 3. 创建报表并绑定数据源。
19
+ 4. 配置字段 `Name/Label/Component`、查询列、排序、格式和表内编辑。
20
+ 5. 如需写操作,为查询/新增/修改/删除分别绑定专用接口引擎。
21
+ 6. 菜单只暴露用户需要的报表入口,配置数据范围。
22
+
23
+ ## 权限与 SQL
24
+
25
+ - 报表数据源必须应用当前租户和服务端用户数据范围。菜单权限不会自动保护任意聚合 SQL。
26
+ - 聚合结果也可能泄露敏感信息;小样本、人员薪资、客户金额等需最小分组阈值或字段脱敏。
27
+ - SQL 动态值参数化,维度/排序/指标使用白名单映射,不接收原始 SQL、列名或 `GROUP BY`。
28
+ - 管理员专用平台表不能作为普通用户报表数据源;只读委托表只有获得真实 `Read` 授权后才能查询,`mic_page/mic_print` 继续按角色权限处理。
29
+
30
+ ## 写入型报表
31
+
32
+ 统计报表通常来自多表。新增、修改、删除必须调用接口引擎,在一个事务中完成校验与写入:
33
+
34
+ ```js
35
+ var result = await V8.ApiEngine.Run('report_adjust_inventory', {
36
+ RowId: V8.Form.Id,
37
+ ExpectedVersion: V8.Form.Version,
38
+ Quantity: Number(V8.Form.Quantity || 0)
39
+ });
40
+ ```
41
+
42
+ 接口引擎重新校验角色、记录范围、当前版本和业务状态。前端隐藏按钮、只读字段或报表行数据不能作为授权。
43
+
44
+ ## 性能
45
+
46
+ - 默认分页,限制最大页数/每页行数/导出行数。
47
+ - 大聚合在数据库建立合适索引或使用预聚合表;不要每次全表扫描。
48
+ - 缓存 Key 包含 `OsClient + ReportId + 权限主体/授权版本 + 查询参数哈希`。
49
+ - 导出走后台任务;生成文件放私有桶并绑定菜单、记录和字段访问上下文。
50
+
51
+ ## MCP 工作流
52
+
53
+ 1. `microi_get_db_schema` 读取 `Rpt_Report`、数据源、字段、菜单和业务表。
54
+ 2. `microi_save_data_source` 保存数据源并回读。
55
+ 3. 创建/更新报表及字段;复杂写操作先创建接口引擎。
56
+ 4. 设置菜单与角色权限。
57
+ 5. 用真实普通角色验收列表、筛选、汇总、详情、编辑与导出。
58
+
59
+ ## 图表
60
+
61
+ 界面引擎图表应调用返回稳定 `{Code, Data}` 的统计接口引擎,不在前端下载明细再聚合。统计接口设置时间范围、维度和最大点数,返回空数据时保持稳定结构。
62
+
63
+ ## 验收清单
64
+
65
+ - [ ] 指标口径、时区和小数精度明确
66
+ - [ ] 当前租户与行级范围在数据库查询中生效
67
+ - [ ] 虚拟字段与物理字段没有混用
68
+ - [ ] 写操作走事务接口引擎并校验并发版本
69
+ - [ ] 分页、聚合、导出均有资源上限
70
+ - [ ] 缓存按租户和权限隔离
71
+ - [ ] 普通角色、无权限角色、跨租户负向测试通过
@@ -1,75 +1,75 @@
1
- ---
2
- name: search-engine
3
- description: Microi 搜索引擎索引、同步、查询与安全规范。用于 Elasticsearch 表索引、增量同步、字段映射、SearchAfter 分页、租户与菜单数据范围、重建和多节点验收。
4
- ---
5
-
6
- > **Microi吾码基础规范(强制):** 任何 AI 模型与宿主每次新建或接续吾码任务,先完整读取 `../workspace-conventions/SKILL.md`,必须执行版本播报、`@microi.net/cli` 后台自动升级、Skills/MCP 同步和进度播报。安装与诊断读取 `../microi-codex-installer/SKILL.md`;更新失败延后重试,不阻断当前工作。
7
-
8
- # Microi SearchEngine
9
-
10
- ## 能力与事实源
11
-
12
- 搜索引擎提供建索引/全量同步、单文档新增修改删除、字段映射、查询和 `SearchAfter` 深分页。数据库仍是业务事实源,搜索索引是可重建的读模型,不能直接作为权限、余额、库存或审批状态事实。
13
-
14
- ## 租户隔离
15
-
16
- - 索引名必须包含规范化 `OsClient` 和表标识,禁止不同租户共用无过滤索引。
17
- - V8/HTTP 调用的 `OsClient` 必须由 Token/服务端上下文确定,不能信任 Query/Body。
18
- - 搜索服务连接、用户名和密码只从服务端 SaaS 配置读取,不进入前端 `SysConfig`、V8 返回或日志。
19
-
20
- ## 索引流程
21
-
22
- 1. 读取 `diy_table/diy_field` 确定可搜索字段、类型和分词需求。
23
- 2. 先扩展索引映射,再开始双写/增量同步。
24
- 3. 全量回填使用稳定游标或主键分页,记录 checkpoint。
25
- 4. 对账数据库数量、抽样字段和删除记录。
26
- 5. 切换读流量后保留旧索引回滚窗口。
27
-
28
- 可用的服务端方法包括 `AsyncIndex`、`AsyncTableDataToIndex`、`AddDocument`、`UpdateDocument`、`DeleteDocument`、`AddField`、`GetSearchResponse`。
29
-
30
- ## 查询安全
31
-
32
- - 用户关键词作为值参数,不允许决定索引名、任意字段、脚本或原始 DSL。
33
- - 排序字段从白名单映射;限制 `PageSize`、高亮长度和聚合桶数量。
34
- - 普通用户的菜单 `SqlWhere`/行级范围不会天然出现在 Elasticsearch 查询中。必须将服务端计算出的允许记录范围同步为可过滤字段,或先取得授权 Id 集合再查询;不能搜索后再在前端过滤。
35
- - 敏感字段不入索引,或使用独立受控索引;日志只记录 trace id、耗时和计数。
36
-
37
- ## 同步可靠性
38
-
39
- 数据库写成功、索引写失败时使用 outbox 事件,`EventId` 全局唯一。消费端按事件 Id 幂等;删除使用 tombstone。索引更新失败不能回滚已经提交的业务事务,应告警并重试。
40
-
41
- 全量重建和增量消费可能在多个节点同时运行,需分布式租约与 checkpoint 条件更新;本机静态标志不能作为“正在重建”的事实。
42
-
43
- ## 查询示例
44
-
45
- ```csharp
46
- var result = await search.GetSearchResponse(new MicroiSearchEngineParam
47
- {
48
- OsClient = osClient,
49
- TableName = "Diy_Product",
50
- Keyword = keyword,
51
- PageSize = Math.Min(pageSize, 100),
52
- Sorts = new List<MicroiSearchEngineSortModel>
53
- {
54
- new MicroiSearchEngineSortModel { Field = "UpdateTime", Order = "desc" }
55
- }
56
- });
57
- ```
58
-
59
- 字段名与排序必须在进入此对象前经过服务端白名单。
60
-
61
- ## MCP/交付流程
62
-
63
- - 先用 `microi_get_db_schema` 和菜单元数据确认字段与权限。
64
- - 搜索配置写入后回读实际索引名、字段映射和租户连接。
65
- - 用管理员、普通有权限用户、无权限用户和另一个租户验收。
66
- - 覆盖全量重建中断、重复事件、删除、滚动升级、搜索服务短暂故障。
67
-
68
- ## 验收清单
69
-
70
- - [ ] 索引按租户隔离,跨租户搜索为零
71
- - [ ] 菜单/行级范围在查询前生效
72
- - [ ] 字段、排序、分页、聚合均有白名单和上限
73
- - [ ] 数据库与索引可对账、可重建
74
- - [ ] outbox 重试幂等,无永久漏同步
75
- - [ ] 密钥和敏感字段不进入前端/日志/索引
1
+ ---
2
+ name: search-engine
3
+ description: Microi 搜索引擎索引、同步、查询与安全规范。用于 Elasticsearch 表索引、增量同步、字段映射、SearchAfter 分页、租户与菜单数据范围、重建和多节点验收。
4
+ ---
5
+
6
+ > **Microi吾码基础规范(强制):** 任何 AI 模型与宿主每次新建或接续吾码任务,先完整读取 `../workspace-conventions/SKILL.md`,必须执行版本播报、`@microi.net/cli` 后台自动升级、Skills/MCP 同步和进度播报。安装与诊断读取 `../microi-codex-installer/SKILL.md`;更新失败延后重试,不阻断当前工作。
7
+
8
+ # Microi SearchEngine
9
+
10
+ ## 能力与事实源
11
+
12
+ 搜索引擎提供建索引/全量同步、单文档新增修改删除、字段映射、查询和 `SearchAfter` 深分页。数据库仍是业务事实源,搜索索引是可重建的读模型,不能直接作为权限、余额、库存或审批状态事实。
13
+
14
+ ## 租户隔离
15
+
16
+ - 索引名必须包含规范化 `OsClient` 和表标识,禁止不同租户共用无过滤索引。
17
+ - V8/HTTP 调用的 `OsClient` 必须由 Token/服务端上下文确定,不能信任 Query/Body。
18
+ - 搜索服务连接、用户名和密码只从服务端 SaaS 配置读取,不进入前端 `SysConfig`、V8 返回或日志。
19
+
20
+ ## 索引流程
21
+
22
+ 1. 读取 `diy_table/diy_field` 确定可搜索字段、类型和分词需求。
23
+ 2. 先扩展索引映射,再开始双写/增量同步。
24
+ 3. 全量回填使用稳定游标或主键分页,记录 checkpoint。
25
+ 4. 对账数据库数量、抽样字段和删除记录。
26
+ 5. 切换读流量后保留旧索引回滚窗口。
27
+
28
+ 可用的服务端方法包括 `AsyncIndex`、`AsyncTableDataToIndex`、`AddDocument`、`UpdateDocument`、`DeleteDocument`、`AddField`、`GetSearchResponse`。
29
+
30
+ ## 查询安全
31
+
32
+ - 用户关键词作为值参数,不允许决定索引名、任意字段、脚本或原始 DSL。
33
+ - 排序字段从白名单映射;限制 `PageSize`、高亮长度和聚合桶数量。
34
+ - 普通用户的菜单 `SqlWhere`/行级范围不会天然出现在 Elasticsearch 查询中。必须将服务端计算出的允许记录范围同步为可过滤字段,或先取得授权 Id 集合再查询;不能搜索后再在前端过滤。
35
+ - 敏感字段不入索引,或使用独立受控索引;日志只记录 trace id、耗时和计数。
36
+
37
+ ## 同步可靠性
38
+
39
+ 数据库写成功、索引写失败时使用 outbox 事件,`EventId` 全局唯一。消费端按事件 Id 幂等;删除使用 tombstone。索引更新失败不能回滚已经提交的业务事务,应告警并重试。
40
+
41
+ 全量重建和增量消费可能在多个节点同时运行,需分布式租约与 checkpoint 条件更新;本机静态标志不能作为“正在重建”的事实。
42
+
43
+ ## 查询示例
44
+
45
+ ```csharp
46
+ var result = await search.GetSearchResponse(new MicroiSearchEngineParam
47
+ {
48
+ OsClient = osClient,
49
+ TableName = "Diy_Product",
50
+ Keyword = keyword,
51
+ PageSize = Math.Min(pageSize, 100),
52
+ Sorts = new List<MicroiSearchEngineSortModel>
53
+ {
54
+ new MicroiSearchEngineSortModel { Field = "UpdateTime", Order = "desc" }
55
+ }
56
+ });
57
+ ```
58
+
59
+ 字段名与排序必须在进入此对象前经过服务端白名单。
60
+
61
+ ## MCP/交付流程
62
+
63
+ - 先用 `microi_get_db_schema` 和菜单元数据确认字段与权限。
64
+ - 搜索配置写入后回读实际索引名、字段映射和租户连接。
65
+ - 用管理员、普通有权限用户、无权限用户和另一个租户验收。
66
+ - 覆盖全量重建中断、重复事件、删除、滚动升级、搜索服务短暂故障。
67
+
68
+ ## 验收清单
69
+
70
+ - [ ] 索引按租户隔离,跨租户搜索为零
71
+ - [ ] 菜单/行级范围在查询前生效
72
+ - [ ] 字段、排序、分页、聚合均有白名单和上限
73
+ - [ ] 数据库与索引可对账、可重建
74
+ - [ ] outbox 重试幂等,无永久漏同步
75
+ - [ ] 密钥和敏感字段不进入前端/日志/索引