fix: improve role assignment logic and permission handling in dashboard components

This commit is contained in:
2025-10-27 08:41:53 -03:00
parent 2c2b792b4a
commit 6bfc0c2ced
19 changed files with 2105 additions and 118 deletions

View File

@@ -0,0 +1,84 @@
# 🔐 Guia de Variáveis de Ambiente - Backend Convex
## 📋 Variáveis Obrigatórias
### 1. BETTER_AUTH_SECRET
**Status:** 🔴 **OBRIGATÓRIO em Produção**
**Descrição:** Chave secreta para criptografia de tokens de autenticação
**Como gerar:**
```powershell
# Windows PowerShell
[Convert]::ToBase64String([System.Security.Cryptography.RandomNumberGenerator]::GetBytes(32))
```
```bash
# Linux/Mac
openssl rand -base64 32
```
**Onde configurar:** Convex Dashboard > Settings > Environment Variables
---
### 2. SITE_URL
**Status:** 🔴 **OBRIGATÓRIO**
**Descrição:** URL base da aplicação
**Valores:**
- Desenvolvimento: `http://localhost:5173`
- Produção: `https://sgse.pe.gov.br` (substitua pela URL real)
**Onde configurar:** Convex Dashboard > Settings > Environment Variables
---
## ⚙️ Como as variáveis são usadas
Estas variáveis são carregadas em `packages/backend/convex/auth.ts`:
```typescript
// Fallback para desenvolvimento local
const siteUrl = process.env.SITE_URL || process.env.CONVEX_SITE_URL || "http://localhost:5173";
const authSecret = process.env.BETTER_AUTH_SECRET;
```
### Comportamento:
1. **`siteUrl`:**
- Primeiro tenta usar `SITE_URL`
- Se não existir, tenta `CONVEX_SITE_URL`
- Se nenhum estiver configurado, usa `http://localhost:5173` (apenas para desenvolvimento)
2. **`authSecret`:**
- Usa `BETTER_AUTH_SECRET` se configurado
- Se não configurado, Better Auth usará um secret padrão (⚠️ INSEGURO em produção!)
---
## ✅ Checklist de Configuração
### Desenvolvimento Local
- [ ] Sistema funciona sem configurar (usa valores padrão)
- [ ] Mensagens de aviso são esperadas e podem ser ignoradas
### Produção
- [ ] `BETTER_AUTH_SECRET` configurado no Convex Dashboard
- [ ] `SITE_URL` configurado no Convex Dashboard
- [ ] Secret gerado usando método seguro
- [ ] URL de produção está correta
- [ ] Mensagens de erro não aparecem mais
---
## 📖 Mais Informações
Consulte o arquivo `CONFIGURACAO_PRODUCAO.md` na raiz do projeto para instruções detalhadas.