Rolebase Développeurs
Référence API

circle

Représente un cercle organisationnel hiérarchique pouvant contenir des membres, des rôles et des cercles enfants. Les cercles organisent les équipes et les responsabilités au sein d'une organisation.

Champs

ChampTypeDescription
iduuidIdentifiant unique du cercle
orgIduuidRéférence à l’organisation
roleIduuidRéférence au rôle associé à ce cercle
parentIduuidRéférence au cercle parent (optionnel, null pour les cercles de premier niveau)
archivedAtTimestampDate d’archivage du cercle ; null si actif
createdAtTimestampDate 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
  }
}
Info Circle 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 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.

Info Circle 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.