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.
This commit is contained in:
2026-04-05 18:45:16 +02:00
parent bd1bf2b5dc
commit 988e901066
506 changed files with 2964 additions and 0 deletions
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["database/sql", "encoding/json", "sync", "time", "fmt"]
params:
- name: dbPath
desc: "ruta del archivo SQLite donde persiste el cache"
- name: namespace
desc: "prefijo de tabla para aislar caches en el mismo archivo"
output: "instancia thread-safe de SQLiteCache con metodos Get, Set, Delete, Clear, GetOrSet"
tested: true
tests:
- "Set/Get basico"
+12
View File
@@ -14,6 +14,18 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["database/sql", "github.com/ClickHouse/clickhouse-go/v2"]
params:
- name: host
desc: "hostname del servidor ClickHouse"
- name: port
desc: "puerto de ClickHouse (9000 para protocolo nativo, 8123 para HTTP)"
- name: user
desc: "nombre de usuario para autenticacion"
- name: password
desc: "contraseña para autenticacion"
- name: database
desc: "nombre de la base de datos a conectar"
output: "conexion sql.DB abierta a ClickHouse con ping verificado"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [context, time]
params:
- name: schedule
desc: "estructura CronTickerSchedule con campos Minute, Hour, DayOfMonth, Month, DayOfWeek"
- name: ctx
desc: "context que al cancelarse cierra el channel de ticks"
output: "channel que emite time.Time en cada tick del schedule cron"
tested: true
tests:
- "context cancel cierra el channel"
+4
View File
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["database/sql"]
params:
- name: db
desc: "conexion sql.DB a cerrar"
output: "nil si el cierre fue exitoso, error en caso contrario"
tested: false
tests: []
test_file_path: ""
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["database/sql", "regexp", "strings"]
params:
- name: db
desc: "conexion sql.DB abierta"
- name: table
desc: "nombre de la tabla a crear"
- name: columns
desc: "slice de definiciones SQL completas de columnas (incluyen nombre, tipo, constraints)"
output: "nil si la tabla se creo exitosamente, error en caso contrario"
tested: false
tests: []
test_file_path: ""
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["database/sql"]
params:
- name: db
desc: "conexion sql.DB abierta"
- name: query
desc: "statement SQL no-SELECT (INSERT, UPDATE, DELETE, DDL) con placeholders ?"
- name: args
desc: "argumentos para los placeholders en la query"
output: "numero de filas afectadas por la ejecucion"
tested: false
tests: []
test_file_path: ""
+10
View File
@@ -14,6 +14,16 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["database/sql", "strings"]
params:
- name: db
desc: "conexion sql.DB abierta"
- name: table
desc: "nombre de la tabla donde insertar"
- name: columns
desc: "slice de nombres de columnas en el orden de las rows"
- name: rows
desc: "slice de rows, donde cada row es []any con valores en orden de columns"
output: "numero total de filas insertadas exitosamente"
tested: false
tests: []
test_file_path: ""
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["database/sql", "sort", "strings"]
params:
- name: db
desc: "conexion sql.DB abierta"
- name: table
desc: "nombre de la tabla donde insertar"
- name: row
desc: "mapa de columna → valor con los datos a insertar"
output: "ID autoincrementado de la fila insertada"
tested: false
tests: []
test_file_path: ""
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["database/sql"]
params:
- name: db
desc: "conexion sql.DB abierta"
- name: query
desc: "statement SELECT con placeholders ?"
- name: args
desc: "argumentos para los placeholders en la query"
output: "slice de maps donde cada map es una fila con columna → valor"
tested: false
tests: []
test_file_path: ""
+10
View File
@@ -14,6 +14,16 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: appDir
desc: "ruta del directorio de la app Go (contiene main.go)"
- name: imageName
desc: "nombre de la imagen Docker a construir y contenedor a lanzar"
- name: port
desc: "puerto a mapear (hostPort == containerPort)"
- name: envVars
desc: "mapa de variables de entorno a pasar al contenedor"
output: "ID del contenedor Docker lanzado exitosamente"
tested: false
tests: []
test_file_path: ""
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strings]
params:
- name: contextDir
desc: "ruta del directorio que contiene el Dockerfile"
- name: tag
desc: "nombre y tag de la imagen a construir (ej: myapp:latest)"
- name: buildArgs
desc: "mapa de argumentos de construccion (--build-arg key=val)"
output: "ID de la imagen Docker construida"
tested: true
tests: ["build sin build args retorna image ID", "build con build args incluye --build-arg", "error si contextDir no existe"]
test_file_path: "functions/infra/docker_build_image_test.go"
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strings]
params:
- name: composeFile
desc: "ruta del archivo docker-compose.yml"
- name: removeVolumes
desc: "si true elimina tambien los volumes declarados"
output: "stdout combinado con stderr de la ejecucion de docker compose down"
tested: true
tests: ["removeVolumes true agrega flag -v al comando", "error si composeFile no existe"]
test_file_path: "functions/infra/docker_compose_down_test.go"
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strings]
params:
- name: composeFile
desc: "ruta del archivo docker-compose.yml"
- name: detach
desc: "si true ejecuta en background sin bloquear"
output: "stdout combinado con stderr de la ejecucion de docker compose up"
tested: true
tests: ["detach true agrega flag -d al comando", "error si composeFile no existe"]
test_file_path: "functions/infra/docker_compose_up_test.go"
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strconv]
params:
- name: nameOrID
desc: "nombre o ID del contenedor Docker"
- name: tail
desc: "numero de ultimas lineas a devolver (0 devuelve todos los logs)"
output: "logs del contenedor como string"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strings]
params:
- name: name
desc: "nombre de la red Docker a crear"
- name: driver
desc: "driver de la red (bridge, host, overlay, etc. o vacio para bridge por defecto)"
output: "ID de la red Docker creada"
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [encoding/json, fmt, os/exec]
params:
- name: nameOrID
desc: "nombre o ID del contenedor Docker a inspeccionar"
output: "mapa generico con detalles completos del contenedor (estado, red, volumes, etc.)"
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,10 @@ returns: [container_info_go_infra]
returns_optional: false
error_type: "error_go_core"
imports: [encoding/json, fmt, os/exec]
params:
- name: all
desc: "si true incluye contenedores detenidos, si false solo los que estan corriendo"
output: "slice de ContainerInfo con ID, nombre, estado de cada contenedor"
tested: false
tests: []
test_file_path: ""
+2
View File
@@ -14,6 +14,8 @@ returns: [image_info_go_infra]
returns_optional: false
error_type: "error_go_core"
imports: [encoding/json, fmt, os/exec]
params: []
output: "slice de ImageInfo con repositorio, tag, size de cada imagen"
tested: false
tests: []
test_file_path: ""
+4
View File
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strings]
params:
- name: image
desc: "referencia de imagen Docker en formato image:tag (ej: nginx:latest)"
output: "nil si la descarga fue exitosa, error en caso contrario"
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strings]
params:
- name: nameOrID
desc: "nombre o ID del contenedor Docker a eliminar"
- name: force
desc: "si true fuerza la eliminacion incluso si esta en ejecucion"
output: "nil si se elimino exitosamente, error en caso contrario"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strings]
params:
- name: image
desc: "referencia de imagen Docker (nombre:tag o ID)"
- name: force
desc: "si true fuerza eliminacion incluso si hay contenedores usando la imagen"
output: "nil si se elimino exitosamente, error en caso contrario"
tested: false
tests: []
test_file_path: ""
+4
View File
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strings]
params:
- name: nameOrID
desc: "nombre o ID de la red Docker a eliminar"
output: "nil si se elimino exitosamente, error en caso contrario"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strings]
params:
- name: image
desc: "referencia de imagen Docker (nombre:tag)"
- name: opts
desc: "estructura DockerRunOpts con Name, Ports, Env, Volumes, Network, Detach, AutoRemove"
output: "ID del contenedor Docker creado y ejecutado"
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strings]
params:
- name: nameOrID
desc: "nombre o ID del contenedor Docker a iniciar"
output: "nil si se inicio exitosamente, error en caso contrario"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strconv, strings]
params:
- name: nameOrID
desc: "nombre o ID del contenedor Docker a detener"
- name: timeoutSecs
desc: "segundos de gracia antes de SIGKILL (0 usa el default de Docker)"
output: "nil si se detuvo exitosamente, error en caso contrario"
tested: false
tests: []
test_file_path: ""
+4
View File
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strings]
params:
- name: name
desc: "nombre del volume Docker a crear"
output: "nombre del volume creado confirmado por Docker"
tested: true
tests: ["crea volume y retorna nombre", "idempotente si el volume ya existe"]
test_file_path: "functions/infra/docker_volume_create_test.go"
+2
View File
@@ -14,6 +14,8 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [encoding/json, fmt, os/exec, strings]
params: []
output: "slice de maps con campos Driver, Name, Scope, Labels, Mountpoint de cada volume"
tested: true
tests: ["lista vacia retorna nil sin error", "parsea campos Driver y Name correctamente"]
test_file_path: "functions/infra/docker_volume_list_test.go"
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strings]
params:
- name: name
desc: "nombre del volume Docker a eliminar"
- name: force
desc: "si true fuerza la eliminacion incluso si esta siendo usado"
output: "nil si se elimino exitosamente, error en caso contrario"
tested: true
tests: ["error si volume no existe", "force flag incluye -f en el comando"]
test_file_path: "functions/infra/docker_volume_remove_test.go"
+4
View File
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["database/sql", "github.com/marcboeker/go-duckdb"]
params:
- name: path
desc: "ruta del archivo DuckDB o vacio/:memory: para base en memoria"
output: "conexion sql.DB abierta a DuckDB"
tested: false
tests: []
test_file_path: ""
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: ""
imports: [fmt, sort, strings]
params:
- name: binaryName
desc: "nombre del binario Go a ejecutar en el contenedor"
- name: port
desc: "puerto a exponer en el Dockerfile (0 omite la instruccion EXPOSE)"
- name: envVars
desc: "mapa de variables de entorno a incluir en el Dockerfile"
output: "string con el contenido del Dockerfile multi-stage"
tested: true
tests: ["contiene stage builder con golang:1.23-alpine", "contiene stage final con alpine:latest", "incluye EXPOSE cuando port mayor a cero", "no incluye EXPOSE cuando port es cero", "env vars aparecen ordenadas alfabeticamente", "binaryName aparece en ENTRYPOINT", "env vars vacias no generan instrucciones ENV"]
test_file_path: "functions/infra/generate_dockerfile_test.go"
+10
View File
@@ -14,6 +14,16 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os, os/exec, path/filepath, strings]
params:
- name: projectDir
desc: "ruta del directorio Go (con main.go o go.mod)"
- name: outputPath
desc: "ruta donde guardar el binario o vacio para usar build/{dirname}"
- name: ldflags
desc: "flags de vinculacion Go o vacio para usar -s -w (strip)"
- name: tags
desc: "build tags Go (ej: fts5,cgo)"
output: "nil si la compilacion fue exitosa, error en caso contrario"
tested: true
tests: ["compila proyecto valido sin error", "outputPath vacio usa build/dirname por defecto", "ldflags vacio usa -s -w por defecto", "error si projectDir no existe"]
test_file_path: "functions/infra/go_build_binary_test.go"
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, net/http, time]
params:
- name: url
desc: "URL del endpoint HTTP a verificar (GET)"
- name: timeoutSecs
desc: "tiempo maximo en segundos antes de agotar los intentos"
- name: intervalMs
desc: "intervalo en milisegundos entre intentos de verificacion"
output: "nil si el endpoint responde 200, error si se agota el timeout"
tested: true
tests: ["retorna nil cuando el servidor responde 200", "retorna error si el timeout se agota", "respeta el intervalo entre intentos"]
test_file_path: "functions/infra/health_check_http_test.go"
+10
View File
@@ -14,6 +14,16 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["fmt", "io", "net/http", "os", "path/filepath", "time"]
params:
- name: url
desc: "URL del archivo a descargar"
- name: destPath
desc: "ruta de destino del archivo descargado"
- name: headers
desc: "mapa de headers custom a incluir en la solicitud"
- name: timeout
desc: "duracion maxima para completar la descarga"
output: "numero de bytes descargados exitosamente"
tested: true
tests:
- "httptest.Server sirve archivo binario"
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["encoding/json", "fmt", "io", "net/http", "time"]
params:
- name: url
desc: "URL del endpoint HTTP a consultar"
- name: headers
desc: "mapa de headers custom a incluir en la solicitud"
- name: timeout
desc: "duracion maxima para completar la solicitud"
output: "mapa con la estructura JSON decodificada del response"
tested: true
tests:
- "httptest.Server con respuesta JSON"
+10
View File
@@ -14,6 +14,16 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["bytes", "encoding/json", "fmt", "io", "net/http", "time"]
params:
- name: url
desc: "URL del endpoint HTTP"
- name: body
desc: "datos a serializar como JSON en el cuerpo de la solicitud"
- name: headers
desc: "mapa de headers custom a fusionar con los headers por defecto"
- name: timeout
desc: "duracion maxima para completar la solicitud"
output: "mapa con la estructura JSON decodificada del response"
tested: true
tests:
- "httptest.Server recibe body correcto"
+8
View File
@@ -14,6 +14,14 @@ returns: [MetabaseClient_go_infra]
returns_optional: false
error_type: "error_go_core"
imports: [bytes, encoding/json, fmt, io, net/http]
params:
- name: baseURL
desc: "URL base de Metabase (ej: http://localhost:3000)"
- name: email
desc: "email de la cuenta para autenticarse"
- name: password
desc: "contraseña de la cuenta"
output: "cliente MetabaseClient con session token valido por 14 dias"
tested: false
tests: []
test_file_path: ""
+14
View File
@@ -14,6 +14,20 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: client
desc: "cliente MetabaseClient autenticado"
- name: name
desc: "nombre de la pregunta/card"
- name: datasetQuery
desc: "estructura de query SQL nativa o MBQL (structured query)"
- name: display
desc: "tipo de visualizacion (table, bar, line, pie, scalar, etc.)"
- name: collectionID
desc: "ID de la coleccion destino (0 = root collection)"
- name: description
desc: "descripcion de la pregunta o vacio"
output: "mapa con los detalles de la card creada incluyendo su ID"
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,16 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: client
desc: "cliente MetabaseClient autenticado"
- name: name
desc: "nombre del dashboard"
- name: description
desc: "descripcion del dashboard o vacio"
- name: collectionID
desc: "ID de la coleccion destino (0 = root collection)"
output: "mapa con los detalles del dashboard creado incluyendo su ID"
tested: false
tests: []
test_file_path: ""
+14
View File
@@ -14,6 +14,20 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: client
desc: "cliente MetabaseClient autenticado con permisos admin"
- name: firstName
desc: "nombre del usuario"
- name: lastName
desc: "apellido del usuario"
- name: email
desc: "email unico del usuario"
- name: password
desc: "contraseña o vacio para enviar invitacion por email"
- name: groupIDs
desc: "slice de IDs de grupos a los que agregar el usuario (nil = grupo default)"
output: "mapa con los detalles del usuario creado incluyendo su ID"
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: client
desc: "cliente MetabaseClient autenticado con permisos admin"
- name: userID
desc: "ID del usuario a desactivar"
output: "nil si la desactivacion fue exitosa, error en caso contrario"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: client
desc: "cliente MetabaseClient autenticado"
- name: cardID
desc: "ID de la card/pregunta a eliminar"
output: "nil si la eliminacion fue exitosa, error en caso contrario"
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: client
desc: "cliente MetabaseClient autenticado"
- name: dashboardID
desc: "ID del dashboard a eliminar"
output: "nil si la eliminacion fue exitosa, error en caso contrario"
tested: false
tests: []
test_file_path: ""
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: client
desc: "cliente MetabaseClient autenticado"
- name: cardID
desc: "ID de la card/pregunta guardada a ejecutar"
- name: parameters
desc: "slice de maps con parametros para queries parametrizadas (nil si no hay parametros)"
output: "mapa con status, row_count, running_time, data.columns, data.rows, data.native_form.query"
tested: false
tests: []
test_file_path: ""
+10
View File
@@ -14,6 +14,16 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: client
desc: "cliente MetabaseClient autenticado"
- name: databaseID
desc: "ID de la database en Metabase"
- name: sql
desc: "query SQL a ejecutar"
- name: maxResults
desc: "limite de filas (0 = default 2000)"
output: "mapa con status, row_count, running_time, data.columns, data.rows"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: client
desc: "cliente MetabaseClient autenticado"
- name: cardID
desc: "ID de la card/pregunta"
output: "mapa con detalles completos de la card (nombre, query, visualizacion, etc.)"
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: client
desc: "cliente MetabaseClient autenticado"
- name: dashboardID
desc: "ID del dashboard"
output: "mapa con dashboard completo incluyendo dashcards, tabs, parametros"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: client
desc: "cliente MetabaseClient autenticado"
- name: userID
desc: "ID del usuario"
output: "mapa con detalles del usuario (email, nombre, grupo, permisos, etc.)"
tested: false
tests: []
test_file_path: ""
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: client
desc: "cliente MetabaseClient autenticado"
- name: filter
desc: "filtro opcional (all, mine, fav, archived, recent, popular, database, table)"
- name: modelID
desc: "ID de database/tabla para filtros database/table (0 = ignorar)"
output: "slice de maps con detalles de cada card (ID, nombre, query, visualizacion)"
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: client
desc: "cliente MetabaseClient autenticado"
- name: filter
desc: "filtro opcional (all, mine, archived o vacio para todas)"
output: "slice de maps con resumen de cada dashboard (sin dashcards completas)"
tested: false
tests: []
test_file_path: ""
+12
View File
@@ -14,6 +14,18 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: client
desc: "cliente MetabaseClient autenticado con permisos admin"
- name: status
desc: "filtro por estado (active, deactivated, all o vacio)"
- name: query
desc: "filtro por nombre o email (vacio para sin filtro)"
- name: limit
desc: "tamanio de pagina (0 = default de Metabase)"
- name: offset
desc: "offset para paginacion (0 = inicio)"
output: "mapa con data (slice de usuarios), total, limit, offset"
tested: false
tests: []
test_file_path: ""
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: client
desc: "cliente MetabaseClient autenticado"
- name: cardID
desc: "ID de la card/pregunta a actualizar"
- name: fields
desc: "mapa con los campos a modificar (name, description, display, dataset_query, archived, etc.)"
output: "mapa con los detalles de la card actualizada"
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: client
desc: "cliente MetabaseClient autenticado"
- name: dashboardID
desc: "ID del dashboard a actualizar"
- name: fields
desc: "mapa con campos a modificar (name, description, dashcards, tabs, archived, etc.)"
output: "mapa con los detalles del dashboard actualizado"
tested: false
tests: []
test_file_path: ""
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: client
desc: "cliente MetabaseClient autenticado con permisos admin"
- name: userID
desc: "ID del usuario a actualizar"
- name: fields
desc: "mapa con campos a modificar (first_name, last_name, email, is_superuser, group_ids, locale)"
output: "mapa con los detalles del usuario actualizado"
tested: false
tests: []
test_file_path: ""
+4
View File
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: opts
desc: "estructura NordVPNContainerRunOpts con Image, Cmd, Env, Volumes, Detach, Name, Gateway"
output: "ID del contenedor ejecutado bajo VPN"
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, strings, time]
params:
- name: opts
desc: "estructura NordVPNContainerOpts con Token, Country, City, Protocol"
output: "ID del contenedor gateway NordVPN"
tested: false
tests: []
test_file_path: ""
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: gateway
desc: "nombre del contenedor gateway NordVPN a detener"
- name: clientNames
desc: "nombres opcionales de containers cliente que usan la VPN (se detienen primero)"
output: "nil si se detuvieron exitosamente, error en caso contrario"
tested: false
tests: []
test_file_path: ""
+4
View File
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: ""
imports: ["regexp", "strings"]
params:
- name: output
desc: "salida de texto de nordvpn status"
output: "struct NordVPNStatus con campos Connected, Hostname, IP, Country, City, Technology"
tested: true
tests: ["TestParseNordVPNStatus_Connected", "TestParseNordVPNStatus_Disconnected", "TestParseNordVPNStatus_WithANSI"]
test_file_path: "functions/infra/parse_nordvpn_status_test.go"
+14
View File
@@ -14,6 +14,20 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["database/sql", "github.com/jackc/pgx/v5/stdlib"]
params:
- name: host
desc: "hostname del servidor PostgreSQL"
- name: port
desc: "puerto del servidor (5432 por defecto)"
- name: user
desc: "nombre de usuario para autenticacion"
- name: password
desc: "contraseña para autenticacion"
- name: dbname
desc: "nombre de la base de datos"
- name: sslmode
desc: "modo SSL (disable, require, verify-full o vacio para disable)"
output: "conexion sql.DB abierta a PostgreSQL"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [os, os/exec, path/filepath, text/template, fmt, strings, context]
params:
- name: ctx
desc: "context para cancelacion"
- name: cfg
desc: "estructura ScaffoldWailsAppConfig con Name, Dir, Title, Width, Height, Author"
output: "nil si el scaffold fue exitoso, error en caso contrario"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: ["database/sql", "path/filepath", "github.com/mattn/go-sqlite3"]
params:
- name: path
desc: "ruta del archivo SQLite (:memory: para base en memoria)"
- name: basePath
desc: "ruta base para resolver paths relativos (vacio = relativo al cwd)"
output: "conexion sql.DB abierta a SQLite con WAL mode y foreign keys"
tested: false
tests: []
test_file_path: ""
+4
View File
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strings]
params:
- name: conn
desc: "estructura SSHConn con Host, User, Port, IdentityFile"
output: "nil si la conectividad SSH es exitosa, error en caso contrario"
tested: true
tests: ["conecta a organic-machine", "falla con host inexistente"]
test_file_path: "functions/infra/ssh_check_test.go"
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strings]
params:
- name: conn
desc: "estructura SSHConn con Host, User, Port, IdentityFile"
- name: remotePath
desc: "ruta del archivo en el host remoto"
- name: localPath
desc: "ruta de destino en el filesystem local"
output: "nil si la descarga fue exitosa, error en caso contrario"
tested: true
tests: ["upload y download roundtrip"]
test_file_path: "functions/infra/ssh_transfer_test.go"
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [os/exec]
params:
- name: conn
desc: "estructura SSHConn con Host, User, Port, IdentityFile"
- name: command
desc: "comando a ejecutar en el host remoto"
output: "tupla (stdout, stderr, exit_code, error) del comando ejecutado"
tested: true
tests: ["echo simple", "captura stderr", "exit code no cero", "comando multilinea"]
test_file_path: "functions/infra/ssh_exec_test.go"
+4
View File
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os, syscall]
params:
- name: pid
desc: "ID del proceso ssh del tunel abierto (obtenido de ssh_tunnel_open)"
output: "nil si el tunel se cerro exitosamente, error en caso contrario"
tested: true
tests: ["abre tunel y lo cierra"]
test_file_path: "functions/infra/ssh_tunnel_test.go"
+10
View File
@@ -14,6 +14,16 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strings, time]
params:
- name: conn
desc: "estructura SSHConn con Host, User, Port, IdentityFile"
- name: localPort
desc: "puerto local donde escuchar conexiones"
- name: remoteHost
desc: "host remoto accesible desde el servidor SSH"
- name: remotePort
desc: "puerto en el host remoto"
output: "PID del proceso ssh del tunel para cerrarlo despues"
tested: true
tests: ["abre tunel y lo cierra"]
test_file_path: "functions/infra/ssh_tunnel_test.go"
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os/exec, strings]
params:
- name: conn
desc: "estructura SSHConn con Host, User, Port, IdentityFile"
- name: localPath
desc: "ruta del archivo local a subir"
- name: remotePath
desc: "ruta de destino en el host remoto"
output: "nil si la subida fue exitosa, error en caso contrario"
tested: true
tests: ["upload y download roundtrip"]
test_file_path: "functions/infra/ssh_transfer_test.go"
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt]
params:
- name: containerName
desc: "nombre del contenedor Docker a detener (coincide con imageName de deploy_app)"
- name: removeImage
desc: "si true elimina tambien la imagen Docker"
output: "nil si la app se detuvo exitosamente, error en caso contrario"
tested: false
tests: []
test_file_path: ""
+4
View File
@@ -14,6 +14,10 @@ returns: []
returns_optional: false
error_type: ""
imports: [fmt, strings]
params:
- name: spec
desc: "estructura WailsCRUDSpec con EntityName, Fields, WithList/Get/Create/Update/Delete flags"
output: "string con codigo Go generado (struct + metodos CRUD stubs)"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [os/exec, fmt, strings, context]
params:
- name: ctx
desc: "context para cancelacion"
- name: cfg
desc: "estructura WailsBuildConfig con Dir, Platform (linux/windows/darwin)"
output: "nil si la compilacion fue exitosa, error en caso contrario"
tested: false
tests: []
test_file_path: ""
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [context, encoding/json, fmt, time, github.com/wailsapp/wails/v2/pkg/runtime]
params:
- name: ctx
desc: "context de Wails"
- name: eventName
desc: "nombre del evento a emitir (ej: price:update)"
- name: data
desc: "datos a serializar y enviar al frontend"
output: "void (sin valor de retorno, efecto es emitir el evento)"
tested: false
tests: []
test_file_path: ""
+8
View File
@@ -14,6 +14,14 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [context, fmt, time, github.com/wailsapp/wails/v2/pkg/runtime]
params:
- name: ctx
desc: "context de Wails"
- name: cfg
desc: "estructura WailsStreamConfig con StreamName y ChunkDelay"
- name: data
desc: "slice de datos genericos a enviar en chunks"
output: "nil si el stream se completo exitosamente, error en caso contrario"
tested: false
tests: []
test_file_path: ""
+6
View File
@@ -14,6 +14,12 @@ returns: []
returns_optional: false
error_type: "error_go_core"
imports: [fmt, os, path/filepath]
params:
- name: dir
desc: "directorio donde crear el archivo Dockerfile (se crea si no existe)"
- name: content
desc: "contenido del Dockerfile como string"
output: "ruta absoluta del archivo Dockerfile escrito"
tested: true
tests: ["escribe Dockerfile en directorio existente", "crea directorio si no existe", "retorna path absoluto correcto", "error si dir es path invalido"]
test_file_path: "functions/infra/write_dockerfile_test.go"