curl --request POST \
--url https://mycluster.domino.tech/api/apps/v1/apps/{appId}/versions/createAndStart \
--header 'Content-Type: application/json' \
--header 'X-Domino-Api-Key: <api-key>' \
--data '
{
"bundleId": "<string>",
"content": {
"dataPlaneId": "<string>",
"dfsCommitId": "<string>",
"entryScript": "<string>",
"environmentId": "<string>",
"environmentRevisionId": "<string>",
"extendedIdentityPropagationToAppsEnabled": true,
"externalVolumeMountIds": [
"<string>"
],
"importedGitRepoRefPatches": [
{
"repoId": "<string>",
"gitRef": {
"value": "<string>"
}
}
],
"mountDatasets": true,
"netAppVolumeIds": [
"<string>"
],
"resolvedCommits": {
"dfsCommitId": "<string>",
"gitCommitId": "<string>",
"importedGitRepos": [
{
"repoId": "<string>",
"ref": "<string>",
"repoName": "<string>"
}
],
"importedProjects": [
{
"commitId": "<string>",
"directoryName": "<string>",
"ownerId": "<string>",
"projectId": "<string>",
"projectName": "<string>",
"release": "<string>"
}
]
}
},
"deployment": {
"hardwareTierId": "<string>",
"renderIFrame": true,
"vanityUrl": "<string>"
},
"description": "<string>",
"startOverrides": {
"deployment": {
"hardwareTierId": "<string>",
"renderIFrame": true,
"vanityUrl": "<string>"
}
},
"tags": [
{
"key": "<string>",
"value": "<string>"
}
]
}
'import requests
url = "https://mycluster.domino.tech/api/apps/v1/apps/{appId}/versions/createAndStart"
payload = {
"bundleId": "<string>",
"content": {
"dataPlaneId": "<string>",
"dfsCommitId": "<string>",
"entryScript": "<string>",
"environmentId": "<string>",
"environmentRevisionId": "<string>",
"extendedIdentityPropagationToAppsEnabled": True,
"externalVolumeMountIds": ["<string>"],
"importedGitRepoRefPatches": [
{
"repoId": "<string>",
"gitRef": { "value": "<string>" }
}
],
"mountDatasets": True,
"netAppVolumeIds": ["<string>"],
"resolvedCommits": {
"dfsCommitId": "<string>",
"gitCommitId": "<string>",
"importedGitRepos": [
{
"repoId": "<string>",
"ref": "<string>",
"repoName": "<string>"
}
],
"importedProjects": [
{
"commitId": "<string>",
"directoryName": "<string>",
"ownerId": "<string>",
"projectId": "<string>",
"projectName": "<string>",
"release": "<string>"
}
]
}
},
"deployment": {
"hardwareTierId": "<string>",
"renderIFrame": True,
"vanityUrl": "<string>"
},
"description": "<string>",
"startOverrides": { "deployment": {
"hardwareTierId": "<string>",
"renderIFrame": True,
"vanityUrl": "<string>"
} },
"tags": [
{
"key": "<string>",
"value": "<string>"
}
]
}
headers = {
"X-Domino-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Domino-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
bundleId: '<string>',
content: {
dataPlaneId: '<string>',
dfsCommitId: '<string>',
entryScript: '<string>',
environmentId: '<string>',
environmentRevisionId: '<string>',
extendedIdentityPropagationToAppsEnabled: true,
externalVolumeMountIds: ['<string>'],
importedGitRepoRefPatches: [{repoId: '<string>', gitRef: {value: '<string>'}}],
mountDatasets: true,
netAppVolumeIds: ['<string>'],
resolvedCommits: {
dfsCommitId: '<string>',
gitCommitId: '<string>',
importedGitRepos: [{repoId: '<string>', ref: '<string>', repoName: '<string>'}],
importedProjects: [
{
commitId: '<string>',
directoryName: '<string>',
ownerId: '<string>',
projectId: '<string>',
projectName: '<string>',
release: '<string>'
}
]
}
},
deployment: {hardwareTierId: '<string>', renderIFrame: true, vanityUrl: '<string>'},
description: '<string>',
startOverrides: {
deployment: {hardwareTierId: '<string>', renderIFrame: true, vanityUrl: '<string>'}
},
tags: [{key: '<string>', value: '<string>'}]
})
};
fetch('https://mycluster.domino.tech/api/apps/v1/apps/{appId}/versions/createAndStart', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://mycluster.domino.tech/api/apps/v1/apps/{appId}/versions/createAndStart",
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([
'bundleId' => '<string>',
'content' => [
'dataPlaneId' => '<string>',
'dfsCommitId' => '<string>',
'entryScript' => '<string>',
'environmentId' => '<string>',
'environmentRevisionId' => '<string>',
'extendedIdentityPropagationToAppsEnabled' => true,
'externalVolumeMountIds' => [
'<string>'
],
'importedGitRepoRefPatches' => [
[
'repoId' => '<string>',
'gitRef' => [
'value' => '<string>'
]
]
],
'mountDatasets' => true,
'netAppVolumeIds' => [
'<string>'
],
'resolvedCommits' => [
'dfsCommitId' => '<string>',
'gitCommitId' => '<string>',
'importedGitRepos' => [
[
'repoId' => '<string>',
'ref' => '<string>',
'repoName' => '<string>'
]
],
'importedProjects' => [
[
'commitId' => '<string>',
'directoryName' => '<string>',
'ownerId' => '<string>',
'projectId' => '<string>',
'projectName' => '<string>',
'release' => '<string>'
]
]
]
],
'deployment' => [
'hardwareTierId' => '<string>',
'renderIFrame' => true,
'vanityUrl' => '<string>'
],
'description' => '<string>',
'startOverrides' => [
'deployment' => [
'hardwareTierId' => '<string>',
'renderIFrame' => true,
'vanityUrl' => '<string>'
]
],
'tags' => [
[
'key' => '<string>',
'value' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Domino-Api-Key: <api-key>"
],
]);
$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 := "https://mycluster.domino.tech/api/apps/v1/apps/{appId}/versions/createAndStart"
payload := strings.NewReader("{\n \"bundleId\": \"<string>\",\n \"content\": {\n \"dataPlaneId\": \"<string>\",\n \"dfsCommitId\": \"<string>\",\n \"entryScript\": \"<string>\",\n \"environmentId\": \"<string>\",\n \"environmentRevisionId\": \"<string>\",\n \"extendedIdentityPropagationToAppsEnabled\": true,\n \"externalVolumeMountIds\": [\n \"<string>\"\n ],\n \"importedGitRepoRefPatches\": [\n {\n \"repoId\": \"<string>\",\n \"gitRef\": {\n \"value\": \"<string>\"\n }\n }\n ],\n \"mountDatasets\": true,\n \"netAppVolumeIds\": [\n \"<string>\"\n ],\n \"resolvedCommits\": {\n \"dfsCommitId\": \"<string>\",\n \"gitCommitId\": \"<string>\",\n \"importedGitRepos\": [\n {\n \"repoId\": \"<string>\",\n \"ref\": \"<string>\",\n \"repoName\": \"<string>\"\n }\n ],\n \"importedProjects\": [\n {\n \"commitId\": \"<string>\",\n \"directoryName\": \"<string>\",\n \"ownerId\": \"<string>\",\n \"projectId\": \"<string>\",\n \"projectName\": \"<string>\",\n \"release\": \"<string>\"\n }\n ]\n }\n },\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n },\n \"description\": \"<string>\",\n \"startOverrides\": {\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n }\n },\n \"tags\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Domino-Api-Key", "<api-key>")
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("https://mycluster.domino.tech/api/apps/v1/apps/{appId}/versions/createAndStart")
.header("X-Domino-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"bundleId\": \"<string>\",\n \"content\": {\n \"dataPlaneId\": \"<string>\",\n \"dfsCommitId\": \"<string>\",\n \"entryScript\": \"<string>\",\n \"environmentId\": \"<string>\",\n \"environmentRevisionId\": \"<string>\",\n \"extendedIdentityPropagationToAppsEnabled\": true,\n \"externalVolumeMountIds\": [\n \"<string>\"\n ],\n \"importedGitRepoRefPatches\": [\n {\n \"repoId\": \"<string>\",\n \"gitRef\": {\n \"value\": \"<string>\"\n }\n }\n ],\n \"mountDatasets\": true,\n \"netAppVolumeIds\": [\n \"<string>\"\n ],\n \"resolvedCommits\": {\n \"dfsCommitId\": \"<string>\",\n \"gitCommitId\": \"<string>\",\n \"importedGitRepos\": [\n {\n \"repoId\": \"<string>\",\n \"ref\": \"<string>\",\n \"repoName\": \"<string>\"\n }\n ],\n \"importedProjects\": [\n {\n \"commitId\": \"<string>\",\n \"directoryName\": \"<string>\",\n \"ownerId\": \"<string>\",\n \"projectId\": \"<string>\",\n \"projectName\": \"<string>\",\n \"release\": \"<string>\"\n }\n ]\n }\n },\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n },\n \"description\": \"<string>\",\n \"startOverrides\": {\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n }\n },\n \"tags\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mycluster.domino.tech/api/apps/v1/apps/{appId}/versions/createAndStart")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Domino-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"bundleId\": \"<string>\",\n \"content\": {\n \"dataPlaneId\": \"<string>\",\n \"dfsCommitId\": \"<string>\",\n \"entryScript\": \"<string>\",\n \"environmentId\": \"<string>\",\n \"environmentRevisionId\": \"<string>\",\n \"extendedIdentityPropagationToAppsEnabled\": true,\n \"externalVolumeMountIds\": [\n \"<string>\"\n ],\n \"importedGitRepoRefPatches\": [\n {\n \"repoId\": \"<string>\",\n \"gitRef\": {\n \"value\": \"<string>\"\n }\n }\n ],\n \"mountDatasets\": true,\n \"netAppVolumeIds\": [\n \"<string>\"\n ],\n \"resolvedCommits\": {\n \"dfsCommitId\": \"<string>\",\n \"gitCommitId\": \"<string>\",\n \"importedGitRepos\": [\n {\n \"repoId\": \"<string>\",\n \"ref\": \"<string>\",\n \"repoName\": \"<string>\"\n }\n ],\n \"importedProjects\": [\n {\n \"commitId\": \"<string>\",\n \"directoryName\": \"<string>\",\n \"ownerId\": \"<string>\",\n \"projectId\": \"<string>\",\n \"projectName\": \"<string>\",\n \"release\": \"<string>\"\n }\n ]\n }\n },\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n },\n \"description\": \"<string>\",\n \"startOverrides\": {\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n }\n },\n \"tags\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"version": {
"createdAt": 123,
"id": "<string>",
"tags": [
{
"key": "<string>",
"value": "<string>"
}
],
"updatedAt": 123,
"bundle": {
"id": "<string>",
"name": "<string>"
},
"content": {
"mountDatasets": true,
"dataPlaneId": "<string>",
"dfsCommitId": "<string>",
"entryScript": "<string>",
"environmentId": "<string>",
"environmentRevisionId": "<string>",
"extendedIdentityPropagationToAppsEnabled": true,
"externalVolumeMountIds": [
"<string>"
],
"gitRef": {
"value": "<string>"
},
"importedGitRepoRefs": [
{
"gitRef": {
"value": "<string>"
},
"repoId": "<string>",
"repoName": "<string>"
}
],
"netAppVolumeIds": [
"<string>"
],
"resolvedCommits": {
"dfsCommitId": "<string>",
"gitCommitId": "<string>",
"importedGitRepos": [
{
"ref": "<string>",
"repoId": "<string>",
"repoName": "<string>"
}
],
"importedProjects": [
{
"commitId": "<string>",
"directoryName": "<string>",
"ownerId": "<string>",
"projectId": "<string>",
"projectName": "<string>",
"release": "<string>"
}
]
}
},
"currentInstance": {
"createdAt": 123,
"id": "<string>",
"status": "<string>",
"describeUrl": "<string>",
"dfsCommitId": "<string>",
"gitCommitId": "<string>",
"lastSynced": {
"syncedAt": 123,
"dfsCommitId": "<string>",
"importedRepoCommits": [
{
"ref": "<string>",
"repoId": "<string>"
}
],
"mainRepoCommitId": "<string>"
},
"publisher": {
"id": "<string>",
"name": "<string>"
}
},
"deployment": {
"autoscalingSpecification": {
"enabled": true,
"maxReplicas": 15,
"minReplicas": 15,
"scaleDownStabilizationWindowSeconds": 1800,
"scaleUpStabilizationWindowSeconds": 1800,
"targetCpuAvgUtilizationPct": 50,
"targetMemoryAvgUtilizationPct": 50,
"useSessionAffinity": true
},
"hardwareTierId": "<string>",
"vanityUrl": "<string>"
},
"description": "<string>",
"versionNumber": 123
},
"instance": {
"createdAt": 123,
"id": "<string>",
"status": "<string>",
"describeUrl": "<string>",
"dfsCommitId": "<string>",
"gitCommitId": "<string>",
"lastSynced": {
"syncedAt": 123,
"dfsCommitId": "<string>",
"importedRepoCommits": [
{
"ref": "<string>",
"repoId": "<string>"
}
],
"mainRepoCommitId": "<string>"
},
"publisher": {
"id": "<string>",
"name": "<string>"
}
},
"warnings": [
"<string>"
]
}{
"error": "<string>"
}{
"code": "UNAUTHORIZED",
"message": "Authentication is required to access this resource."
}{
"code": "FORBIDDEN",
"message": "You do not have permission to perform this action."
}{
"error": "<string>"
}{
"errors": [
"<string>"
],
"requestId": "bbd78579-93c4-45ee-a983-0d5c8da6d5b1"
}{
"error": "<string>"
}Create App Version and Start (v1)
Compound endpoint that creates a new version and initiates a run of it in a single request. The version is always persisted; if the start initiation fails the response still returns the persisted version with a warnings array describing the failure and the caller can retry via the regular start endpoint.
Stop-previous: if a different version of the same App is already running, it is stopped before the new version starts (uniform one-running-instance-per-App invariant; not draft-specific).
Draft-specific defaulting: when the parent App is a draft AND a previous running version exists on it, omitted content reference fields (dfsCommitId, gitRef, entryScript, environmentId, environmentRevisionId, hardwareTierId, externalVolumeMountIds, netAppVolumeIds) default to the previous running version’s values. On the very first call (no previous running version) all required content fields must be supplied.
Governance only starts when a draft is published.
curl --request POST \
--url https://mycluster.domino.tech/api/apps/v1/apps/{appId}/versions/createAndStart \
--header 'Content-Type: application/json' \
--header 'X-Domino-Api-Key: <api-key>' \
--data '
{
"bundleId": "<string>",
"content": {
"dataPlaneId": "<string>",
"dfsCommitId": "<string>",
"entryScript": "<string>",
"environmentId": "<string>",
"environmentRevisionId": "<string>",
"extendedIdentityPropagationToAppsEnabled": true,
"externalVolumeMountIds": [
"<string>"
],
"importedGitRepoRefPatches": [
{
"repoId": "<string>",
"gitRef": {
"value": "<string>"
}
}
],
"mountDatasets": true,
"netAppVolumeIds": [
"<string>"
],
"resolvedCommits": {
"dfsCommitId": "<string>",
"gitCommitId": "<string>",
"importedGitRepos": [
{
"repoId": "<string>",
"ref": "<string>",
"repoName": "<string>"
}
],
"importedProjects": [
{
"commitId": "<string>",
"directoryName": "<string>",
"ownerId": "<string>",
"projectId": "<string>",
"projectName": "<string>",
"release": "<string>"
}
]
}
},
"deployment": {
"hardwareTierId": "<string>",
"renderIFrame": true,
"vanityUrl": "<string>"
},
"description": "<string>",
"startOverrides": {
"deployment": {
"hardwareTierId": "<string>",
"renderIFrame": true,
"vanityUrl": "<string>"
}
},
"tags": [
{
"key": "<string>",
"value": "<string>"
}
]
}
'import requests
url = "https://mycluster.domino.tech/api/apps/v1/apps/{appId}/versions/createAndStart"
payload = {
"bundleId": "<string>",
"content": {
"dataPlaneId": "<string>",
"dfsCommitId": "<string>",
"entryScript": "<string>",
"environmentId": "<string>",
"environmentRevisionId": "<string>",
"extendedIdentityPropagationToAppsEnabled": True,
"externalVolumeMountIds": ["<string>"],
"importedGitRepoRefPatches": [
{
"repoId": "<string>",
"gitRef": { "value": "<string>" }
}
],
"mountDatasets": True,
"netAppVolumeIds": ["<string>"],
"resolvedCommits": {
"dfsCommitId": "<string>",
"gitCommitId": "<string>",
"importedGitRepos": [
{
"repoId": "<string>",
"ref": "<string>",
"repoName": "<string>"
}
],
"importedProjects": [
{
"commitId": "<string>",
"directoryName": "<string>",
"ownerId": "<string>",
"projectId": "<string>",
"projectName": "<string>",
"release": "<string>"
}
]
}
},
"deployment": {
"hardwareTierId": "<string>",
"renderIFrame": True,
"vanityUrl": "<string>"
},
"description": "<string>",
"startOverrides": { "deployment": {
"hardwareTierId": "<string>",
"renderIFrame": True,
"vanityUrl": "<string>"
} },
"tags": [
{
"key": "<string>",
"value": "<string>"
}
]
}
headers = {
"X-Domino-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Domino-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
bundleId: '<string>',
content: {
dataPlaneId: '<string>',
dfsCommitId: '<string>',
entryScript: '<string>',
environmentId: '<string>',
environmentRevisionId: '<string>',
extendedIdentityPropagationToAppsEnabled: true,
externalVolumeMountIds: ['<string>'],
importedGitRepoRefPatches: [{repoId: '<string>', gitRef: {value: '<string>'}}],
mountDatasets: true,
netAppVolumeIds: ['<string>'],
resolvedCommits: {
dfsCommitId: '<string>',
gitCommitId: '<string>',
importedGitRepos: [{repoId: '<string>', ref: '<string>', repoName: '<string>'}],
importedProjects: [
{
commitId: '<string>',
directoryName: '<string>',
ownerId: '<string>',
projectId: '<string>',
projectName: '<string>',
release: '<string>'
}
]
}
},
deployment: {hardwareTierId: '<string>', renderIFrame: true, vanityUrl: '<string>'},
description: '<string>',
startOverrides: {
deployment: {hardwareTierId: '<string>', renderIFrame: true, vanityUrl: '<string>'}
},
tags: [{key: '<string>', value: '<string>'}]
})
};
fetch('https://mycluster.domino.tech/api/apps/v1/apps/{appId}/versions/createAndStart', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://mycluster.domino.tech/api/apps/v1/apps/{appId}/versions/createAndStart",
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([
'bundleId' => '<string>',
'content' => [
'dataPlaneId' => '<string>',
'dfsCommitId' => '<string>',
'entryScript' => '<string>',
'environmentId' => '<string>',
'environmentRevisionId' => '<string>',
'extendedIdentityPropagationToAppsEnabled' => true,
'externalVolumeMountIds' => [
'<string>'
],
'importedGitRepoRefPatches' => [
[
'repoId' => '<string>',
'gitRef' => [
'value' => '<string>'
]
]
],
'mountDatasets' => true,
'netAppVolumeIds' => [
'<string>'
],
'resolvedCommits' => [
'dfsCommitId' => '<string>',
'gitCommitId' => '<string>',
'importedGitRepos' => [
[
'repoId' => '<string>',
'ref' => '<string>',
'repoName' => '<string>'
]
],
'importedProjects' => [
[
'commitId' => '<string>',
'directoryName' => '<string>',
'ownerId' => '<string>',
'projectId' => '<string>',
'projectName' => '<string>',
'release' => '<string>'
]
]
]
],
'deployment' => [
'hardwareTierId' => '<string>',
'renderIFrame' => true,
'vanityUrl' => '<string>'
],
'description' => '<string>',
'startOverrides' => [
'deployment' => [
'hardwareTierId' => '<string>',
'renderIFrame' => true,
'vanityUrl' => '<string>'
]
],
'tags' => [
[
'key' => '<string>',
'value' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Domino-Api-Key: <api-key>"
],
]);
$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 := "https://mycluster.domino.tech/api/apps/v1/apps/{appId}/versions/createAndStart"
payload := strings.NewReader("{\n \"bundleId\": \"<string>\",\n \"content\": {\n \"dataPlaneId\": \"<string>\",\n \"dfsCommitId\": \"<string>\",\n \"entryScript\": \"<string>\",\n \"environmentId\": \"<string>\",\n \"environmentRevisionId\": \"<string>\",\n \"extendedIdentityPropagationToAppsEnabled\": true,\n \"externalVolumeMountIds\": [\n \"<string>\"\n ],\n \"importedGitRepoRefPatches\": [\n {\n \"repoId\": \"<string>\",\n \"gitRef\": {\n \"value\": \"<string>\"\n }\n }\n ],\n \"mountDatasets\": true,\n \"netAppVolumeIds\": [\n \"<string>\"\n ],\n \"resolvedCommits\": {\n \"dfsCommitId\": \"<string>\",\n \"gitCommitId\": \"<string>\",\n \"importedGitRepos\": [\n {\n \"repoId\": \"<string>\",\n \"ref\": \"<string>\",\n \"repoName\": \"<string>\"\n }\n ],\n \"importedProjects\": [\n {\n \"commitId\": \"<string>\",\n \"directoryName\": \"<string>\",\n \"ownerId\": \"<string>\",\n \"projectId\": \"<string>\",\n \"projectName\": \"<string>\",\n \"release\": \"<string>\"\n }\n ]\n }\n },\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n },\n \"description\": \"<string>\",\n \"startOverrides\": {\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n }\n },\n \"tags\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Domino-Api-Key", "<api-key>")
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("https://mycluster.domino.tech/api/apps/v1/apps/{appId}/versions/createAndStart")
.header("X-Domino-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"bundleId\": \"<string>\",\n \"content\": {\n \"dataPlaneId\": \"<string>\",\n \"dfsCommitId\": \"<string>\",\n \"entryScript\": \"<string>\",\n \"environmentId\": \"<string>\",\n \"environmentRevisionId\": \"<string>\",\n \"extendedIdentityPropagationToAppsEnabled\": true,\n \"externalVolumeMountIds\": [\n \"<string>\"\n ],\n \"importedGitRepoRefPatches\": [\n {\n \"repoId\": \"<string>\",\n \"gitRef\": {\n \"value\": \"<string>\"\n }\n }\n ],\n \"mountDatasets\": true,\n \"netAppVolumeIds\": [\n \"<string>\"\n ],\n \"resolvedCommits\": {\n \"dfsCommitId\": \"<string>\",\n \"gitCommitId\": \"<string>\",\n \"importedGitRepos\": [\n {\n \"repoId\": \"<string>\",\n \"ref\": \"<string>\",\n \"repoName\": \"<string>\"\n }\n ],\n \"importedProjects\": [\n {\n \"commitId\": \"<string>\",\n \"directoryName\": \"<string>\",\n \"ownerId\": \"<string>\",\n \"projectId\": \"<string>\",\n \"projectName\": \"<string>\",\n \"release\": \"<string>\"\n }\n ]\n }\n },\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n },\n \"description\": \"<string>\",\n \"startOverrides\": {\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n }\n },\n \"tags\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mycluster.domino.tech/api/apps/v1/apps/{appId}/versions/createAndStart")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Domino-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"bundleId\": \"<string>\",\n \"content\": {\n \"dataPlaneId\": \"<string>\",\n \"dfsCommitId\": \"<string>\",\n \"entryScript\": \"<string>\",\n \"environmentId\": \"<string>\",\n \"environmentRevisionId\": \"<string>\",\n \"extendedIdentityPropagationToAppsEnabled\": true,\n \"externalVolumeMountIds\": [\n \"<string>\"\n ],\n \"importedGitRepoRefPatches\": [\n {\n \"repoId\": \"<string>\",\n \"gitRef\": {\n \"value\": \"<string>\"\n }\n }\n ],\n \"mountDatasets\": true,\n \"netAppVolumeIds\": [\n \"<string>\"\n ],\n \"resolvedCommits\": {\n \"dfsCommitId\": \"<string>\",\n \"gitCommitId\": \"<string>\",\n \"importedGitRepos\": [\n {\n \"repoId\": \"<string>\",\n \"ref\": \"<string>\",\n \"repoName\": \"<string>\"\n }\n ],\n \"importedProjects\": [\n {\n \"commitId\": \"<string>\",\n \"directoryName\": \"<string>\",\n \"ownerId\": \"<string>\",\n \"projectId\": \"<string>\",\n \"projectName\": \"<string>\",\n \"release\": \"<string>\"\n }\n ]\n }\n },\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n },\n \"description\": \"<string>\",\n \"startOverrides\": {\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n }\n },\n \"tags\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"version": {
"createdAt": 123,
"id": "<string>",
"tags": [
{
"key": "<string>",
"value": "<string>"
}
],
"updatedAt": 123,
"bundle": {
"id": "<string>",
"name": "<string>"
},
"content": {
"mountDatasets": true,
"dataPlaneId": "<string>",
"dfsCommitId": "<string>",
"entryScript": "<string>",
"environmentId": "<string>",
"environmentRevisionId": "<string>",
"extendedIdentityPropagationToAppsEnabled": true,
"externalVolumeMountIds": [
"<string>"
],
"gitRef": {
"value": "<string>"
},
"importedGitRepoRefs": [
{
"gitRef": {
"value": "<string>"
},
"repoId": "<string>",
"repoName": "<string>"
}
],
"netAppVolumeIds": [
"<string>"
],
"resolvedCommits": {
"dfsCommitId": "<string>",
"gitCommitId": "<string>",
"importedGitRepos": [
{
"ref": "<string>",
"repoId": "<string>",
"repoName": "<string>"
}
],
"importedProjects": [
{
"commitId": "<string>",
"directoryName": "<string>",
"ownerId": "<string>",
"projectId": "<string>",
"projectName": "<string>",
"release": "<string>"
}
]
}
},
"currentInstance": {
"createdAt": 123,
"id": "<string>",
"status": "<string>",
"describeUrl": "<string>",
"dfsCommitId": "<string>",
"gitCommitId": "<string>",
"lastSynced": {
"syncedAt": 123,
"dfsCommitId": "<string>",
"importedRepoCommits": [
{
"ref": "<string>",
"repoId": "<string>"
}
],
"mainRepoCommitId": "<string>"
},
"publisher": {
"id": "<string>",
"name": "<string>"
}
},
"deployment": {
"autoscalingSpecification": {
"enabled": true,
"maxReplicas": 15,
"minReplicas": 15,
"scaleDownStabilizationWindowSeconds": 1800,
"scaleUpStabilizationWindowSeconds": 1800,
"targetCpuAvgUtilizationPct": 50,
"targetMemoryAvgUtilizationPct": 50,
"useSessionAffinity": true
},
"hardwareTierId": "<string>",
"vanityUrl": "<string>"
},
"description": "<string>",
"versionNumber": 123
},
"instance": {
"createdAt": 123,
"id": "<string>",
"status": "<string>",
"describeUrl": "<string>",
"dfsCommitId": "<string>",
"gitCommitId": "<string>",
"lastSynced": {
"syncedAt": 123,
"dfsCommitId": "<string>",
"importedRepoCommits": [
{
"ref": "<string>",
"repoId": "<string>"
}
],
"mainRepoCommitId": "<string>"
},
"publisher": {
"id": "<string>",
"name": "<string>"
}
},
"warnings": [
"<string>"
]
}{
"error": "<string>"
}{
"code": "UNAUTHORIZED",
"message": "Authentication is required to access this resource."
}{
"code": "FORBIDDEN",
"message": "You do not have permission to perform this action."
}{
"error": "<string>"
}{
"errors": [
"<string>"
],
"requestId": "bbd78579-93c4-45ee-a983-0d5c8da6d5b1"
}{
"error": "<string>"
}Authorizations
Path Parameters
Body
Request body for POST /apps/{appId}/versions/createAndStart and the optional initialVersion sub-flow on POST /apps/drafts.
Content (reproducibility) and deployment (execution) settings are grouped under nested sub-objects matching AppVersionCreationRequestV1. Run-time overrides for the initiated instance (vanityUrl, autoscalingSpecification, etc.) are carried separately under startOverrides.
Draft-specific defaulting: when the parent App is a draft AND a previous running version exists, omitted content reference fields default to the previous running version's values (commits, refs, environment, mounts, hardware tier).
Governance only starts when a draft is published.
Guardrails bundle ID. Not applicable on drafts.
Reproducibility fields that define the version's content. All fields are optional; omitted fields fall back to App-level defaults or the previous draft's values depending on context. Mirrors the response-side AppVersionContent shape.
Show child attributes
Show child attributes
Execution settings for the version. All fields are optional; omitted fields fall back to App-level defaults or the previous version's values depending on context. Mirrors the response-side AppVersionDeployment shape.
Show child attributes
Show child attributes
Optional deployment-only run-time overrides for the initiated instance (deployment.hardwareTierId, deployment.autoscalingSpecification, deployment.vanityUrl, deployment.renderIFrame).
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
Version persisted and start initiated. If start initiation failed, the response carries the durable version plus a warnings array.
Response body for POST /apps/{appId}/versions/createAndStart. version is always present (the version is durably persisted before start initiation). instance is populated when start initiation succeeds; if it fails the response carries the version with a warnings array describing the failure and the caller can retry via the regular start endpoint.
Related topics
Create App Version (v1)Create App (v1)Start App Version (v1)Create or ensure a draft App for a workspace (v1)Was this page helpful?