Repository navigation
Conversation
Что: bcrypt 5.1.1 -> 6.0.0 и @types/bcrypt 5.0.2 -> 6.0.0 (точные версии) в apps/dokploy и packages/server. Из lock ушло дерево @mapbox/node-pre-gyp, node-addon-api свёлся к одной версии 8.9.2. Добавлен тест __test__/security/bcrypt-hash-compat.test.ts с хэшами, сделанными bcrypt 5.1.1. Зачем: bcrypt 6 больше не скачивает бинарник через node-pre-gyp при установке, а поставляет готовые N-API сборки внутри пакета (prebuilds/, включая linux-x64 glibc) и грузит их через node-gyp-build. Минус устаревшая цепочка зависимостей (npmlog, gauge, rimraf 3, glob 7, tar 6). Риски: нативный модуль. Скрипт install (node-gyp-build) только находит готовую сборку, сеть и компилятор не нужны; bcrypt есть в списке пакетов, которым bun доверяет по умолчанию. Next держит bcrypt внешним пакетом, esbuild-конфиги собирают с packages: external, поэтому поиск prebuilds через __dirname не ломается. Dockerfile не менялся: prod-deps ставит hoisted node_modules вместе с prebuilds. Формат хэшей прежний ($2b$). Проверки: bun install --frozen-lockfile, bun run typecheck, тесты __test__/security (350/350), полный набор (один нестабильный тест backups/backup-files под нагрузкой, отдельно проходит), biome check, bun audit --audit-level=moderate. Загрузка биндинга под Node 24.22.1 локально (darwin-arm64). Образ проверит main-image-smoke в CI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Зачем
Мажорное обновление
bcrypt5.1.1 → 6.0.0 (релиз 2025-05-11) и@types/bcrypt5.0.2 → 6.0.0 (2025-07-19), часть второй волны мажорных обновлений.По release notes в bcrypt 6:
node-pre-gyp, который скачивал бинарник при установке, заменён готовыми N-API сборками внутри пакета (prebuilds/: linux x64/arm64/arm в вариантах glibc и musl, darwin, win32). Их загружаетnode-gyp-build.Вместе с
node-pre-gypиз дерева уходит старая цепочкаnpmlog,gauge,rimraf@3,glob@7,tar@6.Что изменилось
apps/dokploy/package.json,packages/server/package.json:bcrypt6.0.0 и@types/bcrypt6.0.0, точные версии, одинаковые в обоих пакетах.bun.lock: убрано дерево@mapbox/node-pre-gyp.node-addon-apiтеперь одной версии 8.9.2 (раньше 5.1.0 и вложенные 8.9.2).apps/dokploy/__test__/security/bcrypt-hash-compat.test.ts:compareиcompareSyncв v6 принимают хэши, созданные bcrypt 5.1.1:$2b$cost 10 (пароль входа),$2b$cost 12 (супер-пароль) и$2a$.hashпо-прежнему выдаёт$2b$. Этот формат понимает basic auth Traefik.hash,compare,hashSyncиcompareSyncпрежний.prod-depsставит hoistednode_modulesвместе сprebuilds/;install(node-gyp-build) только находит готовую сборку, ему не нужны ни сеть, ни компилятор;bcryptвходит в список пакетов, которым bun по умолчанию доверяет скрипты, поэтомуtrustedDependenciesне нужен. Вbun pm untrustedего нет;bcryptвнешним пакетом (встроенный списокserverExternalPackages), а esbuild-конфиги используютpackages: "external". Поэтому поискprebuildsчерез__dirnameне ломается при сборке.Проверки
bun install --frozen-lockfileдо и после обновления.bun run typecheck: все 4 пакета без ошибок.__test__/security: 350/350. Первый прогон дал один таймаут под нагрузкой, два повторных прошли чисто.vitest: 4289 пройдено.backups/backup-files.test.tsупал один раз под нагрузкой, отдельно проходит 14/14. С bcrypt этот тест не связан.bunx biome checkпо изменённым файлам.bun audit --audit-level=moderate: уязвимостей нет.hashSync/compareSyncработают.next buildи сборка образа локально не запускались. Их проверят CI-джобы, включаяmain-image-smoke.Что проверить вручную на dev
bcrypt.node.🤖 Generated with Claude Code