From 33ca63171850770730b51964ac16cefb81e86932 Mon Sep 17 00:00:00 2001 From: coreybutler <770982+coreybutler@users.noreply.github.com> Date: Wed, 28 Oct 2026 23:44:46 -0500 Subject: [PATCH 1/2] docs: cooldown force-only Governance; complete NVM4313 refuse list Cooldown exists on Community and Certified. Only HKLM policy force needs Governance. NVM4313 also refuses ProgramData and drive roots. --- docs/cfg/core.md | 2 +- docs/features/modes.md | 4 ++-- docs/guide/builds/index.md | 4 ++-- docs/troubleshooting/error-codes.md | 2 +- i18n/ru/docusaurus-plugin-content-docs/current/cfg/core.md | 2 +- .../docusaurus-plugin-content-docs/current/features/modes.md | 4 ++-- .../current/guide/builds/index.md | 4 ++-- .../current/troubleshooting/error-codes.md | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/cfg/core.md b/docs/cfg/core.md index da0d1ba..1bb85b0 100644 --- a/docs/cfg/core.md +++ b/docs/cfg/core.md @@ -28,7 +28,7 @@ Use `nvm config docs --json` for machine-readable metadata. | Option | Default | Values | Description | |--------|---------|--------|-------------| | `mode` | `shim` | `shim`, `link` | Specifies how Node.js commands and versions are managed, either through shim-based routing or direct junction/symlink linking. Same as `nvm use shim`/`nvm use link`. See [Operating Modes](../features/modes). | -| `root` | `%LOCALAPPDATA%\Author Software\nvm\installs` | Directory path | Root directory where Node.js versions are installed. Default path is writable by the installing user. Other users cannot write it (**NVM4305**). Set `InstallRoot` to a locked directory when versions must be immutable. Changing this does not move existing installs; migrate files yourself or reinstall versions. Windows, Program Files, profile folders, the NVM program folder, and parents of those paths are refused (**NVM4313**). | +| `root` | `%LOCALAPPDATA%\Author Software\nvm\installs` | Directory path | Root directory where Node.js versions are installed. Default path is writable by the installing user. Other users cannot write it (**NVM4305**). Set `InstallRoot` to a locked directory when versions must be immutable. Changing this does not move existing installs; migrate files yourself or reinstall versions. Windows, Program Files, ProgramData, profile folders, the NVM program folder, drive roots (for example `C:\`), and parents of those paths are refused (**NVM4313**). | ## Downloads and mirrors diff --git a/docs/features/modes.md b/docs/features/modes.md index b2e03e6..c58873b 100644 --- a/docs/features/modes.md +++ b/docs/features/modes.md @@ -55,10 +55,10 @@ Shim mode features: - Lockdown Node.js/V8 permissions. (Optional) _Requires Certified Builds with the Governance add-on._ - Publisher trust: Verifies node.exe publisher to prevent untrusted node.exe swaps. - Native event logging. -- Unified/configurable cooldown periods across all major package managers (npm/npx/yarn/pnpm). _Requires the Governance add-on, available September 2026._ +- Unified/configurable cooldown periods across all major package managers (npm/npx/yarn/pnpm). Community Builds default to off. Certified Builds default to 2 days. Users can change either. Forcing the value from machine policy requires the Governance add-on. :::tip[Certified Builds] -Shim **V8 / permission lockdown** (`EnforcePermissionModel`, `FreezeV8GlobalObjects`, `DisableEvalAndStringExecution`) and package-manager **cooldown** are Governance features. See [registry policy](../cfg/registry) and [Choosing an Edition](../guide/builds/). +Shim **V8 / permission lockdown** (`EnforcePermissionModel`, `FreezeV8GlobalObjects`, `DisableEvalAndStringExecution`) is a Governance feature. Package-manager **cooldown** is not. Governance can force the cooldown from machine policy. See [registry policy](../cfg/registry) and [Choosing an Edition](../guide/builds/). ::: :::info diff --git a/docs/guide/builds/index.md b/docs/guide/builds/index.md index 869e8c9..0e2bd1d 100644 --- a/docs/guide/builds/index.md +++ b/docs/guide/builds/index.md @@ -40,7 +40,7 @@ Additional capabilties are available as add-ons: |:-|:-| |**Advanced Logging**|Structured logging for SIEM integration.| |**Trust Artifacts**|SBOM, provenance, and VEX reports.| -|**Governance**|Central policy management (ADMX/ADML + GPO/Entra scripts), advanced proxy support (IWA, WPAD/PAC), Node.js mirror (mirror.author.io), version firewall, shim-enforced Node.js permissions, unified package manager cooldown (npm/npx/pnpm/yarn), and air-gap/local installations.| +|**Governance**|Central policy management (ADMX/ADML + GPO/Entra scripts), advanced proxy support (IWA, WPAD/PAC), Node.js mirror (mirror.author.io), version firewall, shim-enforced Node.js permissions, force the package-manager cooldown from machine policy (npm/npx/pnpm/yarn), and air-gap/local installations.| ### Code Signing Authority @@ -70,7 +70,7 @@ The Governance package for certified builds introduce policy management. With th - Utilize corporate proxies (IWA, PAC/WPAD). - Block unapproved Node.js Versions (i.e. EOL, vulnerable, or unstable versions). -- Require custom npm/npx/yarn/pnpm cooldown periods. +- Force npm/npx/yarn/pnpm cooldown periods from machine policy. - Enforce Node.js permission model (`--permission` / `--experimental-permission`) so shimmed `node` starts default-deny; npm/npx/pnpm lifecycle scripts inherit the same flags via `npm_config_node_options` when the policy is on. Apps must pass `--allow-*` at runtime. - Freeze V8 intrinsics (`--frozen-intrinsics`) to prevent prototype pollution of built-ins (also applied to npm/npx/pnpm scripts when the policy is on). - Disallow `eval()` / `new Function()` (`--disallow-code-generation-from-strings`) (also applied to npm/npx/pnpm scripts when the policy is on). diff --git a/docs/troubleshooting/error-codes.md b/docs/troubleshooting/error-codes.md index f91ee31..8d608b4 100644 --- a/docs/troubleshooting/error-codes.md +++ b/docs/troubleshooting/error-codes.md @@ -23,7 +23,7 @@ NVM for Windows uses stable `NVM####` codes in CLI messages, shim/proxy output, | **NVM4309** | Auto-install could not start nvm.exe | `nvm.exe` was found, but the process did not start. The message includes that path | | **NVM4310** | Auto-install command failed | `nvm install ` exited with a non-zero code. The message includes that code. Output from `nvm.exe` is still shown | | **NVM4311** | Auto-install did not leave a usable Node.js | `nvm install` returned success, but the shim still cannot resolve that version | -| **NVM4313** | Node.js storage path refused | `nvm config set root=` or the installer Node-storage page chose Windows, Program Files, a profile folder, the NVM program folder, or a parent of those paths. Uninstall also skips deleting that path. Use a dedicated directory such as `%LOCALAPPDATA%\Author Software\nvm\installs` | +| **NVM4313** | Node.js storage path refused | `nvm config set root=` or the installer Node-storage page chose Windows, Program Files, ProgramData, a profile folder, the NVM program folder, a drive root (for example `C:\`), or a parent of those paths. Uninstall also skips deleting that path. Use a dedicated directory such as `%LOCALAPPDATA%\Author Software\nvm\installs` | | **NVM4314** | `node.exe` FileVersion does not match the install folder | Full verify (cache miss) compared PE VERSIONINFO FileVersion to the folder core version (major.minor.patch). Example: Node 10 dropped into `v24.0.0`. Missing VERSIONINFO on an existing `node.exe` also fails. Reinstall with `nvm install --force` | | **NVM4401** | Firewall remote authority unauthorized | HTTPS policy URL returned **401**; the remote denied access for this user/client | | **NVM4402** | Firewall remote validation failed | HTTPS policy URL TLS failure, unexpected HTTP status, or helper spawn/config error | diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/cfg/core.md b/i18n/ru/docusaurus-plugin-content-docs/current/cfg/core.md index e614836..bd5542e 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/cfg/core.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/cfg/core.md @@ -28,7 +28,7 @@ nvm config docs | Параметр | По умолчанию | Значения | Описание | |--------|---------|--------|-------------| | `mode` | `shim` | `shim`, `link` | Определяет, как управляются команды и версии Node.js: через маршрутизацию shim или прямые junction/symlink. То же, что `nvm use shim`/`nvm use link`. См. [Режимы работы](../features/modes). | -| `root` | `%LOCALAPPDATA%\Author Software\nvm\installs` | Путь к каталогу | Корневой каталог установки версий Node.js. Путь по умолчанию доступен для записи устанавливающему пользователю. Другие пользователи писать не могут (**NVM4305**). Задайте `InstallRoot` в заблокированный каталог, если версии должны быть неизменяемыми. Изменение не переносит существующие установки — перенесите файлы вручную или переустановите версии. Windows, Program Files, папки профиля, папка программы NVM и родители этих путей отклоняются (**NVM4313**). | +| `root` | `%LOCALAPPDATA%\Author Software\nvm\installs` | Путь к каталогу | Корневой каталог установки версий Node.js. Путь по умолчанию доступен для записи устанавливающему пользователю. Другие пользователи писать не могут (**NVM4305**). Задайте `InstallRoot` в заблокированный каталог, если версии должны быть неизменяемыми. Изменение не переносит существующие установки — перенесите файлы вручную или переустановите версии. Windows, Program Files, ProgramData, папки профиля, папка программы NVM, корни дисков (например `C:\`) и родители этих путей отклоняются (**NVM4313**). | ## Загрузки и зеркала \{#downloads-and-mirrors} diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/features/modes.md b/i18n/ru/docusaurus-plugin-content-docs/current/features/modes.md index 4456877..499a594 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/features/modes.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/features/modes.md @@ -55,10 +55,10 @@ NVM for Windows v2 не пытается повысить права (то ес - Ограничение прав Node.js/V8. (Опционально) _Требует Certified Builds с дополнением Governance._ - Доверие издателю: проверка издателя node.exe, чтобы предотвратить подмену недоверенным node.exe. - Нативное журналирование событий. -- Единые/настраиваемые периоды cooldown для всех основных менеджеров пакетов (npm/npx/yarn/pnpm). _Требует дополнение Governance, доступно с сентября 2026._ +- Единые/настраиваемые периоды cooldown для всех основных менеджеров пакетов (npm/npx/yarn/pnpm). Community Builds по умолчанию выключены. Certified Builds по умолчанию 2 дня. Пользователи могут менять любое значение. Принудительная установка из машинной политики требует дополнение Governance. :::tip[Certified Builds] -**Ограничение прав V8 / permission lockdown** в shim (`EnforcePermissionModel`, `FreezeV8GlobalObjects`, `DisableEvalAndStringExecution`) и **cooldown** менеджеров пакетов — функции Governance. См. [политику реестра](../cfg/registry) и [Выбор редакции](../guide/builds/). +**Ограничение прав V8 / permission lockdown** в shim (`EnforcePermissionModel`, `FreezeV8GlobalObjects`, `DisableEvalAndStringExecution`) — функция Governance. **Cooldown** менеджеров пакетов — нет. Governance может принудительно задать cooldown из машинной политики. См. [политику реестра](../cfg/registry) и [Выбор редакции](../guide/builds/). ::: :::info diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/guide/builds/index.md b/i18n/ru/docusaurus-plugin-content-docs/current/guide/builds/index.md index 31372f6..f8be035 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/guide/builds/index.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/guide/builds/index.md @@ -35,7 +35,7 @@ Certified-сборки рассчитаны на команды и органи |:-|:-| |**Advanced Logging**|Структурированное журналирование для интеграции с SIEM.| |**Trust Artifacts**|SBOM, provenance и отчёты VEX.| -|**Governance**|Централизованное управление политиками (ADMX/ADML + GPO/Entra-скрипты), расширенная поддержка прокси (IWA, WPAD/PAC), зеркало Node.js (mirror.author.io), version firewall, принудительные права Node.js через shim, единый cooldown для менеджеров пакетов (npm/npx/pnpm/yarn) и air-gap/локальные установки.| +|**Governance**|Централизованное управление политиками (ADMX/ADML + GPO/Entra-скрипты), расширенная поддержка прокси (IWA, WPAD/PAC), зеркало Node.js (mirror.author.io), version firewall, принудительные права Node.js через shim, принудительный cooldown менеджеров пакетов из машинной политики (npm/npx/pnpm/yarn) и air-gap/локальные установки.| ### Центр сертификации подписи кода @@ -65,7 +65,7 @@ NVM for Windows распространяется компанией Author Softw - Использовать корпоративные прокси (IWA, PAC/WPAD). - Блокировать неутверждённые версии Node.js (EOL, уязвимые или нестабильные). -- Задавать пользовательские cooldown для npm/npx/yarn/pnpm. +- Принудительно задавать cooldown npm/npx/yarn/pnpm из машинной политики. - Применять модель прав Node.js (`--permission` / `--experimental-permission`), чтобы shim-`node` стартовал с default-deny; lifecycle-скрипты npm/npx/pnpm наследуют те же флаги через `npm_config_node_options`, когда политика включена. Приложениям нужно передавать `--allow-*` при запуске. - Замораживать intrinsics V8 (`--frozen-intrinsics`), чтобы предотвратить загрязнение прототипов встроенных объектов (также для скриптов npm/npx/pnpm при включённой политике). - Запрещать `eval()` / `new Function()` (`--disallow-code-generation-from-strings`) (также для скриптов npm/npx/pnpm при включённой политике). diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/troubleshooting/error-codes.md b/i18n/ru/docusaurus-plugin-content-docs/current/troubleshooting/error-codes.md index 96dd597..d07cc38 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/troubleshooting/error-codes.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/troubleshooting/error-codes.md @@ -18,7 +18,7 @@ NVM for Windows использует стабильные коды `NVM####` в | **NVM4304** | Полная проверка восстановлена | Информационное продолжение после **NVM4303**: полная проверка прошла, кэш восстановлен | | **NVM4305** | Запуск package manager заблокирован (небезопасный каталог Node) | Proxy блокирует `npm` / `yarn` / `pnpm` (и аналоги), потому что каталог активной версии не проходит проверки cross-user write / trust; часто помогает `nvm doctor --autofix` или частный install root | | **NVM4306** | Сбой доверия к делегированной команде | Proxy отклоняет entrypoint package manager или скрипт: неизвестный, без подписи или не проходит delegated-command trust. Если вы доверяете изменению, выполните `nvm firewall trust module `. Одного `nvm reshim` недостаточно, чтобы модуль оставался доверенным после следующего self-update. При таймауте toast NVM печатает сообщение no-answer и шлёт тихое desktop-уведомление. | -| **NVM4313** | Отказ в пути хранения Node.js | `nvm config set root=` или страница установщика Node-storage выбрала Windows, Program Files, профиль, папку программы NVM или родителя этих путей. Удаление также не удаляет такой путь. Используйте отдельный каталог, например `%LOCALAPPDATA%\Author Software\nvm\installs` | +| **NVM4313** | Отказ в пути хранения Node.js | `nvm config set root=` или страница установщика Node-storage выбрала Windows, Program Files, ProgramData, профиль, папку программы NVM, корень диска (например `C:\`) или родителя этих путей. Удаление также не удаляет такой путь. Используйте отдельный каталог, например `%LOCALAPPDATA%\Author Software\nvm\installs` | | **NVM4314** | FileVersion `node.exe` не совпадает с папкой установки | Полная проверка (cache miss) сравнила PE VERSIONINFO FileVersion с core-версией папки (major.minor.patch). Пример: Node 10 в `v24.0.0`. Отсутствующий VERSIONINFO у существующего `node.exe` тоже отказ. Переустановите `nvm install --force` | | **NVM4401** | Удалённый firewall authority: unauthorized | HTTPS policy URL вернул **401**; remote отказал в доступе этому пользователю/клиенту | | **NVM4402** | Сбой удалённой проверки firewall | HTTPS policy URL: TLS failure, неожиданный HTTP-статус или ошибка helper/config | From 303ac9f3e1d5d3d4163c0d56b87c6bdbd01ccf3e Mon Sep 17 00:00:00 2001 From: coreybutler <770982+coreybutler@users.noreply.github.com> Date: Wed, 28 Oct 2026 23:46:40 -0500 Subject: [PATCH 2/2] docs: fix Deploy-blocking links on malicious-package-blocker Point firewall at /guide/firewall and registry at the /cfg/registry slug so the production build can ship. --- docs/features/malicious-package-blocker.md | 8 ++++---- .../current/features/malicious-package-blocker.md | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/features/malicious-package-blocker.md b/docs/features/malicious-package-blocker.md index cb7912b..69c95c2 100644 --- a/docs/features/malicious-package-blocker.md +++ b/docs/features/malicious-package-blocker.md @@ -13,7 +13,7 @@ It looks up names in a signed local file (`malware.db`). It is not a file scanner. It does not inspect tarball contents. -It is not the [module firewall](./firewall). +It is not the [module firewall](../guide/firewall). The module firewall applies **your** allow and deny lists. This blocker applies a public feed of **known-malicious** names. @@ -60,7 +60,7 @@ The definition file still updates when checks are skipped. ## Allow a false positive `MalwareAllowList` is HKLM only. -See [Registry Policy Reference](../cfg/enterprise/registry). +See [Registry Policy Reference](../cfg/registry). Each string is one pattern. Matching is byte for byte. @@ -157,6 +157,6 @@ See [Event Logging](./log) and [Error Codes](../troubleshooting/error-codes). ## Related -- [NVM Firewall](./firewall) — your version, module, and trust policy +- [NVM Firewall](../guide/firewall) — your version, module, and trust policy - [Choosing a Build](../guide/builds/) -- [Registry Policy Reference](../cfg/enterprise/registry) +- [Registry Policy Reference](../cfg/registry) diff --git a/i18n/ru/docusaurus-plugin-content-docs/current/features/malicious-package-blocker.md b/i18n/ru/docusaurus-plugin-content-docs/current/features/malicious-package-blocker.md index 23f14ce..c47a926 100644 --- a/i18n/ru/docusaurus-plugin-content-docs/current/features/malicious-package-blocker.md +++ b/i18n/ru/docusaurus-plugin-content-docs/current/features/malicious-package-blocker.md @@ -13,7 +13,7 @@ Bun проверяется только когда включён [`shim_bun`](. Это не сканер файлов. Он не проверяет содержимое tarball. -Это не [module firewall](./firewall). +Это не [module firewall](../guide/firewall). Module firewall применяет **ваши** списки allow и deny. Этот blocker применяет публичную ленту **известных вредоносных** имён. @@ -60,7 +60,7 @@ HKLM `SkipMalwareChecks` важнее HKCU. ## Разрешить ложное срабатывание \{#allow-a-false-positive\} `MalwareAllowList` — только HKLM. -См. [справочник политики реестра](../cfg/enterprise/registry). +См. [справочник политики реестра](../cfg/registry). Каждая строка — один шаблон. Сравнение по байтам. @@ -157,6 +157,6 @@ nvm cache remove malware --prompt ## Связанные материалы \{#related\} -- [NVM Firewall](./firewall) — ваша политика версий, модулей и доверия +- [NVM Firewall](../guide/firewall) — ваша политика версий, модулей и доверия - [Выбор сборки](../guide/builds/) -- [Справочник политики реестра](../cfg/enterprise/registry) +- [Справочник политики реестра](../cfg/registry)