Skip to main content
POST
/
api
/
apps
/
v1
/
apps
/
drafts
Create or ensure a draft App for a workspace (v1)
curl --request POST \
  --url https://api.example.com/api/apps/v1/apps/drafts \
  --header 'Content-Type: application/json' \
  --header 'X-Domino-Api-Key: <api-key>' \
  --data '
{
  "workspaceId": "<string>",
  "app": {
    "accessStatuses": [
      {
        "userId": "<string>"
      }
    ],
    "configurationType": "STANDARD",
    "description": "<string>",
    "discoverable": true,
    "mountDatasets": true,
    "name": "<string>",
    "renderIFrame": true
  },
  "initialVersion": {
    "bundleId": "<string>",
    "dataPlaneId": "<string>",
    "description": "<string>",
    "dfsCommitId": "<string>",
    "entryScript": "<string>",
    "environmentId": "<string>",
    "environmentRevisionId": "<string>",
    "extendedIdentityPropagationToAppsEnabled": false,
    "externalVolumeMountIds": [
      "<string>"
    ],
    "hardwareTierId": "<string>",
    "mountDatasets": true,
    "netAppVolumeIds": [
      "<string>"
    ],
    "resolvedDfsCommitId": "<string>",
    "resolvedGitCommitId": "<string>",
    "resolvedImportedGitRepos": [
      {
        "ref": "<string>",
        "repoId": "<string>",
        "repoName": "<string>"
      }
    ],
    "resolvedImportedProjects": [
      {
        "commitId": "<string>",
        "directoryName": "<string>",
        "ownerId": "<string>",
        "projectId": "<string>",
        "projectName": "<string>",
        "release": "<string>"
      }
    ],
    "startOverrides": {
      "deployment": {
        "hardwareTierId": "<string>",
        "renderIFrame": true,
        "vanityUrl": "<string>"
      }
    },
    "tags": [
      {
        "key": "<string>",
        "value": "<string>"
      }
    ]
  },
  "targetAppId": "<string>"
}
'
{
  "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>"
        },
        "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>",
        "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
    },
    "customFields": [
      {
        "fields": [
          {
            "customFieldId": "<string>",
            "customFieldLabel": "<string>",
            "updatedAt": 123,
            "updatedBy": {
              "userId": "<string>",
              "username": "<string>"
            },
            "value": "<string>"
          }
        ],
        "groupName": "<string>"
      }
    ],
    "description": "<string>",
    "taxonomyTags": [
      {
        "id": "<string>",
        "label": "<string>",
        "namespaceId": "<string>",
        "description": "<string>",
        "fullPath": [
          "<string>"
        ],
        "namespaceLabel": "<string>"
      }
    ],
    "thumbnailEtag": "<string>",
    "updatedAt": 123,
    "vanityUrl": "<string>"
  },
  "instance": {
    "createdAt": 123,
    "id": "<string>",
    "status": "<string>",
    "describeUrl": "<string>",
    "dfsCommitId": "<string>",
    "gitCommitId": "<string>",
    "publisher": {
      "id": "<string>",
      "name": "<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>"
      },
      "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>",
      "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
  },
  "warnings": [
    "<string>"
  ]
}

Authorizations

X-Domino-Api-Key
string
header
required

Body

application/json

Request body for POST /apps/drafts. Idempotent per workspace. On first call (no draft linked to this workspace yet), creates a new draft App with isDraft=true, vanityUrlNamespace=AppDrafts, entryPoint=null, authorId=caller, and projectId resolved from the workspace; missing app fields use defaults (name=Draft App, visibility=GRANT_BASED, etc.). The new draft's id is then linked to the workspace. On re-entry (workspace already has a draft), returns the existing draft with any supplied DraftAppFields applied as a PATCH; missing fields leave the existing draft untouched. If the workspace's draft pointer references an App that was deleted out-of-band, the pointer is self-healed: a fresh draft is created and re-linked. Optional initialVersion sub-flow: when initialVersion is supplied, a createAndStart is performed against the resulting draft after the draft itself has been ensured. The new version inherits draft defaulting (omitted content reference fields default to the previous running version when one exists), bundleId is forced empty on the draft App's version, and an instance is initiated. The response then carries the version (and instance, when start initiation succeeds) alongside the draft App.

workspaceId
string
required

The workspace this draft is scoped to. Required. Must be visible to the caller; unknown or hidden workspaces return 404.

app
object

Optional draft App field overrides. On create, missing fields use defaults. On re-entry, supplied fields PATCH the existing draft; missing fields leave the existing values untouched.

initialVersion
object

Optional initial-version createAndStart payload. When present, a createAndStart is performed against the draft after the draft is ensured. entryScript is required when initialVersion is supplied (drafts always require entryScript on the version since entryPoint is null on the App).

targetAppId
string

Optional id of an existing App the client plans to publish into. Not persisted. Currently advisory; the backend ignores it during draft creation.

Response

Success

Response body for POST /apps/drafts. The draft App is always present; version and instance are populated only when an initialVersion was supplied. If the initial-version start initiation fails, the version is still returned alongside a warnings array describing the failure.

app
object
required
instance
object

Present only when an initialVersion was supplied AND start initiation succeeded.

version
object

Present only when an initialVersion was supplied.

warnings
string[]

Non-fatal warnings (e.g., initial start initiation failure).