用途:把 App Builder 数据库存储(@adobe/aio-lib-db)集成进现有 Adobe Commerce 应用,并搭建读写文档的运行时 action。该库类似 MongoDB,数据以集合中的文档形式存放,用过滤器查询。
主要能力:支持 web action 与事件/webhook action 两类注册方式,数据库访问代码相同,区别在注册方式与 handler 返回值。web action 用 @adobe/aio-commerce-lib-core 的 responses 辅助函数返回响应;事件 action 经 commerce-app-eventing 的 runtimeActions 引用,webhook action 经 commerce-app-webhooks 的 runtimeAction 引用。事件负载在 params.data.value,webhook 负载直接位于 params。
使用方式:前置要求项目已初始化(存在 app.commerce.config.ts、src/commerce-extensibility-1/ 与 node_modules),否则先运行 npx @adobe/aio-commerce-lib-app init。需在 Adobe Developer Console 为每个使用数据库的工作区添加 App Builder Data Services API。在 app.config.yaml 声明式配置 database.auto-provision 与 region;本地开发用 aio plugins install @adobe/aio-cli-plugin-app-storage 后执行 aio app db provision --region <amer|apac|emea|aus>。安装库:npm install @adobe/aio-lib-db。在 ext.config.yaml 注册 action,必须设置 include-ims-credentials: true,包名不得用保留的 app-management。handler 生命周期为解析 IMS 认证、取 token、init、connect、使用集合、finally 中 close。集合与索引建议用 defineCustomInstallationStep 在安装时创建,脚本须为 ES module 且 export default,路径以 .js 或 .ts 结尾,并在 app.commerce.config.ts 的 installation.customInstallationSteps 注册;若为首个需安装的域,需重跑 npx @adobe/aio-commerce-lib-app init 生成安装 action。最后用 aio app build 校验。
限制:region 必须与 manifest 的 database.region 一致,改 region 具破坏性;仅扩展型应用因 CLI 插件缺陷需加 packages: {} 与 post-app-build 钩子绕过;索引字段总长不超过 2048 字节;大结果集应用游标迭代。其余细节资料未提供。