@microi.net/cli 5.3.9 → 5.4.1

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.
@@ -1,13 +1,13 @@
1
1
  {
2
- "builtAt": "2026-08-27T13:01:10.548Z",
2
+ "builtAt": "2026-08-30T12:14:33.508Z",
3
3
  "source": "../microi.skills",
4
4
  "extension": {
5
5
  "name": "v8-engine",
6
- "version": "5.3.9",
6
+ "version": "5.4.1",
7
7
  "publisher": "Microi"
8
8
  },
9
9
  "skills": {
10
- "version": "5.3.9",
10
+ "version": "5.4.1",
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,17 +15,17 @@
15
15
  "dir": "dist/microi.skills",
16
16
  "files": 178,
17
17
  "skills": 65,
18
- "bytes": 2280221
18
+ "bytes": 2291541
19
19
  },
20
20
  "fileHashes": {
21
- ".microi-skills-version.json": "7bf5ae573892d236ad14c12051ba428e2bcb20641dc1fec498f4afda08b3f30c",
21
+ ".microi-skills-version.json": "5d99887b6bbafd6f771075cc5a31ab01a0d0652d71bf1e944a44fdf784a93dd0",
22
22
  ".progressive-disclosure-manifest.json": "c039b5bc6761bd0a17b551e3a865cfb4660253254185c96650e83ad13d2f01cb",
23
23
  "README.md": "332aade05015acac5f1387829a42529f37fc203ff0fcfb2f16cc3afdbb23b1ed",
24
24
  "ai-engine/SKILL.md": "df63cf56bd06027f30bd0597003c65b479049141fc0b4a31d33cbc9a5fa044cf",
25
25
  "ai-engine/agents/openai.yaml": "40deb07801006a46b9a7f0020d13251955eeadd04c8e591160210479936f8b5b",
26
26
  "ai-platform-governance/SKILL.md": "84ca4bcacf15deecd0c04dc1a664b23041a6a5f020d3a5288c5458b5e7da4b8e",
27
27
  "ai-platform-governance/references/progressive-01-功能开关.md": "ea46fb02267e9e3ace3d9d72e67b02183c61e5c198f4b2f27e8196d6ee6d0bec",
28
- "app-store/SKILL.md": "318a0f3b9cd3d2b2cf4e8e06b96f3ccdce928b49461c490654e9fe938e2ccd60",
28
+ "app-store/SKILL.md": "929d7d898cc02c5f8d4c5f2a48c4122965a14eedd93e568937e49fb4cf3bfab5",
29
29
  "app-store/agents/openai.yaml": "eda8f5cf043e7b8fb0e4fb3acf0625fef95eb49586b43187ced277cd0ae4a2c4",
30
30
  "business-blueprint/SKILL.md": "01619a3b6d37b5b67649ee59d2701301222006d3b943882b2802b1721c58f8a9",
31
31
  "datasource-engine/SKILL.md": "bed8352f1d43b55145e1c492d1ea0ca1ec8750b5c4d74e1e80cd71aa7b9a2e6f",
@@ -47,7 +47,7 @@
47
47
  "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "bf78d9d2e2d6d1a8315f44f04f21889b21d845a02801d5f8e0eb11b3f490b6d1",
48
48
  "microi-codex-installer/SKILL.md": "75bec07d087167ab6343c816d07d9c7e1e850871a05737f31aec115e7fa3cdce",
49
49
  "microi-codex-installer/agents/openai.yaml": "e531219b74a70204893a156b1c22c69013a4c9d24b132ead912746b1b312cf80",
50
- "microi-codex/SKILL.md": "61f5e6ffad986766be3d4d09a4111a2c4fd7a1b2247e2fb48ca0e22dd3b9c2d6",
50
+ "microi-codex/SKILL.md": "89620fa084b90a03a7890f2815d1f1ab1911ddb8849ad53779b901a4aa4d6247",
51
51
  "microi-datasource-mapping/SKILL.md": "619c022b668f928129abef10e3f502f2ca0d2dee6e341ccd55f61fdbbcdd9661",
52
52
  "microi-db-schema/SKILL.md": "a69a9bcc87e8b74879c801c7e478a6270da8f2e4724421ff0611bb9a95c2fd1f",
53
53
  "microi-db-schema/agents/openai.yaml": "c725a2be4c904472f9e46dc4b49aa642c9f3a4437c91a28ba7cc27167497ede7",
@@ -77,11 +77,11 @@
77
77
  "microi-solution-quotation/SKILL.md": "d99886d1261dba1c56b8ef70090783ffe9ae8a4915f5ca2c7e1fae6be519567a",
78
78
  "microi-solution-quotation/agents/openai.yaml": "9e3f994cc842c927ca25e23216f6ce5e8f8313fc39b1c7142d9b652ca73e7dd1",
79
79
  "microi-solution-quotation/scripts/build_solution_quote.py": "2a8a90ed95308b900da3db433402d857f838b594df624f5a83b62307471a31e7",
80
- "microi-sso/SKILL.md": "20ed1b96598bcb6390e522b229475064f452f903d6aa893a1d07d8a742c5d4cc",
81
- "microi-sso/references/acceptance.md": "85593b5bf37b1570adf6291588a4fa09167383ecec9d3ff6f4ccc25ba93f5c24",
82
- "microi-sso/references/configuration-and-security.md": "422c52e4e134cb674aea5384fcf42489a2d26c82659c0ac218a23fdd04006635",
83
- "microi-sso/references/inbound.md": "f2d1bd43d4bab3297b98b54cfc250d73adf8b8f07797af7900c90f77b9801b1c",
84
- "microi-sso/references/outbound.md": "236da363eea139a19264e956c94e0cc90da69a0a6c21505d0e02e682d8c506bc",
80
+ "microi-sso/SKILL.md": "db1640210e14e043ac34b1b5e825f1a67e527f1470704bd351a0f8ee8f076265",
81
+ "microi-sso/references/acceptance.md": "94adf1771155cb3cf53ab90dda0b66afd326f086fd8a89b96db06894c2552f87",
82
+ "microi-sso/references/configuration-and-security.md": "bffdfd22fde59ddc80875320ad1fceb8f0e02cd3d5c5b5491b8f0e60b9dd182b",
83
+ "microi-sso/references/inbound.md": "18f3f0855c3f7be90cc74bf57fa95a150158a6b65bc1e48748e9b4a75695c834",
84
+ "microi-sso/references/outbound.md": "6cc98a7620e9aa186a28a86abfdb21d106de757865801f82b8457b51ad1d81ad",
85
85
  "microi-system-delivery/SKILL.md": "06502e440efa37689a0d98bfa34f960d882a80fb1d1ab1e87ec36868c2af09cc",
86
86
  "microi-system-delivery/references/progressive-01-标准工作流.md": "02c9fe51cab2216fc58fb4a18a6acb43b3318864a5a74cac2990e848e3e19c4b",
87
87
  "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "65acd38ad85744c7fd69d23bb65c25269e293a4085fed2bbef2ee2aeb4c232d0",
@@ -90,7 +90,7 @@
90
90
  "microi-uniapp-frontend/SKILL.md": "58614f69730f0a9021e2df64d8de586907fc6f80285606698a8fa5811a6ead06",
91
91
  "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "44df3c20120298f6565cf4388eadca70d98d097880c61168ce6d3ac03e80968b",
92
92
  "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "31a0a12e39ec785df038fb5c73d4978d6dec42d86c52b79e91082c9ac13f29cf",
93
- "microi.v8.js": "0cc13cab1720738e52f6177ae6887100f94aec38257c862c72f23ecead9e3130",
93
+ "microi.v8.js": "e1503fec0a0bc0077efc6429b4f16a9e2ba3e7e1188a7b5587a7aa1b1788fda0",
94
94
  "module-engine/SKILL.md": "64c899b916aca60189b5cb02abe6577d686bcd3820188970d32f751699196266",
95
95
  "module-engine/references/module-config.md": "9e8ac8a7f65d6b563f938193d4b7c6b230d878a3513fc2a90c8b780e70ddd353",
96
96
  "ocr-engine/SKILL.md": "ca6157cb0c9184047f38e0b427927a0300dc1457129b918821c4186db8e37311",
@@ -134,14 +134,14 @@
134
134
  "ui-design/references/progressive-06-主题切换实现.md": "3ff0b51f32d15afd89e1e3de821ecede9dc7ad25c1fe6bc524e019e9a557d5ee",
135
135
  "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "11d4183f910c672740c723d204f7827405be644c93ce7056e4257159e7a53a4a",
136
136
  "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "f97eb92c7e97e62aba5c7d2c002d90a15b5db28229e06a1b000013d24e42d571",
137
- "uniapp-mall-assets/SKILL.md": "30a85548bb600de35e5608c3c95df2e4ac4dd17954da2a9d48bc1744fad6db6b",
137
+ "uniapp-mall-assets/SKILL.md": "7dd295e03a034a1694e55c365acd3bfb52d2ff1fa887c979479343e101f867f5",
138
138
  "unity-integration/SKILL.md": "7241b76c5d738d104a34a0d23d31bbda0295a406c598af63d2830dc57138e7bc",
139
139
  "unity-integration/agents/openai.yaml": "f07748ace7e6303e49eac32d77f3e7163c8de1cef1f2f87e20de76207c8e5a50",
140
140
  "unity-integration/references/ai-app-delivery.md": "cf0338a14b647bea42c31257cc73326c7a5a065a21153e21763235064f1d6373",
141
141
  "unity-integration/references/sdk-api.md": "b473e7094b0c4cf7860cecb9acfbdd55025c7f851b4bd4bf92b4233091b182fa",
142
142
  "unity-integration/references/toolbox-migration.md": "b9294ea7db2b2a0f31e650e6e80f6d8f69385037bff6ac39fd5525ea98f8c934",
143
143
  "unity-integration/references/webgl-hosting.md": "5c19bda62d7c7a258b4fafc1d46e9a7c94e5400803d77d9aff44ce794083e745",
144
- "v8-api-config/SKILL.md": "96d51360ed966678bc71a6cf4ba8742344f31783251e9fdf4426c338b30a8e28",
144
+ "v8-api-config/SKILL.md": "afc74b548f2672070b98b5ef430ae1a955c8d45d42b6d92056c71cb4ea843ccd",
145
145
  "v8-cache-pattern/SKILL.md": "66f55bc84ac56854804ae22f8957a62555a906aea55f983d39eb6f5eb90e7f11",
146
146
  "v8-crud-api/SKILL.md": "f497a58bd87c6a77bafb1e0a753371489fe803ebe67c1e0eecb900bac58cd510",
147
147
  "v8-crud-api/references/progressive-01-查询列表-分页.md": "5264932207d1a011062e3f6a982b44ce3796470f7d3261ec3d6690322b28f61d",
@@ -176,7 +176,7 @@
176
176
  "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "842c74bd8bc30b932346e34c0d4154edffc1bf6a5a8aaafaaa344f250394762c",
177
177
  "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "433b922578f37e95483a3d794ad0bf60ba6344fe9ea580eeb3d34b42c50d352f",
178
178
  "v8-saas-multi-tenant/SKILL.md": "a8463c2759e5872cbf198e67df963d7db4662264b92662bd7efc18fb4cf9db88",
179
- "v8-security/SKILL.md": "a8d9a2b5aaded1da4e60950e069d84252488abd34bb5be8e42620165a13db11f",
179
+ "v8-security/SKILL.md": "d1c5f1d3d0480570ca8852ec21a01580869f276d73b1b0366d03184a3c7fd84a",
180
180
  "v8-security/references/progressive-01-2-权限校验.md": "a7e2314b8f2f9bf413956191ffeda6d2f823760def2b06bf6b4c1565e8f71816",
181
181
  "v8-security/references/progressive-02-7-日志记录.md": "412be2c82f7e00e5f26711e6dee7b5eb9b734751fee553b9a4a0ce9216bbe928",
182
182
  "v8-sql-query/SKILL.md": "23a12c6801627890d18ff9f1d09cdd1abbd9b08ffc12ef6a12c915d504ed3255",
@@ -190,7 +190,7 @@
190
190
  "v8-utilities/references/client-api-index.md": "3362126197bd34191640d6bd532b16f1ed446c4a8a9d805f4973be5d58b90a4a",
191
191
  "v8-utilities/references/platform-http-routes.md": "b081b87dff5848eed9b948e2324d25ff27f26f14dc2045df486e9a66981bb74b",
192
192
  "v8-utilities/references/server-api-index.md": "c2e7095c1d58ad54c710d669c2bde747440c08eff0b22ab32867cfe52ffc0ff2",
193
- "v8-workflow/SKILL.md": "d068ceded6f338fece9443f354dff21dfcf744dd192dd6329b2e98692bb8181e",
193
+ "v8-workflow/SKILL.md": "676e0742d7c66db3c79cd2e0d96096ba12040e68cb10ee6276a04310486714f1",
194
194
  "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "9b6b01e7ac03c0a11bc837671a30107ff5c5f253029d74fd17713084104d7e99",
195
195
  "workspace-conventions/SKILL.md": "093f4cb8d3eaab696442dd6e2c0f51361d5127f6d38d96607bc0d78e03afa4f6",
196
196
  "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "576a781ecc529f7b5c9a824326445b2c90b3172ba0285a73fae4a2e45c9b84f5",
@@ -198,184 +198,184 @@
198
198
  "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "86db1f03700fd54dd824d28c553c678202e8f74b796fd0f9d91f63bf53a530b1"
199
199
  },
200
200
  "fileVersions": {
201
- ".microi-skills-version.json": "5.3.9",
202
- ".progressive-disclosure-manifest.json": "5.3.9",
203
- "README.md": "5.3.9",
204
- "ai-engine/SKILL.md": "5.3.9",
205
- "ai-engine/agents/openai.yaml": "5.3.9",
206
- "ai-platform-governance/SKILL.md": "5.3.9",
207
- "ai-platform-governance/references/progressive-01-功能开关.md": "5.3.9",
208
- "app-store/SKILL.md": "5.3.9",
209
- "app-store/agents/openai.yaml": "5.3.9",
210
- "business-blueprint/SKILL.md": "5.3.9",
211
- "datasource-engine/SKILL.md": "5.3.9",
212
- "datasource-engine/agents/openai.yaml": "5.3.9",
213
- "dos-orm/SKILL.md": "5.3.9",
214
- "dos-orm/references/api-reference.md": "5.3.9",
215
- "job-engine/SKILL.md": "5.3.9",
216
- "job-engine/agents/openai.yaml": "5.3.9",
217
- "message-notification/SKILL.md": "5.3.9",
218
- "message-notification/agents/openai.yaml": "5.3.9",
219
- "message-notification/references/contracts.md": "5.3.9",
220
- "microi-ai-app-auth.js": "5.3.9",
221
- "microi-ai-application/SKILL.md": "5.3.9",
222
- "microi-ai-application/agents/openai.yaml": "5.3.9",
223
- "microi-ai-application/references/frontend-baseline.md": "5.3.9",
224
- "microi-client-frontend/SKILL.md": "5.3.9",
225
- "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.3.9",
226
- "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.3.9",
227
- "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.3.9",
228
- "microi-codex-installer/SKILL.md": "5.3.9",
229
- "microi-codex-installer/agents/openai.yaml": "5.3.9",
230
- "microi-codex/SKILL.md": "5.3.9",
231
- "microi-datasource-mapping/SKILL.md": "5.3.9",
232
- "microi-db-schema/SKILL.md": "5.3.9",
233
- "microi-db-schema/agents/openai.yaml": "5.3.9",
234
- "microi-db-schema/references/core-tables.md": "5.3.9",
235
- "microi-db-schema/references/form-component-options.md": "5.3.9",
236
- "microi-db-schema/references/schema-overview.md": "5.3.9",
237
- "microi-db-schema/references/schema.md": "5.3.9",
238
- "microi-db-schema/references/table-catalog.md": "5.3.9",
239
- "microi-deployment/SKILL.md": "5.3.9",
240
- "microi-deployment/references/deployment-matrix.md": "5.3.9",
241
- "microi-docs-coverage/SKILL.md": "5.3.9",
242
- "microi-docs-coverage/references/capability-map.md": "5.3.9",
243
- "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.3.9",
244
- "microi-form-engine/SKILL.md": "5.3.9",
245
- "microi-form-engine/references/component-catalog.md": "5.3.9",
246
- "microi-form-engine/references/data-source-events.md": "5.3.9",
247
- "microi-form-layout/SKILL.md": "5.3.9",
248
- "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.3.9",
249
- "microi-frontend-sdk/SKILL.md": "5.3.9",
250
- "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.3.9",
251
- "microi-left-right-layout/SKILL.md": "5.3.9",
252
- "microi-microservice/SKILL.md": "5.3.9",
253
- "microi-microservice/references/runtime-delivery.md": "5.3.9",
254
- "microi-mobile-app-quality/SKILL.md": "5.3.9",
255
- "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.3.9",
256
- "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.3.9",
257
- "microi-solution-quotation/SKILL.md": "5.3.9",
258
- "microi-solution-quotation/agents/openai.yaml": "5.3.9",
259
- "microi-solution-quotation/scripts/build_solution_quote.py": "5.3.9",
260
- "microi-sso/SKILL.md": "5.3.9",
261
- "microi-sso/references/acceptance.md": "5.3.9",
262
- "microi-sso/references/configuration-and-security.md": "5.3.9",
263
- "microi-sso/references/inbound.md": "5.3.9",
264
- "microi-sso/references/outbound.md": "5.3.9",
265
- "microi-system-delivery/SKILL.md": "5.3.9",
266
- "microi-system-delivery/references/progressive-01-标准工作流.md": "5.3.9",
267
- "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.3.9",
268
- "microi-ui/SKILL.md": "5.3.9",
269
- "microi-ui/references/progressive-01-移动端场景蓝图.md": "5.3.9",
270
- "microi-uniapp-frontend/SKILL.md": "5.3.9",
271
- "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.3.9",
272
- "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.3.9",
273
- "microi.v8.js": "5.3.9",
274
- "module-engine/SKILL.md": "5.3.9",
275
- "module-engine/references/module-config.md": "5.3.9",
276
- "ocr-engine/SKILL.md": "5.3.9",
277
- "ocr-engine/agents/openai.yaml": "5.3.9",
278
- "page-engine/SKILL.md": "5.3.9",
279
- "page-engine/references/progressive-01-所有组件类型.md": "5.3.9",
280
- "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.3.9",
281
- "performance-testing/SKILL.md": "5.3.9",
282
- "playwright-e2e/SKILL.md": "5.3.9",
283
- "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.3.9",
284
- "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.3.9",
285
- "playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.3.9",
286
- "playwright-e2e/references/progressive-04-ci-建议.md": "5.3.9",
287
- "print-engine/SKILL.md": "5.3.9",
288
- "production-readonly-audit/SKILL.md": "5.3.9",
289
- "report-engine/SKILL.md": "5.3.9",
290
- "report-engine/agents/openai.yaml": "5.3.9",
291
- "scripts/optimize-progressive-disclosure.mjs": "5.3.9",
292
- "scripts/refresh-progressive-disclosure.mjs": "5.3.9",
293
- "scripts/validate-progressive-disclosure.mjs": "5.3.9",
294
- "search-engine/SKILL.md": "5.3.9",
295
- "search-engine/agents/openai.yaml": "5.3.9",
296
- "spider-engine/SKILL.md": "5.3.9",
297
- "system-observability/SKILL.md": "5.3.9",
298
- "translate-engine/SKILL.md": "5.3.9",
299
- "translate-engine/agents/openai.yaml": "5.3.9",
300
- "ui-design/SKILL.md": "5.3.9",
301
- "ui-design/assets/pattern-showcase/app.js": "5.3.9",
302
- "ui-design/assets/pattern-showcase/index.html": "5.3.9",
303
- "ui-design/assets/pattern-showcase/styles.css": "5.3.9",
304
- "ui-design/assets/templates/MCI-DESIGN.md": "5.3.9",
305
- "ui-design/references/design-pattern-library.md": "5.3.9",
306
- "ui-design/references/mci-design-contract.md": "5.3.9",
307
- "ui-design/references/motion-and-media.md": "5.3.9",
308
- "ui-design/references/product-flow-recipes.md": "5.3.9",
309
- "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.3.9",
310
- "ui-design/references/progressive-02-字体.md": "5.3.9",
311
- "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.3.9",
312
- "ui-design/references/progressive-04-组件风格速查.md": "5.3.9",
313
- "ui-design/references/progressive-05-移动端专用规范.md": "5.3.9",
314
- "ui-design/references/progressive-06-主题切换实现.md": "5.3.9",
315
- "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.3.9",
316
- "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.3.9",
317
- "uniapp-mall-assets/SKILL.md": "5.3.9",
318
- "unity-integration/SKILL.md": "5.3.9",
319
- "unity-integration/agents/openai.yaml": "5.3.9",
320
- "unity-integration/references/ai-app-delivery.md": "5.3.9",
321
- "unity-integration/references/sdk-api.md": "5.3.9",
322
- "unity-integration/references/toolbox-migration.md": "5.3.9",
323
- "unity-integration/references/webgl-hosting.md": "5.3.9",
324
- "v8-api-config/SKILL.md": "5.3.9",
325
- "v8-cache-pattern/SKILL.md": "5.3.9",
326
- "v8-crud-api/SKILL.md": "5.3.9",
327
- "v8-crud-api/references/progressive-01-查询列表-分页.md": "5.3.9",
328
- "v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.3.9",
329
- "v8-debugging/SKILL.md": "5.3.9",
330
- "v8-explorer-tree/SKILL.md": "5.3.9",
331
- "v8-export-import/SKILL.md": "5.3.9",
332
- "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.3.9",
333
- "v8-export-import/references/progressive-02-powerpoint-导出.md": "5.3.9",
334
- "v8-export-import/references/progressive-03-安全-性能注意.md": "5.3.9",
335
- "v8-file-upload/SKILL.md": "5.3.9",
336
- "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.3.9",
337
- "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.3.9",
338
- "v8-formengine-http/SKILL.md": "5.3.9",
339
- "v8-frontend-events/SKILL.md": "5.3.9",
340
- "v8-frontend-events/references/bluetooth-print-api.md": "5.3.9",
341
- "v8-frontend-events/references/bluetooth-print.md": "5.3.9",
342
- "v8-frontend-events/references/progressive-01-列表事件.md": "5.3.9",
343
- "v8-http-integration/SKILL.md": "5.3.9",
344
- "v8-http-integration/references/progressive-01-get-请求.md": "5.3.9",
345
- "v8-http-integration/references/progressive-02-错误处理模式.md": "5.3.9",
346
- "v8-image-processing/SKILL.md": "5.3.9",
347
- "v8-image-processing/agents/openai.yaml": "5.3.9",
348
- "v8-image-processing/references/api-reference.md": "5.3.9",
349
- "v8-menu-buttons/SKILL.md": "5.3.9",
350
- "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.3.9",
351
- "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.3.9",
352
- "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.3.9",
353
- "v8-mongodb/SKILL.md": "5.3.9",
354
- "v8-mq-mqtt/SKILL.md": "5.3.9",
355
- "v8-mq-mqtt/references/mqtt-production.md": "5.3.9",
356
- "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.3.9",
357
- "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.3.9",
358
- "v8-saas-multi-tenant/SKILL.md": "5.3.9",
359
- "v8-security/SKILL.md": "5.3.9",
360
- "v8-security/references/progressive-01-2-权限校验.md": "5.3.9",
361
- "v8-security/references/progressive-02-7-日志记录.md": "5.3.9",
362
- "v8-sql-query/SKILL.md": "5.3.9",
363
- "v8-table-event/SKILL.md": "5.3.9",
364
- "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.3.9",
365
- "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.3.9",
366
- "v8-tcp-integration/SKILL.md": "5.3.9",
367
- "v8-tcp-integration/agents/openai.yaml": "5.3.9",
368
- "v8-template-engine/SKILL.md": "5.3.9",
369
- "v8-utilities/SKILL.md": "5.3.9",
370
- "v8-utilities/references/client-api-index.md": "5.3.9",
371
- "v8-utilities/references/platform-http-routes.md": "5.3.9",
372
- "v8-utilities/references/server-api-index.md": "5.3.9",
373
- "v8-workflow/SKILL.md": "5.3.9",
374
- "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.3.9",
375
- "workspace-conventions/SKILL.md": "5.3.9",
376
- "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.3.9",
377
- "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.3.9",
378
- "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.3.9"
201
+ ".microi-skills-version.json": "5.4.1",
202
+ ".progressive-disclosure-manifest.json": "5.4.1",
203
+ "README.md": "5.4.1",
204
+ "ai-engine/SKILL.md": "5.4.1",
205
+ "ai-engine/agents/openai.yaml": "5.4.1",
206
+ "ai-platform-governance/SKILL.md": "5.4.1",
207
+ "ai-platform-governance/references/progressive-01-功能开关.md": "5.4.1",
208
+ "app-store/SKILL.md": "5.4.1",
209
+ "app-store/agents/openai.yaml": "5.4.1",
210
+ "business-blueprint/SKILL.md": "5.4.1",
211
+ "datasource-engine/SKILL.md": "5.4.1",
212
+ "datasource-engine/agents/openai.yaml": "5.4.1",
213
+ "dos-orm/SKILL.md": "5.4.1",
214
+ "dos-orm/references/api-reference.md": "5.4.1",
215
+ "job-engine/SKILL.md": "5.4.1",
216
+ "job-engine/agents/openai.yaml": "5.4.1",
217
+ "message-notification/SKILL.md": "5.4.1",
218
+ "message-notification/agents/openai.yaml": "5.4.1",
219
+ "message-notification/references/contracts.md": "5.4.1",
220
+ "microi-ai-app-auth.js": "5.4.1",
221
+ "microi-ai-application/SKILL.md": "5.4.1",
222
+ "microi-ai-application/agents/openai.yaml": "5.4.1",
223
+ "microi-ai-application/references/frontend-baseline.md": "5.4.1",
224
+ "microi-client-frontend/SKILL.md": "5.4.1",
225
+ "microi-client-frontend/references/progressive-01-3-动态按钮系统.md": "5.4.1",
226
+ "microi-client-frontend/references/progressive-02-8-运行时高频坑复盘.md": "5.4.1",
227
+ "microi-client-frontend/references/progressive-03-vue3-前端微服务宿主规则.md": "5.4.1",
228
+ "microi-codex-installer/SKILL.md": "5.4.1",
229
+ "microi-codex-installer/agents/openai.yaml": "5.4.1",
230
+ "microi-codex/SKILL.md": "5.4.1",
231
+ "microi-datasource-mapping/SKILL.md": "5.4.1",
232
+ "microi-db-schema/SKILL.md": "5.4.1",
233
+ "microi-db-schema/agents/openai.yaml": "5.4.1",
234
+ "microi-db-schema/references/core-tables.md": "5.4.1",
235
+ "microi-db-schema/references/form-component-options.md": "5.4.1",
236
+ "microi-db-schema/references/schema-overview.md": "5.4.1",
237
+ "microi-db-schema/references/schema.md": "5.4.1",
238
+ "microi-db-schema/references/table-catalog.md": "5.4.1",
239
+ "microi-deployment/SKILL.md": "5.4.1",
240
+ "microi-deployment/references/deployment-matrix.md": "5.4.1",
241
+ "microi-docs-coverage/SKILL.md": "5.4.1",
242
+ "microi-docs-coverage/references/capability-map.md": "5.4.1",
243
+ "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "5.4.1",
244
+ "microi-form-engine/SKILL.md": "5.4.1",
245
+ "microi-form-engine/references/component-catalog.md": "5.4.1",
246
+ "microi-form-engine/references/data-source-events.md": "5.4.1",
247
+ "microi-form-layout/SKILL.md": "5.4.1",
248
+ "microi-form-layout/references/progressive-01-3-三种分组的存储与配置.md": "5.4.1",
249
+ "microi-frontend-sdk/SKILL.md": "5.4.1",
250
+ "microi-frontend-sdk/references/progressive-01-token-当前登录用户与当前终端登录协议.md": "5.4.1",
251
+ "microi-left-right-layout/SKILL.md": "5.4.1",
252
+ "microi-microservice/SKILL.md": "5.4.1",
253
+ "microi-microservice/references/runtime-delivery.md": "5.4.1",
254
+ "microi-mobile-app-quality/SKILL.md": "5.4.1",
255
+ "microi-mobile-app-quality/references/progressive-01-4-重要按钮必须带图标.md": "5.4.1",
256
+ "microi-mobile-app-quality/references/progressive-02-9-主题切换必须真实且全局生效.md": "5.4.1",
257
+ "microi-solution-quotation/SKILL.md": "5.4.1",
258
+ "microi-solution-quotation/agents/openai.yaml": "5.4.1",
259
+ "microi-solution-quotation/scripts/build_solution_quote.py": "5.4.1",
260
+ "microi-sso/SKILL.md": "5.4.1",
261
+ "microi-sso/references/acceptance.md": "5.4.1",
262
+ "microi-sso/references/configuration-and-security.md": "5.4.1",
263
+ "microi-sso/references/inbound.md": "5.4.1",
264
+ "microi-sso/references/outbound.md": "5.4.1",
265
+ "microi-system-delivery/SKILL.md": "5.4.1",
266
+ "microi-system-delivery/references/progressive-01-标准工作流.md": "5.4.1",
267
+ "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md": "5.4.1",
268
+ "microi-ui/SKILL.md": "5.4.1",
269
+ "microi-ui/references/progressive-01-移动端场景蓝图.md": "5.4.1",
270
+ "microi-uniapp-frontend/SKILL.md": "5.4.1",
271
+ "microi-uniapp-frontend/references/progressive-01-移动端分类-双栏列表独立滚动.md": "5.4.1",
272
+ "microi-uniapp-frontend/references/progressive-02-关键业务资产不得默认选中.md": "5.4.1",
273
+ "microi.v8.js": "5.4.1",
274
+ "module-engine/SKILL.md": "5.4.1",
275
+ "module-engine/references/module-config.md": "5.4.1",
276
+ "ocr-engine/SKILL.md": "5.4.1",
277
+ "ocr-engine/agents/openai.yaml": "5.4.1",
278
+ "page-engine/SKILL.md": "5.4.1",
279
+ "page-engine/references/progressive-01-所有组件类型.md": "5.4.1",
280
+ "page-engine/references/progressive-02-版本历史-并发保存与回滚.md": "5.4.1",
281
+ "performance-testing/SKILL.md": "5.4.1",
282
+ "playwright-e2e/SKILL.md": "5.4.1",
283
+ "playwright-e2e/references/progressive-01-全自动登录-免验证码-但不免密码-必读.md": "5.4.1",
284
+ "playwright-e2e/references/progressive-02-文字对比度与可读性自动化检查-必做.md": "5.4.1",
285
+ "playwright-e2e/references/progressive-03-microi-helper-模板.md": "5.4.1",
286
+ "playwright-e2e/references/progressive-04-ci-建议.md": "5.4.1",
287
+ "print-engine/SKILL.md": "5.4.1",
288
+ "production-readonly-audit/SKILL.md": "5.4.1",
289
+ "report-engine/SKILL.md": "5.4.1",
290
+ "report-engine/agents/openai.yaml": "5.4.1",
291
+ "scripts/optimize-progressive-disclosure.mjs": "5.4.1",
292
+ "scripts/refresh-progressive-disclosure.mjs": "5.4.1",
293
+ "scripts/validate-progressive-disclosure.mjs": "5.4.1",
294
+ "search-engine/SKILL.md": "5.4.1",
295
+ "search-engine/agents/openai.yaml": "5.4.1",
296
+ "spider-engine/SKILL.md": "5.4.1",
297
+ "system-observability/SKILL.md": "5.4.1",
298
+ "translate-engine/SKILL.md": "5.4.1",
299
+ "translate-engine/agents/openai.yaml": "5.4.1",
300
+ "ui-design/SKILL.md": "5.4.1",
301
+ "ui-design/assets/pattern-showcase/app.js": "5.4.1",
302
+ "ui-design/assets/pattern-showcase/index.html": "5.4.1",
303
+ "ui-design/assets/pattern-showcase/styles.css": "5.4.1",
304
+ "ui-design/assets/templates/MCI-DESIGN.md": "5.4.1",
305
+ "ui-design/references/design-pattern-library.md": "5.4.1",
306
+ "ui-design/references/mci-design-contract.md": "5.4.1",
307
+ "ui-design/references/motion-and-media.md": "5.4.1",
308
+ "ui-design/references/product-flow-recipes.md": "5.4.1",
309
+ "ui-design/references/progressive-01-颜色体系-css-variables-支持主题切换.md": "5.4.1",
310
+ "ui-design/references/progressive-02-字体.md": "5.4.1",
311
+ "ui-design/references/progressive-03-动效规范-丰富但不卡.md": "5.4.1",
312
+ "ui-design/references/progressive-04-组件风格速查.md": "5.4.1",
313
+ "ui-design/references/progressive-05-移动端专用规范.md": "5.4.1",
314
+ "ui-design/references/progressive-06-主题切换实现.md": "5.4.1",
315
+ "ui-design/references/progressive-07-速查-从头搭建一个移动端页面.md": "5.4.1",
316
+ "ui-design/references/progressive-08-表单分组规范-tabs-vs-collapsegroup-强制.md": "5.4.1",
317
+ "uniapp-mall-assets/SKILL.md": "5.4.1",
318
+ "unity-integration/SKILL.md": "5.4.1",
319
+ "unity-integration/agents/openai.yaml": "5.4.1",
320
+ "unity-integration/references/ai-app-delivery.md": "5.4.1",
321
+ "unity-integration/references/sdk-api.md": "5.4.1",
322
+ "unity-integration/references/toolbox-migration.md": "5.4.1",
323
+ "unity-integration/references/webgl-hosting.md": "5.4.1",
324
+ "v8-api-config/SKILL.md": "5.4.1",
325
+ "v8-cache-pattern/SKILL.md": "5.4.1",
326
+ "v8-crud-api/SKILL.md": "5.4.1",
327
+ "v8-crud-api/references/progressive-01-查询列表-分页.md": "5.4.1",
328
+ "v8-crud-api/references/progressive-02-where-条件语法速查.md": "5.4.1",
329
+ "v8-debugging/SKILL.md": "5.4.1",
330
+ "v8-explorer-tree/SKILL.md": "5.4.1",
331
+ "v8-export-import/SKILL.md": "5.4.1",
332
+ "v8-export-import/references/progressive-01-excellayout-高级自由布局.md": "5.4.1",
333
+ "v8-export-import/references/progressive-02-powerpoint-导出.md": "5.4.1",
334
+ "v8-export-import/references/progressive-03-安全-性能注意.md": "5.4.1",
335
+ "v8-file-upload/SKILL.md": "5.4.1",
336
+ "v8-file-upload/references/progressive-01-公有桶-vs-私有桶.md": "5.4.1",
337
+ "v8-file-upload/references/progressive-02-office-文件在线编辑版本号规则.md": "5.4.1",
338
+ "v8-formengine-http/SKILL.md": "5.4.1",
339
+ "v8-frontend-events/SKILL.md": "5.4.1",
340
+ "v8-frontend-events/references/bluetooth-print-api.md": "5.4.1",
341
+ "v8-frontend-events/references/bluetooth-print.md": "5.4.1",
342
+ "v8-frontend-events/references/progressive-01-列表事件.md": "5.4.1",
343
+ "v8-http-integration/SKILL.md": "5.4.1",
344
+ "v8-http-integration/references/progressive-01-get-请求.md": "5.4.1",
345
+ "v8-http-integration/references/progressive-02-错误处理模式.md": "5.4.1",
346
+ "v8-image-processing/SKILL.md": "5.4.1",
347
+ "v8-image-processing/agents/openai.yaml": "5.4.1",
348
+ "v8-image-processing/references/api-reference.md": "5.4.1",
349
+ "v8-menu-buttons/SKILL.md": "5.4.1",
350
+ "v8-menu-buttons/references/progressive-01-2-按钮对象-schema.md": "5.4.1",
351
+ "v8-menu-buttons/references/progressive-02-8-模式-f-后台任务按钮-长任务.md": "5.4.1",
352
+ "v8-menu-buttons/references/progressive-03-10-反模式-避免.md": "5.4.1",
353
+ "v8-mongodb/SKILL.md": "5.4.1",
354
+ "v8-mq-mqtt/SKILL.md": "5.4.1",
355
+ "v8-mq-mqtt/references/mqtt-production.md": "5.4.1",
356
+ "v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-物联网.md": "5.4.1",
357
+ "v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs": "5.4.1",
358
+ "v8-saas-multi-tenant/SKILL.md": "5.4.1",
359
+ "v8-security/SKILL.md": "5.4.1",
360
+ "v8-security/references/progressive-01-2-权限校验.md": "5.4.1",
361
+ "v8-security/references/progressive-02-7-日志记录.md": "5.4.1",
362
+ "v8-sql-query/SKILL.md": "5.4.1",
363
+ "v8-table-event/SKILL.md": "5.4.1",
364
+ "v8-table-event/references/progressive-01-informv8-js-表单打开事件.md": "5.4.1",
365
+ "v8-table-event/references/progressive-02-前端事件名-v8-eventname-可能的值.md": "5.4.1",
366
+ "v8-tcp-integration/SKILL.md": "5.4.1",
367
+ "v8-tcp-integration/agents/openai.yaml": "5.4.1",
368
+ "v8-template-engine/SKILL.md": "5.4.1",
369
+ "v8-utilities/SKILL.md": "5.4.1",
370
+ "v8-utilities/references/client-api-index.md": "5.4.1",
371
+ "v8-utilities/references/platform-http-routes.md": "5.4.1",
372
+ "v8-utilities/references/server-api-index.md": "5.4.1",
373
+ "v8-workflow/SKILL.md": "5.4.1",
374
+ "v8-workflow/references/progressive-01-节点开始-v8-事件.md": "5.4.1",
375
+ "workspace-conventions/SKILL.md": "5.4.1",
376
+ "workspace-conventions/references/progressive-01-版本更新日志保护规则-强制.md": "5.4.1",
377
+ "workspace-conventions/references/progressive-02-microi-net-api-本地启动约定.md": "5.4.1",
378
+ "workspace-conventions/references/progressive-03-cli-与-ide-插件错版共存约定.md": "5.4.1"
379
379
  },
380
380
  "files": [
381
381
  ".microi-skills-version.json",
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "5.3.9",
2
+ "version": "5.4.1",
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-27T13:00:40.619Z"
5
+ "updatedAt": "2026-08-30T12:13:51.023Z"
6
6
  }
@@ -42,11 +42,12 @@ description: Microi 应用商城开发、打包、安装和升级规范。用于
42
42
 
43
43
  ## 接口引擎资源所有权(强制)
44
44
 
45
- - 新发布包必须声明 `ResourcePolicies.ApiEngines`,不得再依赖“同 Key 直接覆盖”。官方不可随租户修改的核心使用 `{ Ownership:'Application', UpgradePolicy:'Managed' }`;提供给租户改业务的 Hook 使用 `{ Ownership:'Tenant', UpgradePolicy:'CreateIfMissing' }`。
45
+ - 新发布包必须声明 `ResourcePolicies.ApiEngines`,不得再依赖“同 Key 直接覆盖”。官方不可随租户修改的核心使用 `{ Ownership:'Platform', UpgradePolicy:'Managed' }`;提供给租户改业务的 Hook 使用 `{ Ownership:'Tenant', UpgradePolicy:'CreateIfMissing' }`。
46
46
  - 发布器从上一版安装包正文的 `SysApiEngines` 计算 `BaseHash`;正文可能来自已验证的 HDFS 指针或旧版 `AppPakcet`。导入成功后把本版摘要写入 `sys_microistoreversion.InstallResult.ResourceState.ApiEngines`。普通/社区应用仍按 Base/Local/Incoming 三方保护:`Local == Base` 才更新,`Local != Base && Local != Incoming` 必须冲突回滚。允许覆盖官方 Managed 的信任来源只有两种:一是从固定 `https://api.itdos.com + iTdos` 实时回读并校验为官方 `ApplicationType=Platform` 的应用;二是 Upgrade13 从程序集固定九包白名单读取并校验后,在绑定固定导入器 Key 与当前租户的一次性宿主上下文中调用统一导入器。第二种授权必须由宿主上下文消费一次,单独伪造 V8 参数、离线包、自报官方或非 Platform 来源都不能获得;两种路径都只能恢复 `Platform/Managed`,不得覆盖 `Tenant/CreateIfMissing`。
47
47
  - `CreateIfMissing` 只在目标 Key 不存在时创建,存在时不得对齐 Id、源码、启用状态或其它字段。扩展模板发布后即归租户维护;后续版本禁止把同一 Key 改回 `Managed` 接管,确需新的官方核心时发布新 Key 并显式迁移。
48
48
  - 官方功能采用“Managed 核心 + CreateIfMissing Hook”。核心只提供稳定协议和默认行为,并在可信官方 Platform 包更新时覆盖升级;客户日志、写表、通知和业务动作放 Hook,并以稳定 `EventId`、唯一约束或 outbox 幂等。`CreateIfMissing` 一旦交给租户维护,即使后续官方包误改为 Managed 也必须冲突回滚。
49
49
  - 每个官方包内的接口引擎源码顶部都必须有醒目所有权提示。Managed 提示必须写明所属官方应用、从可信官方源安装/更新/重新安装会恢复官方代码,并指向该应用的 CreateIfMissing Hook;CreateIfMissing 提示必须写明首次创建后归租户维护、官方升级不得覆盖。官方 SSO、登录、通知等核心在安全阶段调用 Hook 时,只传脱敏上下文,禁止传 Token、Secret、密码或原始协议断言。
50
+ - 兼容旧 Controller/移动端地址时,在唯一 Managed 接口的 `ApiRoutes` 中用英文分号声明全部旧路径;包导入、启动闭包和写后回读必须校验 `ApiAddress + ApiRoutes` 的全局唯一性。禁止为每个旧路径复制一条接口引擎,也禁止只更新本地 JSON 而遗漏 `.resource-sync-base`、官方商城资源和缓存别名。
50
51
  - 历史包未声明策略时只能按旧兼容流程安装;重新发布时发布器必须生成策略。验收至少覆盖首次安装、可信官方 Managed 本地有差异仍覆盖、普通应用核心差异冲突回滚、Hook 被改后保持原样、重复安装、两节点竞态,以及官方发布数据库连 `ValidateOnly` 也禁止执行安装器。
51
52
 
52
53
  ## 安装流程
@@ -13,7 +13,7 @@ description: 设计、实现、配置、迁移、发布和验收 Microi 吾码
13
13
 
14
14
  - Keycloak、Entra ID、ADFS、CAS Server、企业统一身份中心登录吾码。
15
15
  - 吾码账号登录 ERP、OA、BI、门户或其它第三方系统。
16
- - 修改 `diy_sso`、SSO 登录页、OIDC/SAML/CAS Controller、Claim/角色映射或旧 Token SSO。
16
+ - 修改 `diy_sso`、SSO 登录页、OIDC/SAML/CAS 接口引擎端点、Claim/角色映射或旧 Token SSO。
17
17
  - 发布、安装、升级或验收官方商城应用 `app.microi.sso`。
18
18
 
19
19
  固定 Gitee、微信、GitHub 登录与 Passkey/TOTP 仍以 `v8-security` 为主;当需求是可配置企业身份联邦时转到本 Skill。
@@ -39,7 +39,7 @@ description: 设计、实现、配置、迁移、发布和验收 Microi 吾码
39
39
  6. Secret/私钥只存 `mci_system_setting` 的受控值;`diy_sso` 只存 Setting Key。匿名接口只返回登录入口白名单投影。
40
40
  7. 外部角色、邮箱或昵称不能直接获得管理员权限。默认 `BoundOnly`,JIT 必须显式默认角色、唯一性、回收和审计。
41
41
  8. HTTP 200、构建成功、商城任务入队或包可下载都不是完整 SSO 验收。
42
- 9. SSO 业务逻辑必须接口引擎优先:连接投影、绑定/JIT、角色与 Claim 映射、审计、登录完成和租户扩展不得重新写进 Controller。只有协议报文、签名验签、Secret/私钥隔离、一次性票据与 DiyToken 等可信原子可以保留 C#。
42
+ 9. SSO 公开 HTTP 路由和业务逻辑都必须由接口引擎承载:连接投影、绑定/JIT、角色与 Claim 映射、审计、登录完成、租户扩展以及 OIDC/SAML/CAS 路由不得重新写进 Controller。只有协议编解码、签名验签、Secret/私钥隔离、一次性票据与 DiyToken 等可信原子可以保留在独立 `Microi.SSO` 类库,并且只能由精确官方 Managed Key 调用。
43
43
  10. 客户端调用固定应用接口必须优先使用 `/apiengine/{ApiEngineKey}?OsClient=`,让系统日志/监控按真实接口引擎归因;新版宿主即使接口尚未安装也会返回结构化缺失错误。`/api/ApiEngine/Run` 只保留给无法预知 Key 的旧版兼容调用,禁止新增固定业务依赖;同样禁止调用已删除的 `/api/Sso/Capabilities` 等定制路由。
44
44
 
45
45
  ## 标准工作流
@@ -56,8 +56,8 @@ description: 设计、实现、配置、迁移、发布和验收 Microi 吾码
56
56
 
57
57
  - AppId:`app.microi.sso`
58
58
  - 名称:`SSO 身份联邦`
59
- - 资源:`diy_sso`、`/system/sso`、字段/布局/视图、10 个 Managed 核心接口引擎和 1 个 CreateIfMissing 租户 Hook;不发布用户绑定、连接实例、Secret、证书或示例账号。
60
- - `ResourcePolicies.ApiEngines` 必须逐 Key 显式声明。核心使用 `Managed/Application`;`sso_event_hook` 使用 `CreateIfMissing/Tenant`,安装后永不被官方覆盖。
59
+ - 资源:`diy_sso`、`/system/sso`、字段/布局/视图、34 个 Managed 核心接口引擎和 1 个 CreateIfMissing 租户 Hook;其中 24 个 `sso_http_*` 接管原 SSO Controller 的全部公开路由,不发布用户绑定、连接实例、Secret、证书或示例账号。
60
+ - `ResourcePolicies.ApiEngines` 必须逐 Key 显式声明。核心使用 `Managed/Platform`;`sso_event_hook` 使用 `CreateIfMissing/Tenant`,安装后永不被官方覆盖。
61
61
  - 官方 `iTdos` 是发布源,保护性拒绝安装属于正确行为;普通租户安装才必须轮询到 `Succeeded`。
62
62
 
63
63
  ## C# 与接口引擎责任线
@@ -69,15 +69,16 @@ description: 设计、实现、配置、迁移、发布和验收 Microi 吾码
69
69
  - `sso_resolve_federated_identity` 的绑定、JIT 与角色映射;
70
70
  - `sso_outbound_claims`、`sso_protocol_event`、`sso_event_hook`;
71
71
  - `sso_complete_login`、`sso_rotate_client_secret`、`sso_legacy_token_login` 的业务编排。
72
+ - 24 个 `sso_http_*` Managed 端点:`/api/Sso/Begin`、`/api/Sso/CompleteAuthorization`、OIDC 回调/Discovery/JWKS/Authorize/Token/UserInfo/Introspect/Revoke/Logout、CAS 回调/Login/Validate/Logout、SAML Begin/ACS/Login/Complete/Metadata/Logout。
72
73
 
73
74
  C# 只保留:
74
75
 
75
- - OIDC/SAML/CAS 原始 HTTP/重定向/XML/JWT 报文与签名验签;
76
+ - `Microi.SSO` 的 `SsoProtocolRuntime` 中 OIDC/SAML/CAS 报文编解码、签名验签和协议响应构造;该类型不是 MVC Controller、没有 Route/Http 特性,不直接拥有公开地址;
76
77
  - Secret、私钥、证书和协议 Token 的可信隔离;
77
78
  - 高熵一次性 code/ticket、重放保护和 DiyToken 签发;
78
- - 仅允许精确 Managed Key 调用的 `CreateFederatedUser`、`CreateSsoLoginTicket`、`CompleteSsoLogin`、`RotateSsoClientSecret` 原子。
79
+ - 仅允许精确 Managed Key 调用的 `RunSsoProtocol`、`CreateFederatedUser`、`CreateSsoLoginTicket`、`CompleteSsoLogin`、`RotateSsoClientSecret` 原子。
79
80
 
80
- 协议网关的标准路由是 `/api/Sso/Begin`、`/api/Sso/CompleteAuthorization`、`/api/Sso/CompleteLogin`、`/api/Sso/LegacyCapabilities` 和 `/api/Sso/RotateClientSecret`(统一前缀 `/api/Sso/`)。这些路由只处理重定向、协议报文、签名/票据和可信原子;连接投影、身份解析、登录完成与密钥轮换的业务编排仍由上面的 Managed 接口引擎承担。
81
+ 公开协议路由使用 `ApiAddress`(包括 `{OsClient}`、`{ConnectionKey}` 路径模板)和 `ResponseType=HTTP`。接口引擎可以返回状态码、Content-Type、XML/纯文本、重定向和安全响应头;`Set-Cookie` 等高风险响应头只能来自 `RunSsoProtocol` 签名的可信响应。不得因为协议需要原始 HTTP 而恢复任何 `Sso*Controller`。
81
82
 
82
83
  新增 SSO 需求先判断是否只需修改上述接口引擎。只有缺少不可伪造、不可泄露的底层原子时才增加 V8 方法;增加后同时更新应用 `RequiredPlatformCapabilities`、后端文档、测试与最低版本。
83
84