Kobana

Control granular, auditoría completa, cifrado en reposo.

151 permisos en el dashboard, RBAC con roles personalizables, AuditLog con diff completo, AES-256-GCM en credenciales. LGPD listo.

Funcionalidad
AuditLog con filtros por usuario, acción y recurso
151
permisos en dashboard
AES-256-GCM
datos sensibles
TLS 1.3
en tránsito
LGPD
export + delete nativos

Qué está siendo protegido

RBAC con Roles Personalizables
4 roles estándar (Admin, Financiero, Operacional, Visualización). Crea roles personalizados combinando cualquier permiso.
  • DashboardRole por organización
  • DashboardUserToRole many-to-many
  • Herencia via groups
  • API para automatización
Autenticación Multi-Método
NextAuth con Google OAuth (admin), Kobana OAuth (dashboard/portal), magic link (portal), contraseña + 2FA opcional.
  • Sesiones con timeout configurable
  • Bloqueo automático por intentos fallidos
  • Recovery codes para 2FA
Cifrado en Reposo
lib/crypto.ts con AES-256-GCM. Aplicado en credenciales de gateway, NFe.io API key, webhook secrets, certificate PFX, portal tokens.
  • Clave de 32 bytes en variable de entorno
  • IV único por encrypt
  • Authentication tag verifica integridad
  • safeDecrypt para migración gradual
TLS 1.3 en Tránsito
Toda comunicación HTTPS obligatorio. HSTS habilitado. Certificate pinning opcional para SDKs.
  • HTTPS obligatorio
  • HSTS habilitado
  • Certificate pinning opcional
AuditLog Detallado
Toda mutación registrada con userEmail, ipAddress, userAgent, action, resourceType, resourceId, previousValues, newValues.
  • 200+ tipos de acción rastreados
  • Retención configurable (default 2 años)
  • Export para SIEM
  • Inmutable (append-only)
Eventos Internos (Event Model)
Capa adicional de tracking. Cada cambio de estado genera Event para webhook + replay.
  • Persistido por organización
  • Filtro por tipo, recurso, período
  • API de retry
Idempotencia en Mutaciones
Header Idempotency-Key aceptado en todas las mutaciones. Columna única en subscription_item_changes y tablas críticas.
  • Previene duplicación por retry de red
  • TTL configurable
  • Misma key retorna misma respuesta
2FA (TOTP)
Google Authenticator, Authy, Microsoft Authenticator compatibles. Opcional por usuario, obligatorio por rol.
  • Códigos de recuperación (10 códigos de un solo uso)
  • Renovación vía dashboard
  • Notificación de uso
Compliance LGPD
DataPurgeService implementa derecho al olvido. ExportService genera dump completo.
  • Worker data-purge ejecuta exclusión programada
  • Soft delete + anonimización preservando historial fiscal
  • Registro de consentimiento en metadata
  • Retención configurable
Webhooks Firmados
Todos los webhooks firmados con HMAC-SHA256. Secret cifrado. Validación timing-safe.
  • X-Kobana-Signature header
  • Algoritmo HMAC-SHA256
  • Replay protection vía timestamp
IP Allowlist (Enterprise)
RateLimitConfig por API key soporta restricción por IP. Bloqueo por país vía IP geolocation.
  • Restricción por IP
  • Bloqueo por país
  • Solo Enterprise
Rate Limiting
Límites por API key y endpoint. RateLimiterService usa Redis para contador distribuido.
  • Default 100 req/s por org
  • Burst configurable
  • 429 con Retry-After

Crear rol personalizado vía 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 Soporte",
    "slug": "operador-soporte",
    "description": "Puede ver todo y responder dudas, no puede tocar finanzas",
    "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-soporte",
  "permissions_count": 7,
  "users_count": 0
}

Perguntas frequentes

Seguridad que pasa en auditoría