meta(tasks): block [books-task-runner-registry-auth-cred] — cred placed+verified, new registryGc (a3734d5) not deployed

Кред books-ci (секция registry, полная — bind-mount затеняет config образа)
положен в task-runner config-volume на books-vds, 644 root сохранён
(бэкап .bak-pre-registry-2026-06-18, EACCES не повторён), container
restart→healthy, config.get(registry.*) резолвится. books-ci валиден:
/v2/_catalog→200, репы books-* видны, 401 нет.

Блокер: работающий образ (88f2bee, 2026-06-17) содержит старый registryGc
(Gitea packages API), тега master-a3734d5 в реестре нет → CI не собрал
v2-DELETE rewrite. In-app dryRun ждёт build+deploy. Inbox-ответ books отправлен.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-18 11:40:07 +03:00
parent 28de8e60e0
commit 202b7c32af

View File

@@ -1,4 +1,5 @@
# Admin Task Board
_Updated: 2026-06-18 — 🔵 **[books-task-runner-registry-auth-cred] blocked.** Кред books-ci (секция `registry`, baseUrl+username+password — полная, bind-mount затеняет config образа) положен в task-runner config-volume на books-vds; mode 644 root сохранён (бэкап `.bak-pre-registry-2026-06-18`, EACCES-инцидент 25.05→18.06 не повторён), container restart→healthy, `config.get('registry.*')` резолвится. books-ci валиден: `/v2/_catalog`→200, репы books-* видны, 401 нет. **Блокер:** работающий образ (88f2bee, 17.06) содержит СТАРЫЙ registryGc (Gitea API), тега `master-a3734d5` в реестре нет → CI не собрал v2-DELETE rewrite. In-app dryRun ждёт build+deploy. Inbox-ответ books отправлен._
_Updated: 2026-06-13 — 🟢 **[migrate-assets-originals-to-s3] closed.** assets-оригиналы (весь `App_Data\assets`: 4750 obj / 215.5 MiB, 145 owner-папок) залиты в новый MinIO bucket `assets` (books-vds) rclone'ом с RUVDS IIS, ключи `<ownerId>/<storageFilename>` verbatim. Verify count+size == source. Smoke (мимо LAN-DNS): brevno.jpg → 200 image/webp 64556 B (был 404), валидно-подписанный несуществующий объект → 404 (негатив-контроль). Код snolla не менялся (path A); scope намеренно шире pilorama98 — закрывает класс-404 для всех тенантов snolla, регрессии нет (shared bucket, как galleries). ⚠️ snolla-side остаётся `content-api/routes/assets.js` (пустой stub) — без него картинки не рендерятся на сайте. Inbox victor/snolla отправлен._
_Updated: 2026-06-12 (4) — 🟢 **[migrate-gallery-originals-to-s3] closed (scope pilorama98).** Галереи snolla не отдавались (imgproxy 404) т.к. в legacy `storageClient="galleries"` = тип **Local** (диск `App_Data\galleries\<siteId>`), НЕ S3 — оригиналы никогда туда не заливались (продукты — заливались, bucket `pilorama98`). Развилка A/B закрыта фактами MinIO → **A**: создан bucket `galleries`, залиты 301 файл (77 MiB) pilorama98 (siteId `37e67fc4…`) с RUVDS IIS через rclone → `s3://galleries/<siteId>/<guid>.jpg` verbatim (== ровно то, что строит `middleware/galleries.js:47`). Код snolla НЕ менялся. Verify: count+size == source. Smoke с books-vds: реальный объект imgproxy → 200 webp, fake → 404. Уточнение инфра: `imgproxy.kzntsv.site` с 08.06 на **books-vds** (стек 29/30), не на windows-host — `minio-imgproxy-on-vds.md` был stale. Inbox victor/snolla отправлен._
_Updated: 2026-06-12 (3) — 🟢 **bookva-es snapshot done** (не отложен). Portainer stack 37 пересоздан с `path.repo=/snapshots`+bind (PUT API, том цел, epz/products уцелели), repo `kreknin` зарегистрирован, snapshot-блок в `run.sh`. Поймана коллизия basename `snapshots` (оба ES-каталога одноимённы → сливались в один dest-репо, порча обоих) → источник bookva-es = родительский `/usr/docker/bookva-es`. Verified: `BOOKS-VDS backup OK 10m28s`, на kreknin раздельно `snapshots/`(slovo index-41) + `bookva-es/snapshots/`(index-4). Таска `bookva-es-snapshot-repo` 🟢 closed._
@@ -715,7 +716,7 @@ Approach ратифицирован человеком (вариант A): ко
---
## [books-task-runner-registry-auth-cred] — Положить кред books-ci в **task-runner** config-volume, чтобы заработал переписанный `registryGc` (чистка Docker registry через Registry v2 DELETE).
## 🔵 [books-task-runner-registry-auth-cred] — Положить кред books-ci в **task-runner** config-volume, чтобы заработал переписанный `registryGc` (чистка Docker registry через Registry v2 DELETE).
Контекст: registryGc раньше бил в Gitea packages API и никогда не отрабатывал (образы books-* живут в standalone registry:2 на registry.kzntsv.site за htpasswd). Переписан на Registry v2 REST с Basic-auth кредом books-ci (commit books@a3734d5). Кред books-ci уже есть в **job-scheduler** config-volume (для docker pull) — нужен тот же и в **task-runner** (registryGc бежит там, http-runner, отдельный volume).
@@ -746,11 +747,13 @@ Approach ратифицирован человеком (вариант A): ко
**weight:** needs-human — секрет + доступ к VPS config-volume, критичная инфра.
**notify:** OpeItcLoc03/books
**Status:** ready
**Where I stopped:** (not started) — код registryGc уже переписан и закоммичен в books (a3734d5), ждёт только кред
**Next action:** Добавить секцию registry в task-runner config-volume и положить пароль books-ci
**Status:** 🔵 blocked — кред положен+verified, но новый registryGc (a3734d5) НЕ задеплоен
**Where I stopped:** Секция `registry` (baseUrl+username+password books-ci, полная — bind-mount затеняет config образа) добавлена в `/opt/books/task-runner/config/default.json` (books-vds, 644 root сохранён, бэкап `.bak-pre-registry-2026-06-18`, только ключ registry added). Container restart → healthy, `config.get('registry.*')` резолвится. Кред books-ci валиден: `/v2/_catalog`→200, репы books-* видны, 401 нет. **НО** работающий образ (88f2bee, 2026-06-17 20:23) содержит СТАРЫЙ registryGc (Gitea packages API, `config.gitea.token`), а в реестре нет тега `master-a3734d5` → CI не собрал новый код. In-app dryRun нового v2-DELETE прогнать нельзя.
**Next action:** Дождаться build+deploy `a3734d5` в `books-task-runner:master` (CI → registry → pull на books-vds). По появлении `master-a3734d5` в реестре + подтянутом образе — прогнать `registryGc {dryRun:true}` через /scheduler, проверить repos books-* в отчёте без 401 → close. Inbox-ответ books отправлен (2026-06-18T08-38-57Z-admin.md).
**Blocker:** books CI ещё не собрал/задеплоил `a3734d5` (registryGc v2-DELETE rewrite). Owner блокера — books-сессия (notify OpeItcLoc03/books).
**Branch:** n/a
**Notify:** OpeItcLoc03/books
<!-- created-by: OpeItcLoc03@DESKTOP-NSEF0UK / from: victor/books / 2026-06-18T08:28:09.066Z -->
<!-- blocked-by: vitya@.admin-exec / 2026-06-18 / cred placed+verified at registry-level; new registryGc code (a3734d5) not built/deployed — running image has old Gitea-API version -->
---