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¶
Endpoint index¶
Public¶
GET /api/v1/pats¶
List personal access tokens
Description
Returns your personal access tokens, paginated. Only the token prefix is included — the full secret is shown once, at creation.
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": "82be570a-f4c0-49bd-890c-cc584bb82b7c",
"lastUsedAt": "2022-03-10T12:15:50",
"name": "string",
"scope": "TENANT",
"token": "string",
"tokenPrefix": "string",
"workspaceId": "c0d91cd9-6b27-4b54-9e93-b6bbefd1cfb2"
}
],
"page": 267,
"size": 276,
"totalElements": 129
}
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 personal access token
Description
Creates a tenant-scoped PAT for API and MCP access. The response includes the full dzy_... secret exactly once — store it now, it cannot be retrieved again. The token inherits your workspace roles on every call.
Request body
{
"createdAt": "2022-03-10T12:15:50",
"id": "ca480b75-9e67-46aa-90f5-70a055749a99",
"lastUsedAt": "2022-03-10T12:15:50",
"name": "string",
"scope": "TENANT",
"token": "string",
"tokenPrefix": "string",
"workspaceId": "ef3ff444-9a58-4ade-b9cd-ec026ce7d2c6"
}
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": "8fbba843-1146-404d-bdf3-28c3c9f19783",
"lastUsedAt": "2022-03-10T12:15:50",
"name": "string",
"scope": "TENANT",
"token": "string",
"tokenPrefix": "string",
"workspaceId": "27c3ee1a-5300-4e97-aeb5-9948c8dadcfb"
}
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 personal access token
Description
Permanently revokes a token. Requests using it fail immediately; this cannot be undone.
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": "d9c13272-f056-48b9-999a-2e9516f78ca5",
"name": "string",
"tenantId": "e77f0c72-fc13-4748-9611-8302f43a365c"
}
],
"page": 184,
"size": 142,
"totalElements": 136
}
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}/activity-items¶
List activity
Description
Long-running operations of the workspace (generations, builds, imports, checks), running first, then newest first. scope=SELF (default) lists the ones the token's user started or joined; scope=WORKSPACE lists everyone's, with who started each. Page size defaults to 10 and is capped at 20; only the newest 1000 items can be paged to, so totalElements saturates at 1000 and pages past them are empty. The response carries an ETag; a request whose If-None-Match matches it gets 304 Not Modified with no body.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
page |
query | integer | 1 | No | Page number (1-indexed) |
scope |
query | No | Which items to list: SELF (the token's user's own, default) or WORKSPACE (everyone's in the workspace) | ||
size |
query | integer | 10 | No | Number of items per page (1-100, default 10) |
workspaceId |
path | string | No | Workspace ID |
Responses
{
"data": [
{
"counts": [
{
"count": "PASSED",
"value": 172
}
],
"dismissible": true,
"endedAt": "2022-03-10T16:15:50Z",
"failureCode": "string",
"featureId": "9857db4a-32c3-4c80-9a92-4149c6df32df",
"id": "7013f92b-0d70-4dc4-95bb-cc92653bd2f3",
"kind": "UI_AUTHORING",
"ownerName": "string",
"ownerUserId": "296a96bc-108e-4e3f-aa68-f3a8cc9a626f",
"progress": null,
"projectId": "788ac261-0356-4f60-b2ae-83fd261379e3",
"projectName": "string",
"startedAt": "2022-03-10T16:15:50Z",
"state": "RUNNING",
"subjectId": "c2f6377b-1b2c-4017-af7b-d1516f02de14",
"subjectName": "string",
"updatedAt": "2022-03-10T16:15:50Z",
"workspaceId": "8fe542e3-d125-47b4-a6b4-220eea75eff6"
}
],
"page": 222,
"size": 203,
"totalElements": 208
}
Schema of the response body
{
"description": "Paginated list response wrapper",
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/ActivityItemDto"
},
"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¶
List projects
Description
Returns the projects in a workspace, paginated. Use nameWildcard to filter by name (* matches any characters). Archived projects are excluded unless includeArchived is set.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
includeArchived |
query | boolean | False | No | Include archived projects in the results |
nameWildcard |
query | string | No | Filter projects by name; `*` matches any characters (e.g. `pay*`) | |
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 | Workspace ID |
Responses
{
"data": [
{
"description": "string",
"id": "7043ed4c-feb8-4965-bed5-6882b8af712c",
"name": "string",
"status": "ACTIVE",
"workspaceId": "dec2e453-4256-4f87-9800-25f41e8f0518"
}
],
"page": 269,
"size": 63,
"totalElements": 80
}
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¶
Create project
Description
Creates a new project in the workspace. A project groups features, documents, test personas, and test runs; only name is required.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
workspaceId |
path | string | No | Workspace ID |
Request body
{
"description": "string",
"id": "d7557657-1ae6-4a8d-a641-ef0849392f3f",
"name": "string",
"status": "ACTIVE",
"workspaceId": "32308d2a-f02e-4ab1-9691-4f4216daaa32"
}
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": "a7523767-e535-4a0d-8d29-74eb1eeb2fd6",
"name": "string",
"status": "ACTIVE",
"workspaceId": "2774b332-39a3-4878-ac2c-a4530e537762"
}
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}¶
Delete project
Description
Deletes a project and everything in it — features, documents, and generated test cases. This cannot be undone.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
projectId |
path | string | No | Project ID | |
workspaceId |
path | string | No | Workspace ID |
Responses
GET /api/v1/workspaces/{workspaceId}/projects/{projectId}¶
Get project
Description
Returns a single project by ID.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
projectId |
path | string | No | Project ID | |
workspaceId |
path | string | No | Workspace ID |
Responses
{
"description": "string",
"id": "2b4f6ef6-9095-4c4a-8191-4181484074c5",
"name": "string",
"status": "ACTIVE",
"workspaceId": "987ba4ea-526f-4aac-9b5c-92f75c063320"
}
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}¶
Update project
Description
Updates a project's name, description, or archived state. Fields omitted from the body are left unchanged.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
projectId |
path | string | No | Project ID | |
workspaceId |
path | string | No | Workspace ID |
Request body
{
"description": "string",
"id": "7c12d580-addb-416d-ae99-9c1acf022b8f",
"name": "string",
"status": "ACTIVE",
"workspaceId": "6b5f2f8a-2abc-4eb9-b89d-c963fe5372a1"
}
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": "659e7d4f-1e81-4a3c-9a99-3e0de5959678",
"name": "string",
"status": "ACTIVE",
"workspaceId": "c2dac378-3572-40e8-b9c4-933fabf4b9d0"
}
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
Description
Returns the test personas visible to a project, paginated — including personas inherited from the workspace and tenant scopes.
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",
"credentialSource": "ENV",
"description": "string",
"envVar": "string",
"id": "3a4f5f97-5aae-46a0-a118-d6ed82e7eb60",
"name": "string",
"projectId": "a5374b8f-2ff8-4191-bf7d-22d79a0c12f3",
"scope": "TENANT",
"script": "string",
"uiAuth": null
}
],
"page": 41,
"size": 244,
"totalElements": 256
}
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 test persona
Description
Creates a test persona: a named identity that generated tests and the verifier authenticate as when exercising your API. The persona names where its credentials come from (an environment variable, or a script your CLI runs); Dezycro stores no credential.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
projectId |
path | string | No | Project ID | |
workspaceId |
path | string | No | Workspace ID |
Request body
{
"authType": "BEARER",
"credentialSource": "ENV",
"description": "string",
"envVar": "string",
"id": "5cd02593-7e92-45d9-b124-798ca896f214",
"name": "string",
"projectId": "98500dfd-daf2-4dbe-96c8-4adeee881c9b",
"scope": "TENANT",
"script": "string",
"uiAuth": null
}
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"
},
"credentialSource": {
"enum": [
"ENV",
"SCRIPT"
],
"type": [
"string",
"null"
]
},
"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"
]
},
"uiAuth": {
"anyOf": [
{
"$ref": "#/components/schemas/UiAuthRecipeDto"
},
{
"type": "null"
}
]
}
},
"required": [
"name",
"description",
"authType",
"scope"
],
"type": "object"
}
Responses
{
"authType": "BEARER",
"credentialSource": "ENV",
"description": "string",
"envVar": "string",
"id": "32a7499e-f08a-422e-bf86-2f3e61a2e4e4",
"name": "string",
"projectId": "22dd71a5-ed4e-4c0b-bb2f-41be741af883",
"scope": "TENANT",
"script": "string",
"uiAuth": null
}
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"
},
"credentialSource": {
"enum": [
"ENV",
"SCRIPT"
],
"type": [
"string",
"null"
]
},
"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"
]
},
"uiAuth": {
"anyOf": [
{
"$ref": "#/components/schemas/UiAuthRecipeDto"
},
{
"type": "null"
}
]
}
},
"required": [
"name",
"description",
"authType",
"scope"
],
"type": "object"
}
DELETE /api/v1/workspaces/{workspaceId}/projects/{projectId}/test-personas/{personaId}¶
Delete test persona
Description
Deletes a persona. Test plans that referenced it fall back to the project's remaining personas on the next generation or run.
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 test persona
Description
Updates a persona's name, role, or the place its credentials come from (an environment variable, or a script your CLI runs). Fields omitted from the body are left unchanged. Dezycro stores no credential.
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",
"credentialSource": "ENV",
"description": "string",
"envVar": "string",
"id": "edd0fcaf-58d8-4497-8ad9-2d01bbefa23f",
"name": "string",
"projectId": "15f83312-89a4-4c8c-b2b4-9bcbbdce02a8",
"scope": "TENANT",
"script": "string",
"uiAuth": null
}
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"
},
"credentialSource": {
"enum": [
"ENV",
"SCRIPT"
],
"type": [
"string",
"null"
]
},
"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"
]
},
"uiAuth": {
"anyOf": [
{
"$ref": "#/components/schemas/UiAuthRecipeDto"
},
{
"type": "null"
}
]
}
},
"required": [
"name",
"description",
"authType",
"scope"
],
"type": "object"
}
Responses
{
"authType": "BEARER",
"credentialSource": "ENV",
"description": "string",
"envVar": "string",
"id": "b33d2e22-db74-44a6-aea7-cb9193b52914",
"name": "string",
"projectId": "ec1000d5-92df-4939-abd7-d89f81f7b558",
"scope": "TENANT",
"script": "string",
"uiAuth": null
}
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"
},
"credentialSource": {
"enum": [
"ENV",
"SCRIPT"
],
"type": [
"string",
"null"
]
},
"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"
]
},
"uiAuth": {
"anyOf": [
{
"$ref": "#/components/schemas/UiAuthRecipeDto"
},
{
"type": "null"
}
]
}
},
"required": [
"name",
"description",
"authType",
"scope"
],
"type": "object"
}
GET /api/v1/workspaces/{workspaceId}/projects/{projectId}/test-runs¶
List test runs
Description
Returns the project's verifier and regression test runs, newest first, paginated. Each run includes its status and pass/fail counts; fetch per-test detail with the run's results endpoint.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
page |
query | integer | 1 | No | Page number (1-indexed) |
projectId |
path | string | No | Project ID | |
size |
query | integer | 10 | No | Number of items per page (1-100, default 10) |
sort |
query | string | null | Yes | Sort order, ` |
|
startedAfter |
query | string | null | Yes | Only runs started after this ISO-8601 instant | |
startedBefore |
query | string | null | Yes | Only runs started before this ISO-8601 instant | |
status |
query | string | null | Yes | Filter by run status (e.g. RUNNING, COMPLETED, FAILED) | |
workspaceId |
path | string | No | Workspace ID |
Responses
{
"data": [
{
"branch": "string",
"commitId": "string",
"completedAt": "2022-03-10T16:15:50Z",
"durationMs": 228,
"failed": 31,
"imageTag": "string",
"passed": 44,
"projectId": "2b01f466-393b-4f54-b72d-74be55c985ac",
"runId": "ff8bba02-92a3-41c7-8f55-39c10652d96f",
"skipped": 47,
"startedAt": "2022-03-10T16:15:50Z",
"status": "string",
"tenantId": "a90549ae-6051-43a4-8aff-7ff532b04800",
"totalTests": 172
}
],
"page": 198,
"size": 155,
"totalElements": 177
}
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¶
List test results for a run
Description
Returns the per-test-case results of one run, paginated: verdict, duration, and failure details for each executed test case.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
page |
query | integer | 1 | No | Page number (1-indexed) |
projectId |
path | string | No | Project ID | |
runId |
path | string | No | Test run ID | |
size |
query | integer | 10 | No | Number of items per page (1-100, default 10) |
status |
query | string | null | Yes | Filter by result status (e.g. PASSED, FAILED, SKIPPED) | |
testCaseName |
query | string | null | Yes | Filter by test case name (partial match) | |
workspaceId |
path | string | No | Workspace ID |
Responses
{
"data": [
{
"durationMs": 54,
"endedAt": "2022-03-10T16:15:50Z",
"errorMessage": "string",
"journeyRef": "string",
"logUrl": "string",
"runId": "8ea982a6-a4ed-40c0-8b3c-ff2cc15216fa",
"startedAt": "2022-03-10T16:15:50Z",
"status": "string",
"stepTraces": [
{
"durationMs": 191,
"error": "string",
"expectedStatus": 8,
"method": "string",
"passed": true,
"path": "string",
"requestBody": "string",
"requestHeaders": {},
"responseBody": "string",
"responseHeaders": {},
"statusCode": 36,
"stepDescription": "string",
"testCaseStepIndex": 232,
"timestamp": "string"
}
],
"testCaseId": "ec208727-ac87-4c00-ae83-71e3da0b546e",
"testName": "string"
}
],
"page": 179,
"size": 31,
"totalElements": 91
}
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¶
Get test case log download URL
Description
Returns a short-lived signed URL for downloading the full execution log of one test case in a run. Fetch the URL promptly — it expires.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
projectId |
path | string | No | Project ID | |
runId |
path | string | No | Test run ID | |
testCaseId |
path | string | No | Test case ID | |
workspaceId |
path | string | No | Workspace ID |
Responses
GET /api/v1/workspaces/{workspaceId}/projects/{projectId}/validation-cases¶
List validation cases
Description
Returns the AI-generated validation (test) cases for a project, paginated. Filter by feature to see the cases derived from one feature's requirements.
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 | Project ID | |
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 | Workspace ID |
Responses
{
"data": [
{
"assertionsFromPrd": [
{
"description": "string",
"graphCaptured": true,
"prdQuote": "string",
"type": "string"
}
],
"coverageFlags": [
"string"
],
"dataExpectations": [
"string"
],
"description": "string",
"edgeCasesFromPrd": [
"string"
],
"enrichmentModelVersion": "string",
"featureId": "900775b8-4c6a-4d61-9d31-d136c9f462e7",
"generatedAt": "2022-03-10T16:15:50Z",
"globalConstraints": [
"string"
],
"id": "246966c7-3a0f-495a-bd2c-b93d20d13fcf",
"name": "string",
"outcomeType": "string",
"pathClass": "string",
"postConditions": [
"string"
],
"preConditions": [
"string"
],
"priority": "string",
"projectId": "aa684c30-86a1-4776-bfcd-4ba6ef9881bc",
"riskIndicator": "string",
"roleRequirement": "string",
"sectionRefs": [
{
"prdQuote": "string",
"sectionHeading": "string",
"sectionIndex": 20
}
],
"sourceContentHash": "string",
"sourceDecisionRef": "string",
"sourceJourneyId": "string",
"sourcePrdId": "7fcd4977-f1aa-4f5a-873d-c01a85b2ce66",
"status": "string",
"stepsFromGraph": [
"string"
],
"type": "string",
"workspaceId": "05d8de47-47d9-491c-b766-4bdff2ed3d99"
}
],
"page": 134,
"size": 1,
"totalElements": 101
}
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
Description
Starts asynchronous generation of validation cases from a feature's requirements. Returns a workflowId immediately — poll the status endpoint to track progress, then list validation cases to see the results. The feature should have completed PRD/TRD documents first.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
projectId |
path | string | No | Project ID | |
workspaceId |
path | string | No | Workspace ID |
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
Description
Returns the progress of a generation started via the generate endpoint: current phase and whether it is still running, completed, or failed.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
projectId |
path | string | No | Project ID | |
workflowId |
path | string | No | Workflow ID returned by the generate endpoint | |
workspaceId |
path | string | No | Workspace ID |
Responses
{
"enrichedCases": 51,
"message": "string",
"persistedCases": 0,
"phase": "string",
"status": "string",
"totalSkeletons": 230
}
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"
}
GET /api/v1/workspaces/{workspaceId}/ui-credential-requests¶
List pending UI credential requests
Description
Returns the open just-in-time credential requests of the UI runs and crawls filed under the feature or app that the caller started (optionally one run). Each entry asks for ONE login field of one persona: its key and label, where its value comes from (an environment variable or a command your CLI resolves), the run and the app it targets, and the ephemeral public key to encrypt against. Requests of runs and crawls someone else started are never listed.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
featureId |
query | string | No | Feature or app whose UI runs and crawls to list requests of | |
runId |
query | string | null | Yes | Only the requests of this run (its workflow id) | |
workspaceId |
path | string | No | Workspace ID |
Responses
[
{
"appUrl": "string",
"expiresAt": "2022-03-10T16:15:50Z",
"fieldKey": "string",
"fieldLabel": "string",
"personaId": "string",
"personaName": "string",
"publicKey": "string",
"registeredAppOrigin": "string",
"requestId": "1c39a943-39e8-4fc6-9c43-9391f316822c",
"runId": "string",
"source": null
}
]
POST /api/v1/workspaces/{workspaceId}/ui-credential-requests/{requestId}¶
Deliver a credential for a pending request
Description
Body {"jwe": "
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
requestId |
path | string | No | Credential request ID | |
workspaceId |
path | string | No | Workspace ID |
Request body
Responses
DELETE /api/v1/workspaces/{workspaceId}/ui-serve-sessions/{featureId}¶
End this machine's serve session
Description
Deletes the caller's session of the feature, and the override when it is the caller's. 404 when the caller has none.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
featureId |
path | string | No | Feature the session serves | |
workspaceId |
path | string | No | Workspace ID |
Responses
GET /api/v1/workspaces/{workspaceId}/ui-serve-sessions/{featureId}¶
The feature's live override and the caller's own session
Description
override drives the target badge (null: runs go to the project's test app); mine is the caller's own session (credential-only or the override), null when none.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
featureId |
path | string | No | Feature whose sessions to read | |
workspaceId |
path | string | No | Workspace ID |
Responses
PUT /api/v1/workspaces/{workspaceId}/ui-serve-sessions/{featureId}¶
Announce or refresh this machine's serve session
Description
Upserts the caller's serve session of the feature for 30 s (the client heartbeats every 10 s). With appUrl it is the feature's override: browser runs started while it lives go to appUrl. 400 APP_URL_INVALID when appUrl is not an absolute http(s) URL, or carries userinfo, a query or a fragment; 400 APP_URL_UNREACHABLE when its host is one Dezycro's browsers cannot be sent to; 404 FEATURE_NOT_IN_WORKSPACE; 409 FEATURE_ALREADY_SERVED when another user's override is live (only with appUrl; the body names who and from where). A credential-only session (no appUrl) is never refused for another user's. Each refusal's body is {problem, message}.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
featureId |
path | string | No | Feature the session serves | |
workspaceId |
path | string | No | Workspace ID |
Request body
Responses
{
"appUrl": "string",
"expiresAt": "2022-03-10T16:15:50Z",
"featureId": "79cf8d4b-026e-4231-88d7-ae5cd8c95479",
"machine": "string",
"servedBy": "string",
"startedAt": "2022-03-10T16:15:50Z"
}
Schema of the response body
{
"properties": {
"appUrl": {
"type": [
"string",
"null"
]
},
"expiresAt": {
"examples": [
"2022-03-10T16:15:50Z"
],
"format": "date-time",
"type": "string"
},
"featureId": {
"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"
},
"machine": {
"type": "string"
},
"servedBy": {
"type": "string"
},
"startedAt": {
"examples": [
"2022-03-10T16:15:50Z"
],
"format": "date-time",
"type": "string"
}
},
"required": [
"featureId",
"servedBy",
"machine",
"startedAt",
"expiresAt"
],
"type": "object"
}
{
"appUrl": "string",
"machine": "string",
"message": "string",
"problem": "APP_URL_INVALID",
"servedBy": "string",
"startedAt": "2022-03-10T16:15:50Z"
}
Schema of the response body
{
"properties": {
"appUrl": {
"type": [
"string",
"null"
]
},
"machine": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"problem": {
"enum": [
"APP_URL_INVALID",
"APP_URL_UNREACHABLE",
"FEATURE_NOT_IN_WORKSPACE",
"FEATURE_ALREADY_SERVED"
],
"type": "string"
},
"servedBy": {
"type": [
"string",
"null"
]
},
"startedAt": {
"examples": [
"2022-03-10T16:15:50Z"
],
"format": "date-time",
"type": [
"string",
"null"
]
}
},
"required": [
"problem",
"message"
],
"type": "object"
}
{
"appUrl": "string",
"machine": "string",
"message": "string",
"problem": "APP_URL_INVALID",
"servedBy": "string",
"startedAt": "2022-03-10T16:15:50Z"
}
Schema of the response body
{
"properties": {
"appUrl": {
"type": [
"string",
"null"
]
},
"machine": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"problem": {
"enum": [
"APP_URL_INVALID",
"APP_URL_UNREACHABLE",
"FEATURE_NOT_IN_WORKSPACE",
"FEATURE_ALREADY_SERVED"
],
"type": "string"
},
"servedBy": {
"type": [
"string",
"null"
]
},
"startedAt": {
"examples": [
"2022-03-10T16:15:50Z"
],
"format": "date-time",
"type": [
"string",
"null"
]
}
},
"required": [
"problem",
"message"
],
"type": "object"
}
{
"appUrl": "string",
"machine": "string",
"message": "string",
"problem": "APP_URL_INVALID",
"servedBy": "string",
"startedAt": "2022-03-10T16:15:50Z"
}
Schema of the response body
{
"properties": {
"appUrl": {
"type": [
"string",
"null"
]
},
"machine": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"problem": {
"enum": [
"APP_URL_INVALID",
"APP_URL_UNREACHABLE",
"FEATURE_NOT_IN_WORKSPACE",
"FEATURE_ALREADY_SERVED"
],
"type": "string"
},
"servedBy": {
"type": [
"string",
"null"
]
},
"startedAt": {
"examples": [
"2022-03-10T16:15:50Z"
],
"format": "date-time",
"type": [
"string",
"null"
]
}
},
"required": [
"problem",
"message"
],
"type": "object"
}
GET /api/v1/workspaces/{workspaceId}/ui-verify/authoring-runs¶
List the feature's authoring runs
Description
Newest first: each with its status, how many cells are in each state, its tokens and where its whole batch stands (batchStatus). With batchId, only the runs of that batch, in chunk order.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
batchId |
query | string | null | Yes | Only the runs of this batch | |
featureId |
query | string | No | Feature whose runs to list | |
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 | Workspace ID |
Responses
{
"data": [
{
"batchId": "5ceeed13-60bf-4fdf-a613-7a037eeda1fc",
"batchStatus": "RUNNING",
"cells": {
"authored": 240,
"awaitingCredentials": 186,
"awaitingProducer": 223,
"awaitingTwin": 76,
"derived": 80,
"failed": 184,
"imported": 290,
"notImported": 89,
"pending": 153,
"running": 245,
"stopped": 69,
"total": 105
},
"chunkCount": 175,
"chunkIndex": 100,
"createdAt": "2022-03-10T16:15:50Z",
"endedAt": "2022-03-10T16:15:50Z",
"id": "be9a37de-a881-47f4-a4a3-33512d8f805b",
"servedAppUrl": "string",
"servedBy": "string",
"servedMachine": "string",
"status": "QUEUED",
"tokens": {
"intake": {
"calls": 53,
"completionTokens": 168,
"promptTokens": 11
},
"proposals": null,
"repairs": null,
"total": null
}
}
],
"page": 293,
"size": 120,
"totalElements": 233
}
Schema of the response body
{
"description": "Paginated list response wrapper",
"properties": {
"data": {
"items": {
"$ref": "#/components/schemas/UiAuthoringRunSummaryDto"
},
"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}/ui-verify/authoring-runs¶
Author the feature's UI tests
Description
Starts an authoring run over the feature's journeys and personas (inferred cells), or only previews it with dryRun. appId may be left out when the project has exactly one TEST app. 202 with the run and its workflow (a dry run included: nothing is started, authoringRunId is null); each login field's source (never a value) is listed in credentialSources, so the customer's client can be made ready. 409 while a run of the feature is in progress. 422 with the closed problem when the request is not one (APP_AMBIGUOUS lists the apps to choose between).
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
featureId |
query | string | No | Feature whose journeys to author | |
workspaceId |
path | string | No | Workspace ID |
Request body
{
"appId": "2c77ba43-e907-4ef7-9c92-122d2ecc829f",
"cells": [
{
"expectation": "ALLOWED",
"journeyId": "string",
"personaId": "string"
}
],
"dryRun": true,
"projectId": "4956b2ea-1620-4f9b-9d32-e800b4d7d443"
}
Schema of the request body
{
"properties": {
"appId": {
"format": "uuid",
"type": "string"
},
"cells": {
"items": {
"$ref": "#/components/schemas/UiAuthoringCellRequestDto"
},
"type": "array"
},
"dryRun": {
"type": "boolean"
},
"projectId": {
"format": "uuid",
"type": "string"
}
},
"required": [
"dryRun",
"projectId"
],
"type": "object"
}
Responses
{
"apps": [
{
"appId": "da59ae07-7275-462e-8e3e-d24b9d6d3200",
"appUrl": "string",
"name": "string"
}
],
"authoringRunId": "017e366f-22c4-4a04-b9fb-3803ab6b467d",
"cells": [
{
"evidence": "string",
"expectation": "ALLOWED",
"journeyId": "string",
"personaId": "string",
"reason": "LOGIN_UNSUPPORTED",
"source": "JOURNEY_TEXT"
}
],
"chunks": 219,
"credentialSources": [
{
"configured": true,
"envVar": "string",
"fieldKey": "string",
"label": "string",
"personaId": "string",
"source": "ENV"
}
],
"problem": "APP_NOT_FOUND",
"unsupportedLogins": [
{
"loginKind": "SUPPORTED",
"personaId": "string"
}
],
"workflowId": "string"
}
Schema of the response body
{
"properties": {
"apps": {
"items": {
"$ref": "#/components/schemas/UiAuthoringAppChoiceDto"
},
"type": [
"array",
"null"
]
},
"authoringRunId": {
"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"
]
},
"cells": {
"items": {
"$ref": "#/components/schemas/UiAuthoringInferredCellDto"
},
"type": [
"array",
"null"
]
},
"chunks": {
"format": "int32",
"type": [
"integer",
"null"
]
},
"credentialSources": {
"items": {
"$ref": "#/components/schemas/UiAuthoringCredentialSourceDto"
},
"type": [
"array",
"null"
]
},
"problem": {
"enum": [
"APP_NOT_FOUND",
"APP_NOT_TEST",
"APP_URL_REFUSED",
"NO_CELLS",
"TOO_MANY_CELLS",
"DUPLICATE_CELL",
"JOURNEY_UNKNOWN",
"PERSONA_UNKNOWN",
"PERSONA_NO_BROWSER_LOGIN",
"DENIED_WITHOUT_ALLOWED",
"NOTHING_TO_TEST",
"NO_LOGIN_PERSONA",
"APP_AMBIGUOUS"
],
"type": [
"string",
"null"
]
},
"unsupportedLogins": {
"items": {
"$ref": "#/components/schemas/UiAuthoringUnsupportedLoginDto"
},
"type": [
"array",
"null"
]
},
"workflowId": {
"type": [
"string",
"null"
]
}
},
"type": "object"
}
{
"apps": [
{
"appId": "e0925356-0964-4d17-8b7d-2640c007ae66",
"appUrl": "string",
"name": "string"
}
],
"authoringRunId": "558791e0-3029-4d77-b944-8c3865519c08",
"cells": [
{
"evidence": "string",
"expectation": "ALLOWED",
"journeyId": "string",
"personaId": "string",
"reason": "LOGIN_UNSUPPORTED",
"source": "JOURNEY_TEXT"
}
],
"chunks": 26,
"credentialSources": [
{
"configured": true,
"envVar": "string",
"fieldKey": "string",
"label": "string",
"personaId": "string",
"source": "ENV"
}
],
"problem": "APP_NOT_FOUND",
"unsupportedLogins": [
{
"loginKind": "SUPPORTED",
"personaId": "string"
}
],
"workflowId": "string"
}
Schema of the response body
{
"properties": {
"apps": {
"items": {
"$ref": "#/components/schemas/UiAuthoringAppChoiceDto"
},
"type": [
"array",
"null"
]
},
"authoringRunId": {
"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"
]
},
"cells": {
"items": {
"$ref": "#/components/schemas/UiAuthoringInferredCellDto"
},
"type": [
"array",
"null"
]
},
"chunks": {
"format": "int32",
"type": [
"integer",
"null"
]
},
"credentialSources": {
"items": {
"$ref": "#/components/schemas/UiAuthoringCredentialSourceDto"
},
"type": [
"array",
"null"
]
},
"problem": {
"enum": [
"APP_NOT_FOUND",
"APP_NOT_TEST",
"APP_URL_REFUSED",
"NO_CELLS",
"TOO_MANY_CELLS",
"DUPLICATE_CELL",
"JOURNEY_UNKNOWN",
"PERSONA_UNKNOWN",
"PERSONA_NO_BROWSER_LOGIN",
"DENIED_WITHOUT_ALLOWED",
"NOTHING_TO_TEST",
"NO_LOGIN_PERSONA",
"APP_AMBIGUOUS"
],
"type": [
"string",
"null"
]
},
"unsupportedLogins": {
"items": {
"$ref": "#/components/schemas/UiAuthoringUnsupportedLoginDto"
},
"type": [
"array",
"null"
]
},
"workflowId": {
"type": [
"string",
"null"
]
}
},
"type": "object"
}
GET /api/v1/workspaces/{workspaceId}/ui-verify/authoring-runs/{authoringRunId}¶
Get one authoring run
Description
The run's journeys with their intake and cells (state, closed stop code, imported run and verdict), what each journey and the whole run cost in tokens, the per-journey token budget and where its whole batch stands (batchStatus).
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
authoringRunId |
path | string | No | Authoring run ID | |
featureId |
query | string | No | Feature the run belongs to | |
workspaceId |
path | string | No | Workspace ID |
Responses
{
"appId": "355089c8-e53d-4ccc-b744-893db739e8cc",
"batchId": "d4ca2a38-26a1-42fd-b2b5-eacbd7ed0ab3",
"batchStatus": "RUNNING",
"chunkCount": 266,
"chunkIndex": 149,
"createdAt": "2022-03-10T16:15:50Z",
"endedAt": "2022-03-10T16:15:50Z",
"failure": "PREPARE_FAILED",
"id": "ca24b4b4-196e-4cd1-9033-dab06e2660b9",
"journeys": [
{
"cells": [
{
"causeJobId": "971bb473-d08a-405b-86bb-e933ecaa399b",
"causeJudgement": "JOURNEY",
"credentialSource": "ENV",
"expectation": "ALLOWED",
"fixOwner": "APP_DECLARATIONS",
"jobId": "e508ef69-10af-4fc2-927c-e583bd8678af",
"judgement": "JOURNEY",
"kind": "INTAKE",
"personaId": "string",
"planId": "string",
"readsFrom": [
{
"jobId": "e5bc97c6-e4bf-42e3-9b22-354f1ce93809",
"journeyId": "string",
"journeyTitle": "string",
"planId": "string"
}
],
"repairs": 272,
"runRowId": "e75051c9-55c1-46f0-a698-7d923ed47463",
"state": "PENDING",
"stopCode": "LEDGER_INVALID",
"stopDetail": "string",
"stopKind": "UNDECLARED_WRITE",
"stopStep": null,
"tokens": null,
"undeclaredRequests": [
{
"method": "POST",
"path": "string"
}
],
"verdictKind": "PASS",
"verdictReason": "EVIDENCE_INTEGRITY"
}
],
"intake": null,
"journeyId": "string",
"title": "string",
"tokens": {
"intake": {
"calls": 127,
"completionTokens": 165,
"promptTokens": 173
},
"proposals": null,
"repairs": null,
"total": null
}
}
],
"servedAppUrl": "string",
"servedBy": "string",
"servedMachine": "string",
"status": "QUEUED",
"tokenBudgetPerJourney": 228,
"tokens": null
}
Schema of the response body
{
"properties": {
"appId": {
"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"
},
"batchId": {
"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"
]
},
"batchStatus": {
"enum": [
"RUNNING",
"DONE",
"FAILED"
],
"type": "string"
},
"chunkCount": {
"format": "int32",
"type": [
"integer",
"null"
]
},
"chunkIndex": {
"format": "int32",
"type": [
"integer",
"null"
]
},
"createdAt": {
"examples": [
"2022-03-10T16:15:50Z"
],
"format": "date-time",
"type": "string"
},
"endedAt": {
"examples": [
"2022-03-10T16:15:50Z"
],
"format": "date-time",
"type": [
"string",
"null"
]
},
"failure": {
"enum": [
"PREPARE_FAILED",
"WORKFLOW_NOT_STARTED",
"LEDGER_INVALID",
"FLAG_OFF",
"APP_NOT_TEST"
],
"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"
},
"journeys": {
"items": {
"$ref": "#/components/schemas/UiAuthoringJourneyDto"
},
"type": "array"
},
"servedAppUrl": {
"type": [
"string",
"null"
]
},
"servedBy": {
"type": [
"string",
"null"
]
},
"servedMachine": {
"type": [
"string",
"null"
]
},
"status": {
"enum": [
"QUEUED",
"RUNNING",
"DONE",
"FAILED"
],
"type": "string"
},
"tokenBudgetPerJourney": {
"format": "int32",
"type": "integer"
},
"tokens": {
"$ref": "#/components/schemas/UiAuthoringTokensDto"
}
},
"required": [
"id",
"status",
"appId",
"createdAt",
"tokens",
"tokenBudgetPerJourney",
"journeys",
"batchStatus"
],
"type": "object"
}
GET /api/v1/workspaces/{workspaceId}/ui-verify/crawls¶
Get the newest crawl of the feature's test app
Description
The newest crawl of the feature's test app, of any status. 200 with the closed problem (NO_TEST_APP, NO_CRAWL) and no crawl when there is none to report.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
featureId |
query | string | No | Feature whose test app to read | |
projectId |
query | string | null | Yes | Project of the feature; defaults to the feature's own | |
workspaceId |
path | string | No | Workspace ID |
Responses
Schema of the response body
{
"properties": {
"app": {
"anyOf": [
{
"$ref": "#/components/schemas/UiCrawlAppDto"
},
{
"type": "null"
}
]
},
"crawl": {
"anyOf": [
{
"$ref": "#/components/schemas/UiCrawlRunDto"
},
{
"type": "null"
}
]
},
"problem": {
"enum": [
"NO_TEST_APP",
"NO_CRAWL"
],
"type": [
"string",
"null"
]
}
},
"type": "object"
}
POST /api/v1/workspaces/{workspaceId}/ui-verify/crawls¶
Crawl the feature's test app
Description
Starts the background crawl of the feature's test app (the app of the feature's newest crawl, else of its newest authoring run, else the project's newest TEST app), or only previews it with dryRun: the app, its budgets, how many feature crawls follow and what the app has had so far. The crawl is anonymous: the persona is the label its map is filed under, and must be one of the project's personas (or default). Name one persona with personaRef (202 with crawl and workflowId; 409 while the app is already crawling for it), or several with personaRefs (1 to 20, distinct): each starts its own crawl, and a persona already crawling, refused by the plan's concurrent-crawl limit or failing does not stop the others; 202 with crawls, one entry per persona (STARTED, ALREADY_RUNNING, SKIPPED or FAILED, with the reason) and no 409. A dry run of several previews the cost of all of them (preview.personaRefs). A row is SKIPPED, with its reason, when the start was refused. 422 with the closed problem when the project has no test app.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
featureId |
query | string | No | Feature the crawl is for | |
workspaceId |
path | string | No | Workspace ID |
Request body
{
"credentialDelivery": true,
"dryRun": true,
"personaRef": "string",
"personaRefs": [
"string"
],
"projectId": "89ae666f-bbea-4c8c-bb47-872d7199e42a"
}
Schema of the request body
Responses
{
"app": null,
"crawl": null,
"crawls": [
{
"outcome": "STARTED",
"personaRef": "string",
"reason": "string",
"run": null,
"workflowId": "string"
}
],
"dryRun": true,
"personaRef": "string",
"preview": null,
"problem": "NO_TEST_APP",
"workflowId": "string"
}
Schema of the response body
{
"properties": {
"app": {
"anyOf": [
{
"$ref": "#/components/schemas/UiCrawlAppDto"
},
{
"type": "null"
}
]
},
"crawl": {
"anyOf": [
{
"$ref": "#/components/schemas/UiCrawlRunDto"
},
{
"type": "null"
}
]
},
"crawls": {
"items": {
"$ref": "#/components/schemas/UiCrawlPersonaStartDto"
},
"type": [
"array",
"null"
]
},
"dryRun": {
"type": "boolean"
},
"personaRef": {
"type": [
"string",
"null"
]
},
"preview": {
"anyOf": [
{
"$ref": "#/components/schemas/UiCrawlPreviewDto"
},
{
"type": "null"
}
]
},
"problem": {
"enum": [
"NO_TEST_APP",
"NO_CRAWL"
],
"type": [
"string",
"null"
]
},
"workflowId": {
"type": [
"string",
"null"
]
}
},
"required": [
"dryRun"
],
"type": "object"
}
{
"app": null,
"crawl": null,
"crawls": [
{
"outcome": "STARTED",
"personaRef": "string",
"reason": "string",
"run": null,
"workflowId": "string"
}
],
"dryRun": true,
"personaRef": "string",
"preview": null,
"problem": "NO_TEST_APP",
"workflowId": "string"
}
Schema of the response body
{
"properties": {
"app": {
"anyOf": [
{
"$ref": "#/components/schemas/UiCrawlAppDto"
},
{
"type": "null"
}
]
},
"crawl": {
"anyOf": [
{
"$ref": "#/components/schemas/UiCrawlRunDto"
},
{
"type": "null"
}
]
},
"crawls": {
"items": {
"$ref": "#/components/schemas/UiCrawlPersonaStartDto"
},
"type": [
"array",
"null"
]
},
"dryRun": {
"type": "boolean"
},
"personaRef": {
"type": [
"string",
"null"
]
},
"preview": {
"anyOf": [
{
"$ref": "#/components/schemas/UiCrawlPreviewDto"
},
{
"type": "null"
}
]
},
"problem": {
"enum": [
"NO_TEST_APP",
"NO_CRAWL"
],
"type": [
"string",
"null"
]
},
"workflowId": {
"type": [
"string",
"null"
]
}
},
"required": [
"dryRun"
],
"type": "object"
}
GET /api/v1/workspaces/{workspaceId}/ui-verify/crawls/{crawlRunId}¶
Get one crawl
Description
One crawl of an app of the feature's project, with its status, counts, progress and why it stopped. 404 for a crawl that is not one of the project's.
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
crawlRunId |
path | string | No | Crawl run ID | |
featureId |
query | string | No | Feature the crawl was asked for | |
projectId |
query | string | null | Yes | Project of the feature; defaults to the feature's own | |
workspaceId |
path | string | No | Workspace ID |
Responses
Schema of the response body
{
"properties": {
"app": {
"anyOf": [
{
"$ref": "#/components/schemas/UiCrawlAppDto"
},
{
"type": "null"
}
]
},
"crawl": {
"anyOf": [
{
"$ref": "#/components/schemas/UiCrawlRunDto"
},
{
"type": "null"
}
]
},
"problem": {
"enum": [
"NO_TEST_APP",
"NO_CRAWL"
],
"type": [
"string",
"null"
]
}
},
"type": "object"
}
GET /api/v1/workspaces/{workspaceId}/ui-verify/plan-sets¶
Fetch a feature's current plan set
Description
Returns a zip with the layout the Dezycro UI runner reads from a plans bundle: plan-set.json (the head, the personas by reference, the features and the cells with each plan's id and hash), effect-floors.json (the app's per-control effect floors, outside every plan's bytes), and under features/
Input parameters
| Parameter | In | Type | Default | Nullable | Description |
|---|---|---|---|---|---|
featureId |
query | string | No | Feature whose current plan set to fetch | |
workspaceId |
path | string | No | Workspace ID |
Responses
Schemas¶
ActivityItemCountDto¶
| Name | Type | Description |
|---|---|---|
count |
string | What a finished operation counted |
value |
integer(int32) | How many |
ActivityItemDto¶
| Name | Type | Description |
|---|---|---|
counts |
Array<ActivityItemCountDto> | What a finished operation counted, in a fixed order; only the counts the emitter reported |
dismissible |
boolean | Whether the caller may dismiss this item: only the caller's own items. Always true in scope SELF |
endedAt |
string(date-time) | null | When the operation ended, if it has |
failureCode |
string | null | Why a failed operation failed: an enum constant's name for the client to humanize |
featureId |
string(uuid) | null | Feature the operation belongs to |
id |
string(uuid) | Item ID; pass it to dismiss |
kind |
string | What the operation is |
ownerName |
string | null | Display name of that user, never an email; null when it could not be resolved (the client shows a generic label) |
ownerUserId |
string(uuid) | null | The user who started the current attempt (a user who only joined it is not it); null when unknown |
progress |
||
projectId |
string(uuid) | null | Project the operation belongs to |
projectName |
string | null | Name of that project |
startedAt |
string(date-time) | When the operation started |
state |
string | Where the operation stands. STALE: still running by the record but quiet for longer than the kind allows, so no end was seen |
subjectId |
string(uuid) | The operation's subject, per kind: the feature for most kinds, the document for conflict detection and document ingestion, the skill for a skill import, the import job for a knowledge import |
subjectName |
string | null | Display name of the subject (feature, document, skill or import job, per kind) as given by the emitter; null when it gave none |
updatedAt |
string(date-time) | When the operation last changed |
workspaceId |
string(uuid) | Workspace the operation was started in |
ActivityItemProgressDto¶
| Name | Type | Description |
|---|---|---|
done |
integer(int32) | Units done |
total |
integer(int32) | Units in all |
Assertion¶
| Name | Type | Description |
|---|---|---|
description |
string | |
graphCaptured |
boolean | |
prdQuote |
string | |
type |
string |
FulfillUiCredentialRequestDto¶
| Name | Type | Description |
|---|---|---|
jwe |
string |
GenerationTriggerDto¶
| Name | Type | Description |
|---|---|---|
workflowId |
string |
PaginatedResponseActivityItemDto¶
| Name | Type | Description |
|---|---|---|
data |
Array<ActivityItemDto> | |
page |
integer(int32) | |
size |
integer(int32) | |
totalElements |
integer(int64) |
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) |
PaginatedResponseUiAuthoringRunSummaryDto¶
| Name | Type | Description |
|---|---|---|
data |
Array<UiAuthoringRunSummaryDto> | |
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 |
PutUiServeSessionRequestDto¶
| Name | Type | Description |
|---|---|---|
appUrl |
string | null | |
clientVersion |
string | |
machine |
string |
SectionRef¶
| Name | Type | Description |
|---|---|---|
prdQuote |
string | null | |
sectionHeading |
string | |
sectionIndex |
integer(int32) |
StartUiCrawlPublicRequestDto¶
| Name | Type | Description |
|---|---|---|
credentialDelivery |
boolean | |
dryRun |
boolean | |
personaRef |
string | |
personaRefs |
Array<string> | |
projectId |
string(uuid) |
StartUiVerifyAuthoringRequestDto¶
| Name | Type | Description |
|---|---|---|
appId |
string(uuid) | |
cells |
Array<UiAuthoringCellRequestDto> | |
dryRun |
boolean | |
projectId |
string(uuid) |
StartUiVerifyAuthoringResponseDto¶
| Name | Type | Description |
|---|---|---|
apps |
Array<UiAuthoringAppChoiceDto> | |
authoringRunId |
string(uuid) | null | |
cells |
Array<UiAuthoringInferredCellDto> | |
chunks |
integer(int32) | null | |
credentialSources |
Array<UiAuthoringCredentialSourceDto> | |
problem |
string | null | |
unsupportedLogins |
Array<UiAuthoringUnsupportedLoginDto> | |
workflowId |
string | null |
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 | |
credentialSource |
string | null | |
description |
string | |
envVar |
string | null | |
id |
string(uuid) | null | |
name |
string | |
projectId |
string(uuid) | null | |
scope |
string | |
script |
string | null | |
uiAuth |
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) |
UiAuthFieldDto¶
| Name | Type | Description |
|---|---|---|
command |
string | null | |
envVar |
string | null | |
key |
string | |
label |
string | |
source |
string | |
value |
string | null |
UiAuthoringAppChoiceDto¶
| Name | Type | Description |
|---|---|---|
appId |
string(uuid) | |
appUrl |
string | |
name |
string |
UiAuthoringCellCountsDto¶
| Name | Type | Description |
|---|---|---|
authored |
integer(int32) | |
awaitingCredentials |
integer(int32) | |
awaitingProducer |
integer(int32) | |
awaitingTwin |
integer(int32) | |
derived |
integer(int32) | |
failed |
integer(int32) | |
imported |
integer(int32) | |
notImported |
integer(int32) | |
pending |
integer(int32) | |
running |
integer(int32) | |
stopped |
integer(int32) | |
total |
integer(int32) |
UiAuthoringCellDto¶
| Name | Type | Description |
|---|---|---|
causeJobId |
string(uuid) | null | |
causeJudgement |
string | null | |
credentialSource |
string | null | |
expectation |
string | |
fixOwner |
string | null | |
jobId |
string(uuid) | |
judgement |
string | null | |
kind |
string | |
personaId |
string | |
planId |
string | null | |
readsFrom |
Array<UiAuthoringProducerRefDto> | |
repairs |
integer(int32) | |
runRowId |
string(uuid) | null | |
state |
string | |
stopCode |
string | null | |
stopDetail |
string | null | |
stopKind |
string | null | |
stopStep |
||
tokens |
||
undeclaredRequests |
Array<UiAuthoringRequestDto> | |
verdictKind |
string | null | |
verdictReason |
string | null |
UiAuthoringCellRequestDto¶
| Name | Type | Description |
|---|---|---|
expectation |
string | |
journeyId |
string | |
personaId |
string |
UiAuthoringCredentialSourceDto¶
| Name | Type | Description |
|---|---|---|
configured |
boolean | |
envVar |
string | null | |
fieldKey |
string | |
label |
string | |
personaId |
string | |
source |
string |
UiAuthoringInferredCellDto¶
| Name | Type | Description |
|---|---|---|
evidence |
string | null | |
expectation |
string | |
journeyId |
string | |
personaId |
string | |
reason |
string | |
source |
string | null |
UiAuthoringIntakeDto¶
| Name | Type | Description |
|---|---|---|
jobId |
string(uuid) | |
repairs |
integer(int32) | |
state |
string | |
stopCode |
string | null | |
stopDetail |
string | null | |
tokens |
UiAuthoringTokensDto |
UiAuthoringJourneyDto¶
| Name | Type | Description |
|---|---|---|
cells |
Array<UiAuthoringCellDto> | |
intake |
||
journeyId |
string | |
title |
string | |
tokens |
UiAuthoringTokensDto |
UiAuthoringProducerRefDto¶
| Name | Type | Description |
|---|---|---|
jobId |
string(uuid) | |
journeyId |
string | |
journeyTitle |
string | |
planId |
string |
UiAuthoringRequestDto¶
| Name | Type | Description |
|---|---|---|
method |
string | |
path |
string |
UiAuthoringRunDto¶
| Name | Type | Description |
|---|---|---|
appId |
string(uuid) | |
batchId |
string(uuid) | null | |
batchStatus |
string | |
chunkCount |
integer(int32) | null | |
chunkIndex |
integer(int32) | null | |
createdAt |
string(date-time) | |
endedAt |
string(date-time) | null | |
failure |
string | null | |
id |
string(uuid) | |
journeys |
Array<UiAuthoringJourneyDto> | |
servedAppUrl |
string | null | |
servedBy |
string | null | |
servedMachine |
string | null | |
status |
string | |
tokenBudgetPerJourney |
integer(int32) | |
tokens |
UiAuthoringTokensDto |
UiAuthoringRunSummaryDto¶
| Name | Type | Description |
|---|---|---|
batchId |
string(uuid) | null | |
batchStatus |
string | |
cells |
UiAuthoringCellCountsDto | |
chunkCount |
integer(int32) | null | |
chunkIndex |
integer(int32) | null | |
createdAt |
string(date-time) | |
endedAt |
string(date-time) | null | |
id |
string(uuid) | |
servedAppUrl |
string | null | |
servedBy |
string | null | |
servedMachine |
string | null | |
status |
string | |
tokens |
UiAuthoringTokensDto |
UiAuthoringStopStepDto¶
| Name | Type | Description |
|---|---|---|
number |
integer(int32) | |
text |
string |
UiAuthoringTokensDto¶
| Name | Type | Description |
|---|---|---|
intake |
UiTokenUsageDto | |
proposals |
UiTokenUsageDto | |
repairs |
UiTokenUsageDto | |
total |
UiTokenUsageDto |
UiAuthoringUnsupportedLoginDto¶
| Name | Type | Description |
|---|---|---|
loginKind |
string | |
personaId |
string |
UiAuthRecipeDto¶
| Name | Type | Description |
|---|---|---|
fields |
Array<UiAuthFieldDto> | |
landingUrl |
string | null | |
loginUrl |
string | |
sessionTtl |
string | null | |
submitControl |
string |
UiCrawlAppDto¶
| Name | Type | Description |
|---|---|---|
appId |
string(uuid) | |
appUrl |
string | |
name |
string |
UiCrawlPersonaLoginDto¶
| Name | Type | Description |
|---|---|---|
credentialSources |
Array<UiAuthoringCredentialSourceDto> | |
hasLoginRecipe |
boolean | |
personaRef |
string |
UiCrawlPersonaStartDto¶
| Name | Type | Description |
|---|---|---|
outcome |
string | |
personaRef |
string | |
reason |
string | null | Why the persona was not started, for any outcome but STARTED |
run |
||
workflowId |
string | null |
UiCrawlPreviewDto¶
| Name | Type | Description |
|---|---|---|
actionBudget |
integer(int32) | |
featureCrawls |
integer(int32) | Features whose newest contract came from this app: one feature crawl each follows the app's own crawl |
lastCompleted |
The newest crawl of the first persona that finished and wrote the app's map | |
latestCrawl |
The app's newest crawl of any status and persona | |
logins |
Array<UiCrawlPersonaLoginDto> | Set only when the request asks for credentialDelivery: per persona, whether it has a browser login recipe and where each login field comes from. A persona without one is refused at a start |
personaRefs |
Array<string> | Every persona a start with this request would crawl, one crawl each, in order; each crawl spends the budgets above and is followed by its own feature crawls |
running |
The first persona's crawl in flight right now | |
screenBudget |
integer(int32) |
UiCrawlRunDto¶
| Name | Type | Description |
|---|---|---|
actionBudget |
integer(int32) | |
actionsSpent |
integer(int32) | null | |
appId |
string(uuid) | |
awaitingCredentials |
boolean | null | True while a RUNNING crawl waits for the customer's client to deliver a persona's login field (`dezycro verification serve` must be running as the member who started it), false otherwise; absent from a server that predates it |
browserSource |
string | null | HOSTED_JOB | SHARED_SERVER | GATEWAY: |
contractId |
string(uuid) | null | |
controlsFound |
integer(int32) | null | |
credentialSource |
string | null | Where the awaited field comes from while awaitingCredentials: ENV or SCRIPT; null otherwise |
endedAt |
string | null | |
featureId |
string | null | The feature a per-feature crawl was for; null for an app-scoped background crawl |
id |
string(uuid) | |
personaRef |
string | |
progress |
number(double) | null | Share of the budget spent so far, 0..1; null before the explorer reports |
reason |
string | null | Why the run was SKIPPED, FAILED or STOPPED |
screensFound |
integer(int32) | null | |
startedAt |
string | |
status |
string | |
stopCause |
string | null | Who ended a STOPPED run; set only on a STOPPED row |
stoppedByEmail |
string | null | The member who stopped the run; set only on a USER_STOPPED row |
stopReason |
string | null | Why the explorer stopped; null when nothing was crawled or not recorded |
trigger |
string |
UiCrawlStartPublicResponseDto¶
| Name | Type | Description |
|---|---|---|
app |
||
crawl |
||
crawls |
Array<UiCrawlPersonaStartDto> | |
dryRun |
boolean | |
personaRef |
string | null | |
preview |
||
problem |
string | null | |
workflowId |
string | null |
UiCrawlStatusPublicDto¶
| Name | Type | Description |
|---|---|---|
app |
||
crawl |
||
problem |
string | null |
UiCredentialFieldSourceDto¶
| Name | Type | Description |
|---|---|---|
command |
string | null | |
envVar |
string | null | |
kind |
string |
UiCredentialRequestViewDto¶
| Name | Type | Description |
|---|---|---|
appUrl |
string | |
expiresAt |
string(date-time) | |
fieldKey |
string | |
fieldLabel |
string | |
personaId |
string | |
personaName |
string | |
publicKey |
string | |
registeredAppOrigin |
string | null | |
requestId |
string(uuid) | |
runId |
string | |
source |
UiServeSessionDto¶
| Name | Type | Description |
|---|---|---|
appUrl |
string | null | |
expiresAt |
string(date-time) | |
featureId |
string(uuid) | |
machine |
string | |
servedBy |
string | |
startedAt |
string(date-time) |
UiServeSessionProblemDto¶
| Name | Type | Description |
|---|---|---|
appUrl |
string | null | |
machine |
string | null | |
message |
string | |
problem |
string | |
servedBy |
string | null | |
startedAt |
string(date-time) | null |
UiServeSessionsDto¶
| Name | Type | Description |
|---|---|---|
mine |
||
override |
UiTokenUsageDto¶
| Name | Type | Description |
|---|---|---|
calls |
integer(int32) | |
completionTokens |
integer(int64) | |
promptTokens |
integer(int64) |
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 |