Repository navigation
Closed
Description
Summary
JFrog CLI now natively supports pnpm via jf pnpm (install/publish with build-info tracking). We should add pnpm as a first-class package manager to the jfrog-token and jfrog-oauth modules in coder/registry, alongside the existing npm, go, pypi, docker, conda, and maven support.
References
- JFrog CLI PR: Support pnpm command for jfrog-cli jfrog/jfrog-cli#3390
- jfrog-cli-artifactory PR: Support pnpm command jfrog/jfrog-cli-artifactory#393
- Shipped in: https://github.com/jfrog/jfrog-cli/releases/tag/v2.98.0
- Docs: https://docs.jfrog.com/artifactory/docs/use-pnpm-with-jfrog-cli
- Supported versions (pnpm 10.x / 11.x, 11.x requires jf CLI >= 2.116.0): https://docs.jfrog.com/artifactory/docs/package-manager-compatibility-matrix
Requirements
- pnpm 10.x or 11.x (11.x needs JFrog CLI >= 2.116.0)
- Node.js 20+
- An npm-type Artifactory repository (reused for pnpm)
.npmrcwith registry URL + auth (same file pnpm reads)
Proposed changes
Apply to both registry/coder/modules/jfrog-token and registry/coder/modules/jfrog-oauth:
- Extend the
package_managersvariable with a new optionalpnpmlist:pnpm = optional(list(string), [])
- Reuse the existing
.npmrc.tftpltemplate for pnpm (same registry + auth format). If bothnpmandpnpmare provided pointing to different repos, decide behavior: either (a) require they resolve to the same repo, or (b) generate a merged.npmrcwith the pnpm entries scoped appropriately. - In
run.sh, add apnpmblock mirroring thenpmblock:Note: verify the exact config subcommand name (if [ -z "${HAS_PNPM}" ]; then not_configured pnpm else echo "📦 Configuring pnpm..." jf pnpmc --global --repo-resolve "${REPOSITORY_PNPM}" cat << EOF > ~/.npmrc ${NPMRC} EOF config_complete fi
jf pnpmcvsjf pnpm-config) against the shipped CLI. - Pass
HAS_PNPM,REPOSITORY_PNPMinto thetemplatefile(...)call inmain.tf. - Update
README.mdexamples to includepnpm = ["npm-local"](or a dedicated repo) and showjf pnpm install <pkg>usage. - Add a
pnpmcase in*.tftest.hclto assert the script contains thejf pnpmcinvocation. - Bump module versions and note the new input in the changelog/README.
Notes / open questions
- pnpm uses the same npm-type Artifactory repo, so we may not need a separate variable — but a dedicated
pnpmkey keeps the UX consistent and future-proofs it if JFrog diverges. - The module doesn't install pnpm itself (matches existing behavior for
npm,go, etc.) — document this in the README. - Confirm minimum
jfCLI version we should recommend (>= 2.98.0 for pnpm 10.x, >= 2.116.0 for pnpm 11.x).
Created on behalf of @matifali
Metadata
Metadata
Assignees
Labels
No labels
Activity
linear-code commentedon Aug 24, 2026
ENG-3273
feat(jfrog): add pnpm package manager support (coder#1078)