Skip to content

CLI y scripts

Los operadores hacen la mayoría de las cosas a través de la interfaz MSSP o la REST API. La superficie de la CLI es pequeña y existe para el arranque inicial, los entornos de desarrollo y las operaciones sin conexión.

Puntos de entrada dentro del pod

Estos se ejecutan dentro de soctalk-system-api (o un Job de una sola ejecución). Usan las credenciales de Postgres montadas en el pod y la configuración del chart: sin estado externo.

Arranque inicial (bootstrap)

En esta versión no hay una CLI de bootstrap separada: el comando de init del pod de API del chart ejecuta el bootstrap en línea (migraciones, contraseñas de roles, fila de organización, usuario administrador opcional). Consulta Instalación — Migraciones y bootstrap.

Prueba de humo del LLM

En esta versión no hay una CLI soctalk.llm.smoke_test. Para verificar rápidamente que un LLM configurado es alcanzable, consulta Proveedores de LLM — Prueba de comprobación para conocer la expresión de Python de una sola línea.

soctalk-auth (helper dentro del pod)

El único helper de CLI de primera clase en esta versión. Un solo subcomando: set-password.

bash
kubectl -n soctalk-system exec -it deploy/soctalk-system-api -- \
  soctalk-auth set-password user@example.com

Solicita una nueva contraseña (o la lee de SOCTALK_PASSWORD), busca al usuario, establece la contraseña con hash y audita auth.password.reset.admin. Útil para restablecimientos forzados sin pasar por la API. La fila del usuario ya debe existir; soctalk-auth no crea filas.

soctalk (punto de entrada del orquestador)

soctalk es el punto de entrada del orquestador: ejecuta el supervisor de LangGraph + los workers. En V1, el pod de API incrusta el orquestador (no hay un Deployment soctalk-system-orchestrator separado). Normalmente no se invoca a mano fuera de desarrollo.

Todavía no hay una soctalk-cli de propósito general

El borrador anterior de esta página listaba comandos de gestión de tenants bajo un binario soctalk-cli que no existe en la versión actual. Las acciones de tenant (suspender, reanudar, dar de baja, rotar-admin) hoy pasan por la REST API. La superficie de la CLI para operaciones de tenant está prevista para una versión futura.

En el repo: recetas del justfile

El justfile en la raíz del repo tiene recetas usadas durante el desarrollo y la publicación:

RecetaQué hace
just build-apiConstruye la imagen de contenedor de la API
just build-orchestratorConstruye la imagen de contenedor del orquestador
just build-frontendConstruye la imagen de contenedor del frontend de SvelteKit
just build-mock-endpointConstruye la imagen del simulador de endpoint mock
just runEjecuta el stack de desarrollo vía docker-compose
just push-allEmpuja todas las imágenes al registro configurado
just releaseEtiqueta + empuja imágenes + chart + crea un Release de GitHub

En el repo: scripts/

ScriptPropósito
scripts/dev-up.shLevanta un clúster de desarrollo k3d de un solo nodo con SocTalk y un tenant sembrado
scripts/local-up.shLo mismo, pero sobre el k3s del host en lugar de k3d
scripts/local-down.shDesmonta un clúster de local-up.sh
scripts/e2e-l1-l2-k3d.shConfiguración de dos clústeres k3d (MSSP L1 + tenant L2) para validación e2e completa
scripts/seed-mssp-demo-data.pyPuebla Postgres con tenants de fixture (acme-corp, wayne-industries, stark-defense) y reproduce alertas de Wazuh a través del indexador para preparar capturas de pantalla
scripts/inject_test_data.pyInyecta cargas de prueba específicas: útil al reproducir un bug reportado por un cliente
scripts/verify-pages-visual.pyVerificación de regresión visual con Playwright contra la interfaz de SocTalk de desarrollo

Todos estos esperan ejecutarse desde la raíz del repo. Lee el encabezado del script para conocer los argumentos exactos.

En el repo: Packer

Para builds de imágenes de VM, consulta Descargas → Constrúyelo tú mismo.

Operaciones en entornos aislados (air-gapped)

Para instalaciones sin acceso a internet, la API + soctalk-auth son suficientes para ejecutar SocTalk sin tocar la interfaz:

bash
# El bootstrap ocurre automáticamente en el comando de init del pod de API — sin
# paso adicional. Solo instala el chart con install.bootstrapAdmin.* definido.

# O bien, si esos valores no se proporcionaron, establece la contraseña de administrador después de instalar:
kubectl -n soctalk-system exec deploy/soctalk-system-api -- \
  soctalk-auth set-password admin@example
# Lee las credenciales de administrador.
kubectl -n soctalk-system get secret soctalk-system-bootstrap-admin \
  -o jsonpath='{.data.password}' | base64 -d; echo

# Incorpora un tenant a través de la API.
curl -k -c jar -X POST http://soctalk-system-api:8000/api/auth/login \
  -d '{"email":"admin@example","password":"..."}'
curl -k -b jar -X POST http://soctalk-system-api:8000/api/mssp/tenants/onboard \
  -d '{"slug":"acme","display_name":"Acme","profile":"persistent"}'

Para la contraseña existente del administrador de bootstrap que emite el Job de bootstrap, consulta Instalación → Migraciones y bootstrap.

Punteros al código fuente

ConceptoArchivo
Bootstrap (en línea)charts/soctalk-system/templates/30-api.yaml (comando de init)
Factory de proveedores de LLMsrc/soctalk/llm.py
Código fuente de soctalk-authsrc/soctalk/core/cli/auth.py
Punto de entrada del orquestador soctalksrc/soctalk/main.py
justfilejustfile
scripts/scripts/

Publicado bajo la Licencia Apache 2.0.