tasks+ops: ozon-фиксы приняты, стенд пересобран (их Dockerfile), envelope ✓; bridge на вложенный контракт
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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:-}
|
||||||
|
|||||||
@@ -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"]
|
|
||||||
Reference in New Issue
Block a user