curl
curl -sS -X POST "https://gateway.orbit/api/v1/instances/12/clone" \
--cacert /path/to/orbit-root-ca.pem \
-H 'Accept: application/json' \
-H 'X-Orbit-Request-Id: 9d6b1e5c-4a3f-4a1b-9f0e-6d2c3f5a7b81' \
-H 'Content-Type: application/json' \
-d '{"node_id": 7, "name": "default", "preview_name": "shop.com"}'{
"data": {
"id": 123,
"project_id": 123,
"node_id": 123,
"project": {
"id": 123,
"name": "<string>",
"slug": "<string>",
"type": "monorepo"
},
"node": {
"id": 123,
"name": "<string>"
},
"name": "<string>",
"source_layout": "<string>",
"checkout_path": "<string>",
"production_user": "<string>",
"production_home": "<string>",
"root": "<string>",
"effective_root": "<string>",
"selected_branch": "<string>",
"branch_override": "<string>",
"starting_commit": "<string>",
"detached": true,
"status": "<string>",
"route": {
"id": 123,
"kind": "<string>",
"project_id": 123,
"node_id": 123,
"cluster_id": 123,
"generation_basis_node_id": 123,
"domain": "<string>",
"provenance": "<string>",
"publication": "<string>",
"status": "<string>",
"failed_step": "<string>",
"error_code": "<string>",
"replaces_route_id": 123,
"replaced_by_route_id": 123,
"replacement_step": "<string>",
"target_set_step": "<string>",
"target": {
"id": 123,
"instance_id": 123,
"position": 123
},
"targets": [
{
"id": 123,
"instance_id": 123,
"position": 123
}
],
"process_id": 123,
"upstream": "<string>",
"analytics_instance_id": 123,
"web_root": "<string>"
},
"domain": "<string>",
"url": "<string>",
"removal": {
"operation_id": "<string>",
"id": 123,
"name": "<string>",
"force": true,
"status": "<string>",
"current_step": "<string>",
"total": 123,
"completed": 123,
"remaining": 123,
"failed_step": "<string>",
"error_code": "<string>"
},
"transfer": {
"operation_id": "<string>",
"id": 123,
"source_node_id": 123,
"destination_node_id": 123,
"destination_name": "<string>",
"destination_path": "<string>",
"destination_domain": "<string>",
"sqlite_selected": true,
"status": "<string>",
"current_step": "<string>",
"cutover_completed": true,
"cleanup_completed": true,
"failed_step": "<string>",
"error_code": "<string>",
"recovery_evidence": {}
},
"deploy_steps": [
{
"name": "<string>",
"phase": "<string>",
"command": "<string>",
"timeout_seconds": 123
}
],
"vite_port": 123,
"ssr_port": 123,
"seed_path": "<string>",
"seed_commit": "<string>",
"annotator_port": 123,
"annotator_url": "<string>",
"routes": [
{
"id": 123,
"kind": "<string>",
"project_id": 123,
"node_id": 123,
"cluster_id": 123,
"generation_basis_node_id": 123,
"domain": "<string>",
"provenance": "<string>",
"publication": "<string>",
"status": "<string>",
"failed_step": "<string>",
"error_code": "<string>",
"replaces_route_id": 123,
"replaced_by_route_id": 123,
"replacement_step": "<string>",
"target_set_step": "<string>",
"target": {
"id": 123,
"instance_id": 123,
"position": 123
},
"targets": [
{
"id": 123,
"instance_id": 123,
"position": 123
}
],
"process_id": 123,
"upstream": "<string>",
"analytics_instance_id": 123,
"web_root": "<string>"
}
]
},
"meta": {
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"data": {
"id": 123,
"project_id": 123,
"node_id": 123,
"project": {
"id": 123,
"name": "<string>",
"slug": "<string>",
"type": "monorepo"
},
"node": {
"id": 123,
"name": "<string>"
},
"name": "<string>",
"source_layout": "<string>",
"checkout_path": "<string>",
"production_user": "<string>",
"production_home": "<string>",
"root": "<string>",
"effective_root": "<string>",
"selected_branch": "<string>",
"branch_override": "<string>",
"starting_commit": "<string>",
"detached": true,
"status": "<string>",
"route": {
"id": 123,
"kind": "<string>",
"project_id": 123,
"node_id": 123,
"cluster_id": 123,
"generation_basis_node_id": 123,
"domain": "<string>",
"provenance": "<string>",
"publication": "<string>",
"status": "<string>",
"failed_step": "<string>",
"error_code": "<string>",
"replaces_route_id": 123,
"replaced_by_route_id": 123,
"replacement_step": "<string>",
"target_set_step": "<string>",
"target": {
"id": 123,
"instance_id": 123,
"position": 123
},
"targets": [
{
"id": 123,
"instance_id": 123,
"position": 123
}
],
"process_id": 123,
"upstream": "<string>",
"analytics_instance_id": 123,
"web_root": "<string>"
},
"domain": "<string>",
"url": "<string>",
"removal": {
"operation_id": "<string>",
"id": 123,
"name": "<string>",
"force": true,
"status": "<string>",
"current_step": "<string>",
"total": 123,
"completed": 123,
"remaining": 123,
"failed_step": "<string>",
"error_code": "<string>"
},
"transfer": {
"operation_id": "<string>",
"id": 123,
"source_node_id": 123,
"destination_node_id": 123,
"destination_name": "<string>",
"destination_path": "<string>",
"destination_domain": "<string>",
"sqlite_selected": true,
"status": "<string>",
"current_step": "<string>",
"cutover_completed": true,
"cleanup_completed": true,
"failed_step": "<string>",
"error_code": "<string>",
"recovery_evidence": {}
},
"deploy_steps": [
{
"name": "<string>",
"phase": "<string>",
"command": "<string>",
"timeout_seconds": 123
}
],
"vite_port": 123,
"ssr_port": 123,
"seed_path": "<string>",
"seed_commit": "<string>",
"annotator_port": 123,
"annotator_url": "<string>",
"routes": [
{
"id": 123,
"kind": "<string>",
"project_id": 123,
"node_id": 123,
"cluster_id": 123,
"generation_basis_node_id": 123,
"domain": "<string>",
"provenance": "<string>",
"publication": "<string>",
"status": "<string>",
"failed_step": "<string>",
"error_code": "<string>",
"replaces_route_id": 123,
"replaced_by_route_id": 123,
"replacement_step": "<string>",
"target_set_step": "<string>",
"target": {
"id": 123,
"instance_id": 123,
"position": 123
},
"targets": [
{
"id": 123,
"instance_id": 123,
"position": 123
}
],
"process_id": 123,
"upstream": "<string>",
"analytics_instance_id": 123,
"web_root": "<string>"
}
]
},
"meta": {
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}Instances
Clone an Instance
Clone a candidate into a prepared production Instance.
The candidate supplies source, stored environment values, and an optional SQLite snapshot. The Project supplies production Process and Schedule definitions; candidate-specific overrides are not copied.
Provision the production Node with node:add —tld before cloning. Clean application state on the target only. Use env:update and env:sync for target configuration, then configure deploy steps with instance:deploy-step:create and deploy with instance:deploy.
POST
/
api
/
v1
/
instances
/
{candidate}
/
clone
curl
curl -sS -X POST "https://gateway.orbit/api/v1/instances/12/clone" \
--cacert /path/to/orbit-root-ca.pem \
-H 'Accept: application/json' \
-H 'X-Orbit-Request-Id: 9d6b1e5c-4a3f-4a1b-9f0e-6d2c3f5a7b81' \
-H 'Content-Type: application/json' \
-d '{"node_id": 7, "name": "default", "preview_name": "shop.com"}'{
"data": {
"id": 123,
"project_id": 123,
"node_id": 123,
"project": {
"id": 123,
"name": "<string>",
"slug": "<string>",
"type": "monorepo"
},
"node": {
"id": 123,
"name": "<string>"
},
"name": "<string>",
"source_layout": "<string>",
"checkout_path": "<string>",
"production_user": "<string>",
"production_home": "<string>",
"root": "<string>",
"effective_root": "<string>",
"selected_branch": "<string>",
"branch_override": "<string>",
"starting_commit": "<string>",
"detached": true,
"status": "<string>",
"route": {
"id": 123,
"kind": "<string>",
"project_id": 123,
"node_id": 123,
"cluster_id": 123,
"generation_basis_node_id": 123,
"domain": "<string>",
"provenance": "<string>",
"publication": "<string>",
"status": "<string>",
"failed_step": "<string>",
"error_code": "<string>",
"replaces_route_id": 123,
"replaced_by_route_id": 123,
"replacement_step": "<string>",
"target_set_step": "<string>",
"target": {
"id": 123,
"instance_id": 123,
"position": 123
},
"targets": [
{
"id": 123,
"instance_id": 123,
"position": 123
}
],
"process_id": 123,
"upstream": "<string>",
"analytics_instance_id": 123,
"web_root": "<string>"
},
"domain": "<string>",
"url": "<string>",
"removal": {
"operation_id": "<string>",
"id": 123,
"name": "<string>",
"force": true,
"status": "<string>",
"current_step": "<string>",
"total": 123,
"completed": 123,
"remaining": 123,
"failed_step": "<string>",
"error_code": "<string>"
},
"transfer": {
"operation_id": "<string>",
"id": 123,
"source_node_id": 123,
"destination_node_id": 123,
"destination_name": "<string>",
"destination_path": "<string>",
"destination_domain": "<string>",
"sqlite_selected": true,
"status": "<string>",
"current_step": "<string>",
"cutover_completed": true,
"cleanup_completed": true,
"failed_step": "<string>",
"error_code": "<string>",
"recovery_evidence": {}
},
"deploy_steps": [
{
"name": "<string>",
"phase": "<string>",
"command": "<string>",
"timeout_seconds": 123
}
],
"vite_port": 123,
"ssr_port": 123,
"seed_path": "<string>",
"seed_commit": "<string>",
"annotator_port": 123,
"annotator_url": "<string>",
"routes": [
{
"id": 123,
"kind": "<string>",
"project_id": 123,
"node_id": 123,
"cluster_id": 123,
"generation_basis_node_id": 123,
"domain": "<string>",
"provenance": "<string>",
"publication": "<string>",
"status": "<string>",
"failed_step": "<string>",
"error_code": "<string>",
"replaces_route_id": 123,
"replaced_by_route_id": 123,
"replacement_step": "<string>",
"target_set_step": "<string>",
"target": {
"id": 123,
"instance_id": 123,
"position": 123
},
"targets": [
{
"id": 123,
"instance_id": 123,
"position": 123
}
],
"process_id": 123,
"upstream": "<string>",
"analytics_instance_id": 123,
"web_root": "<string>"
}
]
},
"meta": {
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"data": {
"id": 123,
"project_id": 123,
"node_id": 123,
"project": {
"id": 123,
"name": "<string>",
"slug": "<string>",
"type": "monorepo"
},
"node": {
"id": 123,
"name": "<string>"
},
"name": "<string>",
"source_layout": "<string>",
"checkout_path": "<string>",
"production_user": "<string>",
"production_home": "<string>",
"root": "<string>",
"effective_root": "<string>",
"selected_branch": "<string>",
"branch_override": "<string>",
"starting_commit": "<string>",
"detached": true,
"status": "<string>",
"route": {
"id": 123,
"kind": "<string>",
"project_id": 123,
"node_id": 123,
"cluster_id": 123,
"generation_basis_node_id": 123,
"domain": "<string>",
"provenance": "<string>",
"publication": "<string>",
"status": "<string>",
"failed_step": "<string>",
"error_code": "<string>",
"replaces_route_id": 123,
"replaced_by_route_id": 123,
"replacement_step": "<string>",
"target_set_step": "<string>",
"target": {
"id": 123,
"instance_id": 123,
"position": 123
},
"targets": [
{
"id": 123,
"instance_id": 123,
"position": 123
}
],
"process_id": 123,
"upstream": "<string>",
"analytics_instance_id": 123,
"web_root": "<string>"
},
"domain": "<string>",
"url": "<string>",
"removal": {
"operation_id": "<string>",
"id": 123,
"name": "<string>",
"force": true,
"status": "<string>",
"current_step": "<string>",
"total": 123,
"completed": 123,
"remaining": 123,
"failed_step": "<string>",
"error_code": "<string>"
},
"transfer": {
"operation_id": "<string>",
"id": 123,
"source_node_id": 123,
"destination_node_id": 123,
"destination_name": "<string>",
"destination_path": "<string>",
"destination_domain": "<string>",
"sqlite_selected": true,
"status": "<string>",
"current_step": "<string>",
"cutover_completed": true,
"cleanup_completed": true,
"failed_step": "<string>",
"error_code": "<string>",
"recovery_evidence": {}
},
"deploy_steps": [
{
"name": "<string>",
"phase": "<string>",
"command": "<string>",
"timeout_seconds": 123
}
],
"vite_port": 123,
"ssr_port": 123,
"seed_path": "<string>",
"seed_commit": "<string>",
"annotator_port": 123,
"annotator_url": "<string>",
"routes": [
{
"id": 123,
"kind": "<string>",
"project_id": 123,
"node_id": 123,
"cluster_id": 123,
"generation_basis_node_id": 123,
"domain": "<string>",
"provenance": "<string>",
"publication": "<string>",
"status": "<string>",
"failed_step": "<string>",
"error_code": "<string>",
"replaces_route_id": 123,
"replaced_by_route_id": 123,
"replacement_step": "<string>",
"target_set_step": "<string>",
"target": {
"id": 123,
"instance_id": 123,
"position": 123
},
"targets": [
{
"id": 123,
"instance_id": 123,
"position": 123
}
],
"process_id": 123,
"upstream": "<string>",
"analytics_instance_id": 123,
"web_root": "<string>"
}
]
},
"meta": {
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": {},
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}Path Parameters
Numeric ID of the candidate Instance.
Required range:
x >= 1Body
application/json
Required range:
x >= 1Target production Instance name
Maximum string length:
63Pattern:
^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$(?![\s\S])Required preview name to combine with the production Node TLD
Maximum string length:
253Optional target branch; omission inherits the candidate branch
Maximum string length:
255Optional SQLite database path on the candidate
Maximum string length:
4096Pattern:
^\/[^\x00-\x1F\x7F]*$(?![\s\S])