Skip to content

adrianoleitedasilva/VaultKey

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

VaultKey

NodeJS Express.js SQLite Google Chrome

Gerenciador de senhas com extensão para Chrome e backend em Node.js.

Estrutura do projeto

projeto-claude-code/
├── backend/                   # API REST (Node.js + Express + SQLite)
│   ├── src/
│   │   ├── app.js             # Entry point
│   │   ├── controllers/       # Recebem req/res e delegam para services
│   │   │   ├── authController.js
│   │   │   └── credentialController.js
│   │   ├── services/          # Lógica de negócio
│   │   │   ├── authService.js
│   │   │   ├── credentialService.js
│   │   │   └── cryptoService.js
│   │   ├── models/            # Acesso ao banco de dados
│   │   │   ├── db.js
│   │   │   ├── userModel.js
│   │   │   └── credentialModel.js
│   │   ├── routes/
│   │   │   ├── authRoutes.js
│   │   │   └── credentialRoutes.js
│   │   └── middleware/
│   │       └── authMiddleware.js
│   ├── data/                  # Banco SQLite (gerado automaticamente)
│   ├── package.json
│   └── .env.example
└── extension/                 # Extensão Chrome (Manifest V3)
    ├── popup/
    │   ├── popup.html
    │   ├── popup.css
    │   └── popup.js
    ├── background/
    │   └── background.js      # Service worker — faz as chamadas à API
    ├── icons/                 # Adicione icon16.png, icon48.png, icon128.png
    └── manifest.json

Configuração do backend

1. Instalar dependências

cd backend
npm install

2. Configurar variáveis de ambiente

cp .env.example .env

Edite .env e defina valores seguros para JWT_SECRET e ENCRYPTION_KEY.

ENCRYPTION_KEY deve ter exatamente 32 caracteres para AES-256.

3. Criar pasta de dados

mkdir backend/data

4. Iniciar o servidor

# Produção
npm start

# Desenvolvimento (hot-reload)
npm run dev

O servidor sobe em http://localhost:3000.

API — Endpoints

Auth

Método Rota Descrição
POST /api/auth/register Criar conta
POST /api/auth/login Login / obter token

Body (register e login):

{ "username": "alice", "masterPassword": "minha-senha-forte" }

Credentials (requer Authorization: Bearer <token>)

Método Rota Descrição
GET /api/credentials Listar credenciais
GET /api/credentials/:id Obter uma credencial
POST /api/credentials Criar credencial
PUT /api/credentials/:id Atualizar credencial
DELETE /api/credentials/:id Excluir credencial
GET /api/credentials/export Exportar todas (JSON)
POST /api/credentials/import Importar array (JSON)

Body (POST/PUT):

{
  "title": "GitHub",
  "url": "https://github.com",
  "username": "alice",
  "password": "senha-secreta",
  "notes": "Conta pessoal"
}

Extensão Chrome

Instalar em modo desenvolvedor

  1. Acesse chrome://extensions
  2. Ative Modo do desenvolvedor
  3. Clique em Carregar sem compactação
  4. Selecione a pasta extension/

Ícones

Adicione os arquivos icon16.png, icon48.png e icon128.png dentro de extension/icons/.

Segurança

  • Senhas são criptografadas com AES-256-CBC antes de persistir no banco
  • Senha mestra é armazenada como hash bcrypt (cost factor 12)
  • Autenticação via JWT com expiração configurável
  • Token armazenado no chrome.storage.local da extensão

About

Gerenciador de senhas com extensão para Chrome e backend em Node.js.

Resources

Stars

Watchers

Forks

Contributors