Seed a session's draft with pages
curl --request POST \
--url http://localhost:4200/draft/bootstrap \
--header 'Content-Type: application/json' \
--data '
{
"session": "<string>",
"siteId": "<string>",
"pages": [
{}
],
"overwrite": true
}
'import requests
url = "http://localhost:4200/draft/bootstrap"
payload = {
"session": "<string>",
"siteId": "<string>",
"pages": [{}],
"overwrite": True
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({session: '<string>', siteId: '<string>', pages: [{}], overwrite: true})
};
fetch('http://localhost:4200/draft/bootstrap', 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 => "4200",
CURLOPT_URL => "http://localhost:4200/draft/bootstrap",
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([
'session' => '<string>',
'siteId' => '<string>',
'pages' => [
[
]
],
'overwrite' => true
]),
CURLOPT_HTTPHEADER => [
"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://localhost:4200/draft/bootstrap"
payload := strings.NewReader("{\n \"session\": \"<string>\",\n \"siteId\": \"<string>\",\n \"pages\": [\n {}\n ],\n \"overwrite\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
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://localhost:4200/draft/bootstrap")
.header("Content-Type", "application/json")
.body("{\n \"session\": \"<string>\",\n \"siteId\": \"<string>\",\n \"pages\": [\n {}\n ],\n \"overwrite\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:4200/draft/bootstrap")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"session\": \"<string>\",\n \"siteId\": \"<string>\",\n \"pages\": [\n {}\n ],\n \"overwrite\": true\n}"
response = http.request(request)
puts response.read_bodyDraft
Seed a session's draft with pages
Fills an empty session from the pages in the body, or from the orchestrator’s published pages when the body carries none. Skipped with status: "skipped" when the draft is already populated and overwrite is not set, and also right after a snapshot restore, so a page refresh cannot overwrite what was just restored.
POST
/
draft
/
bootstrap
Seed a session's draft with pages
curl --request POST \
--url http://localhost:4200/draft/bootstrap \
--header 'Content-Type: application/json' \
--data '
{
"session": "<string>",
"siteId": "<string>",
"pages": [
{}
],
"overwrite": true
}
'import requests
url = "http://localhost:4200/draft/bootstrap"
payload = {
"session": "<string>",
"siteId": "<string>",
"pages": [{}],
"overwrite": True
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({session: '<string>', siteId: '<string>', pages: [{}], overwrite: true})
};
fetch('http://localhost:4200/draft/bootstrap', 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 => "4200",
CURLOPT_URL => "http://localhost:4200/draft/bootstrap",
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([
'session' => '<string>',
'siteId' => '<string>',
'pages' => [
[
]
],
'overwrite' => true
]),
CURLOPT_HTTPHEADER => [
"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://localhost:4200/draft/bootstrap"
payload := strings.NewReader("{\n \"session\": \"<string>\",\n \"siteId\": \"<string>\",\n \"pages\": [\n {}\n ],\n \"overwrite\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
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://localhost:4200/draft/bootstrap")
.header("Content-Type", "application/json")
.body("{\n \"session\": \"<string>\",\n \"siteId\": \"<string>\",\n \"pages\": [\n {}\n ],\n \"overwrite\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:4200/draft/bootstrap")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"session\": \"<string>\",\n \"siteId\": \"<string>\",\n \"pages\": [\n {}\n ],\n \"overwrite\": true\n}"
response = http.request(request)
puts response.read_bodyBody
application/json
Editor session key. Scoped with siteId into the key the state store uses.
Site this session belongs to, when the orchestrator hosts more than one.
PageDoc objects. Each is parsed leniently; the ones that fail validation are dropped.
Replace pages that share a slug with a source page. Draft-only pages always survive.
Response
status is bootstrapped or skipped, with the resulting slugs and the new previewVersion.