Ihre Logik bleibt Ihre

Fóir hostet Ihren Code nicht. Sie schreiben eine Funktion, hosten sie an beliebiger Stelle, die HTTP bedient, und registrieren ihre URL als Operation. Fóir ruft sie auf, wiederholt den Aufruf, wenn eine Wiederholung helfen könnte, und führt Protokoll über jeden Lauf.

Ein HTTP-Vertrag

Der Aufruf einer Operation ist ein HTTP POST mit einem JSON-Body, daher genügt jede Sprache, die HTTP bedienen und ein signiertes Token prüfen kann. Die veröffentlichten SDK-Helfer gibt es für JavaScript und TypeScript. In einer anderen Sprache implementieren Sie die Anfrage und die Token-Prüfung selbst. Der Endpunkt muss öffentlich erreichbar sein, und Loopback-, private und Cloud-Metadaten-Adressen werden beim Speichern und erneut beim Aufruf abgelehnt. Für die lokale Arbeit leitet foir operations dev die Dispatches des Projekts an Ihren Rechner weiter, ohne ihn offenzulegen.

Das Token, das jeder Aufruf trägt

Jeder Aufruf trägt ein signiertes, kurzlebiges Token im Header X-Foir-Token und ist auf genau diesen einen Dispatch beschränkt. Ihre Funktion prüft es gegen die veröffentlichten Schlüssel von Fóir. Es enthält genau die Fähigkeiten, die die Operation deklariert hat, etwa die Datensätze eines Modells zu lesen oder die eines anderen zu schreiben. Ihre Funktion hält keinen API-Schlüssel. Sie baut ihren Client aus dem Token und ruft Fóir als die Operation auf.

Secrets lesen

Mit demselben Token liest Ihre Funktion die im Projekt gespeicherten Secrets. Sie holt eines mit getSecret bei Bedarf ab, und nichts wird in die Anfrage eingesetzt, die Fóir sendet. Die Ausnahme ist eine Template-Operation, bei der Fóir selbst eine Drittanbieter-API aufruft und keiner Ihrer Codes läuft. Dort setzt Fóir das Secret aus dem Vault in die ausgehende Anfrage ein.

Wiederholungen und das Laufprotokoll

Ein Fehler, den ein weiterer Versuch beheben könnte, etwa ein nicht erreichbarer Endpunkt oder ein Serverfehler, wird wiederholt, standardmäßig dreimal. Ein Client-Fehler oder eine Ablehnung wird es nicht. Ein Lauf, der seine Wiederholungen aufbraucht, landet in einer Dead-Letter-Queue, wo Sie ihn prüfen, wiederholen oder verwerfen können. Jede Ausführung wird mit Status, Dauer, Ergebnis oder Fehler, Auslöser und Anzahl der Wiederholungen gespeichert. Dieselbe Payload kann mehr als einmal eintreffen, schreiben Sie den Handler daher idempotent.

Details nachlesen

Der Operationen-Leitfaden behandelt den Anfrage- und Token-Vertrag, Auslöser, synchrone und asynchrone Modi, Wiederholungen und das Ausführungsprotokoll.