tasks+ops: ozon-фиксы приняты, стенд пересобран (их Dockerfile), envelope ✓; bridge на вложенный контракт

This commit is contained in:
2026-08-20 20:46:59 +03:00
parent 099742fdef
commit 61e1a9e61a
4 changed files with 12 additions and 41 deletions

View File

@@ -1,5 +1,5 @@
# Admin Task Board # Admin Task Board
_Updated: 2026-08-20 — 🟡 **[sched-pipelines-local-stack]** ym-фиксы приняты (email go2 JSON + дефолты sched-task, 93/93, воркер пересобран ✓). Ждём: ozon-фиксы (7 пунктов), ратификацию vitya по envelope-fallback (sched), sender-domain go2. Следующий ран: завтра 02:00 ozon / 02:30 yandex (DRY-RUN)._ _Updated: 2026-08-20 — 🟡 **[sched-pipelines-local-stack]** ozon-фиксы приняты (7/7, d198710 + b3046d3 вложенная email-форма), стенд пересобран на их Dockerfile, envelope проверен живьём (hash-стадия → правильный envelope-failed). ym: пересборка ждёт вложенную форму notify (коррекция 17:40Z). Осталось: tracking-домен trk.snolla.com (NS лежали под trk.snolla.com.snolla.com — жду ре-добавления с именем trk), потом 229 уходит и email оживает._
## 🟡 [sched-pipelines-local-stack] — локальный стенд: sched daemon + ym/ozon воркеры + browser/ntfy/alert-bridge, потом VDS ## 🟡 [sched-pipelines-local-stack] — локальный стенд: sched daemon + ym/ozon воркеры + browser/ntfy/alert-bridge, потом VDS
**Status:** active **Status:** active

View File

@@ -79,11 +79,14 @@ async function sendEmail(m) {
headers: { 'content-type': 'application/json' }, headers: { 'content-type': 'application/json' },
body: JSON.stringify({ body: JSON.stringify({
api_key: UNISENDER_API_KEY, api_key: UNISENDER_API_KEY,
email: EMAIL_TO, message: {
sender_name: 'sched-pipeline', template_engine: 'velocity',
sender_email: UNISENDER_FROM, body: { text: m.body },
subject: m.title, subject: m.title,
body: m.body, from_email: UNISENDER_FROM,
from_name: 'sched-pipeline',
recipients: [{ email: EMAIL_TO }],
},
}), }),
}); });
const text = await res.text(); const text = await res.text();

View File

@@ -68,9 +68,7 @@ services:
ozon-seller-builder: ozon-seller-builder:
build: build:
context: ../../../../ozon-seller-api-client context: ../../../../ozon-seller-api-client
dockerfile: C:/Users/vitya/projects/.admin/host-stacks/local/sched-pipelines/ozon.Dockerfile dockerfile: service/Dockerfile
args:
VERDACCIO_TOKEN: ${VERDACCIO_TOKEN:-}
image: sched-pipelines/ozon-seller-builder:local image: sched-pipelines/ozon-seller-builder:local
environment: environment:
WORKER_PORT: "8080" WORKER_PORT: "8080"
@@ -85,6 +83,8 @@ services:
NTFY_URL: http://ntfy NTFY_URL: http://ntfy
NTFY_TOPIC: ozon-seller-pipeline NTFY_TOPIC: ozon-seller-pipeline
UNISENDER_API_KEY: ${UNISENDER_API_KEY:-} UNISENDER_API_KEY: ${UNISENDER_API_KEY:-}
UNISENDER_SENDER_EMAIL: ${UNISENDER_SENDER_EMAIL:-}
UNISENDER_SENDER_NAME: ${UNISENDER_SENDER_NAME:-}
NOTIFY_EMAIL_TO: ${NOTIFY_EMAIL_TO:-} NOTIFY_EMAIL_TO: ${NOTIFY_EMAIL_TO:-}
GH_TOKEN: ${GITHUB_TOKEN:-} GH_TOKEN: ${GITHUB_TOKEN:-}
NPM_TOKEN: ${NPM_TOKEN:-} NPM_TOKEN: ${NPM_TOKEN:-}

View File

@@ -1,32 +0,0 @@
# Локальная копия service/Dockerfile из ozon-seller-api-client с фиксом:
# `COPY state.json ./state.json 2>/dev/null || true` — шелл-синтаксис в COPY не валиден,
# docker падает «"/2>/dev/null": not found». state.json в контексте есть, копируем напрямую.
FROM node:22-alpine
RUN apk add --no-cache openjdk21-jre-headless git
WORKDIR /app
COPY package.json package-lock.json ./
# lock пинит yaml на verdaccio (локальный .npmrc хоста имеет токен, контейнер — нет)
ARG VERDACCIO_TOKEN
RUN npm config set //verdaccio.kzntsv.site/:_authToken=${VERDACCIO_TOKEN} \
&& npm ci --no-audit --no-fund || npm install --no-audit --no-fund
COPY service/ ./service/
COPY generator/ ./generator/
COPY test/ ./test/
COPY LICENSE ./
COPY state.json ./state.json
ENV NODE_ENV=production
ENV WORKER_PORT=8080
ENV WORKER_TOKEN=
# крон-расписание (формат node-cron): в стеке переопределяется на «никогда» —
# расписанием рулит sched daemon
ENV CRON_SCHEDULE="0 0 31 2 *"
EXPOSE 8080
CMD ["node", "service/entrypoint.js"]