Questa pagina documenta
@squarecloud/api v6, una riscrittura dell’SDK. Arrivi dalla v5? Leggi la guida alla migrazione v5 → v6.Requisiti
- Node.js 22 o più recente, Deno, Bun o un runtime edge. All’SDK servono solo
fetch,FormData,Blobe i web stream. - Una chiave API (vedi Chiave API e scope).
@squarecloud/api-types.
Installazione
- npm
- pnpm
- yarn
- bun
- deno
Chiave API e scope
Crea una chiave su squarecloud.app/account/security. L’SDK la invia così com’è nell’headerAuthorization (senza prefisso Bearer).
Una chiave può essere limitata a determinati scope (apps:read, apps:deploy, apps:control, ai:chat, …) e ad app o database specifici:
- Una chiamata al di fuori di questi limiti lancia un
SquareCloudAPIErrorcon 403MISSING_SCOPEoRESOURCE_NOT_ALLOWED. - I metodi di elenco (
account.me(),apps.statusAll(), …) restituiscono solo le risorse che la chiave può vedere. - Una chiave sconosciuta, revocata o scaduta produce 401
ACCESS_DENIED.
SQUARECLOUD_API_KEY. Impostala nel terminale in cui li esegui:
- macOS / Linux
- Windows (PowerShell)
Creare il client
- TypeScript / ESM
- CommonJS
TypeError nel costruttore, prima di qualsiasi richiesta.
Opzioni
Moduli
Gli unici export a runtime sono
SquareCloudAPI, SquareCloudAPIError e BASE_URL. Ogni altro export (App, RuntimeStats, ErrorCode, …) è un tipo:
Convenzioni
Prima gli id, in risposta dati semplici
Ogni metodo accetta l’id della risorsa come primo argomento e restituisce dati semplici (niente classi, niente cache). I nomi dei campi sono quelli dell’API (created_at, version_id, lastModified, joinedAt, netIO, …), quindi il riferimento API si applica così com’è.
- Le mutazioni si risolvono in
void, a meno che l’API non restituisca dati (envs.*,deploys.setWebhook,deploys.linkGithubApp,databases.resetCredentialse i metodicreate). - Un risultato stringa non è mai
undefined: è""quando l’API non ne invia. - Gli elenchi arrivano completi in una sola chiamata: non c’è paginazione.
App dei workspace
OgniappId accetta anche la forma composta <appId>-<workspaceId> per agire su un’app condivisa con te tramite un workspace. workspaces.get() e workspaces.list() restituiscono gli id grezzi; l’id composto lo costruisci tu:
Gli id vengono codificati
Gli id nel percorso dell’URL sono codificati in percent-encoding. Un id vuoto,. o .. raggiungerebbe una route diversa, quindi fallisce localmente con INVALID_ID (status 0) prima che venga inviato qualsiasi cosa. Le route dei workspace invece inviano i loro id nel body: lì, INVALID_ID (400) proviene dal server.
Date
Gli argomentistart ed end (vedi Rete) accettano una stringa ISO 8601 o un Date. Le date nelle risposte restano come le invia l’API (stringhe ISO, o millisecondi Unix dove l’API li usa).
Timeout
Un
timeoutMs pari a 0 o inferiore, Infinity o >= 2^31 disattiva tutti i timeout, comprese le soglie minime di 120 s.
Solo cinque metodi accettano un AbortSignal: apps.create, apps.commit, files.write, apps.realtime e downloadSnapshot.
reason del signal, non con un SquareCloudAPIError. Un ciclo realtime() annullato semplicemente termina.
Account
api.account.me() restituisce l’utente autenticato insieme alle app e ai database che la chiave può vedere.
api.account.snapshots({ scope }) elenca tutti gli snapshot dell’account: vedi Snapshot.
Stato della piattaforma
api.service.status() restituisce lo stato pubblico della piattaforma. La route non richiede una chiave valida, ma il client ne richiede comunque una non vuota.
unknown significa che il controllo stesso non è stato possibile: non è la prova di un disservizio.
Prossimi passi
Gestire le applicazioni
Stato, ciclo di vita, log e metriche.
Errori
Classe di errore, retry e rate limit.
Introduzione all'API
URL base, autenticazione e una prima richiesta.
Quickstart della CLI
Fai il deploy e gestisci le app dal terminale.

