Templates /
Update template
Required permission
Account > Templates > General > Update
Path parameters
templateId
string requiredID of the template
Request body
- {object}Update template
name
string requiredName of the template.min length3max length100pattern^[a-zA-Z0-9]+((-|\s)[a-zA-Z0-9]+)*$description
stringDescription of the template.max length200pattern^[a-zA-Z0-9.,?\s\\/'"()[\];`%^&*\-_:!]+$apiVersion
string requiredThe version of the Northflank API to run the template against.one ofv1.2options
{object}Options regarding how the template is run.autorun
booleanIf true, the template will run automatically whenever a change is made to it.concurrencyPolicy
stringDefines the concurrency behaviour of the template with respect to parallel runs.one ofallow, queue, forbidarguments
{object}A set of arguments that can be referenced in a template using '${args.argumentName}'.gitops
{object}vcsService
string requiredThe VCS provider to use.one ofbitbucket, gitlab, github, self-hosted, azureselfHostedVcsId
stringIf projectType is self-hosted, the ID of the self-hosted vcs to use.pattern^([A-Za-z0-9-]+\/[A-Za-z0-9-]+)|([0-9a-f]{24})$accountLogin
stringBy default, if you have multiple version control accounts of the same provider linked, Northflank will pick a linked account that has access to the repository. If `accountLogin` is provided, Northflank will instead use your linked account with that login name.vcsLinkId
stringLegacy key. Please used accountLogin instead.repoUrl
string requiredURL of the Git repo to sync the file with.pattern^(https:\/\/)?((www(\.[a-zA-Z0-9\-]{2,})+\.)?[a-zA-Z0-9\-]{2,})(\.([a-zA-Z0-9\-]{2,}))+(\/([a-zA-Z0-9\-._]{2,}))+?$branch
string requiredThe name of the branch to use.filePath
string requiredThe file path in the repository. If using an existing file, it should be in JSON format.pattern^\/([a-zA-Z0-9-._]+\/)*[a-zA-Z0-9-._]+$$schema
stringspec
(multiple options: oneOf) requiredA node representing an action to be performed as part of the template.argumentOverrides
{object}Argument overrides stored outside of the template. If GitOps is enabled, these will not be saved in version control.
- {object}Update template GitOps settings (replace current template with git template)
name
string requiredName of the template.min length3max length100pattern^[a-zA-Z0-9]+((-|\s)[a-zA-Z0-9]+)*$description
stringDescription of the template.max length200pattern^[a-zA-Z0-9.,?\s\\/'"()[\];`%^&*\-_:!]+$argumentOverrides
{object}Argument overrides stored outside of the template. If GitOps is enabled, these will not be saved in version control.gitops
{object} requiredGitOps data for syncing this template with a file in version control. If set to `null`, removes GitOps handling from this template.vcsService
string requiredThe VCS provider to use.one ofbitbucket, gitlab, github, self-hosted, azureselfHostedVcsId
stringIf projectType is self-hosted, the ID of the self-hosted vcs to use.pattern^([A-Za-z0-9-]+\/[A-Za-z0-9-]+)|([0-9a-f]{24})$accountLogin
stringBy default, if you have multiple version control accounts of the same provider linked, Northflank will pick a linked account that has access to the repository. If `accountLogin` is provided, Northflank will instead use your linked account with that login name.vcsLinkId
stringLegacy key. Please used accountLogin instead.repoUrl
string requiredURL of the Git repo to sync the file with.pattern^(https:\/\/)?((www(\.[a-zA-Z0-9\-]{2,})+\.)?[a-zA-Z0-9\-]{2,})(\.([a-zA-Z0-9\-]{2,}))+(\/([a-zA-Z0-9\-._]{2,}))+?$branch
string requiredThe name of the branch to use.filePath
string requiredThe file path in the repository. If using an existing file, it should be in JSON format.pattern^\/([a-zA-Z0-9-._]+\/)*[a-zA-Z0-9-._]+$
Response body
- {object}Response object.
data
{object} requiredResult data.template
{object} requiredDetails about the updated template.name
string requiredName of the template.min length3max length100pattern^[a-zA-Z0-9]+((-|\s)[a-zA-Z0-9]+)*$description
stringDescription of the template.max length200pattern^[a-zA-Z0-9.,?\s\\/'"()[\];`%^&*\-_:!]+$apiVersion
string requiredThe version of the Northflank API to run the template against.one ofv1.2arguments
{object}A set of arguments that can be referenced in a template using '${args.argumentName}'.$schema
stringspec
(multiple options: oneOf) requiredA node representing an action to be performed as part of the template.id
string requiredIdentifier for the templatemin length3max length100pattern^[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$gitops
{object}vcsService
string requiredThe VCS provider to use.one ofbitbucket, gitlab, github, self-hosted, azureselfHostedVcsId
stringIf projectType is self-hosted, the ID of the self-hosted vcs to use.pattern^([A-Za-z0-9-]+\/[A-Za-z0-9-]+)|([0-9a-f]{24})$accountLogin
stringBy default, if you have multiple version control accounts of the same provider linked, Northflank will pick a linked account that has access to the repository. If `accountLogin` is provided, Northflank will instead use your linked account with that login name.vcsLinkId
stringLegacy key. Please used accountLogin instead.repoUrl
string requiredURL of the Git repo to sync the file with.pattern^(https:\/\/)?((www(\.[a-zA-Z0-9\-]{2,})+\.)?[a-zA-Z0-9\-]{2,})(\.([a-zA-Z0-9\-]{2,}))+(\/([a-zA-Z0-9\-._]{2,}))+?$branch
string requiredThe name of the branch to use.filePath
string requiredThe file path in the repository. If using an existing file, it should be in JSON format.pattern^\/([a-zA-Z0-9-._]+\/)*[a-zA-Z0-9-._]+$templateSha
string requiredThe SHA of the current commit that is being used for the template.concurrencyPolicy
stringDefines the concurrency behaviour of the template with respect to parallel runs.one ofallow, queue, forbidoptions
{object} requiredautorun
boolean requiredWhether autorun is enabledcreatedAt
stringtime of creationupdatedAt
stringtime of updatetemplateRun
{object}name
string requiredName of the template.min length3max length100pattern^[a-zA-Z0-9]+((-|\s)[a-zA-Z0-9]+)*$description
stringDescription of the template.max length200pattern^[a-zA-Z0-9.,?\s\\/'"()[\];`%^&*\-_:!]+$apiVersion
string requiredThe version of the Northflank API to run the template against.one ofv1.2options
{object}Options regarding how the template is run.autorun
booleanIf true, the template will run automatically whenever a change is made to it.concurrencyPolicy
stringDefines the concurrency behaviour of the template with respect to parallel runs.one ofallow, queue, forbidarguments
{object}A set of arguments that can be referenced in a template using '${args.argumentName}'.gitops
{object}vcsService
string requiredThe VCS provider to use.one ofbitbucket, gitlab, github, self-hosted, azureselfHostedVcsId
stringIf projectType is self-hosted, the ID of the self-hosted vcs to use.pattern^([A-Za-z0-9-]+\/[A-Za-z0-9-]+)|([0-9a-f]{24})$accountLogin
stringBy default, if you have multiple version control accounts of the same provider linked, Northflank will pick a linked account that has access to the repository. If `accountLogin` is provided, Northflank will instead use your linked account with that login name.vcsLinkId
stringLegacy key. Please used accountLogin instead.repoUrl
string requiredURL of the Git repo to sync the file with.pattern^(https:\/\/)?((www(\.[a-zA-Z0-9\-]{2,})+\.)?[a-zA-Z0-9\-]{2,})(\.([a-zA-Z0-9\-]{2,}))+(\/([a-zA-Z0-9\-._]{2,}))+?$branch
string requiredThe name of the branch to use.filePath
string requiredThe file path in the repository. If using an existing file, it should be in JSON format.pattern^\/([a-zA-Z0-9-._]+\/)*[a-zA-Z0-9-._]+$$schema
stringspec
(multiple options: oneOf) requiredA node representing an action to be performed as part of the template.refs
{object}id
string requiredIdentifier for the template runtemplateId
string requiredIdentifier for the templatestatus
string requiredStatus of the template runone ofpending, running, success, failure, aborted, aborting, queued, unknown, skipped, waiting, retrying, async_wait, approval_waitconcluded
boolean requiredWhether the run has concluded (aborted, success, failed)createdAt
string requiredTimestamp the run was created at.updatedAt
string requiredTimestamp the run was last updated at.
POST /v1/templates/{templateId}
Example request
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer NORTHFLANK_API_TOKEN" \
--request POST \
--data '{"name":"Example Template","description":"This is a sample template.","apiVersion":"v1.2","options":{"autorun":false,"concurrencyPolicy":"allow"},"gitops":{"vcsService":"github","accountLogin":"github-user","repoUrl":"https://github.com/northflank-examples/remix-postgres-redis-demo","branch":"main"},"spec":{"kind":"Workflow","spec":{"context":{"projectId":"example-project"},"type":"sequential"}}}' \
https://api.northflank.com/v1/templates/{templateId}curl --header "Content-Type: application/json" \
--header "Authorization: Bearer NORTHFLANK_API_TOKEN" \
--request POST \
--data '{"name":"Example Template","description":"This is a sample template.","gitops":{"vcsService":"github","accountLogin":"github-user","repoUrl":"https://github.com/northflank-examples/remix-postgres-redis-demo","branch":"main"}}' \
https://api.northflank.com/v1/templates/{templateId}Example response
200 OK
JSON
{
"data": {
"template": {
"name": "Example Template",
"description": "This is a sample template.",
"apiVersion": "v1.2",
"spec": {
"kind": "Workflow",
"spec": {
"context": {
"projectId": "example-project"
},
"type": "sequential"
}
},
"id": "example-template",
"gitops": {
"vcsService": "github",
"accountLogin": "github-user",
"repoUrl": "https://github.com/northflank-examples/remix-postgres-redis-demo",
"branch": "main",
"templateSha": "8c7e040ee3737ddc3a713363ae72bbe960e9fb16"
},
"concurrencyPolicy": "allow"
},
"templateRun": {
"name": "Example Template",
"description": "This is a sample template.",
"apiVersion": "v1.2",
"options": {
"autorun": false,
"concurrencyPolicy": "allow"
},
"gitops": {
"vcsService": "github",
"accountLogin": "github-user",
"repoUrl": "https://github.com/northflank-examples/remix-postgres-redis-demo",
"branch": "main"
},
"spec": {
"settings": {
"maxAttempts": 3,
"backoff": {
"type": "fixed",
"delay": 60
}
},
"kind": "Workflow",
"response": {
"status": "success",
"retries": {
"attempts": 1,
"maxAttempts": 3,
"timestamp": 1657296265
},
"startTime": 1657296265,
"endTime": 1657296265
}
},
"id": "3dd592f6-ce63-45ee-acf8-13dc5ec5235c",
"templateId": "example-template",
"status": "success",
"concluded": true,
"createdAt": "2021-01-01 12:00:00.000Z",
"updatedAt": "2021-01-01 12:00:00.000Z"
}
}
}