Files
admin/.tasks/sched-pipelines-local-stack.md

54 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# sched-pipelines-local-stack
Локальный стенд: sched daemon + HTTP-воркеры (yandex-market-partner-api-client, ozon-seller-api-client)
+ CDP-browser + локальный ntfy + alert-bridge (sched webhook → ntfy/email Unisender Go).
Потом миграция на VDS.
## Статус (2026-08-20)
**Поднято и проверено:**
- schedd 0.4.2 (published, verdaccio) — healthy; admin API 127.0.0.1:18080 (SCHED_ADMIN_KEY из pass)
- tasks.json: ozon `0 2 * * *`, yandex `30 2 * * *`, alerts webhook (HMAC) → alert-bridge
- ym-client-builder: envelope ✓ (ping → succeeded), auth ✓ (401 на wrong key)
- browser-cdp: Chrome 131 + CDP :9222 ✓
- ntfy локальный :8096 ✓; alert-bridge HMAC ✓ + доставка в топик sched-alerts ✓
- email: unisender go2 код 229 — нужен sender-domain в аккаунте (вопрос юзеру)
**Ozon-воркер ОСТАНОВЛЕН** (их баги, ждём фиксы — ТЗ в их инбоксе):
1. envelope-контракт не реализован (всегда 200 {runId,verdict} → sched видит успех)
2. нет notify на sched-пути
3. нет publish-стадии на sched-пути (publish только в крон-пути, крон выключен)
4. email на старый домен go.unisender.ru + массив to + form → go2 JSON
5. `job.getTask()` нет в node-cron v4 → restart-loop
6. Dockerfile `COPY ... 2>/dev/null || true` — не билдится
7. lock пинит yaml на verdaccio → E401 в чистом контейнере
**Yandex (2 дефекта, ТЗ отправлено):**
1. email-эндпоинт go2.unisender.ru/api/v1/sendEmail → 404; правильный: /ru/transactional/api/v1/email/send.json (JSON body)
2. ntfy dead-домен + email.to плейсхолдер в deploy/sched-task.json
**sched (письмо «впрягись»):**
1. envelope-mode + non-envelope 2xx = тихий succeeded (маскирует фейлы) — позиция/фича
2. канон envelope-контракта для ozon-команды
3. missed-slot при ежедневных 2:00/2:30 — grace ок?
4. VDS: daemon без docker-runner — docker-сокет не нужен?
## Секреты (pass)
`sched-pipelines/local/*`: sched-api-key (общий sched→воркеры), admin-key, webhook-secret, unisender-go-api-key.
В стенде через `.env` (gitignored) → `render-tasks.cjs``tasks.generated.json`.
## Команды
```bash
cd ~/projects/.admin/host-stacks/local/sched-pipelines
node render-tasks.cjs && docker compose up -d --build
docker compose logs -f schedd
```
## Проверки GitHub-токена
`OpeItcLoc03` (gh auth), orgs: schedjs, snollacms, apitano, apilki (role **admin**).
Репо в оргах создаёт ✓ (тест `apilki/token-check-*` create + delete, delete_repo scope есть).
Нужно для create-if-missing: apilki/ozon-seller-typescript, apilki/ozon-seller-postman, apilki/yandex-market-postman (ещё не существуют).