CreaRack-SL

El backup cubre ahora cables, salas DCIM, ITSM y Signage (v1.70.0)

Valor para el usuario

Hasta ahora, un Full System Backup no era realmente “todo el sistema”: guardaba racks, mapas (blueprints), targets de monitorización y scripts, pero se dejaba fuera piezas enteras — las conexiones físicas de cable entre equipos, la distribución de filas dentro de las salas DCIM, toda la configuración del centro de incidencias (ITSM: políticas SLA, canales de aviso, escalados, ventanas de mantenimiento, runbooks…) y el módulo completo de cartelería digital (Signage: contenidos con sus ficheros, listas de reproducción, horarios, reproductores y proyectos de cliente). Se detectó al preguntar si el backup respaldaba realmente todos los dominios de datos — la respuesta era no. Desde v1.70.0, todo eso viaja en la maleta y un restore recupera la organización entera, reconectando cada pieza con las demás (un cable vuelve a apuntar a sus equipos recuperados, una lista de reproducción a sus contenidos recuperados, etc).

Cómo usarla

No hay ningún paso nuevo para el usuario: al generar un Full System Backup (Ajustes → Exportar) el ZIP incluye automáticamente las colecciones nuevas, y al restaurarlo en otra organización el sistema las recrea re-mapeando los IDs internos. Los ficheros de media de Signage, que llevan el ID de la organización de origen incrustado en su ruta, se recolocan automáticamente a la ruta de la organización destino.

Implementación

  • Dos módulos nuevos, hermanos de backup.py/restore.py (separados por el límite de 500 LOC del proyecto): racks/api/export/backup_domains.py (serialización, 242 LOC) y racks/api/export/restore_domains.py (restore con re-mapeo, 317 LOC).
  • 14 colecciones nuevas: cables físicos (PortConnection), posición de filas en salas DCIM (RoomRowPlacement), configuración ITSM (SLAPolicy, NotificationChannel, EscalationPolicy + niveles, MaintenanceWindow, KnownIssue, Runbook, RecurringPattern) y el CMS de Signage (MediaAsset con sus ficheros, Playlist, Schedule, SignagePlayer, ClientProject).
  • El restore suma dos mapas de re-mapeo de IDs (blueprint_map, profile_map) a los ya existentes (device_map, target_map), y recoloca los ficheros de Signage de signage/<org_origen>/… a signage/<org_destino>/….
  • Fuera a propósito: tokens públicos (share_token, publish_token — se regeneran al restaurar), credenciales de player (api_credentials, http_credential — re-vinculación manual), StoredCredential/SshHostKey (material sensible, decisión aparte), catálogos globales de la instalación (VendorProfile, CustomMib) e históricos/eventos.
  • Los conteos nuevos entran en el manifest.json introducido en v1.69.0, así que la verificación de integridad de la creación del backup ya los vigila sin cambios adicionales.
  • Tests: tests/api/test_backup_scope.py (3 nuevos) — round-trip completo con re-mapeos verificados, organización sin dominios extendidos (conteos a 0), y ZIP legacy pre-v1.70.0 que sigue restaurando sin error. Área verificada en Docker: 23 tests + mypy en verde.

Commits relacionados

  • c4174facfd5d330a4bdaafa91a0346cf7dda1fa6 — 2026-08-20 — feat(backups): la maleta completa — cables, salas DCIM, ITSM y Signage entran al backup (task #236, PR-1.5) - v1.70.0 (#397)

Véase también

  • [[crearack-tech—admin—backup-restore]]
  • [[entity—racks—endpoint—backup-full]]
  • [[entity—racks—service—run-full-backup]]
  • [[entity—core—service—backup-service]]
  • [[feature—backup-restore—additive-restore-confirmation-v1-66-2]]
  • [[entity—racks—endpoint—backup-full-start]]
  • [[entity—racks—endpoint—backup-full-download]]
  • [[crearack—settings—backup-export-reports]]