Geführt seit Oktober 2019

Die öffentliche API und warum es sieben Jahre dauerte

Plattform-Revision 5.4 brachte im Juni eine token-authentifizierte API. Hier ist, was sie kann, was sie bewusst nicht tut und warum wir so lange gewartet haben.

Die API verließ die Beta am zweiten Juli. Sie wurde mit Plattform-Release 5.4 im Juni ausgeliefert, lief als Einladungs-Beta seit Februar mit etwas mehr als vierhundert Konten darauf und hat ihre Form seit April nicht geändert. Versioniert, dokumentiert und durch dieselbe Verfügbarkeitszusage abgedeckt wie das Panel.

Sie als spät zu bezeichnen, wäre großzügig. Der Grund ist nicht mysteriös: Ein Interface, das auf einem Provisioning-System sitzt, das dreieinhalb Minuten braucht, um einen Server zu bauen, wäre ein Interface zum Abfragen eines Spinners gewesen. Wir haben zuerst die Queue neu geschrieben, 2025, und die Reihenfolge war beabsichtigt und nicht glücklich.

Was sie tut

GruppeWas du tun kannstHinweise
InstanzenErstellen, umziehen, neu aufbauen, Snapshot, wiederherstellen, löschenGrößenänderung nach oben ist live, nach unten braucht einen Neustart
ImagesOS-Katalog auflisten, eigenes ISO per URL registrierenBenutzerdefinierte ISO-Installationen sind weiterhin manuell und weiterhin langsam
NetzwerkIPv4 hinzufügen, Reverse-DNS bearbeiten, IPv6 /48 anfordernDelegiert, niemals proxied
FilterungAngriffsereignisse lesen, Layer-7-Regeln bei DDoS Pro einrichtenBasisfilter hat nichts zu konfigurieren
AbrechnungGuthaben lesen, Rechnungen auflisten, Aufladungsrechnung öffnenKeine Kartenfelder, weil es keine Karten gibt
EreignisseEreignisprotokoll abfragen oder Webhook registrierenSigniert mit einem pro-Konto-Geheimnis

Alles ist JSON über HTTPS, und jedes Objekt, das das Panel dir zeigen kann, ist ein Objekt, das die API zurückgeben kann. Es gibt keine Funktionsebene, die der Weboberfläche vorbehalten ist, was ein Versprechen ist, das uns etwas kostet: Das Panel nutzt jetzt dieselben öffentlichen Endpunkte wie du, also ist eine kaputte API ein kaputtes Panel, und wir merken das sofort.

Authentifizierung

Tokens werden im Panel erstellt, mit Berechtigungen versehen und genau einmal angezeigt. Keine Passwort-Authentifizierung, keine Session-Cookies, keine Weiterleitung an einen Identitätsanbieter, dem wir dann etwas anvertrauen müssten, worauf wir erheblichen Aufwand verwendet haben, es nicht zu sammeln.

Ein Token trägt eine Berechtigung von read, write oder billing, eine optionale Einschränkung auf eine einzelne Site, eine optionale Einschränkung auf eine Liste von Instanzen und ein Ablaufdatum, das du festlegst. Sechzig Tage sind die Standardeinstellung. Tokens können einzeln widerrufen werden, und der Widerruf ist am Edge innerhalb von zwei Sekunden wirksam, was wichtiger ist, als es klingt, wenn ein Build-Server von jemandem neu aufgebaut wird, der nicht wusste, was darauf war.

Da ein Konto hier eine E-Mail-Adresse und ein Passwort-Hash ist, gibt es kein Kundendaten-Objekt, das abgerufen werden kann. Die API hat kein Namensfeld, kein Adressfeld, kein Firmenfeld und kein Steuerfeld, aus genau dem Grund, aus dem das Anmeldeformular keins hat.

Rate-Limits, Idempotenz, Fehler

Sechshundert Lesevorgänge pro Minute und sechzig Schreibvorgänge, gezählt pro Token statt pro Konto, sodass ein lautes Skript den Rest deiner Automatisierung nicht aushungern kann. Limits werden in den Headern jeder Antwort zurückgegeben, auch bei erfolgreichen.

Jeder Schreibvorgang akzeptiert einen Idempotenz-Schlüssel. Wenn du eine Erstellung mit demselben Schlüssel wiederholst, erhältst du die ursprüngliche Instanz zurück und nicht eine zweite, die daneben abgerechnet wird. Das ist die einzige Funktion, für die sich Beta-Tester am meisten bedankten, was etwas darüber aussagt, wie der Rest der Branche mit einem Timeout während der Provisionierung umgeht.

Fehler sind ein dokumentierter Maschinencode, ein Satz, den ein Mensch lesen kann, und eine Anfragekennung. Füge die Kennung in ein Ticket ein, und der Support kann dieselbe Anfrage sehen, die du gesehen hast, ohne dass du sie reproduzieren musst.

Was sie bewusst nicht tut

  • Kein Fiat, niemals. Abrechnungsendpunkte lesen dein Guthaben und öffnen eine Aufladungsrechnung. Die Abwicklung bleibt bei OxaPay und der von dir gewählten Chain, genau wie auf der Zahlungsseite beschrieben.
  • Keine Unterkonten oder Rollen. Ständig angefragt. Nicht gebaut, weil die naheliegende Implementierung bedeutet, eine Struktur darüber zu halten, wer für wen arbeitet, und wir lieber bereichsbeschränkte Tokens ausliefern, die ablaufen, und dir dein Organigramm selbst überlassen.
  • Kein Autoscaling. Instanzen sind dedizierte Kerne auf echtem Silizium, kein Pool, den wir herbeizaubern können. Du kannst nach eigenem Zeitplan erstellen und löschen; wir werden nicht so tun, als läge darunter eine elastische Abstraktion.
  • Keine SDK-Matrix. Ein Referenz-Client und schlichtes HTTP als Vertrag. Sechs halb gepflegte Sprachbindungen würden schlechter altern als die Dokumentation.

Was wir gerne kaputt fänden

Die Beta fand neun Fehler, die es wert waren, behoben zu werden, von denen drei auf interessante Weise unsere waren und sechs die Dokumentation, die log. Wenn du einen zehnten findest, ist der Missbrauch eines Rate-Limits beim Testen in Ordnung und erwartet, und der Support hätte lieber die Anfragekennung als einen Screenshot.

Referenz unter der Dokumentation. Das Changelog für Release 5.4 listet die sieben Endpunkte auf, die ihre Form zwischen Februar und April geändert haben, und das sind die einzigen Breaking Changes in Version eins.

Bereit, wenn Sie es sind

Wählen Sie eine Stadt. Wählen Sie eine Größe. Bezahlen Sie in Coins.

Keine Formulare darüber, wer Sie sind, kein Warten auf einen Menschen, der Sie genehmigt, kein Anruf zur Verifizierung. Die Rechnung wird beglichen, und die Zugangsdaten landen in Ihrem Posteingang.