Aura Logo
aurabasedocumentos
documentos›Guias›Upgrade to SDK 0.6

Atualize para o SDK 0.6 e as novas regras de funções

Uma lista de verificação para projetos que chamam Edge Functions do JavaScript SDK, com os segredos que você pode precisar para alternar.

6 min lido·Nível intermediário·Revisado em 12 de out. de 2026
Este texto em inglês foi gerado automaticamente a partir do original em francês e ainda não foi revisado.
Esta página foi traduzida automaticamente. A versão em inglês é oficial.
#
Resumo

1. O que mudou

Instale a nova versão:

terminalbash
npm install @aurabase/aurabase-js@0.6.0

A versão tem uma alteração de segurança e várias correções na forma como os erros e as respostas são relatados. A mudança de segurança também está nas funções service: ela se aplica ao seu projeto assim que o serviço for atualizado, qualquer que seja a versão do SDK que você usar.

#
Quebrando

2. Mudanças significativas

As chamadas de gerenciamento agora precisam de uma chave service_role

functions.list(), get(), listJobs(), getJob(), enqueueJob(), listCronJobs(), createCronJob() e deleteCronJob() retornam 403 para uma chave pública ou um usuário conectado. Antes, list() e get() retornavam o código-fonte e as variáveis ​​de cada função para qualquer pessoa que possuísse a chave pública. Consulte o modelo de segurança.

before.ts (navegador)typescript
const { data } = await aura.functions.list() // trabalhei com a chave pública
depois: mova-o para o seu servidortypescript
// servidor/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))

Retorne apenas o que seu front end precisa (nomes, por exemplo), nunca a definição completa.

Um corpo que não pode ser JSON é recusado

invoke(name, { body: new Blob(…) }), e o mesmo com ArrayBuffer, arrays digitados, FormData, URLSearchParams ou ReadableStream, agora retorna o código de erro invalid_body. Antes, a função recebia {} e nenhum erro era reportado. Codifique dados binários (base64) ou carregue-os no armazenamento e envie seu caminho.

O próprio 502, 503 ou 504 de uma função é um FunctionsHttpError

Antes, esses status eram sempre classificados como FunctionsRelayError, mesmo quando seu código os retornava. Agora FunctionsRelayError significa que a plataforma falhou. Se você tentou novamente em FunctionsRelayError, verifique se sua lógica de nova tentativa ainda corresponde: consulte erros, tempos limite e novas tentativas.

FunctionDef é mais preciso

env_vars é Record<string, string> (era Record<string, unknown>) e permissions é adicionado. O código que lê esses campos continua funcionando; o código que atribuiu valores de outro tipo não é mais compilado.

#
Correções

3. Correções de comportamento

AntesAgora
Uma função retornando 500 com texto produziu a mensagem "null"A mensagem é o texto que sua função retornou
Uma função retornando 200 com texto produzido { data: null, error: null }data é o texto
Uma resposta binária no modo padrão produziu { data: null, error: null }error.code é invalid_response e a mensagem sugere responseType
responseType: 'text' com um erro JSON { "error": "…" } mostrou HTTP 503A mensagem é lida no JSON, como no modo padrão
'text', 'blob' e 'arrayBuffer' não tiveram tempo limite padrãoO tempo limite do cliente (30 s) se aplica
Um nome de função foi inserido no URL não codificadoEstá codificado: a/../b permanece dentro de seu caminho
delaySecs em um trabalho foi ignorado: o trabalho foi executado imediatamenteO trabalho aguarda sua data

Novas exportações: FunctionsHttpError, FunctionsRelayError, isRelayStatus e FunctionsResponseType vêm de @aurabase/aurabase-js e também de @aurabase/functions. Se você os importou de @aurabase/functions, isso continua funcionando; com o pnpm você não precisa mais desse pacote como dependência direta.

Em @aurabase/auth, o tipo de email no resultado de getClaims() agora é string | null, que é o que o serviço retorna para um usuário sem endereço de e-mail.

CLI. aura functions deploy não apaga mais os segredos de uma função que já existe. aura functions invoke --data recusa JSON inválido em vez de enviar {}. aura functions download funciona para funções Deno. aura functions serve escuta na porta que anuncia. aura studio abre o Studio na porta 3000.

#
Segurança

4. Gire os segredos expostos

Se o seu projeto fosse executado em uma versão de serviço anterior a essa alteração, qualquer detentor de sua chave pública poderia ler o código e as variáveis ​​de suas funções. Suponha que eles foram lidos:

  1. Liste suas funções com uma tecla service_role e abra as variáveis de cada uma.
  2. Alterne todos os segredos que eles contêm: chaves de pagamento, segredos de webhook, tokens de terceiros.
  3. Remova os segredos que foram escritos diretamente em index.ts e mova-os para variáveis.
  4. Verifique os trabalhos e as regras de alerta do projeto para entradas que você não criou.
#
Lista de verificação

5. Lista de verificação

  • Pesquise seu código por functions.list(, functions.get(, listJobs(, getJob(, enqueueJob(, createCronJob(, deleteCronJob( e listCronJobs( em código executado em um navegador ou com uma chave pública.
  • Procure valores body: que não sejam JSON simples.
  • Verifique a lógica de nova tentativa que depende de FunctionsRelayError.
  • Gire os segredos conforme descrito acima.
  • Atualize a CLI.
Última atualização · 12 de out. de 2026