Deplo

Input types

Every input object a mutation or query argument takes, with its fields.

Every input type in the schema, A to Z. A ! on the type means the field is required.

AddMemberInput

FieldTypeDescription
capabilities[Capability!]
roleRoleOne of member, owner, viewer.
roleIdString
userIdString!

AddRegistryInput

FieldTypeDescription
nameString!
passwordString!
registryUrlString
typeRegistryType!One of dockerhub, generic, ghcr, gitlab.
usernameString!

AddServerInput

Register a remote server. Provisioned by a call-home bootstrap (no SSH-in): you run the returned install command on the box.

FieldTypeDescription
allTeamsBoolean
buildOnlyBoolean
hostString!
importOnlyBoolean
nameString!
storageOnlyBoolean
teamIds[String!]

AppEnvInput

An initial environment variable for a new app.

FieldTypeDescription
keyString!
typeString"plain" or "secret". Omitted is plain - nothing is typed secret on your behalf; a secret is write-only from the moment it lands.
valueString!

AppPreviewSettingsInput

FieldTypeDescription
autoDeployBooleanRebuild a preview when its pull request gets a new commit.
baseDomainStringe.g. preview.example.com, with a wildcard DNS record pointing here. Empty clears it back to the zero-configuration nip.io default.
buildDraftsBooleanBuild a pull request that is still a draft.
commentBooleanPost the preview URL as a comment on the pull request.
enabledBoolean
forkPolicyStringdeny | approve | allow.
httpsBooleanServe previews over HTTPS. Needs a preview domain.
maxActiveInt
portIntContainer port. Empty => the app's build port.
requiredLabelsStringNewline-separated labels a pull request must carry. Empty => no filter.
serverIdStringWhere previews run. Empty => the app's own server.
ttlDaysInt

BuildConfigInput

Partial build configuration; only the provided fields are changed.

FieldTypeDescription
buildCacheBooleanReuse the owning server's Docker layer cache between builds of this app (default true). False rebuilds every layer from scratch each time.
buildCommandString
buildMethodString
includeFilesOutsideRootBoolean
installCommandString
outputDirString
portInt
rootDirString
runtimeVersionString
settingsJSON
skipUnchangedDeploymentsBoolean
startCommandString

ComposeNameClashesInput

FieldTypeDescription
composeString!
environmentIdString
folderIdString
projectIdString
serverIdString

ConnectGitProviderInput

FieldTypeDescription
allowPrivateEndpointBooleanAllow an address inside the deployment, for a git server on your own network. Instance-admin only; refused otherwise.
baseUrlString!Origin of the git host. A bare domain becomes https://; a path or embedded credentials are refused.
labelString!
providerString!gitlab | bitbucket | gitea | git.
tokenString!Access token. Write-only.
usernameStringBasic-auth username for the clone. Defaults per provider.

CreateAppFromTemplateInput

FieldTypeDescription
deployBooleanRequest the first deployment. Defaults to false; a token also needs deploy_apps.
environmentIdString
folderIdString
nameStringThe new App name. Omitted uses the template name.
projectIdString
serverIdString
templateSlugString!The catalog template slug from templateVariants.
variantSlugStringThe variant slug. Omitted uses the "default" variant.

CreateAppInput

FieldTypeDescription
autoDeployBoolean
autoDomainString
autoDomainPathString
buildBuildConfigInput
buildServerIdStringWhere the app COMPILES, when that is not where it runs. Omitted is Automatic - a build-only server if the fleet has one.
composeString
composePortInt
composeServiceString
composeUpArgsStringExtra flags appended to docker compose up for a compose stack. Validated against the same allow-list the app's settings use.
dockerImageString
env[AppEnvInput!]
environmentIdString
extraDomains[ExtraDomainInput!]
folderIdString
logoString
mounts[MountInput!]
nameString!
projectIdString
renameClashesBooleanRename a service whose name a neighbour on the destination network already answers to (db becomes db-2), carrying its references, instead of refusing the stack. See composeNameClashes.
repoGitRepoInput
serverIdString
sharedVarIds[String!]Shared variables to link to the new app, so its FIRST deploy already carries them (ADR-0012: linking is the injection, and it is opt-in).
sourceDeploySource!One of COMPOSE, DOCKER_IMAGE, GIT, GITHUB, UPLOAD.

CreateBackupInput

FieldTypeDescription
appIdString
databaseIdString
destinationIdString!
nameString!
retentionCountInt!
scheduleString!
targetKindBackupTargetKindOne of app, database.
timezoneString

CreateDatabaseInput

FieldTypeDescription
dbNameString
environmentIdID
exposedPortInt
exposedPubliclyBoolean
nameString!
passwordString
serverIdID
typeDatabaseType!One of clickhouse, mariadb, mongodb, mysql, postgres, redis.
usernameString
versionString!

CreateDestinationInput

FieldTypeDescription
accessKeyString
allowPrivateEndpointBoolean
bucketString
endpointString
kindDestinationKind!One of s3, server.
nameString!
pathString
providerS3ProviderOne of AWS, BACKBLAZE_B2, CLOUDFLARE_R2, DIGITALOCEAN, MINIO, OTHER, WASABI.
regionString
s3ExtraArgsString
secretKeyString
serverIdString

CreateRoleInput

FieldTypeDescription
capabilities[Capability!]
descriptionString
nameString!
requireTwoFactorBoolean
scopeRoleScopeInput

CreateTokenInput

FieldTypeDescription
appIds[String!]
capabilities[Capability!]
expiresAtString
folderIds[String!]
instanceAdminBoolean
nameString!
projectIds[String!]
teamIds[String!]

CronJobEnvInput

One extra variable for a job. The value is encrypted at rest and reaches the host inside the mTLS RPC - it is never readable back.

FieldTypeDescription
keyString!
valueStringOmit (or null) when editing to keep the stored value of an existing variable.

CronJobInput

Every field is optional so one input serves create and edit; create requires name, schedule and command.

FieldTypeDescription
commandString
descriptionString
enabledBoolean
env[CronJobEnvInput!]Replaces the job's variables wholesale when present.
keepRunsInt10 to 500.
maxAttemptsInt1 to 4. 1 means no retry.
nameString
overlapStringskip | allow.
scheduleString5-field cron.
serviceStringEmpty => the target's own container.
shellStringsh | bash.
timeoutSecondsIntPer attempt, 1s to 24h.
timezoneStringIANA zone, e.g. Europe/Rome.
userString
workdirString

DatabaseMountInput

One config file to write next to the database's stack and bind-mount into its container. filePath is relative to the stack's files directory; mountPath is the absolute path inside the container and may not be inside the engine's data directory.

FieldTypeDescription
contentString!
filePathString!
mountPathString!

DeleteUserInput

FieldTypeDescription
deleteCreatedAppsBoolean
deleteFoundedTeamsBoolean
deleteOwnedWorkspacesBoolean
userIdString!

DomainConfigInput

Per-domain routing config; an omitted certProvider means no certificate (plain HTTP), unless the add-time DNS check finds the host proxied through Cloudflare, then it is stored as cloudflare.

FieldTypeDescription
certProviderCertProviderOne of cloudflare, custom, letsencrypt, none.
entrypointDomainEntrypointOne of web, websecure.
middlewares[String!]
pathPrefixString
portInt
proxiedBoolean
serviceString
stripPrefixBoolean
wwwDomainWwwRedirectOne of none, toCounterpart, toThis.

DomainPatchInput

Partial domain edit; only the provided fields are changed. Null clears an override.

FieldTypeDescription
certProviderCertProviderOne of cloudflare, custom, letsencrypt, none.
entrypointDomainEntrypointOne of web, websecure.
middlewares[String!]
nameString
pathPrefixString
portInt
proxiedBoolean
serviceString
stripPrefixBoolean
wwwDomainWwwRedirectOne of none, toCounterpart, toThis.

EnvEntryInput

FieldTypeDescription
keyString!
valueString!

ExecConsoleInput

FieldTypeDescription
appIdString!
commandString!
containerNameString

ExecDatabaseConsoleInput

FieldTypeDescription
commandString!
databaseIdString!

ExtraDomainInput

An extra (non-primary) routed host: the compose service + port it targets, its hostname and the path it answers on. No hostname => one is generated. Registered as an auto Domain row at creation; the domains table is the sole routing source after.

FieldTypeDescription
hostString
pathString
portInt!
serviceString!

GitRepoInput

FieldTypeDescription
branchString!
connectionIdStringA git connection (any other host) that authenticates the clone and carries the push webhook.
installationIdStringA GitHub App installation that authenticates the clone.
providerString!github | gitlab | bitbucket | gitea | git. Anything else is stored as git.
repoString!
submodulesBoolean
triggerTypeString"push" or "tag".
urlString!
watchPaths[String!]

HealthCheckInput

A health check to save. Send null instead to turn it off. An http check needs curl or wget in the image; one that has neither cannot answer, and the container would sit unhealthy.

FieldTypeDescription
commandString
intervalSInt!
pathString
portInt
retriesInt!
startPeriodSInt!
timeoutSInt!
typeHealthCheckType!One of command, http.

MigrationPlacementInput

Where one service lands. serviceId is the sourceId a scan reports. Omit buildServerId (or send null) for Automatic - Deplo uses a build server if the fleet has one, and compiles where the app runs otherwise.

FieldTypeDescription
buildServerIdString
exposedPortIntA database's host port. Omit the field to keep the port it had over there (what the import has always done); send null to publish nothing; send a number to publish there instead - which is how a review resolves a port something else already holds on the target server. Ignored for anything that is not a database.
serverIdString!
serviceIdString!

MigrationRunTargetInput

FieldTypeDescription
buildServerIdString
exposedPortIntA database's host port. THREE values, and the difference matters: omitted keeps the source's own, null publishes nothing, a number publishes there.
projectIdString!
projectNameString!Shown while the run works through it, so the runner needs no second read of the API for a name.
serverIdString
serviceIdString!

MigrationServerChoiceInput

Map one of the panel's servers onto one of ours. from is that server's id, or the empty string for the panel's own host.

FieldTypeDescription
fromString!
toString!

MigrationSourceInput

FieldTypeDescription
apiKeyString!The panel's API key or token. Dokploy: Settings -> Profile -> API/CLI. Coolify: Keys & Tokens -> API tokens, with deploy ticked first, then read and read:sensitive - without deploy the data step cannot stop a service, without read:sensitive the values and database passwords arrive empty. Use an owner's or admin's either way: a plain member's is refused. Never stored.
kindMigrationPlatformRead the panel as this product. Omit it and Deplo works out which it is from the address and the token. One of coolify, dokploy.
urlString!The panel's address. Deplo appends the API path itself, so paste the address you open in a browser.

MintRegistrationLinkInput

FieldTypeDescription
modeRegistrationMode!One of existing_teams, own_team.
teamAssignments[RegistrationTeamAssignmentInput!]

MountInput

A config file a template materialises into its stack at deploy.

FieldTypeDescription
contentString!
filePathString!

NodeGrantInput

One capability set, applied to every node named here. Send several to give different nodes different sets.

FieldTypeDescription
appIds[String!]
capabilities[Capability!]!
folderIds[String!]
projectIds[String!]

PublishedPortInput

A host port an app publishes.

FieldTypeDescription
idString
protocolString
publishedInt!
targetInt!

RegistrationTeamAssignmentInput

FieldTypeDescription
capabilities[Capability!]
roleRole!One of member, owner, viewer.
teamIdString!

ResourceLimitsInput

Per-container resource caps. Every field is optional and independently nullable (null => that dimension is uncapped); the form sends the full set on each save. Memory in MiB, disk in GiB, CPU in milli-CPUs (1000 = one core).

FieldTypeDescription
cpuMilliInt
cpuSharesInt
cpusetString
memoryMbInt
memoryReservationMbInt
nofileInt
nprocInt
oomScoreAdjInt
pidsLimitInt
shmSizeMbInt
storageGbInt
swapMbInt

RoleScopeInput

The nodes a role reaches. Ticking a project, one of its environments or a folder covers everything inside it, now and later; omit the field entirely for the whole team.

FieldTypeDescription
appIds[String!]
environmentIds[String!]
folderIds[String!]
projectIds[String!]

SaveSharedVarInput

Create (omit id) or update (provide id) one shared variable. It must be shared with something: ≥1 team, ≥1 environment, ≥1 project, or ≥1 app.

FieldTypeDescription
appIds[String!]The per-app links, as a whole set. OMIT to leave the existing links untouched - that is what preserves setSharedVarAppLink's app-side toggle.
environmentIds[ID!]!
idString
keyString!
projectIds[ID!]!
targets[EnvTarget!]One of preview, production.
teamIds[ID!]!Teams every app of which gets this variable. ONE team => it is only SUGGESTED there and the per-app link injects (ADR-0012); TWO OR MORE => it is injected into every app of every one of them, with no link, at the lowest precedence. The caller must hold manage_env across the whole of every team named here.
typeEnvVarType!One of plain, secret.
valueString!

ServerCertificateInput

A certificate and the private key it was issued for, as PEM text.

FieldTypeDescription
certificateString!The certificate in PEM form. Paste the FULL chain: the certificate followed by any intermediates, which browsers need.
privateKeyString!The matching private key in PEM form, without a passphrase. It is sent to the server and is never readable afterwards.

SetMemberAccessInput

Deliberately carries no teamId: the active team is the caller's, and an id here would be a way to write another team's memberships.

FieldTypeDescription
capabilities[Capability!]
grants[NodeGrantInput!]
granularBoolean!
roleIdString!
userIdString!

SetServerTeamsInput

Set which teams may target a server. allTeams: true opens it to every team (clearing specific grants); false restricts it to teamIds.

FieldTypeDescription
allTeamsBoolean!
serverIdString!
teamIds[String!]

SetUserTeamAccessInput

FieldTypeDescription
grants[NodeGrantInput!]
granularBoolean!
roleIdString!
teamIdString!
userIdString!

ShellLabelInput

FieldTypeDescription
appIdString!
containerNameString

UpdateBackupInput

FieldTypeDescription
destinationIdString!
nameString!
retentionCountInt!
scheduleString!
timezoneString

UpdateDatabaseImageInput

FieldTypeDescription
customCommandString
customImageString
versionString

UpdateDatabaseInput

FieldTypeDescription
exposedPortInt
exposedPubliclyBoolean!
serverIdID

UpdateDockerCleanupPolicyInput

Save the instance-wide cleanup policy. The scopes are a whole-set replace, so a scope left out is a scope no longer reclaimed.

FieldTypeDescription
enabledBoolean!
excludedServerIds[String!]
keepImagesPerAppInt!
minAgeHoursInt!
scheduleString!
scopes[DockerCleanupScope!]!One of build_cache, dangling_images, leftover_app_files, leftover_networks, orphan_buildkit_cache, unused_app_images.

UpdateGitConnectionInput

FieldTypeDescription
labelString
tokenStringA replacement token. Omit to keep the stored one.
usernameString

UpdateMemberInput

FieldTypeDescription
capabilities[Capability!]
roleRoleOne of member, owner, viewer.
roleIdString
userIdString!

UpdateRoleInput

FieldTypeDescription
capabilities[Capability!]
clearScopeBoolean
descriptionString
idString!
nameString!
requireTwoFactorBoolean
scopeRoleScopeInput

UpdateSourceInput

FieldTypeDescription
composeString
dockerImageString
repoGitRepoInput
serverIdString
sourceDeploySource!One of COMPOSE, DOCKER_IMAGE, GIT, GITHUB, UPLOAD.

UpdateTeamInput

FieldTypeDescription
nameString
requireTwoFactorBoolean

UpdateTokenInput

FieldTypeDescription
appIds[String!]
capabilities[Capability!]
expiresAtString
folderIds[String!]
idString!
instanceAdminBoolean
nameString!
projectIds[String!]
teamIds[String!]

UpdateUserAdminInput

FieldTypeDescription
canExposePortsBoolean
canMountHostVolumesBoolean
isInstanceAdminBoolean!
newPasswordString
suspendedBoolean!
userIdString!

UpsertEnvInput

FieldTypeDescription
appIdString!
keyString!
targets[EnvTarget!]One of preview, production.
typeEnvVarType!One of plain, secret.
valueString!

UserTeamInput

FieldTypeDescription
roleIdString
teamIdString!
userIdString!

VolumeInput

A persistent volume mounted into an app.

FieldTypeDescription
hostPathString
idString
mountPathString!
nameString
projectPathString
propagationMountPropagationOne of rshared, rslave.
readOnlyBoolean
serviceString
typeString

Did this page help you?

On this page