用途:为 Microsoft Managed Apps 提供内置 NoSQL 状态存储,应用可直接调用,无需中间层函数、连接器或 SDK,由宿主处理认证。记录按 item 类型名分组为集合,服务器分配 itemId。
主要能力:用 ms project state 命令增删改 schema 属性与设置,运行 ms project state generate-code 生成 TypeScript 服务、模型、校验器与类型化查询助手,再由应用代码调用。支持字符串、数字、整数、布尔、datetime、guid、binary 类型;每集合最多四个自定义索引属性,仅顶层标量可过滤排序。支持按用户隔离的集合(x-ms-ownership: perUser)与文件附件上传。
使用方式:先确认已登录(ms auth status,必要时 ms auth login),再运行 ms feature status --name state --json,仅当 success 为 true 且 feature.enabled 为 true 才继续。用 ms project state list-schema、list-settings 查看现状,用 add、alter、remove、set-setting 修改,每次成功后运行 ms project state generate-code。本地测试需 Vite 插件 0.4.2+ 并设置 managedApps({ devMode: 'localGateway' }),再运行 ms app dev。附件先上传到 /.ms/state/attachments,再把返回 URL 通过生成服务保存,需在 15 分钟内保存。
限制:schema 只能通过 CLI 修改,禁止手改 JSON(按用户归属除外);索引只增不减;集合不可删除;生成目录不可手改;服务调用返回结果对象而非抛异常;update 为整文档 upsert;服务端字段只读;附件无 DELETE/PUT,单文件 10 MiB,每应用 10,000 文件与 1 GiB。功能未启用时应改用 /add-dataverse、/add-sharepoint、/add-excel 等替代路径。