v1
Double column
API
CLI
JS Client

Pipelines /

Update preview template

Update a given preview template.

Required permission

Account > Templates > General > Create

Path parameters

    • projectId

      string required
      ID of the project
    • pipelineId

      string required
      ID of the pipeline

Request body

  • {object}
    • apiVersion

      string required
      The version of the Northflank API to run the template against.
      one of
      v1.2
    • options

      {object}
      Options regarding how the template is run.
      • concurrencyPolicy

        string
        Defines the concurrency behaviour of the template with respect to parallel runs.
        one of
        allow, queue, forbid
      • nameFormat

        string
        The format of the automatically generated preview name. This is a parsed ref string.
      • prefixName

        boolean
        If true, the preview name will default to the front of the resource name.
      • schedule

        {object}
        Options regarding which hours preview environments should be active. Only available for BYOC projects.
        • mon

          {object}
          • startTime

            integer
            min
            0
            max
            2400
          • endTime

            integer
            min
            0
            max
            2400
        • tue

          {object}
          • startTime

            integer
            min
            0
            max
            2400
          • endTime

            integer
            min
            0
            max
            2400
        • wed

          {object}
          • startTime

            integer
            min
            0
            max
            2400
          • endTime

            integer
            min
            0
            max
            2400
        • thu

          {object}
          • startTime

            integer
            min
            0
            max
            2400
          • endTime

            integer
            min
            0
            max
            2400
        • fri

          {object}
          • startTime

            integer
            min
            0
            max
            2400
          • endTime

            integer
            min
            0
            max
            2400
        • sat

          {object}
          • startTime

            integer
            min
            0
            max
            2400
          • endTime

            integer
            min
            0
            max
            2400
        • sun

          {object}
          • startTime

            integer
            min
            0
            max
            2400
          • endTime

            integer
            min
            0
            max
            2400
      • expiry

        {object}
        Settings regarding the automatic deletion of previews.
        • previewLifetime

          integer
          If set, preview environments will be automatically deleted after this many minutes since their last update.
          min
          1
        • resetOnUpdate

          boolean
          If `true`, the expiry time for an existing preview will be reset when it is ran again.
    • arguments

      {object}
      A set of arguments that can be referenced in a template using '${args.argumentName}'.
      • gitops

        {object}
        • vcsService

          string required
          The VCS provider to use.
          one of
          bitbucket, gitlab, github, self-hosted, azure
        • selfHostedVcsId

          string
          If 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

          string
          By 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

          string
          Legacy key. Please used accountLogin instead.
        • repoUrl

          string required
          URL of the Git repo to sync the template 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 required
          The name of the branch to use.
        • filePath

          string required
          The file path to the template in the repository. If using an existing template, it should be in JSON format.
          pattern
          ^\/([a-zA-Z0-9-._]+\/)*[a-zA-Z0-9-._]+$
      • $schema

        string
      • spec

        (multiple options: oneOf) required
        A node representing an action to be performed as part of the PreviewEnvTemplate.
      • paused

        boolean
        Whether triggers are paused for this preview template. If `true`, Git triggers and webhook triggers will not create or update previews.
      • triggers

        [array] required
        • {object}
          • ref

            string
            A reference that can be used to access the output of this trigger in the template.
          • vcsService

            string required
            The VCS provider to use.
            one of
            bitbucket, gitlab, github, self-hosted, azure
          • selfHostedVcsId

            string
            If 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

            string
            By 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

            string
          • repoUrl

            string required
            URL of the Git repo that will trigger the template.
            pattern
            ^(https:\/\/)?((www(\.[a-zA-Z0-9\-]{2,})+\.)?[a-zA-Z0-9\-]{2,})(\.([a-zA-Z0-9\-]{2,}))+(\/([a-zA-Z0-9\-._]{2,}))+?$
          • branchRestrictions

            [array]
            • string
              pattern
              ^[a-zA-Z/*0-9%\-.#_!'();,&=+]*$
          • prRestrictions

            [array]
            • string
              pattern
              ^[a-zA-Z/*0-9%\-.#_!'();,&=+]*$
          • pathIgnoreRules

            [array]
            An array of path ignore rules. A commit will only be built if a file has been changed that does not match any of the ignore rules. Path ignore rules follow `.gitignore` syntax.
            • string
              A path ignore rule, following `.gitignore` syntax. For example, `*.md` will ignore all files ending with `.md`.
              max length
              260
          • ciIgnoreFlags

            [array]
            An array of commit ignore flags. If a commit message contains one or more of these flags, that commit will not be built. Defaults to `["[skip ci]", "[ci skip]", "[no ci]", "[skip nf]", "[nf skip]", "[northflank skip]", "[skip northflank]"]`
            • string
              A commit ignore flag.
              max length
              72
          • ciIgnoreFlagsEnabled

            boolean
          • isAllowList

            boolean
          • ignoreDrafts

            boolean
            If `true`, draft pull requests from this repo will not trigger the template.
          • type

            string
            Type of trigger
            one of
            git
          • manualOnly

            boolean
            Should the git trigger only be triggered manually?
      • webhook

        {object}
        • enabled

          boolean
          Whether this template can be ran using a webhook endpoint trigger.
        • regenerate

          boolean
          If true, the webhook endpoint will be regenerated if one already exists.
    API
    CLI
    JS Client

    POST /v1/projects/{projectId}/pipelines/{pipelineId}/preview-envs

    Example request

    Request body
    curl
    curl --header "Content-Type: application/json" \
      --header "Authorization: Bearer NORTHFLANK_API_TOKEN" \
      --request POST \
      --data '{"apiVersion":"v1.2","options":{"concurrencyPolicy":"allow"},"gitops":{"vcsService":"github","accountLogin":"github-user","repoUrl":"https://github.com/northflank-examples/remix-postgres-redis-demo","branch":"main"},"spec":{"kind":"Workflow","spec":{"type":"sequential"}},"paused":false,"triggers":[{"vcsService":"github","accountLogin":"github-user","repoUrl":"https://github.com/northflank-examples/remix-postgres-redis-demo","pathIgnoreRules":["README.md"],"ciIgnoreFlags":["[skip ci]"]}],"webhook":{"enabled":true,"regenerate":false}}' \
      https://api.northflank.com/v1/projects/{projectId}/pipelines/{pipelineId}/preview-envs

    Example response

    200 OK

    success

    © 2024 Northflank Ltd. All rights reserved.