Pitch: Acesse seu banco de dados postgres pelo navegador.
Olá! Prazer me chamo Marcelo e sou desenvolvedor web. A uns tempos atrás estava trabalhando em um side project e ele, assim como muitos projetos, usava um banco de dados.
Eu tinha recém formatado minha máquina e estava apenas com o vscode e node, e não tem muito como trabalhar com um banco de dados sem acessa-lo, você estaria desenvolvendo quase que "vendado".
E pulando uma parte da história e indo direto ao ponto, estou trabalhando em um side project que seria um gerenciador de banco de dados pelo navegador
LINK: https://sql.vuekoo.com PS: no momento só aceita bancos POSTGRES
Ainda estou desenvolvendo ele, pode se dizer que ele está em fase de testes, porém, ainda assim, já está me ajudando bastante no dia a dia do meu trabalho.
Pois além de ser "mais leve" visto que é apenas uma aba do navegador, é mais prático as vezes do que ter que instalar uma ferramenta a mais para isso.
Queria apenas compartilhar o desenvolvimento do projeto, pois, assim como está sendo útil para mim mesmo em "beta" e com pequenos bugs que estão sendo resolvidos, pode ser que ajude mais alguém.
Algumas considerações de segurança que sugiro que analise:
Banco de dados publicamente acessível
Veja que qualquer um que consiga as credenciais do banco de dados consegue conectar a ele. Isso é um problema pois se as credenciais vazarem de algum jeito, qualquer um consegue ter acesso ao mesmo.
Isso nem é sobre sua plataforma em si mas sim sobre o pré-requisito dela para que ela possa se conectar ao banco de dados.
É importante que bancos de dados não sejam publicamente acessíveis pois credenciais vazam, senhas não são tão confiáveis assim. Seja por erro humano, seja por vulnerabilidade na aplicação que se conecta ao banco de dados, falha de configuração, malware etc.
Existem várias maneiras diferentes onde um criminoso pode obter as credenciais do banco de dados. É importante trabalhar assumindo que isso vai acontecer um dia e só deixar o banco de dados acessível via servidor da aplicação.
Confiança em terceiro
Para alguém usar sua plataforma precisa confiar em você... Quem é você?
Não é questão de achar que você seja um criminoso, mas confiar em você também significa confiar que você não vai, nunca, cometer um errinho sequer em relação à segurança desta plataforma... Você se garante?
Agora digamos que você cometa um errinho sequer, e uma empresa tem um prejuízo milionário por causa da tua plataforma. Você vai pagar o prejuízo? Não vai.
Veja o phpMyAdmin por exemplo que é uma aplicação semelhante, ela é self-hosted e open source o que faz muita diferença. Não depende da confiança na plataforma/servidor/domínio de terceiros.
Plataforma publicamente acessível
Digamos que você resolveu os dois problemas acima, agora tá equiparável a um phpMyAdmin da vida...
Beleza, mas plataformas como phpMyAdmin também tem outro problema (nesse caso de configuração): elas não podem ficar publicamente acessíveis. Pois caso contrário cai no mesmo problema de deixar o banco de dados publicamente acessível: se alguém conseguir uma credencial de acesso já era...
Além disso a plataforma em si pode ter vulnerabilidades e outros tipos de falhas de segurança.
Então plataformas como essa podem ser usadas sim, mas não podem ficar publicamente acessível senão é um risco de segurança.
Deve ser feito algo à respeito, como:
- Só deixar a plataforma disponível em uma rede privada (ex.: conectando via VPN)
- Fazer um SSO prévio para liberar acesso à plataforma
- Rodar a plataforma somente em localhost no servidor e fazer um SSH tunneling para acessar a plataforma
- etc.
Muito legal a ideia! Mas, eu não sei se confiaria colocar os acessos do meu banco de dados na sua plataforma.
Entendo que é inicial, e estou dando minha opinião baseado no momento atual do seu projeto.
Não precisei criar conta (o que de certa forma pode ser bom), porém não aparece nenhum termo de uso, como os dados são salvos, LGPD ou algo do tipo...
Se fosse possível ver o código fonte, talvez ajudasse =)
Mas, voltando ao que comentei, a ideia é ótima. Vou ficar de olho!
Gostei muito, Marcelo! A interface parece ser bem legal. No entanto, não tenho um banco de dados para conectar e testar. Talvez fosse interessante adicionar um no demo... Você poderia fazer um vídeo mostrando as funcionalidades e como é a interface uma vez conectada a um banco de dados?
Mas estou curioso, por que escolher esta ferramenta em vez do pgAdmin (em modo web)? Ou, se a ideia é algo realmente leve, por que não usar apenas o terminal? Parece-me que, com essas opções disponíveis, não há muito motivo para gastar tanto esforço para desenvolver algo?!
Mas enfim, eu realmente gostaria de testar. Parabéns pelo projeto e obrigado por compartilhar!
Excelente projeto! Mandou ver. Minha sugestão para mitigar os problemas de segurança é usar um ambiente sandbox. Já viu aqueles projetos que rodam NodeJS direto do navegador? Ou seja, sem precisar de um servidor?
Isso pode ser uma alternativa, pois o projeto rodaria diretamente na maquina do cliente e assim, diminuiria os riscos de dano.
Veja um video da Rocketseat: https://www.youtube.com/watch?v=P3Yh5ifTYPQ
Boa sorte com o projeto!
Muito bom e símples, interface amigável e realmente é bem leve.
A unica questão que vejo e compartilho junto com os outros comentários é sobre a segurança e abrir o código fonte seria bem interessante mesmo, mostrar como está sendo a conexão é a melhor solução para essa questão de segurança.
Parabéns pelo projeto e sucesso.