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:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user