Public API Reference¶
Readable reference for the Dezycro public REST API, generated at build time from the OpenAPI spec. Prefer firing test requests? Use the interactive explorer.
Dezycro Public API 1.0.0¶
Public¶
GET /api/v1/pats¶
List personal access tokens for the current user in the tenant
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
name |
query | string | null | Yes | Filter by token name (partial match, supports * wildcard) | |
page |
query | integer | 1 | No | Page number (1-indexed) |
size |
query | integer | 10 | No | Number of items per page (1-100, default 10) |
Responses
{
"data": [
{
"createdAt": "2022-03-10T12:15:50",
"id": "0ba2d334-8a77-48bd-9068-6cd23ad829b9",
"lastUsedAt": "2022-03-10T12:15:50",
"name": "string",
"scope": "TENANT",
"token": "string",
"tokenPrefix": "string",
"workspaceId": "16c6f14a-6c56-4f39-b1ed-a721c22367b3"
}
],
"page": 293,
"size": 119,
"totalElements": 256
}
Schema of the response body
{
"description": "Paginated list response wrapper",
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/PatDto"
},
"type": "array"
},
"page": {
"format": "int32",
"type": "integer"
},
"size": {
"format": "int32",
"type": "integer"
},
"totalElements": {
"format": "int64",
"type": "integer"
}
},
"required": [
"data",
"page",
"size",
"totalElements"
],
"type": "object"
}
POST /api/v1/pats¶
Create a new tenant-scoped personal access token
Request body
{
"createdAt": "2022-03-10T12:15:50",
"id": "6896ddde-7e89-4708-a4e1-52719d49e25b",
"lastUsedAt": "2022-03-10T12:15:50",
"name": "string",
"scope": "TENANT",
"token": "string",
"tokenPrefix": "string",
"workspaceId": "04aef50b-5718-4d4c-8ed7-d7976e8929be"
}
Schema of the request body
{
"description": "Personal Access Token",
"properties": {
"createdAt": {
"examples": [
"2022-03-10T12:15:50"
],
"format": "date-time",
"type": [
"string",
"null"
]
},
"id": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
},
"lastUsedAt": {
"examples": [
"2022-03-10T12:15:50"
],
"format": "date-time",
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"scope": {
"enum": [
"TENANT",
"WORKSPACE"
],
"type": [
"string",
"null"
]
},
"token": {
"type": [
"string",
"null"
]
},
"tokenPrefix": {
"type": [
"string",
"null"
]
},
"workspaceId": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
}
},
"required": [
"name"
],
"type": "object"
}
Responses
{
"createdAt": "2022-03-10T12:15:50",
"id": "de7625ae-eccf-4be5-9598-6f73b31794c2",
"lastUsedAt": "2022-03-10T12:15:50",
"name": "string",
"scope": "TENANT",
"token": "string",
"tokenPrefix": "string",
"workspaceId": "f52b5d00-2239-4ce9-ba1b-bc6b8341805e"
}
Schema of the response body
{
"description": "Personal Access Token",
"properties": {
"createdAt": {
"examples": [
"2022-03-10T12:15:50"
],
"format": "date-time",
"type": [
"string",
"null"
]
},
"id": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
},
"lastUsedAt": {
"examples": [
"2022-03-10T12:15:50"
],
"format": "date-time",
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"scope": {
"enum": [
"TENANT",
"WORKSPACE"
],
"type": [
"string",
"null"
]
},
"token": {
"type": [
"string",
"null"
]
},
"tokenPrefix": {
"type": [
"string",
"null"
]
},
"workspaceId": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
}
},
"required": [
"name"
],
"type": "object"
}
DELETE /api/v1/pats/{id}¶
Revoke a personal access token
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
id |
path | string | No | Token ID to revoke |
Responses
GET /api/v1/workspaces¶
List workspaces
Description
Returns all workspaces the current user has access to within the tenant.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
name |
query | string | null | Yes | Filter workspaces by name (partial match) | |
page |
query | integer | 1 | No | Page number (1-indexed) |
size |
query | integer | 10 | No | Number of items per page (1-100, default 10) |
Responses
{
"data": [
{
"id": "1d354931-a53a-4cb0-af2f-753df64c3fd3",
"name": "string",
"tenantId": "78f02237-c3a7-409e-9106-c26eaa82e52a"
}
],
"page": 103,
"size": 241,
"totalElements": 213
}
Schema of the response body
{
"description": "Paginated list response wrapper",
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/WorkspaceDto"
},
"type": "array"
},
"page": {
"format": "int32",
"type": "integer"
},
"size": {
"format": "int32",
"type": "integer"
},
"totalElements": {
"format": "int64",
"type": "integer"
}
},
"required": [
"data",
"page",
"size",
"totalElements"
],
"type": "object"
}
GET /api/v1/workspaces/{workspaceId}/projects¶
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
includeArchived |
query | boolean | False | No | |
nameWildcard |
query | string | No | ||
page |
query | integer | 1 | No | Page number (1-indexed) |
size |
query | integer | 10 | No | Number of items per page (1-100, default 10) |
workspaceId |
path | string | No |
Responses
{
"data": [
{
"description": "string",
"id": "b2913f1e-5024-4052-bc2d-763472e16b15",
"name": "string",
"status": "ACTIVE",
"workspaceId": "d1e7bea4-b19b-4304-8ba6-10aebcb51f3f"
}
],
"page": 96,
"size": 256,
"totalElements": 130
}
Schema of the response body
{
"description": "Paginated list response wrapper",
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/ProjectDto"
},
"type": "array"
},
"page": {
"format": "int32",
"type": "integer"
},
"size": {
"format": "int32",
"type": "integer"
},
"totalElements": {
"format": "int64",
"type": "integer"
}
},
"required": [
"data",
"page",
"size",
"totalElements"
],
"type": "object"
}
POST /api/v1/workspaces/{workspaceId}/projects¶
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
workspaceId |
path | string | No |
Request body
{
"description": "string",
"id": "da08066f-c0a7-493f-9512-3094960dcd9c",
"name": "string",
"status": "ACTIVE",
"workspaceId": "f9292f6e-9ace-4a1d-b891-4c3512cdc29e"
}
Schema of the request body
{
"description": "A software project within a workspace — the main organizational unit for test cases and documentation",
"properties": {
"description": {
"type": [
"string",
"null"
]
},
"id": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"status": {
"description": "Project lifecycle status",
"enum": [
"ACTIVE",
"ARCHIVED"
],
"type": "string"
},
"workspaceId": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
}
},
"required": [
"name"
],
"type": "object"
}
Responses
{
"description": "string",
"id": "85124690-34b0-425e-b869-6067f5b8c534",
"name": "string",
"status": "ACTIVE",
"workspaceId": "6bb1e122-7166-49c9-af03-d30fa9583a7a"
}
Schema of the response body
{
"description": "A software project within a workspace — the main organizational unit for test cases and documentation",
"properties": {
"description": {
"type": [
"string",
"null"
]
},
"id": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"status": {
"description": "Project lifecycle status",
"enum": [
"ACTIVE",
"ARCHIVED"
],
"type": "string"
},
"workspaceId": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
}
},
"required": [
"name"
],
"type": "object"
}
DELETE /api/v1/workspaces/{workspaceId}/projects/{projectId}¶
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
projectId |
path | string | No | ||
workspaceId |
path | string | No |
Responses
GET /api/v1/workspaces/{workspaceId}/projects/{projectId}¶
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
projectId |
path | string | No | ||
workspaceId |
path | string | No |
Responses
{
"description": "string",
"id": "ea2ebecc-4d2b-4acd-8a73-9ae885fc9554",
"name": "string",
"status": "ACTIVE",
"workspaceId": "037a75e5-af95-465a-9fd7-b8642153a639"
}
Schema of the response body
{
"description": "A software project within a workspace — the main organizational unit for test cases and documentation",
"properties": {
"description": {
"type": [
"string",
"null"
]
},
"id": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"status": {
"description": "Project lifecycle status",
"enum": [
"ACTIVE",
"ARCHIVED"
],
"type": "string"
},
"workspaceId": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
}
},
"required": [
"name"
],
"type": "object"
}
PUT /api/v1/workspaces/{workspaceId}/projects/{projectId}¶
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
projectId |
path | string | No | ||
workspaceId |
path | string | No |
Request body
{
"description": "string",
"id": "46cee94f-6aea-46fc-b047-808b93999274",
"name": "string",
"status": "ACTIVE",
"workspaceId": "fa43ca2b-2f85-498c-af23-806922bbd5af"
}
Schema of the request body
{
"description": "A software project within a workspace — the main organizational unit for test cases and documentation",
"properties": {
"description": {
"type": [
"string",
"null"
]
},
"id": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"status": {
"description": "Project lifecycle status",
"enum": [
"ACTIVE",
"ARCHIVED"
],
"type": "string"
},
"workspaceId": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
}
},
"required": [
"name"
],
"type": "object"
}
Responses
{
"description": "string",
"id": "b90ca824-b0b0-457b-b74a-3187a0e6b565",
"name": "string",
"status": "ACTIVE",
"workspaceId": "3c03bf3e-9683-4de8-80dd-3f277de671ca"
}
Schema of the response body
{
"description": "A software project within a workspace — the main organizational unit for test cases and documentation",
"properties": {
"description": {
"type": [
"string",
"null"
]
},
"id": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"status": {
"description": "Project lifecycle status",
"enum": [
"ACTIVE",
"ARCHIVED"
],
"type": "string"
},
"workspaceId": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
}
},
"required": [
"name"
],
"type": "object"
}
GET /api/v1/workspaces/{workspaceId}/projects/{projectId}/test-personas¶
List test personas
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
name |
query | string | null | Yes | Filter by persona name (partial match) | |
page |
query | integer | 1 | No | Page number (1-indexed) |
projectId |
path | string | No | Project ID | |
scope |
query | string | null | Yes | Persona scope filter (TENANT, WORKSPACE, or PROJECT) | |
size |
query | integer | 10 | No | Number of items per page (1-100, default 10) |
workspaceId |
path | string | No | Workspace ID |
Responses
{
"data": [
{
"authType": "BEARER",
"description": "string",
"envVar": "string",
"id": "fc554a0f-9ee6-4a1c-bb98-bd9356411ce8",
"name": "string",
"projectId": "10149f78-5a87-4d9b-a055-3d4c636920f7",
"scope": "TENANT",
"script": "string"
}
],
"page": 229,
"size": 91,
"totalElements": 254
}
Schema of the response body
{
"description": "Paginated list response wrapper",
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/TestPersonaDto"
},
"type": "array"
},
"page": {
"format": "int32",
"type": "integer"
},
"size": {
"format": "int32",
"type": "integer"
},
"totalElements": {
"format": "int64",
"type": "integer"
}
},
"required": [
"data",
"page",
"size",
"totalElements"
],
"type": "object"
}
POST /api/v1/workspaces/{workspaceId}/projects/{projectId}/test-personas¶
Create a test persona
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
projectId |
path | string | No | Project ID | |
workspaceId |
path | string | No | Workspace ID |
Request body
{
"authType": "BEARER",
"description": "string",
"envVar": "string",
"id": "22e5cde9-a5bb-47d3-a532-2a9ecf3e235e",
"name": "string",
"projectId": "e28fb181-8be5-4a87-ab34-c87a7b717f1a",
"scope": "TENANT",
"script": "string"
}
Schema of the request body
{
"description": "Test persona for authentication in generated tests",
"properties": {
"authType": {
"enum": [
"BEARER",
"BASIC",
"HEADER",
"HTTP_ENDPOINT",
"JS",
"NONE"
],
"type": "string"
},
"description": {
"type": "string"
},
"envVar": {
"type": [
"string",
"null"
]
},
"id": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"projectId": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
},
"scope": {
"enum": [
"TENANT",
"WORKSPACE",
"PROJECT"
],
"type": "string"
},
"script": {
"type": [
"string",
"null"
]
}
},
"required": [
"name",
"description",
"authType",
"scope"
],
"type": "object"
}
Responses
{
"authType": "BEARER",
"description": "string",
"envVar": "string",
"id": "85fa57d5-fb0a-493f-a581-c76a52c63f5a",
"name": "string",
"projectId": "726f3e4a-2ba6-45d4-9fd2-38c354c58a30",
"scope": "TENANT",
"script": "string"
}
Schema of the response body
{
"description": "Test persona for authentication in generated tests",
"properties": {
"authType": {
"enum": [
"BEARER",
"BASIC",
"HEADER",
"HTTP_ENDPOINT",
"JS",
"NONE"
],
"type": "string"
},
"description": {
"type": "string"
},
"envVar": {
"type": [
"string",
"null"
]
},
"id": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"projectId": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
},
"scope": {
"enum": [
"TENANT",
"WORKSPACE",
"PROJECT"
],
"type": "string"
},
"script": {
"type": [
"string",
"null"
]
}
},
"required": [
"name",
"description",
"authType",
"scope"
],
"type": "object"
}
DELETE /api/v1/workspaces/{workspaceId}/projects/{projectId}/test-personas/{personaId}¶
Delete a test persona
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
personaId |
path | string | No | Persona ID | |
projectId |
path | string | No | Project ID | |
workspaceId |
path | string | No | Workspace ID |
Responses
PUT /api/v1/workspaces/{workspaceId}/projects/{projectId}/test-personas/{personaId}¶
Update a test persona
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
personaId |
path | string | No | Persona ID | |
projectId |
path | string | No | Project ID | |
workspaceId |
path | string | No | Workspace ID |
Request body
{
"authType": "BEARER",
"description": "string",
"envVar": "string",
"id": "7867117a-4616-41c7-8165-f245236f0b1c",
"name": "string",
"projectId": "c9b80fd6-f7d1-4836-acab-51c602aa8711",
"scope": "TENANT",
"script": "string"
}
Schema of the request body
{
"description": "Test persona for authentication in generated tests",
"properties": {
"authType": {
"enum": [
"BEARER",
"BASIC",
"HEADER",
"HTTP_ENDPOINT",
"JS",
"NONE"
],
"type": "string"
},
"description": {
"type": "string"
},
"envVar": {
"type": [
"string",
"null"
]
},
"id": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"projectId": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
},
"scope": {
"enum": [
"TENANT",
"WORKSPACE",
"PROJECT"
],
"type": "string"
},
"script": {
"type": [
"string",
"null"
]
}
},
"required": [
"name",
"description",
"authType",
"scope"
],
"type": "object"
}
Responses
{
"authType": "BEARER",
"description": "string",
"envVar": "string",
"id": "ffd9eb97-63c5-498b-b7ef-1336016caab1",
"name": "string",
"projectId": "d65d54ad-24bd-430c-b644-2618ce5cf030",
"scope": "TENANT",
"script": "string"
}
Schema of the response body
{
"description": "Test persona for authentication in generated tests",
"properties": {
"authType": {
"enum": [
"BEARER",
"BASIC",
"HEADER",
"HTTP_ENDPOINT",
"JS",
"NONE"
],
"type": "string"
},
"description": {
"type": "string"
},
"envVar": {
"type": [
"string",
"null"
]
},
"id": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
},
"name": {
"type": "string"
},
"projectId": {
"format": "uuid",
"pattern": "[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}",
"type": [
"string",
"null"
]
},
"scope": {
"enum": [
"TENANT",
"WORKSPACE",
"PROJECT"
],
"type": "string"
},
"script": {
"type": [
"string",
"null"
]
}
},
"required": [
"name",
"description",
"authType",
"scope"
],
"type": "object"
}
GET /api/v1/workspaces/{workspaceId}/projects/{projectId}/test-runs¶
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
page |
query | integer | 1 | No | Page number (1-indexed) |
projectId |
path | string | No | ||
size |
query | integer | 10 | No | Number of items per page (1-100, default 10) |
sort |
query | string | null | Yes | ||
startedAfter |
query | string | null | Yes | ||
startedBefore |
query | string | null | Yes | ||
status |
query | string | null | Yes | ||
workspaceId |
path | string | No |
Responses
{
"data": [
{
"branch": "string",
"commitId": "string",
"completedAt": "2022-03-10T16:15:50Z",
"durationMs": 167,
"failed": 285,
"imageTag": "string",
"passed": 59,
"projectId": "f2071db4-92b9-446f-ab7d-ddf247b7f137",
"runId": "cc325c18-85f9-44ef-956f-fcf998c6dfd2",
"skipped": 111,
"startedAt": "2022-03-10T16:15:50Z",
"status": "string",
"tenantId": "491eecb6-10e6-4e61-aeac-3dd0aa36608c",
"totalTests": 190
}
],
"page": 157,
"size": 50,
"totalElements": 201
}
Schema of the response body
{
"description": "Paginated list response wrapper",
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/TestRunDto"
},
"type": "array"
},
"page": {
"format": "int32",
"type": "integer"
},
"size": {
"format": "int32",
"type": "integer"
},
"totalElements": {
"format": "int64",
"type": "integer"
}
},
"required": [
"data",
"page",
"size",
"totalElements"
],
"type": "object"
}
GET /api/v1/workspaces/{workspaceId}/projects/{projectId}/test-runs/{runId}/results¶
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
page |
query | integer | 1 | No | Page number (1-indexed) |
projectId |
path | string | No | ||
runId |
path | string | No | ||
size |
query | integer | 10 | No | Number of items per page (1-100, default 10) |
status |
query | string | null | Yes | ||
testCaseName |
query | string | null | Yes | ||
workspaceId |
path | string | No |
Responses
{
"data": [
{
"durationMs": 158,
"endedAt": "2022-03-10T16:15:50Z",
"errorMessage": "string",
"journeyRef": "string",
"logUrl": "string",
"runId": "3ac987ab-8c22-4194-8d3c-cf6b9b7b5c14",
"startedAt": "2022-03-10T16:15:50Z",
"status": "string",
"stepTraces": [
{
"durationMs": 166,
"error": "string",
"expectedStatus": 300,
"method": "string",
"passed": true,
"path": "string",
"requestBody": "string",
"requestHeaders": {},
"responseBody": "string",
"responseHeaders": {},
"statusCode": 18,
"stepDescription": "string",
"testCaseStepIndex": 182,
"timestamp": "string"
}
],
"testCaseId": "f77d8c12-a92f-4b13-b3ae-a314e583173e",
"testName": "string"
}
],
"page": 34,
"size": 10,
"totalElements": 95
}
Schema of the response body
{
"description": "Paginated list response wrapper",
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/TestCaseResultDto"
},
"type": "array"
},
"page": {
"format": "int32",
"type": "integer"
},
"size": {
"format": "int32",
"type": "integer"
},
"totalElements": {
"format": "int64",
"type": "integer"
}
},
"required": [
"data",
"page",
"size",
"totalElements"
],
"type": "object"
}
GET /api/v1/workspaces/{workspaceId}/projects/{projectId}/test-runs/{runId}/results/{testCaseId}/log¶
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
projectId |
path | string | No | ||
runId |
path | string | No | ||
testCaseId |
path | string | No | ||
workspaceId |
path | string | No |
Responses
GET /api/v1/workspaces/{workspaceId}/projects/{projectId}/validation-cases¶
List validation cases
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
featureId |
query | string | null | Yes | Filter by feature ID | |
page |
query | integer | 1 | No | Page number (1-indexed) |
projectId |
path | string | No | ||
size |
query | integer | 10 | No | Number of items per page (1-100, default 10) |
status |
query | string | null | Yes | Filter by status | |
workspaceId |
path | string | No |
Responses
{
"data": [
{
"assertionsFromPrd": [
{
"description": "string",
"graphCaptured": true,
"prdQuote": "string",
"type": "string"
}
],
"coverageFlags": [
"string"
],
"dataExpectations": [
"string"
],
"description": "string",
"edgeCasesFromPrd": [
"string"
],
"enrichmentModelVersion": "string",
"featureId": "22c8a0be-c7dd-45ef-9a88-8795a4f67f6f",
"generatedAt": "2022-03-10T16:15:50Z",
"globalConstraints": [
"string"
],
"id": "76fb0f88-811a-4991-98cd-7b00fe4a5c38",
"name": "string",
"outcomeType": "string",
"pathClass": "string",
"postConditions": [
"string"
],
"preConditions": [
"string"
],
"priority": "string",
"projectId": "ce557ec6-ec0e-4eae-a8a4-b1021cf62461",
"riskIndicator": "string",
"roleRequirement": "string",
"sectionRefs": [
{
"prdQuote": "string",
"sectionHeading": "string",
"sectionIndex": 191
}
],
"sourceContentHash": "string",
"sourceDecisionRef": "string",
"sourceJourneyId": "string",
"sourcePrdId": "78cff334-9092-4857-8fff-39982328e142",
"status": "string",
"stepsFromGraph": [
"string"
],
"type": "string",
"workspaceId": "81ff9ddf-9931-4458-8fd4-7d36280f97c1"
}
],
"page": 152,
"size": 170,
"totalElements": 274
}
Schema of the response body
{
"description": "Paginated list response wrapper",
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/ValidationCaseDto"
},
"type": "array"
},
"page": {
"format": "int32",
"type": "integer"
},
"size": {
"format": "int32",
"type": "integer"
},
"totalElements": {
"format": "int64",
"type": "integer"
}
},
"required": [
"data",
"page",
"size",
"totalElements"
],
"type": "object"
}
POST /api/v1/workspaces/{workspaceId}/projects/{projectId}/validation-cases/generate¶
Trigger validation case generation
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
projectId |
path | string | No | ||
workspaceId |
path | string | No |
Request body
Schema of the request body
Responses
GET /api/v1/workspaces/{workspaceId}/projects/{projectId}/validation-cases/generate/status/{workflowId}¶
Get validation case generation status
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
projectId |
path | string | No | ||
workflowId |
path | string | No | ||
workspaceId |
path | string | No |
Responses
{
"enrichedCases": 272,
"message": "string",
"persistedCases": 112,
"phase": "string",
"status": "string",
"totalSkeletons": 157
}
Schema of the response body
{
"description": "Status of a validation case generation workflow",
"properties": {
"enrichedCases": {
"format": "int32",
"type": "integer"
},
"message": {
"type": "string"
},
"persistedCases": {
"format": "int32",
"type": "integer"
},
"phase": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string"
},
"totalSkeletons": {
"format": "int32",
"type": "integer"
}
},
"required": [
"status",
"message"
],
"type": "object"
}
Schemas¶
Assertion¶
| Name | Type | Description |
|---|---|---|
description |
string | |
graphCaptured |
boolean | |
prdQuote |
string | |
type |
string |
GenerationTriggerDto¶
| Name | Type | Description |
|---|---|---|
workflowId |
string |
PaginatedResponsePatDto¶
| Name | Type | Description |
|---|---|---|
data |
Array<PatDto> | |
page |
integer(int32) | |
size |
integer(int32) | |
totalElements |
integer(int64) |
PaginatedResponseProjectDto¶
| Name | Type | Description |
|---|---|---|
data |
Array<ProjectDto> | |
page |
integer(int32) | |
size |
integer(int32) | |
totalElements |
integer(int64) |
PaginatedResponseTestCaseResultDto¶
| Name | Type | Description |
|---|---|---|
data |
Array<TestCaseResultDto> | |
page |
integer(int32) | |
size |
integer(int32) | |
totalElements |
integer(int64) |
PaginatedResponseTestPersonaDto¶
| Name | Type | Description |
|---|---|---|
data |
Array<TestPersonaDto> | |
page |
integer(int32) | |
size |
integer(int32) | |
totalElements |
integer(int64) |
PaginatedResponseTestRunDto¶
| Name | Type | Description |
|---|---|---|
data |
Array<TestRunDto> | |
page |
integer(int32) | |
size |
integer(int32) | |
totalElements |
integer(int64) |
PaginatedResponseValidationCaseDto¶
| Name | Type | Description |
|---|---|---|
data |
Array<ValidationCaseDto> | |
page |
integer(int32) | |
size |
integer(int32) | |
totalElements |
integer(int64) |
PaginatedResponseWorkspaceDto¶
| Name | Type | Description |
|---|---|---|
data |
Array<WorkspaceDto> | |
page |
integer(int32) | |
size |
integer(int32) | |
totalElements |
integer(int64) |
PatDto¶
| Name | Type | Description |
|---|---|---|
createdAt |
string(date-time) | null | |
id |
string(uuid) | null | |
lastUsedAt |
string(date-time) | null | |
name |
string | |
scope |
string | null | |
token |
string | null | |
tokenPrefix |
string | null | |
workspaceId |
string(uuid) | null |
ProjectDto¶
| Name | Type | Description |
|---|---|---|
description |
string | null | |
id |
string(uuid) | null | |
name |
string | |
status |
string | Project lifecycle status |
workspaceId |
string(uuid) | null |
SectionRef¶
| Name | Type | Description |
|---|---|---|
prdQuote |
string | null | |
sectionHeading |
string | |
sectionIndex |
integer(int32) |
StepTraceDto¶
| Name | Type | Description |
|---|---|---|
durationMs |
integer(int64) | |
error |
string | |
expectedStatus |
integer(int32) | null | |
method |
string | |
passed |
boolean | null | |
path |
string | |
requestBody |
string | |
requestHeaders |
||
responseBody |
string | |
responseHeaders |
||
statusCode |
integer(int32) | |
stepDescription |
string | |
testCaseStepIndex |
integer(int32) | |
timestamp |
string |
TestCaseResultDto¶
| Name | Type | Description |
|---|---|---|
durationMs |
integer(int64) | |
endedAt |
string(date-time) | |
errorMessage |
string | |
journeyRef |
string | null | |
logUrl |
string | |
runId |
string(uuid) | |
startedAt |
string(date-time) | |
status |
string | |
stepTraces |
Array<StepTraceDto> | |
testCaseId |
string(uuid) | |
testName |
string |
TestPersonaDto¶
| Name | Type | Description |
|---|---|---|
authType |
string | |
description |
string | |
envVar |
string | null | |
id |
string(uuid) | null | |
name |
string | |
projectId |
string(uuid) | null | |
scope |
string | |
script |
string | null |
TestRunDto¶
| Name | Type | Description |
|---|---|---|
branch |
string | null | |
commitId |
string | null | |
completedAt |
string(date-time) | null | |
durationMs |
integer(int64) | null | |
failed |
integer(int32) | |
imageTag |
string | null | |
passed |
integer(int32) | |
projectId |
string(uuid) | |
runId |
string(uuid) | |
skipped |
integer(int32) | |
startedAt |
string(date-time) | |
status |
string | |
tenantId |
string(uuid) | |
totalTests |
integer(int32) |
ValidationCaseDto¶
| Name | Type | Description |
|---|---|---|
assertionsFromPrd |
Array<Assertion> | |
coverageFlags |
Array<string> | |
dataExpectations |
Array<string> | |
description |
string | null | |
edgeCasesFromPrd |
Array<string> | |
enrichmentModelVersion |
string | null | |
featureId |
string(uuid) | null | |
generatedAt |
string(date-time) | null | |
globalConstraints |
Array<string> | |
id |
string(uuid) | |
name |
string | |
outcomeType |
string | |
pathClass |
string | |
postConditions |
Array<string> | |
preConditions |
Array<string> | |
priority |
string | |
projectId |
string(uuid) | |
riskIndicator |
string | null | |
roleRequirement |
string | null | |
sectionRefs |
Array<SectionRef> | |
sourceContentHash |
string | null | |
sourceDecisionRef |
string | null | |
sourceJourneyId |
string | null | |
sourcePrdId |
string(uuid) | |
status |
string | |
stepsFromGraph |
Array<string> | |
type |
string | |
workspaceId |
string(uuid) |
ValidationCaseGenerationStatusDto¶
| Name | Type | Description |
|---|---|---|
enrichedCases |
integer(int32) | |
message |
string | |
persistedCases |
integer(int32) | |
phase |
string | null | |
status |
string | |
totalSkeletons |
integer(int32) |
ValidationCaseGenerationTriggerDto¶
| Name | Type | Description |
|---|---|---|
featureId |
string(uuid) |
WorkspaceDto¶
| Name | Type | Description |
|---|---|---|
id |
string(uuid) | null | |
name |
string | |
tenantId |
string(uuid) | null |