docs пилот: реклама за показы и окно передачи отказов выкачены на боевой
Accessibility (Pa11y live) / a11y (push) Has been cancelled

24 миграции на живой Managed-кластер, 57 политик сквозного доступа, права проверены
живыми запросами. Рубильник Директа выключен явно, канал робота закрыт - проверено
живьём, отвечает 401.

Записан способ накатки лучше рунбучного: сбросить кэш конфига и дать artisan migrate
работать от роли-владельца через env-override. И записана мина, из-за которой нельзя
лить SQL из pretend: он схлопывает многострочные куски в одну строку, а комментарий
внутри съедает всё до конца строки вместе с выдачей прав.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Дмитрий
2026-07-29 08:31:00 +03:00
parent dcf9706703
commit 8bdd58e8ca
+42
View File
@@ -16,6 +16,48 @@
---
## 🆕 ОБНОВЛЕНИЕ 29.07.2026 — «Реклама за показы» + окно передачи отказов модерации ВЫКАЧЕНЫ
**Выкачен весь модуль целиком, первый раз.** `main` = `dcf97067` (gitea), выкат по рунбуку
`docs/superpowers/runbooks/2026-06-18-gitea-prod-deploy-pipeline.md`. Простой — только
на время overlay'я; портал и лендинг после подъёма отвечают **200**, журнал чист.
- **Миграции: 24 штуки**, все `ad_*`, применены на ЖИВОЙ Managed-кластер `c9q2cvtjpq3hgq6l0r96`.
🔑 **Способ лучше рунбучного:** вместо ручного переливания SQL — `artisan config:clear`,
затем `sudo -u www-data env DB_USERNAME=crm_migrator DB_PASSWORD=… php artisan migrate --force`,
затем `artisan optimize`. Env-override не работал только из-за КЭША конфига; сбросил кэш —
заработал. Laravel сам ведёт таблицу `migrations`, ручные INSERT'ы не нужны.
🪤🪤 **Почему НЕ через `--pretend` → psql:** pretend схлопывает многострочные `DO $$…$$`
в ОДНУ строку, а внутри них комментарии `--`. В файле такой комментарий съедает всё
до конца строки — вместе с самими GRANT'ами и закрывающим `END $$;`. Половина прав
(в т.ч. **v9.17**) не доехала бы, либо файл упал бы на середине.
- **`db/03_service_bypass_policies.sql` перезапущен** → **57** политик `srv_bypass`
(было 44 на полигоне); `ad_creative_jobs`, `ad_campaign_messages`, `ad_campaign_banners`
покрыты. Проверено запросом, не на веру.
- **Права проверены живыми запросами:** v9.17 (`crm_admin_user` INSERT в `ad_campaign_messages`
+ нумератор) — есть; колокольчик `in_app_notifications` — есть; очередь заданий робота
(`crm_app_user` INSERT / `crm_admin_user` UPDATE) — есть; `crm_supplier_worker` INSERT
в ленту — есть.
- **`.env` дополнен** (бэкап `/home/ubuntu/env-backup-20260729-predeploy.bak`):
`YANDEX_DIRECT_ENABLED=false` — теперь ЯВНО, а не по умолчанию;
`MONITORING_ALERT_EMAIL=info@liderra.ru` — решение владельца 29.07 (туда уходит письмо
о приложенном клиентом документе; подставляемый кодом `ops@liderra.ru` мог не существовать,
и письма пропадали бы молча).
- **Что НЕ включено намеренно:** рубильник выключен → три джоба (`SyncCampaignAudienceJob`,
`ChargeCampaignSpendJob`, `SyncCampaignModerationJob`) проверяют его первой строкой и
не делают ничего. `CREATIVE_ROBOT_TOKEN` не задан → канал робота **закрыт**, проверено
живьём: `/api/creative-robot/next`**401**.
- 🔴 **Разведка на бою НЕ заработает, пока не решён вопрос «где живёт робот»:** ему нужен
браузер с живым входом в кабинет Яндекса, на сервере такого нет. Код и база готовы,
включение — отдельный маленький шаг.
- **Попутно закрыт NO-GO предполёта:** кэш конфига на проде был собран 26.07 14:36 при
`.env` от 27.07 05:01 — почти двое суток портал жил по устаревшим настройкам. Пересобран
`sudo -u www-data` (квирк 107), теперь `www-data:www-data`, 29.07 05:25.
- **Бэкапы до выката:** код `/tmp/app-backup-2026-07-29.tgz`, облачный бэкап кластера
29.07 00:16 UTC (за 5 ч до выката). Откат — §8 рунбука.
- **Не связано с выкатом:** в `queue:failed` висит одно старое задание `CsvReconcileJob`
от 20.07 — было до нас, не трогали.
## 🆕 ОБНОВЛЕНИЕ 23.07.2026 — хотфикс значка прогрева в воронке (на боевом)
**Выкачен ОДИН backend-файл** `SalesProspectController.php` (коммит `8033debf`, gitea/main).