ВсеНовоеУлучшеноИсправлено
Исправлено

Ограничение cross-origin доступа к API

Мы ограничили cross-origin доступ, чтобы только foura.ai мог вызывать API с credentials. Мы также усилили фильтр входных данных на metrics endpoint и удалили fallback secret, использовавшийся только для разработки. Существующие интеграции не изменятся.

Исправлено

Кастомные правила валидации учитываются как успешные

Если вы настроили validate.status.accept для request, движок считает принятый ответ, отличный от 200, успешным. Activity все еще помечал их как сбои, что искажало вашу статистику использования. Теперь результаты соответствуют вашему вердикту валидации, поэтому принятый вами 403 отображается как успех, а не App Fail.

Улучшено

Метки в Активности соответствуют Обзору

В Активности ранее отображались сырые строки результатов вроде Application_fail, в то время как в Обзоре использовались понятные метки (App Fail) с соответствующими цветами. Теперь в Активности используются те же метки и цвета, поэтому оба раздела читаются одинаково.

Исправлено

Страницы не в UTF-8 теперь декодируются корректно

Если вы парсили страницы на кириллице, китайском, японском или другие страницы не в UTF-8 через Single, тело ответа раньше возвращалось в виде кракозябр. Мы принудительно декодировали каждый response в UTF-8 до того, как вы видели необработанные байты. Теперь мы считываем кодировку из response (Content-Type, затем <meta charset>, затем резервный UTF-8) и декодируем его корректно. Спасибо Александру Канчеву (Sensika) за сообщение об этой проблеме.

Исправлено

Обнаружены фейковые proxy, возвращающие ваш request обратно

Некоторые proxy в сети на самом деле не перенаправляют ваш request. Они возвращают его обратно в виде plaintext-дампа сервера и пытаются извлечь его содержимое. Теперь мы обнаруживаем этот паттерн до того, как response попадет в ваш код, поэтому Single, Browser и Proxy Finder возвращают корректную ошибку (или выполняют retry) вместо мусора.

Новое

Воспроизведение любой строки Activity в Playground

Каждая строка Activity с сохраненным payload теперь кликабельна: в диалоговом окне отображаются полные request и response (в отформатированном виде, с кнопками копирования и понятными сообщениями для request, которые завершились с ошибкой до формирования body). Нажмите 'Open in Playground', чтобы загрузить этот вызов обратно в форму с уже отображенным архивным response, что позволит вам изменить параметры и запустить его снова без повторной настройки. Сохраненные payload хранятся 24 часа, до 200 последних на один ключ.

Улучшено

Каждый API response содержит request ID

Аутентифицированные вызовы теперь возвращаются с header X-Foura-Request-Id. Сохраняйте его в своих логах, и вы сможете сопоставить любой request с его строкой в Activity, или передайте его в поддержку, чтобы мы могли точно проверить, что произошло на нашей стороне.

Улучшено

Отмена выполняющихся playground requests

Нажмите новую кнопку Cancel во время загрузки playground request, и мы корректно прервем его. Панель вернется в режим ожидания с пометкой «Request canceled» вместо пугающей ошибки сети.

Новое

Просмотр API-ключей после создания

Ключи, созданные начиная с сегодняшнего дня, можно посмотреть в любое время, как на странице API Keys, так и внутри curl reproducer в playground. Нажмите на иконку глаза, подтвердите действие, и полный ключ отобразится на 15 секунд, а затем автоматически скроется (каждый просмотр записывается в журнал аудита). Более старые ключи остаются доступными для просмотра только один раз; перевыпустите любой старый ключ, чтобы сделать его доступным для просмотра.

Улучшено

Proxy Finder быстрее перепроверяет пул

Очередь перепроверки теперь очищается за дни вместо недель. Мы сократили время выбора каждого proxy для теста с примерно 2 секунд до 10 мс, поэтому пул остается более свежим под нагрузкой. В ротации стало меньше неработающих IP, а каждый вызов Single и Proxy Finder работает с более качественным набором.

Улучшено

Пул proxy обновляется быстрее

После снятия вчерашнего лимита на один запуск процесс обновления зависал каждый раз, когда один большой блок proxy занимал всю очередь. Теперь мы распределяем каждый батч по отдельным подсетям, чтобы каждый запуск использовал весь бюджет параллелизма. Пул Proxy Finder обновляется в 5-10 раз быстрее, а устаревшие записи очищаются за несколько часов.

Исправлено

Новые найденные прокси быстрее попадают в пул

Мы устранили задержку, из-за которой новые найденные прокси ожидали проверки. Теперь Proxy Finder проверяет их сразу же, поэтому пул остается более актуальным, а в ротации находится больше активных рабочих прокси.

Улучшено

Playground теперь работает на телефонах

При ширине экрана менее 768px строка URL перестраивается в две строки, вкладки response прокручиваются по горизонтали, а таблица cookie превращается в сетку карточек. Подсказки открываются по тапу вместо наведения; для iPhone SE (менее 374px) применяется дополнительное сжатие. Кнопка Send теперь правильно выровнена по центру, а длинный URL больше не приводит к появлению горизонтальной прокрутки.

Улучшено

Playground expand теперь работает как полноценный полноэкранный overlay

Раньше expand растягивал карточку response внутри потока страницы, поэтому высокие панели добавляли прокрутку страницы и сдвигали макет. Теперь это фиксированный overlay между sidebar и краем viewport, а его панели растягиваются, заполняя viewport. Escape закрывает его; один хелпер обрабатывает клики и нажатия клавиш.

Исправлено

Cookies в Playground следуют правилам host-only из RFC 6265

Host-only cookies утекали на поддомены. Теперь мы корректно отслеживаем атрибут Domain и добавили бейдж HO в представлении Parsed для (редких) случаев host-only. Представление Raw соответствует тому, что отправил upstream: Domain=.example.com для domain cookies, без строки Domain= для host-only.