client := rest.NewClient(os.Getenv("SQUARECLOUD_API_KEY"))
defer client.Close()
api := rest.New(client)
Environment variables are modeled as squarecloud.EnvVars, a plain map[string]string. Every method resolves to the full env set after the operation completes — you always get an up-to-date map back.
Limits: up to 256 variables per application, keys up to 1024 characters and values up to 4096 characters.
Listing environment variables
envs, err := api.GetApplicationEnvs("abc123def456abc123def456")
if err != nil {
panic(err)
}
for key, value := range envs {
fmt.Printf("%s=%s\n", key, value)
}
Adding or updating variables
api.SetApplicationEnvs(appID, envs) merges new variables into the existing set. Existing keys not present in the call are preserved.
envs, err := api.SetApplicationEnvs("abc123def456abc123def456", squarecloud.EnvVars{
"DATABASE_URL": "postgres://...",
"FEATURE_FLAG": "true",
})
if err != nil {
panic(err)
}
Replacing the entire env set
api.ReplaceApplicationEnvs(appID, envs) overwrites every variable.
Anything not listed in the call is removed. Use SetApplicationEnvs when you only want to add or update — ReplaceApplicationEnvs deletes every variable you leave out.
envs, err := api.ReplaceApplicationEnvs("abc123def456abc123def456", squarecloud.EnvVars{
"DATABASE_URL": "postgres://new-host...",
})
if err != nil {
panic(err)
}
// FEATURE_FLAG is now gone
Pass an empty map to wipe all variables:
_, err := api.ReplaceApplicationEnvs("abc123def456abc123def456", squarecloud.EnvVars{})
Deleting variables
api.DeleteApplicationEnvs(appID, keys) removes the listed keys. Unknown keys are silently ignored.
envs, err := api.DeleteApplicationEnvs("abc123def456abc123def456", []string{"FEATURE_FLAG"})
if err != nil {
panic(err)
}