SuperAPI AI 工具集

validate

部署与运维

查看项目

更新于 10-30 11:50

技能介绍

用途

validate 用于校验 SAP appFront(Application Frontend)应用的配置是否正确、是否具备部署就绪条件。校验对象包括本地静态配置文件,以及(用户确认后)线上已部署应用的运行时文件。

两种模式

  • 静态模式:校验本地项目文件,对应阶段 1–6,始终运行。
  • 运行时模式:登录后通过 Playwright 从已部署应用抓取线上文件,对应阶段 7,仅在用户确认后运行。

校验流程

阶段 1 项目发现

在项目中查找 mta.yaml、xs-app.json、xs-security.json、ias-security.json、manifest.json 等配置文件,列出清单,标注缺失的必需文件,识别认证服务类型(XSUAA 或 IAS)与运行时(CF 或 Kyma)。

阶段 2 MTA 校验

读取 mta.yaml,检查 appFront 资源是否存在、服务计划是否为 developer、是否残留 html5-apps-repo 资源、是否缺少或误含 destination-content 模块、是否出现 HTML5Runtime_enabled、app-content 模块是否存在且依赖 appFront 资源、build-result 路径是否合理、XSUAA/IAS 资源是否存在等,并按约定判定为 FAIL 或 WARN。

阶段 3 xs-app.json 校验

检查 welcomeFile 是否存在且可达、根级 authenticationMethod 是否设置、是否存在 service 为 app-front 的路由、是否残留 html5-apps-repo-rt、兜底路由是否位于最后、/resources 路由是否为公开、是否存在源/目标循环匹配、路由中引用的 destination 是否已配置。

阶段 4 安全配置校验

对 xs-security.json 检查 xsappname 是否存在及格式、tenant-mode 是否设置、需要认证的路由是否定义了 scope、role-template 是否只引用已定义 scope。对 ias-security.json 检查 oauth2-configuration 是否存在、redirect-uris 是否非空、grant-types 是否包含 authorization_code。

阶段 5 manifest.json 校验(如存在)

检查 sap.app.id 是否存在及格式、dataSources 的 uri 是否匹配路由、使用 Fiori Elements 时依赖是否声明、Fiori Launchpad 注册所需 registrationIds 是否提供。

阶段 6 校验报告

按文件输出 PASS/WARN/FAIL 汇总表,给出总体结论:全部 PASS 为可部署;有 WARN 无 FAIL 为带警告可部署;存在 FAIL 为不可部署。逐条列出 FAIL 与 WARN 的文件、问题与修复建议。

阶段 7 运行时校验(线上应用)

向用户询问是否校验线上应用。确认后:读取本地应用名,用 afctl 检查登录状态并获取运行时 URL;通过 Playwright 完成 SAP 登录(支持 IAS 与 XSUAA 常见流程),抓取 xs-app.json、manifest.json、index.html 等文件;与本地版本比对内容一致性、JSON 有效性、sap.app.id 是否一致,并检查抓取内容中是否混入登录页;最后追加运行时校验章节与结论(LIVE APP OK 或 ISSUES FOUND)。密码仅在当前步骤的 shell 变量中使用,不记录、不打印、不写文件。

参考文件

  • references/validation-checklist.md:扩展校验规则集
  • references/common-misconfigurations.md:出现 FAIL 且原因不明时查阅
  • references/approuter-troubleshooting.md:路由、认证或令牌交换问题,含错误码 1–9 与决策树
  • references/approuter-flows.md:approuter 九步请求处理流程
  • references/service-to-approuter-flow.md:程序化认证模式校验(x-approuter-authorization 头、IAS app2app、mTLS)

适用场景

适合在 SAP BTP 上将 HTML5 应用迁移到 appFront 后,于部署前检查配置,或在部署后核对线上与本地配置是否一致。

限制

运行时校验需用户确认,且依赖 afctl 登录与 SAP 登录凭据;登录失败会直接报告 FAIL 并停止。其余功能细节以技能文档为准,资料未提供的内容暂未说明。