Skip to main content
Em breve no npm O @cubehosting/sdk chama a API pública sem você montar o pedido à mão: um método para cada rota, com os tipos do TypeScript, os logs ao vivo, o envio de arquivos grandes ao Blob e os erros com o code da API. Não tem dependências: usa o fetch do Node.js 20 ou mais novo.
O pacote ainda não está no npm. Esta página mostra como ele funciona; até ele sair, use a API direto, com os exemplos em JavaScript de cada página da referência.

Instalar Em breve

Começar

Crie uma chave em Chaves de API e guarde na variável CUBE_API_KEY. Leitura basta para ver projetos, logs e métricas; para enviar, iniciar, parar, reiniciar e mexer nas variáveis, use uma de leitura e escrita. A chave Só Blob alcança só os métodos do Blob.
Use o SDK no servidor, no CI ou no seu computador, nunca no navegador: quem abre a página veria a chave. Cada método tem o nome da operação no OpenAPI: primeiro os IDs do caminho, depois o corpo ou a busca, com os campos da API. A resposta vem como a API manda.

Enviar código

O .zip vai como Buffer, Uint8Array ou Blob, com o mesmo limite do plano (5 MB no Free e 10 MB nos pagos). Os outros campos são os de Criar um projeto; variables é um objeto { NOME: "valor" }.
Para mandar uma pasta sem montar o .zip, respeitando o .gitignore, use a CLI (cube deploy).

Logs ao vivo

Primeiro chegam as últimas lines linhas, depois as novas, e cada mudança de estado como status. follow: false manda só as últimas e termina; source: 'build' mostra a instalação. Feche com break ou com um signal. O texto é do seu projeto: mostre como texto, nunca como HTML.

Blob

O uploadBlob faz os três passos do envio: pede o envio, manda os bytes direto ao armazenamento (em partes de 16 MB acima disso) e confirma. Para um arquivo grande, passe um Blob do disco, que não carrega tudo na memória:
Se uma parte não chega (o SDK tenta cada uma 3 vezes), o erro é um CubeUploadError com o objectId: chame uploadBlob(path, data, { objectId }) com o mesmo arquivo para mandar só o que falta. As partes que chegaram ficam guardadas por 24 horas.

Erros

Toda resposta de erro vira um CubeApiError, com o code fixo em inglês da página Códigos de erro e a mensagem em português para mostrar a uma pessoa.
Sem conexão ou com o tempo esgotado, o erro é um CubeConnectionError. Todos herdam de CubeError.

Segurança

  • A chave fica num campo privado do cliente: não aparece no console.log, no JSON.stringify nem em erro nenhum.
  • O SDK não segue redirecionamento: a chave só vai ao endereço da API.
  • Os bytes do Blob vão direto ao armazenamento pela URL assinada, sem a chave.
  • O User-Agent leva só o nome e a versão do SDK.