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ôle | Description |
|---|
view | Accès en lecture seule |
manager | Gérer les applications |
maintain | Gérer les applications + les membres de rang inférieur au sien |
admin | Administration 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);