Zum Hauptinhalt springen
Workspaces werden über die in rest.Rest eingebettete Schnittstelle Workspaces bereitgestellt. Sie sind in den Plänen Standard, Pro und Enterprise verfügbar.
client := rest.NewClient(os.Getenv("SQUARECLOUD_API_KEY"))
defer client.Close()

api := rest.New(client)

Einen Workspace erstellen

workspace, err := api.CreateWorkspace("Acme")
if err != nil {
	panic(err)
}

fmt.Println(workspace.ID)
Der Name muss 1–32 Zeichen lang sein und das Erstellen eines Workspace erfordert einen aktiven kostenpflichtigen Plan.

Workspaces auflisten

api.GetWorkspaces() gibt jeden Workspace zurück, in dem der authentifizierte Benutzer Besitzer oder Mitglied ist.
workspaces, err := api.GetWorkspaces()
if err != nil {
	panic(err)
}

for _, ws := range workspaces {
	fmt.Println(ws.Name, ws.ID)
}

Einen einzelnen Workspace abrufen

Workspace-IDs sind UUID-v4-Werte ohne Bindestriche (32 Hex-Zeichen).
workspace, err := api.GetWorkspace("1234567890abcdef1234567890abcdef")
if err != nil {
	panic(err)
}

fmt.Println(workspace.Name)
fmt.Println(workspace.Owner)
fmt.Println(workspace.Members)
fmt.Println(workspace.Applications)

Mitglieder einladen

Das Einladen eines Mitglieds ist ein zweistufiger Handshake — die eingeladene Person weist ihre Zustimmung nach, indem sie von ihrem Client aus einen kurzlebigen Code generiert, und der Besitzer löst ihn ein.
// 1. From the invitee's own SDK client
otherClient := rest.NewClient(os.Getenv("OTHER_USER_API_KEY"))
defer otherClient.Close()
otherAPI := rest.New(otherClient)

code, err := otherAPI.GetWorkspaceInviteCode()
if err != nil {
	panic(err)
}

// 2. From the workspace owner's client
err = api.AddWorkspaceMember("1234567890abcdef1234567890abcdef", code, "maintain")
if err != nil {
	panic(err)
}
Der Einladungscode wird von dem Benutzer generiert, der dem Workspace beitreten wird, nicht vom Besitzer. Er ist einmalig verwendbar und läuft nach 5 Minuten ab — generiere ihn, gib ihn an den Besitzer/Admin weiter und löse ihn zügig ein.

Rollen

RolleBeschreibung
owner / adminVollständige Workspace-Verwaltung
maintainOperativer Zugriff auf geteilte Anwendungen
managerMonitoring plus Anwendungs-Lebenszyklus (Start, Stopp, Neustart)
viewNur-Lese-Zugriff

Die Rolle eines Mitglieds ändern

err := api.UpdateWorkspaceMember("1234567890abcdef1234567890abcdef", "abcdef0123456789abcdef01", "admin")
if err != nil {
	panic(err)
}

Ein Mitglied entfernen

err := api.RemoveWorkspaceMember("1234567890abcdef1234567890abcdef", "abcdef0123456789abcdef01")
if err != nil {
	panic(err)
}

Anwendungen teilen

err := api.AddWorkspaceApplication("1234567890abcdef1234567890abcdef", "abc123def456abc123def456")
if err != nil {
	panic(err)
}

err = api.RemoveWorkspaceApplication("1234567890abcdef1234567890abcdef", "abc123def456abc123def456")

Einen Workspace verlassen oder löschen

Das Löschen eines Workspace ist unwiderruflich und steht nur dem Besitzer zur Verfügung.
// As a member
err := api.LeaveWorkspace("1234567890abcdef1234567890abcdef")

// As the owner (irreversible)
err = api.DeleteWorkspace("1234567890abcdef1234567890abcdef")