feat(auto_metabase): push-all + describe/sql + auto-inject de dashcards

- push_all(): pushea todos los YAMLs de un proyecto (cards primero,
  dashboards despues), solo CREATE/UPDATE, resiliente a fallos por item
- explore.py: comandos describe (schema de DB) y sql (query ad-hoc con
  limite, cap 5MB, bloqueo de escrituras destructivas)
- payload.py: auto-inyecta id:-N, visualization_settings:{} y
  parameter_mappings:[] en dashcards nuevas para evitar 500 en push
- test_local: 11 cards + 3 dashboards sobre Sample Database de Metabase
- registry.db regenerado con auto_metabase_py_analytics indexada

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-13 13:14:05 +02:00
parent 386a5471e0
commit 310b409ae0
32 changed files with 3116 additions and 0 deletions
@@ -0,0 +1,29 @@
{
"cards": {
"clientes_nuevos_por_mes": 48,
"clientes_por_edad": 49,
"clientes_por_estado": 46,
"clientes_por_source": 50,
"clientes_recientes": 51,
"clientes_top_ciudades": 52,
"clientes_total": 42,
"compras_por_mes": 45,
"compras_total": 43,
"ingresos_totales": 44,
"test_count_users": 40,
"test_users_by_locale": 41,
"top_clientes": 47
},
"collections": {},
"dashboards": {
"auto_metabase_test_dashboard": 2,
"compras_y_clientes": 4,
"kpis_minimal": 5,
"panel_clientes": 6
},
"databases": {
"metabase_internal_pg": 2,
"sample_database": 1
},
"documents": {}
}