Ir al contenido

API de configuraciones

Los grupos de configuración representan ejes de la matriz de pruebas (por ejemplo “Navegador”, “Sistema operativo”) y sus valores de configuración anidados son las celdas individuales de ese eje (por ejemplo “Chrome”, “Firefox”). Los grupos y los valores son por proyecto, admiten eliminación lógica (soft-delete) y reciben ULIDs asignados por el servidor.

POST/api/v1/projects/{projectId}/configuration-groups

{projectId} es el código del proyecto (por ejemplo ACME).

CampoObligatorioNotas
nameCadena no vacía, máximo 120 caracteres

Los campos ulid enviados por el cliente son rechazados.

201 con el objeto del grupo de configuración creado. Ver Campos de respuesta del grupo.

Un nombre duplicado entre grupos activos del proyecto devuelve 409 conflict. Un name vacío devuelve 422 validation_failed.

Ventana de terminal
curl -sS -X POST \
-H "Authorization: Bearer $PROBARA_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Navegador"}' \
"https://probara.net/api/v1/projects/ACME/configuration-groups"
GET/api/v1/projects/{projectId}/configuration-groups

Devuelve los grupos de configuración activos (no eliminados) del proyecto.

ParámetroNotas
pageNúmero de página (base 1, por defecto 1)
pageSizeElementos por página (por defecto 20)
includePasa values para incluir los valores de configuración anidados en cada grupo

200 con { items, page, pageSize, total }. Con include=values, cada ítem incluye un array values.

Ventana de terminal
curl -sS \
-H "Authorization: Bearer $PROBARA_API_TOKEN" \
"https://probara.net/api/v1/projects/ACME/configuration-groups?include=values"
GET/api/v1/configuration-groups/{groupUlid}

Devuelve un único grupo de configuración activo en el ámbito de la organización activa. Añade ?include=values para incluir los valores anidados.

Devuelve 404 not_found si el grupo no pertenece a la organización activa o ha sido eliminado.

Ventana de terminal
curl -sS \
-H "Authorization: Bearer $PROBARA_API_TOKEN" \
"https://probara.net/api/v1/configuration-groups/01JXXXXXXXXXXXXXXXXXXXXXXXXX"
PATCH/api/v1/configuration-groups/{groupUlid}

Actualización parcial. Se requiere al menos un campo; un cuerpo vacío devuelve 422 validation_failed.

CampoObligatorioNotas
namenoCadena no vacía, máximo 120 caracteres

Un nombre duplicado entre grupos activos del proyecto devuelve 409 conflict. Devuelve 404 not_found si el grupo no pertenece a la organización activa.

Ventana de terminal
curl -sS -X PATCH \
-H "Authorization: Bearer $PROBARA_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Navegador web"}' \
"https://probara.net/api/v1/configuration-groups/01JXXXXXXXXXXXXXXXXXXXXXXXXX"
DELETE/api/v1/configuration-groups/{groupUlid}

Elimina de forma lógica el grupo de configuración y todos sus valores anidados. Devuelve 204 si tiene éxito. Un GET posterior devuelve 404 not_found y el grupo queda excluido de los resultados del listado.

Devuelve 404 not_found si el grupo no pertenece a la organización activa.

Ventana de terminal
curl -sS -X DELETE \
-H "Authorization: Bearer $PROBARA_API_TOKEN" \
"https://probara.net/api/v1/configuration-groups/01JXXXXXXXXXXXXXXXXXXXXXXXXX"

Los endpoints de mutación (POST, PATCH) y GET /api/v1/configuration-groups/{groupUlid} devuelven un único objeto de grupo de configuración con los siguientes campos.

CampoTipoNotas
ulidstring (ULID)Identificador único asignado por el servidor
projectUlidstring (ULID)El proyecto al que pertenece este grupo
namestringNombre para mostrar
positionnumberOrden de clasificación relativo
createdAtnumberMilisegundos desde epoch Unix
updatedAtnumberMilisegundos desde epoch Unix

Con include=values, cada grupo también incluye un array values con objetos de valor de configuración.


Los valores de configuración están anidados dentro de un grupo de configuración.

POST/api/v1/configuration-groups/{groupUlid}/configurations
CampoObligatorioNotas
nameCadena no vacía, máximo 120 caracteres

Los campos ulid enviados por el cliente son rechazados.

201 con el objeto del valor de configuración creado. Ver Campos de respuesta del valor.

Un nombre duplicado entre valores activos del grupo devuelve 409 conflict. Un name vacío devuelve 422 validation_failed.

Ventana de terminal
curl -sS -X POST \
-H "Authorization: Bearer $PROBARA_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Chrome"}' \
"https://probara.net/api/v1/configuration-groups/01JXXXXXXXXXXXXXXXXXXXXXXXXX/configurations"
GET/api/v1/configuration-groups/{groupUlid}/configurations

Devuelve todos los valores de configuración activos del grupo, ordenados por posición.

200 con { items, page, pageSize, total }.

Ventana de terminal
curl -sS \
-H "Authorization: Bearer $PROBARA_API_TOKEN" \
"https://probara.net/api/v1/configuration-groups/01JXXXXXXXXXXXXXXXXXXXXXXXXX/configurations"
PATCH/api/v1/configurations/{configurationUlid}

Actualización parcial. Se requiere al menos un campo; un cuerpo vacío devuelve 422 validation_failed.

CampoObligatorioNotas
namenoCadena no vacía, máximo 120 caracteres

Un nombre duplicado entre valores activos del grupo devuelve 409 conflict. Devuelve 404 not_found si el valor no pertenece a la organización activa.

Ventana de terminal
curl -sS -X PATCH \
-H "Authorization: Bearer $PROBARA_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Google Chrome"}' \
"https://probara.net/api/v1/configurations/01JXXXXXXXXXXXXXXXXXXXXXXXXX"
DELETE/api/v1/configurations/{configurationUlid}

Elimina el valor de configuración de forma lógica. Devuelve 204 si tiene éxito. Un GET posterior devuelve 404 not_found.

Devuelve 404 not_found si el valor no pertenece a la organización activa.

Ventana de terminal
curl -sS -X DELETE \
-H "Authorization: Bearer $PROBARA_API_TOKEN" \
"https://probara.net/api/v1/configurations/01JXXXXXXXXXXXXXXXXXXXXXXXXX"
CampoTipoNotas
ulidstring (ULID)Identificador único asignado por el servidor
groupUlidstring (ULID)El grupo de configuración al que pertenece este valor
projectUlidstring (ULID)El proyecto al que pertenece este valor
namestringNombre para mostrar
positionnumberOrden de clasificación relativo dentro del grupo
createdAtnumberMilisegundos desde epoch Unix
updatedAtnumberMilisegundos desde epoch Unix

Etiquetar una ejecución con configuraciones

Sección titulada «Etiquetar una ejecución con configuraciones»

Una ejecución puede llevar una combinación de valores de configuración — por ejemplo Chrome + Windows — establecida al crearla o reemplazada después, en cualquier ejecución (con o sin plan de pruebas vinculado).

POST /api/v1/projects/{projectId}/runs acepta un arreglo opcional configurationUlids (máximo 20 entradas, sin duplicados):

Ventana de terminal
curl -sS -X POST \
-H "Authorization: Bearer $PROBARA_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Smoke — Chrome / Windows",
"caseUlids": ["01J...CASE"],
"configurationUlids": ["01J...CHROME", "01J...WINDOWS"]
}' \
"https://probara.net/api/v1/projects/ACME/runs"

Cada ULID enviado debe resolver a un valor de configuración vigente en el propio proyecto de la ejecución; un ULID desconocido, eliminado, de otro proyecto o de otra organización devuelve 404 not_found y no se crea ninguna ejecución. Se permite como máximo un valor por grupo de configuración — dos valores del mismo grupo devuelven 422 validation_failed con details.code = "duplicate_group".

PATCH /api/v1/runs/{runUlid} acepta el mismo campo configurationUlids, aplicado como un conjunto de reemplazo:

  • Un arreglo no vacío reemplaza toda la combinación de la ejecución por exactamente esos valores.
  • [] limpia todas las configuraciones de la ejecución.
  • Omitir la propiedad deja las configuraciones de la ejecución sin cambios.

Aplican las mismas reglas de resolución y de un valor por grupo. Un PATCH que solo cambie configuraciones se acepta en una ejecución abierta o cerrada no abortada; una ejecución abortada lo rechaza con 409 conflict, igual que cualquier otra mutación de metadatos.

Todo RunResponse incluye un arreglo configurations — ver Forma de RunResponse.

Las mutaciones de configuración emiten los siguientes eventos en el feed de actividad de la organización:

  • configuration_group.created, configuration_group.updated, configuration_group.deleted
  • configuration.created, configuration.updated, configuration.deleted

Ver Eventos de auditoría.