Files
fn_registry/python/functions/pipelines/metabase_fix_permissions.md
egutierrez 988e901066 docs: params/output semántico en 506 funciones para composabilidad
Añade campos params y output al frontmatter YAML de las 506 funciones del registry.
Cada parámetro tiene descripción semántica (qué representa, unidades, rango típico)
y cada función describe qué produce su output. Permite a agentes razonar sobre
cadenas de composición (ej: prices → log_return → sharpe_ratio) sin leer código.
2026-04-05 18:45:16 +02:00

1.8 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports output tested tests test_file_path file_path
metabase_fix_permissions pipeline py pipelines 1.0.0 impure metabase_fix_permissions() -> None Arregla permisos SQLITE_READONLY_DIRECTORY en el contenedor Metabase. Hace chmod 777/666 en directorios y archivos .db bajo /data/ para que el usuario metabase (UID 2000) pueda crear journal files.
metabase
sqlite
permissions
docker
pipeline
infra
launcher
metabase_auth_py_infra
metabase_list_databases_py_infra
false error_go_core
Void - arregla permisos SQLITE_READONLY_DIRECTORY en contenedor Metabase vía chmod 777/666 false
python/functions/pipelines/metabase_fix_permissions.py

Ejemplo

# Fix permisos (usa contenedor por defecto: fn_registry-metabase)
python python/functions/pipelines/metabase_fix_permissions.py

# Contenedor custom
python python/functions/pipelines/metabase_fix_permissions.py --container mi-metabase

Problema

Metabase corre Java como UID 2000 (usuario metabase). SQLite necesita crear journal/WAL files en el mismo directorio que la BD. Si el directorio no es escribible por UID 2000, Metabase devuelve:

SQLITE_READONLY_DIRECTORY: Process does not have permission to create a
journal file in the same directory as the database

Solucion

El pipeline ejecuta dentro del contenedor (como root):

  • chmod 777 en cada directorio que contiene un .db
  • chmod 666 en cada archivo .db, -wal, -shm, -journal

Esto NO cambia ownership (evita que chown se propague al host via bind mount).

Cuando ejecutar

  • Despues de recrear el contenedor Metabase
  • Despues de añadir una nueva database con metabase_add_ops_db
  • Cuando Metabase muestra error SQLITE_READONLY_DIRECTORY