AlleNeuVerbessertBehoben
Verbessert

Playground-Refresh, Reset und On-Demand-Übertragungen

Ein Playground-Refresh lässt den statischen Zustand nicht mehr kurz aufblinken, bevor deiner wieder erscheint. Ein neuer Reset-Button (nach einer Bestätigung) leert alle drei Request-Tabs, Cookies und übertragenen Proxys in einem Rutsch. Eine Response kann jetzt auf Anfrage auch ihre Proxy-ID oder ihren User-Agent in den nächsten Request übertragen, anstatt sich im Hintergrund automatisch anzuwenden.

Neu

Sieh, was jeder Request an Credits kostet

Jede API-Response enthält jetzt einen x-foura-credits-Header, der zeigt, was dieser Aufruf gekostet hat. Eine neue Budget-Ansicht im Dashboard schlüsselt den Credit-Verbrauch nach API-Key, Domain und Client-IP in einem Timeline-Chart auf, und der Playground zeigt dasselbe bei jeder Response, damit du einen Workload vor dem Hochskalieren dimensionieren kannst.

Neu

FourA Blog jetzt in sieben Sprachen

Jeder Beitrag auf dem Blog wird jetzt auf Englisch, Bulgarisch, Deutsch, Polnisch, Vietnamesisch, Chinesisch und Arabisch gerendert. Code-Blöcke, Markdown und Links bleiben erhalten, und die Suche liefert lokalisierte Titel.

Verbessert

Responses geben genutzten Proxy zurück

Jede Single-Response enthält jetzt die Proxy-ID, die den Request verarbeitet hat, und Browser-Responses tun dasselbe. Nützlich für verkettete Aufrufe, die denselben Proxy beibehalten müssen.

Neu

Arabisch jetzt online (mit RTL)

Die Hauptseite rendert jetzt auf Arabisch mit vollem Right-to-Left-Layout, was die Liste der Sprachen auf sieben erhöht. Wenn deine Browsersprache nicht mit der Seite übereinstimmt, auf der du gelandet bist, bietet dir ein schmaler Banner an, die Sprache zu wechseln.

Verbessert

Sortierbare Spalten und einklappbare Sidebar

Klicke auf einen Spaltenkopf im Dashboard, um die Spalte zu sortieren. Das funktioniert bei Activity, API Keys und Sessions, bleibt beim Auto-Refresh bestehen und Strg-Klick (Cmd auf dem Mac) setzt die Auswahl zurück. Die Sidebar lässt sich auch zu einer Icon-Leiste einklappen, wenn die Tabelle mehr Platz braucht.

Neu

Browser löst interaktives Turnstile End-zu-End

Websites, die Requests hinter einem interaktiven Challenge-Widget blockieren (das Managed-Turnstile-Pattern ist hierbei der Standard), liefern jetzt gerendertes HTML zurück, wenn du Browser mit unblocker: true aufrufst. End-zu-End verifiziert gegen bekannte, geschützte Websites, die zuvor die Challenge-Seite zurückgegeben haben.

Neu

Website und Playground in sechs Sprachen

Wähle deine Sprache über den Globus im Header. Die Website und der Playground sind jetzt auf Bulgarisch, Chinesisch, Deutsch, Polnisch, Vietnamesisch und Englisch verfügbar, mit lokalisierten URLs, die du als Lesezeichen speichern oder teilen kannst.

Behoben

Cross-Origin-Zugriff auf die API eingeschränkt

Wir haben den Cross-Origin-Zugriff eingeschränkt, sodass nur noch foura.ai die API mit Credentials aufrufen kann. Zudem haben wir einen Input-Filter auf dem Metrics-Endpoint gehärtet und ein Entwicklungs-Fallback-Secret entfernt. An bestehenden Integrationen ändert sich nichts.

Behoben

Eigene Validate-Regeln zählen als Erfolg

Wenn du validate.status.accept für einen Request gesetzt hast, behandelt die Engine einen akzeptierten Nicht-200-Status als sauberen Erfolg. Die Activity-Anzeige hat diese bisher noch als Fehler markiert, was deine Nutzungsstatistiken verfälscht hat. Die Ergebnisse folgen jetzt deiner Validate-Entscheidung, sodass ein von dir akzeptierter 403-Status als Erfolg und nicht als App-Fail angezeigt wird.

Verbessert

Aktivitäts-Labels entsprechen der Übersicht

Bisher zeigte die Aktivität rohe Ergebnis-Strings wie Application_fail, während die Übersicht benutzerfreundliche Labels (App Fail) mit den passenden Farben nutzte. Die Aktivität nutzt jetzt dieselben Labels und Farben, sodass beide Ansichten einheitlich zu lesen sind.

Behoben

Nicht-UTF-8-Seiten werden jetzt sauber decodiert

Wenn du kyrillische, chinesische, japanische oder andere Nicht-UTF-8-Seiten über Single gescrapt hast, kam der Body bisher als Mojibake zurück. Wir haben zuvor jede Response erzwungen als UTF-8 decodiert, bevor du die Raw-Bytes sehen konntest. Jetzt lesen wir das Charset aus der Response (Content-Type, dann <meta charset>, dann UTF-8-Fallback) und decodieren es korrekt. Danke an Alexandar Kanchev (Sensika) für die Meldung.

Behoben

Fake-Proxys abgefangen, die deinen Request zurückspiegeln

Einige Proxys da draußen leiten deinen Request gar nicht wirklich weiter. Sie spiegeln ihn als Klartext-Server-Dump zurück und versuchen, den Inhalt abzugreifen. Wir erkennen dieses Muster jetzt, bevor die Response deinen Code erreicht, sodass Single, Browser und Proxy Finder alle einen echten Fehler (oder Retry) statt des Mülls zurückgeben.

Neu

Beliebige Aktivitätszeile im Playground erneut ausführen

Jede Aktivitätszeile mit einem gespeicherten Payload ist jetzt anklickbar: Der Dialog zeigt den vollständigen Request und die Response (formatiert, mit Kopier-Buttons und klaren Meldungen für Requests, die fehlgeschlagen sind, bevor ein Body erzeugt wurde). Klicke auf „Open in Playground“, um genau diesen Aufruf wieder in das Formular zu laden, wobei die archivierte Response bereits gerendert ist, sodass du Parameter anpassen und ihn direkt erneut ausführen kannst, ohne ihn neu zu bauen. Gespeicherte Payloads bleiben 24 Stunden erhalten, die letzten 200 pro Key.

Verbessert

Jede API-Response enthält eine Request-ID

Authentifizierte Aufrufe enthalten jetzt einen X-Foura-Request-Id-Header. Speichere ihn in deinen eigenen Logs und du kannst jeden Request mit der entsprechenden Zeile in Activity abgleichen oder ihn an den Support übergeben, damit wir genau nachsehen können, was auf unserer Seite passiert ist.