Files
fn_registry/functions/infra/metabase_create_card.md
egutierrez 5f4f1f7508 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

2.9 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, 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 params output tested tests test_file_path file_path
metabase_create_card function go infra 1.0.0 impure func MetabaseCreateCard(client MetabaseClient, name string, datasetQuery map[string]any, display string, collectionID int, description string) (map[string]any, error) Crea una nueva card/pregunta en Metabase con query SQL nativa o MBQL. Endpoint: POST /api/card.
metabase
card
question
create
api
MetabaseClient_go_infra
false error_go_core
fmt
name desc
client cliente MetabaseClient autenticado
name desc
name nombre de la pregunta/card
name desc
datasetQuery estructura de query SQL nativa o MBQL (structured query)
name desc
display tipo de visualizacion (table, bar, line, pie, scalar, etc.)
name desc
collectionID ID de la coleccion destino (0 = root collection)
name desc
description descripcion de la pregunta o vacio
mapa con los detalles de la card creada incluyendo su ID false
functions/infra/metabase_create_card.go

Ejemplo

// Crear pregunta con SQL nativo
card, err := MetabaseCreateCard(client, "Revenue by Month", map[string]any{
    "database": 1,
    "type":     "native",
    "native": map[string]any{
        "query": "SELECT date_trunc('month', created_at) as month, SUM(total) as revenue FROM orders GROUP BY 1 ORDER BY 1",
    },
}, "line", 5, "Monthly revenue trend")

// Crear pregunta con MBQL (structured query)
card, err := MetabaseCreateCard(client, "Order Count", map[string]any{
    "database": 1,
    "type":     "query",
    "query": map[string]any{
        "source-table": 4,
        "aggregation":  []any{[]any{"count"}},
    },
}, "scalar", 0, "Total number of orders")

Notas

Parametros para un LLM

Parametro Tipo Requerido Descripcion
client MetabaseClient si Cliente autenticado
name string si Nombre de la pregunta
datasetQuery map[string]any si Query. Ver estructura abajo
display string si Tipo de visualizacion
collectionID int no ID de coleccion. 0 = root collection
description string no Descripcion. Vacio = sin descripcion

Estructura de datasetQuery

SQL nativo:

{
  "database": <database_id>,
  "type": "native",
  "native": {"query": "SELECT ..."}
}

MBQL (structured):

{
  "database": <database_id>,
  "type": "query",
  "query": {
    "source-table": <table_id>,
    "aggregation": [["count"]],
    "breakout": [["field", <field_id>, {"temporal-unit": "month"}]],
    "filter": ["=", ["field", <field_id>, null], "value"]
  }
}

Valores de display

table, bar, line, pie, scalar, area, row, combo, funnel, map, scatter, waterfall, progress, gauge