Conversation
Adding docs for upstream trust
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
Adds new documentation describing Cloudsmith’s “Upstream Trust” supply chain security feature, including how trust affects dependency resolution and how to configure trust status on upstreams.
Changes:
- Introduces a new “Upstream Trust” documentation page explaining trust evaluation and key behaviors (including cached/proxied package nuances).
- Adds multiple example scenarios showing how trusted/untrusted sources affect resolved versions.
- Documents configuration steps and clarifies package identity matching rules (scopes/qualifiers).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
mrtam
left a comment
There was a problem hiding this comment.
Approving in advance, just some spacing and formatting suggestions, plus suggestion of format scope
| import edit_upstream_trust from './images/security-scanning/edit_upstream_trust.png' | ||
|
|
||
| # Upstream Trust | ||
| Upstream trust is a supply chain security feature that prevents namesquatting attacks where bad actors hijack your internal package name in public repositories.By designating upstream sources as trusted or untrusted, you control which sources are permitted to serve versions of packages that exist in your private repository or other trusted sources. |
There was a problem hiding this comment.
| Upstream trust is a supply chain security feature that prevents namesquatting attacks where bad actors hijack your internal package name in public repositories.By designating upstream sources as trusted or untrusted, you control which sources are permitted to serve versions of packages that exist in your private repository or other trusted sources. | |
| Upstream trust is a supply chain security feature that prevents namesquatting attacks where bad actors hijack your internal package name in public repositories. By designating upstream sources as trusted or untrusted, you control which sources are permitted to serve versions of packages that exist in your private repository or other trusted sources. |
| Upstream trust is a supply chain security feature that prevents namesquatting attacks where bad actors hijack your internal package name in public repositories.By designating upstream sources as trusted or untrusted, you control which sources are permitted to serve versions of packages that exist in your private repository or other trusted sources. | ||
| This is particularly important for organizations that publish private packages alongside public open-source dependencies. Without upstream trust, a malicious actor could publish a package with the same name as your private package to a public registry, potentially tricking your build systems into pulling the attacker's version instead of your own. | ||
|
|
||
| <Note variant="important" headline="Early Access"> |
There was a problem hiding this comment.
It might be worth highlighting here that support for it rolls out gradually over formats, and begins today with NPM, Python, and Maven.
| This means your private packages are protected from namesquatting, while open-source packages that don't collide with your private package names continue to resolve without interruption. | ||
|
|
||
| <Note variant="note" headline="Proxied and cached packages"> | ||
| If a package has already been proxied or cached from a particular upstream, that upstream is permitted to continue serving versions of that package — even if it is marked as untrusted. The block only applies to other untrusted upstreams that have not previously served the package. This ensures that your existing open-source dependencies (such as requests or numpy proxied from PyPI) continue to resolve without disruption. |
There was a problem hiding this comment.
| If a package has already been proxied or cached from a particular upstream, that upstream is permitted to continue serving versions of that package — even if it is marked as untrusted. The block only applies to other untrusted upstreams that have not previously served the package. This ensures that your existing open-source dependencies (such as requests or numpy proxied from PyPI) continue to resolve without disruption. | |
| If a package has already been proxied or cached from a particular upstream, that upstream is permitted to continue serving versions of that package — even if it is marked as untrusted. The block only applies to other untrusted upstreams that have not previously served the package. This ensures that your existing open-source dependencies (such as `requests` or `numpy` proxied and cached from PyPI) continue to resolve without disruption. |
Adding content around upstream trust