Convex - Export Data

Octopus.Script exported 2026-05-29 by itsmebenwalker belongs to ‘Convex’ category.

Exports a snapshot of your Convex deployment’s data to a local file using the Convex CLI. Designed to be run before a production deployment as a data backup or rollback safety net.

The export file can optionally be captured as an Octopus build artifact for storage and auditing.

Parameters

When steps based on the template are included in a project’s deployment process, the parameters below can be set.

Deploy Key

ConvexExport.DeployKey =

The Convex deploy key for the target project. Store this as a sensitive Octopus variable.

See: Creating deploy keys

Output File Path

ConvexExport.OutputPath =

Optional. The local path where the export ZIP file should be written.

Defaults to convex-export-{timestamp}.zip in the current working directory if left blank.

Deployment Type

ConvexExport.DeploymentType = prod

The Convex deployment to export data from.

  • prod — production deployment (default)
  • preview — preview deployment (requires a preview name)
  • dev — development deployment

Preview Name

ConvexExport.PreviewName =

The name of the preview deployment. Only required when Deployment Type is preview.

Working Directory

ConvexExport.WorkingDirectory =

Optional. Path to the directory containing your Convex project. Defaults to the current working directory if left blank.

Capture as Octopus Artifact

ConvexExport.CaptureAsArtifact = True

When enabled, the exported file will be captured as an Octopus build artifact, making it available for download from the deployment details page.

Command Timeout (seconds)

ConvexExport.CommandTimeout = 600

Maximum number of seconds to wait for the export to complete. Defaults to 600 (10 minutes). Large datasets may require a higher value.

Script body

Steps based on this template will execute the following Bash script.

deployKey=$(get_octopusvariable "ConvexExport.DeployKey")
outputPath=$(get_octopusvariable "ConvexExport.OutputPath")
deploymentType=$(get_octopusvariable "ConvexExport.DeploymentType")
previewName=$(get_octopusvariable "ConvexExport.PreviewName")
workingDir=$(get_octopusvariable "ConvexExport.WorkingDirectory")
captureArtifact=$(get_octopusvariable "ConvexExport.CaptureAsArtifact")
cmdTimeout=$(get_octopusvariable "ConvexExport.CommandTimeout")

if [ -z "$deployKey" ]; then
  echo "ERROR: ConvexExport.DeployKey is required."
  exit 1
fi

if [ -z "$deploymentType" ]; then
  deploymentType="prod"
fi

if [ -z "$cmdTimeout" ]; then
  cmdTimeout="600"
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

timestamp=$(date +"%Y%m%d_%H%M%S")

if [ -z "$outputPath" ]; then
  outputPath="convex-export-${timestamp}.zip"
fi

deploymentFlag=""
case "$deploymentType" in
  prod)
    deploymentFlag="--prod"
    ;;
  preview)
    if [ -z "$previewName" ]; then
      echo "ERROR: ConvexExport.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 "Exporting Convex data from: $deploymentType"
echo "Output file: $outputPath"

timeout "$cmdTimeout" npx convex export $deploymentFlag --path "$outputPath"

exitCode=$?
if [ $exitCode -ne 0 ]; then
  echo "ERROR: Convex export failed with exit code $exitCode."
  exit $exitCode
fi

if [ ! -f "$outputPath" ]; then
  echo "ERROR: Export completed but output file not found at '$outputPath'."
  exit 1
fi

fileSize=$(du -sh "$outputPath" | cut -f1)
echo "Export complete. File: $outputPath ($fileSize)"

if [ "$captureArtifact" = "True" ]; then
  new_octopusartifact "$outputPath"
  echo "Export captured as Octopus artifact."
fi

Provided under the Apache License version 2.0.

Report an issue

To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.

{
  "Id": "3f4519f7-78f6-4fb9-8bc5-97e138825bb8",
  "Name": "Convex - Export Data",
  "Description": "Exports a snapshot of your Convex deployment's data to a local file using the [Convex CLI](https://docs.convex.dev/cli). Designed to be run before a production deployment as a data backup or rollback safety net.\n\nThe export file can optionally be captured as an Octopus build artifact for storage and auditing.",
  "Version": 1,
  "ExportedAt": "2026-05-29T00:00:00.000Z",
  "ActionType": "Octopus.Script",
  "Author": "itsmebenwalker",
  "Packages": [],
  "Parameters": [
    {
      "Id": "ba76acd0-99e4-4aa1-8554-e0696b528ed7",
      "Name": "ConvexExport.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": "17b1f813-7b43-4528-bafe-5b52eac6df1b",
      "Name": "ConvexExport.OutputPath",
      "Label": "Output File Path",
      "HelpText": "Optional. The local path where the export ZIP file should be written.\n\nDefaults to `convex-export-{timestamp}.zip` in the current working directory if left blank.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "e7002edd-eb0d-4c2b-979e-972c095eede5",
      "Name": "ConvexExport.DeploymentType",
      "Label": "Deployment Type",
      "HelpText": "The Convex deployment to export data from.\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": "81526834-4204-4696-bfc4-3e965dcb320d",
      "Name": "ConvexExport.PreviewName",
      "Label": "Preview Name",
      "HelpText": "The name of the preview deployment. Only required when **Deployment Type** is `preview`.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "690649ca-3801-45d1-9a59-45e561c127f5",
      "Name": "ConvexExport.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": "036c1260-7b14-4c05-8948-858cc1b5c893",
      "Name": "ConvexExport.CaptureAsArtifact",
      "Label": "Capture as Octopus Artifact",
      "HelpText": "When enabled, the exported file will be captured as an Octopus build artifact, making it available for download from the deployment details page.",
      "DefaultValue": "True",
      "DisplaySettings": {
        "Octopus.ControlType": "Checkbox"
      }
    },
    {
      "Id": "186fac8e-92c9-482f-adea-551cb64dd999",
      "Name": "ConvexExport.CommandTimeout",
      "Label": "Command Timeout (seconds)",
      "HelpText": "Maximum number of seconds to wait for the export to complete. Defaults to 600 (10 minutes). Large datasets may require a higher value.",
      "DefaultValue": "600",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    }
  ],
  "Properties": {
    "Octopus.Action.Script.ScriptSource": "Inline",
    "Octopus.Action.Script.Syntax": "Bash",
    "Octopus.Action.Script.ScriptBody": "deployKey=$(get_octopusvariable \"ConvexExport.DeployKey\")\noutputPath=$(get_octopusvariable \"ConvexExport.OutputPath\")\ndeploymentType=$(get_octopusvariable \"ConvexExport.DeploymentType\")\npreviewName=$(get_octopusvariable \"ConvexExport.PreviewName\")\nworkingDir=$(get_octopusvariable \"ConvexExport.WorkingDirectory\")\ncaptureArtifact=$(get_octopusvariable \"ConvexExport.CaptureAsArtifact\")\ncmdTimeout=$(get_octopusvariable \"ConvexExport.CommandTimeout\")\n\nif [ -z \"$deployKey\" ]; then\n  echo \"ERROR: ConvexExport.DeployKey is required.\"\n  exit 1\nfi\n\nif [ -z \"$deploymentType\" ]; then\n  deploymentType=\"prod\"\nfi\n\nif [ -z \"$cmdTimeout\" ]; then\n  cmdTimeout=\"600\"\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\ntimestamp=$(date +\"%Y%m%d_%H%M%S\")\n\nif [ -z \"$outputPath\" ]; then\n  outputPath=\"convex-export-${timestamp}.zip\"\nfi\n\ndeploymentFlag=\"\"\ncase \"$deploymentType\" in\n  prod)\n    deploymentFlag=\"--prod\"\n    ;;\n  preview)\n    if [ -z \"$previewName\" ]; then\n      echo \"ERROR: ConvexExport.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 \"Exporting Convex data from: $deploymentType\"\necho \"Output file: $outputPath\"\n\ntimeout \"$cmdTimeout\" npx convex export $deploymentFlag --path \"$outputPath\"\n\nexitCode=$?\nif [ $exitCode -ne 0 ]; then\n  echo \"ERROR: Convex export failed with exit code $exitCode.\"\n  exit $exitCode\nfi\n\nif [ ! -f \"$outputPath\" ]; then\n  echo \"ERROR: Export completed but output file not found at '$outputPath'.\"\n  exit 1\nfi\n\nfileSize=$(du -sh \"$outputPath\" | cut -f1)\necho \"Export complete. File: $outputPath ($fileSize)\"\n\nif [ \"$captureArtifact\" = \"True\" ]; then\n  new_octopusartifact \"$outputPath\"\n  echo \"Export captured as Octopus artifact.\"\nfi\n"
  },
  "Category": "Convex",
  "HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates/convex-export-data.json",
  "Website": "/step-templates/3f4519f7-78f6-4fb9-8bc5-97e138825bb8",
  "Logo": "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",
  "$Meta": {
    "Type": "ActionTemplate"
  }
}

History

Page updated on Friday, May 29, 2026