SuperAPI AI 工具集

shopify-policy-guardrails

编程与开发

查看项目

更新于 10-15 23:29

技能介绍

用途:为 Shopify 应用提供自动化的政策执行与安全护栏,覆盖密钥检测、查询成本预算、App Store 合规检查与 CI 策略校验。

主要能力:

  1. 自定义 ESLint 规则,检测字符串与模板字面量中硬编码的 Shopify 令牌(shpat_、shpss_)与 API 密钥。
  2. GraphQL 查询静态分析:限制 first: 参数最多 100 项、嵌套最多 3 层、预估成本上限 500,在构建/测试阶段运行。
  3. 预提交钩子:扫描暂存变更中的 Shopify 令牌,阻止提交 .env 文件。
  4. App Store 合规检查脚本:提交前校验三个 GDPR Webhook、令牌卫生、CSP 头与 API 版本稳定性。
  5. CI 策略流水线:在每次 push 与 PR 时执行令牌扫描、GDPR Webhook 配置与 API 版本稳定性检查。

使用方式:需先在项目中配置 ESLint、预提交钩子基础设施、带 GitHub Actions 的 CI/CD 流水线,以及含 shopify.app.toml 的 Shopify 应用。预提交配置示例:

.pre-commit-config.yaml

repos:

  • repo: local hooks:
    • id: shopify-token-scan name: Scan for Shopify tokens language: system entry: bash -c ' if git diff --cached --diff-filter=d | grep -E "shpat_[a-f0-9]{32}|shpss_[a-f0-9]{32}" ; then echo "ERROR: Shopify access token detected in staged changes" exit 1 fi' pass_filenames: false

    • id: shopify-env-check name: Check .env not staged language: system entry: bash -c ' if git diff --cached --name-only | grep -E "^.env$|^.env.local$|^.env.production$" ; then echo "ERROR: .env file staged for commit" exit 1 fi' pass_filenames: false

快速检查命令: git diff --cached | grep -E "shpat_|shpss_" && echo "TOKEN LEAK!" || echo "Clean" grep -c "customers/data_request|customers/redact|shop/redact" shopify.app.toml (应输出 3)

适用场景:在加固 Shopify 应用、准备 App Store 提交或配置 CI 策略时使用。

限制与错误处理:令牌误报可缩窄正则;复杂变量嵌套导致成本估算偏差时,测试中使用实际 debug 头;预提交可能被 --no-verify 绕过,需在 CI 中作为后备强制;App Store 被拒常因缺少 GDPR Webhook,提交前运行合规检查。具体实现代码与完整工作流资料暂未提供。