Clean run history from a workspace
Deletes the workspace’s finished runs (with their phases, events and artifacts records) from the daemon’s catalog. Runs that are still going are kept. No files in the folder are touched.
From the CLI: cliq clean.
No credential is needed from this machine. From another host, send Authorization: Bearer with a dispatch token CliqHub signed for this daemon or a cliq_tok_… personal token of a user in the daemon’s realm; this only works once the daemon is connected to CliqHub. See Authentication.
POST
/
v1
/
workspaces
/
clean
Clean run history from a workspace
curl --request POST \
--url http://127.0.0.1:4900/v1/workspaces/clean \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"workspace_dir": "/home/dev/acme-api"
}
'import requests
url = "http://127.0.0.1:4900/v1/workspaces/clean"
payload = { "workspace_dir": "/home/dev/acme-api" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({workspace_dir: '/home/dev/acme-api'})
};
fetch('http://127.0.0.1:4900/v1/workspaces/clean', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "4900",
CURLOPT_URL => "http://127.0.0.1:4900/v1/workspaces/clean",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'workspace_dir' => '/home/dev/acme-api'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://127.0.0.1:4900/v1/workspaces/clean"
payload := strings.NewReader("{\n \"workspace_dir\": \"/home/dev/acme-api\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://127.0.0.1:4900/v1/workspaces/clean")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"workspace_dir\": \"/home/dev/acme-api\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://127.0.0.1:4900/v1/workspaces/clean")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workspace_dir\": \"/home/dev/acme-api\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"data": {
"workspace_dir": "/home/dev/acme-api",
"cleaned": true,
"removed_paths": []
}
}
Authorizations
Not needed from the same machine. From another host: a dispatch JWT CliqHub signed for this daemon, or a cliq_tok_… personal token whose user is in the daemon's realm.
Body
application/json
Absolute workspace path
Minimum string length:
1⌘I
Clean run history from a workspace
curl --request POST \
--url http://127.0.0.1:4900/v1/workspaces/clean \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"workspace_dir": "/home/dev/acme-api"
}
'import requests
url = "http://127.0.0.1:4900/v1/workspaces/clean"
payload = { "workspace_dir": "/home/dev/acme-api" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({workspace_dir: '/home/dev/acme-api'})
};
fetch('http://127.0.0.1:4900/v1/workspaces/clean', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "4900",
CURLOPT_URL => "http://127.0.0.1:4900/v1/workspaces/clean",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'workspace_dir' => '/home/dev/acme-api'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://127.0.0.1:4900/v1/workspaces/clean"
payload := strings.NewReader("{\n \"workspace_dir\": \"/home/dev/acme-api\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://127.0.0.1:4900/v1/workspaces/clean")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"workspace_dir\": \"/home/dev/acme-api\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://127.0.0.1:4900/v1/workspaces/clean")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workspace_dir\": \"/home/dev/acme-api\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"data": {
"workspace_dir": "/home/dev/acme-api",
"cleaned": true,
"removed_paths": []
}
}