现有独立应用接入参考
通过Shell和业务自有MF体验真实用户CRUD、隔离、公开发布及容器持久化;仓库外交付仍单独验证。
运行仓库内参考
源码方式先构建Shell/Auth/content MF及ServerSDK,再构建Notes应用。按参考配置专属身份、API和自有数据文件并登记映射。标准Docker可直接叠加docker-compose.notes.yml,Core初次配置Notes;内部8186端口不直接公开。
pnpm --filter @mosaic-base/notes-example build
pnpm --filter @mosaic-base/notes-example test
mx-env run --no-global -- pnpm --filter @mosaic-base/notes-example start登记公开与管理入口
当前目录一行一个entryType。Notes公开Zone和管理embed分别登记,指向同一后端;按参考设置scope、target、权限与grants。主站路径/公开API经Gateway,不逐条向Core加业务Controller。
公开路径/notes与/api/notes/notes只返回明确发布内容;私有页面/notes/mine及其详情通过/api/notes/mine完成用户CRUD。管理入口为/embed/mosaic-notes-admin。Portal目录有60秒TTL,Gateway每次仍检查启停。
验证当前闭环
经受控管理创建并发布公开记录;普通用户通过Shell取得notes.personal SDK,创建、读取、修改和删除私有笔记。后端从已验证会话限定realm/userId,拒绝匿名、他人读写及伪造归属。实际验收覆盖登录回跳、SSR续期、重启保留与停用拒绝。
创建仓库外应用与SDK包
维护者先在已安装依赖的源码中构建开发kit,交付tarball、生成器、双端MF、许可和校验清单。开发者在pnpm工作区之外的新目录生成应用,不挂载平台源码或node_modules。生成器不登记服务、不创建秘密、拒绝覆盖已有目标。
模板的公开发布与私有记录模型属于应用自己的SQLite库和迁移;sdk/是独立package。安装SDK包提供类型,运行通过Shell映射取得journal.records,不创建静态默认领域实例。业务应按自己的spec替换模型和页面。
node scripts/build-developer-kit.mjs --out /tmp/mosaic-kit
node /tmp/mosaic-kit/create-app.mjs --key my-journal --scope journal --out /tmp/my-journal
cd /tmp/my-journal
pnpm install
pnpm test
pnpm build
pnpm typecheck
pnpm pack:sdk第二个独立Next消费者
将实际产出的SDK tarball传给消费者生成器,独立安装、类型检查与生产构建。SSR按请求创建并释放Shell;浏览器主体变化时清理旧数据。缺少manifest或export必须显示故障,修改映射后完整刷新浏览器并重启Node宿主。
node /tmp/mosaic-kit/create-consumer.mjs --key my-reader --scope reader --sdk /tmp/my-journal/artifacts/mosaic-base-my-journal-sdk-0.1.0.tgz --business-scope journal --out /tmp/my-reader
cd /tmp/my-reader
pnpm install
pnpm typecheck
pnpm build部署、登记与实际验证
各项目先生成自己的锁文件再构建Dockerfile。按生成README配置私网API、自己的派生身份和数据库路径;业务持久化/data,原始端口只留私网。分别登记业务Zone、管理入口和消费者Zone,为每个应用选定browser/Node Shell、HTTP、Auth与领域MF。browser资产走/journal/mf,Node资产仅走私网/_mosaic/mf/node。
检验真实管理发布、双用户CRUD与拒绝越权,再保留卷重启、替换自有MF构建并手动更新映射,验证停用与其他应用隔离。mosaic-app-development Skill也可在仓库内生成起点;完整操作与受保护身份交付见仓库docs/DEVELOPER_KIT.md。