Passer au contenu principal
Chaque opération de cette page vit sur le client rest.Rest :
client := rest.NewClient(os.Getenv("SQUARECLOUD_API_KEY"))
defer client.Close()

api := rest.New(client)

Récupérer une application

api.GetApplication(appID) renvoie l’enregistrement complet squarecloud.Application.
app, err := api.GetApplication("abc123def456abc123def456")
if err != nil {
	panic(err)
}

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

Propriétés de l’application

ChampTypeDescription
IDstringID de l’application (24 caractères hexadécimaux)
NamestringNom d’affichage
DescriptionstringDescription issue du fichier de configuration
OwnerstringID de l’utilisateur propriétaire
ClusterstringCluster sur lequel l’application s’exécute
RAMintRAM allouée en Mo
Languagestringjavascript | typescript | python | java | elixir | go | rust | ruby | php | dotnet | static
Domain*stringHôte par défaut <subdomain>.squareweb.appnil pour les applications non web
Custom*stringDomaine personnalisé lié à l’application — nil lorsqu’il n’est pas configuré
CreatedAtstringDate de création
Domain et Custom sont des pointeurs — vérifiez toujours qu’ils ne sont pas nil avant de les déréférencer :
if app.Domain != nil {
	fmt.Println("running at", *app.Domain)
}

Obtenir le statut de l’application

api.GetApplicationStatus(appID) renvoie l’état d’exécution en direct avec des valeurs formatées pour l’affichage.
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) // totaux formatés
fmt.Println(status.Storage) // e.g. "0B"

if status.Uptime != nil {
	fmt.Println(time.UnixMilli(*status.Uptime)) // démarrée à
}
Uptime est un *int64 contenant l’horodatage de démarrage en millisecondes Unix — il vaut nil lorsque l’application est arrêtée.

Statut brut

api.GetApplicationStatusRaw(appID) appelle le même endpoint avec ?rawData=true et renvoie des valeurs numériques au lieu de chaînes formatées — CPU/RAM sous forme de nombres et le réseau sous forme de paires d’octets [in, out]. Utilisez-le lorsque vous voulez calculer ou tracer plutôt qu’afficher.
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 octets
Le statut formaté est pratique pour l’affichage ("120/512MB") ; le statut brut est ce qu’il vous faut pour les tableaux de bord, les alertes ou tout calcul — reconvertir des chaînes formatées en nombres est fragile.

Statut résumé de chaque application

Pour éviter une requête par application, appelez 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)
}
Les valeurs de CPU et de RAM ne sont présentes que pour les applications en cours d’exécution.

Obtenir les logs

api.GetApplicationLogs(appID) renvoie la sortie de logs la plus récente.
logs, err := api.GetApplicationLogs("abc123def456abc123def456")
if err != nil {
	panic(err)
}

fmt.Println(logs.Logs) // string

Obtenir les métriques

api.GetApplicationMetrics(appID) renvoie les dernières 24 heures d’échantillons de CPU, RAM et réseau (jusqu’à 288 points, un toutes les 5 minutes) sous forme de []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)
}

Cycle de vie

api.PostApplicationSignal(appID, signal) démarre, arrête ou redémarre l’application. Le signal est l’une des constantes squarecloud.ApplicationSignal* :
err := api.PostApplicationSignal("abc123def456abc123def456", squarecloud.ApplicationSignalStart)
if err != nil {
	panic(err)
}

// squarecloud.ApplicationSignalStop
// squarecloud.ApplicationSignalRestart

Supprimer une application

DeleteApplication supprime définitivement l’application. À moins d’avoir un snapshot, les données ne peuvent pas être récupérées.
err := api.DeleteApplication("abc123def456abc123def456")
if err != nil {
	panic(err)
}