From 322741e00c330b8b9e841ebcdea9341aa3e8d409 Mon Sep 17 00:00:00 2001 From: Vishesh 'ironeagle' Bangotra Date: Wed, 21 Oct 2026 01:31:07 +0530 Subject: [PATCH] Document npm registry endpoints and auth gotchas Add the exact pip/npm registry endpoints and secret names, the scope-scoped (not global) registry requirement given Verdaccio's missing uplink, the host-scoped _auth rule, the per-item Drone shell caveat, and the Verdaccio storage uid/permissions gotcha behind the confusing "404 no such package available" error on publish. --- standards/lib/90_drone_pipelines/index.html | 9 +- standards/lib/93_library_registry/index.html | 94 ++++++++++++++++++++ standards/lib/search/search_index.json | 2 +- standards/mcp/modules/drone_pipelines.json | 2 +- standards/mcp/modules/library_registry.json | 2 +- standards/src/lib/90_drone_pipelines.md | 9 +- standards/src/lib/93_library_registry.md | 50 +++++++++++ 7 files changed, 161 insertions(+), 7 deletions(-) diff --git a/standards/lib/90_drone_pipelines/index.html b/standards/lib/90_drone_pipelines/index.html index 4db8b6d..60d822c 100644 --- a/standards/lib/90_drone_pipelines/index.html +++ b/standards/lib/90_drone_pipelines/index.html @@ -753,8 +753,13 @@ pipelines:

the disaster-recovery / replay path.

Secrets: NPM_REPO_URL, NPM_USERNAME, NPM_PASSWORD. Auth is a generated -.npmrc (registry= + _auth= base64 of user:pass) written from secrets at -runtime — the committed .npmrc in a repo only points at the registry URL.

+.npmrc written from secrets at runtime. It sets a scope-scoped registry, +never a global one — @aetoskia:registry=$NPM_REPO_URL — plus a host-scoped +auth line //<host>/:_auth=<base64(user:pass)>. The scope and host are derived +from package.json and NPM_REPO_URL respectively. A global registry= would +push public transitive deps through Verdaccio (which has no uplink) and 404 +npm install; a bare _auth= is rejected by modern npm. See +93 – Library Registry.