Task Scheduler
Dos surfaces complementarias: un scheduler in-app para jobs one-off (Ctrl+Alt+S) y un scheduler OS-level que registra entries cron / launchd / Windows Task Scheduler con el helper `nbcli` bundled (Ctrl+Alt+Shift+K).
Qué es
Programe chores DBA recurrentes — mongodump, mongoexport, shell scripts custom — desde la UI del NoSqlStudio. El scheduler in-app corre mientras el app está abierto; el scheduler OS entrega el job al scheduler nativo de su sistema operativo para que corra incluso cuando el app está cerrado.
Cuándo usar
Use el scheduler in-app para runs one-off / dev-time. Use el scheduler OS para backups grado producción, exports recurrentes a S3, jobs semanales de mask-and-refresh, o cualquier cosa que necesite sobrevivir a un reboot de la workstation.
Cómo abrirlo
- Jobs in-app — abra Tools menu → Tasks Scheduler, o presione Ctrl+Alt+S.
- Jobs OS — abra Tools menu → OS Task Scheduler, o presione Ctrl+Alt+Shift+K.
- Cada uno abre un tab de workspace con una lista de tasks registradas + un botón New Task.
Construyendo una task OS
- Elija un tipo de task: mongodump, mongoexport, shell script, o uno de los templates predefinidos (mask-and-copy, schema-diff-report, audit-export).
- Elija un schedule: hourly / daily / weekly / monthly / expresión cron (ej.: `0 2 * * *` para cada noche a las 02:00).
- Elija ventana start / end (opcional). El scheduler OS arma el job solo dentro de esta ventana.
- Llene los argumentos task-specific (target connection, output directory, filter --collection, etc.). El placeholder `{date}` expande en el momento de la ejecución para que cada run escriba un artifact con nombre único.
- Haga clic en Register. NoSqlStudio escribe la entry OS-nativa: en Windows usa `schtasks.exe`, en macOS escribe un `~/Library/LaunchAgents/...plist`, en Linux escribe `~/.config/cron.d/` + un systemd timer si está disponible.
El helper `nbcli`
Tasks del scheduler OS llaman `nbcli` (NoSqlStudio CLI), un binario bundled que corre su job desde la línea de comando sin necesitar la UI. Lee sus argumentos vía JSON encodado en base64, ejecuta vía spawn, escribe sus propias líneas de audit directo en `userData/AuditLog/audit.jsonl`, y rota su log bajo `userData/OsTaskSchedules/nbcli.log`.
Auditoría
Cada task OS emite líneas de audit `os-task.start` y `os-task.finish` (outcome success / failure). El workspace de log in-app muestra estas al lado de líneas DataMask / DB Copy — misma source para investigación forense.
Limitaciones (v1)
- Scheduler OS requiere que `nbcli` esté en su PATH (el installer dropa el wrapper en el dir del exe del app; bundles `.app` en macOS pueden necesitar un symlink). Tools Mongo (`mongodump`, `mongoexport`) también deben estar en el PATH o en `NBCLI_MONGO_TOOLS_DIR`.
- Sync entre máquinas — schedules son locales. Use una herramienta de config-management (Chef / Ansible / SCCM) para empujar templates si necesita consistencia fleet-wide.
- Notificaciones de fallo usan los mismos webhooks Alerting. Si no tiene webhooks configurados, fallos caen silenciosamente en el audit log.