Files
fn_registry/dev/flows/0003-bbva-movimientos.md
T
egutierrez 212875ed0d chore: auto-commit (286 archivos)
- .claude/agents/fn-orquestador/SKILL.md
- .claude/commands/fn_claude.md
- .claude/rules/INDEX.md
- .claude/rules/cpp_apps.md
- .claude/rules/ids_naming.md
- CHANGELOG.md
- apps/dag_engine/README.md
- apps/dag_engine/api.go
- apps/dag_engine/dags_migrated/example.yaml
- apps/dag_engine/dags_migrated/example_lineage_tracking.yaml
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 16:33:22 +02:00

2.7 KiB

name, id, status, created, updated, priority, risk, related_issues, apps, trigger, schedule, expected_runtime_s, tags
name id status created updated priority risk related_issues apps trigger schedule expected_runtime_s tags
bbva-movimientos 0003 pending 2026-05-16 2026-05-16 high high
0097
0098
navegator_dashboard
dag_engine
data_factory
auto_metabase
manual 120
scraping
banking
auth-required
sensitive-data

Goal

Caso de uso REAL con auth + datos sensibles. Probar persistencia local (duckdb en vault privado) + visualizacion en Metabase. Demuestra que el stack funciona para finanzas personales sin exfiltrar datos a la nube.

Pre-requisitos

  • Vault ~/vaults/finanzas/ existe + symlink en projects/finanzas_personales/vaults/ (crear projecto si no).
  • Chrome con sesion BBVA logueada manualmente (no automatizar login).
  • Metabase local en docker (auto_metabase provee).
  • claude CLI para AutoExtract.

Flow

  1. User abre Chrome + login BBVA + navega a "Movimientos cuenta principal".
  2. navegator_dashboard panel Pick: click sobre primera fila de la tabla movimientos. Verifica selector capturado.
  3. Panel AutoExtract: URL actual del tab. Click "Open & Analyze" (puede tardar, pagina compleja).
  4. Esperar schema propuesto. Refinar:
    • date (string DD/MM/YYYY o YYYY-MM-DD)
    • concept (string)
    • amount (float, parsea , -> .)
    • balance (float)
  5. Save recipe bbva_movimientos.yaml.
  6. Trigger manual SOLO (no schedule — requiere login activo).
  7. Sink: duckdb local en ~/vaults/finanzas/bbva.duckdb (tabla movimientos).
  8. data_factory: node bbva_movimientos kind=extractor + node vault_finanzas_duckdb kind=database.
  9. Transformer: aggregate_by_group_py_datascience por mes -> tabla mensual_summary.
  10. Sink Metabase: metabase_create_card_py_infra con SQL contra duckdb (via attachment Metabase si soporta, o via parquet export).

Acceptance

  • Recipe creada y testeada.
  • Run manual extrae >=30 movimientos (1 mes).
  • DuckDB ~/vaults/finanzas/bbva.duckdb tabla movimientos poblada.
  • data_factory muestra ambos nodos con runs.
  • Card Metabase creado con grafico "gasto mensual" via auto_metabase.
  • Datos NO viajan a registry.organic-machine (verificar: solo pc_locations registra que existe; el vault esta gitignored).

Telemetria esperada

  • function_stats.cdp_extract_recipe_py_pipelines: calls += 1 (manual).
  • data_factory.runs: 1 entry status=success.
  • auto_metabase: 1 card creado.

Notas

  • NO commitear ~/vaults/finanzas/ (gitignored por defecto).
  • Si la sesion expira: re-login manual + re-run.
  • Si BBVA cambia DOM: AutoExtract identifica nuevos selectors. Edit recipe + redeploy.
  • Privacidad: revisar call_monitor.calls que solo guarda args_hash, NUNCA valores concretos de movimientos.