Skip to content

Commit 2f826ed

Browse files
s-stumboclaude
andcommitted
Note required entitlement and pull permission for libraries commands
Document that chainctl libraries update-hashes and verify each require an ecosystem entitlement and the matching libraries.<ecosystem>.pull permission, adding a note at each procedure step across the Python, JavaScript, and Java libraries guides. Auto-generated chainctl reference pages are excluded. Also fix a copy-paste error on the Python global-configuration page that referred to "JavaScript lockfile formats." Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 1b9a401 commit 2f826ed

10 files changed

Lines changed: 39 additions & 12 deletions

File tree

content/chainguard/libraries/java/build-configuration.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ linktitle: "Build configuration"
44
description: "Configuring Chainguard Libraries for Java on your workstation"
55
type: "article"
66
date: 2025-03-25T08:04:00+00:00
7-
lastmod: 2026-08-03T18:16:45+00:00
7+
lastmod: 2026-08-05T18:42:36+00:00
88
draft: false
99
tags: ["Chainguard Libraries", "Java"]
1010
menu:
@@ -536,6 +536,8 @@ dependency added in the example project can be found at:
536536

537537
To verify the artifact was built by Chainguard, use `chainctl`:
538538

539+
> **Note**: Running `chainctl libraries verify` requires an [entitlement to Chainguard Libraries](/chainguard/libraries/access/#entitlement) for Java and the `libraries.java.pull` permission.
540+
539541
```bash
540542
chainctl libraries verify \
541543
~/.m2/repository/com/google/guava/guava/33.4.0-jre/guava-33.4.0-jre.jar
@@ -779,6 +781,8 @@ find ~/.gradle/caches/modules-2/files-2.1/com.google.guava/guava -name "*.jar" |
779781

780782
Then copy the exact path to the jar and verify it with `chainctl`:
781783

784+
> **Note**: Running `chainctl libraries verify` requires an [entitlement to Chainguard Libraries](/chainguard/libraries/access/#entitlement) for Java and the `libraries.java.pull` permission.
785+
782786
```bash
783787
chainctl libraries verify --parent your-org /full/path/to/guava-<version>.jar
784788
```

content/chainguard/libraries/java/migration.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ type: "article"
44
linktitle: "Migrate to Chainguard"
55
description: "How to migrate an existing Java project to pull dependencies from Chainguard Libraries"
66
date: 2026-07-02T00:00:00+00:00
7-
lastmod: 2026-08-03T18:16:45+00:00
7+
lastmod: 2026-08-05T18:42:36+00:00
88
tags: ["Chainguard Libraries", "Java"]
99
menu:
1010
docs:
@@ -505,6 +505,8 @@ If all artifacts download from Central, your credentials may be invalid or expir
505505

506506
To check whether a specific artifact was built by Chainguard, use `chainctl libraries verify /full/path/to/artifact.jar`. Verify artifacts immediately after a clean build, before any repackaging.
507507

508+
> **Note**: Running `chainctl libraries verify` requires an [entitlement to Chainguard Libraries](/chainguard/libraries/access/#entitlement) for Java and the `libraries.java.pull` permission.
509+
508510
When upstream fallback is enabled, [packages that aren't built by Chainguard] are subject to Chainguard's security controls.
509511

510512
{{< tabs >}}

content/chainguard/libraries/javascript/build-configuration.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ linktitle: "Build configuration"
44
description: "Configuring Chainguard Libraries for JavaScript on your workstation"
55
type: "article"
66
date: 2025-06-05T09:00:00+00:00
7-
lastmod: 2026-08-03T18:16:45+00:00
7+
lastmod: 2026-08-05T18:42:36+00:00
88
draft: false
99
tags: ["Chainguard Libraries", "JavaScript"]
1010
menu:
@@ -84,6 +84,8 @@ Learn more in the [JavaScript migration guide](/chainguard/libraries/javascript/
8484
`update-hashes` fetches checksums from Chainguard Libraries,
8585
which requires authentication. Where it fetches from depends on your environment: some setups authenticate directly to `libraries.cgr.dev`, but if your build routes through a repository manager configured as a pull-through proxy for Chainguard Libraries, point `update-hashes` there instead with `--registry-url` so it validates against the same source your build used.
8686

87+
> **Note**: Running `chainctl libraries update-hashes` requires an [entitlement to Chainguard Libraries](/chainguard/libraries/access/#entitlement) for JavaScript and the `libraries.javascript.pull` permission.
88+
8789
Authenticating to `libraries.cgr.dev` directly:
8890

8991
- **Logged in locally**: Run the command while authenticated; if you have no

content/chainguard/libraries/javascript/global-configuration.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ linktitle: "Global configuration"
44
description: "Configuring Chainguard Libraries for JavaScript in your organization"
55
type: "article"
66
date: 2025-06-05T09:00:00+00:00
7-
lastmod: 2026-07-29T13:35:56+00:00
7+
lastmod: 2026-08-05T18:42:36+00:00
88
draft: false
99
tags: ["Chainguard Libraries", "JavaScript"]
1010
images: []
@@ -72,6 +72,8 @@ this page follow this pattern.
7272
If you are migrating an existing JavaScript project to Chainguard Libraries through a repository manager, your lockfile likely contains integrity hashes generated against packages previously downloaded from npm or through your repository manager. The [`chainctl libraries update-hashes` command](/chainguard/chainctl/chainctl-docs/chainctl_libraries_update-hashes/) automates lockfile hash updates
7373
for all supported JavaScript lockfile formats.
7474

75+
> **Note**: Running `chainctl libraries update-hashes` requires an [entitlement to Chainguard Libraries](/chainguard/libraries/access/#entitlement) for JavaScript and the `libraries.javascript.pull` permission.
76+
7577
When you are using a repository manager, pass the full repository manager URL with `--registry-url` and authenticate with one of the supported methods: `--username` and `--password`, `--token`, or a `.netrc` entry for the registry host. For example:
7678

7779
```bash

content/chainguard/libraries/javascript/migration.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ type: "article"
44
linktitle: "Migrate to Chainguard"
55
description: "How to migrate an existing JavaScript project to pull dependencies from Chainguard Libraries"
66
date: 2026-06-01T00:00:00+00:00
7-
lastmod: 2026-08-03T18:16:45+00:00
7+
lastmod: 2026-08-05T18:42:36+00:00
88
tags: ["Chainguard Libraries", "JavaScript"]
99
menu:
1010
docs:
@@ -402,6 +402,8 @@ Chainguard's artifacts, without regenerating the lockfile from scratch. This
402402
preserves your pinned dependency versions. Supported formats include `package-lock.json` (npm v2/v3), `yarn.lock` (Yarn
403403
Classic and Berry), `pnpm-lock.yaml`, and `bun.lock`.
404404

405+
> **Note**: Running `chainctl libraries update-hashes` requires an [entitlement to Chainguard Libraries](/chainguard/libraries/access/#entitlement) for JavaScript and the `libraries.javascript.pull` permission.
406+
405407
Run the command in the directory containing the lockfile:
406408

407409
```shell
@@ -632,6 +634,8 @@ their directory structure.
632634

633635
When upstream fallback is enabled, [packages that aren't built by Chainguard](#packages-not-available-in-chainguard-libraries) are subject to Chainguard's security controls.
634636

637+
> **Note**: Running `chainctl libraries verify` requires an [entitlement to Chainguard Libraries](/chainguard/libraries/access/#entitlement) for JavaScript and the `libraries.javascript.pull` permission.
638+
635639
{{< tabs >}}
636640

637641
{{% tab title="npm" %}}

content/chainguard/libraries/python/build-configuration.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ linktitle: "Build configuration"
44
description: "Configuring Chainguard Libraries for Python on your workstation"
55
type: "article"
66
date: 2025-03-25T08:04:00+00:00
7-
lastmod: 2026-08-03T18:16:45+00:00
7+
lastmod: 2026-08-05T18:42:36+00:00
88
draft: false
99
tags: ["Chainguard Libraries", "Python"]
1010
menu:
@@ -165,6 +165,8 @@ The [`chainctl libraries update-hashes` command](/chainguard/chainctl/chainctl-d
165165

166166
Supported formats include `requirements.txt` (pip-tools `--hash` style), `poetry.lock`, `uv.lock`, `pdm.lock`, `Pipfile.lock`, and `pylock.toml`.
167167

168+
> **Note**: Running `chainctl libraries update-hashes` requires an [entitlement to Chainguard Libraries](/chainguard/libraries/access/#entitlement) for Python and the `libraries.python.pull` permission.
169+
168170
Run the command in your project directory to auto-detect the lockfile:
169171

170172
```bash

content/chainguard/libraries/python/global-configuration.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ linktitle: "Global configuration"
44
description: "Configuring Chainguard Libraries for Python in your organization"
55
type: "article"
66
date: 2025-03-25T08:04:00+00:00
7-
lastmod: 2026-08-03T18:16:45+00:00
7+
lastmod: 2026-08-05T18:42:36+00:00
88
draft: false
99
tags: ["Chainguard Libraries", "Python"]
1010
images: []
@@ -69,7 +69,9 @@ However, if you intentionally want to manage fallback ordering yourself, you can
6969
### Updating lockfile hashes
7070

7171
If you are migrating an existing Python project to Chainguard Libraries through a repository manager, your lockfile likely contains integrity hashes generated against packages previously downloaded from PyPI or through your repository manager. The [`chainctl libraries update-hashes` command](/chainguard/chainctl/chainctl-docs/chainctl_libraries_update-hashes/) automates lockfile hash updates
72-
for all supported JavaScript lockfile formats.
72+
for all supported Python lockfile formats.
73+
74+
> **Note**: Running `chainctl libraries update-hashes` requires an [entitlement to Chainguard Libraries](/chainguard/libraries/access/#entitlement) for Python and the `libraries.python.pull` permission.
7375
7476
When you are using a repository manager, pass the full repository manager URL with `--registry-url` and authenticate with one of the supported methods: `--username` and `--password`, `--token`, or a `.netrc` entry for the registry host. For example:
7577

content/chainguard/libraries/python/migration.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ type: "article"
44
linktitle: "Migrate to Chainguard"
55
description: "How to migrate an existing Python project to pull dependencies from Chainguard Libraries"
66
date: 2026-07-14T00:00:00+00:00
7-
lastmod: 2026-07-31T18:47:05+00:00
7+
lastmod: 2026-08-05T18:42:36+00:00
88
tags: ["Chainguard Libraries", "Python"]
99
menu:
1010
docs:
@@ -312,6 +312,8 @@ Your existing lockfile or hash-pinned `requirements.txt` contains checksums gene
312312

313313
Use `chainctl libraries update-hashes` to rewrite only the integrity hashes in your existing lockfile or requirements file to match Chainguard's artifacts, without re-resolving your dependency graph. Supported formats include `requirements.txt`, `poetry.lock`, `uv.lock`, `pdm.lock`, `Pipfile.lock`, and `pylock.toml`.
314314

315+
> **Note**: Running `chainctl libraries update-hashes` requires an [entitlement to Chainguard Libraries](/chainguard/libraries/access/#entitlement) for Python and the `libraries.python.pull` permission.
316+
315317
Run the following command to auto-detect and update the lockfile in the current project:
316318

317319
```bash
@@ -445,6 +447,8 @@ poetry install
445447

446448
After reinstalling, you can use `chainctl` to verify which dependencies are built by Chainguard. When upstream fallback is enabled, [libraries that aren't built by Chainguard](#packages-not-available-in-chainguard-libraries) are subject to Chainguard's security controls.
447449

450+
> **Note**: Running `chainctl libraries verify` requires an [entitlement to Chainguard Libraries](/chainguard/libraries/access/#entitlement) for Python and the `libraries.python.pull` permission.
451+
448452
{{< tabs >}}
449453

450454
{{% tab title="pip and uv" %}}

content/chainguard/libraries/quickstart.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ linktitle: "Quick Start"
44
description: "Learn how to get started with Chainguard Libraries"
55
type: "article"
66
date: 2025-03-25T00:08:04+00:00
7-
lastmod: 2026-08-03T18:16:45+00:00
7+
lastmod: 2026-08-05T18:42:36+00:00
88
draft: false
99
tags: ["Chainguard Libraries"]
1010
menu:
@@ -255,6 +255,8 @@ Check out minimal example projects for
255255

256256
After setup, you can verify which dependencies were built from source by Chainguard:
257257

258+
> **Note**: Running `chainctl libraries verify` requires an [entitlement to Chainguard Libraries](/chainguard/libraries/access/#entitlement) for the ecosystem you're verifying and the matching pull permission (`libraries.java.pull`, `libraries.javascript.pull`, or `libraries.python.pull`).
259+
258260
```bash
259261
chainctl libraries verify /path/to/artifact
260262
```

content/chainguard/libraries/verification.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ description:
66
Libraries using the chainctl tool for enhanced supply chain security"
77
type: "article"
88
date: 2025-07-03T12:00:00+00:00
9-
lastmod: 2026-08-03T18:16:45+00:00
9+
lastmod: 2026-08-05T18:42:36+00:00
1010
draft: false
1111
tags: ["Chainguard Libraries"]
1212
menu:
@@ -51,7 +51,10 @@ You also need:
5151
- A Linux, macOS, or Windows system (x86_64 or arm64)
5252
- Sufficient [network access](/chainguard/libraries/network-requirements/)
5353
- Your organization [must include entitlement for access to Chainguard
54-
Libraries](/chainguard/libraries/access/#entitlement)
54+
Libraries](/chainguard/libraries/access/#entitlement) for the ecosystem you're
55+
verifying, and your identity must have the matching pull permission
56+
(`libraries.java.pull`, `libraries.javascript.pull`, or
57+
`libraries.python.pull`)
5558

5659
Confirm that `chainctl` and `cosign` are installed and available on the `PATH`
5760
with the following commands:

0 commit comments

Comments
 (0)