---
title: "circle | API GraphQL | Rolebase"
description: "Cercle, comment il imbrique ses membres, ses rôles et ses cercles enfants, avec les champs et relations que l'entité expose dans le schéma GraphQL."
url: "https://rolebase.io/fr/developers/graphql-api/circle"
---

[Rolebase](/) ⟩[Développeurs](/fr/developers) ⟩[API GraphQL](/fr/developers/graphql-api)

# circle

Cercle, comment il imbrique ses membres, ses rôles et ses cercles enfants, avec les champs et relations que l'entité expose dans le schéma GraphQL.

## Champs

Champ

Type

Description

`id`

`uuid`

Identifiant unique du cercle

`orgId`

`uuid`

Référence à l'organisation

`roleId`

`uuid`

Référence au rôle associé à ce cercle

`parentId`

`uuid`

Référence au cercle parent (optionnel, null pour les cercles de premier niveau)

`archivedAt`

`Timestamp`

Date d'archivage du cercle ; null si actif

`createdAt`

`Timestamp`

Date de création du cercle

## Relations

**Relations objet :**

*   `org` — L'organisation à laquelle ce cercle appartient
*   `parent` — Le cercle parent (le cas échéant)
*   `role` — Le rôle qui définit la raison d'être et les redevabilités de ce cercle

**Relations tableau :**

*   `children` — Cercles enfants au sein de ce cercle
*   `members` — Appartenances au cercle
*   `leaders` — Attributions de leadership du cercle
*   `participants` — Tous les participants (y compris ceux hérités des cercles enfants)
*   `meetings` — Réunions associées à ce cercle
*   `meetings_recurring` — Réunions récurrentes de ce cercle
*   `tasks` — Tâches assignées à ce cercle
*   `decisions` — Décisions prises au sein de ce cercle
*   `threads` — Fils de discussion dans ce cercle
*   `hostCircleLinks` — Liens où ce cercle héberge d'autres cercles
*   `invitedCircleLinks` — Liens où ce cercle est invité dans d'autres cercles

## Exemples de requêtes

### Lister les cercles d'une organisation

```
query GetCircles($orgId: uuid!) {  circle(where: { orgId: { _eq: $orgId } }) {    id    role {      name      purpose    }    members {      member {        name      }    }    children {      id      role {        name      }    }    parent {      id      role {        name      }    }  }}
```

### Obtenir un cercle spécifique

```
query GetCircle($id: uuid!) {  circle_by_pk(id: $id) {    id    role {      name    }  }}
```

## Exemples de mutations

### Créer un cercle

```
mutation CreateCircle {  insert_circle_one(    object: {      orgId: "your-org-id"      roleId: "role-id"      parentId: "parent-circle-id"    }  ) {    id    role {      name    }  }}
```

### Déplacer un cercle

Le seul champ d'un cercle modifiable directement est son `parentId` (le déplacer sous un autre cercle).

```
mutation MoveCircle {  update_circle_by_pk(    pk_columns: { id: "circle-id" }    _set: { parentId: "new-parent-circle-id" }  ) {    id    parentId  }}
```

** Archivage**

`archivedAt` n'est pas modifiable directement sur un cercle. L'archivage d'un cercle est une opération imbriquée gérée par l'application : elle archive ensemble le rôle, les membres, les rôles invités, les réunions, les réunions récurrentes, les discussions, les tâches et les décisions de tout le sous-arbre, et reste réversible depuis l'historique.

## Permissions

L'accès aux cercles suit le [`governanceMode`](/fr/docs/governance-modes) de l'organisation. En mode `Free`, tout membre peut modifier l'organigramme. En mode `Agile`, les leaders d'un cercle le modifient directement. En mode `Strict`, les changements de structure passent par des propositions, tandis que les propriétaires de l'organisation peuvent toujours modifier.

** Notes**

Les cercles forment un arbre hiérarchique via la relation `parentId`. Chaque cercle doit avoir un rôle associé qui définit sa raison d'être et ses redevabilités. Les participants d'un cercle incluent les membres directs ainsi que les leaders des cercles enfants et liés. Les réunions, tâches et décisions sont organisées au sein des cercles.
