@microi.net/cli 4.8.1 → 4.8.7
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 +18 -0
- package/.codebuddy-plugin/plugin.json +22 -0
- package/.codex-plugin/plugin.json +1 -1
- package/.mcp.json +1 -1
- package/.workbuddy-plugin/marketplace.json +18 -0
- package/.workbuddy-plugin/plugin.json +22 -0
- package/README.md +18 -4
- package/assets/build-meta.json +5 -5
- package/package.json +31 -3
- package/scripts/codex-marketplace.json +2 -4
- package/scripts/mcp-server.js +101 -96
- package/scripts/microi-cli.js +80 -51
- package/scripts/microi-skills.meta.json +138 -135
- package/skills/.microi-skills-version.json +2 -2
- package/skills/README.md +1 -0
- package/skills/ai-engine/SKILL.md +17 -7
- package/skills/ai-platform-governance/SKILL.md +321 -0
- package/skills/app-store/SKILL.md +15 -6
- package/skills/business-blueprint/SKILL.md +11 -4
- package/skills/microi-ai-application/SKILL.md +2 -0
- package/skills/microi-codex-installer/SKILL.md +62 -10
- package/skills/microi-codex-installer/agents/openai.yaml +3 -3
- package/skills/microi-deployment/SKILL.md +2 -0
- package/skills/microi-docs-coverage/references/capability-map.md +7 -0
- package/skills/microi-form-engine/SKILL.md +25 -5
- package/skills/microi-microservice/SKILL.md +3 -0
- package/skills/microi-mobile-app-quality/SKILL.md +9 -0
- package/skills/microi-system-delivery/SKILL.md +26 -7
- package/skills/microi-uniapp-frontend/SKILL.md +5 -0
- package/skills/module-engine/references/module-config.md +2 -0
- package/skills/page-engine/SKILL.md +32 -0
- package/skills/uniapp-mall-assets/SKILL.md +7 -0
- package/skills/v8-debugging/SKILL.md +5 -3
- package/skills/v8-file-upload/SKILL.md +5 -3
- package/skills/v8-security/SKILL.md +5 -3
- package/skills/workspace-conventions/SKILL.md +2 -0
|
@@ -64,6 +64,8 @@ src/
|
|
|
64
64
|
AppKey 稳定且只含安全字符。`microi.routes.json` 是页面事实源,删除/新增路由后由
|
|
65
65
|
发布流程同步 `sys_microiservice_page`,不要从 Vue 源码猜路由。
|
|
66
66
|
|
|
67
|
+
本地项目必须位于当前连接对应的 `Microi-V8-Engine/{系统名称} ({ApiBase域名})/{OsClient}.{OsClientType}.{OsClientNetwork}/AI应用/{appKey}`。`microi.apps/` 是官方应用商城发行包工程目录,不是 MicroService 源码目录;发行包只能引用、构建或快照当前租户的唯一源码,不得在包内嵌套第二份可编辑 `microservice/` 工程。
|
|
68
|
+
|
|
67
69
|
构建前遵守本地 OOM 保护;已有 dev server 可复用时不重复启动。独立 Vite 预览缺少
|
|
68
70
|
完整宿主 Token/OsClient/菜单/弹窗上下文,不能替代宿主验收。
|
|
69
71
|
|
|
@@ -95,6 +97,7 @@ AppKey 稳定且只含安全字符。`microi.routes.json` 是页面事实源,
|
|
|
95
97
|
|
|
96
98
|
菜单 `OpenType=MicroService` 时一次绑定 `MicroServiceId`、
|
|
97
99
|
`MicroServicePageId`、`MicroServiceRoutePath`、`MicroServiceKey`。
|
|
100
|
+
完整系统 Manifest 不得固化不同租户会变化的两个 Id;模块声明 `openType=MicroService`、`microServiceKey` 和 `microServiceRoutePath` 即可,由 `microi_generate_system` 在任何写入前回读 `sys_microiservice/sys_microiservice_page`,解析并校验当前租户的 `MicroServiceId/MicroServicePageId`。微服务或页面不存在时必须在首个写操作前失败,不能留下半套系统。
|
|
98
101
|
复杂弹窗用 `V8.OpenAppDialog`,业务参数放 `Data`,回调放顶层。
|
|
99
102
|
|
|
100
103
|
微服务内部禁止调用浏览器原生 `alert/confirm/prompt`。优先复用宿主 `Tips`/`V8.ConfirmTips`;需要由子应用自行承载时,使用 teleport 到 `body` 的品牌化可访问弹层,固定在当前视口正中央并高于宿主滚动内容。长列表只允许一次性加载后在前端内存搜索时,不得随着关键词重复请求服务器。
|
|
@@ -41,6 +41,8 @@ description: Microi 移动端质量门禁,适用于 UniApp/H5/微信小程序
|
|
|
41
41
|
- 只保留小型交互图标和离线关键资源在主包。任何远程迁移都必须同步检查小程序下载域名、失败占位、缓存策略和弱网首屏。
|
|
42
42
|
- 压缩以用户可感知质量为边界:图片检查文字与主体细节,音频抽听,视频抽播;禁止仅为满足扫描数字而过度压缩。
|
|
43
43
|
- 验收必须同时给出包体扫描、CDN 匿名 `200`、正确媒体类型和多尺寸截图证据。缺任一层都不能宣称资源问题已通过。
|
|
44
|
+
- 微信小程序上传前增加硬门禁:扫描 `dist/build/mp-weixin` 的真实文件;单个非关键静态资源超过 `256 KB`、主包静态资源达到 `1.5 MB`,或主包距微信当前硬上限不足 `300 KB` 时,发布步骤必须失败并列出最大文件,不能等开发者工具上传后才发现超限。
|
|
45
|
+
- 迁移到 HDFS/CDN 后必须从构建产物确认原大文件已经消失,并从业务记录/配置回读相对 `Path`;页面要先加载当前租户 `SysConfig.FileServer`,不得以源码硬编码 CDN 域名替代运行期配置。远程资源加载失败时只能回退到轻量本地占位,不得把原大图重新塞回主包。
|
|
44
46
|
|
|
45
47
|
## 2. 不要猜测 Microi 前端 SDK 登录接口
|
|
46
48
|
|
|
@@ -128,6 +130,13 @@ Microi 请求只能发送一个不区分大小写的 OsClient 请求头。浏览
|
|
|
128
130
|
- 模拟 `uni.request` 域名未配置、超时、HTTP 500、接口 `Code=0`,前端均显示具体原因,loading 在 `finally` 中恢复。
|
|
129
131
|
- 体验版真机复测授权登录;不能只以开发者工具模拟成功作为上线依据。
|
|
130
132
|
|
|
133
|
+
## 3.1.1 手机号快速验证前置页不得混淆腾讯官方
|
|
134
|
+
|
|
135
|
+
- 调用手机号快速验证组件前展示的登录页、弹窗、按钮、说明、分享标题和失败提示中,禁止出现“微信”“微信官方”“微信登录”“一键登录”等可能让用户误认为腾讯官方功能或官方产品的文案。
|
|
136
|
+
- 前置页不得使用微信官方 Logo、相似绿色气泡图标、仿官方按钮或其它腾讯官方视觉元素;只允许展示小程序自身主体名称、品牌 Logo 和通用手机/验证图标。
|
|
137
|
+
- 推荐统一使用“手机号快捷登录”“手机号快速验证”“验证中”等中性文案。底层仍按平台要求保留 `open-type="getPhoneNumber"`、`provider:'weixin'` 等技术实现,不能为改文案破坏真实授权链路。
|
|
138
|
+
- `build:mp-weixin` 后必须扫描登录页源码和 `dist/build/mp-weixin/pages/login/` 产物中的可见文案,并对手机号快速验证前置页截图;发现混淆词、官方 Logo 或近似元素时阻止上传和提审。
|
|
139
|
+
|
|
131
140
|
## 3.2 微信小程序每个页面默认支持分享
|
|
132
141
|
|
|
133
142
|
小程序项目必须默认支持转发给朋友和分享到朋友圈,不能只给首页或公开页添加分享。登录和权限控制属于访问阶段,不得用来隐藏分享能力。
|
|
@@ -52,7 +52,8 @@ description: Microi 吾码从自然语言交付完整系统的总控规范。用
|
|
|
52
52
|
- 对资金/资产类生产数据执行清理、重算、修复、补发、扣减前,必须留下可审计痕迹:中文备注 SQL、维护接口说明、执行时间、影响行数、回读验证结果。能用小范围条件时不要全表更新。
|
|
53
53
|
- 写入菜单时,业务按钮一次性配齐 `MoreBtns`、`FormBtns`、`PageBtns`、`BatchSelectMoreBtns`、`PageTabs`,按钮前端只负责交互,后端逻辑放接口引擎。
|
|
54
54
|
- 写入后台菜单时必须至少规划两级菜单树:先创建业务域父菜单,再把 CRUD、报表、日志、设置模块挂到对应父菜单。不要把客户、设备、工单、报告、日志、配置等所有模块直接创建为一级菜单。Manifest dry-run 和最终交付说明都必须列出菜单树。
|
|
55
|
-
- 新建前端 MicroService 时,必须先 `microi_list_applications` 盘点,再用 `microi_scaffold_vue_microservice` 在当前租户 `AI应用/{appKey}` 做预演和确认创建;构建后依次同步私有源码、发布公有产物、回读页面 Id。每个菜单通过 `microi_create_module` 一次绑定 `MicroServiceId/MicroServicePageId/MicroServiceRoutePath/MicroServiceKey`,写后用 `microi_get_module` 回读,不得把普通 URL 菜单的创建成功误报成微服务菜单已交付。
|
|
55
|
+
- 新建前端 MicroService 时,必须先 `microi_list_applications` 盘点,再用 `microi_scaffold_vue_microservice` 在当前租户 `AI应用/{appKey}` 做预演和确认创建;构建后依次同步私有源码、发布公有产物、回读页面 Id。每个菜单通过 `microi_create_module` 一次绑定 `MicroServiceId/MicroServicePageId/MicroServiceRoutePath/MicroServiceKey`,写后用 `microi_get_module` 回读,不得把普通 URL 菜单的创建成功误报成微服务菜单已交付。
|
|
56
|
+
- 完整系统 Manifest 中的 MicroService 菜单使用 `microServiceKey + microServiceRoutePath` 作为跨租户可移植引用;`microi_generate_system` 必须在任何写入前回读并解析当前租户的服务/页面 Id。直接调用 `microi_create_module` 时仍须一次提供全部四个绑定字段。
|
|
56
57
|
- Windows 上脚手架从临时目录原子改名时,杀毒软件或索引器可能短暂返回 `EPERM/EACCES/EBUSY`;MCP 应做有上限的短重试并保持原子改名,重试仍失败才清理临时目录并报错,禁止改成逐文件覆盖目标目录。
|
|
57
58
|
- 编译产物优先调用 `microi_publish_application_directory_stream`。流式端点失败时必须检查 `uploadedCount/retrySafe`:只有 `uploadedCount=0` 且 `retrySafe=true`、并且产物较小时,才可临时回退 `microi_publish_microservice`;已上传部分文件时先按版本和哈希回读,禁止无判断重复发布。回退与远端版本缺口必须写进交付结论。
|
|
58
59
|
- `microi_get_application_context` 返回文件清单不等于源码可读;必须检查 `ContentsComplete/ContentErrorCount` 以及逐文件 `ContentReadError`。MinIO 服务端读取私有源码应走内网端点,不能因公网代理拒绝私有桶而把 `IncludedContents=true` 误判为完整上下文。
|
|
@@ -104,12 +105,30 @@ description: Microi 吾码从自然语言交付完整系统的总控规范。用
|
|
|
104
105
|
回查索引,并创建 `Display=0`、`AppDisplay=0`、`HasChild=0` 的子表菜单。
|
|
105
106
|
- `JoinForm` 只用于主表保存一个目标 Id、并嵌入一条独立目标记录完整表单的 N:1/1:1
|
|
106
107
|
场景;目标表不能是当前表。需要列表、多行增删改或可能有多条记录时禁止使用。
|
|
107
|
-
- `TableChild` 的 `TableChildTableId`、`TableChildSysMenuId`、`TableChildFkFieldName`
|
|
108
|
-
|
|
109
|
-
`
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
108
|
+
- `TableChild` 的 `TableChildTableId`、`TableChildSysMenuId`、`TableChildFkFieldName`
|
|
109
|
+
必须引用回读后的真实资源。完整系统 Manifest 使用
|
|
110
|
+
`relation:{cardinality:"1:N",targetTable,childForeignKey,childModule}`,生成器按“全部表与
|
|
111
|
+
普通字段 → 隐藏子表菜单 → 关系字段”分阶段解析当前租户 Id;禁止猜 Id,禁止退化成
|
|
112
|
+
`JoinForm`。
|
|
113
|
+
- 基数不清楚时必须在远端写入前询问用户。调用 `microi_plan_system` / `dryRun` 前先做
|
|
114
|
+
关系语义审查。MCP 会硬性拒绝“1:N + JoinForm”、自关联 JoinForm、缺主/子外键、缺
|
|
115
|
+
`Display=0/AppDisplay=0/HasChild=0` 隐藏子菜单或缺 `(OsClient, FK)` 回查索引;AI
|
|
116
|
+
不得改用直接单字段工具绕过。
|
|
117
|
+
|
|
118
|
+
`JoinForm` 的可移植 Manifest 只写名称,不写租户 Id:
|
|
119
|
+
|
|
120
|
+
```json
|
|
121
|
+
{
|
|
122
|
+
"name": "CustomerProfile",
|
|
123
|
+
"label": "客户资料",
|
|
124
|
+
"component": "JoinForm",
|
|
125
|
+
"relation": {
|
|
126
|
+
"cardinality": "N:1",
|
|
127
|
+
"targetTable": "Biz_Customer",
|
|
128
|
+
"joinFieldName": "CustomerId"
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
```
|
|
113
132
|
|
|
114
133
|
`JoinForm` / `OpenTable` 等单记录关联仍需兼顾可读字段,不能只生成一个裸 `XxxId`。
|
|
115
134
|
|
|
@@ -51,6 +51,8 @@ Microi 标准小程序必须采用“平台内核 + 版本化元数据 + Profile
|
|
|
51
51
|
- H5/App 可提供手机号输入兜底,但必须确认后端接口支持 `Phone` 登录;微信小程序优先走 `Code + LoginCode`。
|
|
52
52
|
- 登录按钮、去登录按钮、手机号授权按钮必须是图标 + 文案按钮,具备 loading、disabled/pressed 反馈,且原生 button 默认边框要清掉。
|
|
53
53
|
- 体验版授权登录必须保留可诊断错误:请求层归一化 `uni.request.fail.errMsg`、HTTP 状态和接口 `Msg`,登录页用模态框完整展示“阶段 + 原因 + 追踪号”。后端接口引擎按阶段写脱敏系统日志;不能只在前端 catch 后显示固定“手机号登录失败”。
|
|
54
|
+
- 小程序调用手机号快速验证组件的前置页、按钮、弹窗、分享标题和失败提示不得出现“微信”“微信官方”“微信登录”“一键登录”等可能混淆腾讯官方的文案,也不得展示微信官方 Logo、相似绿色气泡图标或仿官方品牌元素。统一使用“手机号快捷登录”“手机号快速验证”等中性业务文案,只展示应用自身品牌 Logo。
|
|
55
|
+
- 微信小程序构建后必须扫描登录页源码以及 `dist/build/mp-weixin/pages/login/` 产物,并截图核对手机号快速验证前置页;命中上述混淆文案、官方图形或近似元素时必须阻止上传和提审,不能只检查按钮主文案而漏掉说明文字、错误弹窗或分享标题。
|
|
54
56
|
|
|
55
57
|
## 微信小程序全页面分享
|
|
56
58
|
|
|
@@ -99,6 +101,9 @@ Microi 标准小程序必须采用“平台内核 + 版本化元数据 + Profile
|
|
|
99
101
|
- 压缩后必须在至少 375px、430px 和目标小程序设备截图中核对清晰度、裁切、首屏加载与失败占位;音视频还要抽听/抽播。质量不合格时优先调整编码、分辨率和缓存策略,而不是继续极端压缩。
|
|
100
102
|
- 项目只能通过统一配置或资源解析器保存 CDN 地址,页面不得散落硬编码 FileServer;切换环境或租户时必须能整体替换。
|
|
101
103
|
- CDN 资源必须设置加载失败占位或降级路径。构建验收同时检查小程序主包资源总量、单资源大小、远程域名白名单和真实 CDN 可达性,不能只看源码文件大小。
|
|
104
|
+
- 小程序发布前必须扫描实际构建目录,而不只扫描 `src`:单个非离线关键资源超过 `256 KB` 时默认迁移 HDFS/CDN;主包静态资源达到 `1.5 MB` 或距离平台硬上限不足 `300 KB` 时必须停止上传,先瘦身或分包。确需本地保留的例外要记录离线必要性、大小和验证证据。
|
|
105
|
+
- HDFS 迁移顺序固定为“保留/归档原始素材 -> 按真实展示尺寸压缩 -> 上传当前租户公有 HDFS -> 保存相对 `Path` -> 运行期通过 `SysConfig.FileServer` 解析 -> 匿名 GET 回读”。回读必须断言 `200`、正确 `Content-Type`、非空大小,重要资源再比对 SHA-256;不能把上传接口返回成功当成完成。
|
|
106
|
+
- 原始高清图、视频母版、设计源文件不得继续放在会被 UniApp 收集的 `src/static`、分包目录或其它构建入口中;应移到项目资料/设计源目录。主包仅保留小于门禁的轻量失败占位图和离线关键图标。
|
|
102
107
|
|
|
103
108
|
## 头像必须异步统一解析
|
|
104
109
|
|
|
@@ -71,6 +71,8 @@
|
|
|
71
71
|
|
|
72
72
|
路由优先 `/micro-app/{MsKey}/{RoutePath}`,并兼容历史 Id 路由。
|
|
73
73
|
|
|
74
|
+
完整系统 Manifest 使用可移植引用:模块写 `openType=MicroService`、`microServiceKey`、`microServiceRoutePath`,不把某个租户的 `MicroServiceId/MicroServicePageId` 固化进发行包。`microi_generate_system` 会在首个写操作前回读运行元数据并补齐两个 Id;解析失败必须停止整次生成。直接调用 `microi_create_module` 时仍须一次提供全部四个绑定字段。
|
|
75
|
+
|
|
74
76
|
## 跨端 ViewSchema
|
|
75
77
|
|
|
76
78
|
专用物理字段:
|
|
@@ -5,6 +5,8 @@ description: 生成和审查 Microi 界面引擎 Page Engine 页面 JSON。用
|
|
|
5
5
|
|
|
6
6
|
# Microi 界面引擎(Page Engine)页面 JSON 生成
|
|
7
7
|
|
|
8
|
+
MCP 的生成/保存入口包含 `microi_build_page_design` 与 `microi_save_page_design`;版本治理入口见下文。保存工具写入后仍需回读 `mic_page`,不能把生成成功当作持久化成功。
|
|
9
|
+
|
|
8
10
|
你正在为 Microi 吾码平台生成界面引擎页面的 JSON 数据。界面引擎页面由 `formData` 对象描述,用户导入 JSON 即可使用。
|
|
9
11
|
|
|
10
12
|
## 设计器源码事件
|
|
@@ -379,6 +381,36 @@ return { Code: 1, Data: { NotModified: true, FileKey: currentFileKey } };
|
|
|
379
381
|
- 交付类首页如果使用一个远程 `html` 组件承载整页驾驶舱,运行态应由外层框架滚动,不要给容器和组件写死 1000px 这类固定高度。页面 JSON 可将 `wrapperOption.height` 与 `widgetOption.height` 设为 `0`(或运行态支持的 `auto`),前端运行态必须按内容自适应高度;设计器模式再使用可编辑的默认高度。
|
|
380
382
|
- 首页写入口径说明时,必须区分“用户口头期望数量”“原始资料条目数量”“按业务主体合并后的数量”“后台项目/规则/别名数量”。不要只显示一个“未交付 N 个”,应同时列出部分交付、待执行、阻塞/需业务人员配合的清单和原因。
|
|
381
383
|
|
|
384
|
+
## 版本历史、并发保存与回滚
|
|
385
|
+
|
|
386
|
+
修改现有页面时必须先读取页面详情中的 `CurrentHash`,保存时把它作为 `expectedHash` 传入,并填写简短 `changeSummary`。不要仅凭本地旧 JSON 覆盖远端页面。
|
|
387
|
+
|
|
388
|
+
| MCP 工具 | 用途 |
|
|
389
|
+
|---|---|
|
|
390
|
+
| `microi_list_page_history` | 获取历史元数据与当前哈希 |
|
|
391
|
+
| `microi_get_page_history` | 获取指定不可变快照 |
|
|
392
|
+
| `microi_compare_page_versions` | 结构化比较两个版本;右侧省略时比较当前页面 |
|
|
393
|
+
| `microi_export_page_design` | 导出 `microi.page.v1` 设计包 |
|
|
394
|
+
| `microi_rollback_page_design` | 使用 `expectedCurrentHash` 回滚并新增审计版本 |
|
|
395
|
+
|
|
396
|
+
- 内容规范化后哈希未变化时,不应新增空历史。
|
|
397
|
+
- 遇到哈希冲突先重新读取、比较,再决定合并或重做;禁止去掉 `expectedHash` 强行覆盖。
|
|
398
|
+
- 回滚不是删除:目标快照成为新当前版本,回滚前内容仍保留。
|
|
399
|
+
- 写后必须再次读取页面详情和历史,确认 `CurrentHash`、版本号、变更摘要和 JSON 一致。
|
|
400
|
+
- 页面历史属于当前租户数据库;不要假定业务表有物理 `OsClient` 列。
|
|
401
|
+
|
|
402
|
+
## 本地撤销、Vue 源码桥与资产包
|
|
403
|
+
|
|
404
|
+
- 设计器本地历史最多 50 步、总计最多 20MB;连续编辑允许合并,但保存前必须刷新当前 `CurrentHash`。
|
|
405
|
+
- `Ctrl/Cmd+Z`、`Ctrl/Cmd+Shift+Z`、`Ctrl/Cmd+Y` 不能抢占输入框、textarea、contenteditable 或代码编辑器自己的撤销行为。
|
|
406
|
+
- 本地 Undo/Redo 不是审计版本;跨会话恢复仍使用服务端历史与 CAS。
|
|
407
|
+
- Page JSON → Vue SFC 只使用确定性 `microi.page.sfc.v1` 模板;禁止 eval、动态执行用户 JSON 或注入任意 import。
|
|
408
|
+
- Vue SFC → Page JSON 只接受平台生成标记、完整元数据和匹配 Hash;任意手写 Vue、第三方 SFC 或未知 script 必须拒绝。
|
|
409
|
+
- 导入源码后先规范化、显示 Diff,再由用户确认写入;不得因为“解析成功”直接覆盖当前页面。
|
|
410
|
+
- 可复用组件/区块使用治理中心 `microi.asset.v1`,声明 Props、Setters、DataAdapters、Platforms 和 DependencyPackages;调用 `mci-asset-publish` DryRun 后再发布。
|
|
411
|
+
- 资产依赖必须检查缺失、语义版本范围、循环和最大深度;运行时使用 `mci-asset-resolve` 返回的 `LoadOrder`。
|
|
412
|
+
- 复杂页面需要完整工程能力时提升为前端微服务;不要承诺任意 Vue 源码无损反编译回界面引擎。
|
|
413
|
+
|
|
382
414
|
## 生成 JSON 注意事项
|
|
383
415
|
|
|
384
416
|
1. **编号唯一**:`wrapperOption.number` 和 `widgetOption.number` 页面内唯一(随机5位整数)
|
|
@@ -70,6 +70,13 @@ function imageUrl(path) {
|
|
|
70
70
|
|
|
71
71
|
不要让业务页面各自拼 `${API_BASE}/${path}` 或 `${FILE_SERVER}/${path}`;这会造成租户切换、私有桶、绝对 URL 和本地文件路由行为不一致。
|
|
72
72
|
|
|
73
|
+
## 大资源与小程序包体门禁
|
|
74
|
+
|
|
75
|
+
- Hero、Banner、资讯封面、视频、音频、字体和大型占位图等公开资源,先按真实显示尺寸压缩,再上传当前 `OsClient` 的公有 HDFS;数据库和配置只保存相对 `Path`,客户端运行时读取 `SysConfig.FileServer` 组成 CDN 地址。
|
|
76
|
+
- 发布前扫描真实小程序构建目录。单个非离线关键资源超过 `256 KB` 时默认不得进入主包;主包静态资源达到 `1.5 MB` 或距平台硬上限不足 `300 KB` 时必须中止上传并输出最大文件清单。
|
|
77
|
+
- 上传完成必须执行 CDN 匿名 GET 回读,验证 `200`、媒体类型、字节数,重要资源比对 SHA-256;同时回读业务字段确认已由 `/static/...` 改为 HDFS 相对路径。只有上传成功、数据库回读、CDN 回读和构建产物瘦身全部通过,才能关闭问题。
|
|
78
|
+
- 原始设计素材移到不会参与构建的资料目录;主包只保留轻量失败占位和离线关键图标。远程资源加载失败时显示该占位,禁止回退为同一张大图的本地副本。
|
|
79
|
+
|
|
73
80
|
## 私有文件
|
|
74
81
|
|
|
75
82
|
- 私有对象 Key 不能直接转换成可长期访问的公网地址。
|
|
@@ -3,9 +3,11 @@ name: v8-debugging
|
|
|
3
3
|
description: Microi V8 调试与日志指南。用于排查接口引擎、V8 事件、console.log、DataAppend.DebugLog、sys_log、异常处理和远程执行问题。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Microi V8 调试与日志
|
|
7
|
-
|
|
8
|
-
你正在为 Microi 吾码平台编写 V8 引擎代码,需要在开发/测试/生产环境进行排错。本指南提供调试模式、异常捕获、系统日志、调试输出的标准做法。
|
|
6
|
+
# Microi V8 调试与日志
|
|
7
|
+
|
|
8
|
+
你正在为 Microi 吾码平台编写 V8 引擎代码,需要在开发/测试/生产环境进行排错。本指南提供调试模式、异常捕获、系统日志、调试输出的标准做法。
|
|
9
|
+
|
|
10
|
+
MongoDB 运行日志通过 `microi_query_mongodb_logs` 只读查询;必须限制租户、时间窗、页大小和返回字段,不在结果或回答中输出 Token、连接串、Secret 或完整敏感请求体。
|
|
9
11
|
|
|
10
12
|
## 三种输出通道
|
|
11
13
|
|
|
@@ -3,9 +3,11 @@ name: v8-file-upload
|
|
|
3
3
|
description: Microi V8 与 MCP 文件上传下载指南。用于处理流式 AI 应用发布、V8.FilesByteBase64、V8.Method.Upload、私有文件 URL、文件响应、HDFS、OSS、MinIO 和 S3 存储。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Microi V8 文件上传下载
|
|
7
|
-
|
|
8
|
-
你正在为 Microi 吾码平台编写文件上传/下载/返回相关代码。平台分布式存储(HDFS)支持阿里云OSS、MinIO、亚马逊S3,存储方案由 SaaS 引擎按租户配置。
|
|
6
|
+
# Microi V8 文件上传下载
|
|
7
|
+
|
|
8
|
+
你正在为 Microi 吾码平台编写文件上传/下载/返回相关代码。平台分布式存储(HDFS)支持阿里云OSS、MinIO、亚马逊S3,存储方案由 SaaS 引擎按租户配置。
|
|
9
|
+
|
|
10
|
+
公开入口覆盖 `V8.uploadFile`、多文件 `V8.uploadFiles` 与 MCP `microi_upload_file_base64`。多文件上传必须限制并发、逐文件返回结果;Base64 工具只接受明确文件名、大小和租户内目标范围,写后回读路径、大小与哈希。
|
|
9
11
|
|
|
10
12
|
## 核心 API
|
|
11
13
|
|
|
@@ -3,9 +3,11 @@ name: v8-security
|
|
|
3
3
|
description: Microi V8 安全指南。用于审查 DiyToken 与权限、可逆业务秘密、Passkey/TOTP/人脸步进验证、接口引擎安全、密钥管理、SQL 注入、匿名端点、文件上传和租户隔离。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Microi V8 安全最佳实践
|
|
7
|
-
|
|
8
|
-
你正在开发 Microi 吾码平台的 V8 引擎代码,必须遵守以下安全规范。
|
|
6
|
+
# Microi V8 安全最佳实践
|
|
7
|
+
|
|
8
|
+
你正在开发 Microi 吾码平台的 V8 引擎代码,必须遵守以下安全规范。
|
|
9
|
+
|
|
10
|
+
访问密钥由 `microi_list_my_access_keys`、`microi_create_my_access_key`、`microi_revoke_my_access_key` 管理,只允许当前用户、限期、最小 scope,明文仅创建时返回一次。外部身份回调固定为 `/api/ExternalLogin/Callback`,服务端校验租户、Provider、state、redirect 和回调域名,验证成功后仍签发 DiyToken。
|
|
9
11
|
|
|
10
12
|
## 0. 租户动态系统设置与密钥边界
|
|
11
13
|
|
|
@@ -102,6 +102,8 @@ AI 在工作区任意任务中生成的**一次性临时脚本、诊断文件、
|
|
|
102
102
|
| 吾码 App 源码 | `microi.app/` |
|
|
103
103
|
| 吾码 UniApp 源码 | `microi.uniapp/` |
|
|
104
104
|
| 吾码官方网站 / 文档源码 | `microi.doc/` |
|
|
105
|
+
| 吾码 AI 应用源码 | `Microi-V8-Engine/{系统名称} ({ApiBase域名})/{OsClient}.{OsClientType}.{OsClientNetwork}/AI应用/{appKey}/` |
|
|
106
|
+
| 吾码官方应用商城发行包源码 | `microi.apps/{packageKey}/` |
|
|
105
107
|
|
|
106
108
|
以上路径只作为通用工作区相对路径规范,不写入具体本机盘符。跨仓库、空工作区或普通用户项目中,如果路径不存在,以插件生成的 `AGENTS.md`、MCP 配置和实际文件树为准。
|
|
107
109
|
|