WEB board

всеканоны и докиворкеры↗ iOS↗ Легаси
WEB-402 · Задача · — · web

[WEB370-D] A1 landing zone и ship-dark baseline

Закрыт P1 · важно ведёт: — эпик: WEB-395
Суть
Источник: WEB370PLAN2. Зависимость: WEB370-A. Оценка: 1 день. Первый host-prep ship-dark шаг после инвентаря; никаких production Signal/TG/SIP identities и никакого cutover.

--- 30.08 ~10:35Z (Фабл): волна 767-web370d поставлена (owner 10:06: параллелим). Landing zone /home/ubuntu/telephony-lz/ на A1: структура, драфты systemd-юнитов (root-шаги — скриптом для координатора), env-шаблоны без секретов, ship-dark прогон на loopback/high ports с полной уборкой. Запреты: no identities, no UFW, no cutover, не трогать wave-dispatcher.

--- 30.08 ~12:05Z (Фабл): приёмка ACCWEB370D = ПРИНЯТО с находкой F-01 (MEDIUM, ревью координатора): dark smoke зелёный as-is, границы соблюдены (no identities/network/dispatcher/reboot-persistence). F-01: install-lz.sh при root ставит все *.service/*.target в /etc/systemd/system с ПЕРЕЗАПИСЬЮ одноимённых + daemon-reload — перед установкой координатор обязан проверить имена юнитов на коллизии с существующими. Установку root-части НЕ выполнять до этой проверки. Ступень D закрыта ship-dark → открыта C (WEB-401). Отчёты: A1 ACCWEB370D-REPORT.md, WEB370D-REPORT.md.
Чем закрывается (приёмка)
На A1 ≥80 GiB usable или отдельный volume; state не world-readable; reboot запускает только разрешённую инфраструктуру; production Signal/TG/SIP clients не стартуют; outbound deny tests green.
Доказательства
[2026-08-27 01:35Z] Диспатчнут web402d на A1 (sol xhigh, свой бокс): диск/landing zone, аудит автозапуска, черновик outbound deny (применение координатором).
[2026-08-27 01:50Z] ДОКУМЕНТЫ (путь эволюции): бриф A1:/home/ubuntu/waves/queue/044-web402d-brief.md; сдача A1:/home/ubuntu/waves/WEB402D-REPORT.md; контекст WEB370DESIGN-REPORT.md + WEB370PLAN2-REPORT.md (A1:waves/).
[2026-08-27 02:55Z] WEB402D DONE: /opt/nc-landing/{state,releases,backups} создан (0750), аудит автозапуска задокументирован, outbound-deny черновик /home/ubuntu/waves/WEB402D-outbound-deny.ufw НЕ применён (применение координатором с OCI serial console наготове, запрет ufw reset). Отчёт WEB402D-REPORT.md. -> review.

[2026-08-28 05:13Z tickacc6] ВЕРДИКТ: частично доказано
Что проверил: на A1 выполнил date, df -B1, findmnt, lsblk, find/stat /opt/nc-landing, systemctl is-enabled/is-active/show для relevant units, ss, ps; прочитал WEB402D-REPORT.md и raw resubmit files; проверил sha256sum WEB402D-outbound-deny.ufw; выполнил read-only local proxy probe и прямые nc-пробы provider IP; проверил journalctl -k; проверил TCP 5060/5061 на loopback.
Что увидел: сейчас /opt/nc-landing на /dev/sda1, Avail=72437039104 B (≈67.45 GiB), отдельного volume нет. Верхние каталоги имеют ubuntu:ubuntu 750, но state/sip и state/telegram-call-native сейчас root:root 755. Релизы в landing — только web401c-*; /etc/web370/ACTIVE и /run/web370/lease/ACTIVE_HOST.lease отсутствуют. signal/telegram/SIP units disabled/inactive, 5060 и 5061 дают Connection refused. Прямые Telegram 443, Signal 443 и Telnyx 5061 дают timeout; journal содержит свежий UFW BLOCK. Draft имеет mode 0640 и sha256 b8b2f10190301ea37b08cbd6a9fe5366426e4aa1685a68a070fcb1487d78b353, но ufw status/iptables сейчас не читаются текущим пользователем: permission denied. nc-fence active, его node PID 1282 слушает 3128 и loopback request вернул HTTP 503; порт 3129 принадлежит sshd, поэтому как живой proxy его не засчитывал.
Отрицательный тест: прямые nc -n -z -v к 149.154.166.110:443, 76.223.92.165:443 и 192.76.120.10:5061 получили timeout; nc к 127.0.0.1:5060 и :5061 получил Connection refused. Это подтверждает deny/no-listener для проверенных направлений, но не доказывает полный текущий UFW allowlist.
Свежесть: A1-состояние снято 2026-08-28T05:08Z–05:13Z и относится к текущей машине; historical WEB402 resubmit снят 2026-08-27T18:38Z, до заявленной посадки l63. Текущий l63 release marker на A1/Pi не найден/не прочитан.
Чего не хватает: отдельный volume или Avail >=85899345920 B; исправить и повторно проверить mode/owner всех state subtree; получить актуальный WEB399 allowlist и полный enabled-unit comparison; снять root-authorized read-only UFW/iptables snapshot и применённый default-deny state; подтвердить живой allowlisted proxy path и fresh l63 marker. До этого статус должен быть in_progress.

[записал координатор: волна tickacc6 не смогла дописать сама — с A1 НЕТ сетевого доступа к M1 (ssh timeout), выводы перенесены вручную]

[28.08 ~12:10Z Фабл] WEB402 (площадка на Oracle, спящий запуск) сдала отчёт: состояние A1 = **safe-off** — декларативная подготовка сделана, но платформа остаётся заблокированной до досъёмов (routes/TLS nginx малинки, restore-контракт БД). Контракт пробуждения описан: Pi fence + M1 grant + утверждённый релиз/секреты + ACTIVE-маркер, ручной старт без enable, публичный DNS/SIP-маршрут последним. Сон: заморозка ingress, слив писателей, остановка provider-cgroups, отзыв lease. Положительное доказательство сна: health 200 локально, provider-units inactive/disabled, нет внешних слушателей WEB370. Отчёт: A1:/home/ubuntu/waves/WEB402-REPORT.md. Следующий шаг зависит от acc399d (карта = основание досъёмов).

[BOARDTRIAGE] A1 safe-off подтверждён около 28.08 12:10Z; до GO не хватает usable≥80 GiB или volume, не-world-readable state, полного deny/allowlist snapshot и актуального release marker.
Лента
2026-09-02T13:46:18.452Z · Fable
[A1 13:52 Фабл] F-01 (коллизии имён юнитов): проверено на A1 — telephony-lz-dark.target, telephony-lz-mock-{app,signal,sip,telegram}.service отсутствуют в /etc/systemd/system → коллизий нет, root-установка ship-dark части разрешена. Выполню установку (install-lz.sh как root, без enable, без identities) после локализации скрипта в дереве волны 767; результат — здесь.
2026-09-02T13:46:55.230Z · Fable
[A1 13:55 Фабл] Root-часть ship-dark landing zone установлена на A1: telephony-lz-dark.target + telephony-lz-mock-{app,signal,sip,telegram}.service скопированы из /home/ubuntu/telephony-lz/systemd в /etc/systemd/system (daemon-reload), НЕ enabled, не запущены (loaded/inactive) — identities/сеть/cutover не затронуты. Примечание для нулевого агента: скрипт install-lz.sh волны 767 остался незакоммиченным в дереве wt-web370d и потерян при чистке (класс uncommitted-wave-work-is-hidden-loss) — установка выполнена вручную теми же шагами (cp + daemon-reload, без enable). Ступень D: закрыта полностью (ship-dark + root-часть).
2026-09-02T13:47:15.200Z · Fable
[A1 13:48 Фабл] Юниты требуют User=telephony-lz — пользователя не было; создан системный пользователь telephony-lz (nologin, без home). Проверка readability /home/ubuntu/telephony-lz для него — в журнале OPS-STATUS; при активации dark.target может понадобиться o+rx на каталог (ship-dark smoke ранее гонялся под ubuntu).
Воркер
не привязан — привязать: curl -X POST https://bugs.wool2.online/api/web/assign -H 'content-type: application/json' \ -d '{"issueId":"WEB-402","session":"<имя tmux-сессии>","host":"m4"}'
Обновлён
2026-09-02T13:46:55.272Z