English version.
O SafeChat Slack Bot é um projeto open source desenvolvido para aumentar a segurança dos dados dentro dos espaços de trabalho do Slack. O principal objetivo do bot é fornecer alertas em tempo real aos usuários quando informações sensíveis, como CPF, endereços de e-mail e outros dados pessoais, são compartilhados nos canais do Slack. O Bot identifica e notifica os usuários sobre possíveis violações de dados, promovendo um ambiente de comunicação mais seguro no Slack.
O SafeChat deve fazer parte do canal para poder mandar mensagens.
- Abra o link https://api.slack.com/apps/new e escolha
From an app manifest
- Selecione o workspace que você deseja instalar a aplicação
- Copie o conteúdo do arqwuivo
manifest.json
no campo que dizPaste your manifest code here* (within the JSON tab)
e clique em Próximo - Revise as configurações e clique em
Create
- Clique em
Install to Workspace
e siga as instruções das próximas telas. Você será direcionado para a páginaApp Configuration dashboard
.
- Vá até as página de configuração do app e clique em
OAuth & Permissions
no menu esquerdo, então copie oBot User OAuth Token
. Esse token deverá ser armazenado como valor da variável de ambienteSLACK_BOT_TOKEN
. - Clique em
Basic Information
no menu lateral e siga os passos na seçãoApp-Level Tokens
para criar oapp-level token
com oscope
connections:write
. Esse token deverá ser armazenado como valor da variável de ambienteSLACK_APP_TOKEN
.
- Python 3.11 - pré-requisito
- Docker - pré-requisito
- Docker Compose - pré-requisito
- gettext - Serviço de internacionalização - pré-requisito
- Poetry - pré-requisito
- Ruff
- Slack Bolt
- i18n
Por favor, preste atenção nos pré-requisitos que você deverá instalar/configurar.
Variable | Description | Available Values | Default Value | Required |
---|---|---|---|---|
ENV | O ambiente da aplicacão | dev / test / qa / prod |
dev |
Sim |
PYTHONPATH | Guia para o python interpretar os pacotes da aplicação e dependências | ref | . |
Sim |
LANGUAGE | O idioma que o Bot irá interagir | en / pt_BR |
pt_BR |
Sim |
SLACK_BOT_TOKEN | O bot token gerado após a instalação do app |
um token válido |
- |
Sim |
SLACK_APP_TOKEN | O app token gerado após a instalação do app |
um token válido |
- |
Sim |
Nota: Quando você rodar o comando install (usando docker ou localmente), um arquivo .env será criado automaticamente baseado no arquivo env.template
Command | Docker | Locally | Description |
---|---|---|---|
install | make docker/install |
make local/install |
Para instalar o projeto |
tests | make docker/tests |
make local/tests |
Para rodar os testes da aplicação (com coverage) |
lint | make docker/lint |
make local/lint |
Para rodar análises estáticas do código usando ruff |
lint/fix | make docker/lint/fix |
make local/lint/fix |
Para corrigir os arquivos após a análise estática |
run | make docker/run |
make local/run |
Para rodar a aplicação |
Confira todos os comandos disponíveis no arquivo Makefile.
O Bot consegue interagir com outros idiomas além do Português utilizando o padrão i18n.
Estrutura de arquivos e pastas:
├─ src
│ ├─ locales
│ │ └─ en
│ │ └─ LC_MESSAGES
│ │ └─ base.po
│ │ └─ pt_BR
│ │ └─ LC_MESSAGES
│ │ └─ base.po
- Crie um novo diretório em
src/locales
com o novo idioma; - Cria um novo arquivo chamado
base.po
nesse novo diretóprio (você pode copiar a estrutura de outro idioma já suportado); - Faça a tradução de todas as mensagens;
- Crie os arquivos
mo
usando o comandomake generate-mo-files
; - Inclua o comando para gerar o arquivo .po no Dockerfile.
Esse projeto usa uma maneira muito simples para configurar os logs com o arquivo logging.conf.
É possível gerenciar as configurações estáticas do projeto com o arquivo settings.conf através da classe de configuração com recursos do ConfigParser.