ВсичкиНовоПодобреноОправено
Оправено

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

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

Оправено

Персонализираните validate правила се зачитат за успех

Ако сте задали validate.status.accept за дадена request, енджинът третира приетия non-200 статус като чист успех. Activity все още маркираше тези случаи като неуспешни, което изкривяваше статистиката ви за потребление. Резултатите вече следват вашето validate решение, така че приет от вас 403 се показва като успех, а не като App Fail.

Подобрено

Етикетите в Activity съвпадат с Overview

Преди Activity показваше сурови низове за резултат като Application_fail, докато Overview използваше четими етикети (App Fail) с подходящи цветове. Сега Activity използва същите етикети и цветове, така че двата изгледа се четат по един и същ начин.

Оправено

Страниците извън UTF-8 вече се декодират коректно

Ако сте скрейпвали кирилски, китайски, японски или други страници извън UTF-8 през Single, тялото се връщаше като mojibake. Принудително декодирахме всеки response като UTF-8, преди да видите необработените байтове. Сега четем кодирането (charset) от response (Content-Type, след това <meta charset>, след което fallback към UTF-8) и го декодираме правилно. Благодарим на Александър Кънчев (Sensika) за докладването на това.

Оправено

Засекохме фалшиви proxy-та, които връщат вашия request обратно

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

Ново

Повторно изпълнение на всеки ред от Activity в Playground

Всеки ред от Activity със съхранен payload вече е кликаем: диалоговият прозорец показва пълната request и response (pretty-printed, с бутони за копиране и ясни съобщения за requests, които са завършили с грешка преди генерирането на body). Натиснете 'Open in Playground', за да заредите точно това извикване обратно във формата с вече визуализиран архивиран response, така че да можете да коригирате параметрите и да го изпълните отново, без да го изграждате наново. Съхранените payloads се пазят 24 часа, последните 200 на key.

Подобрено

Всеки API response съдържа request ID

Автентикираните calls вече се връщат с X-Foura-Request-Id header. Запазете го във вашите logs и ще можете да съпоставите всеки request с неговия ред в Activity, или го предайте на поддръжката, за да можем да проверим точно какво се е случило от наша страна.

Подобрено

Прекратяване на изпълняващи се playground requests

Натиснете новия бутон Cancel, докато се зарежда playground request, и ние го прекратяваме чисто. Панелът се връща в idle състояние със съобщение 'Request canceled' вместо плашеща мрежова грешка.

Ново

Показване на API ключове след създаване

Ключовете, които създавате от днес нататък, могат да бъдат показвани по всяко време, както на страницата API Keys, така и в curl reproducer на playground. Кликнете върху окото, потвърдете и целият ключ ще се покаже за 15 секунди, преди да се скрие автоматично (всяко показване се записва в audit log). По-старите ключове остават видими само веднъж; генерирайте отново всеки стар ключ, за да можете да го показвате.

Подобрено

Proxy Finder проверява пула по-бързо

Опашката за препроверка сега се източва за дни вместо за седмици. Намалихме времето за избор на всеки proxy за тестване от около 2 секунди на около 10 ms, така че пулът остава по-свеж под натоварване. По-малко неработещи IP адреси в ротация, а всяка Single и Proxy Finder заявка работи с по-здрав набор.

Подобрено

Proxy pool се обновява по-бързо

След като премахнахме вчерашното ограничение за единично изпълнение, обновяването продължаваше да забива всеки път, когато голям блок от proxy-та заемеше опашката. Сега разпределяме всеки batch в отделни subnets, така че всяко изпълнение да използва пълния concurrency бюджет. Proxy Finder pool-ът се обновява 5-10 пъти по-бързо, а остарелите записи се изчистват в рамките на часове.

Оправено

Новооткритите proxies достигат по-бързо до pool-а

Отстранихме забавяне, което караше новооткритите proxies да чакат, преди да бъдат валидирани. Proxy Finder вече ги проверява веднага, така че pool-ът остава по-свеж с повече активни, работещи proxies в ротация.

Подобрено

Playground вече работи на телефони

Под 768px редът за URL се пренарежда в два реда, response табовете се превъртат хоризонтално, а таблицата с cookie става мрежа от карти. tooltips с подсказки се отварят при tap вместо при hover, а iPhone SE (под 374px) получава допълнително свиване. Бутонът Send е центриран правилно и дълъг URL вече не избутва страницата в хоризонтално превъртане.

Подобрено

Разширяването на Playground вече е истински overlay на цял екран

Преди функцията за разширяване разтягаше response картата в потока на страницата, поради което високите панели добавяха body скрол и изместваха layout-а. Сега тя е фиксиран overlay между sidebar-а и края на viewport-а, с панели, които се разширяват, за да запълнят viewport-а. Escape я затваря, като един helper управлява click и key пътищата.

Оправено

Playground cookies следват host-only правилата на RFC 6265

Host-only cookies изтичаха към поддомейни. Вече проследяваме правилно атрибута Domain и добавихме HO badge в Parsed изгледа за (редкия) host-only случай. Raw изгледът съвпада с изпратеното от upstream: Domain=.example.com за domain cookies и без Domain= ред за host-only.