Skip to content

Releases: gnacho/keynest

latest

latest Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 07 Aug 05:39
13d9101

Build automático de main (2026-08-07 05:39 UTC)

v1.5.1

Choose a tag to compare

@gnacho gnacho released this 06 Aug 19:01

Fix de bug de comportamiento (caza de bugs).

  • Sync iCal: un UID compartido entre dos inmuebles ya no migra la reserva a la otra propiedad (el ON CONFLICT de uid sobreescribia property_id). Test red-green incluido.

Assets: tarballs amd64/arm64 + checksums.txt

v1.5.0

Choose a tag to compare

@gnacho gnacho released this 06 Aug 18:33

Release de auditoría de seguridad (bug-hunting).

  • Body cap global de 11 MB en todas las rutas (los endpoints JSON se parseaban sin límite; uploads de fotos ≤10 MB intactos).
  • Cambio de contraseña invalida las demás sesiones del usuario (la actual sobrevive).
  • TODO de auditoría de seguridad en CHANGELOG Unreleased (issue #32).

Assets: tarballs amd64/arm64 + checksums.txt

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 04 Aug 21:21
feat: Mi perfil horizontal + backend avatar/display_name/email

- Backend: migración 11 (display_name + avatar en users), endpoints
  PUT /api/auth/profile (display_name, email), POST /api/auth/avatar
  (multipart, crop 1:1, máx 2MB), serveStatic /avatars/*.
- Frontend: tarjeta 'Mi perfil' en una línea horizontal con avatar,
  nombre editable, email editable, idioma, notificaciones, contraseña
  y logout. Reemplaza la antigua SessionCard.
- i18n: aj.miPerfil, aj.cambiarPassword, aj.cerrarSesion, etc.

v1.3.2

Choose a tag to compare

@github-actions github-actions released this 04 Aug 20:30
feat: auto-purge expired cleaning photos + UI improvements

- Server: hourly job purges cleaning photos older than 1 month (files +
  DB array cleanup). Also runs once on startup. Logs purge count.
- UI: archived cleanings show 'Photos deleted after 1 month' message
  when retention expired and photos array is empty.
- All image tags (CleaningCard, CleaningPhotos, PhotoLightbox) now
  handle broken images with onError fallback placeholder.

v1.3.1

Choose a tag to compare

@github-actions github-actions released this 04 Aug 20:04
feat: PhotoCropDialog v2 with 8 improvements

Replaced the basic 4:3 crop-only dialog with the full photo-crop skill:
- EXIF orientation fix (photos from mobile no longer rotated)
- Keyboard a11y (arrows, +/-, Enter, Escape)
- Zoom via scroll wheel and pinch-to-zoom (mobile)
- Configurable ratios (4:3, 16:9, 1:1, free)
- Quality and resolution as parameters (maxLongSide 1200px, quality 0.85)
- Multi-step downsampling (better quality for large photos)
- File size indicator (~150 KB WebP)
- Double tap/click to reset zoom and center

v1.3.0 — security hardening + backups

Choose a tag to compare

@gnacho gnacho released this 04 Aug 12:42

Security hardening (auditoría v1.2.0)

Fixes anteriores (v1.2.1)

  • ENC_KEY fuera de la BD: clave de cifrado desde variable de entorno
  • IP real del socket para rate-limit: XFF solo con TRUST_PROXY=true
  • Fotos desde subdirectorio: raíz estática es DATA_DIR/photos

Nuevas mejoras (v1.3.0)

  • SESSION_SECRET desde entorno: igual que ENC_KEY, evita falsificación de sesiones si roban la BD
  • Cookie secure: true siempre: adecuado para despliegue solo LAN
  • Timeout sesión 30 → 7 días
  • Password mínimo 6 → 10 caracteres (nuevas/reset, no login existente)
  • Rate limits en /sync y subidas de fotos: 5/min y 20/min respectivamente
  • Validación magic bytes en fotos: verifica contenido real (JPEG/PNG/WebP), no solo file.type
  • Backup diario automático: configurable desde Ajustes (admin), con retención de 3 a 90 días
  • Tabla rate_limits en BD para control de acciones costosas

Migración

Para instalaciones existentes, añadir a /opt/keynest/server/.env:

# Generar claves seguras
openssl rand -hex 32
# Añadir al env
echo 'SESSION_SECRET=<clave-generada>' >> /opt/keynest/server/.env

v1.2.1 — security hardening

Choose a tag to compare

@gnacho gnacho released this 04 Aug 12:10

Security fixes (auditoría v1.2.0)

  • encKey fuera de la BD: la clave de cifrado ahora se lee de ENC_KEY en el entorno (/etc/keynest/env). Si no está definida, fallback a la BD con warning.
  • Rate-limit usa IP real del socket: ya no confía en X-Forwarded-For por defecto. Solo con TRUST_PROXY=true (detrás de proxy inverso).
  • Fotos servidas desde subdirectorio: la raíz estática de /photos/* es ahora DATA_DIR/photos, no DATA_DIR completo (evita exposición de la BD ante un eventual path traversal).

Migración

Para instalaciones existentes, añadir ENC_KEY a `/etc/keynest/env:

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 22:12
chore: release v1.2.0

v1.1.1

Choose a tag to compare

@github-actions github-actions released this 02 Aug 06:32
chore(release): v1.1.1