Octopus.Script exported 2026-05-29 by itsmebenwalker belongs to ‘Convex’ category.
Invokes a Convex mutation, action, or query against a deployment using the Convex CLI. Ideal for running post-deploy data migrations, seeding initial data, or executing smoke-test queries as part of a deployment pipeline.
Parameters
When steps based on the template are included in a project’s deployment process, the parameters below can be set.
Deploy Key
ConvexRun.DeployKey =
The Convex deploy key for the target project. Store this as a sensitive Octopus variable.
See: Creating deploy keys
Function Path
ConvexRun.FunctionPath =
The path to the Convex function to invoke, in the format module:functionName.
Examples:
migrations:runV2seed:populateDefaultshealthcheck:ping
Function Arguments (JSON)
ConvexRun.FunctionArgs =
Optional. A JSON object of arguments to pass to the function.
Example: {"dryRun": false, "batchSize": 100}
Leave blank if the function takes no arguments.
Deployment Type
ConvexRun.DeploymentType = prod
The Convex deployment to target.
prod— production deployment (default)preview— preview deployment (requires a preview name)dev— development deployment
Preview Name
ConvexRun.PreviewName =
The name of the preview deployment. Only required when Deployment Type is preview.
Working Directory
ConvexRun.WorkingDirectory =
Optional. Path to the directory containing your Convex project. Defaults to the current working directory if left blank.
Command Timeout (seconds)
ConvexRun.CommandTimeout = 120
Maximum number of seconds to wait for the function to complete. Defaults to 120.
Script body
Steps based on this template will execute the following Bash script.
deployKey=$(get_octopusvariable "ConvexRun.DeployKey")
functionPath=$(get_octopusvariable "ConvexRun.FunctionPath")
functionArgs=$(get_octopusvariable "ConvexRun.FunctionArgs")
deploymentType=$(get_octopusvariable "ConvexRun.DeploymentType")
previewName=$(get_octopusvariable "ConvexRun.PreviewName")
workingDir=$(get_octopusvariable "ConvexRun.WorkingDirectory")
cmdTimeout=$(get_octopusvariable "ConvexRun.CommandTimeout")
if [ -z "$deployKey" ]; then
echo "ERROR: ConvexRun.DeployKey is required."
exit 1
fi
if [ -z "$functionPath" ]; then
echo "ERROR: ConvexRun.FunctionPath is required."
exit 1
fi
if [ -z "$deploymentType" ]; then
deploymentType="prod"
fi
if [ -z "$cmdTimeout" ]; then
cmdTimeout="120"
fi
export CONVEX_DEPLOY_KEY="$deployKey"
if [ -n "$workingDir" ]; then
echo "Changing to working directory: $workingDir"
cd "$workingDir" || { echo "ERROR: Could not change to directory '$workingDir'"; exit 1; }
fi
deploymentFlag=""
case "$deploymentType" in
prod)
deploymentFlag="--prod"
;;
preview)
if [ -z "$previewName" ]; then
echo "ERROR: ConvexRun.PreviewName is required when deployment type is 'preview'."
exit 1
fi
deploymentFlag="--preview-name $previewName"
;;
dev)
deploymentFlag=""
;;
esac
ensure_node() {
if command -v npx &>/dev/null; then
echo "Node.js found: $(node --version)"
return 0
fi
export NVM_DIR="${NVM_DIR:-$HOME/.nvm}"
if [ -s "$NVM_DIR/nvm.sh" ]; then
\. "$NVM_DIR/nvm.sh"
if command -v npx &>/dev/null; then
echo "Node.js loaded via nvm: $(node --version)"
return 0
fi
fi
echo "Node.js not found. Installing via nvm..."
curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
\. "$NVM_DIR/nvm.sh"
nvm install --lts
echo "Node.js installed: $(node --version)"
}
ensure_node
echo "Running Convex function: $functionPath"
echo "Deployment type: $deploymentType"
if [ -n "$functionArgs" ]; then
echo "Args: $functionArgs"
timeout "$cmdTimeout" npx convex run $deploymentFlag "$functionPath" "$functionArgs"
else
timeout "$cmdTimeout" npx convex run $deploymentFlag "$functionPath"
fi
exitCode=$?
if [ $exitCode -ne 0 ]; then
echo "ERROR: Convex function '$functionPath' failed with exit code $exitCode."
exit $exitCode
fi
echo "Convex function '$functionPath' completed successfully."
Provided under the Apache License version 2.0.
To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.
{
"Id": "307071fd-c649-4ab6-8b14-549da0943273",
"Name": "Convex - Run Function",
"Description": "Invokes a Convex mutation, action, or query against a deployment using the [Convex CLI](https://docs.convex.dev/cli). Ideal for running post-deploy data migrations, seeding initial data, or executing smoke-test queries as part of a deployment pipeline.",
"Version": 1,
"ExportedAt": "2026-05-29T00:00:00.000Z",
"ActionType": "Octopus.Script",
"Author": "itsmebenwalker",
"Packages": [],
"Parameters": [
{
"Id": "2768e849-72d0-4542-a60e-cc7596a1da91",
"Name": "ConvexRun.DeployKey",
"Label": "Deploy Key",
"HelpText": "The Convex deploy key for the target project. Store this as a sensitive Octopus variable.\n\nSee: [Creating deploy keys](https://docs.convex.dev/cli#deploy-keys)",
"DefaultValue": "",
"DisplaySettings": {
"Octopus.ControlType": "Sensitive"
}
},
{
"Id": "717bb5dd-7e32-4689-8016-bf781d612051",
"Name": "ConvexRun.FunctionPath",
"Label": "Function Path",
"HelpText": "The path to the Convex function to invoke, in the format `module:functionName`.\n\nExamples:\n- `migrations:runV2`\n- `seed:populateDefaults`\n- `healthcheck:ping`",
"DefaultValue": "",
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Id": "282ce782-e9dc-4cad-a3c2-68fecebda89b",
"Name": "ConvexRun.FunctionArgs",
"Label": "Function Arguments (JSON)",
"HelpText": "Optional. A JSON object of arguments to pass to the function.\n\nExample: `{\"dryRun\": false, \"batchSize\": 100}`\n\nLeave blank if the function takes no arguments.",
"DefaultValue": "",
"DisplaySettings": {
"Octopus.ControlType": "MultiLineText"
}
},
{
"Id": "6cb1f84c-16af-4cfe-aaef-a3b8bb37d0bf",
"Name": "ConvexRun.DeploymentType",
"Label": "Deployment Type",
"HelpText": "The Convex deployment to target.\n\n- `prod` — production deployment (default)\n- `preview` — preview deployment (requires a preview name)\n- `dev` — development deployment",
"DefaultValue": "prod",
"DisplaySettings": {
"Octopus.ControlType": "Select",
"Octopus.SelectOptions": "prod|Production\npreview|Preview\ndev|Development"
}
},
{
"Id": "8e0918a3-4625-4830-80fd-1b330da2101d",
"Name": "ConvexRun.PreviewName",
"Label": "Preview Name",
"HelpText": "The name of the preview deployment. Only required when **Deployment Type** is `preview`.",
"DefaultValue": "",
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Id": "fe0a3a69-6a44-4dcb-ba71-0b1e1546ea25",
"Name": "ConvexRun.WorkingDirectory",
"Label": "Working Directory",
"HelpText": "Optional. Path to the directory containing your Convex project. Defaults to the current working directory if left blank.",
"DefaultValue": "",
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
},
{
"Id": "ac421438-68fa-4c33-a984-fa9cd7f9e007",
"Name": "ConvexRun.CommandTimeout",
"Label": "Command Timeout (seconds)",
"HelpText": "Maximum number of seconds to wait for the function to complete. Defaults to 120.",
"DefaultValue": "120",
"DisplaySettings": {
"Octopus.ControlType": "SingleLineText"
}
}
],
"Properties": {
"Octopus.Action.Script.ScriptSource": "Inline",
"Octopus.Action.Script.Syntax": "Bash",
"Octopus.Action.Script.ScriptBody": "deployKey=$(get_octopusvariable \"ConvexRun.DeployKey\")\nfunctionPath=$(get_octopusvariable \"ConvexRun.FunctionPath\")\nfunctionArgs=$(get_octopusvariable \"ConvexRun.FunctionArgs\")\ndeploymentType=$(get_octopusvariable \"ConvexRun.DeploymentType\")\npreviewName=$(get_octopusvariable \"ConvexRun.PreviewName\")\nworkingDir=$(get_octopusvariable \"ConvexRun.WorkingDirectory\")\ncmdTimeout=$(get_octopusvariable \"ConvexRun.CommandTimeout\")\n\nif [ -z \"$deployKey\" ]; then\n echo \"ERROR: ConvexRun.DeployKey is required.\"\n exit 1\nfi\n\nif [ -z \"$functionPath\" ]; then\n echo \"ERROR: ConvexRun.FunctionPath is required.\"\n exit 1\nfi\n\nif [ -z \"$deploymentType\" ]; then\n deploymentType=\"prod\"\nfi\n\nif [ -z \"$cmdTimeout\" ]; then\n cmdTimeout=\"120\"\nfi\n\nexport CONVEX_DEPLOY_KEY=\"$deployKey\"\n\nif [ -n \"$workingDir\" ]; then\n echo \"Changing to working directory: $workingDir\"\n cd \"$workingDir\" || { echo \"ERROR: Could not change to directory '$workingDir'\"; exit 1; }\nfi\n\ndeploymentFlag=\"\"\ncase \"$deploymentType\" in\n prod)\n deploymentFlag=\"--prod\"\n ;;\n preview)\n if [ -z \"$previewName\" ]; then\n echo \"ERROR: ConvexRun.PreviewName is required when deployment type is 'preview'.\"\n exit 1\n fi\n deploymentFlag=\"--preview-name $previewName\"\n ;;\n dev)\n deploymentFlag=\"\"\n ;;\nesac\n\nensure_node() {\n if command -v npx &>/dev/null; then\n echo \"Node.js found: $(node --version)\"\n return 0\n fi\n export NVM_DIR=\"${NVM_DIR:-$HOME/.nvm}\"\n if [ -s \"$NVM_DIR/nvm.sh\" ]; then\n \\. \"$NVM_DIR/nvm.sh\"\n if command -v npx &>/dev/null; then\n echo \"Node.js loaded via nvm: $(node --version)\"\n return 0\n fi\n fi\n echo \"Node.js not found. Installing via nvm...\"\n curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash\n \\. \"$NVM_DIR/nvm.sh\"\n nvm install --lts\n echo \"Node.js installed: $(node --version)\"\n}\nensure_node\n\necho \"Running Convex function: $functionPath\"\necho \"Deployment type: $deploymentType\"\n\nif [ -n \"$functionArgs\" ]; then\n echo \"Args: $functionArgs\"\n timeout \"$cmdTimeout\" npx convex run $deploymentFlag \"$functionPath\" \"$functionArgs\"\nelse\n timeout \"$cmdTimeout\" npx convex run $deploymentFlag \"$functionPath\"\nfi\n\nexitCode=$?\nif [ $exitCode -ne 0 ]; then\n echo \"ERROR: Convex function '$functionPath' failed with exit code $exitCode.\"\n exit $exitCode\nfi\n\necho \"Convex function '$functionPath' completed successfully.\"\n"
},
"Category": "Convex",
"HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates/convex-run-function.json",
"Website": "/step-templates/307071fd-c649-4ab6-8b14-549da0943273",
"Logo": "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",
"$Meta": {
"Type": "ActionTemplate"
}
}
Page updated on Friday, May 29, 2026