ai-saas-guard 0.23.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -73,9 +73,10 @@ The CLI is published on npm as `ai-saas-guard`, and the GitHub Action is availab
73
73
  | JSON and SARIF output | Available |
74
74
  | Composite GitHub Action | Available |
75
75
  | Project config | `.ai-saas-guard.json` rule toggles, severity overrides, and fail thresholds |
76
- | Versioned Action tags | `v0.23.0`, `v0` |
77
- | npm package | `ai-saas-guard@0.23.0` |
76
+ | Versioned Action tags | `v0.24.0`, `v0` |
77
+ | npm package | `ai-saas-guard@0.24.0` |
78
78
  | npm publishing | Trusted Publisher/OIDC, no long-lived publish token |
79
+ | Repository trust hardening | Branch protection, Dependabot, CodeQL, private vulnerability reporting, secret scanning, and push protection |
79
80
  | Runtime hardening | Per-file and total text scan caps, escaped markdown evidence, stricter hosted deployment blockers |
80
81
  | Hosted production adapters | GitHub App JWT signing, installation-token request planning, bounded worker execution, and terminal-state cleanup planning |
81
82
  | Hosted app skeleton | Node/container HTTP ingress, health route, worker tick, in-memory provider adapters, and deployment plan validation |
@@ -201,6 +202,10 @@ If `--base` cannot be resolved, `pr-risk` emits `pr-risk.diff-unavailable` inste
201
202
 
202
203
  Use [docs/launch-readiness-checklist.md](docs/launch-readiness-checklist.md) when an app is close to inviting real users. It explains how to combine `ai-saas-guard` output with manual two-account authorization testing, Stripe webhook verification, MCP config review, Supabase policy review, deploy checks, rollback planning, and a clear reminder that this is not a full security audit.
203
204
 
205
+ ## Repository Trust Hardening
206
+
207
+ See [docs/repository-trust-hardening.md](docs/repository-trust-hardening.md) for the public repository controls behind this release line: branch protection, required CI checks, Dependabot for npm and GitHub Actions, CodeQL SAST, private vulnerability reporting, secret scanning, and push protection.
208
+
204
209
  ## Stripe Webhook Replay
205
210
 
206
211
  Use [docs/stripe-webhook-replay.md](docs/stripe-webhook-replay.md) after `check-stripe` flags missing signature verification, idempotency, lifecycle handlers, or entitlement updates. The cookbook maps findings to concrete `stripe listen` and `stripe trigger` commands for checkout success, failed renewal, subscription update, cancellation, refund, duplicate delivery, and out-of-order event review.
@@ -271,7 +276,7 @@ Use `suppressions` for narrower false-positive handling when one rule is noisy o
271
276
 
272
277
  ## GitHub Action
273
278
 
274
- The repo includes a composite Action. Use `v0` for the latest compatible pre-1.0 Action, a specific release tag such as `v0.23.0` for controlled upgrades, or pin a reviewed commit SHA for stricter supply-chain control:
279
+ The repo includes a composite Action. Use `v0` for the latest compatible pre-1.0 Action, a specific release tag such as `v0.24.0` for controlled upgrades, or pin a reviewed commit SHA for stricter supply-chain control:
275
280
 
276
281
  ```yaml
277
282
  name: ai-saas-guard
package/README.zh-CN.md CHANGED
@@ -55,7 +55,7 @@ AI 能很快把一个 SaaS 从想法做成可运行的产品。真正难的是
55
55
 
56
56
  这个仓库是公开 GitHub 仓库。
57
57
 
58
- CLI 已发布到 npm:`ai-saas-guard@0.23.0`。GitHub Action 支持 `v0` 浮动标签,也支持固定版本标签,例如 `v0.23.0`。
58
+ CLI 已发布到 npm:`ai-saas-guard@0.24.0`。GitHub Action 支持 `v0` 浮动标签,也支持固定版本标签,例如 `v0.24.0`。
59
59
 
60
60
  | 模块 | 状态 |
61
61
  | --- | --- |
@@ -66,9 +66,10 @@ CLI 已发布到 npm:`ai-saas-guard@0.23.0`。GitHub Action 支持 `v0` 浮动
66
66
  | Markdown PR summary | 已可用 |
67
67
  | GitHub Action | 已可用 |
68
68
  | 项目配置 | `.ai-saas-guard.json` 支持规则开关、severity 覆盖和 fail threshold |
69
- | 当前版本 | `0.23.0` |
70
- | Action 标签 | `v0.23.0`、`v0` |
69
+ | 当前版本 | `0.24.0` |
70
+ | Action 标签 | `v0.24.0`、`v0` |
71
71
  | npm 发布 | GitHub Actions Trusted Publisher/OIDC,无需长期 npm token |
72
+ | 仓库可信度加固 | branch protection、Dependabot、CodeQL、private vulnerability reporting、secret scanning 和 push protection |
72
73
  | 运行时加固 | 单文件和总扫描文本预算、markdown evidence 转义、更严格的 hosted deployment 阻断 |
73
74
  | Hosted production adapters | GitHub App JWT 签名、installation-token 请求规划、有边界的 worker 执行和终态 cleanup 规划 |
74
75
  | Hosted app skeleton | Node/container HTTP ingress、health route、worker tick、in-memory provider adapters 和 deployment plan 校验 |
@@ -134,6 +135,10 @@ node dist/cli.js scan --root /path/to/your-saas
134
135
 
135
136
  完整规则请看 [docs/rules.md](docs/rules.md)。
136
137
 
138
+ ## 仓库可信度加固
139
+
140
+ 公开仓库的维护和发布控制见 [docs/repository-trust-hardening.md](docs/repository-trust-hardening.md)。当前已经配置 branch protection、required CI checks、Dependabot npm/GitHub Actions 更新、CodeQL SAST、private vulnerability reporting、secret scanning 和 push protection。
141
+
137
142
  ## PR 风险分流
138
143
 
139
144
  `scan` 可以扫整个仓库,但这个项目更锋利的入口是 PR review。
@@ -2,7 +2,7 @@
2
2
 
3
3
  `ai-saas-guard` ships as a composite GitHub Action for pull request and code scanning workflows.
4
4
 
5
- Use `zr9959/ai-saas-guard@v0` for the latest compatible pre-1.0 Action. Use a specific tag such as `v0.23.0` or a reviewed commit SHA when reproducibility is more important than automatic minor updates.
5
+ Use `zr9959/ai-saas-guard@v0` for the latest compatible pre-1.0 Action. Use a specific tag such as `v0.24.0` or a reviewed commit SHA when reproducibility is more important than automatic minor updates.
6
6
 
7
7
  ## PR Summary
8
8
 
@@ -5,10 +5,10 @@
5
5
  ## Current State
6
6
 
7
7
  - Package name: `ai-saas-guard`
8
- - Current version: `0.23.0`
8
+ - Current version: `0.24.0`
9
9
  - npm registry state: published at <https://www.npmjs.com/package/ai-saas-guard>
10
10
  - First npm-published version: `0.1.1`
11
- - GitHub Release: `v0.23.0`
11
+ - GitHub Release: `v0.24.0`
12
12
  - Publish workflow: `.github/workflows/npm-publish.yml`
13
13
  - Trusted Publisher: GitHub Actions, `zr9959/ai-saas-guard`, workflow `npm-publish.yml`, allowed action `npm publish`
14
14
  - Long-lived npm publish token: not required
@@ -17,7 +17,7 @@
17
17
 
18
18
  Use GitHub Actions with npm Trusted Publisher/OIDC:
19
19
 
20
- 1. Create and review a release tag such as `v0.23.0`.
20
+ 1. Create and review a release tag such as `v0.24.0`.
21
21
  2. Publish from the GitHub Release or run the `Publish npm` workflow manually with `ref` set to that tag.
22
22
  3. Keep `permissions.id-token: write` in the workflow so npm can exchange the GitHub Actions OIDC identity for a short-lived publish credential.
23
23
  4. Run `npm publish --access public` from the workflow. Trusted publishing automatically generates provenance for this public package from this public repository.
@@ -69,6 +69,7 @@ Implemented surfaces:
69
69
  - hosted GitHub App contract helpers and tests for webhook intake order, webhook verification, installation token scoping, durable scan queue idempotency, compact reports, retention limits, uninstall cleanup, repeated cleanup idempotency, scoped deletion planning, operational release gate blocking, provider-independent service runtime orchestration, GitHub App deployment planning, hosted production adapter planning, Node/container app skeleton planning, hosted staging deployment planning, and local staging harness replay
70
70
  - GitHub issue templates for bug reports, false positives, false negatives, rule requests, and public-safe security reports
71
71
  - CODEOWNERS for source, tests, docs, workflows, Action, and package metadata
72
+ - repository trust hardening with `main` branch protection, required CI status checks, Dependabot for npm and GitHub Actions, CodeQL, private vulnerability reporting, secret scanning, and push protection
72
73
  - JSON output
73
74
  - SARIF output
74
75
  - composite GitHub Action wrapper
@@ -132,12 +133,15 @@ CI:
132
133
  - Workflow: `.github/workflows/ci.yml`
133
134
  - Runs on pull requests and pushes to `main`
134
135
  - Uses `permissions: contents: read`
135
- - Latest verified run for the hosted Check Run publication release succeeded
136
+ - Static workflow checks: `actionlint` and `zizmor`
137
+ - Code scanning workflow: `.github/workflows/codeql.yml`
138
+ - Dependabot config: `.github/dependabot.yml` with weekly schedules, bounded PR volume, and cooldown windows
139
+ - Latest verified run for the repository trust hardening release must succeed before publishing
136
140
 
137
141
  Publishing:
138
142
 
139
143
  - npm package: `ai-saas-guard`
140
- - Current release line: `v0.23.0`
144
+ - Current release line: `v0.24.0`
141
145
  - Publish workflow: `.github/workflows/npm-publish.yml`
142
146
  - Trusted Publisher: GitHub Actions for `zr9959/ai-saas-guard`, workflow `npm-publish.yml`
143
147
  - Long-lived npm publish tokens should not be required.
@@ -0,0 +1,77 @@
1
+ # Repository Trust Hardening
2
+
3
+ This document records the public repository controls used to keep `ai-saas-guard` releases reviewable and safer to consume.
4
+
5
+ These controls do not prove the project is secure. They reduce supply-chain and maintenance risk around the public CLI, GitHub Action, npm package, and future hosted service work.
6
+
7
+ ## Branch Protection
8
+
9
+ The `main` branch uses branch protection with:
10
+
11
+ - required status checks before merge
12
+ - strict status check freshness
13
+ - required pull request review for non-admin merges
14
+ - linear history
15
+ - force pushes disabled
16
+ - branch deletion disabled
17
+
18
+ Required status checks:
19
+
20
+ - `test`
21
+ - `actionlint`
22
+ - `zizmor`
23
+
24
+ Maintainer admin bypass is not enforced so emergency release repair remains possible, but normal contribution flow should use pull requests and CI.
25
+
26
+ ## Dependency Updates
27
+
28
+ Dependabot is configured in `.github/dependabot.yml`.
29
+
30
+ It covers:
31
+
32
+ - npm dependencies
33
+ - GitHub Actions
34
+
35
+ The schedule is weekly with cooldown windows and a small open pull request limit. This keeps update noise low while still surfacing security and maintenance updates.
36
+
37
+ Dependabot security updates and vulnerability alerts are enabled in repository settings.
38
+
39
+ ## CodeQL
40
+
41
+ CodeQL is configured in `.github/workflows/codeql.yml`.
42
+
43
+ The workflow:
44
+
45
+ - runs on pull requests
46
+ - runs on pushes to `main`
47
+ - runs on a weekly schedule
48
+ - analyzes JavaScript and TypeScript
49
+ - uses `build-mode: none`
50
+ - uses least-privilege permissions: repository contents read, Actions metadata read, and security event upload
51
+ - pins the CodeQL Action by commit SHA
52
+
53
+ CodeQL is an additional SAST signal. It does not replace `ai-saas-guard`'s release gate, local tests, workflow checks, self-scan, dependency audit, package inspection, or human review.
54
+
55
+ ## Vulnerability Intake
56
+
57
+ The repository has:
58
+
59
+ - `SECURITY.md`
60
+ - private vulnerability reporting enabled
61
+ - secret scanning enabled
62
+ - push protection enabled
63
+
64
+ Public issues should not include real credentials, customer data, private source code, or production URLs.
65
+
66
+ ## Release Impact
67
+
68
+ Every public release should keep these controls intact. If a release changes workflows, package metadata, Action behavior, or hosted service boundaries, the release notes should include fresh evidence for:
69
+
70
+ - local tests
71
+ - GitHub CI
72
+ - `actionlint`
73
+ - `zizmor`
74
+ - self-scan JSON and SARIF
75
+ - dependency audit
76
+ - npm package inspection
77
+ - packaged CLI smoke test
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-saas-guard",
3
- "version": "0.23.0",
3
+ "version": "0.24.0",
4
4
  "description": "Repo-local launch-readiness scanner for AI-built SaaS apps.",
5
5
  "type": "module",
6
6
  "homepage": "https://github.com/zr9959/ai-saas-guard#readme",