Zum Hauptinhalt springen
Workspaces werden vom api.workspaces-Modul bereitgestellt — eine Neuerung in v4. Sie sind in den Plänen Standard, Pro und Enterprise verfügbar.

Einen Workspace erstellen

const { id: workspaceId } = await api.workspaces.create({ name: "Acme" });
Der name muss zwischen 1 und 32 Zeichen lang sein.

Workspaces auflisten

api.workspaces.list() liefert jeden Workspace, in dem der authentifizierte Benutzer Eigentümer oder Mitglied ist.
const workspaces = await api.workspaces.list();

for (const ws of workspaces) {
    console.log(
        `${ws.name} (${ws.memberList.length} members, ${ws.applicationList.length} apps)`,
    );
}
In v3 enthielten ws.members und ws.applications rohe Daten-Arrays. In v4 sind diese nun Module (ws.members.add(...), ws.applications.add(...)). Die rohen Arrays wurden nach ws.memberList und ws.applicationList verschoben.

Einen einzelnen Workspace abrufen

const workspace = await api.workspaces.fetch(workspaceId);

console.log(workspace.id);
console.log(workspace.name);
console.log(workspace.owner);
console.log(workspace.createdAt);
console.log(workspace.memberList);
console.log(workspace.applicationList);

Mitglieder einladen

Das Einladen eines Mitglieds ist ein zweistufiger Handshake — der Eingeladene bestätigt seine Zustimmung, indem er von seinem Client aus einen kurzlebigen (5-minütigen) Code generiert, und der Eigentümer löst ihn ein.
// 1. Vom eigenen SDK-Client des Eingeladenen
const otherApi = new SquareCloudAPI(process.env.OTHER_USER_API_KEY!);
const code = await otherApi.workspaces.generateInviteCode();

// 2. Vom Client des Workspace-Eigentümers
await workspace.members.add(code, "maintain");
Gültige Rollen für das group-Argument:
RolleBeschreibung
viewNur-Lese-Zugriff
managerAnwendungen verwalten
maintainAnwendungen + Mitglieder unterhalb der eigenen Stufe verwalten
adminVoller Admin-Zugriff
Die Rolle owner kann nicht über die API vergeben werden — die Übertragung des Eigentums wird nicht bereitgestellt.

Die Rolle eines Mitglieds ändern

await workspace.members.update("1234567890abcdef1234567890abcdef", "admin");

Ein Mitglied entfernen

await workspace.members.remove("1234567890abcdef1234567890abcdef");
Nur der Workspace-Eigentümer kann Mitglieder entfernen.

Anwendungen teilen

await workspace.applications.add("abc123def456abc123def456");
await workspace.applications.remove("abc123def456abc123def456");

Einen Workspace verlassen oder löschen

// Als Mitglied
await workspace.leave();

// Als Eigentümer (unwiderruflich)
await workspace.delete();
Du kannst auch direkt über das Modul per ID löschen oder verlassen:
await api.workspaces.delete(workspaceId);
await api.workspaces.leave(workspaceId);