forja

Llaves y permisos

Tu app le habla a la API de Forja con una llave. Hay dos clases: las privadas, para tu servidor, con permisos que elegís, y las públicas, para pegar en una página web, que solo leen.

Cómo se usa una llave

Se manda en el encabezado Authorization: Bearer <llave>. Las creás en Staging y API keys, pestañaLlaves. Forja guarda solo una huella de la llave, no la llave: por eso se muestra una única vez al crearla. Si la perdés, creás otra y revocás la vieja. Cada llave se puede revocar cuando quieras.

Llaves privadas

Son para tu servidor o tu backend. Cada una tiene los permisos que le marques al crearla:

PermisoQué permite
Leer datosLeer registros con la API de tablas, y por MCP listar tablas, consultar y buscar en documentos.
Escribir datosCrear, editar y borrar registros, con la API de tablas y por MCP. Es un permiso delicado.
Cambiar estructuraPor MCP: crear tablas y cambiar el tipo de una columna, lo que puede hacer perder datos. Solo el dueño del proyecto puede darlo.
CobrosCrear y consultar cobros de Mercado Pago. Solo el dueño del proyecto puede darlo.
FuncionesInvocar tus funciones privadas.

Una llave solo hace lo que sus permisos habilitan: si llamás a algo que no tiene, la API responde 403 y te dice qué permiso falta. Dale a cada llave lo mínimo que necesita.

Producción y staging

Las llaves de producción empiezan con fk_live_ y las de staging con fk_test_. Una llave de staging trabaja sobre los datos de staging. Las de staging no pueden tener los permisos de Cobros ni de Cambiar estructura, para que una prueba no cree cobros reales ni toque la estructura de producción. El entorno de staging depende de tu plan: mirá la sección Precios.

Llaves públicas (para el navegador)

Una llave pública empieza con fk_pub_ y se puede pegar en el código de una página, porque lo que protege tus datos no es que sea secreta sino lo poco que puede hacer:

  • Solo lee. No puede crear, editar ni borrar nada.
  • Solo las tablas y columnas que autorices. Una columna que no marcaste no se devuelve ni se puede filtrar.
  • Solo desde los sitios que autorices. Forja revisa el encabezado Origin del navegador. Para probar en tu computadora, localhost cubre cualquier puerto.
  • Solo producción. Solo las puede crear el dueño del proyecto, y hace falta al menos una tabla con la API activada.
  • Tiene su propio límite de pedidos por minuto, por llave y por visitante, para que uno solo no gaste el cupo de todos.
JavaScript (navegador)
// En el navegador, con una llave pública (fk_pub_…): solo lectura
const res = await fetch(
  "https://api.getforja.site/v1/tables/<ID_DEL_PROYECTO>/productos?limit=50",
  { headers: { Authorization: "Bearer fk_pub_…" } },
);
const { records } = await res.json();

Qué no es una llave pública. El control de sitios frena que otra página reutilice tu llave desde un navegador, perono frena a un programa que falsee el encabezado. Por eso nunca autorices una tabla con datos sensibles: lo que expongas con una llave pública, asumí que cualquiera puede leerlo.

Buenas prácticas

  • Guardá las llaves privadas en variables de entorno de tu servidor, nunca en el código de una página ni en un repositorio público.
  • No pegues llaves privadas en el prompt de herramientas de IA que generan código, ni en capturas o chats.
  • Si una llave privada se expuso, revocala de inmediato y creá otra.

Información revisada el 2026-10-24.