@microi.net/cli 6.1.1 → 6.1.3
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 +108 -106
- package/scripts/microi-skills.meta.json +294 -294
- package/skills/.microi-skills-version.json +2 -2
- package/skills/.progressive-disclosure-manifest.json +13 -13
- package/skills/ai-engine/references/ai-employees.md +48 -48
- package/skills/ai-engine/references/self-hosted-digital-human.md +59 -59
- 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-application/SKILL.md +115 -115
- package/skills/microi-ai-application/references/frontend-baseline.md +164 -164
- 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-datasource-mapping/SKILL.md +131 -131
- 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 -260
- package/skills/microi-deployment/references/deployment-matrix.md +112 -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 +354 -353
- 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/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/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 -12
- 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/microi-uniapp-frontend/SKILL.md +4 -1
- 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/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/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-api-config/SKILL.md +3 -0
- 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/references/cdn-alias-repair.md +13 -13
- 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 +315 -309
- package/skills/v8-sql-query/SKILL.md +302 -302
- package/skills/v8-template-engine/SKILL.md +167 -167
- 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-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 +174 -168
- 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,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 后直接消费请求的结果代替协议证据。
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
# 质量优先的上下文与增量开发
|
|
2
|
-
<!-- microi-progressive:chunk id=microi-system-delivery-008 sha256=beffc0924e9b36dca7a57da12a4cecb65ab05e938cb776c295c7fc5d7f736553 -->
|
|
1
|
+
# 质量优先的上下文与增量开发
|
|
2
|
+
<!-- microi-progressive:chunk id=microi-system-delivery-008 sha256=beffc0924e9b36dca7a57da12a4cecb65ab05e938cb776c295c7fc5d7f736553 -->
|
|
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,12 +1,12 @@
|
|
|
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 -->
|
|
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 -->
|
|
10
10
|
## 自动化测试必须覆盖的坑
|
|
11
11
|
|
|
12
12
|
### 后端统一测试与发布门禁
|
|
@@ -155,8 +155,8 @@
|
|
|
155
155
|
- 团队/分润人数统计必须明确资格口径,例如是否只统计已认证、已激活、有效状态用户。若业务规则要求认证门槛,未认证小号不得计入直推、间推、团队总人数、奖励门槛或入账门槛。
|
|
156
156
|
- 每次修复资金/资产业务规则后,必须同步更新项目蓝图/方案文档中的触发点、计算公式、字段口径和验收方式,不能只改代码或只在对话里说明。
|
|
157
157
|
|
|
158
|
-
<!-- /microi-progressive:chunk -->
|
|
159
|
-
<!-- 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 -->
|
|
160
160
|
## 复盘记录格式
|
|
161
161
|
|
|
162
162
|
每次用户手工测出问题,修复后都要把问题写入对应通用 Skill,格式如下:
|
|
@@ -238,4 +238,4 @@
|
|
|
238
238
|
- 根因:ASP.NET Core 运行时从 `Microsoft.AspNetCore.App` / `Microsoft.NETCore.App` 共享框架加载程序集,这些 DLL 默认不复制到 framework-dependent 的发布目录;Obfuscar 是离线元数据处理器,只搜索 `InPath` 时无法解析新增基类。同时,插件直接使用的 NuGet API 若只由其它项目传递带入,项目依赖契约也不完整。
|
|
239
239
|
- 通用规则:项目直接使用的包必须在自身 `.csproj` 声明直接 `PackageReference`,但不能把“补 NuGet 引用”误当作 Obfuscar 搜索路径修复。混淆脚本应从发布目录的 `runtimeconfig.json` 读取目标 .NET 主版本,再从 `dotnet --list-runtimes` 动态选择同主版本的最新 `Microsoft.AspNetCore.App` 和 `Microsoft.NETCore.App` 目录,生成绝对路径 `AssemblySearchPath`;禁止硬编码补丁版本,也不要为了混淆把共享框架 DLL 强行复制进最终发布目录。错误提示应保留 Obfuscar 的真实依赖解析错误,不能统一误报“工具未安装”。
|
|
240
240
|
- 自动化检查:使用实际 Git Bash 执行脚本语法检查;定向构建插件并检查 nupkg 明确包含直接依赖;对全部受保护 DLL 执行混淆并验证哈希变化;最后必须启动混淆后的发布目录,断言插件注入、平台初始化和 Kestrel 监听成功,且日志不存在 `FileNotFoundException`、`TypeLoadException`、`Unable to resolve dependency` 或 `Could not load file or assembly`。
|
|
241
|
-
<!-- /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=b4cd10b169b54235314d170c8e74f17bf6bcb5f658d0d4d2e10c73dc8aa37ef7 -->
|
|
1
|
+
# 安全与跨端验收
|
|
2
|
+
|
|
3
|
+
> 原规则按适用范围无损迁移;触发对应工作时必须完整读取相关章节。
|
|
4
|
+
|
|
5
|
+
<!-- microi-progressive:chunk id=microi-system-delivery-002 sha256=b4cd10b169b54235314d170c8e74f17bf6bcb5f658d0d4d2e10c73dc8aa37ef7 -->
|
|
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=479ccdb65450c7741b052a30d8e4a11917bc19d80bf9b4ac89ea00092b4aaa73 -->
|
|
57
|
+
<!-- /microi-progressive:chunk -->
|
|
58
|
+
<!-- microi-progressive:chunk id=microi-system-delivery-003 sha256=479ccdb65450c7741b052a30d8e4a11917bc19d80bf9b4ac89ea00092b4aaa73 -->
|
|
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 -->
|
|
@@ -26,7 +26,7 @@ UniApp/H5/小程序必须通过项目统一 `microi.v8.js` 的 `V8.uploadFile` /
|
|
|
26
26
|
创建、重构或修复任何 Microi 移动端项目前,必须同时应用 `microi.skills/microi-mobile-app-quality/SKILL.md`,并读取其[首版交付与外部服务验收](../microi-mobile-app-quality/references/mobile-first-delivery.md)。手机号快捷登录、会话续签、导航几何、真实地图、页面动效和公开发布回读从首版纳入需求与测试,不能先交静态占位版,再等待用户逐页指出问题。涉及后台与第三方服务时按实际业务范围执行,既有授权和租户策略优先。
|
|
27
27
|
|
|
28
28
|
<!-- /microi-progressive:chunk -->
|
|
29
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-001 sha256=
|
|
29
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-001 sha256=ad6d719fd27c252c1916c54d65185ecf90846e5f780a81b671a6e0540fbea4a6 -->
|
|
30
30
|
## 标准产品、视图协议与租户扩展
|
|
31
31
|
|
|
32
32
|
地图提供行政区与附近距离两类筛选时,应复用省市区字典,并允许省、市、区逐级选“全部”;省级“全部”须显式启用,不能改变普通地址录入的默认值。行政区域查询不依赖手机定位、不叠加附近半径,空地区仍可保留既有附近模式。范围筛选必须在原有菜单/租户/行权限内执行,分批读取并丢弃迟到响应;来源列表存在同表不同菜单时,地图入口与查询应保留准确的来源菜单和固定业务条件。验收覆盖全国、全省、全市、区县、直辖市、定位拒绝、旧接口兼容和快速切换。
|
|
@@ -52,11 +52,14 @@ Microi 标准小程序必须采用“平台内核 + 版本化元数据 + Profile
|
|
|
52
52
|
- 原生详情进入编辑后,取消丢弃未保存字段并返回同一详情/Tab,保存成功后回读服务端结果并通知来源列表刷新;直接新增/编辑仍返回来源列表。验收覆盖系统返回、保存/子表失败、迟到响应和权限撤销,不能用重复压入详情页替代原实例恢复。
|
|
53
53
|
- IoT/关联快照的“记录不存在”应展示业务空状态并隐藏表名/SQL,权限与网络失败仍保留真实错误;未知遥测使用占位值,零值和离线不能被当作缺失。依赖租户 V8 的契约测试从授权同步目录按唯一 ApiEngineKey 定位,测试前核验源码完整性与哈希,不靠旧分类文件夹名定位或跳过缺失依赖。
|
|
54
54
|
- 小程序不得下载或执行任意前端 V8,不得使用 `eval/new Function`。字段显隐和联动使用白名单声明式规则,按钮使用 ActionSchema,复杂事务和校验进入 ApiEngine 或后端表单事件。
|
|
55
|
+
- 定制详情的按钮锚点必须从完整表单定义定位所属 Tab/分组,不能回退到当前 Tab 的第一个可见分组,否则关联、二维码等基础动作会串栏。后台 Button 只有受控原生适配才能进入小程序;设备控制同时取字段权限与服务端能力交集,较多动作按业务分组、双列和“更多”展开。涉及物理动作时沿用服务端稳定编号的准备/派发/查询协议,超时只查原编号,离页/切换记录取消后续派发;接口受理、设备回执和遥测复核分别展示。回归覆盖 Tab 往返、权限撤销、取消、连点、响应丢失、旧指令混入和迟到响应。
|
|
55
56
|
- 分片日志的时间筛选复用后台 SearchFieldIds 和统一筛选弹窗,不增加重复的月份、开始日期和结束日期控件。月份从已选时间推导,未筛选时查询当月;虚拟文本时间发送完整边界,缺省精度可按接口能力使用分钟,显式 DateTimeType 优先。草稿确认后生效、关闭取消、重置清空条件;结束包含整个所选精度。服务端在存储层过滤、计数和分页,缓存及迟到响应按已生效条件隔离;接口不支持跨月时在提交前明确提示。
|
|
56
57
|
- ActionSchema 只能描述文字、图标、颜色、确认提示、参数映射、ApiEngineKey、原生 ActionType 和成功后的刷新/跳转;扫码、定位、拍照、拨号、导航等由受控原生适配器执行。
|
|
57
58
|
|
|
58
59
|
仓库必须提供 AI 与人工协作约束文件、租户脚手架、Profile 构建/同步命令和架构检查。平台层改动至少同时构建标准 Profile 与默认交付 Profile;租户视觉改动还要执行多视口截图回归。这样其他同事使用 Codex、Claude、Copilot、Cursor 等工具继续开发时,会先读取相同规则,而不是依赖某次对话记忆。
|
|
59
60
|
|
|
61
|
+
Profile 覆盖层回归必须在独占临时夹具中执行,禁止为了测试临时切换正在被 HBuilderX/Vite 监听的真实源码。即使最终恢复字节,也可能触发增量编译缓存不一致,留下空 WXSS。验收须断言真实文件内容与 mtime 均未变化,覆盖夹具成功/失败退出清理,并检查已编译页面含实际样式规则、与当前模板匹配;不能只检查 JS/WXML 或产物是否存在。
|
|
62
|
+
|
|
60
63
|
<!-- /microi-progressive:chunk -->
|
|
61
64
|
<!-- microi-progressive:chunk id=microi-uniapp-frontend-002 sha256=1faa6e553ff61b9043ff7608d02518e815f1dcbe2cc56fefb8adff326c5d1f1f -->
|
|
62
65
|
## H5 预览壳与底部导航强制规则
|