--- name: reset_chrome_profiles kind: pipeline lang: bash domain: pipelines version: "1.0.0" purity: impure signature: "reset_chrome_profiles --user-data-dir [--profile \"=\"]... [--backup-dir ] [--base-port 9250] [--keep ]... [--dry-run] [--yes]" description: "Pipeline de reset destructivo de perfiles de Chromium: hace backup de los bookmarks de todos los perfiles, cierra el chromium que use ese user-data-dir, borra los perfiles (carpeta + Local State), los recrea (la managed policy reinstala la whitelist de extensiones uBlock + web_proxy), restaura los bookmarks y verifica que cada perfil quedó solo con la whitelist. DESTRUCTIVO: se pierden cookies, logins, historial y contraseñas; solo los bookmarks se preservan. Requiere --yes en modo real." tags: [launcher, navegator, chromium, pipeline, profile, reset] uses_functions: - backup_chrome_bookmarks_bash_browser - delete_chrome_profile_bash_browser - create_chrome_profile_bash_browser - restore_chrome_bookmarks_bash_browser uses_types: [] returns: [] returns_optional: false error_type: "error_go_core" imports: [] params: - name: "--user-data-dir " desc: "Raíz del user-data-dir de Chromium cuyos perfiles se resetean (ej. ~/.config/chromium-cdp)." - name: "--profile " desc: "Perfil a resetear, formato carpeta=nombre-legible (repetible). Default los 4 reales: Default=Work, Personal=Personal, 'Profile 1'=Aurgi, Automation=Automation." - name: "--backup-dir " desc: "Directorio donde se guardan los backups de bookmarks. Default ~/.local/share/web_scraping/bookmarks-backups." - name: "--base-port " desc: "Puerto CDP base para recrear perfiles (cada perfil usa base+i). Default 9250." - name: "--keep " desc: "ID de extensión esperada tras el reset (repetible). Default uBlock Origin Lite + web_proxy toggle. Solo se usa en la verificación final." - name: "--dry-run" desc: "Previsualiza los 6 pasos sin tocar el sistema." - name: "--yes" desc: "Confirma la operación destructiva (obligatorio en modo real)." output: "Ejecuta backup → cerrar chromium → delete → create → restore → verify. Emite el progreso de cada paso y un resumen. Sale 0 si todo OK y cada perfil quedó solo con la whitelist; != 0 si falla algún paso o la verificación detecta extensiones fuera de la whitelist." tested: false tests: [] test_file_path: "" file_path: "bash/functions/pipelines/reset_chrome_profiles.sh" --- ## Ejemplo ```bash # Previsualizar el reset de los 4 perfiles del chromium diario (no toca nada) fn run reset_chrome_profiles --user-data-dir "$HOME/.config/chromium-cdp" --dry-run # Reset real (destructivo): backup bookmarks, borrar+recrear los 4 perfiles, restaurar bookmarks fn run reset_chrome_profiles --user-data-dir "$HOME/.config/chromium-cdp" --yes # Reset de un solo perfil con nombre legible fn run reset_chrome_profiles --user-data-dir "$HOME/.config/chromium-cdp" \ --profile "Automation=Automation" --yes ``` ## Cuando usarla Cuando quieras dejar los perfiles de un Chromium **limpios desde cero** conservando solo la whitelist de extensiones (uBlock + la de captura del web_proxy) y preservando los bookmarks, pero descartando todo el resto del estado (cookies, logins, historial). Útil para volver a un estado conocido de scraping/captura o para limpiar perfiles contaminados. La managed policy de `/etc` ya fuerza la whitelist, así que los perfiles recreados nacen correctos. ## Gotchas - **DESTRUCTIVO**: cookies, logins, historial y contraseñas de los perfiles se pierden de forma irreversible. Solo los bookmarks se preservan (backup + restore byte a byte). Por eso requiere `--yes` en modo real. - **Cierra el chromium del user-data-dir indicado** (pkill por `--user-data-dir`), no cualquier chromium. Si tienes otro chromium con otro user-data-dir, no se toca. - **Depende de la managed policy**: los perfiles recreados solo tendrán uBlock + web_proxy si la policy de `/etc/chromium/policies/managed/extensions.json` las fuerza (ver `apply_chromium_extension_policy_bash_browser`). Si la policy no está, los perfiles nacen sin extensiones. - La verificación final comprueba las carpetas en `/Extensions/`; para una auditoría detallada (nombre, versión, enabled, fromPolicy) usar `list_chrome_profile_extensions_go_browser`. - Lanzar chromium desde el Bash tool da exit-144; `create_chrome_profile` usa `systemd-run --user` internamente para evitarlo.