Цель — домен со своим хостингом: секреты <prefix>_FTP_HOST/USER/PASS ищутся по имени (проверено пробой на раннере),
dir — каталог сайта на FTP ("" — корень). Цели независимы (fail-fast: false), проверка страницы — у каждой своя.
config.json и requisites.html живут на хостинге каждой цели (в репозитории — только config.json.example), деплой их
не трогает; без config.json проверка новой цели падает. README: как добавить домен.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ключ requisites — список строк, каждая отдельным абзацем, текст экранируется. Без ключа — как было: requisites.html,
а если он пуст — заглушка «ИП Иванов» (решение заказчика). config.json.example — формат ключа; README.
Проверка — .extras/checks-preland-claim/t_requisites.sh (index.php в php:8.3-cli): до правки FAIL=3, после 6/6.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Реквизиты — секреты репозитория PRELAND_FTP_HOST/USER/PASS. Не заливаются служебные файлы и живущие только на
хостинге config.json и requisites.html; на хостинге ничего не удаляется. После заливки страница проверяется: адрес
загрузки — на сайте, а не на самом преленде, переход — на claim. Один вызов curl на все файлы (одно соединение).
README: раздел «Автодеплой».
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Метки преленда, кроме настроенных, идут в адрес как есть; ?key=… кампании вставал после key=<ключ загрузки>, и PHP
брал последнее значение — claim уводил на главную. Метка key в адрес claim не переносится.
Проверка — .extras/checks-preland-claim/t_preland.sh (страница с ?key=camp): до правки FAIL=1, после 5/5.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
После загрузки посетитель попадал на /public/upscale?id=… и видел 404: XHR с преленда кросс-доменный, и сессия,
в которой сайт запомнил загрузку, посетителю на сайте недоступна (куки третьей стороны изолированы или не приняты).
Теперь вместе с файлом уходит client_key (crypto.randomUUID, иначе 16 байт getRandomValues), а после ответа браузер
идёт на https://<сайт>/api/images/public/claim?key=<ключ>&<метки>: сайт кладёт загрузку в сессию посетителя
и ведёт на /public/upscale (ключ годен 30 мин). Нужен api с ClaimAction (fix/preland-claim).
Проверка — .extras/checks-preland-claim/t_preland.sh в рабочей области (index.php в php:8.3-cli, скрипт формы
в node:22): до правки FAIL=3, после 5/5.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>