Files
fn_registry/dev/flows/0006-metabase-versioning.md
T
egutierrez a03675113a 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.3 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
metabase-versioning 0006 pending 2026-05-16 2026-05-16 medium medium
auto_metabase
dag_engine
agents_and_robots
cron 0 2 * * * 60
metabase
sync
gitops
backup

Goal

Probar flujo INVERSO al tipico: extraer estado de un servicio interno (Metabase) y persistirlo como codigo. Sirve de backup + auditoria + reproducibilidad.

Pre-requisitos

  • Metabase corriendo (local docker o produccion).
  • auto_metabase configurado con credenciales (METABASE_URL, METABASE_TOKEN).
  • projects/metabase_registry/ existe con sub-repo git inicializado.

Flow

  1. DAG metabase-snapshot.yaml diario 02:00:
    name: metabase-snapshot
    schedule: "0 2 * * *"
    steps:
      - name: pull_metabase
        function: auto_metabase_pull_bash_pipelines
        args: ["--target", "projects/metabase_registry"]
      - name: git_diff_check
        command: cd projects/metabase_registry && git diff --stat
      - name: commit_if_changes
        command: |
          cd projects/metabase_registry
          git add -A
          if ! git diff --cached --quiet; then
            git commit -m "snapshot: $(date -u +%FT%TZ)"
            git push origin master
            echo "CHANGES_PUSHED"
          else
            echo "NO_CHANGES"
          fi
        depends: [pull_metabase]
      - name: notify
        function: matrix_send_message_<id>
        args: ["#fn-registry-ops", "Metabase snapshot: <stdout from prev step>"]
        depends: [commit_if_changes]
    
  2. data_factory: node metabase_snapshot kind=extractor (source=metabase). Tag gitops.
  3. Verificar que YAML files generados son legibles y diff-friendly.

Acceptance

  • DAG corre 3 dias consecutivos sin error.
  • >=1 commit registrado en repo metabase_registry.
  • data_factory.runs muestra historico.
  • Matrix recibe 1 mensaje/dia (con "NO_CHANGES" o "CHANGES_PUSHED").
  • Si se rompe un dashboard manualmente en Metabase -> push de YAML viejo lo restaura (test).

Telemetria esperada

  • 1 run/dia en data_factory.
  • 7 commits en metabase_registry repo (1 semana baseline).

Notas

  • Riesgo: si Metabase token expira, el DAG falla silenciosamente. Anadir healthcheck pre-pull.
  • Restore es manual hoy. Futuro: comando auto_metabase push --from-commit <SHA>.