Passer au contenu principal
Les workspaces sont exposés par le module api.workspaces — un ajout de la v4. Ils sont disponibles sur les plans Standard, Pro et Enterprise.

Créer un workspace

const { id: workspaceId } = await api.workspaces.create({ name: "Acme" });
Le name doit comporter entre 1 et 32 caractères.

Lister les workspaces

api.workspaces.list() renvoie tous les workspaces où l’utilisateur authentifié est propriétaire ou membre.
const workspaces = await api.workspaces.list();

for (const ws of workspaces) {
    console.log(
        `${ws.name} (${ws.memberList.length} members, ${ws.applicationList.length} apps)`,
    );
}
En v3, ws.members et ws.applications contenaient des tableaux de données brutes. En v4, ce sont désormais des modules (ws.members.add(...), ws.applications.add(...)). Les tableaux bruts ont été déplacés vers ws.memberList et ws.applicationList.

Récupérer un workspace unique

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);

Inviter des membres

Inviter un membre se fait via une négociation en deux étapes — l’invité prouve son consentement en générant un code de courte durée (5 minutes) depuis son propre client, et le propriétaire le consomme.
// 1. From the invitee's own SDK client
const otherApi = new SquareCloudAPI(process.env.OTHER_USER_API_KEY!);
const code = await otherApi.workspaces.generateInviteCode();

// 2. From the workspace owner's client
await workspace.members.add(code, "maintain");
Rôles valides pour l’argument group :
RôleDescription
viewAccès en lecture seule
managerGérer les applications
maintainGérer les applications + les membres de rang inférieur au sien
adminAdministration complète
Le rôle owner ne peut pas être attribué via l’API — le transfert de propriété n’est pas exposé.

Modifier le rôle d’un membre

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

Retirer un membre

await workspace.members.remove("1234567890abcdef1234567890abcdef");
Seul le propriétaire du workspace peut retirer des membres.

Partager des applications

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

Quitter ou supprimer un workspace

// As a member
await workspace.leave();

// As the owner (irreversible)
await workspace.delete();
Vous pouvez également supprimer ou quitter par ID directement depuis le module :
await api.workspaces.delete(workspaceId);
await api.workspaces.leave(workspaceId);