Execute Test

JFrog REST APIs

Content Type
REST API
ft:sourceType
Paligo

Description: Test a new or existing worker.

Since: 7.63.2

Security: Admin authentication is required.

Usage:POST /worker/api/v1/test/[/{workerKey}]

Produces: application/json; charset=utf-8

Header parameter: Authorization: Bearer

Parameters

Name

Datatype

Mandatory

Description

code

string

Yes

The worker script in TypeScript or JavaScript.

action

enum string

Yes

Select the worker actions with which the worker is associated.

data

object

Yes

An object that matches the action's event data. The object should match the action that you chose.

stagedSecrets

string

No

The secrets to be made available during the test.

If testing an existing worker, its secrets will be made available during the test.

Query Parameters

Name

Datatype

Mandatory

Description

workerKey

string

No

If provided, identifies an existing worker to be tested.

stagedSecrets

string

No

The secrets to be made available during the test.

If testing an existing worker, its secrets will be made available during the test.

projectKey

string

No

If a project admin token is used, this query parameter is required and the user must have the role project admin for the project, otherwise a HTTP error 403 is returned.

Sample Usage

curl -X POST 'https://myserver.com/worker/api/v1/system/test'
Ok

Sample Request

{
  "code": string,
  "action": string,
  "data": object, // action specific payload
  "stagedSecrets": undefined | Secret[]
}

Sample Response

{
  "logs": string, // All logs generated by the worker's script appear in one line.
    "beforeDownload": { // The type of action.
        "status": DownloadStatus, // The status returned by the worker script itself.
        "message": string, // The message returned by the worker script.
        "executionStatus": “STATUS_SUCCESS” // Execution status for the worker service.
    }
}

Secret Type

Define the secret type:

{
    "key": string, // The name of the secret.
    "value": string // The value of the secret.
}

When testing an existing worker, identified by a workerKey, it is not possible to change the value of an existing secret.

If a staged secret is similar to an existing one, the secret should be marked for removal and then added with a new value, as in the following example.

{
    "stagedSecrets": [
      { “key”: “my-secret-0”, markedForRemoval: true },
      { “key”: “my-secret-0”, “value”: “new-value-of-my-secret-0” }
    ]  
}

Success Response Codes:

200: OK response.

Error Response Codes:

400 The request payload is malformed.

401 Invalid credentials.

403 Insufficient permissions.

422 Error occurs when the worker service cannot encrypt a secret.

500 Error occurred during the request processing.

Sample Errors

Request Error

{  "errors": 
  [
    {      "status": number, // HTTP Error status code
           "message": string // Reason for error
    }
  ]
}

Caution

The status should be either STATUS_SUCCESS or STATUS_FAIL.

Execution Error

{  
  "message": string, // This is the message containing the error.
  "executionStatus": "STATUS_FAIL"  
}