Aurabase-logo
aurabasisdocumenten
documenten›Gidsen›Upgrade to SDK 0.6

Upgrade naar SDK 0.6 en de nieuwe functieregels

Een checklist voor projecten die Edge Functions aanroepen vanuit de JavaScript SDK, met de geheimen die u mogelijk moet rouleren.

6 min lezen·Niveau tussenproduct·Herzien op 12 okt 2026
Deze Engelse tekst is automatisch gegenereerd op basis van het Franse origineel en is nog niet beoordeeld.
Deze pagina is automatisch vertaald. De Engelse versie is gezaghebbend.
#
Samenvatting

1. Wat is er veranderd

Installeer de nieuwe versie:

terminalbash
npm install @aurabase/aurabase-js@0.6.0

De release bevat één beveiligingswijziging en verschillende oplossingen voor de manier waarop fouten en reacties worden gerapporteerd. De beveiligingswijziging zit ook in de functies service: deze is van toepassing op uw project zodra de service wordt bijgewerkt, welke SDK-versie u ook gebruikt.

#
Breken

2. Veranderingen doorbreken

Beheeroproepen hebben nu een service_role-sleutel nodig

functions.list(), get(), listJobs(), getJob(), enqueueJob(), listCronJobs(), createCronJob() en deleteCronJob() retourneren 403 naar een openbare sleutel of een ingelogde gebruiker. Voorheen stuurden list() en get() de broncode en de variabelen van elke functie terug naar iedereen die de publieke sleutel bezat. Zie het beveiligingsmodel.

before.ts (browser)typescript
const { data } = await aura.functions.list() // gewerkt met de publieke sleutel
na: verplaats het naar uw servertypescript
// server/api/functions.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))

Retourneer alleen wat uw frontend nodig heeft (namen bijvoorbeeld), nooit de hele definitie.

Een body die geen JSON kan zijn, wordt geweigerd

invoke(name, { body: new Blob(…) }), en hetzelfde met ArrayBuffer, getypte arrays, FormData, URLSearchParams of ReadableStream, retourneert nu de foutcode invalid_body. Voorheen ontving de functie {} en werd er geen fout gerapporteerd. Codeer binaire gegevens (base64) of upload deze naar Storage en stuur het pad ervan.

De eigen 502, 503 of 504 van een functie is een FunctionsHttpError

Voorheen werden deze statussen altijd geclassificeerd als FunctionsRelayError, zelfs als uw code deze retourneerde. Nu betekent FunctionsRelayError dat het -platform mislukt is. Als u het opnieuw hebt geprobeerd op FunctionsRelayError, controleer dan of uw logica voor opnieuw proberen nog steeds overeenkomt: zie fouten, time-outs en nieuwe pogingen.

FunctionDef is nauwkeuriger

env_vars is Record<string, string> (het was Record<string, unknown>) en permissions is toegevoegd. Code die deze velden leest, blijft werken; code die waarden van een ander type heeft toegewezen, wordt niet langer gecompileerd.

#
Oplossingen

3. Gedragsoplossingen

VoorNu
Een functie die 500 retourneerde met tekst produceerde het bericht "null"Het bericht is de tekst die uw functie heeft geretourneerd
Een functie die 200 retourneert met de tekst { data: null, error: null }data is de tekst
Een binair antwoord in de standaardmodus produceerde { data: null, error: null }error.code is invalid_response en het bericht suggereert responseType
responseType: 'text' met een fout JSON { "error": "…" } liet HTTP 503 zienHet bericht wordt gelezen vanuit de JSON, zoals in de standaardmodus
'text', 'blob' en 'arrayBuffer' hadden geen standaard time-outDe clienttime-out (30 s) is van toepassing
Er is een functienaam ongecodeerd in de URL ingevoegdHet is gecodeerd: a/../b blijft binnen zijn pad
delaySecs voor een taak werd genegeerd: de taak werd onmiddellijk uitgevoerdDe taak wacht op de datum

Nieuwe exports: FunctionsHttpError, FunctionsRelayError, isRelayStatus en FunctionsResponseType komen zowel van @aurabase/aurabase-js als van @aurabase/functions. Als je ze hebt geïmporteerd vanuit @aurabase/functions, blijft dat werken; met pnpm heb je dat pakket niet langer nodig als directe afhankelijkheid.

In @aurabase/auth is het type email in het resultaat van getClaims() nu string | null, wat de service retourneert voor een gebruiker zonder e-mailadres.

CLI. aura functions deploy wist niet langer de geheimen van een functie die al bestaat. aura functions invoke --data weigert ongeldige JSON in plaats van {} te verzenden. aura functions download werkt voor Deno-functies. aura functions serve luistert op de poort die het aankondigt. aura studio opent de Studio op poort 3000.

#
Beveiliging

4. Roteer blootgestelde geheimen

Als uw project draaide op een serviceversie die ouder was dan deze wijziging, kon elke houder van uw openbare sleutel de code en de variabelen van uw functies lezen. Stel dat ze zijn gelezen:

  1. Maak een lijst van uw functies met een service_role-toets en open de variabelen van elke functie.
  2. Roteer elk geheim dat ze bevatten: betalingssleutels, webhookgeheimen, tokens van derden.
  3. Verwijder geheimen die rechtstreeks in index.ts zijn geschreven en verplaats ze naar variabelen.
  4. Controleer de taken en waarschuwingsregels van het project voor vermeldingen die u niet heeft aangemaakt.
#
Controlelijst

5. Controlelijst

  • Zoek in uw code naar functions.list(, functions.get(, listJobs(, getJob(, enqueueJob(, createCronJob(, deleteCronJob( en listCronJobs( in code die in een browser of met een openbare sleutel wordt uitgevoerd.
  • Zoek naar body:-waarden die geen gewone JSON zijn.
  • Controleer de logica voor nieuwe pogingen die afhankelijk is van FunctionsRelayError.
  • Roteer de geheimen zoals hierboven beschreven.
  • Werk de CLI bij.
Laatst bijgewerkt · 12 okt 2026