Commit Graph
110 Commits
Author SHA1 Message Date
Lizandro GuarnizoandCopilot 63d124215b feat(query-runner): soporte completo Redis
Backend:
- Agrega github.com/redis/go-redis/v9 como dependencia
- isRedisDriver() detecta 'redis' y 'valkey' en nombre del tipo de BD
- redisConnect(): abre cliente Redis con auth, host, port, db index
- redisTestConnection(): PING para probar conexión
- redisListDatabases(): lee CONFIG GET databases → devuelve db0..dbN
- redisListKeys(): SCAN iterativo, hasta 200 keys del db seleccionado
- redisExecuteCommand(): parsea comandos línea a línea, multi-comando
  devuelve tabla command/result/error; comando único devuelve QueryResult
  tipado (string, int64, []any para KEYS/SMEMBERS/LRANGE, HGETALL como
  field/value table)
- redisParseArgs(): tokenizador respetando comillas simples y dobles
- Todos los comandos se guardan en query_history

Frontend:
- isRedis: false estado y reset en onConxChange()
- Detecta redis/valkey en tipo_db.nombre
- Editor cambia label 'Redis CLI', placeholder con ejemplos Redis
- Sidebar: 'Keys' en lugar de 'Tablas' para Redis
- insertTable(): TYPE + TTL + GET para inspeccionar una key de Redis
- Panel de chips rojos: KEYS *, DBSIZE, INFO, CONFIG GET, CLIENT LIST, SLOWLOG
- Generador Redis: select de 24 comandos + formulario contextual
  (key, value, ttl, field según el comando elegido)
- generateRedisCmd(): genera el comando en el editor
- Badge MySQL no aparece cuando es Redis

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-20 21:07:33 -05:00
Lizandro GuarnizoandCopilot fc647944b0 fix: ejecutar sentencias PostgreSQL individualmente para evitar CREATE DATABASE en transacción
- Agrega splitPostgresStatements() que parsea SQL respetando dollar-quoting, strings y comentarios
- En ExecuteSQL, si es PostgreSQL y hay múltiples sentencias, cada una se ejecuta con su propio db.Exec()
- Evita el error: 'CREATE DATABASE cannot run inside a transaction block'
- Error ocurría porque PostgreSQL envuelve multi-statement en transacción implícita al usar simple query protocol

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-20 20:39:00 -05:00
Lizandro Guarnizo 31259cbb71 feat: actualizar lógica de filtrado de usuarios y establecer tipo de usuario por defecto en creación 2026-05-19 20:26:25 -05:00
Lizandro Guarnizo 24e1cf1439 feat: add VCard API integration with configuration and proxy endpoints
- Implemented VCard API controller with methods to manage configuration (save, get).
- Added proxy functions to handle API requests for users, vcards, memberships, payments, transactions, logs, and miniwebs.
- Included error handling and response formatting for API interactions.
2026-05-19 20:08:50 -05:00
Lizandro GuarnizoandCopilot 6e27032ac6 feat(portal): agregar flujo de recuperación de contraseña
- Nuevo modelo PortalPasswordResetToken con token seguro (32 bytes, 1h vigencia)
- AutoMigrate del nuevo modelo en main.go
- SendPortalPasswordResetEmail con diseño consistente al app
- Handlers: PortalForgotPasswordPage/Post y PortalResetPasswordPost/Page
- Rutas públicas GET/POST /portal/forgot-password y /portal/reset-password
- Vistas forgot_password.html y reset_password.html con validación JS
- Enlace ¿Olvidaste tu contraseña? en login.html + soporte mensaje success

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-19 15:25:53 -05:00
Lizandro Guarnizo b5e6a9285f up 2026-05-19 13:33:39 -05:00
Lizandro Guarnizo 762ebc2afc up 2026-05-19 13:09:06 -05:00
Lizandro Guarnizo d713dcd47b up 2026-05-19 12:43:19 -05:00
Lizandro Guarnizo 7f309186d6 up 2026-05-18 23:50:50 -05:00
Lizandro Guarnizo bbe83c79ba up 2026-05-18 23:45:11 -05:00
Lizandro Guarnizo 25f21be966 up 2026-05-18 19:17:05 -05:00
Lizandro Guarnizo 4b2003c752 ip 2026-05-16 21:54:17 -05:00
Lizandro Guarnizo 65f35fbc51 Update telegram_portal_token.go 2026-05-16 21:42:37 -05:00
Lizandro Guarnizo 5aad09f1cd up 2026-05-16 21:41:44 -05:00
Lizandro Guarnizo 1511ca97d9 up 2026-05-16 21:36:59 -05:00
Lizandro Guarnizo 4fa506c7d6 up 2026-05-16 21:27:30 -05:00
Lizandro Guarnizo fcc3ff7ca7 up 2026-05-16 21:05:05 -05:00
Lizandro Guarnizo 562ffa4184 up 2026-05-16 20:54:11 -05:00
Lizandro Guarnizo 2b7458b612 up 2026-05-16 20:01:36 -05:00
Lizandro Guarnizo 4c14f4a641 up 2026-05-16 18:47:40 -05:00
Lizandro Guarnizo b6203c1a68 Update notif_config.go 2026-05-16 16:36:36 -05:00
Lizandro Guarnizo 45928cbdbb Update notif_dispatch.go 2026-05-16 16:11:36 -05:00
Lizandro Guarnizo 1b22cc2fe7 k 2026-05-16 15:26:48 -05:00
Lizandro Guarnizo f5eef70e09 up 2026-05-16 15:17:49 -05:00
Lizandro Guarnizo 9820405475 up 2026-05-16 15:06:05 -05:00
Lizandro Guarnizo fef471ff6c up 2026-05-16 14:37:57 -05:00
Lizandro Guarnizo edc0e7f791 Update portal.go 2026-05-16 14:12:39 -05:00
Lizandro Guarnizo 76a0c28b16 up 2026-05-16 13:44:32 -05:00
Lizandro Guarnizo b631164091 Update shield_service.go 2026-05-15 23:30:07 -05:00
Lizandro Guarnizo 49cc56123b up 2026-05-15 23:22:35 -05:00
Lizandro Guarnizo 5ec5595196 up 2026-05-15 21:01:30 -05:00
Lizandro Guarnizo 3a301267e7 up 2026-05-15 17:03:53 -05:00
Lizandro Guarnizo 95dd469d3c Update mail_service.go 2026-05-15 16:35:59 -05:00
Lizandro Guarnizo dd567a156b Update portal.go 2026-05-15 16:30:41 -05:00
Lizandro Guarnizo 41fe416986 Update portal.go 2026-05-15 16:19:17 -05:00
Lizandro Guarnizo 6ba096e97e Update mail_service.go 2026-05-15 16:06:13 -05:00
Lizandro Guarnizo 04fd456a4c mejora del portal 2026-05-15 15:39:48 -05:00
Lizandro Guarnizo d7fe292f05 up 2026-05-15 14:46:11 -05:00
Lizandro Guarnizo b340d29583 up 2026-05-15 14:26:52 -05:00
Lizandro Guarnizo 2377371b2c up 2026-05-14 22:52:10 -05:00
Lizandro Guarnizo 61b3eca31d up 2026-05-14 22:30:31 -05:00
Lizandro Guarnizo 277ad6bb63 feat(hostinger): VPS resource metrics modal — CPU, RAM, disco, tráfico, uptime 2026-05-14 21:00:57 -05:00
Lizandro Guarnizo 8343101525 feat(hostinger): VPS actions, DNS editing, domain lock/privacy, nameservers, auto-renewal 2026-05-14 20:42:57 -05:00
Lizandro Guarnizo abecb9b305 fix(hostinger): DNS aplanado + nameservers, facturacion precios formateados, subscriptions endpoint 2026-05-14 20:17:45 -05:00
Lizandro Guarnizo beb9e9d9eb up 2026-05-14 19:56:44 -05:00
Lizandro Guarnizo a633bc765c up 2026-05-14 19:28:24 -05:00
Lizandro Guarnizo d2fdc1f0db fix: hostinger VPS - ipv4/ipv6 son arrays, no strings 2026-05-14 19:21:29 -05:00
Lizandro Guarnizo 73f6a4e24a Update hostinger_service.go 2026-05-14 18:35:28 -05:00
Lizandro Guarnizo ed42707dff Update hostinger_service.go 2026-05-13 23:12:24 -05:00
Lizandro Guarnizo ce2fed2587 up 2026-05-13 22:36:09 -05:00