Documentación · Guías

Actividad del workspace

La pestaña Actividad (/workspace/activity) muestra un feed append-only de los cambios relevantes en la organización activa: quién hizo qué, sobre qué entidad y cuándo.

Quién puede verlo

Solo propietarios y administradores pueden abrir el feed. Los miembros y visualizadores ven el mensaje estándar de permisos y la API responde 403.

Qué se registra

Cada mutación de dominio exitosa emite un evento por petición HTTP, por ejemplo:

  • Proyectos, suites y casos de prueba (crear, actualizar, mover, archivar, eliminar)
  • Campos personalizados y ediciones agrupadas de casos (un solo test_case.updated cuando un PATCH cambia campos, pasos o valores a la vez)
  • Miembros, invitaciones y tokens de API
  • Ejecuciones (runs) — crear, actualizar, cerrar (incluido el cierre automático en cuanto todos los casos tienen resultado), abortar, eliminar, clonar (“Volver a ejecutar”), añadir/quitar casos, marcar casos y pasos, asignaciones, reintentos, ediciones del resultado real y adjuntos de resultado

Los eventos se conservan sin límite en esta versión.

Filtrar el feed

Usa Añadir filtro sobre la línea de tiempo para acotar el feed de la organización:

  • Actor filtra los eventos realizados por un miembro de la organización. Los eventos cuyo usuario se eliminó después permanecen en el feed, pero no coinciden con un filtro de actor miembro.
  • Tipo de entidad filtra por el tipo de objeto que cambió, como proyecto, ejecución, defecto, campo personalizado, miembro, invitación o token de API. Selecciona más de un tipo de entidad para combinarlos con OR.

Los filtros se reflejan en la URL, así que propietarios y administradores pueden compartir una vista de actividad acotada. Cambiar filtros recarga el feed desde el evento coincidente más reciente; usa Limpiar filtros para volver a la línea de tiempo completa.

Actividad de runs en el feed

Los eventos de run usan etiquetas capturadas al momento del cambio, así la línea de tiempo sigue siendo legible aunque un caso se renombre o elimine después.

Qué ocurrióQué verás
Run creadoCantidad de casos y, si aplica, entorno, asignado por defecto e hito
Run actualizadoDiff colapsable de nombre, descripción, asignado por defecto, entorno o hito
Run cerradoScorecard final (aprobados / fallidos / bloqueados / omitidos / sin probar, duración total, resultado proyectado). Se ve igual tanto si el cierre fue automático (todos los casos ya tenían resultado) como si fue con Completar.
Run eliminadoNombre del run (texto plano, sin enlace), scorecard final y si estaba abierto o cerrado al borrar
Resultado real editadoContexto del paso con diff de texto de → a en la ejecución en vivo
Run clonado (“Volver a ejecutar”)Nombre del run origen y el nombre/etiqueta del run nuevo
Casos añadidosCuántos casos se agregaron (hasta 20 nombrados en el payload)
Caso marcadoEnlace al caso (PROYECTO-42 · Título), chip de estado de → a, tiempo transcurrido opcional
Paso marcadoEnlace al caso, posición/acción del paso, chip de estado, estado del caso tras el marcado
Caso asignadoQuién asignó a quién (auto-asignación al abrir vs cambio manual)
Caso reintentadoEstado anterior restablecido a sin probar y tiempo borrado cuando corresponda
Caso eliminadoIdentidad del caso y estado al quitarlo
Marca / asignación / reintento / eliminación masivosUna fila por gesto con el conteo, los primeros IDs de caso y un diff expandible por caso (chips de estado, transiciones de asignado o estado al quitar)
Envío de resultado masivoUna fila por gesto: estado, conteo, los primeros IDs de caso y un diff expandible por caso (misma forma que la marca masiva) — el tiempo dividido y cualquier defecto adjunto no se muestran en el diff mismo
Adjunto confirmado/eliminadoCaso, paso y nombres de archivo

Los enlaces al caso abren la vista de ejecución del run si el run sigue existiendo; runs eliminados muestran solo texto.

Actividad dentro de un run

Cada vista de ejecución (/projects/{proyecto}/runs/{run}) incluye la pestaña Actividad junto a Casos de prueba. Muestra la misma línea de tiempo agrupada por día y los mismos diffs que el feed del workspace, pero solo para ese run.

SuperficieQuién puede abrirlaAPI
Actividad del workspacePropietarios y administradoresGET /api/v1/orgs/{orgUlid}/audit-events
Pestaña Actividad del runCualquier rol que pueda leer el run (viewer+)GET /api/v1/runs/{runUlid}/audit-events

La pestaña se refleja en la URL como ?tab=activity para enlaces profundos y el botón Atrás del navegador. En un run cerrado la pestaña Casos de prueba es solo lectura, pero Actividad sigue mostrando todo el historial. Los enlaces al run dentro de la pestaña se omiten porque ya estás dentro de esa ejecución.

Diseño en línea de tiempo

El feed es una línea de tiempo agrupada por día:

  • Los eventos se agrupan bajo encabezados de día (Hoy, Ayer o una fecha absoluta) con el conteo del día.
  • Un riel vertical conecta los avatares redondos de cada actor dentro del día.
  • Cada avatar lleva una insignia de tipo de acción (crear, actualizar, mover o eliminar) según el verbo del evento.

Usa el pie de página (mostrando N eventos · cargar más) para ver entradas más antiguas. Al cargar otra página no se duplica el encabezado del día si los eventos nuevos pertenecen a un día ya visible.

Detalle de los cambios (diff)

Los eventos de tipo *.updated, *.moved y member.role_changed incluyen un diff estructurado que describe qué campos cambiaron y a qué valores:

  • Todos los cambios (incluso un solo campo) aparecen en un grupo colapsable con el conteo en dos dígitos y la palabra cambio o cambios según la cantidad (p. ej. 01 cambio, 03 cambios). Al expandirlo verás una fila por campo: valor anterior (tenue, tachado) y valor nuevo (acento suave, monoespaciado).
  • Los valores nulos se muestran como Sin valor, sin tachado.
  • Valores largos: los textos se truncan a 240 caracteres y aparece un botón Ver más que despliega el snapshot completo guardado en el momento del cambio.
  • Pasos del caso: cuando un guardado consolidado modifica pasos, el feed muestra un diff detallado por paso dentro del mismo grupo: una fila por paso tocado con veredicto (Añadido, Eliminado, Modificado, Reordenado), líneas anterior → nuevo por acción/datos/resultado esperado (mismo estilo neutro y Ver más que los campos escalares), cambios de posición e imágenes añadidas o quitadas por nombre de archivo. Los eventos antiguos pueden seguir mostrando solo el conteo (Pasos: 3 → 5). Si cambian más de 20 pasos a la vez, se listan los primeros 20 más una fila resumen del resto (los totales por veredicto siguen siendo exactos).
  • Definiciones de campos personalizados: custom_field.updated registra cada parte mutable de la definición — propiedades escalares (title, texto de ayuda, Obligatorio, valor por defecto) como filas anterior → nuevo, más líneas en formato frase para visibilidad por proyecto (visible en todos los proyectos, paso a proyectos específicos, sin proyectos (Sin proyectos, misma cadena que la tabla de campos) cuando el alcance queda vacío, o alta/baja por proyecto con nombres capturados) y lista de opciones (opciones añadidas, eliminadas o renombradas con nombres capturados). Un reorden puro de opciones sigue usando la acción aparte custom_field.options_reordered sin líneas de opciones. Los nombres de campo y referencias son snapshots del momento del cambio, aunque luego se renombren o eliminen.
  • Ediciones de hito, entorno y defecto: milestone.updated, environment.updated y defect.updated incluyen el mismo diff por campo que las demás actualizaciones. Un hito muestra nombre, descripción, fechas (inicio, vencimiento y estimada) e hito padre por nombre; los cambios de estado —edición manual o finalización automática— registran el estado de → a. Un entorno muestra nombre, slug, descripción, URL y el indicador Predeterminado. Un defecto muestra su responsable e hito por nombre. Estos campos de referencia muestran la etiqueta legible capturada en el momento del cambio, nunca el id interno.

Eventos que no son updates (*.created, *.deleted, *.archived, *.restored) siguen mostrándose con su plantilla descriptiva sin grupo de cambios.

Tipos de actor

ActorCómo se muestra
UsuarioAvatar redondo con iniciales y nombre visible o parte local del correo
Token de APIIcono de llave y el nombre que elegiste al crearlo
SistemaIcono neutro y etiqueta «Sistema»

Si un usuario o token se elimina después, los eventos antiguos permanecen con «Usuario eliminado» / «Token eliminado».

API relacionada

Los integradores pueden leer los mismos datos con GET /api/v1/orgs/{orgUlid}/audit-events. Consulta API de eventos de auditoría.