Harness · Schema

pipeline

DevOpsGitOpsInternal Developer PortalLifecycleSoftware DeliveryCI/CDContinuous DeliveryContinuous Integration

Properties

Name Type Description
version number
pipeline object
View JSON Schema on GitHub

JSON Schema

harness-v1-pipeline-schema.json Raw ↑
{
  "type" : "object",
  "title" : "pipeline",
  "additionalProperties" : false,
  "required" : [ "pipeline" ],
  "properties" : {
    "version" : {
      "type" : "number",
      "enum" : [ 1 ]
    },
    "pipeline" : {
      "$ref" : "#/definitions/pipeline/pipeline"
    }
  },
  "$schema" : "http://json-schema.org/draft-07/schema#",
  "definitions" : {
    "pipeline" : {
      "pipeline" : {
        "type" : "object",
        "title" : "pipeline",
        "additionalProperties" : false,
        "properties" : {
          "id" : {
            "type" : "string",
            "pattern" : "^[a-zA-Z_][0-9a-zA-Z_]{0,127}$"
          },
          "name" : {
            "type" : "string",
            "pattern" : "^[a-zA-Z_0-9-.][-0-9a-zA-Z_\\s.]{0,127}$"
          },
          "description" : {
            "type" : "string",
            "description" : "Description of the pipeline."
          },
          "clone" : {
            "$ref" : "#/definitions/pipeline/Clone"
          },
          "inputs" : {
            "$ref" : "#/definitions/pipeline/common/NGVariableV1Wrapper"
          },
          "timeout" : {
            "type" : "string",
            "description" : "Defines pipeline timeout",
            "pattern" : "^(([1-9])+\\d+[s])|(((([1-9])+\\d*[mhwd])+([\\s]?\\d+[smhwd])*)|(.*<\\+.*>(?!.*\\.executionInput\\(\\)).*)|(^$))$"
          },
          "allow-stage-executions" : {
            "type" : "boolean",
            "description" : "Allows stage executions."
          },
          "fixed-inputs-on-rerun" : {
            "type" : "boolean",
            "description" : "Fixed inputs on rerun."
          },
          "delegate" : {
            "$ref" : "#/definitions/pipeline/common/Delegate"
          },
          "env" : {
            "type" : "object",
            "additionalProperties" : {
              "type" : "string"
            },
            "description" : "Provides the default environment variables."
          },
          "repo" : {
            "description" : "Configures the default repository.",
            "$ref" : "#/definitions/pipeline/Repository"
          },
          "barriers" : {
            "type" : "array",
            "description" : "Barriers provides optional pipeline barriers.",
            "items" : {
              "type" : "string"
            }
          },
          "if" : {
            "type" : "string",
            "description" : "If provides conditional pipeline execution logic. If the condition resolves to false, the pipeline is skipped."
          },
          "on" : {
            "$ref" : "#/definitions/pipeline/On"
          },
          "notifications" : {
            "type" : "array",
            "description" : "Notifications provides optional pipeline notifications.",
            "items" : {
              "$ref" : "#/definitions/pipeline/NotificationRules"
            }
          },
          "tags" : {
            "type" : "object",
            "description" : "Tags for the pipeline.",
            "additionalProperties" : {
              "type" : "string"
            }
          },
          "template" : {
            "description" : "Pipeline template reference.",
            "$ref" : "#/definitions/pipeline/common/TemplateRef"
          },
          "stages" : {
            "type" : "array",
            "description" : "Pipeline stages - can contain stages, groups, or parallel executions.",
            "items" : {
              "$ref" : "#/definitions/pipeline/stages/unified/StageItems"
            },
            "maxItems" : 256,
            "minItems" : 1
          }
        },
        "$schema" : "http://json-schema.org/draft-07/schema#"
      },
      "Clone" : {
        "title" : "Clone",
        "type" : "object",
        "additionalProperties" : false,
        "description" : "Clone defines the default clone behavior.",
        "properties" : {
          "depth" : {
            "description" : "Depth defines the clone depth.",
            "oneOf" : [ {
              "type" : "integer",
              "format" : "int32"
            }, {
              "$ref" : "#/definitions/pipeline/common/Expression"
            } ]
          },
          "enabled" : {
            "description" : "Enables or disables the default clone step.",
            "oneOf" : [ {
              "type" : "boolean"
            }, {
              "$ref" : "#/definitions/pipeline/common/Expression"
            } ]
          },
          "insecure" : {
            "description" : "Insecure disables ssl verification.",
            "oneOf" : [ {
              "type" : "boolean"
            }, {
              "$ref" : "#/definitions/pipeline/common/Expression"
            } ]
          },
          "lfs" : {
            "description" : "Lfs enables cloning lfs files.",
            "oneOf" : [ {
              "type" : "boolean"
            }, {
              "$ref" : "#/definitions/pipeline/common/Expression"
            } ]
          },
          "strategy" : {
            "description" : "Strategy configures the PR clone strategy.",
            "type" : "string",
            "enum" : [ "source-branch", "merge" ]
          },
          "submodules" : {
            "description" : "Submodules enables cloning all submodules. Accepts boolean, string (true/false/recursive), or expression.",
            "oneOf" : [ {
              "type" : "boolean"
            }, {
              "type" : "string",
              "enum" : [ "true", "false", "recursive" ]
            }, {
              "$ref" : "#/definitions/pipeline/common/Expression"
            } ]
          },
          "tags" : {
            "description" : "Tags enables cloning all tags.",
            "oneOf" : [ {
              "type" : "boolean"
            }, {
              "$ref" : "#/definitions/pipeline/common/Expression"
            } ]
          },
          "trace" : {
            "description" : "Trace enables trace logging.",
            "oneOf" : [ {
              "type" : "boolean"
            }, {
              "$ref" : "#/definitions/pipeline/common/Expression"
            } ]
          },
          "ref" : {
            "description" : "Reference defines the clone ref.",
            "oneOf" : [ {
              "$ref" : "#/definitions/pipeline/Reference"
            }, {
              "$ref" : "#/definitions/pipeline/common/Expression"
            } ]
          },
          "repo" : {
            "description" : "Repo defines the repository name or URL.",
            "type" : "string",
            "minLength" : 1
          },
          "connector" : {
            "description" : "Connector defines the connector reference.",
            "type" : "string",
            "minLength" : 1
          },
          "clonedir" : {
            "description" : "Clonedir defines the clone directory path.",
            "type" : "string",
            "minLength" : 1
          },
          "resources" : {
            "description" : "Resources defines container resource limits.",
            "$ref" : "#/definitions/pipeline/Resource"
          },
          "user" : {
            "description" : "User ID to run the clone container as. Supports expressions.",
            "oneOf" : [ {
              "type" : "integer"
            }, {
              "type" : "string"
            } ]
          },
          "sparse-checkout" : {
            "description" : "SparseCheckout defines paths to limit the clone to specific directories.",
            "oneOf" : [ {
              "type" : "array",
              "items" : {
                "type" : "string"
              }
            }, {
              "$ref" : "#/definitions/pipeline/common/Expression"
            } ]
          },
          "pre-fetch" : {
            "description" : "PreFetch defines a command to run before the clone operation.",
            "oneOf" : [ {
              "type" : "string"
            }, {
              "$ref" : "#/definitions/pipeline/common/Expression"
            } ]
          },
          "persist-credentials" : {
            "description" : "PersistCredentials configures git credentials to persist after clone so subsequent git operations in the workspace can authenticate.",
            "oneOf" : [ {
              "type" : "boolean"
            }, {
              "$ref" : "#/definitions/pipeline/common/Expression"
            } ]
          }
        },
        "$schema" : "http://json-schema.org/draft-07/schema#"
      },
      "common" : {
        "Expression" : {
          "title" : "Expression",
          "description" : "String value matching a Harness pipeline expression or template placeholder (e.g., <+something> or ${{ ... }}).",
          "type" : "string",
          "pattern" : "(\\$\\{\\{.+\\}\\}|<\\+.+>.*)",
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "NGVariableV1Wrapper" : {
          "title" : "NGVariableV1Wrapper",
          "description" : "Wrapper for stage/pipeline-level input variables. Keys are variable names, values define variable configuration.",
          "type" : "object",
          "additionalProperties" : {
            "oneOf" : [ {
              "$ref" : "#/definitions/pipeline/common/StringNGVariableV1"
            }, {
              "$ref" : "#/definitions/pipeline/common/NumberVariable"
            }, {
              "$ref" : "#/definitions/pipeline/common/BooleanVariable"
            }, {
              "$ref" : "#/definitions/pipeline/common/ArrayVariable"
            }, {
              "$ref" : "#/definitions/pipeline/common/ObjectVariable"
            }, {
              "$ref" : "#/definitions/pipeline/common/SecretVariable"
            }, {
              "$ref" : "#/definitions/pipeline/common/StepVariable"
            }, {
              "$ref" : "#/definitions/pipeline/common/StageVariable"
            }, {
              "$ref" : "#/definitions/pipeline/common/ConnectorVariable"
            } ]
          },
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "StringNGVariableV1" : {
          "title" : "StringNGVariableV1",
          "description" : "String variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "string" ]
              },
              "value" : {
                "description" : "Variable value. Supports expressions.",
                "type" : "string"
              },
              "default" : {
                "description" : "Default value for the variable.",
                "type" : "string"
              },
              "enum" : {
                "description" : "Defines a list of accepted input values.",
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              },
              "options" : {
                "description" : "Defines a list of accepted input values. Alias for enum (GitHub compatibility).",
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "Variable" : {
          "title" : "Variable",
          "type" : "object",
          "discriminator" : "type",
          "description" : "Variable defines a variable object",
          "properties" : {
            "type" : {
              "description" : "Type defines the variable type.",
              "type" : "string",
              "enum" : [ "string", "number", "boolean", "array", "object", "secret", "step", "stage", "connector" ]
            },
            "description" : {
              "type" : "string",
              "description" : "Description of the variable."
            },
            "required" : {
              "type" : "boolean",
              "description" : "Required indicates the variable is required."
            },
            "execution_input" : {
              "description" : "A boolean that defines whether the value is an execution input.",
              "type" : "boolean",
              "default" : false
            },
            "items" : {
              "description" : "Defines the item type for array variables.",
              "type" : "array"
            },
            "options" : {
              "description" : "Defines a list of accepted input values. Alias for enum (GitHub compatibility).",
              "type" : "array"
            },
            "enum" : {
              "description" : "Defines a list of accepted input values.",
              "type" : "array"
            },
            "pattern" : {
              "description" : "Regex pattern for variable value validation.",
              "type" : "string"
            },
            "mask" : {
              "description" : "Indicates the input should be masked.",
              "type" : "boolean",
              "deprecated" : true
            },
            "ui" : {
              "description" : "UI configuration for variable rendering in forms.",
              "type" : "object",
              "additionalProperties" : true
            }
          }
        },
        "NumberVariable" : {
          "title" : "NumberVariable",
          "description" : "Number variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "number" ]
              },
              "value" : {
                "description" : "Variable value. Supports expressions.",
                "oneOf" : [ {
                  "type" : "number",
                  "format" : "double"
                }, {
                  "type" : "string",
                  "pattern" : "((^[+-]?[0-9]*\\.?[0-9]+$)|(<\\+.+>.*))"
                } ],
                "metadata" : {
                  "inputProperties" : {
                    "dependsOn" : [ "type" ]
                  }
                }
              },
              "default" : {
                "description" : "Default value for the variable.",
                "type" : "number",
                "format" : "double"
              },
              "enum" : {
                "description" : "Defines a list of accepted input values.",
                "type" : "array",
                "items" : {
                  "oneOf" : [ {
                    "type" : "number",
                    "format" : "double"
                  }, {
                    "type" : "string",
                    "pattern" : "((^[+-]?[0-9]*\\.?[0-9]+$)|(<\\+.+>.*))"
                  } ]
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "BooleanVariable" : {
          "title" : "BooleanVariable",
          "description" : "Boolean variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "boolean" ]
              },
              "value" : {
                "description" : "Variable value.",
                "type" : "boolean"
              },
              "default" : {
                "description" : "Default value for the variable.",
                "type" : "boolean"
              },
              "enum" : {
                "description" : "Defines a list of accepted input values.",
                "type" : "array",
                "items" : {
                  "type" : "boolean"
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "ArrayVariable" : {
          "title" : "ArrayVariable",
          "description" : "Array variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "array" ]
              },
              "value" : {
                "description" : "Variable value.",
                "type" : "array"
              },
              "default" : {
                "description" : "Default value for the variable.",
                "type" : "array"
              },
              "enum" : {
                "description" : "Defines a list of accepted input values.",
                "type" : "array",
                "items" : {
                  "type" : "array"
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "ObjectVariable" : {
          "title" : "ObjectVariable",
          "description" : "Object variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "object" ]
              },
              "value" : {
                "description" : "Variable value.",
                "type" : "object"
              },
              "default" : {
                "description" : "Default value for the variable.",
                "type" : "object"
              },
              "enum" : {
                "description" : "Defines a list of accepted input values.",
                "type" : "array",
                "items" : {
                  "type" : "object"
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "SecretVariable" : {
          "title" : "SecretVariable",
          "description" : "Secret variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "secret" ]
              },
              "value" : {
                "description" : "Variable value (secret reference).",
                "type" : "string",
                "metadata" : {
                  "inputProperties" : {
                    "dependsOn" : [ "type" ]
                  }
                }
              },
              "default" : {
                "description" : "Default value for the variable.",
                "type" : "string"
              },
              "enum" : {
                "description" : "Defines a list of accepted input values.",
                "type" : "array",
                "items" : {
                  "type" : "string"
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "StepVariable" : {
          "title" : "StepVariable",
          "description" : "Step variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "step" ]
              },
              "value" : {
                "description" : "Variable value. Supports expressions.",
                "type" : "object",
                "metadata" : {
                  "inputProperties" : {
                    "dependsOn" : [ "type" ]
                  }
                }
              },
              "default" : {
                "description" : "Default value for the variable.",
                "type" : "object"
              },
              "enum" : {
                "description" : "Defines a list of accepted input values.",
                "type" : "array",
                "items" : {
                  "type" : "object"
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "StageVariable" : {
          "title" : "StageVariable",
          "description" : "Stage variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "stage" ]
              },
              "value" : {
                "description" : "Variable value. Supports expressions.",
                "type" : "object",
                "metadata" : {
                  "inputProperties" : {
                    "dependsOn" : [ "type" ]
                  }
                }
              },
              "default" : {
                "description" : "Default value for the variable.",
                "type" : "object"
              },
              "enum" : {
                "description" : "Defines a list of accepted input values.",
                "type" : "array",
                "items" : {
                  "type" : "object"
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "ConnectorVariable" : {
          "title" : "ConnectorVariable",
          "description" : "Connector variable definition.",
          "allOf" : [ {
            "$ref" : "#/definitions/pipeline/common/Variable"
          }, {
            "type" : "object",
            "required" : [ "type" ],
            "properties" : {
              "type" : {
                "description" : "Variable type.",
                "type" : "string",
                "enum" : [ "connector" ]
              },
              "value" : {
                "description" : "Connector reference value. Supports expressions.",
                "type" : "string"
              },
              "default" : {
                "description" : "Default connector reference.",
                "type" : "string"
              },
              "oneof" : {
                "description" : "List of allowed connector types.",
                "type" : "array",
                "items" : {
                  "type" : "string",
                  "enum" : [ "gitlab", "github", "bitbucket", "gcp", "aws", "docker", "kubernetes", "artifactory", "azure", "jenkins", "jira", "servicenow" ]
                }
              }
            }
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "Delegate" : {
          "title" : "Delegate",
          "description" : "Delegate defines the delegate matching logic. Supports expressions.",
          "oneOf" : [ {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          }, {
            "type" : "string"
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "TemplateRef" : {
          "title" : "TemplateRef",
          "description" : "Template identifier and input configuration.",
          "type" : "object",
          "additionalProperties" : false,
          "required" : [ "uses" ],
          "properties" : {
            "uses" : {
              "description" : "Template identifier reference.",
              "type" : "string"
            },
            "with" : {
              "description" : "Template input overrides.",
              "$ref" : "#/definitions/pipeline/common/WithInputs"
            },
            "gitBranch" : {
              "description" : "Git branch for remote template resolution.",
              "type" : "string"
            },
            "container" : {
              "description" : "Caller-side container overrides merged into the resolved template step. Applied for any V1 step template whose spec contains run, run-test, or background (including git-clone and build-and-push templates that wrap those steps).\n",
              "$ref" : "#/definitions/pipeline/common/TemplateContainerOverlay"
            }
          },
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "WithInputs" : {
          "title" : "WithInputs",
          "description" : "Input overrides for service, environment, or infrastructure.",
          "type" : "object",
          "properties" : {
            "overlay" : {
              "description" : "Overlay configuration for merging inputs.",
              "type" : "object",
              "additionalProperties" : true
            }
          },
          "additionalProperties" : true,
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "TemplateContainerOverlay" : {
          "title" : "TemplateContainerOverlay",
          "description" : "Caller-side container overrides on a V1 template step (`template.container`). Mirrors TemplateMergeServiceHelper.CONTAINER_PROPAGATION_ALLOWLIST. Applied to resolved run, run-test, and background containers (including nested group/parallel). Image, connector, and entrypoint stay on the template and are not overridable here.\n",
          "type" : "object",
          "additionalProperties" : false,
          "properties" : {
            "user" : {
              "description" : "User ID to run as. Supports expressions.",
              "oneOf" : [ {
                "type" : "integer"
              }, {
                "type" : "string"
              } ]
            },
            "group" : {
              "description" : "Group to run as.",
              "type" : "string"
            },
            "cpu" : {
              "description" : "CPU limit. Ignored when resources.limits.cpu is set.",
              "type" : "string"
            },
            "memory" : {
              "description" : "Memory limit. Ignored when resources.limits.memory is set.",
              "type" : "string"
            },
            "resources" : {
              "description" : "Container resource limits and requests. Takes precedence over the flat cpu/memory fields.",
              "$ref" : "#/definitions/pipeline/Resource"
            },
            "shm-size" : {
              "description" : "Shared memory size.",
              "type" : "string"
            },
            "privileged" : {
              "description" : "Run in privileged mode. Supports expressions.",
              "oneOf" : [ {
                "type" : "boolean"
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            }
          },
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "StrategyConfigV1" : {
          "title" : "StrategyConfigV1",
          "type" : "object",
          "additionalProperties" : false,
          "description" : "Strategy defines execution strategy configuration (matrix, for, while, repeat).",
          "properties" : {
            "max-parallel" : {
              "description" : "Maximum number of parallel executions. Supports expressions.",
              "oneOf" : [ {
                "type" : "integer"
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "fail-fast" : {
              "description" : "Whether to fail fast on first failure. Supports expressions.",
              "oneOf" : [ {
                "type" : "boolean"
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "if" : {
              "description" : "Conditional expression to determine whether the strategy should execute. Supports expressions.",
              "type" : "string"
            },
            "matrix" : {
              "description" : "Matrix strategy for parallel execution across dimensions. Supports expressions.",
              "oneOf" : [ {
                "$ref" : "#/definitions/pipeline/common/MatrixConfigV1"
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "for" : {
              "description" : "For-loop strategy configuration. Supports expressions.",
              "oneOf" : [ {
                "$ref" : "#/definitions/pipeline/common/ForConfigV1"
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "while" : {
              "description" : "While-loop strategy configuration. Supports expressions.",
              "oneOf" : [ {
                "$ref" : "#/definitions/pipeline/common/WhileConfigV1"
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "repeat" : {
              "description" : "Repeat strategy configuration for iterating over items. Supports expressions.",
              "oneOf" : [ {
                "$ref" : "#/definitions/pipeline/common/RepeatConfigV1"
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            }
          },
          "oneOf" : [ {
            "required" : [ "matrix" ]
          }, {
            "required" : [ "for" ]
          }, {
            "required" : [ "while" ]
          }, {
            "required" : [ "repeat" ]
          } ],
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "MatrixConfigV1" : {
          "title" : "MatrixConfigV1",
          "type" : "object",
          "description" : "Matrix strategy configuration for parallel execution across multiple dimensions.",
          "properties" : {
            "exclude" : {
              "description" : "Combinations to exclude from the matrix. Supports expressions.",
              "oneOf" : [ {
                "type" : "array",
                "items" : {
                  "type" : "object",
                  "additionalProperties" : true
                }
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "include" : {
              "description" : "Additional combinations to include in the matrix. Supports expressions.",
              "oneOf" : [ {
                "type" : "array",
                "items" : {
                  "type" : "object",
                  "additionalProperties" : true
                }
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "node-name" : {
              "description" : "Custom naming pattern for matrix nodes. Supports expressions.",
              "type" : "string"
            }
          },
          "additionalProperties" : {
            "description" : "Matrix axes - key is axis name, value is array of values or expression.",
            "oneOf" : [ {
              "type" : "array"
            }, {
              "type" : "string"
            } ]
          },
          "$schema" : "http://json-schema.org/draft-07/schema#"
        },
        "ForConfigV1" : {
          "title" : "ForConfigV1",
          "type" : "object",
          "additionalProperties" : false,
          "description" : "For loop strategy configuration.",
          "properties" : {
            "iterations" : {
              "description" : "Number of iterations to execute. Supports expressions.",
              "oneOf" : [ {
                "type" : "integer",
                "minimum" : 0
              }, {
                "$ref" : "#/definitions/pipeline/common/Expression"
              } ]
            },
            "node-name" : {
              "description" : "Custom naming pattern for loop nodes. Supports expressions.",
              "type" : "string"
            }
      

# --- truncated at 32 KB (181 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/harness/refs/heads/main/json-schema/harness-v1-pipeline-schema.json

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/harness-v1-pipeline"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.