Controle granular, auditoria completa, criptografia em repouso.
151 permissões no dashboard, RBAC com roles customizáveis, AuditLog com diff completo, AES-256-GCM em credenciais. LGPD pronto.
Funcionalidade

151
permissões dashboard
AES-256-GCM
dados sensíveis
TLS 1.3
em trânsito
LGPD
export + delete nativos
O que está sendo protegido
RBAC com Roles Customizáveis
4 roles padrão (Admin, Financeiro, Operacional, Visualização). Crie roles customizadas combinando qualquer permissão.
- DashboardRole por organização
- DashboardUserToRole many-to-many
- Herança via groups
- API para automação
Autenticação Multi-Método
NextAuth com Google OAuth (admin), Kobana OAuth (dashboard/portal), magic link (portal), senha + 2FA opcional.
- Sessões com timeout configurável
- Failed login attempts auto-bloqueio
- Recovery codes para 2FA
Criptografia em Repouso
lib/crypto.ts com AES-256-GCM. Aplicado em credenciais de gateway, NFe.io API key, webhook secrets, certificate PFX, portal tokens.
- Chave de 32 bytes em variável de ambiente
- IV único por encrypt
- Authentication tag verifica integridade
- safeDecrypt para migração gradual
TLS 1.3 em Trânsito
Toda comunicação HTTPS obrigatório. HSTS habilitado. Certificate pinning opcional para SDKs.
- HTTPS obrigatório
- HSTS habilitado
- Certificate pinning opcional
AuditLog Detalhado
Toda mutação registrada com userEmail, ipAddress, userAgent, action, resourceType, resourceId, previousValues, newValues.
- 200+ tipos de ação rastreados
- Retenção configurável (default 2 anos)
- Export para SIEM
- Imutável (append-only)
Eventos Internos (Event Model)
Camada adicional de tracking. Cada state change gera Event para webhook + replay.
- Persistido por organização
- Filtro por tipo, recurso, período
- API de retry
Idempotência em Mutações
Header Idempotency-Key aceito em todas as mutações. Coluna única em subscription_item_changes e tabelas críticas.
- Previne duplicação por retry de rede
- TTL configurável
- Mesmo key retorna mesma resposta
2FA (TOTP)
Google Authenticator, Authy, Microsoft Authenticator compatíveis. Opcional por usuário, obrigatório por role.
- Códigos de recuperação (10 códigos uso único)
- Renovação via dashboard
- Notificação de uso
LGPD Compliance
DataPurgeService implementa direito ao esquecimento. ExportService gera dump completo.
- Worker data-purge executa exclusão programada
- Soft delete + anonimização preservando histórico fiscal
- Registro de consentimento em metadata
- Retenção configurável
Webhooks Assinados
Todos webhooks assinados com HMAC-SHA256. Secret criptografado. Validação timing-safe.
- X-Kobana-Signature header
- Algoritmo HMAC-SHA256
- Replay protection via timestamp
IP Allowlist (Enterprise)
RateLimitConfig por API key suporta restrição por IP. Bloqueio por país via IP geolocation.
- Restrição por IP
- Bloqueio por país
- Enterprise only
Rate Limiting
Limites por API key e endpoint. RateLimiterService usa Redis para counter distribuído.
- Default 100 req/s por org
- Burst configurável
- 429 com Retry-After
Criar role customizada via API
bash
curl -X POST https://api.billing.kobana.com.br/v1/dashboard-roles \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Operador Suporte",
"slug": "operador-suporte",
"description": "Pode ver tudo e responder dúvidas, não pode mexer em finanças",
"permissions": [
"billing.dashboard.customers.list",
"billing.dashboard.customers.show",
"billing.dashboard.subscriptions.list",
"billing.dashboard.subscriptions.show",
"billing.dashboard.invoices.list",
"billing.dashboard.invoices.show",
"billing.dashboard.audit.list"
]
}'response
{
"id": "role_xyz",
"slug": "operador-suporte",
"permissions_count": 7,
"users_count": 0
}