Logotipo de Aurabase
aurabasedocumentos
documentos›Guías›Upgrade to SDK 0.6

Actualice a SDK 0.6 y las nuevas reglas de funciones

Una lista de verificación para proyectos que llaman a Edge Functions desde el SDK de JavaScript, con los secretos que quizás necesites rotar.

6 min leer·Nivel intermedio·Revisado el 12 oct 2026
Este texto en inglés se generó automáticamente a partir del original en francés y aún no ha sido revisado.
Esta página fue traducida automáticamente. La versión en inglés es autorizada.
#
Resumen

1. ¿Qué cambió?

Instale la nueva versión:

terminalbash
npm install @aurabase/aurabase-js@0.6.0

La versión tiene un cambio de seguridad y varias correcciones sobre cómo se informan los errores y las respuestas. El cambio de seguridad también está en las funciones servicio: se aplica a su proyecto tan pronto como se actualiza el servicio, cualquiera que sea la versión de SDK que utilice.

#
rompiendo

2. Cambios importantes

Las llamadas de administración ahora necesitan una clave service_role

functions.list(), get(), listJobs(), getJob(), enqueueJob(), listCronJobs(), createCronJob() y deleteCronJob() devuelven 403 a una clave pública o a un usuario que ha iniciado sesión. Antes, list() y get() devolvían el código fuente y las variables de cada función a cualquiera que tuviera la clave pública. Consulte el modelo de seguridad.

before.ts (navegador)typescript
const { data } = await aura.functions.list() // trabajó con la clave pública
después: muévelo a tu servidortypescript
// servidor/api/funciones.ts
const admin = createClient(process.env.AURA_URL!, process.env.AURA_SERVICE_ROLE_KEY!)
export const GET = async () => Response.json((await admin.functions.list()).data?.map((f) => f.name))

Devuelve sólo lo que tu interfaz necesita (nombres, por ejemplo), nunca la definición completa.

Se rechaza un cuerpo que no puede ser JSON

invoke(name, { body: new Blob(…) }), y lo mismo con ArrayBuffer, matrices escritas, FormData, URLSearchParams o ReadableStream, ahora devuelve el código de error invalid_body. Antes, la función recibía {} y no se informaba ningún error. Codifique datos binarios (base64) o cárguelos en Almacenamiento y envíe su ruta.

El 502, 503 o 504 propio de una función es un FunctionsHttpError

Antes, estos estados siempre se clasificaban como FunctionsRelayError, incluso cuando su código los devolvía. Ahora FunctionsRelayError significa que la plataforma falló. Si reintentaste en FunctionsRelayError, verifica que tu lógica de reintento aún coincida: consulta errores, tiempos de espera y reintentos.

FunctionDef es más preciso

env_vars es Record<string, string> (era Record<string, unknown>) y se agrega permissions. El código que lee estos campos sigue funcionando; El código que asignó valores de otro tipo ya no se compila.

#
Correcciones

3. Correcciones de comportamiento

antesahora
Una función que devolvía 500 con texto produjo el mensaje "null"El mensaje es el texto que devolvió su función.
Una función que devuelve 200 con texto producido { data: null, error: null }data es el texto
Una respuesta binaria en el modo predeterminado produjo { data: null, error: null }error.code es invalid_response y el mensaje sugiere responseType
responseType: 'text' con un error JSON { "error": "…" } mostró HTTP 503El mensaje se lee desde el JSON, como en el modo predeterminado.
'text', 'blob' y 'arrayBuffer' no tenían tiempo de espera predeterminadoSe aplica el tiempo de espera del cliente (30 s).
Se insertó un nombre de función en la URL sin codificarEstá codificado: a/../b permanece dentro de su ruta
delaySecs en un trabajo fue ignorado: el trabajo se ejecutó de inmediatoEl trabajo espera su fecha.

Las nuevas exportaciones: FunctionsHttpError, FunctionsRelayError, isRelayStatus y FunctionsResponseType provienen de @aurabase/aurabase-js así como de @aurabase/functions. Si los importó desde @aurabase/functions, eso sigue funcionando; con pnpm ya no necesitas ese paquete como dependencia directa.

En @aurabase/auth, el tipo de email en el resultado de getClaims() ahora es string | null, que es lo que devuelve el servicio para un usuario sin una dirección de correo electrónico.

CLI. aura functions deploy ya no borra los secretos de una función que ya existe. aura functions invoke --data rechaza JSON no válido en lugar de enviar {}. aura functions download funciona para funciones Deno. aura functions serve escucha en el puerto que anuncia. aura studio abre Studio en el puerto 3000.

#
Seguridad

4. Rotar los secretos expuestos

Si su proyecto se ejecutó en una versión de servicio anterior a este cambio, cualquier poseedor de su clave pública podría leer el código y las variables de sus funciones. Supongamos que fueron leídos:

  1. Enumere sus funciones con una tecla service_role y abra las variables de cada una.
  2. Rote todos los secretos que contienen: claves de pago, secretos de webhooks, tokens de terceros.
  3. Elimine los secretos que se escribieron directamente en index.ts y muévalos a variables.
  4. Verifique los trabajos y las reglas de alerta del proyecto para ver si hay entradas que no creó.
#
Lista de verificación

5. Lista de verificación

  • Busque su código functions.list(, functions.get(, listJobs(, getJob(, enqueueJob(, createCronJob(, deleteCronJob( y listCronJobs( en código que se ejecuta en un navegador o con una clave pública.
  • Busque valores body: que no sean JSON simples.
  • Verifique la lógica de reintento que depende de FunctionsRelayError.
  • Gire los secretos como se describe arriba.
  • Actualice la CLI.
Última actualización · 12 oct 2026