@jentic/api-scorecard-cli 1.0.0-alpha.13 → 1.0.0-alpha.14

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.
Files changed (2) hide show
  1. package/README.md +33 -44
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -95,60 +95,49 @@ export JENTIC_API_KEY=mvp-preview
95
95
  This is a documented public placeholder for the alpha preview — not a secret. Real key issuance
96
96
  arrives in a future release.
97
97
 
98
- ## Supply-chain attestations
98
+ ## Enterprise-ready by default
99
99
 
100
- Each `@jentic/api-scorecard-cli` alpha release ships with two independent
101
- [Sigstore](https://www.sigstore.dev/)-signed attestations bound to the published tarball's
102
- SHA-256 digest. Both are produced inside the GitHub Actions release workflow (no human
103
- keyholder, no long-lived secrets) and are verifiable with the [GitHub CLI](https://cli.github.com/)
104
- ≥ 2.49.
100
+ For teams that need to know exactly what's running, verify exactly what was
101
+ shipped, and operate without runtime dependencies on us.
105
102
 
106
- | Attestation | Predicate type | What it claims | Where it lives |
107
- |---|---|---|---|
108
- | **npm provenance** | `https://slsa.dev/provenance/v1` | Where and how the tarball was built (workflow run, commit SHA, builder identity) | npm registry record + GitHub attestations index |
109
- | **SPDX SBOM** | `https://spdx.dev/Document/v2.3` | The runtime dependency closure of the published tarball, in [SPDX 2.3](https://spdx.github.io/spdx-spec/v2.3/) form | GitHub attestations index |
103
+ ### Auditable end to end
110
104
 
111
- Both attestations are present from **`1.0.0-alpha.11`** onward; earlier alphas have provenance
112
- only (the SBOM attestation pipeline reached parity with the registry-served bytes in alpha.11).
105
+ Every component in the scoring stack runner, CLI, release pipeline, and
106
+ engine is Apache 2.0 licensed and source-readable. No proprietary blobs,
107
+ no closed-source shims. Read the code that's about to grade your specs
108
+ before you adopt it; audit any line, redistribute under the license terms,
109
+ fork if you ever need to.
113
110
 
114
- ### Verify a release
111
+ ### Signed for regulated environments
115
112
 
116
- ```bash
117
- # 1. Download the published tarball
118
- npm pack @jentic/api-scorecard-cli@alpha
119
-
120
- # 2. Verify the npm provenance (gh's default predicate type)
121
- gh attestation verify ./jentic-api-scorecard-cli-*.tgz --owner jentic
122
-
123
- # 3. Verify the SPDX SBOM (non-default predicate type, must be requested explicitly)
124
- gh attestation verify ./jentic-api-scorecard-cli-*.tgz --owner jentic \
125
- --predicate-type https://spdx.dev/Document/v2.3
126
- ```
113
+ Every npm tarball and every GHCR image is signed by [Sigstore](https://www.sigstore.dev/)
114
+ with SLSA provenance and an SPDX SBOM. Signing happens inside an OIDC-driven
115
+ GitHub Actions workflow with no long-lived publishing secrets — there is no
116
+ `NPM_TOKEN`, no PAT, and no human keyholder in the release chain. One command
117
+ verifies an artifact end-to-end before you install it:
127
118
 
128
- Each successful run reports `Loaded digest sha256:…` and lists the matched attestation.
119
+ - **[npm package supply chain →](https://github.com/jentic/jentic-api-scorecard/blob/main/docs/supply-chain-npm.md)**
120
+ npm provenance, SPDX SBOM, trusted publishing, and the `gh attestation verify` recipes.
121
+ - **[Docker image supply chain →](https://github.com/jentic/jentic-api-scorecard/blob/main/docs/supply-chain-docker.md)** —
122
+ per-platform SBOMs, dual-store attestations (BuildKit OCI referrers + Sigstore), and
123
+ verification via either `docker buildx imagetools inspect` or `gh attestation verify`.
129
124
 
130
- ### Download the SBOM
125
+ ### Runs anywhere, calls home nowhere
131
126
 
132
- `gh attestation verify` proves authenticity but doesn't print the SPDX document itself. The
133
- SBOM is embedded as the `predicate` of the verified in-toto statement; extract it with
134
- `--format json` and pipe through `jq`:
135
-
136
- ```bash
137
- gh attestation verify ./jentic-api-scorecard-cli-*.tgz --owner jentic \
138
- --predicate-type https://spdx.dev/Document/v2.3 \
139
- --format json \
140
- | jq '.[0].verificationResult.statement.predicate' \
141
- > sbom.spdx.json
142
- ```
127
+ The image is a closed system at scoring time: every Python wheel, Node.js
128
+ binary, and validator tarball it needs is baked in at build time. Scoring does
129
+ not call PyPI, npmjs, a Jentic backend, or any external service. Local-file
130
+ inputs and bundled-URL inputs run fully offline; URL inputs make exactly one
131
+ outbound request — fetching the OpenAPI document itself. Multi-arch images
132
+ (linux/amd64 + linux/arm64) ship from the same release, so the same guarantees
133
+ hold on Apple Silicon dev machines, ARM CI runners, and x86 servers alike.
143
134
 
144
- `sbom.spdx.json` is a complete SPDX 2.3 document — the document root carries the published
145
- package's purl (`pkg:npm/@jentic/api-scorecard-cli@<version>`) and the `packages` array
146
- enumerates every runtime dependency with its exact resolved version. Feed it directly to any
147
- SPDX-aware tool ([Trivy](https://trivy.dev/), [Grype](https://github.com/anchore/grype),
148
- [OSV-Scanner](https://github.com/google/osv-scanner)).
135
+ ### Pinned for reproducibility
149
136
 
150
- Tying download to verification is deliberate: the recipe above succeeds only if the signature
151
- checks out, so you never end up with bytes that didn't pass the trust check.
137
+ CLI version, image tag, and engine version are locked one-to-one. Pinning
138
+ `@jentic/api-scorecard-cli@<version>` resolves to a specific image tag, which
139
+ in turn pins an exact engine release and exact validator versions. Last
140
+ month's score is reproducible from last month's pin.
152
141
 
153
142
  ## Status
154
143
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jentic/api-scorecard-cli",
3
- "version": "1.0.0-alpha.13",
3
+ "version": "1.0.0-alpha.14",
4
4
  "description": "Score an OpenAPI document against the Jentic API AI Readiness Framework (JAIRF).",
5
5
  "keywords": [
6
6
  "api",
@@ -62,5 +62,5 @@
62
62
  "engines": {
63
63
  "node": ">=20.10.0"
64
64
  },
65
- "gitHead": "5d4db43181cccd072483e467d3a7540402261e4d"
65
+ "gitHead": "b2b74602da852368933427c0bac0a431f1b910b1"
66
66
  }