Harness · Schema
pipeline
DevOpsGitOpsInternal Developer PortalLifecycleSoftware DeliveryCI/CDContinuous DeliveryContinuous Integration
Properties
| Name | Type | Description |
|---|---|---|
| version | number | |
| pipeline | object |
JSON Schema
{
"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.
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.