For the complete documentation index, see llms.txt. This page is also available as Markdown.

Banco de Dados

Listar presets de bancos

get

Devolve o catálogo Dispack de motores disponíveis (versões, portas, volumes), sugestões aleatórias de nome/senha e, por motor, vars com as chaves de ambiente obrigatórias/opcionais e o mapa fromSuggestions (suggested* → env) para montar o body do POST /database sem hardcodar nomes.

Authorizations
api-tokenstringRequired
Responses
200

Presets carregados com sucesso

application/json
objectOptional
get/database/presets
GET /v2/database/presets HTTP/1.1
Host: api.discloud.app
api-token: YOUR_API_KEY
Accept: */*
{
  "status": "ok",
  "data": {
    "databases": [
      {
        "type": "postgres",
        "versions": [
          "16",
          "17"
        ],
        "extensions": [
          "pgvector"
        ],
        "defaultPort": 5432,
        "suggestedDisplayName": "Nova base Brisa",
        "suggestedDbName": "brisa-aurora",
        "suggestedUser": "brisa",
        "suggestedPassword": "a1b2c3d4e5f6",
        "vars": {
          "required": [
            "POSTGRES_DB",
            "POSTGRES_USER",
            "POSTGRES_PASSWORD"
          ],
          "optional": [],
          "fromSuggestions": {
            "POSTGRES_DB": "suggestedDbName",
            "POSTGRES_USER": "suggestedUser",
            "POSTGRES_PASSWORD": "suggestedPassword"
          }
        }
      }
    ]
  }
}

Regenerar sugestões de nomes

get

Regenera suggestedDisplayName / suggestedDbName / suggestedUser sem recarregar o catálogo completo. Não devolve password.

Authorizations
api-tokenstringRequired
Query parameters
typestringOptional

Motor (postgres, mysql, mariadb, mongodb, redis, valkey, clickhouse)

Responses
200

Sugestões geradas

application/json
objectOptional
get/database/presets/random-names
GET /v2/database/presets/random-names HTTP/1.1
Host: api.discloud.app
api-token: YOUR_API_KEY
Accept: */*
{
  "status": "ok",
  "data": {
    "suggestedDisplayName": "Nova base Orion",
    "suggestedDbName": "orion-nova",
    "suggestedUser": "orion"
  }
}

Listar bancos de dados

get

Lista bancos do utilizador e bancos ligados a projects de equipas onde é membro. Segredos (vars / varsEncrypted) são omitidos.

Authorizations
api-tokenstringRequired
Responses
200

Bancos listados com sucesso

application/json
objectOptional
get/database
GET /v2/database HTTP/1.1
Host: api.discloud.app
api-token: YOUR_API_KEY
Accept: */*
{
  "status": "ok",
  "data": [
    {
      "_id": "1714500000365db",
      "userID": "123456789012345678",
      "displayName": "My Postgres staging",
      "projectID": null,
      "db": {
        "type": "postgres",
        "version": "17",
        "port": 5432
      },
      "clusterName": "BOLT",
      "totalRam": 512,
      "hostname": "pedro042",
      "addedAtTimestamp": 1714500000000
    }
  ]
}

Criar banco de dados

post

Inicia o provisionamento assíncrono de um banco gerenciado. Devolve HTTP 200 de imediato com o novo id. Consulte GET /database/{dbID} até o recurso existir e estar online. Plano mínimo Diamond (4). projectID opcional cobra a quota do dono do project e exige acesso de admin.

Authorizations
api-tokenstringRequired
Body
displayNamestringRequired

Nome amigável (obrigatório)

totalRaminteger · min: 100Required

RAM em MB (mínimo 100)

projectIDstringOptional

Projecto opcional a vincular

autoRestartbooleanOptional
Responses
200

Criação iniciada

application/json
objectOptional
post/database
POST /v2/database HTTP/1.1
Host: api.discloud.app
api-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 178

{
  "displayName": "My Postgres staging",
  "db": {
    "type": "postgres",
    "version": "17"
  },
  "vars": {
    "POSTGRES_DB": "app_db",
    "POSTGRES_USER": "app_rw",
    "POSTGRES_PASSWORD": "secret"
  },
  "totalRam": 512
}
{
  "status": "ok",
  "id": "1714500000365db",
  "message": "A base de dados está a ser criada. Acompanhe o progresso consultando o recurso."
}

Detalhes e estado do banco

get

Devolve o estado ao vivo do container e vars em texto plano (desencriptadas). Mesmo modelo de acesso do dashboard: dono ou membro de equipa com acesso ao project.

Authorizations
api-tokenstringRequired
Path parameters
dbIDstringRequired

ID do banco

Responses
200

Estado da base de dados carregado

application/json
objectOptional
get/database/{dbID}
GET /v2/database/{dbID} HTTP/1.1
Host: api.discloud.app
api-token: YOUR_API_KEY
Accept: */*
{
  "status": "ok",
  "message": "Estado da base de dados carregado.",
  "database": {
    "_id": "1714500000365db",
    "projectID": null,
    "clusterName": "BOLT",
    "hostname": "pedro042",
    "displayName": "My Postgres staging",
    "dbType": "postgresql",
    "dbEngine": "postgres",
    "dbVersion": "17",
    "extensions": [],
    "totalRam": 512,
    "owner": {
      "id": "123456789012345678",
      "username": "dev_user",
      "avatar": null
    },
    "perms": null,
    "vars": {
      "POSTGRES_DB": "app_db",
      "POSTGRES_USER": "app_rw",
      "POSTGRES_PASSWORD": "***"
    },
    "online": true,
    "exists": true,
    "totalUsedRam": 187.3,
    "last_restart": "2 minutes",
    "dataVolumeSizeHuman": "1.2G"
  }
}

Eliminar banco de dados

delete

Remove permanentemente o registo e a infraestrutura. Exige delete_app.

Authorizations
api-tokenstringRequired
Path parameters
dbIDstringRequired

ID do banco

Responses
200

Banco eliminado

application/json
objectOptional
delete/database/{dbID}
DELETE /v2/database/{dbID} HTTP/1.1
Host: api.discloud.app
api-token: YOUR_API_KEY
Accept: */*
{
  "status": "ok",
  "message": "Sua aplicação foi removida."
}

Atualizar banco de dados

patch

Atualiza displayName, hostname e/ou totalRam. Exige commit_app; alterar totalRam também exige edit_ram. Hostname exige plano do dono > 3. Alterar hostname ou RAM dispara rebuild assíncrono da infra (rebuilding=true + opId); consulte GET /database/{dbID}.

Authorizations
api-tokenstringRequired
Path parameters
dbIDstringRequired

ID do banco

Body
displayNamestringOptional
hostnamestringOptional

Hostname privado (1–2 segmentos a-z0-9_ ligados por -, máx. 25)

totalRaminteger · min: 100 · max: 16384Optional
Responses
200

Banco atualizado (opcionalmente em rebuild)

application/json
objectOptional
patch/database/{dbID}
PATCH /v2/database/{dbID} HTTP/1.1
Host: api.discloud.app
api-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 44

{
  "displayName": "Staging DB",
  "totalRam": 1024
}
{
  "status": "ok",
  "message": "Base de dados atualizada com sucesso.",
  "rebuilding": false,
  "data": {
    "_id": "1714500000365db",
    "displayName": "Staging DB",
    "totalRam": 1024,
    "hostname": "pedro042"
  }
}

Iniciar banco de dados

put

Inicia o container do banco. Exige start_app. Sujeito a verificações de RAM/slot.

Authorizations
api-tokenstringRequired
Path parameters
dbIDstringRequired

ID do banco

Responses
200

Iniciado (ou já em execução com status error)

application/json
objectOptional
put/database/{dbID}/start
PUT /v2/database/{dbID}/start HTTP/1.1
Host: api.discloud.app
api-token: YOUR_API_KEY
Accept: */*
{
  "status": "ok",
  "message": "Seu aplicativo foi conectado."
}

Parar banco de dados

put

Para o container do banco. Exige stop_app.

Authorizations
api-tokenstringRequired
Path parameters
dbIDstringRequired

ID do banco

Responses
200

Parado (ou já parado com status error)

application/json
objectOptional
put/database/{dbID}/stop
PUT /v2/database/{dbID}/stop HTTP/1.1
Host: api.discloud.app
api-token: YOUR_API_KEY
Accept: */*
{
  "status": "ok",
  "message": "Seu aplicativo foi desligado."
}

Reiniciar banco de dados

put

Reinicia o container do banco. Exige restart_app.

Authorizations
api-tokenstringRequired
Path parameters
dbIDstringRequired

ID do banco

Responses
200

Reiniciado com sucesso

application/json
objectOptional
put/database/{dbID}/restart
PUT /v2/database/{dbID}/restart HTTP/1.1
Host: api.discloud.app
api-token: YOUR_API_KEY
Accept: */*
{
  "status": "ok",
  "message": "Sua aplicação foi reiniciada."
}

Criar backup do banco

post

Cria um backup do banco gerenciado (síncrono). Exige backup_app. Devolve metadados de download; chaves S3 são removidas da resposta.

Authorizations
api-tokenstringRequired
Path parameters
dbIDstringRequired

ID do banco

Body
gzipbooleanOptionalDefault: true
Responses
200

Backup criado

application/json
objectOptional
post/database/{dbID}/backup
POST /v2/database/{dbID}/backup HTTP/1.1
Host: api.discloud.app
api-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 13

{
  "gzip": true
}
{
  "status": "ok",
  "data": {
    "backupId": 20240101120000,
    "downloadUrl": "https://example.s3.amazonaws.com/..."
  }
}

Listar backups do banco

get

Lista backups no S3 deste banco. Exige status_app.

Authorizations
api-tokenstringRequired
Path parameters
dbIDstringRequired

ID do banco

Query parameters
limitintegerOptional

Tamanho da página (1–1000, default 50). Alias maxKeys também aceite.

cursorstringOptional

Token de continuação de uma resposta anterior

detailstring · enumOptional

minimal (default) ou full

Possible values:
Responses
200

Backups listados

application/json
objectOptional
get/database/{dbID}/backups
GET /v2/database/{dbID}/backups HTTP/1.1
Host: api.discloud.app
api-token: YOUR_API_KEY
Accept: */*
{
  "status": "ok",
  "data": {
    "backups": [
      {
        "backupId": 20240101120000,
        "createdAt": "2024-01-01T12:00:00.000Z",
        "size": 1048576
      }
    ],
    "nextCursor": null
  }
}

Obter URL de download do backup

get

Devolve uma URL pré-assinada do dump. Exige backup_app.

Authorizations
api-tokenstringRequired
Path parameters
dbIDstringRequired

ID do banco

backupIdstringRequired

ID do backup

Query parameters
expiresInDaysinteger · min: 1 · max: 14Optional

Validade da URL em dias (1–14)

Responses
200

URL de download gerada

application/json
objectOptional
get/database/{dbID}/backups/{backupId}/download
GET /v2/database/{dbID}/backups/{backupId}/download HTTP/1.1
Host: api.discloud.app
api-token: YOUR_API_KEY
Accept: */*
{
  "status": "ok",
  "data": {
    "downloadUrl": "https://example.s3.amazonaws.com/...",
    "expiresAt": "2024-01-08T12:00:00.000Z"
  }
}

Restaurar backup como novo banco

post

Cria um novo banco gerenciado a partir de um backup (assíncrono). Exige backup_app no banco de origem. Plano mínimo Diamond (4). Devolve o novo id de imediato; consulte GET /database/{id}.

Authorizations
api-tokenstringRequired
Path parameters
dbIDstringRequired

ID do banco de origem (dono do backup)

Body
backupIdstringRequired
totalRaminteger · min: 100Required
displayNamestringOptional
projectIDstringOptional
varsEncryptedstringOptional

Mutuamente exclusivo com vars

autoRestartbooleanOptional
Responses
200

Restauro iniciado

application/json
objectOptional
post/database/{dbID}/restore
POST /v2/database/{dbID}/restore HTTP/1.1
Host: api.discloud.app
api-token: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 76

{
  "backupId": 20240101120000,
  "totalRam": 512,
  "displayName": "Restored Postgres"
}
{
  "status": "ok",
  "id": "1714500000999db",
  "message": "O restauro a partir do backup foi iniciado. Acompanhe o progresso consultando o recurso."
}

Obter logs do banco

get

Devolve logs recentes do container (mesmo formato dos logs de app). Exige logs_app.

Authorizations
api-tokenstringRequired
Path parameters
dbIDstringRequired

ID do banco

Responses
200

Logs carregados

application/json
objectOptional
get/database/{dbID}/logs
GET /v2/database/{dbID}/logs HTTP/1.1
Host: api.discloud.app
api-token: YOUR_API_KEY
Accept: */*
{
  "status": "ok",
  "message": "Os registros de seus aplicativos foram carregados",
  "app": {
    "_id": "1714500000365db",
    "terminal": {
      "big": "...",
      "small": "...",
      "url": null
    }
  }
}

Eliminar logs do banco

delete

Apaga os logs guardados do banco. Exige logs_app.

Authorizations
api-tokenstringRequired
Path parameters
dbIDstringRequired

ID do banco

Responses
200

Logs eliminados

application/json
objectOptional
delete/database/{dbID}/logs
DELETE /v2/database/{dbID}/logs HTTP/1.1
Host: api.discloud.app
api-token: YOUR_API_KEY
Accept: */*
{
  "status": "ok"
}

Última atualização