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>
This commit is contained in:
2026-05-16 16:33:22 +02:00
parent d6175964e4
commit 212875ed0d
290 changed files with 12703 additions and 19778 deletions
+39 -3
View File
@@ -1,6 +1,6 @@
# Capability: metabase
_(Descripcion del grupo — editar a mano)_
Operar Metabase 100% via API REST. Cubre: auth (`metabase_auth`), CRUD de cards/dashboards/collections/snippets/permissions/databases, ejecucion de queries (`metabase_execute_card`, `metabase_query`), refresh metadata + result_metadata, listado y archivado, gestion de pulses, y composiciones (`init_metabase`, `setup_metabase_volume`). 106 funciones Go+Py. Cliente reutilizable: `MetabaseClient` (Go: `metabase_client_go_infra`; Py: `MetabaseClient_py_infra`).
## Funciones
@@ -116,8 +116,44 @@ _(Descripcion del grupo — editar a mano)_
## Ejemplo canonico
_(Anadir 1-2 bloques de codigo end-to-end)_
### Auth + leer un dashboard (Python)
```python
import os, sys
sys.path.insert(0, os.path.join(os.environ["FN_REGISTRY_ROOT"], "python", "functions"))
from metabase import MetabaseClient, metabase_get_dashboard, metabase_list_cards
client = MetabaseClient(
base_url=os.environ["METABASE_URL"],
username=os.environ["METABASE_USER"],
password=os.environ["METABASE_PASS"],
)
client.auth()
dash = metabase_get_dashboard(client, dashboard_id=42)
cards = metabase_list_cards(client, collection_id=dash["collection_id"])
```
### Crear card + dashboard + ejecutar (Go)
```bash
./fn run metabase_auth --base-url $METABASE_URL --user admin --pass $MB_PASS
./fn run metabase_create_card --name "Sales 30d" --sql "SELECT ..." --database-id 1
./fn run metabase_create_dashboard --name "Sales overview" --collection-id 5
./fn run metabase_execute_card --card-id 123 | jq .
```
### Setup local con Docker
```bash
./fn run setup_metabase_volume
./fn run init_metabase --project fn_registry
```
## Fronteras
_(Que NO cubre este grupo)_
- **NO instala Metabase**. El binario/Docker container debe existir. Solo cliente API + composiciones.
- **NO usa el cliente Java/Python oficial**. Llama API REST directa via HTTP — mas simple, sin deps pesadas.
- **NO escribe SQL**. La query la pasa el caller. Para construir SQL custom, usar funciones del grupo `sql`.
- **NO maneja Metabase Embedded JS SDK** (frontend embed). Solo backend/API.
- Wrappear cada endpoint nuevo via `fn-constructor` con tag `metabase`. NO hacer `client._http.request(...)` raw.