Comme alternative à la configuration des équipes New Relic dans l'UI, vous pouvez les configurer par programmation avec notre API NerdGraph.
Pour démarrer facilement, utilisez notre explorateur d'API NerdGraph pour créer et modifier les informations des équipes. Des définitions sont disponibles dans NerdGraph pour chacun des champs dans les exemples ci-dessous. Si vous avez besoin d'aide pour utiliser l'IDE GraphiQL, consultez notre didacticiel sur l'explorateur d'API NerdGraph.
Créer une équipe
Voici un exemple d’appel NerdGraph qui crée une équipe à l’aide de la requête de mutation entityManagementCreateTeam
.
mutation { entityManagementCreateTeam( teamEntity: { name: "INSERT_YOUR_TEAM_NAME", description: "this is a description of a team", aliases: ["tn", "tName"], externalIntegration: { externalId: "INSERT_THE_EXTERNAL_ID", type: IAM_GROUP }, resources: [ {content: "email@mail.com", title: "email", type: "EMAIL"}, {content: "https://slack.com/channels/team", title: "Team slack", type: "SLACK"} ], scope: { id: "INSERT_YOUR_ORGANIZATION_ID", type: ORGANIZATION } ) { entity { id ownership { id } membership { id } } }}
Lorsque vous utilisez cette mutation, n'oubliez pas que :
Les seuls champs obligatoires sont
teamName
etscope
.Si vous avez besoin d'aide pour comprendre
organizationID
, consultez Récupérer les informations d'identification de l'organisation ci-dessous.externalIntegration
fait référence à une connexion avec un système externe pour maintenir l'équipe synchronisée.externalId
:Identifiant dans le système externetype
:Le type de système externe
Lorsque vous créez une équipe, deux entités de collections sont automatiquement créées et liées à celle-ci. Pour plus d'informations sur l'ajout d'entité, reportez-vous à Gérer les collections.
ownership
:Cette collection gère l'entité appartenant à l'équipe.membership
:Cette collection gère les membres de l'équipe. Pour plus d'informations suruserID
, reportez-vous à Récupérer l'ID utilisateur.
Récupérer l'organisation id
Pour créer une équipe, vous devez fournir l’ID de l’organisation dans la portée.
{ actor { organization { name id } }}
Gérer les collections
Pour ajouter un utilisateur ou une entité à une équipe, vous devez ajouter des membres aux collections associées à l'équipe. Utilisez la mutation appropriée avec l’ID de collection correspondant. Utilisez la collection membership
pour utilisateur et la collection ownership
pour entité. Vous pouvez ajouter jusqu'à 100 entités à une collection par demande.
mutation { entityManagementAddCollectionMembers( collectionId: "INSERT_YOUR_COLLECTION_ID" ids: ["ENTITY_ID"] )}
Pour supprimer un utilisateur ou une entité d'une équipe, vous devrez supprimer les membres de la collection entité attachée à l'équipe à l'aide de la requête suivante.
mutation { entityManagementRemoveCollectionMembers( collectionId: "INSERT_YOUR_COLLECTION_ID" ids: ["ENTITY_ID"] )}
Récupérer l'utilisateur id
Pour ajouter un utilisateur à une équipe, vous avez besoin de l'identifiant unique de l'entité utilisateur (également appelé GUID).
Un certain nombre de requêtes sont disponibles pour vous aider à trouver le GUID.
Conseil
Dans les exemples ci-dessous, n'oubliez pas que tous les types sont sensibles à la casse. Par exemple, vous devez utiliser USER
et TEAM
.
Trouver un domaine d'utilisateur id
Tout d’abord, vous devez trouver l’ID de domaine de l’utilisateur. Vous pouvez le faire en interrogeant et en filtrant avec le nom ou l'e-mail de l'utilisateur :
{ actor { users { userSearch(query: { scope: { email: "INSERT_PARTIAL_EMAIL" } }) { users { userId } } } }}
{ actor { users { userSearch(query: { scope: { name: "INSERT_PARTIAL_NAME" } }) { users { userId } } } }}
Trouver l'identifiant ayant le domaine id
Une fois que vous avez le domaine id
vous pouvez rechercher le GUID avec la requête suivante :
{ actor { entitySearch(query: "type='USER' AND tags.userId = 'INSERT_DOMAIN_ID'") { results { entities { guid } } } }}
Pour ce type de requête, l'opérateur in
est également valide, par exemple :
... entitySearch(query: "type = 'USER' AND tags.userId IN ('domainId1', 'domainId2')") {...
Récupérer les informations de l'équipe
Vous disposez de plusieurs options pour récupérer les informations de l'équipe.
Par équipe id
Utilisez la requête suivante pour récupérer les informations sur une équipe si vous avez l'équipe id
:
{ actor { entityManagement { entity(id = 'INSERT_TEAM_ENTITY_ID'") { ... on EntityManagementTeamEntity { id name } } } }}
Toutes les équipes
Si vous n'avez pas le team id
, vous pouvez également vérifier toutes les équipes existantes :
{ actor { entityManagement { entitySearch(query: "type = 'TEAM'") { entities { ... on EntityManagementTeamEntity { id name description aliases } } } } }}
Mettre à jour une équipe
Utilisez la mutation entityManagementUpdateTeam
pour mettre à jour une équipe. Utilisez la requête ci-dessus pour trouver le id
de l'équipe :
mutation { entityManagementUpdateTeam( id: "INSERT_YOUR_TEAM_ID", teamEntity: { ... }) { entity { id } }}
Afficher les éléments d'une collection
Utilisez la requête collectionElements
pour afficher l'utilisateur dans la collection d'adhésion ou l'entité dans la collection de propriété.
{ actor { entityManagement { collectionElements( filter: { collectionId: { eq: "INSERT_YOUR_COLLECTION_ID" } } ) { items { id name type } nextCursor } } }}
Afficher et mettre à jour les paramètres d'organisation de l'équipe
Les équipes sont des entités à l’échelle de l’organisation et, en tant que telles, elles disposent de certains paramètres qui sont appliqués au niveau de l’organisation. Pour interroger les paramètres de votre organisation, vous pouvez utiliser les éléments suivants :
{ actor { entityManagement { entity(id: “INSERT_TEAMS_SETTINGS_ID”) { ... on EntityManagementTeamsOrganizationSettingsEntity { discovery { enabled tagKeys } syncGroups { rules { conditions { value type } } enabled } } } } }}
Gardez les points suivants à l’esprit lorsque vous utilisez cette requête :
discovery
:Il s'agit d'une fonctionnalité qui permet d'attribuer des entités à des équipes via leur tag.enabled
: Ceci spécifie si la fonctionnalitédiscovery
est activée pour l'organisation.tagKeys
:Les clés tag utilisées pour rechercher les noms d'équipe et les alias. La valeur par défaut estTeam
. Ainsi, toute entité avec la tagTeam: teamName
serait attribuée à l’équipe portant ce nom ou à tout alias correspondant à ce nom.syncGroups
:Cette fonctionnalité vous permet de définir des règles de reconnaissance des groupes d'utilisateurs, permettant l'automatisation complète des opérations CRUD pour les équipes des fournisseurs d'identité (IdP). Cela garantit que la création, la mise à jour et la gestion des membres des équipes sont toujours à jour sans nécessiter d'intervention manuelle.enabled
: Ceci spécifie si la fonctionnalitésyncGroups
est activée pour l'organisation.rules
:Une liste deconditions
.conditions
:Une liste devalue
ettype
.value
: La chaîne à faire correspondre pour identifier les noms des groupes de fournisseurs.type
: Le type de valeur qui doit correspondre au nom du groupe. Les valeurs possibles sontSTARTS_WITH
,CONTAINS
etENDS_WITH
.
Seuls certains membres d’une organisation sont autorisés à modifier les paramètres de l’organisation. Cela se fait avec la requête suivante :
mutation { entityManagementUpdateTeamsOrganizationSettings( id: "0bf6d7b0-e1f3-4172-a26a-6e4e0asample" teamsOrganizationSettingsEntity: { discovery: { enabled: true, tagKeys: ["Owner", "OwningTeam"] } syncGroups: { enabled: true rules: [{ conditions: [{ type: "STARTS_WITH", value: "testing" }] }] } } )}