Como alternativa a la configuración de equipos New Relic en la UI, puedes configurarlos mediante programación con nuestra API NerdGraph.
Para comenzar fácilmente, usa nuestro explorador de la API de NerdGraph para crear y editar información de equipos. Las definiciones están disponibles en NerdGraph para cada uno de los campos de los siguientes ejemplos. Si necesitas ayuda para usar el IDE de GraphiQL, consulta nuestro tutorial del explorador de la API de NerdGraph. Si necesitas configurar permisos personalizados para administrar Teams, consulta Crear roles personalizados para Teams.
Crear un equipo
El siguiente es un ejemplo de una llamada NerdGraph que crea un equipo empleando la consulta de mutación 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 } parentId: "INSERT_PARENT_TEAM_ID" } ) { entity { id ownership { id } membership { id } } }}Cuando emplees esta mutación, recuerda que:
Los únicos campos obligatorios son
teamNameyscope.Si necesita ayuda para determinar
organizationID, consulte Recuperar la información de identificación de la organización a continuación.externalIntegrationSe refiere a una conexión con un sistema externo para mantener al equipo sincronizado.externalId: Id en el sistema externotype:El tipo de sistema externo
Cuando se crea un equipo, se crean automáticamente dos entidades de colección y se vinculan a él. Para obtener más información sobre cómo agregar entidades, consulte Gestionar colecciones.
ownership:Esta colección gestiona la entidad propiedad del equipo.membership:Esta colección gestiona los miembros del equipo. Para obtener más información sobreuserID, consulte Recuperar el Id. de usuario.
parentIdse refiere al ID del equipo padre en el árbol de jerarquía.
Recuperar la organización id
Para crear un equipo, debe proporcionar el ID de la organización en el alcance.
{ actor { organization { name id } }}Gestionar colecciones
Para agregar un usuario o entidad a un equipo, es necesario agregar miembros a las colecciones asociadas al equipo. Emplee la mutación adecuada con el ID de colección correspondiente. Emplee la colección membership para el usuario y la colección ownership para la entidad. Puede agregar hasta 100 entidades a una colección por solicitud.
mutation { entityManagementAddCollectionMembers( collectionId: "INSERT_YOUR_COLLECTION_ID" ids: ["ENTITY_ID"] )}Para eliminar un usuario o entidad de un equipo, deberá eliminar afiliados a la colección entidad adjunta al equipo mediante la siguiente consulta.
mutation { entityManagementRemoveCollectionMembers( collectionId: "INSERT_YOUR_COLLECTION_ID" ids: ["ENTITY_ID"] )}Recuperar el usuario id
Para agregar un usuario a un equipo, necesita el identificador único para la entidad del usuario (también conocido como GUID).
Hay un serial de consultas disponibles para ayudarlo a encontrar el GUID.
Sugerencia
En los ejemplos siguientes, recuerde que todos los tipos distinguen entre mayúsculas y minúsculas. Por ejemplo, debes emplear USER y TEAM.
Encontrar usuario de dominio id
Primero, debes encontrar el ID del dominio del usuario. Puedes hacer esto consultando y filtrando con el nombre o email del usuario:
{ actor { users { userSearch(query: { scope: { email: "INSERT_PARTIAL_EMAIL" } }) { users { userId } } } }}{ actor { users { userSearch(query: { scope: { name: "INSERT_PARTIAL_NAME" } }) { users { userId } } } }}Encuentra id que tenga el dominio id
Una vez que tengas el dominio id puedes buscar el GUID con la siguiente consulta:
{ actor { entitySearch(query: "type='USER' AND tags.userId = 'INSERT_DOMAIN_ID'") { results { entities { guid } } } }}Para este tipo de consulta también es válido el operador in , por ejemplo:
... entitySearch(query: "type = 'USER' AND tags.userId IN ('domainId1', 'domainId2')") {...Recuperar información del equipo
Tiene algunas opciones para recuperar información del equipo.
Por equipo id
Emplee la siguiente consulta para recuperar la información sobre un equipo si tiene el equipo id:
{ actor { entityManagement { entity(id: "INSERT_TEAM_ENTITY_ID") { ... on EntityManagementTeamEntity { id name hierarchyLevelId managers parentId } } } }}Todos los equipos
Si no tienes el team id, también puedes consultar todos los equipos existentes:
{ actor { entityManagement { entitySearch(query: "type = 'TEAM'") { entities { ... on EntityManagementTeamEntity { id name description aliases hierarchyLevelId managers parentId } } } } }}Tenga en cuenta lo siguiente al emplear esta consulta:
hierarchyLevelId: El ID delTeamsHierarchyLevelEntityque representa la posición de este equipo en la jerarquía, que se configura a través de la configuración de la organización (consulte configuración de la organización).managers: Una lista de GUIDs de entidades de usuario que son gerentes o el punto de contacto principal de este equipo. Los gerentes deben ser miembros del equipo. Para encontrar los GUID de usuario, consulte Recuperar el ID de usuario.parentId: El ID del equipo padre en la jerarquía.
Actualizar un equipo
Emplee la mutación entityManagementUpdateTeam para actualizar un equipo. Emplee la consulta anterior para encontrar el id del equipo:
mutation { entityManagementUpdateTeam( id: "INSERT_YOUR_TEAM_ID" teamEntity: { name: "UPDATED_TEAM_NAME" description: "updated description" managers: ["INSERT_USER_GUID_1", "INSERT_USER_GUID_2"] } ) { entity { id } }}Tenga en cuenta lo siguiente al emplear esta consulta:
managersacepta una lista de GUIDs de entidad de usuario. Para encontrar los GUID de usuario, consulte Recuperar el ID de usuario.
Actualizar un nivel de jerarquía
Utilice la mutación entityManagementUpdateTeamsHierarchyLevel para actualizar el nombre de un nivel de jerarquía. Puede encontrar los ID de nivel de jerarquía en el campo hierarchyLevelOrder de la consulta de configuración de la organización.
mutation { entityManagementUpdateTeamsHierarchyLevel( id: "INSERT_HIERARCHY_LEVEL_ID" teamsHierarchyLevelEntity: { name: "UPDATED_LEVEL_NAME" } ) { entity { id name } }}Cuando emplees esta mutación, recuerda que:
namees el único atributo actualizable para un nivel de jerarquía.- El
ides el ID delTeamsHierarchyLevelEntitya actualizar. Puede encontrar estos IDs en el arreglohierarchyLevelOrderdevuelto por la consulta de configuración de la organización.
Ver elementos de una colección
Emplee la consulta collectionElements para ver el usuario en la colección de membresía o la entidad en la colección de propiedad.
{ actor { entityManagement { collectionElements( filter: { collectionId: { eq: "INSERT_YOUR_COLLECTION_ID" } } ) { items { id name type } nextCursor } } }}Ver y actualizar la configuración de la organización del equipo
Los equipos son entidades de ámbito organizacional y, como tales, tienen algunas configuraciones que se aplican a nivel de organización. Para consultar la configuración de su organización puede emplear lo siguiente:
{ actor { entityManagement { entity(id: “INSERT_TEAMS_SETTINGS_ID”) { ... on EntityManagementTeamsOrganizationSettingsEntity { discovery { enabled tagKeys } syncGroups { rules { conditions { value type } } enabled } hierarchyLevelOrder } } } }}Tenga en cuenta lo siguiente al emplear esta consulta:
discovery:Esta es una característica que permite asignar entidades a equipos a través de su etiqueta.enabled:Esto especifica si la característicadiscoveryestá habilitada para la organización.tagKeys:Las claves de etiqueta que se emplean para buscar nombres de equipo y alias. El valor predeterminado esTeam. Por lo tanto, cualquier entidad con la etiquetaTeam: teamNamese asignaría al equipo con ese nombre o cualquier alias que coincida con ese nombre.syncGroups:Esta función le permite definir reglas para reconocer grupos de usuarios, lo que permite la automatización completa de las operaciones CRUD para equipos de proveedores de identidad (IdP). Esto garantiza que la creación, actualización y gestión de membresías del equipo estén siempre actualizadas sin necesidad de intervención manual.enabled:Esto especifica si la característicasyncGroupsestá habilitada para la organización.rules:Una lista deconditions.conditions:Una lista devalueytype.value:La cadena que debe coincidir con los nombres de los grupos de proveedores de identificación.type:El tipo de valor que debe coincidir con el nombre del grupo. Los valores posibles sonSTARTS_WITH,CONTAINSyENDS_WITH.hierarchyLevelOrder: El arreglo que define el orden de los niveles de jerarquía en orden descendente, con el primer elemento siendo el nivel más alto y el último el más bajo. Cada elemento es uniddeTeamsHierarchyLevelEntity.
Sólo ciertos afiliados a una organización pueden editar la configuración de la organización. Esto se hace con la siguiente consulta:
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" }] }] } } )}