Pular para o conteúdo principal

Documentation Index

Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt

Use this file to discover all available pages before exploring further.

Bancos de dados são expostos pelo módulo api.databases — uma adição da v4. Disponível nos planos Standard, Pro e Enterprise.

Criando um banco

api.databases.create(options) provisiona um novo banco. A password e o certificate são retornados apenas no momento da criação — armazene-os agora.
const created = await api.databases.create({
    name: "meu-mongo",
    memory: 512,
    type: "mongo",
    version: "7.0",
});

console.log(created.id);
console.log(created.connection_url);
console.log(created.password);     // exibido uma única vez — guarde com segurança
console.log(created.certificate);  // exibido uma única vez — guarde com segurança
CampoTipoDescrição
namestringNome de exibição
memorynumberMemória alocada em MB
typestringSlug do engine (ex.: mongo, postgres, mysql)
versionstringVersão do engine (ex.: "7.0")

Listando seus bancos

api.user.get() popula user.databases com uma Collection contendo todos os bancos da conta:
const user = await api.user.get();

for (const [id, db] of user.databases) {
    console.log(`${db.name} (${id}) — ${db.type} ${db.ram}MB`);
}

Buscando um banco específico

const db = await api.databases.fetch(created.id);

console.log(db.id);
console.log(db.name);
console.log(db.owner);
console.log(db.type);
console.log(db.ram);
console.log(db.cluster);
console.log(db.port);
console.log(db.createdAt);

Ciclo de vida

await db.start();
await db.stop();

Status e métricas

const status = await db.getStatus();
console.log(`${status.status} • CPU ${status.usage.cpu} • RAM ${status.usage.ram}`);

const metrics = await db.getMetrics();
console.log(`${metrics.length} pontos (até 288 em 24h)`);

Status resumido de todos os bancos

const all = await api.databases.statusAll();

for (const summary of all) {
    console.log(`${summary.databaseId}${summary.running ? "running" : "stopped"}`);

    // Promova para o status completo com .fetch()
    if (summary.running) {
        const full = await summary.fetch();
        console.log(full.usage);
    }
}

Atualizando

db.update(options) altera o nome de exibição e/ou a memória alocada. Pelo menos um campo deve ser fornecido.
await db.update({ name: "primary-db", ram: 1024 });

Credenciais

db.credentials.certificate() retorna o certificado TLS (PEM codificado em base64):
const cert = await db.credentials.certificate();
console.log(`Tamanho do certificado: ${cert.length}`);
db.credentials.reset(type) rotaciona a senha ou o certificado.
// Rotaciona a senha — o novo valor é exibido apenas uma vez
const { password } = await db.credentials.reset("password");
console.log(`Nova senha: ${password}`);

// Rotaciona o certificado — busque o novo via .certificate()
await db.credentials.reset("certificate");
const newCert = await db.credentials.certificate();
db.credentials.certificate() e db.credentials.reset() exigem que o banco esteja rodando.

Snapshots

db.snapshots espelha a API de snapshots de aplicações.
import { writeFile } from "node:fs/promises";

const snapshots = await db.snapshots.list();
console.log(`${snapshots.length} snapshots armazenados`);

const fresh = await db.snapshots.create();
console.log(`URL de download: ${fresh.url}`);

const buffer = await db.snapshots.download();
await writeFile("./db-backup.tar.gz", buffer);

await db.snapshots.restore(
    "00000000-0000-4000-8000-000000000000_mongo",
    "v1",
);
Diferente de app.snapshots.restore({ snapshotId, versionId }), db.snapshots.restore(snapshotId, versionId) usa argumentos posicionais.

Excluindo um banco

Excluir um banco é irreversível. Garanta um snapshot recente caso precise recuperar os dados.
await db.delete();