Tu lógica sigue siendo tuya

Fóir no aloja tu código. Escribes una función, la alojas en cualquier sitio que sirva HTTP y registras su URL como una operación; Fóir la llama, la reintenta cuando un reintento puede ayudar y guarda un registro de cada ejecución.

Un contrato HTTP

Una llamada a una operación es un HTTP POST con un cuerpo JSON, así que sirve cualquier lenguaje capaz de servir HTTP y verificar un token firmado. Los helpers del SDK publicados son para JavaScript y TypeScript. En otro lenguaje implementas tú mismo la petición y la comprobación del token. El endpoint tiene que ser enrutable públicamente, y las direcciones de loopback, privadas y de metadatos de la nube se rechazan al guardar y de nuevo al llamar. Para el trabajo en local, foir operations dev reenvía los envíos del proyecto a tu máquina sin exponerla.

El token que lleva cada llamada

Cada llamada lleva un token firmado y de corta duración en la cabecera X-Foir-Token (limitado a ese único envío). Tu función lo verifica con las claves publicadas de Fóir. Lleva exactamente las capacidades que declaró la operación, como leer los registros de un modelo o escribir los de otro. Tu función no guarda ninguna clave de API. Construye su cliente a partir del token y llama a Fóir como la operación.

Lectura de secretos

Con el mismo token tu función puede leer, en el proyecto, los secretos. Obtiene uno con getSecret cuando lo necesita, y no se sustituye nada en la petición que envía Fóir. La excepción es una operación con plantilla, en la que Fóir llama él mismo a una API de terceros y no se ejecuta nada de tu código. Ahí Fóir inserta el secreto del vault en la petición saliente.

Reintentos y registro de ejecuciones

Un fallo que otro intento podría resolver, como un endpoint inaccesible o un error de servidor, se reintenta, tres veces por defecto. Un error de cliente o un rechazo, no. Una ejecución que agota sus reintentos pasa a una cola de mensajes fallidos, donde puedes inspeccionarla, reintentarla o descartarla. Cada ejecución se almacena con su estado, duración, resultado o error, desencadenante y número de reintentos. La misma carga puede llegar más de una vez, así que escribe el manejador para que sea idempotente.

Lee el detalle

La guía de operaciones cubre el contrato de petición y token, los desencadenantes, los modos síncrono y asíncrono, los reintentos y el registro de ejecuciones.