Публичные ссылки и экспорт
Ссылка вида /s/<24 hex> открывает отчёт без входа в аккаунт. Виды: report (отчёт), client (для клиента), crawl (аудит страниц), links (обратные ссылки), work (отчёт о работе), status (статус сервисов). На один сайт и вид — одна ссылка.
| Настройка | Где | Как работает |
|---|---|---|
| Срок | /shares, Store::shareSet(['ttl_days']) | 0 — без срока, максимум 365 дней. После срока ссылка и её PDF/JSON/CSV отвечают 410, просмотры не считаются |
| Пароль | shareSet(['pass']) | хранится password_hash; форма на самой ссылке; 10 попыток в час на пару «ссылка + адрес»; cookie sm_sh_<токен> с HMAC от токена, срока и хеша пароля, живёт 12 часов, смена пароля отзывает |
| Версия | shareSet(['frozen']) | запоминает id последнего отчёта (только report и client); shareReport() берёт его, пока фиксация не снята |
| Новая ссылка | shareRotate() | меняет токен, обнуляет просмотры, срок и пароль остаются |
Форматы по ссылке: /s/<токен>.pdf|.json|.csv для report и client; .csv для crawl и links. Без введённого пароля они отвечают 401. JSON отдаётся без внутреннего поля _id.
Все ответы по ссылке идут с X-Robots-Tag: noindex, nofollow; страницы — ещё и с Referrer-Policy: no-referrer.