@microi.net/cli 5.0.7 → 5.0.9
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 +4 -4
- package/cordis.patch.yml +1 -1
- package/package.json +1 -1
- package/scripts/mcp-server.js +81 -81
- package/scripts/microi-skills.meta.json +180 -180
- package/skills/.microi-skills-version.json +2 -2
- package/skills/microi-ai-application/SKILL.md +2 -1
- package/skills/unity-integration/references/ai-app-delivery.md +2 -0
- package/skills/v8-saas-multi-tenant/SKILL.md +8 -8
- package/skills/v8-security/SKILL.md +7 -6
- package/skills/workspace-conventions/references/progressive-01-/347/211/210/346/234/254/346/233/264/346/226/260/346/227/245/345/277/227/344/277/235/346/212/244/350/247/204/345/210/231-/345/274/272/345/210/266.md +1 -1
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"builtAt": "2026-08-
|
|
2
|
+
"builtAt": "2026-08-16T20:54:46.436Z",
|
|
3
3
|
"source": "../microi.skills",
|
|
4
4
|
"extension": {
|
|
5
5
|
"name": "v8-engine",
|
|
6
|
-
"version": "5.0.
|
|
6
|
+
"version": "5.0.9",
|
|
7
7
|
"publisher": "Microi"
|
|
8
8
|
},
|
|
9
9
|
"skills": {
|
|
10
|
-
"version": "5.0.
|
|
10
|
+
"version": "5.0.9",
|
|
11
11
|
"versionRule": "Microi version uses three numeric parts. Each publish increments the last part; when a part exceeds 9 it carries to the previous part: 1.0.9 -> 1.1.0, 1.9.9 -> 2.0.0.",
|
|
12
12
|
"managedBy": "Microi.VSCode/bump-version.js"
|
|
13
13
|
},
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
"dir": "dist/microi.skills",
|
|
16
16
|
"files": 170,
|
|
17
17
|
"skills": 62,
|
|
18
|
-
"bytes":
|
|
18
|
+
"bytes": 2082648
|
|
19
19
|
},
|
|
20
20
|
"fileHashes": {
|
|
21
|
-
".microi-skills-version.json": "
|
|
21
|
+
".microi-skills-version.json": "f463451a9612c893251a374b0915d17fc4fb9ce697f7d7e1ec9a7999129344ef",
|
|
22
22
|
".progressive-disclosure-manifest.json": "b26f4155f28aa82980a1eb468f0a25622c583e7459f7c4d33931469a09ce6129",
|
|
23
23
|
"README.md": "168697be6864bbb12befa9a6723d93ea9d1c8b5a615006038c31b09e1171860c",
|
|
24
24
|
"ai-engine/SKILL.md": "99224ba2994e162283764c46bf54013a808d49ed1452d9b8c24819a7377a8223",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"message-notification/agents/openai.yaml": "d0e259921410e94caaf8b376d690a529842446e3f32c9523b7dfd1bda599f58c",
|
|
39
39
|
"message-notification/references/contracts.md": "a33e3dd4093430ed1dc5b79a978d8981479e975a7dd30fde6f68559360369f06",
|
|
40
40
|
"microi-ai-app-auth.js": "8023db6ae655bc33027f389a64ef7937ac09da35eb1b8a497aaefb986834242a",
|
|
41
|
-
"microi-ai-application/SKILL.md": "
|
|
41
|
+
"microi-ai-application/SKILL.md": "1fe627d21e9317ccdd46e0d8a0597ec722ceef456d435ed090df967616cb5d3e",
|
|
42
42
|
"microi-ai-application/agents/openai.yaml": "d3dfc4d0f2fda3391e90e661ca9d8d051cb43824b011d1a88e99db135870454f",
|
|
43
43
|
"microi-ai-application/references/frontend-baseline.md": "c21a2d38292fd8d445a7538afb45d609881f624f32d39c0fc4bbbb3c2fa64a74",
|
|
44
44
|
"microi-client-frontend/SKILL.md": "5eae8a9cf2d8420600daa6f799ff1d8349470a0bab94362eb7dcf91df2b01c6a",
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
"uniapp-mall-assets/SKILL.md": "30a85548bb600de35e5608c3c95df2e4ac4dd17954da2a9d48bc1744fad6db6b",
|
|
132
132
|
"unity-integration/SKILL.md": "7241b76c5d738d104a34a0d23d31bbda0295a406c598af63d2830dc57138e7bc",
|
|
133
133
|
"unity-integration/agents/openai.yaml": "f07748ace7e6303e49eac32d77f3e7163c8de1cef1f2f87e20de76207c8e5a50",
|
|
134
|
-
"unity-integration/references/ai-app-delivery.md": "
|
|
134
|
+
"unity-integration/references/ai-app-delivery.md": "cf0338a14b647bea42c31257cc73326c7a5a065a21153e21763235064f1d6373",
|
|
135
135
|
"unity-integration/references/sdk-api.md": "b473e7094b0c4cf7860cecb9acfbdd55025c7f851b4bd4bf92b4233091b182fa",
|
|
136
136
|
"unity-integration/references/toolbox-migration.md": "b9294ea7db2b2a0f31e650e6e80f6d8f69385037bff6ac39fd5525ea98f8c934",
|
|
137
137
|
"unity-integration/references/webgl-hosting.md": "5c19bda62d7c7a258b4fafc1d46e9a7c94e5400803d77d9aff44ce794083e745",
|
|
@@ -169,8 +169,8 @@
|
|
|
169
169
|
"v8-mq-mqtt/references/mqtt-production.md": "8ef68eb3f312abfef23a2c667d809d9aa2bc036f6219ea7921969b4edb0f0090",
|
|
170
170
|
"v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "842c74bd8bc30b932346e34c0d4154edffc1bf6a5a8aaafaaa344f250394762c",
|
|
171
171
|
"v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "e9f981e17e3d93d64aeeeb1bbc80a0eb680414e17782d43bfc7c1db676063dd0",
|
|
172
|
-
"v8-saas-multi-tenant/SKILL.md": "
|
|
173
|
-
"v8-security/SKILL.md": "
|
|
172
|
+
"v8-saas-multi-tenant/SKILL.md": "f3f4e7b0ce320eb72a62bce3666cd7420a17d477c4d6a5dd29d7cef7a61cfb0e",
|
|
173
|
+
"v8-security/SKILL.md": "7618c501c4c0788130ef9e1f520b563efc5bf31290e4bc95fbe2f010b2a5333c",
|
|
174
174
|
"v8-security/references/progressive-01-2-权限校验.md": "a7e2314b8f2f9bf413956191ffeda6d2f823760def2b06bf6b4c1565e8f71816",
|
|
175
175
|
"v8-security/references/progressive-02-7-日志记录.md": "2758de279da56e90587df8422e25a1ccfce5c3bdc1f1c363a90c666b6c3f298a",
|
|
176
176
|
"v8-sql-query/SKILL.md": "23a12c6801627890d18ff9f1d09cdd1abbd9b08ffc12ef6a12c915d504ed3255",
|
|
@@ -185,181 +185,181 @@
|
|
|
185
185
|
"v8-workflow/SKILL.md": "6b4f705957c9e2a5a905b9de0953fe3780b43a40140d6df5824386712a8eb911",
|
|
186
186
|
"v8-workflow/references/progressive-01-节点开始-v8-事件.md": "9b6b01e7ac03c0a11bc837671a30107ff5c5f253029d74fd17713084104d7e99",
|
|
187
187
|
"workspace-conventions/SKILL.md": "0bf01d71fab6ddb7028dfbebe84dacb74a56f9fb996f8c1a4b07e935b8a107fd",
|
|
188
|
-
"workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "
|
|
188
|
+
"workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "3587fbc81427ad7a5166f76ef2c04df2abe48d63d32b10f239c7db2ceb332294",
|
|
189
189
|
"workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "6720c8700972ca2b0b0b4378a137b70763542a280043c75d79d551be1f57b308",
|
|
190
190
|
"workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "86db1f03700fd54dd824d28c553c678202e8f74b796fd0f9d91f63bf53a530b1"
|
|
191
191
|
},
|
|
192
192
|
"fileVersions": {
|
|
193
|
-
".microi-skills-version.json": "5.0.
|
|
194
|
-
".progressive-disclosure-manifest.json": "5.0.
|
|
195
|
-
"README.md": "5.0.
|
|
196
|
-
"ai-engine/SKILL.md": "5.0.
|
|
197
|
-
"ai-engine/agents/openai.yaml": "5.0.
|
|
198
|
-
"ai-platform-governance/SKILL.md": "5.0.
|
|
199
|
-
"ai-platform-governance/references/progressive-01-功能开关.md": "5.0.
|
|
200
|
-
"app-store/SKILL.md": "5.0.
|
|
201
|
-
"app-store/agents/openai.yaml": "5.0.
|
|
202
|
-
"business-blueprint/SKILL.md": "5.0.
|
|
203
|
-
"datasource-engine/SKILL.md": "5.0.
|
|
204
|
-
"datasource-engine/agents/openai.yaml": "5.0.
|
|
205
|
-
"dos-orm/SKILL.md": "5.0.
|
|
206
|
-
"dos-orm/references/api-reference.md": "5.0.
|
|
207
|
-
"job-engine/SKILL.md": "5.0.
|
|
208
|
-
"job-engine/agents/openai.yaml": "5.0.
|
|
209
|
-
"message-notification/SKILL.md": "5.0.
|
|
210
|
-
"message-notification/agents/openai.yaml": "5.0.
|
|
211
|
-
"message-notification/references/contracts.md": "5.0.
|
|
212
|
-
"microi-ai-app-auth.js": "5.0.
|
|
213
|
-
"microi-ai-application/SKILL.md": "5.0.
|
|
214
|
-
"microi-ai-application/agents/openai.yaml": "5.0.
|
|
215
|
-
"microi-ai-application/references/frontend-baseline.md": "5.0.
|
|
216
|
-
"microi-client-frontend/SKILL.md": "5.0.
|
|
217
|
-
"microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.0.
|
|
218
|
-
"microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.0.
|
|
219
|
-
"microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.0.
|
|
220
|
-
"microi-codex-installer/SKILL.md": "5.0.
|
|
221
|
-
"microi-codex-installer/agents/openai.yaml": "5.0.
|
|
222
|
-
"microi-codex/SKILL.md": "5.0.
|
|
223
|
-
"microi-datasource-mapping/SKILL.md": "5.0.
|
|
224
|
-
"microi-db-schema/SKILL.md": "5.0.
|
|
225
|
-
"microi-db-schema/agents/openai.yaml": "5.0.
|
|
226
|
-
"microi-db-schema/references/core-tables.md": "5.0.
|
|
227
|
-
"microi-db-schema/references/form-component-options.md": "5.0.
|
|
228
|
-
"microi-db-schema/references/schema-overview.md": "5.0.
|
|
229
|
-
"microi-db-schema/references/schema.md": "5.0.
|
|
230
|
-
"microi-db-schema/references/table-catalog.md": "5.0.
|
|
231
|
-
"microi-deployment/SKILL.md": "5.0.
|
|
232
|
-
"microi-deployment/references/deployment-matrix.md": "5.0.
|
|
233
|
-
"microi-docs-coverage/SKILL.md": "5.0.
|
|
234
|
-
"microi-docs-coverage/references/capability-map.md": "5.0.
|
|
235
|
-
"microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.0.
|
|
236
|
-
"microi-form-engine/SKILL.md": "5.0.
|
|
237
|
-
"microi-form-engine/references/component-catalog.md": "5.0.
|
|
238
|
-
"microi-form-engine/references/data-source-events.md": "5.0.
|
|
239
|
-
"microi-form-layout/SKILL.md": "5.0.
|
|
240
|
-
"microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.0.
|
|
241
|
-
"microi-frontend-sdk/SKILL.md": "5.0.
|
|
242
|
-
"microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.0.
|
|
243
|
-
"microi-left-right-layout/SKILL.md": "5.0.
|
|
244
|
-
"microi-microservice/SKILL.md": "5.0.
|
|
245
|
-
"microi-microservice/references/runtime-delivery.md": "5.0.
|
|
246
|
-
"microi-mobile-app-quality/SKILL.md": "5.0.
|
|
247
|
-
"microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.0.
|
|
248
|
-
"microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.0.
|
|
249
|
-
"microi-solution-quotation/SKILL.md": "5.0.
|
|
250
|
-
"microi-solution-quotation/agents/openai.yaml": "5.0.
|
|
251
|
-
"microi-solution-quotation/scripts/build_solution_quote.py": "5.0.
|
|
252
|
-
"microi-system-delivery/SKILL.md": "5.0.
|
|
253
|
-
"microi-system-delivery/references/progressive-01-标准工作流.md": "5.0.
|
|
254
|
-
"microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.0.
|
|
255
|
-
"microi-ui/SKILL.md": "5.0.
|
|
256
|
-
"microi-ui/references/progressive-01-移动端场景蓝图.md": "5.0.
|
|
257
|
-
"microi-uniapp-frontend/SKILL.md": "5.0.
|
|
258
|
-
"microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.0.
|
|
259
|
-
"microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.0.
|
|
260
|
-
"microi.v8.js": "5.0.
|
|
261
|
-
"module-engine/SKILL.md": "5.0.
|
|
262
|
-
"module-engine/references/module-config.md": "5.0.
|
|
263
|
-
"ocr-engine/SKILL.md": "5.0.
|
|
264
|
-
"ocr-engine/agents/openai.yaml": "5.0.
|
|
265
|
-
"page-engine/SKILL.md": "5.0.
|
|
266
|
-
"page-engine/references/progressive-01-所有组件类型.md": "5.0.
|
|
267
|
-
"page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.0.
|
|
268
|
-
"performance-testing/SKILL.md": "5.0.
|
|
269
|
-
"playwright-e2e/SKILL.md": "5.0.
|
|
270
|
-
"playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.0.
|
|
271
|
-
"playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.0.
|
|
272
|
-
"playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.0.
|
|
273
|
-
"playwright-e2e/references/progressive-04-ci-建议.md": "5.0.
|
|
274
|
-
"print-engine/SKILL.md": "5.0.
|
|
275
|
-
"production-readonly-audit/SKILL.md": "5.0.
|
|
276
|
-
"report-engine/SKILL.md": "5.0.
|
|
277
|
-
"report-engine/agents/openai.yaml": "5.0.
|
|
278
|
-
"scripts/optimize-progressive-disclosure.mjs": "5.0.
|
|
279
|
-
"scripts/refresh-progressive-disclosure.mjs": "5.0.
|
|
280
|
-
"scripts/validate-progressive-disclosure.mjs": "5.0.
|
|
281
|
-
"search-engine/SKILL.md": "5.0.
|
|
282
|
-
"search-engine/agents/openai.yaml": "5.0.
|
|
283
|
-
"spider-engine/SKILL.md": "5.0.
|
|
284
|
-
"translate-engine/SKILL.md": "5.0.
|
|
285
|
-
"translate-engine/agents/openai.yaml": "5.0.
|
|
286
|
-
"ui-design/SKILL.md": "5.0.
|
|
287
|
-
"ui-design/assets/pattern-showcase/app.js": "5.0.
|
|
288
|
-
"ui-design/assets/pattern-showcase/index.html": "5.0.
|
|
289
|
-
"ui-design/assets/pattern-showcase/styles.css": "5.0.
|
|
290
|
-
"ui-design/assets/templates/MCI-DESIGN.md": "5.0.
|
|
291
|
-
"ui-design/references/design-pattern-library.md": "5.0.
|
|
292
|
-
"ui-design/references/mci-design-contract.md": "5.0.
|
|
293
|
-
"ui-design/references/motion-and-media.md": "5.0.
|
|
294
|
-
"ui-design/references/product-flow-recipes.md": "5.0.
|
|
295
|
-
"ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.0.
|
|
296
|
-
"ui-design/references/progressive-02-字体.md": "5.0.
|
|
297
|
-
"ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.0.
|
|
298
|
-
"ui-design/references/progressive-04-组件风格速查.md": "5.0.
|
|
299
|
-
"ui-design/references/progressive-05-移动端专用规范.md": "5.0.
|
|
300
|
-
"ui-design/references/progressive-06-主题切换实现.md": "5.0.
|
|
301
|
-
"ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.0.
|
|
302
|
-
"ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.0.
|
|
303
|
-
"uniapp-mall-assets/SKILL.md": "5.0.
|
|
304
|
-
"unity-integration/SKILL.md": "5.0.
|
|
305
|
-
"unity-integration/agents/openai.yaml": "5.0.
|
|
306
|
-
"unity-integration/references/ai-app-delivery.md": "5.0.
|
|
307
|
-
"unity-integration/references/sdk-api.md": "5.0.
|
|
308
|
-
"unity-integration/references/toolbox-migration.md": "5.0.
|
|
309
|
-
"unity-integration/references/webgl-hosting.md": "5.0.
|
|
310
|
-
"v8-api-config/SKILL.md": "5.0.
|
|
311
|
-
"v8-cache-pattern/SKILL.md": "5.0.
|
|
312
|
-
"v8-crud-api/SKILL.md": "5.0.
|
|
313
|
-
"v8-crud-api/references/progressive-01-查询列表-分页.md": "5.0.
|
|
314
|
-
"v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.0.
|
|
315
|
-
"v8-debugging/SKILL.md": "5.0.
|
|
316
|
-
"v8-explorer-tree/SKILL.md": "5.0.
|
|
317
|
-
"v8-export-import/SKILL.md": "5.0.
|
|
318
|
-
"v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.0.
|
|
319
|
-
"v8-export-import/references/progressive-02-powerpoint-导出.md": "5.0.
|
|
320
|
-
"v8-export-import/references/progressive-03-安全-性能注意.md": "5.0.
|
|
321
|
-
"v8-file-upload/SKILL.md": "5.0.
|
|
322
|
-
"v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.0.
|
|
323
|
-
"v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.0.
|
|
324
|
-
"v8-formengine-http/SKILL.md": "5.0.
|
|
325
|
-
"v8-frontend-events/SKILL.md": "5.0.
|
|
326
|
-
"v8-frontend-events/references/bluetooth-print-api.md": "5.0.
|
|
327
|
-
"v8-frontend-events/references/bluetooth-print.md": "5.0.
|
|
328
|
-
"v8-frontend-events/references/progressive-01-列表事件.md": "5.0.
|
|
329
|
-
"v8-http-integration/SKILL.md": "5.0.
|
|
330
|
-
"v8-http-integration/references/progressive-01-get-请求.md": "5.0.
|
|
331
|
-
"v8-http-integration/references/progressive-02-错误处理模式.md": "5.0.
|
|
332
|
-
"v8-image-processing/SKILL.md": "5.0.
|
|
333
|
-
"v8-image-processing/agents/openai.yaml": "5.0.
|
|
334
|
-
"v8-image-processing/references/api-reference.md": "5.0.
|
|
335
|
-
"v8-menu-buttons/SKILL.md": "5.0.
|
|
336
|
-
"v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.0.
|
|
337
|
-
"v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.0.
|
|
338
|
-
"v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.0.
|
|
339
|
-
"v8-mongodb/SKILL.md": "5.0.
|
|
340
|
-
"v8-mq-mqtt/SKILL.md": "5.0.
|
|
341
|
-
"v8-mq-mqtt/references/mqtt-production.md": "5.0.
|
|
342
|
-
"v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.0.
|
|
343
|
-
"v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.0.
|
|
344
|
-
"v8-saas-multi-tenant/SKILL.md": "5.0.
|
|
345
|
-
"v8-security/SKILL.md": "5.0.
|
|
346
|
-
"v8-security/references/progressive-01-2-权限校验.md": "5.0.
|
|
347
|
-
"v8-security/references/progressive-02-7-日志记录.md": "5.0.
|
|
348
|
-
"v8-sql-query/SKILL.md": "5.0.
|
|
349
|
-
"v8-table-event/SKILL.md": "5.0.
|
|
350
|
-
"v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.0.
|
|
351
|
-
"v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.0.
|
|
352
|
-
"v8-template-engine/SKILL.md": "5.0.
|
|
353
|
-
"v8-utilities/SKILL.md": "5.0.
|
|
354
|
-
"v8-utilities/references/client-api-index.md": "5.0.
|
|
355
|
-
"v8-utilities/references/platform-http-routes.md": "5.0.
|
|
356
|
-
"v8-utilities/references/server-api-index.md": "5.0.
|
|
357
|
-
"v8-workflow/SKILL.md": "5.0.
|
|
358
|
-
"v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.0.
|
|
359
|
-
"workspace-conventions/SKILL.md": "5.0.
|
|
360
|
-
"workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.0.
|
|
361
|
-
"workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.0.
|
|
362
|
-
"workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.0.
|
|
193
|
+
".microi-skills-version.json": "5.0.9",
|
|
194
|
+
".progressive-disclosure-manifest.json": "5.0.9",
|
|
195
|
+
"README.md": "5.0.9",
|
|
196
|
+
"ai-engine/SKILL.md": "5.0.9",
|
|
197
|
+
"ai-engine/agents/openai.yaml": "5.0.9",
|
|
198
|
+
"ai-platform-governance/SKILL.md": "5.0.9",
|
|
199
|
+
"ai-platform-governance/references/progressive-01-功能开关.md": "5.0.9",
|
|
200
|
+
"app-store/SKILL.md": "5.0.9",
|
|
201
|
+
"app-store/agents/openai.yaml": "5.0.9",
|
|
202
|
+
"business-blueprint/SKILL.md": "5.0.9",
|
|
203
|
+
"datasource-engine/SKILL.md": "5.0.9",
|
|
204
|
+
"datasource-engine/agents/openai.yaml": "5.0.9",
|
|
205
|
+
"dos-orm/SKILL.md": "5.0.9",
|
|
206
|
+
"dos-orm/references/api-reference.md": "5.0.9",
|
|
207
|
+
"job-engine/SKILL.md": "5.0.9",
|
|
208
|
+
"job-engine/agents/openai.yaml": "5.0.9",
|
|
209
|
+
"message-notification/SKILL.md": "5.0.9",
|
|
210
|
+
"message-notification/agents/openai.yaml": "5.0.9",
|
|
211
|
+
"message-notification/references/contracts.md": "5.0.9",
|
|
212
|
+
"microi-ai-app-auth.js": "5.0.9",
|
|
213
|
+
"microi-ai-application/SKILL.md": "5.0.9",
|
|
214
|
+
"microi-ai-application/agents/openai.yaml": "5.0.9",
|
|
215
|
+
"microi-ai-application/references/frontend-baseline.md": "5.0.9",
|
|
216
|
+
"microi-client-frontend/SKILL.md": "5.0.9",
|
|
217
|
+
"microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.0.9",
|
|
218
|
+
"microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.0.9",
|
|
219
|
+
"microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.0.9",
|
|
220
|
+
"microi-codex-installer/SKILL.md": "5.0.9",
|
|
221
|
+
"microi-codex-installer/agents/openai.yaml": "5.0.9",
|
|
222
|
+
"microi-codex/SKILL.md": "5.0.9",
|
|
223
|
+
"microi-datasource-mapping/SKILL.md": "5.0.9",
|
|
224
|
+
"microi-db-schema/SKILL.md": "5.0.9",
|
|
225
|
+
"microi-db-schema/agents/openai.yaml": "5.0.9",
|
|
226
|
+
"microi-db-schema/references/core-tables.md": "5.0.9",
|
|
227
|
+
"microi-db-schema/references/form-component-options.md": "5.0.9",
|
|
228
|
+
"microi-db-schema/references/schema-overview.md": "5.0.9",
|
|
229
|
+
"microi-db-schema/references/schema.md": "5.0.9",
|
|
230
|
+
"microi-db-schema/references/table-catalog.md": "5.0.9",
|
|
231
|
+
"microi-deployment/SKILL.md": "5.0.9",
|
|
232
|
+
"microi-deployment/references/deployment-matrix.md": "5.0.9",
|
|
233
|
+
"microi-docs-coverage/SKILL.md": "5.0.9",
|
|
234
|
+
"microi-docs-coverage/references/capability-map.md": "5.0.9",
|
|
235
|
+
"microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.0.9",
|
|
236
|
+
"microi-form-engine/SKILL.md": "5.0.9",
|
|
237
|
+
"microi-form-engine/references/component-catalog.md": "5.0.9",
|
|
238
|
+
"microi-form-engine/references/data-source-events.md": "5.0.9",
|
|
239
|
+
"microi-form-layout/SKILL.md": "5.0.9",
|
|
240
|
+
"microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.0.9",
|
|
241
|
+
"microi-frontend-sdk/SKILL.md": "5.0.9",
|
|
242
|
+
"microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.0.9",
|
|
243
|
+
"microi-left-right-layout/SKILL.md": "5.0.9",
|
|
244
|
+
"microi-microservice/SKILL.md": "5.0.9",
|
|
245
|
+
"microi-microservice/references/runtime-delivery.md": "5.0.9",
|
|
246
|
+
"microi-mobile-app-quality/SKILL.md": "5.0.9",
|
|
247
|
+
"microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.0.9",
|
|
248
|
+
"microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.0.9",
|
|
249
|
+
"microi-solution-quotation/SKILL.md": "5.0.9",
|
|
250
|
+
"microi-solution-quotation/agents/openai.yaml": "5.0.9",
|
|
251
|
+
"microi-solution-quotation/scripts/build_solution_quote.py": "5.0.9",
|
|
252
|
+
"microi-system-delivery/SKILL.md": "5.0.9",
|
|
253
|
+
"microi-system-delivery/references/progressive-01-标准工作流.md": "5.0.9",
|
|
254
|
+
"microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.0.9",
|
|
255
|
+
"microi-ui/SKILL.md": "5.0.9",
|
|
256
|
+
"microi-ui/references/progressive-01-移动端场景蓝图.md": "5.0.9",
|
|
257
|
+
"microi-uniapp-frontend/SKILL.md": "5.0.9",
|
|
258
|
+
"microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.0.9",
|
|
259
|
+
"microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.0.9",
|
|
260
|
+
"microi.v8.js": "5.0.9",
|
|
261
|
+
"module-engine/SKILL.md": "5.0.9",
|
|
262
|
+
"module-engine/references/module-config.md": "5.0.9",
|
|
263
|
+
"ocr-engine/SKILL.md": "5.0.9",
|
|
264
|
+
"ocr-engine/agents/openai.yaml": "5.0.9",
|
|
265
|
+
"page-engine/SKILL.md": "5.0.9",
|
|
266
|
+
"page-engine/references/progressive-01-所有组件类型.md": "5.0.9",
|
|
267
|
+
"page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.0.9",
|
|
268
|
+
"performance-testing/SKILL.md": "5.0.9",
|
|
269
|
+
"playwright-e2e/SKILL.md": "5.0.9",
|
|
270
|
+
"playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.0.9",
|
|
271
|
+
"playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.0.9",
|
|
272
|
+
"playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.0.9",
|
|
273
|
+
"playwright-e2e/references/progressive-04-ci-建议.md": "5.0.9",
|
|
274
|
+
"print-engine/SKILL.md": "5.0.9",
|
|
275
|
+
"production-readonly-audit/SKILL.md": "5.0.9",
|
|
276
|
+
"report-engine/SKILL.md": "5.0.9",
|
|
277
|
+
"report-engine/agents/openai.yaml": "5.0.9",
|
|
278
|
+
"scripts/optimize-progressive-disclosure.mjs": "5.0.9",
|
|
279
|
+
"scripts/refresh-progressive-disclosure.mjs": "5.0.9",
|
|
280
|
+
"scripts/validate-progressive-disclosure.mjs": "5.0.9",
|
|
281
|
+
"search-engine/SKILL.md": "5.0.9",
|
|
282
|
+
"search-engine/agents/openai.yaml": "5.0.9",
|
|
283
|
+
"spider-engine/SKILL.md": "5.0.9",
|
|
284
|
+
"translate-engine/SKILL.md": "5.0.9",
|
|
285
|
+
"translate-engine/agents/openai.yaml": "5.0.9",
|
|
286
|
+
"ui-design/SKILL.md": "5.0.9",
|
|
287
|
+
"ui-design/assets/pattern-showcase/app.js": "5.0.9",
|
|
288
|
+
"ui-design/assets/pattern-showcase/index.html": "5.0.9",
|
|
289
|
+
"ui-design/assets/pattern-showcase/styles.css": "5.0.9",
|
|
290
|
+
"ui-design/assets/templates/MCI-DESIGN.md": "5.0.9",
|
|
291
|
+
"ui-design/references/design-pattern-library.md": "5.0.9",
|
|
292
|
+
"ui-design/references/mci-design-contract.md": "5.0.9",
|
|
293
|
+
"ui-design/references/motion-and-media.md": "5.0.9",
|
|
294
|
+
"ui-design/references/product-flow-recipes.md": "5.0.9",
|
|
295
|
+
"ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.0.9",
|
|
296
|
+
"ui-design/references/progressive-02-字体.md": "5.0.9",
|
|
297
|
+
"ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.0.9",
|
|
298
|
+
"ui-design/references/progressive-04-组件风格速查.md": "5.0.9",
|
|
299
|
+
"ui-design/references/progressive-05-移动端专用规范.md": "5.0.9",
|
|
300
|
+
"ui-design/references/progressive-06-主题切换实现.md": "5.0.9",
|
|
301
|
+
"ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.0.9",
|
|
302
|
+
"ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.0.9",
|
|
303
|
+
"uniapp-mall-assets/SKILL.md": "5.0.9",
|
|
304
|
+
"unity-integration/SKILL.md": "5.0.9",
|
|
305
|
+
"unity-integration/agents/openai.yaml": "5.0.9",
|
|
306
|
+
"unity-integration/references/ai-app-delivery.md": "5.0.9",
|
|
307
|
+
"unity-integration/references/sdk-api.md": "5.0.9",
|
|
308
|
+
"unity-integration/references/toolbox-migration.md": "5.0.9",
|
|
309
|
+
"unity-integration/references/webgl-hosting.md": "5.0.9",
|
|
310
|
+
"v8-api-config/SKILL.md": "5.0.9",
|
|
311
|
+
"v8-cache-pattern/SKILL.md": "5.0.9",
|
|
312
|
+
"v8-crud-api/SKILL.md": "5.0.9",
|
|
313
|
+
"v8-crud-api/references/progressive-01-查询列表-分页.md": "5.0.9",
|
|
314
|
+
"v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.0.9",
|
|
315
|
+
"v8-debugging/SKILL.md": "5.0.9",
|
|
316
|
+
"v8-explorer-tree/SKILL.md": "5.0.9",
|
|
317
|
+
"v8-export-import/SKILL.md": "5.0.9",
|
|
318
|
+
"v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.0.9",
|
|
319
|
+
"v8-export-import/references/progressive-02-powerpoint-导出.md": "5.0.9",
|
|
320
|
+
"v8-export-import/references/progressive-03-安全-性能注意.md": "5.0.9",
|
|
321
|
+
"v8-file-upload/SKILL.md": "5.0.9",
|
|
322
|
+
"v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.0.9",
|
|
323
|
+
"v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.0.9",
|
|
324
|
+
"v8-formengine-http/SKILL.md": "5.0.9",
|
|
325
|
+
"v8-frontend-events/SKILL.md": "5.0.9",
|
|
326
|
+
"v8-frontend-events/references/bluetooth-print-api.md": "5.0.9",
|
|
327
|
+
"v8-frontend-events/references/bluetooth-print.md": "5.0.9",
|
|
328
|
+
"v8-frontend-events/references/progressive-01-列表事件.md": "5.0.9",
|
|
329
|
+
"v8-http-integration/SKILL.md": "5.0.9",
|
|
330
|
+
"v8-http-integration/references/progressive-01-get-请求.md": "5.0.9",
|
|
331
|
+
"v8-http-integration/references/progressive-02-错误处理模式.md": "5.0.9",
|
|
332
|
+
"v8-image-processing/SKILL.md": "5.0.9",
|
|
333
|
+
"v8-image-processing/agents/openai.yaml": "5.0.9",
|
|
334
|
+
"v8-image-processing/references/api-reference.md": "5.0.9",
|
|
335
|
+
"v8-menu-buttons/SKILL.md": "5.0.9",
|
|
336
|
+
"v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.0.9",
|
|
337
|
+
"v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.0.9",
|
|
338
|
+
"v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.0.9",
|
|
339
|
+
"v8-mongodb/SKILL.md": "5.0.9",
|
|
340
|
+
"v8-mq-mqtt/SKILL.md": "5.0.9",
|
|
341
|
+
"v8-mq-mqtt/references/mqtt-production.md": "5.0.9",
|
|
342
|
+
"v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.0.9",
|
|
343
|
+
"v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.0.9",
|
|
344
|
+
"v8-saas-multi-tenant/SKILL.md": "5.0.9",
|
|
345
|
+
"v8-security/SKILL.md": "5.0.9",
|
|
346
|
+
"v8-security/references/progressive-01-2-权限校验.md": "5.0.9",
|
|
347
|
+
"v8-security/references/progressive-02-7-日志记录.md": "5.0.9",
|
|
348
|
+
"v8-sql-query/SKILL.md": "5.0.9",
|
|
349
|
+
"v8-table-event/SKILL.md": "5.0.9",
|
|
350
|
+
"v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.0.9",
|
|
351
|
+
"v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.0.9",
|
|
352
|
+
"v8-template-engine/SKILL.md": "5.0.9",
|
|
353
|
+
"v8-utilities/SKILL.md": "5.0.9",
|
|
354
|
+
"v8-utilities/references/client-api-index.md": "5.0.9",
|
|
355
|
+
"v8-utilities/references/platform-http-routes.md": "5.0.9",
|
|
356
|
+
"v8-utilities/references/server-api-index.md": "5.0.9",
|
|
357
|
+
"v8-workflow/SKILL.md": "5.0.9",
|
|
358
|
+
"v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.0.9",
|
|
359
|
+
"workspace-conventions/SKILL.md": "5.0.9",
|
|
360
|
+
"workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.0.9",
|
|
361
|
+
"workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.0.9",
|
|
362
|
+
"workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.0.9"
|
|
363
363
|
},
|
|
364
364
|
"files": [
|
|
365
365
|
".microi-skills-version.json",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "5.0.
|
|
2
|
+
"version": "5.0.9",
|
|
3
3
|
"versionRule": "Microi version uses three numeric parts. Each publish increments the last part; when a part exceeds 9 it carries to the previous part: 1.0.9 -> 1.1.0, 1.9.9 -> 2.0.0.",
|
|
4
4
|
"managedBy": "Microi.VSCode/bump-version.js",
|
|
5
|
-
"updatedAt": "2026-08-
|
|
5
|
+
"updatedAt": "2026-08-16T20:54:18.397Z"
|
|
6
6
|
}
|
|
@@ -81,7 +81,8 @@ UniApp 使用 Vue 3 + TypeScript 的官方 Vite 工具链,并同时遵守 `mic
|
|
|
81
81
|
3. 检查 `dist/build` 不含源码、Token、密钥、localhost、source map 或陈旧 chunk。
|
|
82
82
|
4. 同步私有源码,再流式发布公有构建目录;源码同步失败不得继续发布。发布前回读并冻结应用的 `CurrentVersion` 与 `AppVersion`,stage 只上传不可变版本资产,finalize 必须同时提交 `ExpectedCurrentVersion` 与 `ExpectedAppVersion` 做 compare-and-set;缺一项、状态漂移或回读不一致都停止,不能自动覆盖较新发布。
|
|
83
83
|
5. Web/UniApp 使用 `/{OsClient}/ai-app-publish/{AppKey}/index.html`;MicroService 使用 `/micro-app/{OsClient}/{AppKey}/index.html`。不要因技术栈相同而混淆运行类型。
|
|
84
|
-
6.
|
|
84
|
+
6. 官网、二维码、分享链接和商城“立即体验”只能使用不含 `/releases/`、`/requests/`、`/versions/` 与语义版本号的稳定当前入口;不得使用 `SharedPublicRuntime.EntryUrl` 或发布结果中的不可变版本 URL。固定入口必须以代理或全屏加载壳保持浏览器地址不变,不能用 30x、`meta refresh` 或 `location.replace` 把地址栏跳到版本产物。
|
|
85
|
+
7. `SharedPublicRuntime.EntryUrl` 和 `/versions/{Version}/index.html` 仅用于历史记录、回滚、摘要校验与审计。回读应用、版本、active 文件清单和 SHA-256;旧清单文件只能可逆归档,不能删除。再分别直接请求稳定当前入口、不可变版本入口及主要 JS/CSS,并断言前者完成加载后地址栏仍不含版本段。
|
|
85
86
|
|
|
86
87
|
## 完成定义
|
|
87
88
|
|
|
@@ -84,6 +84,8 @@ tests/
|
|
|
84
84
|
3. 本地完成类型检查、测试、真实 Unity 构建和 dist 完整性校验。
|
|
85
85
|
4. 先同步私有源码;生成的 Unity、安装包与构建证据目录不得混入源码清单。任何期望版本不一致都停止重基线。
|
|
86
86
|
5. 发布不可变 Web 运行版本,回读入口、文件数、哈希、状态与公开 URL。
|
|
87
|
+
- 官网、二维码、分享与商城“立即体验”必须指向不带版本号的固定当前入口,且游戏加载完成后地址栏仍保持该入口;不能把 `SharedPublicRuntime.EntryUrl`、`/releases/{Version}/requests/...` 或 `/versions/{Version}/` 当作当前体验地址,也不能用 30x、`meta refresh`、`location.replace` 伪装稳定入口。
|
|
88
|
+
- 不可变版本 URL 只写入历史版本记录、回滚和审计。固定入口可以使用同源全屏加载壳承载当前不可变产物,并必须透传 `autoplay`、`fullscreen` 与 `gamepad` 权限。
|
|
87
89
|
6. 若同时交付 Windows,从稳定公网地址下载完整安装包并核对大小、SHA-256 和版本;在线入口还要加载真实 WASM/Data。
|
|
88
90
|
7. 调用官方 `ai_app_publish_store` 生成并发布精确版本的应用商城包。超时属于结果不确定,必须回读包正文和 ZIP 后才能决定是否重试。
|
|
89
91
|
8. 回读 `sys_microistore` 的 AppKey、版本、状态、预览图、包摘要与资源策略,断言 `AppVersion == PackageInfo.Version == PreparedAssets.PackageVersion`。
|
|
@@ -29,11 +29,10 @@ V8.OsClientType // 'Normal' / 'App' / 'Wechat'
|
|
|
29
29
|
V8.OsClientNetwork // 'Intranet' / 'Outernet'
|
|
30
30
|
V8.OsClientModel // 当前租户 SaaS 配置的脱敏副本
|
|
31
31
|
V8.ClientModel // OsClientModel 的兼容别名,同样是脱敏副本
|
|
32
|
-
V8.SysConfig //
|
|
33
|
-
V8.SysConfig.PublicSettings // 当前租户 mci_system_setting 的动态公开投影
|
|
32
|
+
V8.SysConfig // 当前租户系统配置根对象;不存在 PublicSettings 属性
|
|
34
33
|
```
|
|
35
34
|
|
|
36
|
-
`V8.SysConfig`
|
|
35
|
+
前端 V8 的 `V8.SysConfig` 是匿名 `GetSysConfig` 的独立脱敏副本,`mci_system_setting` 中允许公开的普通值直接平铺到根对象;不会暴露 `ClientSecrets`、`GlobalServerV8Code` 或疑似凭据字段。后端接口引擎与后端 V8 事件的 `V8.SysConfig` 是当前租户完整、独立的 `sys_config`,并把全部启用的租户设置(含后端解密后的 Secret)平铺到根对象。两端都不存在 `PublicSettings` 包装层。后端可使用 Secret,但严禁返回前端、写日志或写审计。子租户显式传其它 `OsClient` 仍会被强制改回当前租户。
|
|
37
36
|
|
|
38
37
|
### V8.OsClientModel 常用字段
|
|
39
38
|
|
|
@@ -148,14 +147,15 @@ var erpUrl = (V8.OsClientNetwork === 'Intranet')
|
|
|
148
147
|
// ❌ 危险:密钥写在代码里,所有租户共用,无法独立轮换
|
|
149
148
|
var ak = 'AKIDxxxxxxxx';
|
|
150
149
|
|
|
151
|
-
// ✅
|
|
152
|
-
var loginName = V8.SysConfig
|
|
150
|
+
// ✅ 普通业务值:每个租户在 mci_system_setting 动态维护
|
|
151
|
+
var loginName = V8.SysConfig['Login.Gitee.Name'];
|
|
153
152
|
|
|
154
|
-
// ✅ Secret
|
|
155
|
-
|
|
153
|
+
// ✅ 后端 V8 可读取当前租户 Secret 并直接调用供应商
|
|
154
|
+
var secret = V8.SysConfig['Login.Gitee.ClientSecret'];
|
|
155
|
+
// 禁止 return secret、console.log(secret) 或写入前端可读字段。
|
|
156
156
|
```
|
|
157
157
|
|
|
158
|
-
> `mci_system_setting`
|
|
158
|
+
> `mci_system_setting` 位于每个租户自己的数据库。普通设置可逐条动态公开并直接平铺到前端 `V8.SysConfig`;Secret 保存认证密文,只在后端 V8 的当前租户 `V8.SysConfig` 中解密使用。前端 V8、普通 FormEngine HTTP、匿名/访问密钥会话不能读取 Secret,后端 V8 也不能获得通用解密器。`sys_osclients` 自定义业务字段只保留存量兼容;共享基础设施字段由服务端强制移除,不能用自定义同义字段绕过安全代理。
|
|
159
159
|
|
|
160
160
|
## 用户扩展字段访问(同理)
|
|
161
161
|
|
|
@@ -18,11 +18,12 @@ description: Microi V8 安全指南。用于审查 DiyToken 与权限、可逆
|
|
|
18
18
|
第三方密钥(微信、支付宝、OpenAI、阿里云、ERP、SMTP)**禁止**硬编码在 V8 代码或前端。新增租户业务配置使用当前租户数据库的 `mci_system_setting`;数据库、Redis、MongoDB、MinIO、MQ 等部署控制面仍由主库 `sys_osclients` 托管,子租户不能修改。
|
|
19
19
|
|
|
20
20
|
```javascript
|
|
21
|
-
// ✅ 浏览器/前端 V8
|
|
22
|
-
var loginName = V8.SysConfig
|
|
21
|
+
// ✅ 浏览器/前端 V8 只能读取管理员明确公开的普通设置,直接位于根对象
|
|
22
|
+
var loginName = V8.SysConfig['Login.Gitee.Name'];
|
|
23
23
|
|
|
24
|
-
// ✅ Secret
|
|
25
|
-
|
|
24
|
+
// ✅ 后端接口引擎/后端 V8 事件可读取当前租户完整配置(包括 Secret)
|
|
25
|
+
var clientSecret = V8.SysConfig['Login.Gitee.ClientSecret'];
|
|
26
|
+
// 只能在后端使用,禁止 return、日志、审计或写入前端可读数据。
|
|
26
27
|
|
|
27
28
|
// ❌ 危险:密钥泄漏 / 跨租户串号
|
|
28
29
|
var openaiKey = 'sk-xxxxxxxxxx';
|
|
@@ -30,9 +31,9 @@ var openaiKey = 'sk-xxxxxxxxxx';
|
|
|
30
31
|
|
|
31
32
|
`V8.OsClientModel` 与兼容别名 `V8.ClientModel` 均为独立脱敏副本:数据库连接、AuthSecret、Redis、对象存储、MQ、MQTT、Search 的地址与凭据不会注入脚本。存量租户业务字段只作兼容,新增 Secret 不得继续依赖 `V8.OsClientModel`。
|
|
32
33
|
|
|
33
|
-
`V8.SysConfig`
|
|
34
|
+
`V8.SysConfig` 按运行端采用不同权限投影,且任何运行端都不存在 `PublicSettings` 属性。浏览器/前端 V8 只得到匿名 `GetSysConfig` 的独立脱敏副本;当前租户 `mci_system_setting` 中 `IsPublic=1` 的普通设置直接平铺到根对象,Secret 或 Key 命中 Password、Secret、Token、Credential、PrivateKey、AccessKey、ApiKey、ConnectionString、DbConn、Redis、MinIO、ClientSecret 等敏感片段时永远失败关闭。后端接口引擎和后端 V8 事件得到当前租户完整、独立的 `sys_config`,并在根对象中获得全部启用的 `mci_system_setting`,Secret 由可信后端按租户解密。子租户调用 `V8.FormEngine.GetSysConfig(...)` 时仍强制使用当前 `OsClient`,不能借缓存命中读取其它租户配置。
|
|
34
35
|
|
|
35
|
-
Secret 只通过租户管理员专用端点写入租户绑定的认证密文。列表不返回密文或原文;临时显示必须消费 Passkey/TOTP/严格人脸一次性票据,设置 `no-store`,30
|
|
36
|
+
Secret 只通过租户管理员专用端点写入租户绑定的认证密文。列表不返回密文或原文;临时显示必须消费 Passkey/TOTP/严格人脸一次性票据,设置 `no-store`,30 秒清除,审计不含原文。前端 V8、普通 FormEngine HTTP、匿名请求和访问密钥会话不得读取 `SecretCipher` 或 Secret 原文;后端 V8 只能通过当前租户 `V8.SysConfig[ConfigKey]` 使用已解密值,不获得通用解密器,也不得返回或记录原文。
|
|
36
37
|
|
|
37
38
|
共享基础设施只能通过受控能力访问:`V8.Cache` 自动绑定 `Microi:{OsClient}:*`,文件路径绑定 `/{OsClient}/...`,RabbitMQ 队列绑定 `microi.{OsClient}.*`,MQTT Topic 绑定 `tenant/{OsClient}/...`,Search 索引绑定 `{OsClient}_*`。V8 不得获得 Redis `IDatabase`、HDFS `ClientModel` 或原始基础设施配置。
|
|
38
39
|
|
|
@@ -39,7 +39,7 @@ AI 新增或修改 Microi 配置文件时,凡是面向开发者、部署人员
|
|
|
39
39
|
- DES 是现有兼容格式,不得宣称能抵抗服务器所有者或代码执行者。新高价值秘密优先使用带版本的现代认证加密与集中密钥管理;基础设施密钥仍不得进入可编辑 V8。
|
|
40
40
|
- 登录后的敏感操作优先用 `V8.Identity.Verify` 申请 Passkey、Authenticator TOTP 或严格人脸一次性票据,接口引擎从权威数据重算 `ActionHash` 后调用 `V8.Method.ConsumeIdentityVerificationTicket` 原子消费。票据不能代替菜单/表/行权限、状态机、幂等、事务或审计。
|
|
41
41
|
- Windows Hello、Touch ID、Face ID 和 Android 设备验证优先采用 WebAuthn/Passkey;Microsoft/Google Authenticator 采用标准 TOTP,两者都不增加模型服务。只有服务端严格人脸与活体检测才接入独立 `Microi Face Gateway v1` 云服务或 Docker/集群。完整规范读取 `microi.skills/v8-security/SKILL.md` 与 `microi.doc/docs/doc/more/identity-verification.md`。
|
|
42
|
-
- 外部登录统一在登录页【登录方式】中展示;Gitee、微信、GitHub 等 Provider 只登录个人中心已绑定的吾码用户,最终签发 DiyToken。Provider 固定协议端点,租户自己的 ClientId/ClientSecret 放 `mci_system_setting
|
|
42
|
+
- 外部登录统一在登录页【登录方式】中展示;Gitee、微信、GitHub 等 Provider 只登录个人中心已绑定的吾码用户,最终签发 DiyToken。Provider 固定协议端点,租户自己的 ClientId/ClientSecret 放 `mci_system_setting`;Secret 不进入浏览器/前端 `V8.SysConfig`,但后端接口引擎和后端 V8 事件可从当前租户根级 `V8.SysConfig[ConfigKey]` 使用,禁止回传或记录原文。
|
|
43
43
|
- 一键安装恢复客户旧库时只允许定位精确主租户三元组;缺失则幂等创建,重复则停止,不能批量重写其它子租户。新主租户行不得持久化数据库、MongoDB 或 Redis 连接,安装器对 MinIO/OCR 等业务配置的后续更新也必须带同一三元组、活动状态条件并做唯一回读。
|
|
44
44
|
|
|
45
45
|
<!-- /microi-progressive:chunk -->
|