---
name: metabase_add_ops_db
kind: pipeline
lang: py
domain: pipelines
version: "1.0.0"
purity: impure
signature: "metabase_add_ops_db(app_name: str) -> None"
description: "Registra la operations.db de una app en Metabase como database SQLite. Verifica duplicados y muestra el mount necesario para el contenedor Docker."
tags: [metabase, operations, sqlite, docker, pipeline, infra, launcher]
uses_functions:
  - metabase_auth_py_infra
  - metabase_list_databases_py_infra
  - metabase_add_database_py_infra
uses_types: []
returns: []
returns_optional: false
error_type: "error_go_core"
imports: []
params:
  - name: app_name
    desc: "Nombre de la app cuya operations.db registrar en Metabase"
output: "Void - registra la operations.db en Metabase como database SQLite y muestra mount requerido"
tested: false
tests: []
test_file_path: ""
file_path: "python/functions/pipelines/metabase_add_ops_db.py"
---

## Ejemplo

```bash
# Registrar una app
python python/functions/pipelines/metabase_add_ops_db.py docker_tui

# Listar estado de todas las apps
python python/functions/pipelines/metabase_add_ops_db.py --list
```

## Flujo

1. `metabase_auth` - autentica contra Metabase
2. `metabase_list_databases` - verifica si la database ya existe
3. `metabase_add_database` - registra la operations.db como SQLite

## Requisitos

El contenedor Metabase debe tener montado el directorio de la app como volumen RW:

```
-v $HOME/fn_registry/apps/<app_name>:/data/ops-<app-name>
```

Ademas, el directorio debe tener permisos para el usuario metabase (UID 2000):

```bash
docker exec -u root <container> chown -R metabase:metabase /data/ops-<app-name>/
```

## Convencion de nombres

- Database en Metabase: `ops-<app-name>` (guiones en vez de underscores)
- Path en contenedor: `/data/ops-<app-name>/operations.db`
