Triggerless Jobs

You can use the Jet API to create jobs that transfer files manually without an automated job trigger, such as a Hot Folder job.

The /deliveries endpoint is used to specify individual files to transfer as part of a triggerless job.

Once a job has been created, you can send requests that contain an array of file paths relative to the source storage profile in order to transfer the files.

Note: Calls to the /deliveries endpoint on a paused job cannot be queued and will return a 400 error.

Creating a Triggerless Job

Before creating a triggerless job, ensure you have a valid authorization token.

  1. Send a GET request to /v1/endpoints to retrieve a list of your endpoints.

    > curl -X GET -H "Authorization: Bearer <token>" -H "Content-Type: application/json" https://platform-api-service.services.cloud.signiant.com/v1/endpoints
    
  2. Using the response body, determine the endpointId of the source and destination endpoints.

  3. Use the endpointId, url, and name properties to set the endpoints, file paths, and storage profile names for the source and destination endpoints in the request body actions array:

    {
      "name": "Triggerless Job",
      "actions": [
        {
          "type": "TRANSFER",
          "data": {
            "source": {
              "url": "file:///C:/path/to/source",
              "endpointId": "12345678-abcd-1234-abcd-123456789123",
              "name": "Source Profile Name"
            },
            "destination": {
              "url": "file:///path/to/destination",
              "endpointId": "12345678-abcd-1234-abcd-123456789123",
              "name": "Destination Profile Name"
            }
          }
        }
      ]
    }
    
  4. Send the request body to the /v1/jobs API endpoint to create the job.

Transferring Files

Once the job has been created, use the /deliveries API endpoint to specify the relative path to the files included in the job.

Each file path is relative to the root of the storage profile location, and can include files in subfolders.

{
  "objects": [
    {
      "relativePath": "/example.mp4",
      "sizeInBytes": 104857600
    },
    {
      "relativePath": "/path/to/example2.mp4",
      "sizeInBytes": 104857600
    }
  ]
}

The request body sent to the API endpoint must include the full relative path to each individual file to be transferred.

Files contained in subfolders on the source endpoint transfer to a new subfolder created on the destination endpoint. If a directory name is used, an empty directory is created on the destination endpoint without the source contents.

Including the file size for each file allows estimated completion status on the Jobs page in the Jet management console.

To transfer files using a triggerless job:

  1. Send a GET request to /v1/jobs to retrieve a list of your jobs.

  2. Using the response body, determine the jobId of the triggerless job.

  3. Prepare a request body including the relative path to each file, and optionally, the size for each file:

    {
      "objects": [
        {
          "relativePath": "/path/to/file.mp4",
          "sizeInBytes": 104857600
        }
      ]
    }
    
  4. Send the request body to the /v1/jobs/{jobId}/deliveries endpoint.

Once the request is accepted, the deliveries endpoint responds with the file list, and the transfer begins immediately.