feat: pipelines Metabase — add ops db, create ops dashboard, fix permissions
Tres pipelines Python para gestionar operations.db en Metabase: - metabase_add_ops_db: registra la operations.db de una app como database SQLite - metabase_create_ops_dashboard: genera dashboard operativo con 14 cards (KPIs, distribución, executions, assertions) para cualquier app - metabase_fix_permissions: arregla SQLITE_READONLY_DIRECTORY haciendo chmod 777/666 sin chown (que se propaga al host via bind mount) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
---
|
||||
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: []
|
||||
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/lucas/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`
|
||||
Reference in New Issue
Block a user