Skip to content

docs(plugins): plugin supply chain security — pinned refs required, SHA-256 integrity - #17

Merged
HongmingWang-Rabbit merged 1 commit into
mainfrom
docs/plugin-supply-chain-775
Apr 19, 2026
Merged

docs(plugins): plugin supply chain security — pinned refs required, SHA-256 integrity#17
HongmingWang-Rabbit merged 1 commit into
mainfrom
docs/plugin-supply-chain-775

Conversation

@molecule-ai

@molecule-ai molecule-ai Bot commented Apr 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Documents the breaking plugin supply chain hardening shipped in monorepo PR #775.

Breaking change for plugin users

github://owner/repo installs without a #tag or #sha ref now return HTTP 422. This is a breaking API change — any automation calling POST /workspaces/:id/plugins with a bare GitHub source must be updated.

Changes to content/docs/plugins.mdx

Two-Axis Model sources table — replaced the mutable github://owner/repo row with github:// (pinned tag) and github:// (SHA) rows, clarifying that pinned refs are the only valid form.

Installing a Plugin — updated the GitHub install example from the old unpinned form to #v1.0.0; added a <Callout type="warn"> immediately after explaining the 422 behavior and linking to the new security section.

Install Safeguards table — added PLUGIN_ALLOW_UNPINNED env var row with explicit "development use only" warning.

New ## Supply Chain Security section (SAFE-T1102) covering:

  • Pinned-ref enforcement: valid (#v1.2.3, #abc1234) vs invalid (bare repo) with HTTP 422
  • SHA-256 content integrity opt-in: request body sha256 field, verification behavior, mismatch → 422 + cleanup
  • Hash computation recipe so operators can pre-compute expected hashes from clean checkouts
  • PLUGIN_ALLOW_UNPINNED=true escape hatch for local development

Pairs with

  • Monorepo PR #775 — fix(security): plugin supply chain hardening — SAFE-T1102 (issue #768)
  • Monorepo PR #779 — TDD spec (tests only, no docs impact)
  • PLUGIN_ALLOW_UNPINNED env var also reflected in monorepo PR #785 (.env.example audit)

Test plan

  • GitHub install example shows #v1.0.0 pinned ref
  • Callout renders after GitHub example
  • PLUGIN_ALLOW_UNPINNED row appears in Install Safeguards table
  • Supply Chain Security section renders with correct code blocks
  • No unpinned github://owner/repo examples remain in the file

🤖 Generated with Claude Code

…integrity (PR #775)

- Two-Axis Model sources table: replace mutable `github://owner/repo` row with
  pinned-tag and pinned-SHA rows; clarify these are now the only valid forms
- Installing a Plugin: update GitHub example to use `#v1.0.0`; add Callout
  warning that bare refs return HTTP 422 with link to Supply Chain Security section
- Install Safeguards: add `PLUGIN_ALLOW_UNPINNED` env var row (dev escape hatch)
- New "Supply Chain Security" section: explains pinned-ref enforcement (SAFE-T1102),
  shows valid vs invalid ref forms, SHA-256 content integrity option with hash
  computation recipe, and PLUGIN_ALLOW_UNPINNED escape hatch

Pairs with monorepo PR #775 (fix(security): plugin supply chain hardening).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel

vercel Bot commented Apr 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview, Comment Apr 17, 2026 7:01pm

Request Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant