gendesign/scripts
bot-backend 4b89138db5 fix(ops): канарейка смоука сработала на мерже PR-D3 — обновляю ожидания вместе с ней
После мержа платёжного роутера (#3231) perimeter-smoke стал красным на проде:

  FAIL: trade-in payments/notify — 401 anonymous (rbac закрыт до PR-D3)
        gendsgn.ru/.../payments/notify -> got '405', expected 401

Это НЕ поломка, а срабатывание канарейки, которую сам скрипт и обещал:
«осознанно станет красной, когда PR-D3 явно откроет эти пути — тогда ожидания
здесь надо обновить вместе с ними». Я смержил PR-D3 и ожидание не обновил.

Что изменилось по существу: /payments/notify теперь в rbac._PUBLIC_PATHS —
вебхук Т-Банка не умеет присылать X-Authenticated-User, аутентификация там
подписью тела. /payments/checkout НЕ открывался и остаётся под 401.

Проверка переведена с GET на POST: GET по POST-only маршруту даёт 405 и не
говорит ничего ни про rbac, ни про флаг. POST с пустым телом проходит rbac
(иначе 401) и упирается в выключенный контур — 503.

Заодно закрыты три дыры в покрытии смоука, все замерены на проде:
· /stats и /showcase — ручки, из которых лэндинг берёт числа. При их отказе
  страница по построению рендерится БЕЗ блоков (честная деградация), то есть
  тихо. Ничем другим это не ловится.
· /estimate и /estimate/read — обязаны быть неотличимы от несуществующего
  пути при выключенном флаге. До #3233 отвечали 422 с перечнем своих полей.

Путь длинный (/trade-in/api/public/...) намеренно: короткого на публичном
домене нет, а по нему ходит фронт — проба обязана идти рабочим трактом.

Следующая канарейка отмечена в комментарии: при включении PAYMENTS_ENABLED
503 станет отказом по подписи, и ожидание надо будет обновить вместе с флагом.

Прогон на проде: ALL CHECKS PASSED.
2026-08-29 20:49:49 +05:00
..
auth fix(ops): repair broken main-DB backup + harden auth scripts/docs (#71 #427 #429 #428) 2026-06-13 20:13:04 +05:00
claude-hooks chore(hooks): точечный allowlist на три ключа метрик вместо снятия гарда 2026-08-26 13:09:37 +03:00
bootstrap_glitchtip.sh fix(infra): bootstrap_glitchtip — \gexec instead of DO block (psql var trap) (#219) 2026-05-16 15:54:29 +00:00
bootstrap_schema_migrations.sh feat(infra): auto-apply data/sql/*.sql migrations in deploy pipeline (#150) (#151) 2026-05-15 08:06:54 +03:00
build_osrm.sh feat(analyze): per-category OSRM routing (foot vs driving) (#39 A3) 2026-06-27 04:30:25 +05:00
check-caddy-snippet-mounts.py ci(caddy): гард — import обязан быть покрыт volume-маунтом 2026-08-26 12:07:29 +03:00
check-deploy-drift.sh feat(ops): сторож расхождения «прод ↔ main» — молчаливый недоехавший деплой становится видимым (#3029) 2026-08-27 12:35:43 +03:00
check-latest-image-revision.sh fix(ci): деплой падает громко, если :latest отстаёт от головы по компоненту (#2950) (#3023) 2026-08-21 12:19:07 +00:00
check-migration-lock-timeout.py fix(migrations): закрепить lock_timeout для блокирующего DDL и ловить невалидные индексы (#2791) 2026-08-07 11:21:28 +00:00
check-workflow-ports.py ci: гейт против публикации занятых на VPS портов в workflow (#2757) (#2759) 2026-08-06 21:40:05 +00:00
cleanup-merged-worktrees.sh fix(devops): cleanup-merged-worktrees.sh — 3 бага, найденные вживую на 69 забытых worktree (#2418) 2026-07-04 13:00:14 +00:00
cleanup-stale-claims.sh chore(claude): retire autonomous bot-pipeline 2026-08-28 22:27:00 +03:00
cleanup-worktrees-aggressive.py fix(week-review): автофиксы код-ревью — 169 issue (label «week ревью 1») 2026-06-15 20:21:11 +05:00
cleanup_ghosts.py fix(week-review): автофиксы код-ревью — 169 issue (label «week ревью 1») 2026-06-15 20:21:11 +05:00
migrate_kg_to_obsidian.py fix(week-review): автофиксы код-ревью — 169 issue (label «week ревью 1») 2026-06-15 20:21:11 +05:00
setup-couchdb.sh feat(deploy): split obsidian stack from main + path-filtered GHA 2026-05-11 09:51:31 +03:00
setup-metrics-exporter-dsn.sh fix(observability): агент не падает из-за переменной чужой роли (#3078) 2026-08-26 12:45:31 +03:00
setup-metrics-grafana-role.sh fix(observability): привилегированную роль спрашиваем у контейнера, а не угадываем (#3078) 2026-08-26 12:08:37 +03:00
setup-metrics-secrets.sh feat(observability): стек метрик и логов — Prometheus, Loki, Grafana, агенты на обоих хостах 2026-08-26 10:45:54 +03:00
smoke-mera-perimeter.sh fix(ops): канарейка смоука сработала на мерже PR-D3 — обновляю ожидания вместе с ней 2026-08-29 20:49:49 +05:00