SQL sempre foi um banco de dados língua franca, permitindo que dados concretos sejam extraídos de diferentes domínios. É por isso que fiquei especificamente intrigado com a forma como o Steampipe pode ler dados de aplicativos por meio de SQL. Possui muitos plug-ins para converter dados internos do aplicativo em ótimas tabelas SQL.
Nesta postagem, darei uma olhada no plug-in do Slack, que conectarei e usarei em um espaço de trabalho ativo. No entanto, sabemos antes de começarmos que haverá um grande esforço para preparar o acesso ao que é um aplicativo de terceiros do ponto de vista do Slack. Esta é a desvantagem de tentar abrir os dados de um aplicativo.
O que eu gosto no Steampipe é que você pode preparar uma consulta sensata antes de anexá-la a um sistema. Isso é útil para consultores que podem ter acesso limitado aos sistemas e, portanto, precisam trazer consigo um conjunto razoavelmente amplo de ferramentas.
Há uma CLI disponível para minha versão do macOS e estou muito feliz em usar sua interface.
Como de costume, eu uso Warp para meu shell, embora Steampipe tenha sua própria CLI que terá precedência mais tarde. Após três minutos atualizando o Homebrew, instalei o Steampipe diretamente:
Em seguida, uma rápida verificação de versão para garantir que a instalação funcionou:
Então, instalei o plug-in do Slack:
Preparando-se para interrogar Slack
Existem vários motivos pelos quais você pode querer testar o Slack de uma organização, especialmente se você estiver participando de uma equipe e precisar estabelecer uma comunidade de prática (CoP), ou simplesmente quiser ter uma ideia de quais usuários são mais ativos, ou se certas questões (ou números de ingressos) estão sendo discutidas.
Mas antes de tudo, como nos conectamos a isso? Felizmente, o Slack tem uma maneira de conceder tokens dentro dos escopos para uso dos aplicativos. Eu usei esse método quando olhei para Dark, a ferramenta de back-end sem servidor. Foi um pouco complicado na época, então eu esperava que tivesse se tornado um pouco mais simples. No entanto, esse processo foi apenas um pouco mais suave.
Tentei fazer isso usando a versão Mac do aplicativo Slack, mas não consegui. No entanto, é um processo simples no site. Faça login no seu espaço de trabalho do Slack de destino e acesse api.slack.com/apps.
A partir daqui, podemos criar um novo aplicativo, selecionar “do zero” e dar um nome a ele. O “aplicativo” é o que o Slack chama de serviço de acesso de terceiros do Steampipe:
Podemos então selecionar permissões e obter acesso ao token com escopo definido. Estou evitando escopos relacionados ao administrador e certificando-me de incluir “equipe”, “usuários”, “grupos” etc.:
Você sempre pode retornar a esta seção, adicionar os escopos ausentes e reinstalar o aplicativo.
Isso permitirá que o aplicativo recupere informações básicas do Slack. Por fim, instalaremos nossa nova ferramenta e seus tokens OAuth no espaço de trabalho. Certifique-se de fazer uma cópia do seu token OAuth de usuário longo:
Como de costume, o Slack mostrará um aviso de que está solicitando acesso (ou um motivo pelo qual não pode).
Certifique-se de ver a marca ao lado de “Instalar seu aplicativo” na lista de progresso:
Agora volte ao seu shell e adicione esse token ao arquivo de configuração do Steampipe no Slack:
Consultando os dados
Agora estamos finalmente prontos para ver o que podemos fazer no próprio Steampipe. Yay!
Acessaremos o modo de consulta da CLI e imediatamente desejaremos revisar a lista de tabelas disponíveis (observe que são fornecidas sugestões de preenchimento automático):
(Pressione Ctrl+D em uma linha em branco ou use o .exit comando.)
Aqui está o resultado:
==> folga +—————————+—————– ——————————————–+ | mesa | descrição | +——————————————+——————— ————————————+ | slack_access_log | Logins no Slack, agrupados por usuário, IP e agente de usuário. | | conexão_slack | Informações sobre a conexão com o espaço de trabalho do Slack.| | folga_conversação | Interface unificada para todas as conversas. | | slack_conversation_member | Recuperar membros de uma conversa. | | folga_emoji | Emoji do Slack instalado no espaço de trabalho. | | grupo_slack | Grupos de usuários do espaço de trabalho do Slack. | | folga_pesquisa | Pesquise qualquer coisa no Slack usando uma consulta. | | usuário_slack | Usuários do espaço de trabalho Slack. | +——————————————+——————— ————————————+
==>folga
+——————————————+——————— ————————————+
|mesa|descrição|
+——————————————+——————— ————————————+
|slack_access_log|Logins que Folga,agrupado por Do utilizador,PI e Do utilizadorAgente.|
|conexão_slack|Informação sobre o conexão que o Folga área de trabalho.|
|slack_conversation|Unificado interface que todos conversação como coisas..|
|slack_conversation_member|Recuperar membros deaconversação.|
|folga_emoji|Folga emoticons instalado emo área de trabalho.|
|grupo_slack|Folga área de trabalho do utilizadorgrupos.|
Para obter informações sobre as colunas de uma tabela, execute .inspect {connection}.{table}.
Antes de continuar, tente este comando para confirmar se você tem uma conexão:
> selecione * do slack_user;
>selecione*deusuário folgado;
Certifique-se de obter alguns dados úteis de volta. Caso contrário, verifique se a instalação foi concluída ou se os tokens de acesso são suficientes.
Antes de questionarmos com raiva, vamos dar uma rápida olhada no slack_user mesa:
Primeiro, quero ver quais usuários não são bots e não foram excluídos, bem como quem atualizou sua conta para usar a autenticação de dois fatores:
Por alguma razão, o Slackbot não é um bot! Mas posso ver que duas pessoas podem precisar de um lembrete de segurança, se essa for a minha preocupação.
Agora vamos dar uma olhada slack_search tabela, que pode ampliar com mais precisão as informações:
Observe que channel é um tipo JSON, o que a princípio pareceria um pouco problemático. No entanto, você pode usar o ->> operador para extrair texto. Você deve especificar a consulta no where cláusula para consultar esta tabela.
Aqui está uma busca rápida por menções a “ChatGPT” nos canais do espaço de trabalho:
Mas podemos querer um pouco mais de informações sobre quando isso foi mencionado:
Usando o slack_conversation tabela, podemos descobrir canais populares contando os membros:
selecione nome, num_members de slack_conversation onde num_members não é nulo, ordene por num_members desc limit 5;
selecionecarne,num_membros deslack_conversation onde
num_membros énãonulo
ordem por num_membros desc
limite5;
Como estamos usando SQL, é claro que podemos obter consultas muito mais focadas entre tabelas, dependendo do que você precisa descobrir.
Esperançosamente, você pode ver que o Steampipe é uma ferramenta útil para recuperar dados valiosos e que este plug-in do Slack fornece um bom exemplo do que podemos obter. Ter uma lista preparada de consultas SQL úteis pode economizar seu tempo se você tiver acesso limitado a um sistema – uma boa maneira de obter os dados necessários em um formato flexível de sua escolha.
YOUTUBE.COM/THENEWSTACK
A tecnologia avança rápido, não perca um episódio. Inscreva-se em nosso canal no YouTube para transmitir todos os nossos podcasts, entrevistas, demonstrações e muito mais.
SE INSCREVER
David é desenvolvedor de software profissional baseado em Londres na Oracle Corp. e British Telecom, além de um consultor que auxilia as equipes a trabalhar de forma mais ágil. Ele escreveu um livro sobre UI design e tem escrito artigos técnicos desde então….
Este site utiliza cookies para melhorar sua experiência de navegação. Ao continuar, você concorda com o uso de cookies. Para mais informações, consulte nossa Política de Privacidade.
Funcional
Sempre ativo
O armazenamento ou acesso técnico é estritamente necessário para a finalidade legítima de permitir a utilização de um serviço específico explicitamente solicitado pelo assinante ou utilizador, ou com a finalidade exclusiva de efetuar a transmissão de uma comunicação através de uma rede de comunicações eletrónicas.
Preferências
O armazenamento ou acesso técnico é necessário para o propósito legítimo de armazenar preferências que não são solicitadas pelo assinante ou usuário.
Estatísticas
O armazenamento ou acesso técnico que é usado exclusivamente para fins estatísticos.O armazenamento técnico ou acesso que é usado exclusivamente para fins estatísticos anônimos. Sem uma intimação, conformidade voluntária por parte de seu provedor de serviços de Internet ou registros adicionais de terceiros, as informações armazenadas ou recuperadas apenas para esse fim geralmente não podem ser usadas para identificá-lo.
Marketing
O armazenamento ou acesso técnico é necessário para criar perfis de usuário para enviar publicidade ou para rastrear o usuário em um site ou em vários sites para fins de marketing semelhantes.