@microi.net/cli 6.0.8 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codebuddy-plugin/marketplace.json +2 -2
- package/.codebuddy-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.workbuddy-plugin/marketplace.json +2 -2
- package/.workbuddy-plugin/plugin.json +1 -1
- package/assets/build-meta.json +5 -5
- package/cordis.patch.yml +1 -1
- package/package.json +1 -1
- package/scripts/mcp-server.js +96 -96
- package/scripts/microi-cli.js +1 -1
- package/scripts/microi-skills.meta.json +309 -309
- package/skills/.microi-skills-version.json +2 -2
- package/skills/.progressive-disclosure-manifest.json +13 -13
- package/skills/README.md +287 -287
- package/skills/ai-engine/SKILL.md +273 -273
- package/skills/ai-engine/references/ai-employees.md +48 -48
- package/skills/ai-engine/references/self-hosted-digital-human.md +59 -59
- package/skills/ai-platform-governance/references/progressive-01-/345/212/237/350/203/275/345/274/200/345/205/263.md +2 -2
- package/skills/app-store/SKILL.md +3 -3
- package/skills/business-blueprint/SKILL.md +193 -193
- package/skills/datasource-engine/SKILL.md +93 -93
- package/skills/dos-orm/SKILL.md +105 -105
- package/skills/dos-orm/references/api-reference.md +229 -229
- package/skills/email-engine/SKILL.md +81 -81
- package/skills/email-engine/references/v8-email.md +34 -34
- package/skills/job-engine/SKILL.md +176 -176
- package/skills/message-notification/SKILL.md +156 -156
- package/skills/message-notification/references/contracts.md +102 -102
- package/skills/microi/SKILL.md +14 -14
- package/skills/microi-ai-app-auth.js +1 -1
- package/skills/microi-ai-application/SKILL.md +115 -115
- package/skills/microi-ai-application/references/frontend-baseline.md +164 -164
- package/skills/microi-client-frontend/SKILL.md +19 -19
- 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 +10 -10
- 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 +10 -10
- 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 +10 -10
- package/skills/microi-codex/SKILL.md +130 -130
- package/skills/microi-codex-installer/SKILL.md +233 -233
- package/skills/microi-datasource-mapping/SKILL.md +122 -122
- package/skills/microi-db-schema/SKILL.md +175 -175
- package/skills/microi-db-schema/references/core-tables.md +695 -695
- package/skills/microi-db-schema/references/form-component-options.md +256 -256
- package/skills/microi-db-schema/references/schema-overview.md +202 -202
- package/skills/microi-db-schema/references/schema.md +646 -646
- package/skills/microi-db-schema/references/table-catalog.md +1599 -1599
- package/skills/microi-deployment/SKILL.md +260 -258
- package/skills/microi-deployment/references/deployment-matrix.md +109 -109
- package/skills/microi-docs-coverage/SKILL.md +133 -133
- package/skills/microi-docs-coverage/references/capability-map.md +91 -91
- package/skills/microi-form-engine/SKILL.md +338 -338
- package/skills/microi-form-engine/references/component-catalog.md +218 -218
- package/skills/microi-form-engine/references/data-source-events.md +124 -124
- package/skills/microi-left-right-layout/SKILL.md +141 -141
- package/skills/microi-microservice/SKILL.md +353 -348
- package/skills/microi-microservice/references/runtime-delivery.md +282 -282
- package/skills/microi-solution-quotation/SKILL.md +78 -78
- package/skills/microi-sso/SKILL.md +102 -102
- package/skills/microi-sso/references/acceptance.md +51 -51
- package/skills/microi-sso/references/configuration-and-security.md +53 -53
- package/skills/microi-sso/references/inbound.md +53 -53
- package/skills/microi-sso/references/outbound.md +43 -43
- package/skills/microi-system-delivery/SKILL.md +18 -16
- package/skills/microi-system-delivery/references/context-quality.md +3 -3
- package/skills/microi-system-delivery/references/progressive-01-/346/240/207/345/207/206/345/267/245/344/275/234/346/265/201.md +11 -11
- package/skills/microi-system-delivery/references/progressive-02-/350/207/252/345/212/250/345/214/226/346/265/213/350/257/225/345/277/205/351/241/273/350/246/206/347/233/226/347/232/204/345/235/221.md +12 -8
- package/skills/microi-system-delivery/references/progressive-03-/345/256/211/345/205/250/344/270/216/350/267/250/347/253/257/351/252/214/346/224/266.md +8 -8
- package/skills/module-engine/SKILL.md +297 -297
- package/skills/module-engine/references/module-config.md +204 -204
- package/skills/ocr-engine/SKILL.md +113 -113
- package/skills/page-engine/SKILL.md +24 -24
- 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 +10 -10
- 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 +12 -12
- package/skills/performance-testing/SKILL.md +227 -227
- package/skills/print-engine/SKILL.md +259 -259
- package/skills/production-readonly-audit/SKILL.md +41 -41
- package/skills/report-engine/SKILL.md +83 -83
- package/skills/search-engine/SKILL.md +75 -75
- package/skills/spider-engine/SKILL.md +190 -190
- package/skills/system-observability/SKILL.md +264 -264
- package/skills/system-observability/references/memory-incident-triage.md +77 -77
- package/skills/translate-engine/SKILL.md +140 -140
- package/skills/ui-design/assets/templates/MCI-DESIGN.md +206 -206
- package/skills/ui-design/references/design-pattern-library.md +184 -184
- package/skills/ui-design/references/mci-design-contract.md +163 -163
- package/skills/ui-design/references/motion-and-media.md +78 -78
- package/skills/ui-design/references/product-flow-recipes.md +94 -94
- package/skills/uniapp-mall-assets/SKILL.md +176 -176
- package/skills/unity-integration/SKILL.md +178 -178
- package/skills/unity-integration/references/ai-app-delivery.md +119 -119
- package/skills/unity-integration/references/sdk-api.md +82 -82
- package/skills/unity-integration/references/toolbox-migration.md +66 -66
- package/skills/unity-integration/references/webgl-hosting.md +57 -57
- package/skills/v8-cache-pattern/SKILL.md +320 -320
- package/skills/v8-debugging/SKILL.md +284 -284
- package/skills/v8-explorer-tree/SKILL.md +228 -228
- package/skills/v8-file-upload/SKILL.md +1 -1
- package/skills/v8-file-upload/references/cdn-alias-repair.md +13 -13
- package/skills/v8-formengine-http/SKILL.md +238 -238
- package/skills/v8-frontend-events/references/bluetooth-print-api.md +135 -135
- package/skills/v8-frontend-events/references/bluetooth-print.md +258 -258
- package/skills/v8-image-processing/SKILL.md +190 -190
- package/skills/v8-image-processing/references/api-reference.md +623 -623
- package/skills/v8-mongodb/SKILL.md +201 -201
- package/skills/v8-mq-mqtt/references/mqtt-production.md +352 -352
- package/skills/v8-saas-multi-tenant/SKILL.md +305 -305
- package/skills/v8-sql-query/SKILL.md +302 -302
- package/skills/v8-tcp-integration/SKILL.md +158 -158
- package/skills/v8-template-engine/SKILL.md +167 -167
- package/skills/v8-utilities/SKILL.md +104 -104
- package/skills/v8-utilities/references/client-api-index.md +143 -143
- package/skills/v8-utilities/references/platform-http-routes.md +83 -83
- package/skills/v8-utilities/references/server-api-index.md +188 -188
- package/skills/v8-workflow/references/workflow-configuration.md +49 -49
- package/skills/vision-engine/SKILL.md +160 -160
- package/skills/vision-engine/references/architecture-and-acceptance.md +194 -194
- package/skills/workspace-conventions/SKILL.md +15 -3
- 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 +33 -33
- package/skills/workspace-conventions/references/progressive-02-microi-net-api-/346/234/254/345/234/260/345/220/257/345/212/250/347/272/246/345/256/232.md +34 -34
- 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 +6 -6
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
# 外部身份源登录吾码
|
|
2
|
-
|
|
3
|
-
## 目标流程
|
|
4
|
-
|
|
5
|
-
外部身份源只证明主体身份。回调完成后按当前租户查找绑定/受控 JIT 用户,重新确认 `sys_user` 仍启用,再签发 DiyToken。菜单、表、字段、角色、部门与数据范围不从外部 Token 直接继承。
|
|
6
|
-
|
|
7
|
-
## OIDC RP
|
|
8
|
-
|
|
9
|
-
必须覆盖:
|
|
10
|
-
|
|
11
|
-
- Authorization Code;公共客户端使用 PKCE S256。
|
|
12
|
-
- 随机 state、nonce、短时效、一次性消费和原始 Origin 绑定。
|
|
13
|
-
- Discovery 与 JWKS 的 HTTPS、SSRF、issuer 一致性和缓存更新。
|
|
14
|
-
- id_token 签名、算法、issuer、audience、有效期、nonce;必要时再请求 UserInfo。
|
|
15
|
-
- code 不能写日志、URL 清理、回调错误不泄露 Token/Secret。
|
|
16
|
-
- `client_secret_basic`、`client_secret_post` 或 `none` 与伙伴注册一致。
|
|
17
|
-
|
|
18
|
-
禁止 Implicit、Password Grant、宽松回调前缀、关闭签名或仅解码 JWT 不验签。
|
|
19
|
-
|
|
20
|
-
## SAML SP
|
|
21
|
-
|
|
22
|
-
必须覆盖:
|
|
23
|
-
|
|
24
|
-
- SP Metadata、AuthnRequest、RelayState、ACS 与可选 SLO。
|
|
25
|
-
- 浏览器回调使用 `/api/Sso/SamlCallback`,Assertion Consumer Service 使用 `/api/Sso/SamlAcs`。
|
|
26
|
-
- Response/Assertion 签名、Destination、Issuer、Audience、时间窗口、InResponseTo。
|
|
27
|
-
- Request ID 与 Assertion/Response 重放保护。
|
|
28
|
-
- 加密断言时使用本租户解密私钥;验签只用伙伴公开证书。
|
|
29
|
-
- NameID/Claim 到稳定 Subject 的明确规则。
|
|
30
|
-
|
|
31
|
-
不能因为伙伴证书配置困难而在生产关闭签名校验。
|
|
32
|
-
|
|
33
|
-
## CAS Client
|
|
34
|
-
|
|
35
|
-
- service 必须是精确、受控的吾码回调 URL。
|
|
36
|
-
- CAS 1.0 `/validate`、2.0 `/serviceValidate`、3.0 `/p3/serviceValidate` 按配置解析。
|
|
37
|
-
- Service Ticket 单次使用、短时效、绑定 service;失败响应不能当作用户属性。
|
|
38
|
-
- CAS 根地址生产使用 HTTPS,并经过 SSRF 检查。
|
|
39
|
-
|
|
40
|
-
## 用户解析顺序
|
|
41
|
-
|
|
42
|
-
1. 规范化 `OsClient`、连接方向和协议。
|
|
43
|
-
2. 提取稳定 Subject;拒绝空值、控制字符和不稳定昵称。
|
|
44
|
-
3. 先查 `mci_user_external_identity` 的精确绑定。
|
|
45
|
-
4. `BoundOnly` 未绑定即拒绝;`JitMatch/JitCreate` 仅按已审核映射运行。
|
|
46
|
-
5. 重新读取 `sys_user`,确认未删除、未停用。
|
|
47
|
-
6. 签发 DiyToken,写不含凭据的 SSO 审计。
|
|
48
|
-
|
|
49
|
-
步骤 2–5 固定由 `sso_resolve_federated_identity` 执行;`sso_http_oidc_callback`、`sso_http_saml_acs`、`sso_http_cas_callback` 只通过 `RunSsoProtocol` 取得已经验签、归一化且不含原始 Token/断言的 Claim。步骤 6 由 `sso_complete_login` 编排并调用一次性票据/DiyToken 原子。禁止为 OIDC、SAML、CAS 恢复 Controller 或各复制一套用户查询、JIT 和角色映射。
|
|
50
|
-
|
|
51
|
-
## 浏览器回调
|
|
52
|
-
|
|
53
|
-
弹窗消息必须同时校验 `event.source`、精确 `event.origin`、消息类型和 ConnectionKey。回调只传 90 秒左右的一次性票据;登录页再用该票据换 DiyToken。不要通过 `postMessage('*')`、URL fragment 或 Query 传 DiyToken。
|
|
1
|
+
# 外部身份源登录吾码
|
|
2
|
+
|
|
3
|
+
## 目标流程
|
|
4
|
+
|
|
5
|
+
外部身份源只证明主体身份。回调完成后按当前租户查找绑定/受控 JIT 用户,重新确认 `sys_user` 仍启用,再签发 DiyToken。菜单、表、字段、角色、部门与数据范围不从外部 Token 直接继承。
|
|
6
|
+
|
|
7
|
+
## OIDC RP
|
|
8
|
+
|
|
9
|
+
必须覆盖:
|
|
10
|
+
|
|
11
|
+
- Authorization Code;公共客户端使用 PKCE S256。
|
|
12
|
+
- 随机 state、nonce、短时效、一次性消费和原始 Origin 绑定。
|
|
13
|
+
- Discovery 与 JWKS 的 HTTPS、SSRF、issuer 一致性和缓存更新。
|
|
14
|
+
- id_token 签名、算法、issuer、audience、有效期、nonce;必要时再请求 UserInfo。
|
|
15
|
+
- code 不能写日志、URL 清理、回调错误不泄露 Token/Secret。
|
|
16
|
+
- `client_secret_basic`、`client_secret_post` 或 `none` 与伙伴注册一致。
|
|
17
|
+
|
|
18
|
+
禁止 Implicit、Password Grant、宽松回调前缀、关闭签名或仅解码 JWT 不验签。
|
|
19
|
+
|
|
20
|
+
## SAML SP
|
|
21
|
+
|
|
22
|
+
必须覆盖:
|
|
23
|
+
|
|
24
|
+
- SP Metadata、AuthnRequest、RelayState、ACS 与可选 SLO。
|
|
25
|
+
- 浏览器回调使用 `/api/Sso/SamlCallback`,Assertion Consumer Service 使用 `/api/Sso/SamlAcs`。
|
|
26
|
+
- Response/Assertion 签名、Destination、Issuer、Audience、时间窗口、InResponseTo。
|
|
27
|
+
- Request ID 与 Assertion/Response 重放保护。
|
|
28
|
+
- 加密断言时使用本租户解密私钥;验签只用伙伴公开证书。
|
|
29
|
+
- NameID/Claim 到稳定 Subject 的明确规则。
|
|
30
|
+
|
|
31
|
+
不能因为伙伴证书配置困难而在生产关闭签名校验。
|
|
32
|
+
|
|
33
|
+
## CAS Client
|
|
34
|
+
|
|
35
|
+
- service 必须是精确、受控的吾码回调 URL。
|
|
36
|
+
- CAS 1.0 `/validate`、2.0 `/serviceValidate`、3.0 `/p3/serviceValidate` 按配置解析。
|
|
37
|
+
- Service Ticket 单次使用、短时效、绑定 service;失败响应不能当作用户属性。
|
|
38
|
+
- CAS 根地址生产使用 HTTPS,并经过 SSRF 检查。
|
|
39
|
+
|
|
40
|
+
## 用户解析顺序
|
|
41
|
+
|
|
42
|
+
1. 规范化 `OsClient`、连接方向和协议。
|
|
43
|
+
2. 提取稳定 Subject;拒绝空值、控制字符和不稳定昵称。
|
|
44
|
+
3. 先查 `mci_user_external_identity` 的精确绑定。
|
|
45
|
+
4. `BoundOnly` 未绑定即拒绝;`JitMatch/JitCreate` 仅按已审核映射运行。
|
|
46
|
+
5. 重新读取 `sys_user`,确认未删除、未停用。
|
|
47
|
+
6. 签发 DiyToken,写不含凭据的 SSO 审计。
|
|
48
|
+
|
|
49
|
+
步骤 2–5 固定由 `sso_resolve_federated_identity` 执行;`sso_http_oidc_callback`、`sso_http_saml_acs`、`sso_http_cas_callback` 只通过 `RunSsoProtocol` 取得已经验签、归一化且不含原始 Token/断言的 Claim。步骤 6 由 `sso_complete_login` 编排并调用一次性票据/DiyToken 原子。禁止为 OIDC、SAML、CAS 恢复 Controller 或各复制一套用户查询、JIT 和角色映射。
|
|
50
|
+
|
|
51
|
+
## 浏览器回调
|
|
52
|
+
|
|
53
|
+
弹窗消息必须同时校验 `event.source`、精确 `event.origin`、消息类型和 ConnectionKey。回调只传 90 秒左右的一次性票据;登录页再用该票据换 DiyToken。不要通过 `postMessage('*')`、URL fragment 或 Query 传 DiyToken。
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
# 吾码向第三方提供登录
|
|
2
|
-
|
|
3
|
-
## 共同边界
|
|
4
|
-
|
|
5
|
-
先验证当前交互式 DiyToken,再生成第三方协议票据。访问密钥会话不能替代用户交互授权。外部 Client/SP/service 只能读取按 Scope/映射允许的最小资料,不能获得 DiyToken、菜单权限对象或内部角色策略。
|
|
6
|
-
|
|
7
|
-
## OIDC Provider
|
|
8
|
-
|
|
9
|
-
应提供:
|
|
10
|
-
|
|
11
|
-
- Discovery、JWKS、Authorize、Token、UserInfo。
|
|
12
|
-
- 机密客户端认证与公共客户端 PKCE S256。
|
|
13
|
-
- 一次性授权码,绑定 ClientId、Redirect URI、Scope、PKCE、用户、租户和过期时间。
|
|
14
|
-
- 签名 id_token,校验 nonce;按客户端派生 pairwise subject。
|
|
15
|
-
- 高熵不透明 Access/Refresh Token;仅保存哈希索引。
|
|
16
|
-
- Refresh Token rotation/reuse detection,family 撤销。
|
|
17
|
-
- Introspection、Revocation、RP-Initiated Logout 与精确 post-logout redirect。
|
|
18
|
-
|
|
19
|
-
Client Secret 轮换动作只显示一次明文,持久化 PBKDF2-SHA256 哈希。签名 Key 必须有 `kid`,轮换时保留验证重叠窗口。
|
|
20
|
-
|
|
21
|
-
对外 Claim 固定由 `sso_outbound_claims` 从启用用户与连接白名单生成;24 个 `sso_http_*` Managed 端点通过 `RunSsoProtocol` 把同一投影编码成 OIDC/SAML/CAS 响应。Client Secret 轮换由 `sso_rotate_client_secret` 编排,并调用精确受限的可信原子生成一次性明文与持久哈希,不能恢复为 Controller 定制动作。
|
|
22
|
-
|
|
23
|
-
## SAML IdP
|
|
24
|
-
|
|
25
|
-
应提供 IdP Metadata、SSO、签名 Response/Assertion、可选加密和 SLO。必须校验 SP Entity ID、ACS、Destination、AuthnRequest 签名/重放;Attribute 只来自白名单映射。每个伙伴独立证书/配置,不把私钥放进应用包或前端。
|
|
26
|
-
|
|
27
|
-
## CAS Server
|
|
28
|
-
|
|
29
|
-
应提供 `/login`、CAS 1.0 `/validate`、CAS 2.0 `/serviceValidate`、CAS 3.0 `/p3/serviceValidate` 和 `/logout`。Service Ticket 必须:
|
|
30
|
-
|
|
31
|
-
- 随机、短时、单次使用。
|
|
32
|
-
- 绑定当前租户、连接、用户和精确 service。
|
|
33
|
-
- 校验成功才返回用户属性;CAS 1.0 使用协议规定的 yes/no 文本。
|
|
34
|
-
|
|
35
|
-
当前不实现 CAS Proxy Ticket;需要代理链时先评估改用 OIDC。
|
|
36
|
-
|
|
37
|
-
## 授权页面
|
|
38
|
-
|
|
39
|
-
OIDC 公共客户端 `ClientAuthMethod=none` 每次授权都必须由用户在官方页面明确确认;已有 Provider Session 也不能自动返回 code,调用方删除或修改 prompt 不能绕过确认。`prompt=none` 返回 `interaction_required`,只向已校验的精确 redirect URI 回传错误与 state,不签发 code,也不强行打开确认页。缺失 prompt 或其它受支持的交互请求进入 opaque RequestId 确认流程;机密客户端保留既有 Provider Session 自动授权及显式 consent 行为。
|
|
40
|
-
|
|
41
|
-
`CompleteAuthorization` 的 `Preview=true` 只在当前交互式 DiyToken 下读取授权卡片,校验当前客户端启用状态、精确回调和 Scope,返回当前官方账号、目标系统、回调、Scope 与有效期的白名单投影。重复 Preview 不消费 RequestId,不返回 code、state、nonce、PKCE challenge、DiyToken 或客户端秘密;真正确认时才原子消费请求并再次校验客户端配置。账号确认使用 `ExpectedUserId` 收紧校验,授权身份始终来自当前 DiyToken,不能由页面指定。
|
|
42
|
-
|
|
43
|
-
没有有效 Provider Session 的交互请求先跳到吾码登录页,登录成功回到一次性 handoff。页面必须说明目标系统、当前官方账号、请求 Scope 和退出影响;任何第三方请求的 Scope 都不能自动映射为吾码管理员能力。上线验收须实际重复 Preview、再确认取得 code,不能用 HTTP 200 或旧 API 忽略 Preview 后直接消费请求的结果代替协议证据。
|
|
1
|
+
# 吾码向第三方提供登录
|
|
2
|
+
|
|
3
|
+
## 共同边界
|
|
4
|
+
|
|
5
|
+
先验证当前交互式 DiyToken,再生成第三方协议票据。访问密钥会话不能替代用户交互授权。外部 Client/SP/service 只能读取按 Scope/映射允许的最小资料,不能获得 DiyToken、菜单权限对象或内部角色策略。
|
|
6
|
+
|
|
7
|
+
## OIDC Provider
|
|
8
|
+
|
|
9
|
+
应提供:
|
|
10
|
+
|
|
11
|
+
- Discovery、JWKS、Authorize、Token、UserInfo。
|
|
12
|
+
- 机密客户端认证与公共客户端 PKCE S256。
|
|
13
|
+
- 一次性授权码,绑定 ClientId、Redirect URI、Scope、PKCE、用户、租户和过期时间。
|
|
14
|
+
- 签名 id_token,校验 nonce;按客户端派生 pairwise subject。
|
|
15
|
+
- 高熵不透明 Access/Refresh Token;仅保存哈希索引。
|
|
16
|
+
- Refresh Token rotation/reuse detection,family 撤销。
|
|
17
|
+
- Introspection、Revocation、RP-Initiated Logout 与精确 post-logout redirect。
|
|
18
|
+
|
|
19
|
+
Client Secret 轮换动作只显示一次明文,持久化 PBKDF2-SHA256 哈希。签名 Key 必须有 `kid`,轮换时保留验证重叠窗口。
|
|
20
|
+
|
|
21
|
+
对外 Claim 固定由 `sso_outbound_claims` 从启用用户与连接白名单生成;24 个 `sso_http_*` Managed 端点通过 `RunSsoProtocol` 把同一投影编码成 OIDC/SAML/CAS 响应。Client Secret 轮换由 `sso_rotate_client_secret` 编排,并调用精确受限的可信原子生成一次性明文与持久哈希,不能恢复为 Controller 定制动作。
|
|
22
|
+
|
|
23
|
+
## SAML IdP
|
|
24
|
+
|
|
25
|
+
应提供 IdP Metadata、SSO、签名 Response/Assertion、可选加密和 SLO。必须校验 SP Entity ID、ACS、Destination、AuthnRequest 签名/重放;Attribute 只来自白名单映射。每个伙伴独立证书/配置,不把私钥放进应用包或前端。
|
|
26
|
+
|
|
27
|
+
## CAS Server
|
|
28
|
+
|
|
29
|
+
应提供 `/login`、CAS 1.0 `/validate`、CAS 2.0 `/serviceValidate`、CAS 3.0 `/p3/serviceValidate` 和 `/logout`。Service Ticket 必须:
|
|
30
|
+
|
|
31
|
+
- 随机、短时、单次使用。
|
|
32
|
+
- 绑定当前租户、连接、用户和精确 service。
|
|
33
|
+
- 校验成功才返回用户属性;CAS 1.0 使用协议规定的 yes/no 文本。
|
|
34
|
+
|
|
35
|
+
当前不实现 CAS Proxy Ticket;需要代理链时先评估改用 OIDC。
|
|
36
|
+
|
|
37
|
+
## 授权页面
|
|
38
|
+
|
|
39
|
+
OIDC 公共客户端 `ClientAuthMethod=none` 每次授权都必须由用户在官方页面明确确认;已有 Provider Session 也不能自动返回 code,调用方删除或修改 prompt 不能绕过确认。`prompt=none` 返回 `interaction_required`,只向已校验的精确 redirect URI 回传错误与 state,不签发 code,也不强行打开确认页。缺失 prompt 或其它受支持的交互请求进入 opaque RequestId 确认流程;机密客户端保留既有 Provider Session 自动授权及显式 consent 行为。
|
|
40
|
+
|
|
41
|
+
`CompleteAuthorization` 的 `Preview=true` 只在当前交互式 DiyToken 下读取授权卡片,校验当前客户端启用状态、精确回调和 Scope,返回当前官方账号、目标系统、回调、Scope 与有效期的白名单投影。重复 Preview 不消费 RequestId,不返回 code、state、nonce、PKCE challenge、DiyToken 或客户端秘密;真正确认时才原子消费请求并再次校验客户端配置。账号确认使用 `ExpectedUserId` 收紧校验,授权身份始终来自当前 DiyToken,不能由页面指定。
|
|
42
|
+
|
|
43
|
+
没有有效 Provider Session 的交互请求先跳到吾码登录页,登录成功回到一次性 handoff。页面必须说明目标系统、当前官方账号、请求 Scope 和退出影响;任何第三方请求的 Scope 都不能自动映射为吾码管理员能力。上线验收须实际重复 Preview、再确认取得 code,不能用 HTTP 200 或旧 API 忽略 Preview 后直接消费请求的结果代替协议证据。
|
|
@@ -3,6 +3,8 @@ name: microi-system-delivery
|
|
|
3
3
|
description: 已初始化吾码工作区的默认 AI 开发总控入口,用户只描述需求也必须读取,无需指定 Skill 名称。用于通过 MCP、VS Code 插件、V8、低代码、UniApp/H5、PC 后台和 Playwright E2E 开发、修改、分析或交付 Microi 系统,按用户范围路由相关专项 Skills。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
+
> 修改已有 MicroService 前,必须按 `../workspace-conventions/SKILL.md` 首部的“每次修改微服务前重新拉取”规则执行完整远端拉取、本地逐文件校验和三方合并;完成后才编辑,保存修改前源码哈希并用于同步 CAS。此项不能延后到发布时才做。
|
|
7
|
+
|
|
6
8
|
> **Microi吾码基础规范(强制):** 任何 AI 模型与宿主每次新建或接续吾码任务,先完整读取 `../workspace-conventions/SKILL.md`,必须执行版本播报、`@microi.net/cli` 后台自动升级、Skills/MCP 同步和进度播报。安装与诊断读取 `../microi-codex-installer/SKILL.md`;更新失败延后重试,不阻断当前工作。
|
|
7
9
|
|
|
8
10
|
# Microi 全系统交付复盘与总控规范
|
|
@@ -50,8 +52,8 @@ Manifest 使用 `tables[].formBanner`;未显式配置时仍按字段类型选
|
|
|
50
52
|
语义字段。跨表统计由接口引擎批量返回,禁止随机数、固定演示值和 N+1;Banner 不属于
|
|
51
53
|
模块引擎或 `sys_menu`。逐步建模在字段完成后调用 `microi_configure_form_banner` 回读验收。
|
|
52
54
|
|
|
53
|
-
<!-- microi-progressive:begin -->
|
|
54
|
-
<!-- microi-progressive:chunk id=microi-system-delivery-000 sha256=720e0f2db0997318d879af67cd708b7d25a33c321e47100c4800ee39a25b4c9e -->
|
|
55
|
+
<!-- microi-progressive:begin -->
|
|
56
|
+
<!-- microi-progressive:chunk id=microi-system-delivery-000 sha256=720e0f2db0997318d879af67cd708b7d25a33c321e47100c4800ee39a25b4c9e -->
|
|
55
57
|
## 交付总原则
|
|
56
58
|
|
|
57
59
|
1. **先事实源,后建模**:先读需求文档、截图、现有蓝图、数据库结构和菜单结构,形成业务蓝图;不要边猜边建表、边猜边写接口。
|
|
@@ -64,8 +66,8 @@ Manifest 使用 `tables[].formBanner`;未显式配置时仍按字段类型选
|
|
|
64
66
|
8. **业务逻辑默认接口引擎、元数据升级默认应用商城**:先用低代码 CRUD/事件,再用接口引擎;只缺底层原子能力时先扩展 V8,只有协议/鉴权/密钥隔离/运行时内核才进入 C#。表、字段、Tab、菜单、权限、引擎、页面和任务等可打包资源不得新增 `Microi.Upgrade` 定制类;官方开发者通过 `microi_itdos` 发布官方应用后再由目标租户 MCP 更新,无官方权限时只升级自己的租户。
|
|
65
67
|
9. **平台能力四项同步**:按 `workspace-conventions/SKILL.md` 首部识别创始人源码工作区;每项平台新增、增强或修复都逐项判断应用商城、官方中文文档、Skills、MCP 是否需要完善,交付时列出证据或无需修改的依据。复用已有 MCP 能力,不机械新增工具;镜像发布不等于客户部署,客户手动更新边界必须保留。
|
|
66
68
|
|
|
67
|
-
<!-- /microi-progressive:chunk -->
|
|
68
|
-
<!-- microi-progressive:chunk id=microi-system-delivery-001 sha256=e01ae6b21425b1410100e33ece7875b6313d9456144ad3131ad0fab7fb31d33a -->
|
|
69
|
+
<!-- /microi-progressive:chunk -->
|
|
70
|
+
<!-- microi-progressive:chunk id=microi-system-delivery-001 sha256=e01ae6b21425b1410100e33ece7875b6313d9456144ad3131ad0fab7fb31d33a -->
|
|
69
71
|
## 用户问题编号跟踪(强制)
|
|
70
72
|
|
|
71
73
|
用户一次提出多个问题时,必须先拆成 `1、2、3、4...` 的问题清单,并在交付过程中保持同一编号,不得合并吞掉或用笼统“已优化”代替。
|
|
@@ -84,8 +86,8 @@ Manifest 使用 `tables[].formBanner`;未显式配置时仍按字段类型选
|
|
|
84
86
|
- 同一对话有多轮编号清单时,按“本轮要求”和“此前待办/用户要求复核的清单”分别保留各自编号;新的补充不会自动取消前一轮未完成项。用户要求重报此前清单时,必须逐项重新核对证据,不能只给报告链接。
|
|
85
87
|
- 每条结论明确区分源码已改、运行验收通过、渠道已发布;发现回归或用户再次指出问题时,将对应旧项重新标为待修复/部分完成,修复后再更新结论。最后逐项核对编号总数,禁止漏项、跳号或把未取得回执的发布写成完成。
|
|
86
88
|
|
|
87
|
-
<!-- /microi-progressive:chunk -->
|
|
88
|
-
<!-- microi-progressive:chunk id=microi-system-delivery-004 sha256=9a259382b07851aaa60a795da3ffa4773e9cf3b9f9d791a52f95e34e1944cc69 -->
|
|
89
|
+
<!-- /microi-progressive:chunk -->
|
|
90
|
+
<!-- microi-progressive:chunk id=microi-system-delivery-004 sha256=9a259382b07851aaa60a795da3ffa4773e9cf3b9f9d791a52f95e34e1944cc69 -->
|
|
89
91
|
## 交付完成定义
|
|
90
92
|
|
|
91
93
|
一次 Microi 全系统交付只有同时满足以下条件才算完成:
|
|
@@ -101,13 +103,13 @@ Manifest 使用 `tables[].formBanner`;未显式配置时仍按字段类型选
|
|
|
101
103
|
9. 菜单树包含范围内全部业务与报表入口;每个本次新增可见业务/报表叶菜单已从开发中占位切换到验收通过的真实页面,菜单 Id、业务 URL、层级、排序与权限关联保持正确。仍有占位或阻塞的菜单逐项标为未完成。
|
|
102
104
|
10. 基于界面引擎的业务统计、老板经营与领导管理报表已接通当前租户真实业务数据;指标口径、筛选/时间、权限、穿透、空/失败状态与明细对账均有证据。
|
|
103
105
|
|
|
104
|
-
<!-- /microi-progressive:chunk -->
|
|
105
|
-
## 详细参考路由(渐进披露)
|
|
106
|
-
|
|
107
|
-
仅在当前任务涉及对应主题时读取;下列文件合计保留了原 SKILL.md 的全部详细知识。
|
|
108
|
-
|
|
109
|
-
- [references/progressive-01-标准工作流.md](references/progressive-01-标准工作流.md):标准工作流
|
|
110
|
-
- [references/progressive-02-自动化测试必须覆盖的坑.md](references/progressive-02-自动化测试必须覆盖的坑.md):自动化测试必须覆盖的坑;复盘记录格式
|
|
111
|
-
- [references/progressive-03-安全与跨端验收.md](references/progressive-03-安全与跨端验收.md):安全与跨端验收
|
|
112
|
-
- [references/context-quality.md](references/context-quality.md):质量优先、精确检索、引用、局部变更及定制应用验收
|
|
113
|
-
<!-- microi-progressive:end -->
|
|
106
|
+
<!-- /microi-progressive:chunk -->
|
|
107
|
+
## 详细参考路由(渐进披露)
|
|
108
|
+
|
|
109
|
+
仅在当前任务涉及对应主题时读取;下列文件合计保留了原 SKILL.md 的全部详细知识。
|
|
110
|
+
|
|
111
|
+
- [references/progressive-01-标准工作流.md](references/progressive-01-标准工作流.md):标准工作流
|
|
112
|
+
- [references/progressive-02-自动化测试必须覆盖的坑.md](references/progressive-02-自动化测试必须覆盖的坑.md):自动化测试必须覆盖的坑;复盘记录格式
|
|
113
|
+
- [references/progressive-03-安全与跨端验收.md](references/progressive-03-安全与跨端验收.md):安全与跨端验收
|
|
114
|
+
- [references/context-quality.md](references/context-quality.md):质量优先、精确检索、引用、局部变更及定制应用验收
|
|
115
|
+
<!-- microi-progressive:end -->
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
# 质量优先的上下文与增量开发
|
|
2
|
-
<!-- microi-progressive:chunk id=microi-system-delivery-008 sha256=0e9e14b98ac7ab7ca0bf1c4ef97bad2bf061d0c01b170325ddbaf961a02a0de4 -->
|
|
1
|
+
# 质量优先的上下文与增量开发
|
|
2
|
+
<!-- microi-progressive:chunk id=microi-system-delivery-008 sha256=0e9e14b98ac7ab7ca0bf1c4ef97bad2bf061d0c01b170325ddbaf961a02a0de4 -->
|
|
3
3
|
|
|
4
4
|
本规范用于降低重复读取和重复传输,不降低软件质量。准确性、权限、业务完整性和验收优先于 token、耗时和回复长度。摘要只用于发现目标,不能成为未经核实的写入依据。
|
|
5
5
|
|
|
@@ -53,4 +53,4 @@ Manifest 正文可以一次提交,后续以同一内容哈希和会话引用
|
|
|
53
53
|
MCP 可以准确统计传输字节和调用次数,不能据此声称供应商 token 或费用。缺少供应商 Usage 时标记未知;字符估算单独标记。缓存命中降低费用或延迟,不等于逻辑 token 消失。外部 Codex/IDE 的历史摘要与供应商缓存由宿主管理,吾码不得宣称已强制控制。
|
|
54
54
|
|
|
55
55
|
评测必须同时检验资源完整、权限/事务/关系正确、局部差异精确和必要回归通过。任何质量退步都不接受;不通过删测试、减少验收或隐瞒失败来展示节省比例。
|
|
56
|
-
<!-- /microi-progressive:chunk -->
|
|
56
|
+
<!-- /microi-progressive:chunk -->
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
# microi-system-delivery 详细参考 1
|
|
2
|
-
|
|
3
|
-
> 按需读取;本文件由 SKILL.md 的原章节无损拆分。
|
|
4
|
-
|
|
5
|
-
新建业务表的字段落地后必须配置默认表单 Banner:完整 Manifest 使用
|
|
6
|
-
`tables[].formBanner`,逐步建模调用 `microi_configure_form_banner`。标题、图片、标签和
|
|
7
|
-
统计都应来自真实字段或真实接口引擎;配置写 `diy_table`,禁止写入 `sys_menu`。即使用户
|
|
8
|
-
没有逐项指定,也必须写入类型感知的合理默认值,不能交付空 Banner。
|
|
9
|
-
|
|
10
|
-
<!-- microi-progressive:chunk id=microi-system-delivery-005 sha256=32039bfdbd18bb97f3f93974ace75169c9d90df4c0702ff76134f1c9a9282912 -->
|
|
1
|
+
# microi-system-delivery 详细参考 1
|
|
2
|
+
|
|
3
|
+
> 按需读取;本文件由 SKILL.md 的原章节无损拆分。
|
|
4
|
+
|
|
5
|
+
新建业务表的字段落地后必须配置默认表单 Banner:完整 Manifest 使用
|
|
6
|
+
`tables[].formBanner`,逐步建模调用 `microi_configure_form_banner`。标题、图片、标签和
|
|
7
|
+
统计都应来自真实字段或真实接口引擎;配置写 `diy_table`,禁止写入 `sys_menu`。即使用户
|
|
8
|
+
没有逐项指定,也必须写入类型感知的合理默认值,不能交付空 Banner。
|
|
9
|
+
|
|
10
|
+
<!-- microi-progressive:chunk id=microi-system-delivery-005 sha256=32039bfdbd18bb97f3f93974ace75169c9d90df4c0702ff76134f1c9a9282912 -->
|
|
11
11
|
## 完整系统开发默认交付清单(原推荐提示词 1–8)
|
|
12
12
|
|
|
13
13
|
以下八项来自官网最后编号版推荐提示词,是完整系统新建/开发的默认交付要求。
|
|
@@ -274,4 +274,4 @@ VS Code 插件必须让用户清楚知道本地和远端是否一致。
|
|
|
274
274
|
|
|
275
275
|
不要用租户接口引擎修平台设计器、全局上传限制、VS Code 插件同步、MCP 元数据写入等平台级问题。
|
|
276
276
|
|
|
277
|
-
<!-- /microi-progressive:chunk -->
|
|
277
|
+
<!-- /microi-progressive:chunk -->
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
# microi-system-delivery 详细参考 2
|
|
2
|
-
|
|
3
|
-
> 按需读取;本文件由 SKILL.md 的原章节无损拆分。
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
# microi-system-delivery 详细参考 2
|
|
2
|
+
|
|
3
|
+
> 按需读取;本文件由 SKILL.md 的原章节无损拆分。
|
|
4
|
+
|
|
5
|
+
## 自动清理入口回归增补
|
|
6
|
+
|
|
7
|
+
临时文件回归必须调用真实 Full `finally` 与发布 `EXIT` 收尾,分别验证成功、原始失败、可捕获中断及清理失败;不能仅断言源码有 `finally`。覆盖祖先/子项链接、Git 标记、已有目录、空格及方括号路径、受保护属性与独占文件锁,断言保护项字节不变、普通删除不传 `-Force`、失败不自动强制重试、回执可定位残留。测试异常与清理异常同时发生时保留原始异常,发布锁仍释放;平台进程被硬杀不能假称已完成收尾。用例位于 `Microi.Tests/ReleaseGate/test-artifact-cleanup.test.mjs` 与 `release-scratch.test.mjs`,不为这些文件生命周期回归启动数据库或 Docker 容器。
|
|
8
|
+
|
|
9
|
+
<!-- microi-progressive:chunk id=microi-system-delivery-006 sha256=dee4ef7027b49b46a92f4b2bbd88d82997f9c992351e5d599ba6d38a03267258 -->
|
|
6
10
|
## 自动化测试必须覆盖的坑
|
|
7
11
|
|
|
8
12
|
### 后端统一测试与发布门禁
|
|
@@ -151,8 +155,8 @@
|
|
|
151
155
|
- 团队/分润人数统计必须明确资格口径,例如是否只统计已认证、已激活、有效状态用户。若业务规则要求认证门槛,未认证小号不得计入直推、间推、团队总人数、奖励门槛或入账门槛。
|
|
152
156
|
- 每次修复资金/资产业务规则后,必须同步更新项目蓝图/方案文档中的触发点、计算公式、字段口径和验收方式,不能只改代码或只在对话里说明。
|
|
153
157
|
|
|
154
|
-
<!-- /microi-progressive:chunk -->
|
|
155
|
-
<!-- microi-progressive:chunk id=microi-system-delivery-007 sha256=67fa060b6520a80e41818ac0974c0b38ff3171c97a1c558a01667b854865fa7a -->
|
|
158
|
+
<!-- /microi-progressive:chunk -->
|
|
159
|
+
<!-- microi-progressive:chunk id=microi-system-delivery-007 sha256=67fa060b6520a80e41818ac0974c0b38ff3171c97a1c558a01667b854865fa7a -->
|
|
156
160
|
## 复盘记录格式
|
|
157
161
|
|
|
158
162
|
每次用户手工测出问题,修复后都要把问题写入对应通用 Skill,格式如下:
|
|
@@ -234,4 +238,4 @@
|
|
|
234
238
|
- 根因:ASP.NET Core 运行时从 `Microsoft.AspNetCore.App` / `Microsoft.NETCore.App` 共享框架加载程序集,这些 DLL 默认不复制到 framework-dependent 的发布目录;Obfuscar 是离线元数据处理器,只搜索 `InPath` 时无法解析新增基类。同时,插件直接使用的 NuGet API 若只由其它项目传递带入,项目依赖契约也不完整。
|
|
235
239
|
- 通用规则:项目直接使用的包必须在自身 `.csproj` 声明直接 `PackageReference`,但不能把“补 NuGet 引用”误当作 Obfuscar 搜索路径修复。混淆脚本应从发布目录的 `runtimeconfig.json` 读取目标 .NET 主版本,再从 `dotnet --list-runtimes` 动态选择同主版本的最新 `Microsoft.AspNetCore.App` 和 `Microsoft.NETCore.App` 目录,生成绝对路径 `AssemblySearchPath`;禁止硬编码补丁版本,也不要为了混淆把共享框架 DLL 强行复制进最终发布目录。错误提示应保留 Obfuscar 的真实依赖解析错误,不能统一误报“工具未安装”。
|
|
236
240
|
- 自动化检查:使用实际 Git Bash 执行脚本语法检查;定向构建插件并检查 nupkg 明确包含直接依赖;对全部受保护 DLL 执行混淆并验证哈希变化;最后必须启动混淆后的发布目录,断言插件注入、平台初始化和 Kestrel 监听成功,且日志不存在 `FileNotFoundException`、`TypeLoadException`、`Unable to resolve dependency` 或 `Could not load file or assembly`。
|
|
237
|
-
<!-- /microi-progressive:chunk -->
|
|
241
|
+
<!-- /microi-progressive:chunk -->
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# 安全与跨端验收
|
|
2
|
-
|
|
3
|
-
> 原规则按适用范围无损迁移;触发对应工作时必须完整读取相关章节。
|
|
4
|
-
|
|
5
|
-
<!-- microi-progressive:chunk id=microi-system-delivery-002 sha256=adeb9e4ec4beadf3b7ba33325e860b378b81f6d7e95b25879b64ca4ee1c91987 -->
|
|
1
|
+
# 安全与跨端验收
|
|
2
|
+
|
|
3
|
+
> 原规则按适用范围无损迁移;触发对应工作时必须完整读取相关章节。
|
|
4
|
+
|
|
5
|
+
<!-- microi-progressive:chunk id=microi-system-delivery-002 sha256=adeb9e4ec4beadf3b7ba33325e860b378b81f6d7e95b25879b64ca4ee1c91987 -->
|
|
6
6
|
## 平台安全与存量兼容验收(强制)
|
|
7
7
|
|
|
8
8
|
AI 零代码交付不能只验证管理员帐号和页面能打开。任何涉及 FormEngine、菜单、角色、子表、文件、SaaS 或登录协议的交付,都必须按以下服务端边界设计和验收:
|
|
@@ -54,8 +54,8 @@ AI 零代码交付不能只验证管理员帐号和页面能打开。任何涉
|
|
|
54
54
|
8. 历史 RSA fallback 和专属匹配密钥均可登录;并发续签不反复退出。
|
|
55
55
|
9. SaaS 脱敏投影不包含基础设施密钥,Redis anonymous/temporary/非管理员管理失败。
|
|
56
56
|
|
|
57
|
-
<!-- /microi-progressive:chunk -->
|
|
58
|
-
<!-- microi-progressive:chunk id=microi-system-delivery-003 sha256=8e2891f2a149d6828b653b9f0735ea39a4df5ba60178c79f0e5b0065ce72ee84 -->
|
|
57
|
+
<!-- /microi-progressive:chunk -->
|
|
58
|
+
<!-- microi-progressive:chunk id=microi-system-delivery-003 sha256=8e2891f2a149d6828b653b9f0735ea39a4df5ba60178c79f0e5b0065ce72ee84 -->
|
|
59
59
|
## 前端交付检查清单
|
|
60
60
|
|
|
61
61
|
- 底部 tabBar 图标不 404。
|
|
@@ -68,4 +68,4 @@ AI 零代码交付不能只验证管理员帐号和页面能打开。任何涉
|
|
|
68
68
|
- 消息/待办/约单/审核类提醒必须有未读角标,已读后消失。
|
|
69
69
|
- 订单状态角标只给需要处理的状态,不给“全部/已完成/已取消”等静态分类堆数字。
|
|
70
70
|
|
|
71
|
-
<!-- /microi-progressive:chunk -->
|
|
71
|
+
<!-- /microi-progressive:chunk -->
|