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 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 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: Uma lista de GUIDs de entidades de usuário que são gerentes ou o principal ponto de contato desta equipe. Gerentes devem ser membros da equipe. Para encontrar GUIDs de usuário, consulte Recuperar a ID do usuário.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"] } ) { 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.
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" }] }] } } )}