Saltar al contenido principal
Todas las operaciones de esta página viven en el cliente rest.Rest:
client := rest.NewClient(os.Getenv("SQUARECLOUD_API_KEY"))
defer client.Close()

api := rest.New(client)

Obtención de una aplicación

api.GetApplication(appID) devuelve el registro completo squarecloud.Application.
app, err := api.GetApplication("abc123def456abc123def456")
if err != nil {
	panic(err)
}

fmt.Println(app.ID, app.Name, app.Cluster, app.CreatedAt)

Propiedades de la aplicación

CampoTipoDescripción
IDstringID de la aplicación (24 caracteres hex)
NamestringNombre visible
DescriptionstringDescripción proveniente del archivo de configuración
OwnerstringID del usuario propietario
ClusterstringCluster en el que corre la app
RAMintRAM asignada en MB
Languagestringjavascript | typescript | python | java | elixir | go | rust | ruby | php | dotnet | static
Domain*stringHost predeterminado <subdomain>.squareweb.appnil para apps que no son web
Custom*stringDominio personalizado vinculado a la app — nil cuando no está configurado
CreatedAtstringFecha de creación
Domain y Custom son punteros — comprueba siempre que no sean nil antes de desreferenciarlos:
if app.Domain != nil {
	fmt.Println("running at", *app.Domain)
}

Obtención del estado de la aplicación

api.GetApplicationStatus(appID) devuelve el estado de ejecución en vivo con valores formateados para humanos.
status, err := api.GetApplicationStatus("abc123def456abc123def456")
if err != nil {
	panic(err)
}

fmt.Println(status.Status)  // "running" | "starting" | "restarting" | "exited" | "created" | "deleting"
fmt.Println(status.Running) // bool
fmt.Println(status.CPU)     // "0.50%"
fmt.Println(status.RAM)     // "120/512MB"
fmt.Println(status.Network) // totales formateados
fmt.Println(status.Storage) // e.g. "0B"

if status.Uptime != nil {
	fmt.Println(time.UnixMilli(*status.Uptime)) // iniciada en
}
Uptime es un *int64 que contiene el timestamp de inicio en milisegundos Unix — es nil cuando la aplicación está detenida.

Estado en bruto

api.GetApplicationStatusRaw(appID) llama al mismo endpoint con ?rawData=true y devuelve valores numéricos en lugar de strings formateados — CPU/RAM como números y la red como pares de bytes [in, out]. Úsalo cuando quieras calcular o graficar en lugar de imprimir.
raw, err := api.GetApplicationStatusRaw("abc123def456abc123def456")
if err != nil {
	panic(err)
}

fmt.Println(raw.CPU)     // 0.5
fmt.Println(raw.RAM)     // 120
fmt.Println(raw.Network) // { Total: [in, out], Now: [in, out] } en bytes
El estado formateado es conveniente para mostrar ("120/512MB"); el estado en bruto es lo que quieres para dashboards, alertas o cualquier aritmética — convertir strings formateados de vuelta a números es frágil.

Resumen de estado de cada aplicación

Para evitar una solicitud por app, llama a api.GetApplicationListStatus():
list, err := api.GetApplicationListStatus()
if err != nil {
	panic(err)
}

for _, summary := range list {
	fmt.Printf("%s → running=%v\n", summary.ID, summary.Running)
}
Las cifras de CPU y RAM solo están presentes para las aplicaciones que están actualmente en ejecución.

Obtención de los logs

api.GetApplicationLogs(appID) devuelve la salida de log más reciente.
logs, err := api.GetApplicationLogs("abc123def456abc123def456")
if err != nil {
	panic(err)
}

fmt.Println(logs.Logs) // string

Obtención de métricas

api.GetApplicationMetrics(appID) devuelve las últimas 24 horas de muestras de CPU, RAM y red (hasta 288 puntos, uno cada 5 minutos) como un []squarecloud.MetricPoint.
metrics, err := api.GetApplicationMetrics("abc123def456abc123def456")
if err != nil {
	panic(err)
}

fmt.Println(len(metrics), "data points")
for _, point := range metrics {
	fmt.Println(point.Date, point.CPU, point.RAM, point.Net)
}

Ciclo de vida

api.PostApplicationSignal(appID, signal) inicia, detiene o reinicia la aplicación. La señal es una de las constantes squarecloud.ApplicationSignal*:
err := api.PostApplicationSignal("abc123def456abc123def456", squarecloud.ApplicationSignalStart)
if err != nil {
	panic(err)
}

// squarecloud.ApplicationSignalStop
// squarecloud.ApplicationSignalRestart

Eliminación de una aplicación

DeleteApplication elimina la aplicación de forma permanente. A menos que tengas un snapshot, los datos no se pueden recuperar.
err := api.DeleteApplication("abc123def456abc123def456")
if err != nil {
	panic(err)
}