Como alternativa à configuração de equipes do New Relic na interface do usuário, você pode configurá-las programaticamente com nossa API NerdGraph.
Para começar de forma fácil, use nosso explorador da API NerdGraph para criar e editar informações de equipes. As definições estão disponíveis no NerdGraph para cada um dos campos nos exemplos abaixo. Se precisar de ajuda para usar o IDE GraphiQL, consulte nosso tutorial do explorador da API NerdGraph. Se você precisar configurar permissões personalizadas para gerenciar Teams, consulte Criar Funções Personalizadas para Teams.
Crie uma equipe
A seguir está um exemplo de uma chamada NerdGraph que cria uma equipe usando a consulta de mutação 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 } } }}Ao usar esta mutação, lembre-se de que:
Os únicos campos obrigatórios são
teamNameescope.Se precisar de ajuda para descobrir
organizationID, consulte Recuperar as informações de ID da organização abaixo.externalIntegrationrefere-se a uma conexão com um sistema externo para manter a equipe sincronizada.externalId: Id no sistema externotype: O tipo de sistema externo
Quando você cria uma equipe, duas entidades de coleção são criadas automaticamente e vinculadas a ela. Para obter mais informações sobre como adicionar entidades, consulte Gerenciar coleções.
ownership:Esta coleção gerencia a entidade de propriedade da equipe.membership: Esta coleção gerencia os membros da equipe. Para obter mais informações sobreuserID, consulte Recuperar o ID do usuário.
parentIdrefere-se ao ID da equipe pai na árvore hierárquica.
Recuperar a organização id
Para criar uma equipe, você precisa fornecer o ID da organização no escopo.
{ actor { organization { name id } }}Gerenciar coleções
Para adicionar um usuário ou entidade a uma equipe, você precisa adicionar membros às coleções associadas à equipe. Use a mutação apropriada com o respectivo ID de coleção. Use a coleção membership para usuário e a coleção ownership para entidade. Você pode adicionar até 100 entidades a uma coleção por solicitação.
mutation { entityManagementAddCollectionMembers( collectionId: "INSERT_YOUR_COLLECTION_ID" ids: ["ENTITY_ID"] )}Para remover usuário ou entidade de uma equipe, você precisará remover membros da entidade de coleção anexada à equipe usando a seguinte consulta.
mutation { entityManagementRemoveCollectionMembers( collectionId: "INSERT_YOUR_COLLECTION_ID" ids: ["ENTITY_ID"] )}Recuperar o usuário id
Para adicionar usuário a uma equipe, você precisa do identificador exclusivo da entidade usuário (também conhecido como GUID).
Há várias consultas disponíveis para ajudar você a encontrar o GUID.
Dica
Nos exemplos abaixo, lembre-se de que todos os tipos diferenciam maiúsculas de minúsculas. Por exemplo, você deve usar USER e TEAM.
Encontre o usuário id
Primeiro, você precisa encontrar o ID de domínio do usuário. Você pode fazer isso consultando e filtrando pelo nome ou e-mail do usuário:
{ actor { users { userSearch(query: { scope: { email: "INSERT_PARTIAL_EMAIL" } }) { users { userId } } } }}{ actor { users { userSearch(query: { scope: { name: "INSERT_PARTIAL_NAME" } }) { users { userId } } } }}Encontre o id que tem o domínio id
Depois de ter o domínio id você pode procurar o GUID com a seguinte consulta:
{ actor { entitySearch(query: "type='USER' AND tags.userId = 'INSERT_DOMAIN_ID'") { results { entities { guid } } } }}Para este tipo de consulta, o operador in também é válido, por exemplo:
... entitySearch(query: "type = 'USER' AND tags.userId IN ('domainId1', 'domainId2')") {...Recuperar informações da equipe
Você tem algumas opções para recuperar informações da equipe.
Por equipe id
Use a seguinte consulta para recuperar informações sobre uma equipe se você tiver a equipe id:
{ actor { entityManagement { entity(id: "INSERT_TEAM_ENTITY_ID") { ... on EntityManagementTeamEntity { id name hierarchyLevelId managers onCallMembers parentId } } } }}Todas as equipes
Se não tiver o team id, você também pode verificar todas as equipes existentes:
{ actor { entityManagement { entitySearch(query: "type = 'TEAM'") { entities { ... on EntityManagementTeamEntity { id name description aliases hierarchyLevelId managers onCallMembers parentId } } } } }}Tenha em mente o seguinte ao usar esta consulta:
hierarchyLevelId: O ID doTeamsHierarchyLevelEntityque representa a posição desta equipe na hierarquia, configurado por meio das configurações da organização (consulte configurações da organização).managers: A list of user entity GUIDs who are managers or the main point of contact of this team. Managers must be team members. To find user GUIDs, see Retrieve the user Id.onCallMembers: A list ofOnCallMemberentities representing contacts outside regular working hours. Each entity requires an ID field containing the user's entity GUID. On-call members must be team members. To find user GUIDs, see Retrieve the user Id.parentId: O ID da equipe pai na hierarquia.
Atualizar uma equipe
Use a mutação entityManagementUpdateTeam para atualizar uma equipe. Use a consulta acima para encontrar o id da equipe:
mutation { entityManagementUpdateTeam( id: "INSERT_YOUR_TEAM_ID" teamEntity: { name: "UPDATED_TEAM_NAME" description: "updated description" managers: ["INSERT_USER_GUID_1", "INSERT_USER_GUID_2"] onCallMembers: [ { id: "INSERT_USER_GUID_3" } { id: "INSERT_USER_GUID_4" } ] } ) { entity { id } }}Tenha em mente o seguinte ao usar esta consulta:
managersaceita uma lista de GUIDs de entidade de usuário. Para encontrar GUIDs de usuário, consulte Recuperar o ID do usuário.onCallMembersaccepts a list ofOnCallMemberentities. Each entity requires an ID field containing the user's entity GUID. To find user GUIDs, see Retrieve the user Id.
Atualizar um nível de hierarquia
Use a mutação entityManagementUpdateTeamsHierarchyLevel para atualizar o nome de um nível de hierarquia. Você pode encontrar IDs de nível de hierarquia no campo hierarchyLevelOrder da consulta de configurações da organização.
mutation { entityManagementUpdateTeamsHierarchyLevel( id: "INSERT_HIERARCHY_LEVEL_ID" teamsHierarchyLevelEntity: { name: "UPDATED_LEVEL_NAME" } ) { entity { id name } }}Ao usar esta mutação, lembre-se de que:
nameé o único atributo atualizável para um nível de hierarquia.- O
idé o ID doTeamsHierarchyLevelEntitya ser atualizado. Você pode encontrar esses IDs no arrayhierarchyLevelOrderretornado pela consulta de configurações da organização.
Ver elementos de uma coleção
Use a consulta collectionElements para visualizar o usuário na coleção de membros ou a entidade na coleção de propriedade.
{ actor { entityManagement { collectionElements( filter: { collectionId: { eq: "INSERT_YOUR_COLLECTION_ID" } } ) { items { id name type } nextCursor } } }}Visualizar e atualizar as configurações da organização da equipe
As equipas são entidades de âmbito organizacional e, como tal, possuem algumas configurações que são aplicadas a nível organizacional. Para consultar as configurações da sua organização você pode utilizar o seguinte:
{ actor { entityManagement { entity(id: “INSERT_TEAMS_SETTINGS_ID”) { ... on EntityManagementTeamsOrganizationSettingsEntity { discovery { enabled tagKeys } syncGroups { rules { conditions { value type } } enabled } hierarchyLevelOrder } } } }}Tenha em mente o seguinte ao usar esta consulta:
discovery: Este é um recurso que permite que entidades sejam atribuídas a equipes por meio de suas tags.enabled: Isso especifica se o recursodiscoveryestá habilitado para a organização.tagKeys: As chaves tag que são usadas para procurar nomes de equipes e aliases. O valor padrão éTeam. Portanto, qualquer entidade com a tagTeam: teamNameseria atribuída à equipe com esse nome ou qualquer alias correspondente a esse nome.syncGroups: Este recurso permite que você defina regras para reconhecer grupos de usuários, permitindo a automação completa de operações CRUD para equipes de provedores de identidade (IdPs). Isso garante que a criação, atualização e gerenciamento de membros da equipe estejam sempre atualizados, sem exigir intervenção manual.enabled: Isso especifica se o recursosyncGroupsestá habilitado para a organização.rules: Uma lista deconditions.conditions: Uma lista devalueetype.value: A string para corresponder aos nomes dos grupos de provedores de identificação.type: O tipo de valor que precisa corresponder ao nome do grupo. Os valores possíveis sãoSTARTS_WITH,CONTAINSeENDS_WITH.hierarchyLevelOrder: O array que define a ordem dos níveis de hierarquia em ordem decrescente, com o primeiro elemento sendo o nível mais alto e o último o mais baixo. Cada elemento é umiddeTeamsHierarchyLevelEntity.
Somente determinados membros de uma organização têm permissão para editar as configurações da organização. Isso é feito com a seguinte 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" }] }] } } )}