curl --request POST \
--url https://mycluster.domino.tech/api/apps/v1/apps/{appId}/publish \
--header 'Content-Type: application/json' \
--header 'X-Domino-Api-Key: <api-key>' \
--data '
{
"appOverrides": {
"accessStatuses": [
{
"userId": "<string>"
}
],
"description": "<string>",
"discoverable": true,
"mountDatasets": true,
"name": "<string>",
"renderIFrame": true,
"vanityUrl": "<string>"
},
"sendNotifications": true,
"start": false,
"startOverrides": {
"deployment": {
"hardwareTierId": "<string>",
"renderIFrame": true,
"vanityUrl": "<string>"
}
},
"targetAppId": "<string>",
"versionOverrides": {
"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>",
"tags": [
{
"key": "<string>",
"value": "<string>"
}
]
}
}
'import requests
url = "https://mycluster.domino.tech/api/apps/v1/apps/{appId}/publish"
payload = {
"appOverrides": {
"accessStatuses": [{ "userId": "<string>" }],
"description": "<string>",
"discoverable": True,
"mountDatasets": True,
"name": "<string>",
"renderIFrame": True,
"vanityUrl": "<string>"
},
"sendNotifications": True,
"start": False,
"startOverrides": { "deployment": {
"hardwareTierId": "<string>",
"renderIFrame": True,
"vanityUrl": "<string>"
} },
"targetAppId": "<string>",
"versionOverrides": {
"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>",
"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({
appOverrides: {
accessStatuses: [{userId: '<string>'}],
description: '<string>',
discoverable: true,
mountDatasets: true,
name: '<string>',
renderIFrame: true,
vanityUrl: '<string>'
},
sendNotifications: true,
start: false,
startOverrides: {
deployment: {hardwareTierId: '<string>', renderIFrame: true, vanityUrl: '<string>'}
},
targetAppId: '<string>',
versionOverrides: {
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>',
tags: [{key: '<string>', value: '<string>'}]
}
})
};
fetch('https://mycluster.domino.tech/api/apps/v1/apps/{appId}/publish', 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}/publish",
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([
'appOverrides' => [
'accessStatuses' => [
[
'userId' => '<string>'
]
],
'description' => '<string>',
'discoverable' => true,
'mountDatasets' => true,
'name' => '<string>',
'renderIFrame' => true,
'vanityUrl' => '<string>'
],
'sendNotifications' => true,
'start' => false,
'startOverrides' => [
'deployment' => [
'hardwareTierId' => '<string>',
'renderIFrame' => true,
'vanityUrl' => '<string>'
]
],
'targetAppId' => '<string>',
'versionOverrides' => [
'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>',
'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}/publish"
payload := strings.NewReader("{\n \"appOverrides\": {\n \"accessStatuses\": [\n {\n \"userId\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"discoverable\": true,\n \"mountDatasets\": true,\n \"name\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n },\n \"sendNotifications\": true,\n \"start\": false,\n \"startOverrides\": {\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n }\n },\n \"targetAppId\": \"<string>\",\n \"versionOverrides\": {\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 \"tags\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\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}/publish")
.header("X-Domino-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"appOverrides\": {\n \"accessStatuses\": [\n {\n \"userId\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"discoverable\": true,\n \"mountDatasets\": true,\n \"name\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n },\n \"sendNotifications\": true,\n \"start\": false,\n \"startOverrides\": {\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n }\n },\n \"targetAppId\": \"<string>\",\n \"versionOverrides\": {\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 \"tags\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mycluster.domino.tech/api/apps/v1/apps/{appId}/publish")
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 \"appOverrides\": {\n \"accessStatuses\": [\n {\n \"userId\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"discoverable\": true,\n \"mountDatasets\": true,\n \"name\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n },\n \"sendNotifications\": true,\n \"start\": false,\n \"startOverrides\": {\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n }\n },\n \"targetAppId\": \"<string>\",\n \"versionOverrides\": {\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 \"tags\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"app": {
"accessControl": {
"accessStatuses": [
{
"userId": "<string>"
}
],
"discoverable": true
},
"authorship": {
"isDraft": true,
"author": {
"id": "<string>",
"name": "<string>"
}
},
"configurationType": "STANDARD",
"entryPoint": "<string>",
"id": "<string>",
"mountDatasets": true,
"name": "<string>",
"project": {
"id": "<string>",
"name": "<string>",
"ownerId": "<string>",
"ownerUsername": "<string>"
},
"renderIFrame": true,
"url": "<string>",
"views": 123,
"currentVersion": {
"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
},
"description": "<string>",
"properties": [
{
"fields": [
{
"propertyId": "<string>",
"propertyLabel": "<string>",
"updatedAt": 123,
"updatedBy": {
"userId": "<string>",
"username": "<string>"
},
"value": "<string>"
}
],
"groupName": "<string>"
}
],
"taxonomyTags": [
{
"id": "<string>",
"label": "<string>",
"namespaceId": "<string>",
"description": "<string>",
"fullPath": [
"<string>"
],
"namespaceLabel": "<string>"
}
],
"thumbnailEtag": "<string>",
"updatedAt": 123,
"vanityUrl": "<string>"
},
"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>"
}Publish content from a draft App (v1)
Publishes content from the draft App identified by {appId} into either a brand-new published App (publish-as-new) or an existing published App (publish-into-existing). The mode is selected implicitly by the request body: targetAppId present selects publish-into-existing, absent selects publish-as-new.
Both branches read the draft’s last-run AppVersion (the version referenced by the most recent AppInstance on the draft) as the publish base, optionally apply content (reproducibility) overrides via versionOverrides, then write the result onto the destination App. For publish-as-new the destination is a new App with isDraft=false and vanityUrlNamespace=Apps; for publish-into-existing the destination is the target App identified by targetAppId. The draft App and its version history are NOT touched — the draft persists post-publish so the same workspace can publish again.
Validation:
- The draft must exist and the caller must have publish permission on it. - The draft (and target App, when publishing into an existing app) must have configurationType=Standard.
- When publishing into an existing app, the draft and target must agree on configurationType and entryScript.
- If the draft has never been previewed and
versionOverridesdoes not supply the required content fields (commitId, entryScript, environmentId, hardwareTierId), returns 422. Clients can useversionOverridesto publish without first previewing. - If neither
versionOverrides.entryScriptnor the publish base supplies an entryScript, the published version usesapp.sh. appOverridesis rejected with 422 whentargetAppIdis present becauseappOverridesis only applied when publish inserts a new App. Note thatstartOverridescan still write deployment fields such asvanityUrl/renderIFrameback to the target App whenstart=true.
Bundle continuity:
- Publish-as-new: the new version’s
bundleIdis whatever the caller supplies, otherwise unset. - Publish-into-existing: the new version inherits the target App’s last
bundleIdunless the caller supplies a different one.
curl --request POST \
--url https://mycluster.domino.tech/api/apps/v1/apps/{appId}/publish \
--header 'Content-Type: application/json' \
--header 'X-Domino-Api-Key: <api-key>' \
--data '
{
"appOverrides": {
"accessStatuses": [
{
"userId": "<string>"
}
],
"description": "<string>",
"discoverable": true,
"mountDatasets": true,
"name": "<string>",
"renderIFrame": true,
"vanityUrl": "<string>"
},
"sendNotifications": true,
"start": false,
"startOverrides": {
"deployment": {
"hardwareTierId": "<string>",
"renderIFrame": true,
"vanityUrl": "<string>"
}
},
"targetAppId": "<string>",
"versionOverrides": {
"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>",
"tags": [
{
"key": "<string>",
"value": "<string>"
}
]
}
}
'import requests
url = "https://mycluster.domino.tech/api/apps/v1/apps/{appId}/publish"
payload = {
"appOverrides": {
"accessStatuses": [{ "userId": "<string>" }],
"description": "<string>",
"discoverable": True,
"mountDatasets": True,
"name": "<string>",
"renderIFrame": True,
"vanityUrl": "<string>"
},
"sendNotifications": True,
"start": False,
"startOverrides": { "deployment": {
"hardwareTierId": "<string>",
"renderIFrame": True,
"vanityUrl": "<string>"
} },
"targetAppId": "<string>",
"versionOverrides": {
"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>",
"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({
appOverrides: {
accessStatuses: [{userId: '<string>'}],
description: '<string>',
discoverable: true,
mountDatasets: true,
name: '<string>',
renderIFrame: true,
vanityUrl: '<string>'
},
sendNotifications: true,
start: false,
startOverrides: {
deployment: {hardwareTierId: '<string>', renderIFrame: true, vanityUrl: '<string>'}
},
targetAppId: '<string>',
versionOverrides: {
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>',
tags: [{key: '<string>', value: '<string>'}]
}
})
};
fetch('https://mycluster.domino.tech/api/apps/v1/apps/{appId}/publish', 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}/publish",
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([
'appOverrides' => [
'accessStatuses' => [
[
'userId' => '<string>'
]
],
'description' => '<string>',
'discoverable' => true,
'mountDatasets' => true,
'name' => '<string>',
'renderIFrame' => true,
'vanityUrl' => '<string>'
],
'sendNotifications' => true,
'start' => false,
'startOverrides' => [
'deployment' => [
'hardwareTierId' => '<string>',
'renderIFrame' => true,
'vanityUrl' => '<string>'
]
],
'targetAppId' => '<string>',
'versionOverrides' => [
'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>',
'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}/publish"
payload := strings.NewReader("{\n \"appOverrides\": {\n \"accessStatuses\": [\n {\n \"userId\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"discoverable\": true,\n \"mountDatasets\": true,\n \"name\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n },\n \"sendNotifications\": true,\n \"start\": false,\n \"startOverrides\": {\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n }\n },\n \"targetAppId\": \"<string>\",\n \"versionOverrides\": {\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 \"tags\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\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}/publish")
.header("X-Domino-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"appOverrides\": {\n \"accessStatuses\": [\n {\n \"userId\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"discoverable\": true,\n \"mountDatasets\": true,\n \"name\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n },\n \"sendNotifications\": true,\n \"start\": false,\n \"startOverrides\": {\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n }\n },\n \"targetAppId\": \"<string>\",\n \"versionOverrides\": {\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 \"tags\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://mycluster.domino.tech/api/apps/v1/apps/{appId}/publish")
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 \"appOverrides\": {\n \"accessStatuses\": [\n {\n \"userId\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"discoverable\": true,\n \"mountDatasets\": true,\n \"name\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n },\n \"sendNotifications\": true,\n \"start\": false,\n \"startOverrides\": {\n \"deployment\": {\n \"hardwareTierId\": \"<string>\",\n \"renderIFrame\": true,\n \"vanityUrl\": \"<string>\"\n }\n },\n \"targetAppId\": \"<string>\",\n \"versionOverrides\": {\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 \"tags\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"app": {
"accessControl": {
"accessStatuses": [
{
"userId": "<string>"
}
],
"discoverable": true
},
"authorship": {
"isDraft": true,
"author": {
"id": "<string>",
"name": "<string>"
}
},
"configurationType": "STANDARD",
"entryPoint": "<string>",
"id": "<string>",
"mountDatasets": true,
"name": "<string>",
"project": {
"id": "<string>",
"name": "<string>",
"ownerId": "<string>",
"ownerUsername": "<string>"
},
"renderIFrame": true,
"url": "<string>",
"views": 123,
"currentVersion": {
"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
},
"description": "<string>",
"properties": [
{
"fields": [
{
"propertyId": "<string>",
"propertyLabel": "<string>",
"updatedAt": 123,
"updatedBy": {
"userId": "<string>",
"username": "<string>"
},
"value": "<string>"
}
],
"groupName": "<string>"
}
],
"taxonomyTags": [
{
"id": "<string>",
"label": "<string>",
"namespaceId": "<string>",
"description": "<string>",
"fullPath": [
"<string>"
],
"namespaceLabel": "<string>"
}
],
"thumbnailEtag": "<string>",
"updatedAt": 123,
"vanityUrl": "<string>"
},
"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}/publish. The mode is implicit: the presence of targetAppId selects publish-into-existing, absence selects publish-as-new. versionOverrides is consumed by both branches and lets the caller override content (reproducibility) fields on a copy of the draft's last-run version before it is written to the destination App. appOverrides carries App-level field overrides for the newly created published App on publish-as-new; omitted fields fall back to the draft's values. start=true optionally launches the resulting App's newest version after the publish persists, with startOverrides carrying deployment (run-time) overrides.
Publish-as-new only. App-level field overrides applied when creating the new published App. Omitted fields fall back to the draft's values. Returns 422 when targetAppId is present because appOverrides is only applied when publish inserts a new App. Note that startOverrides can still write deployment fields back to the target App when start=true.
Show child attributes
Show child attributes
Publish-as-new only. When true and the draft carried accessStatuses, the granted users on the newly-published App receive an email notification (the published App is a fresh insert, so every Allowed entry is treated as a new grant). Ignored on publish-into-existing, which doesn't touch the target App's accessStatuses. Defaults to false when omitted.
When true, the resulting App's newest version is started after the publish persists. Start initiation failures are surfaced as warnings on the response rather than rolling back the publish.
Deployment-only run-time overrides for the optional start initiation (deployment.hardwareTierId, deployment.autoscalingSpecification, deployment.vanityUrl, deployment.renderIFrame). Consumed only when start=true.
Show child attributes
Show child attributes
Optional. Present -> publish-into-existing (new version added to the target App; appOverrides returns 422). Absent -> publish-as-new (a brand-new published App is inserted).
Per-field overrides applied to a copy of the draft's last-run AppVersion during publish. Consumed only by PublishAppRequestV1. Most fields use field-by-field orElse(publishBase.value) semantics: an unset override falls back to whatever the draft's last-run version carries.
Imported-git override fields are patch-based instead: content.importedGitRepoRefPatches and content.resolvedCommits.importedGitRepos apply per-repoId upsert / tombstone patches on top of the publish base rather than replacing it wholesale; unpatched repos inherit their entries from the publish base.
Content (reproducibility) and deployment (execution) settings are grouped under nested sub-objects matching AppVersionCreationRequestV1.
bundleId interplay with publish flows:
- Publish-as-new: new version's
bundleId = versionOverrides.bundleId.orElse(null). - Publish-into-existing: new version'sbundleId = versionOverrides.bundleId.orElse(targetApp.latestVersion.bundleId), matching the legacy update path's carry-forward semantic so governance continuity is preserved across republishes. Explicit override wins.
A supplied bundleId is validated via the Guardrails API; missing bundle -> 404.
content.entryScript, when supplied, overrides the version's entry script (effective entry point). Persisted as the new App's entryPoint on publish-as-new; must match the target's entryPoint on publish-into-existing.
Show child attributes
Show child attributes
Response
Publish succeeded. Returns the resulting App (newly inserted for publish-as-new, the target App for publish-into-existing) plus the newly inserted version. When start=true the started instance is also returned (or a warning if start initiation failed; the version is durably persisted in either case).
Response body for POST /apps/{appId}/publish. app is the resulting destination App (newly inserted for publish-as-new, the target App for publish-into- existing). version is the newly inserted AppVersion. instance is populated only when request.start=true AND start initiation succeeded; if the version was persisted but start initiation failed, the response carries version plus a non-empty warnings array. The draft App itself is unchanged and is not returned in this response -- clients that still need it can read it via GET /apps/{draftId}.
Related topics
Create or ensure a draft App for a workspace (v1)Create App Version and Start (v1)Create App (v1)Create App Version (v1)Was this page helpful?