Ir al contenido

Configuración

Configuración es el modo de la barra lateral donde viven los ajustes del workspace y de la instalación. Se entra con “Configuración”, abajo a la izquierda, y se vuelve con “Volver a la app”. Esta página cubre las secciones que no tienen página propia: Webhooks, API, Registro de auditoría, Salud, Actualizaciones, Idioma y Cuenta, más el panel “Acceso a la beta” que ve el operador de la SaaS. Miembros, Tableros, Motores de IA, Credenciales, MCPs, Sandboxes, Uso e Infraestructura se explican en sus páginas (ver Relacionado).

Casi todo pide rol administrador. Salud, Actualizaciones y la dirección de telemetría son de la instalación entera: el detalle completo lo ve un admin del workspace operador (en self-hosted, el que nombra OCTOPUS_OPERATOR_WORKSPACE; en modo dev, cualquiera). Para entender qué hace cada rol y qué protege cada clave, mirá Seguridad y auditoría.

Modo Configuración con la barra lateral agrupada en Espacio de trabajo, Integraciones, Operación y Vos; a la derecha la sección Webhooks con dos endpoints
El modo Configuración reemplaza la barra lateral de la app. Cada sección de esta página es un link de esa barra.

Flujo recomendado: dejar lista una integración

Sección titulada «Flujo recomendado: dejar lista una integración»

El orden que suele funcionar para conectar Thulu con otra herramienta (n8n, un pipeline de CI) es: un webhook para que Thulu avise, una API key para que la herramienta responda, y una mirada al registro de auditoría para confirmar qué pasó. Necesitás rol administrador en el workspace y la URL donde la otra herramienta recibe webhooks.

  1. Abrí “Configuración → Webhooks”. En “URL del endpoint” pegá la dirección que te dio la otra herramienta. Tiene que ser pública: Thulu rechaza direcciones privadas o de loopback (“la política de salida bloquea ese destino”).

  2. En “Eventos” dejá “Todos los eventos (*)” o destildalo y elegí los que te interesan; el rótulo pasa a “2 eventos”. Apretá “Agregar webhook”.

    Formulario Agregar webhook con una URL cargada y tres eventos tildados en la grilla, y abajo la lista de dos endpoints con sus eventos
    Cada endpoint muestra a qué eventos está suscripto, con los botones Entregas, Probar, Rotar secreto y eliminar.
  3. Copiá el secreto de firma que aparece arriba de la lista (“Copialo ahora: no se va a volver a mostrar”) y cargalo en el receptor. Cada entrega viaja firmada en el header X-Octopus-Signature: sha256=<hmac>, un HMAC-SHA256 del cuerpo con ese secreto.

    Secreto de firma whsec_ mostrado una única vez sobre la lista de endpoints, con el botón Copiar y el aviso Webhook agregado
    El secreto se muestra una sola vez. Si lo perdés, rotalo.
  4. Apretá “Probar” en la fila: Thulu manda una entrega de prueba y avisa “Entrega de prueba OK: HTTP 200 en 85 ms”, o el código o el motivo con que falló.

  5. Andá a “API” y generá una clave para la herramienta (detalle en API keys). Copiala al toque: tampoco se vuelve a mostrar.

  6. Abrí “Registro de auditoría” y confirmá que figuran el alta del webhook y de la clave.

Un webhook es un endpoint externo al que Thulu le hace un POST cada vez que pasa algo en el workspace. Los eventos que se pueden elegir son 12:

Evento Cuándo se dispara
task.created, task.stage_changed, task.deleted Se crea una tarea, cambia de etapa o se borra
chat.message Llega un mensaje a un chat
boards.changed, stages.changed, task_types.changed Se crea, renombra o borra un tablero (o cambia el predeterminado), se editan sus columnas o cambian sus tipos de tarea
question.asked, question.answered, question.canceled Un agente pregunta algo en una tarea, alguien contesta o la pregunta se cancela
approval.requested, approval.decided Se pide una aprobación o alguien la decide

No hay evento para comentarios, PRs ni corridas fallidas. Si una entrega falla (error de red o respuesta fuera de 2xx), Thulu la intenta hasta 5 veces en total, con esperas de 2, 4, 8 y 16 segundos, y después la marca como fallida. El historial de entregas se guarda 30 días: “Entregas”, en la fila de cada endpoint, muestra los últimos intentos con cuándo, evento, resultado y tiempo, y “Reintentar” vuelve a encolar una entrega.

“Rotar secreto” pide confirmación y genera un secreto nuevo: el anterior deja de verificar desde la próxima entrega, así que tené a mano el receptor para actualizarlo enseguida. El tacho borra el endpoint sin preguntar.

Diálogo ¿Rotar el secreto de firma? con el texto que explica que el anterior deja de verificar desde la próxima entrega
Rotar no tiene período de gracia: el secreto viejo deja de valer en la próxima entrega.

La sección API tiene cuatro paneles.

“openapi.json” abre la especificación de toda la API REST (OpenAPI 3.1) y “Copiar URL” copia su dirección para importarla en Postman, Insomnia o un generador de clientes.

La URL pública por la que una aplicación desplegada llega a este Thulu para mandarle métricas. Los agentes que configuran telemetría la leen de acá. Debajo del campo se ve la dirección completa a la que van a enviar (“Las aplicaciones van a enviar a https://…/ingest”). Si no sabés cuál es, dejala vacía: los agentes reciben “dirección desconocida” en vez de una equivocada. Es un valor de la instalación: sólo lo guarda el operador; otros admins lo ven bloqueado. Más contexto en Métricas y dashboards.

Una API key da acceso a la API sin sesión, para CI, scripts o integraciones. Cada clave pertenece al workspace donde la creaste y tiene tres límites que se suman:

Campo Qué decide Notas
Nombre Cómo la reconocés en la lista y en la auditoría Si lo dejás vacío queda “Clave de API”
Rol (“lector”, “desarrollador”, “administrador”, “dueño”) Cuánta autoridad tiene Nunca más que tu propio rol: los roles superiores aparecen deshabilitados
Permisos Sobre qué partes de la API actúa Lectura y escritura por grupo (Tareas, Tableros y etapas, Proyectos, Agentes, Corridas y uso, Credenciales, Configuración, Miembros), más “Emitir claves” y “Rutas de servicio”
Vencimiento (días) Cuándo deja de funcionar Arranca en el máximo de la instalación (90 días por defecto, OCTOPUS_API_KEY_MAX_TTL); en blanco también es el máximo

Una llamada tiene que pasar las dos cosas: el rol alcanza para esa ruta y el permiso cubre ese grupo. Los presets llenan los casilleros y después podés ajustarlos:

Preset Qué tilda
“Sólo lectura” Lectura de todo salvo credenciales
“CI” Tareas (lectura y escritura), Proyectos y Corridas (lectura)
“Agente” Tareas (lectura y escritura), Tableros y Proyectos (lectura), Corridas (lectura y escritura), Rutas de servicio
“Todo” Todos los casilleros
  1. En “Clave de API” escribí un nombre que diga quién la usa (“Exportador nocturno de métricas”).

  2. Elegí el rol y un preset, y destildá lo que sobre.

  3. Ajustá el vencimiento si querés menos que el máximo y apretá “Generar clave”.

    Formulario Clave de API con nombre, rol lector, vencimiento 30 días y el preset Sólo lectura aplicado en la grilla de permisos
    El preset tilda casilleros; lo que se manda es lo que queda tildado.
  4. Copiá la clave (oct_…) con “Copiar”. Debajo, Thulu dice qué concedió y hasta cuándo.

    Clave recién generada con el botón Copiar, la línea de rol, permisos y fecha de vencimiento, y debajo la lista de claves del workspace
    Cada fila de la lista dice rol, permisos, vencimiento, quién la emitió y su último uso.

Si pedís algo que tu rol o el de la clave no permite, el daemon lo rechaza y lo explica en rojo debajo del formulario, por ejemplo: “una key viewer no puede usar flows:write, projects:write, …; necesitan un rol más alto”. También avisa si pasás el máximo de días.

Para cambiar una clave sin cortar la herramienta que la usa, apretá “Rotar” en su fila: Thulu crea una clave nueva con el mismo nombre, rol y permisos y la muestra una sola vez. En “La clave actual sigue funcionando” elegís cuánto dura la vieja (nada, 1 hora, 24 horas, 3 días o 7 días); mientras tanto la fila dice “La reemplazó otra; funciona hasta el” y la fecha.

Para dar de baja una clave apretá “Revocar” en su fila y confirmá. No se puede deshacer; queda en la lista marcada “revocada”.

Diálogo ¿Revocar la clave Dashboard de Metabase? con el aviso No se puede deshacer y los botones Cancelar y Revocar
Revocar pide confirmación con el nombre de la clave.

Cada corrida de agente y cada chat recibe su propia clave, que Thulu revoca al terminar. Este panel lista las que están vivas ahora, y no aparecen en la lista de arriba. Si una clave sigue acá después de que su corrida terminó, revocala: la corrida pierde acceso a la API en el acto.

Lista lo que pasó en el workspace, de lo más nuevo a lo más viejo: inicios de sesión, altas y bajas de miembros y claves, tareas, aprobaciones, preguntas, cambios de agentes y credenciales, actualizaciones. Columnas: “Hora”, “Evento”, “Actor”, “Recurso” y “Resumen”. El selector filtra por familia (task.*, auth.*, approval.* y otras), “Cargar más” trae la página siguiente y el botón de recarga la actualiza.

Actor dice quién hizo cada cosa: la persona, la API key por su nombre, la corrida de un agente o Thulu mismo. Cuando el recurso todavía existe, la columna Recurso es un link a él.

Tabla del registro de auditoría con tareas creadas y movidas y un script de arranque guardado, con el actor y el resumen de cada uno
El CSV exportado trae además la IP y los hashes de cada entrada.

“Verificar” recalcula el hash de cada entrada y dice cuántas cubre la cadena y cuál es su hash de cabeza; si encuentra una rota, “Ir a la entrada” la muestra.

“Exportar CSV” y “Exportar NDJSON” bajan todo lo que coincide con el filtro actual, sin límite de páginas. NDJSON es una entrada JSON por línea, listo para un SIEM. Exportar requiere una licencia Enterprise en la instalación (OCTOPUS_LICENSE_KEY); sin ella la sección lo explica y el registro se guarda y se muestra igual. Cómo verificar la integridad del registro y mandarlo fuera de la máquina está en Seguridad y auditoría.

“Salud” muestra un chequeo por cada parte de la base de datos, Docker y disco, el tiempo activo y, en “Sistema”, la versión de Go, las goroutines y los GB libres. El indicador de arriba resume todo (“ok”) y el botón de recarga vuelve a preguntar. El reporte completo sólo lo ve el operador; un admin de otro workspace recibe el estado general.

Página Salud con mosaicos OK para cada chequeo de base de datos, disco y Docker, la sección Sistema y el panel Licencia en Community
Debajo de los chequeos, el panel Licencia dice qué edición corre la instalación.

El panel “Licencia” muestra la edición (Community o Enterprise) y, con licencia, el licenciatario, el vencimiento con los días que faltan y las funciones habilitadas. En una instalación Docker, la licencia Enterprise agrega exportar la auditoría; el runtime de Kubernetes también la pide (ver Operación self-hosted).

El panel “Retención y limpieza” fija cuánto se guarda lo que dejan las corridas antes de que el janitor lo borre. 0 lo guarda para siempre y un campo vacío vuelve al valor por defecto. Los plazos están en Seguridad y auditoría.

Muestra la versión que corre, el canal y si corre en Docker o Kubernetes, cada cuánto Thulu busca releases nuevas y el resultado de la última búsqueda. Thulu no se actualiza solo y esta pantalla no cambia nada: da los comandos.

Página Actualizaciones con el panel Versión (build de desarrollo, Docker), un error de búsqueda en rojo, Versiones disponibles, Volver atrás con la versión en marcha y Backups
Captura de una build de desarrollo: la fuente de releases no tiene las versiones que busca, así que la búsqueda falla y no hay nada para ofrecer.
Panel Qué tiene
“Versión” Versión, canal, runtime, el botón “Buscar ahora” y avisos de seguridad conocidos de la versión en marcha
“Versiones disponibles” Cada release más nueva con fecha, migraciones, si volver atrás requiere restaurar la base, variables nuevas, pasos manuales, el comando para copiar y “Descargar paquete de cambios” (Markdown o JSON, para un ticket de cambio)
“Volver atrás” Las versiones guardadas en el host con el comando que vuelve a cada una (en Kubernetes, thulu update -to <versión>)
“Historial” Cada arranque en una versión nueva y cada corrida de actualización, con quién la hizo
  1. Abrí “Actualizaciones” y apretá “Buscar ahora” si querés no esperar a la próxima búsqueda automática.
  2. En la release que te interesa, apretá “Descargar paquete de cambios” para revisar qué va a hacer.
  3. Copiá el comando y corrélo en la máquina que administra la instalación. El CLI verifica la firma de la release, saca un snapshot de la base y vuelve atrás solo si algo falla. Detalle en Operación self-hosted.
  4. Volvé a la pantalla: “Historial” registra el cambio.

En la SaaS esta sección la ve sólo el operador; para el resto dice que la versión “sólo se le muestra a un admin del espacio de trabajo operador”.

Un selector, “Idioma del dashboard”, con español e inglés. Al elegir uno la página se recarga en ese idioma. Vale para este navegador: se guarda en una cookie, no en tu cuenta. Los textos que escribe el daemon (comentarios en tareas, resúmenes de auditoría, errores de la API) siguen el idioma de la instalación, que en self-hosted se cambia con OCTOPUS_LOCALE=es.

Sección Idioma con el selector Idioma del dashboard en español
El idioma es por navegador.

Aparece sólo cuando hay inicio de sesión (no en modo dev). Tiene:

  • “Tu perfil”: correo, nombre, workspace actual y rol.
  • “Sesiones activas”: cada navegador o dispositivo con tu sesión abierta, cuándo empezó y su último uso, con “Cerrar sesión” por fila y “Cerrar sesión en los demás dispositivos” (no pide confirmación; la sesión actual sigue).
  • “Tus workspaces”: con qué proveedor iniciaste sesión, tus workspaces con “Renombrar” y, en el que sos dueño, “Pasar a otro dueño” y “Borrar workspace”. Se explican en Workspaces y equipo.
  • “Términos y privacidad” y “Borrar tu cuenta”, que borra también los workspaces donde sos el único miembro y pide escribir tu correo para confirmar.
Sección Cuenta con Tu perfil, Sesiones activas con dos dispositivos, Tus workspaces, Términos y privacidad y Borrar tu cuenta
Desde Sesiones activas cerrás la sesión de un dispositivo que perdiste.

No hay contraseña ni segundo factor para configurar acá: los maneja tu proveedor de identidad.

En la SaaS, el operador ve en “Miembros” un panel más: “Acceso a la beta”. Mientras la instalación esté en modo lista (OCTOPUS_SIGNUP_MODE=allowlist), sólo los correos de esta lista pueden crear una cuenta, y sólo si el proveedor de identidad verificó ese correo. Los miembros del workspace del operador entran siempre.

  1. Abrí “Configuración → Miembros” y bajá hasta “Acceso a la beta”.
  2. Escribí el correo y, en “Nota”, quién es y por qué entra.
  3. Apretá “Invitar”. La fila muestra quién la agregó y cuándo.
Página Miembros con las invitaciones pendientes y el panel Acceso a la beta: texto del modo lista, formulario con correo y nota, y tres personas admitidas
Las filas que vienen de una variable de entorno dicen "Viene de OCTOPUS_SSO_ALLOWED_EMAILS: cambialo ahí y reiniciá".

El tacho quita el acceso: la persona no puede volver a entrar y sus sesiones abiertas terminan en unos minutos. Si un workspace invitó a alguien que la lista todavía no admite, aparece en “Esperando acceso” con el botón “Dar acceso”.

  • “Cuenta” o “Miembros” no aparecen: la instalación corre sin login (modo dev).
  • Actualizaciones dice “no disponible”: no sos admin del workspace operador.
  • No puedo exportar la auditoría: la instalación no tiene licencia Enterprise.