Supabase - Deploy Edge Function

Octopus.Script exported 2026-06-02 by itsmebenwalker belongs to ‘Supabase’ category.

Deploys a Supabase Edge Function using the Supabase CLI.

This step will:

  1. Install the Supabase CLI if not already present on the worker
  2. Authenticate with Supabase using the access token
  3. Deploy the named function (or all functions) to the target project
  4. Optionally run a smoke test to confirm the function is reachable

Notes:

  • To deploy all functions in the project, enable Deploy All Functions. Leave Function Name empty when doing so.
  • JWT verification is enabled by default. Disable it only for public functions that do not require authentication.
  • The smoke test accepts any non-5xx response — a 401 (Unauthorized) is expected when JWT verification is enabled and is treated as a pass.
  • The Supabase worker requires internet access to reach supabase.com and GitHub releases.

Finding your Project Ref:

  • From the Supabase Dashboard URL: https://app.supabase.com/project/<PROJECT_REF>/...
  • Or go to Project Settings → General

Supabase Edge Functions Documentation Supabase CLI Reference

Parameters

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

Project Ref

SupabaseProjectRef =

The unique identifier of your Supabase project.

Where to find it:

Example: abcdefghijklmn

Access Token

SupabaseAccessToken

Your Supabase personal access token for CLI authentication.

Where to get it:

  1. Go to Supabase Dashboard → Account
  2. Click Access Tokens
  3. Create a new token or use an existing one

This value is stored securely and will not be displayed in logs.

Function Name

SupabaseFunctionName =

The name of the Edge Function to deploy.

Leave empty to deploy all Edge Functions in the project.

Example: hello-world

Verify JWT

SupabaseVerifyJWT = True

When enabled, the function will require a valid Supabase JWT in the Authorization header.

Disable this only for public functions that do not require authentication. Corresponds to the --no-verify-jwt CLI flag when unchecked.

Default: enabled.

Import Map Path

SupabaseImportMapPath =

Optional path to a custom import_map.json file. When provided, passed to the CLI via --import-map.

Leave empty to use the default import map for the function.

Run Smoke Test

SupabaseSmokeTest = False

When enabled, sends a GET request to the function URL after deploy and asserts the response is not a 5xx server error.

A 401 Unauthorized response is treated as a pass (expected when JWT verification is enabled). Only fails on 5xx responses or connection errors.

Skipped when Deploy All Functions is enabled.

CLI Version

SupabaseCliVersion = latest

The version of the Supabase CLI to install.

  • Use latest to always use the newest version
  • Specify a version like 1.176.6 to pin a specific release

Default: latest

Script body

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

# Supabase - Deploy Edge Function
# This script deploys a Supabase Edge Function using the Supabase CLI

set -e

# Export Octopus variables as environment variables
export SUPABASE_PROJECT_REF="#{SupabaseProjectRef}"
export SUPABASE_ACCESS_TOKEN="#{SupabaseAccessToken}"
export SUPABASE_FUNCTION_NAME="#{SupabaseFunctionName}"
export SUPABASE_VERIFY_JWT="#{SupabaseVerifyJWT}"
export SUPABASE_IMPORT_MAP_PATH="#{SupabaseImportMapPath}"
export SUPABASE_SMOKE_TEST="#{SupabaseSmokeTest}"
export SUPABASE_CLI_VERSION="#{SupabaseCliVersion}"

# Octopus leaves #{Variable} literal when a parameter has an empty default and
# the user does not supply a value. Treat those as the correct defaults.
case "$SUPABASE_FUNCTION_NAME"   in "#{"*) SUPABASE_FUNCTION_NAME="" ;;   esac
case "$SUPABASE_VERIFY_JWT"      in "#{"*) SUPABASE_VERIFY_JWT="True" ;;  esac
case "$SUPABASE_IMPORT_MAP_PATH" in "#{"*) SUPABASE_IMPORT_MAP_PATH="" ;; esac
case "$SUPABASE_SMOKE_TEST"      in "#{"*) SUPABASE_SMOKE_TEST="False" ;; esac
case "$SUPABASE_CLI_VERSION"     in "#{"*) SUPABASE_CLI_VERSION="latest" ;; esac

# Parameter validation
if [ -z "$SUPABASE_PROJECT_REF" ]; then
    echo "ERROR: Supabase Project Ref is required. Please provide a value for 'Project Ref'."
    exit 1
fi

if [ -z "$SUPABASE_ACCESS_TOKEN" ]; then
    echo "ERROR: Access Token is required. Please provide a value for 'Access Token'."
    exit 1
fi

if [ -z "$SUPABASE_CLI_VERSION" ]; then
    SUPABASE_CLI_VERSION="latest"
fi

echo "=========================================="
echo "Supabase - Deploy Edge Function"
echo "=========================================="
echo "Project Ref: $SUPABASE_PROJECT_REF"
if [ -z "$SUPABASE_FUNCTION_NAME" ]; then
    echo "Deploying:   ALL functions"
else
    echo "Function:    $SUPABASE_FUNCTION_NAME"
fi
echo "CLI Version: $SUPABASE_CLI_VERSION"
echo "=========================================="

# Check if Supabase CLI is installed
install_supabase_cli() {
    local version="$1"

    echo "Installing Supabase CLI..."

    # Detect OS
    if [ "$(uname)" = "Darwin" ]; then
        # macOS
        if [ "$version" = "latest" ]; then
            brew install supabase/tap/supabase
        else
            brew install supabase/tap/supabase@"$version"
        fi
    elif [ "$(uname)" = "Linux" ]; then
        # Linux - download binary directly from GitHub releases
        local arch
        arch=$(uname -m)
        case "$arch" in
            x86_64)  arch="amd64" ;;
            aarch64) arch="arm64" ;;
            *) echo "ERROR: Unsupported architecture: $arch"; exit 1 ;;
        esac
        local download_url
        if [ "$version" = "latest" ]; then
            download_url="https://github.com/supabase/cli/releases/latest/download/supabase_linux_${arch}.tar.gz"
        else
            download_url="https://github.com/supabase/cli/releases/download/v${version}/supabase_linux_${arch}.tar.gz"
        fi
        echo "Downloading Supabase CLI from GitHub releases..."
        mkdir -p "$HOME/.local/bin"
        curl -fsSL "$download_url" -o /tmp/supabase.tar.gz
        tar -xzf /tmp/supabase.tar.gz -C "$HOME/.local/bin"
        chmod +x "$HOME/.local/bin/supabase"
        export PATH="$HOME/.local/bin:$PATH"
        rm -f /tmp/supabase.tar.gz
    else
        echo "ERROR: Unsupported operating system: $(uname)"
        exit 1
    fi
}

if ! command -v supabase &> /dev/null; then
    echo "Supabase CLI not found. Installing..."
    install_supabase_cli "$SUPABASE_CLI_VERSION"
else
    echo "Supabase CLI found: $(which supabase)"
    CURRENT_VERSION=$(supabase --version 2>/dev/null | awk '{print $2}')
    echo "Current version: $CURRENT_VERSION"

    if [ "$SUPABASE_CLI_VERSION" != "latest" ] && [ "$SUPABASE_CLI_VERSION" != "$CURRENT_VERSION" ]; then
        echo "Updating CLI to version $SUPABASE_CLI_VERSION..."
        install_supabase_cli "$SUPABASE_CLI_VERSION"
    fi
fi

# Verify CLI installation
if ! command -v supabase &> /dev/null; then
    echo "ERROR: Failed to install Supabase CLI"
    exit 1
fi

# Resolve working directory from extracted package
WORKDIR="#{Octopus.Action.Package[supabase-migrations].ExtractedPath}"
if [ -z "$WORKDIR" ] || [ ! -d "$WORKDIR" ]; then
    WORKDIR="$(pwd)"
fi
echo "Supabase workdir: $WORKDIR"
if [ -d "$WORKDIR/supabase/functions" ]; then
    echo "Functions folder exists: YES"
else
    echo "Functions folder exists: NO"
fi

echo ""
echo "=========================================="
echo "Deploying Edge Function..."
echo "=========================================="

# Build deploy command as array to handle spaces in arguments safely
DEPLOY_ARGS=(functions deploy)

if [ -z "$SUPABASE_FUNCTION_NAME" ]; then
    echo "Mode: Deploy all functions"
else
    DEPLOY_ARGS+=("$SUPABASE_FUNCTION_NAME")
    echo "Mode: Deploy function '$SUPABASE_FUNCTION_NAME'"
fi

if [ "$SUPABASE_VERIFY_JWT" = "False" ]; then
    DEPLOY_ARGS+=(--no-verify-jwt)
    echo "JWT verification: disabled"
fi

if [ -n "$SUPABASE_IMPORT_MAP_PATH" ]; then
    DEPLOY_ARGS+=(--import-map "$SUPABASE_IMPORT_MAP_PATH")
    echo "Import map: $SUPABASE_IMPORT_MAP_PATH"
fi

DEPLOY_ARGS+=(--project-ref "$SUPABASE_PROJECT_REF")
DEPLOY_ARGS+=(--workdir "$WORKDIR")

DEPLOY_OUTPUT=$(supabase "${DEPLOY_ARGS[@]}" 2>&1) || {
    echo "ERROR: Deploy failed."
    echo "$DEPLOY_OUTPUT"
    exit 1
}
echo "$DEPLOY_OUTPUT"

echo ""
echo "=========================================="
echo "Deploy successful!"
echo "=========================================="

if [ -z "$SUPABASE_FUNCTION_NAME" ]; then
    echo "All functions deployed."
    echo "Base URL: https://${SUPABASE_PROJECT_REF}.supabase.co/functions/v1/"
    if [ "$SUPABASE_SMOKE_TEST" = "True" ]; then
        echo "Note: Smoke test skipped - cannot test a single endpoint when deploying all functions."
    fi
else
    FUNCTION_URL="https://${SUPABASE_PROJECT_REF}.supabase.co/functions/v1/${SUPABASE_FUNCTION_NAME}"
    echo "Function URL: $FUNCTION_URL"

    if [ "$SUPABASE_SMOKE_TEST" = "True" ]; then
        echo ""
        echo "=========================================="
        echo "Running smoke test..."
        echo "=========================================="
        echo "GET $FUNCTION_URL"

        HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" --max-time 10 "$FUNCTION_URL") || {
            echo "ERROR: Smoke test failed - could not reach $FUNCTION_URL"
            exit 1
        }

        echo "HTTP status: $HTTP_STATUS"

        if [ "${HTTP_STATUS:0:1}" = "5" ]; then
            echo "ERROR: Smoke test failed with HTTP $HTTP_STATUS. The function returned a server error."
            exit 1
        else
            echo "Smoke test passed (HTTP $HTTP_STATUS)."
        fi
    fi
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": "c3e5a7f2-8b14-4d9c-a6e0-f1d2b3c4e5f6",
  "Name": "Supabase - Deploy Edge Function",
  "Description": "Deploys a Supabase Edge Function using the Supabase CLI.\n\nThis step will:\n1. Install the Supabase CLI if not already present on the worker\n2. Authenticate with Supabase using the access token\n3. Deploy the named function (or all functions) to the target project\n4. Optionally run a smoke test to confirm the function is reachable\n\n**Notes:**\n- To deploy all functions in the project, enable **Deploy All Functions**. Leave **Function Name** empty when doing so.\n- JWT verification is enabled by default. Disable it only for public functions that do not require authentication.\n- The smoke test accepts any non-5xx response — a 401 (Unauthorized) is expected when JWT verification is enabled and is treated as a pass.\n- The Supabase worker requires internet access to reach `supabase.com` and GitHub releases.\n\n**Finding your Project Ref:**\n- From the Supabase Dashboard URL: `https://app.supabase.com/project/<PROJECT_REF>/...`\n- Or go to **Project Settings → General**\n\n[Supabase Edge Functions Documentation](https://supabase.com/docs/guides/functions/deploy)\n[Supabase CLI Reference](https://supabase.com/docs/reference/cli/supabase-functions-deploy)",
  "Version": 1,
  "ExportedAt": "2026-06-02T00:00:00.000Z",
  "ActionType": "Octopus.Script",
  "Author": "itsmebenwalker",
  "Parameters": [
    {
      "Id": "a1b2c3d4-1234-4abc-8def-ab1234567890",
      "Name": "SupabaseProjectRef",
      "Label": "Project Ref",
      "HelpText": "The unique identifier of your Supabase project.\n\n**Where to find it:**\n- From your project URL: `https://app.supabase.com/project/<PROJECT_REF>/settings/general`\n- In Dashboard: **Project Settings → General → Project ID**\n\nExample: `abcdefghijklmn`",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      },
      "Links": {}
    },
    {
      "Id": "b2c3d4e5-2345-4bcd-9ef0-bc2345678901",
      "Name": "SupabaseAccessToken",
      "Label": "Access Token",
      "HelpText": "Your Supabase personal access token for CLI authentication.\n\n**Where to get it:**\n1. Go to [Supabase Dashboard → Account](https://app.supabase.com/account/tokens)\n2. Click **Access Tokens**\n3. Create a new token or use an existing one\n\nThis value is stored securely and will not be displayed in logs.",
      "DefaultValue": null,
      "DisplaySettings": {
        "Octopus.ControlType": "Sensitive"
      },
      "Links": {}
    },
    {
      "Id": "c3d4e5f6-3456-4cde-aef0-cd3456789012",
      "Name": "SupabaseFunctionName",
      "Label": "Function Name",
      "HelpText": "The name of the Edge Function to deploy.\n\nLeave empty to deploy **all** Edge Functions in the project.\n\nExample: `hello-world`",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      },
      "Links": {}
    },
    {
      "Id": "e5f6a7b8-5678-4ef0-cef0-ef5678901234",
      "Name": "SupabaseVerifyJWT",
      "Label": "Verify JWT",
      "HelpText": "When enabled, the function will require a valid Supabase JWT in the `Authorization` header.\n\nDisable this only for public functions that do not require authentication. Corresponds to the `--no-verify-jwt` CLI flag when unchecked.\n\nDefault: enabled.",
      "DefaultValue": "True",
      "DisplaySettings": {
        "Octopus.ControlType": "Checkbox"
      },
      "Links": {}
    },
    {
      "Id": "f6a7b8c9-6789-4f01-def0-fa6789012345",
      "Name": "SupabaseImportMapPath",
      "Label": "Import Map Path",
      "HelpText": "Optional path to a custom `import_map.json` file. When provided, passed to the CLI via `--import-map`.\n\nLeave empty to use the default import map for the function.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      },
      "Links": {}
    },
    {
      "Id": "a7b8c9d0-7890-4012-ef01-ab7890123456",
      "Name": "SupabaseSmokeTest",
      "Label": "Run Smoke Test",
      "HelpText": "When enabled, sends a GET request to the function URL after deploy and asserts the response is not a 5xx server error.\n\nA 401 Unauthorized response is treated as a pass (expected when JWT verification is enabled). Only fails on 5xx responses or connection errors.\n\nSkipped when **Deploy All Functions** is enabled.",
      "DefaultValue": "False",
      "DisplaySettings": {
        "Octopus.ControlType": "Checkbox"
      },
      "Links": {}
    },
    {
      "Id": "b8c9d0e1-8901-4123-f012-bc8901234567",
      "Name": "SupabaseCliVersion",
      "Label": "CLI Version",
      "HelpText": "The version of the Supabase CLI to install.\n\n- Use `latest` to always use the newest version\n- Specify a version like `1.176.6` to pin a specific release\n\nDefault: `latest`",
      "DefaultValue": "latest",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      },
      "Links": {}
    }
  ],
  "Properties": {
    "Octopus.Action.Script.Syntax": "Bash",
    "Octopus.Action.Script.ScriptSource": "Inline",
    "Octopus.Action.RunOnServer": "true",
    "Octopus.Action.Script.ScriptBody": "# Supabase - Deploy Edge Function\n# This script deploys a Supabase Edge Function using the Supabase CLI\n\nset -e\n\n# Export Octopus variables as environment variables\nexport SUPABASE_PROJECT_REF=\"#{SupabaseProjectRef}\"\nexport SUPABASE_ACCESS_TOKEN=\"#{SupabaseAccessToken}\"\nexport SUPABASE_FUNCTION_NAME=\"#{SupabaseFunctionName}\"\nexport SUPABASE_VERIFY_JWT=\"#{SupabaseVerifyJWT}\"\nexport SUPABASE_IMPORT_MAP_PATH=\"#{SupabaseImportMapPath}\"\nexport SUPABASE_SMOKE_TEST=\"#{SupabaseSmokeTest}\"\nexport SUPABASE_CLI_VERSION=\"#{SupabaseCliVersion}\"\n\n# Octopus leaves #{Variable} literal when a parameter has an empty default and\n# the user does not supply a value. Treat those as the correct defaults.\ncase \"$SUPABASE_FUNCTION_NAME\"   in \"#{\"*) SUPABASE_FUNCTION_NAME=\"\" ;;   esac\ncase \"$SUPABASE_VERIFY_JWT\"      in \"#{\"*) SUPABASE_VERIFY_JWT=\"True\" ;;  esac\ncase \"$SUPABASE_IMPORT_MAP_PATH\" in \"#{\"*) SUPABASE_IMPORT_MAP_PATH=\"\" ;; esac\ncase \"$SUPABASE_SMOKE_TEST\"      in \"#{\"*) SUPABASE_SMOKE_TEST=\"False\" ;; esac\ncase \"$SUPABASE_CLI_VERSION\"     in \"#{\"*) SUPABASE_CLI_VERSION=\"latest\" ;; esac\n\n# Parameter validation\nif [ -z \"$SUPABASE_PROJECT_REF\" ]; then\n    echo \"ERROR: Supabase Project Ref is required. Please provide a value for 'Project Ref'.\"\n    exit 1\nfi\n\nif [ -z \"$SUPABASE_ACCESS_TOKEN\" ]; then\n    echo \"ERROR: Access Token is required. Please provide a value for 'Access Token'.\"\n    exit 1\nfi\n\nif [ -z \"$SUPABASE_CLI_VERSION\" ]; then\n    SUPABASE_CLI_VERSION=\"latest\"\nfi\n\necho \"==========================================\"\necho \"Supabase - Deploy Edge Function\"\necho \"==========================================\"\necho \"Project Ref: $SUPABASE_PROJECT_REF\"\nif [ -z \"$SUPABASE_FUNCTION_NAME\" ]; then\n    echo \"Deploying:   ALL functions\"\nelse\n    echo \"Function:    $SUPABASE_FUNCTION_NAME\"\nfi\necho \"CLI Version: $SUPABASE_CLI_VERSION\"\necho \"==========================================\"\n\n# Check if Supabase CLI is installed\ninstall_supabase_cli() {\n    local version=\"$1\"\n\n    echo \"Installing Supabase CLI...\"\n\n    # Detect OS\n    if [ \"$(uname)\" = \"Darwin\" ]; then\n        # macOS\n        if [ \"$version\" = \"latest\" ]; then\n            brew install supabase/tap/supabase\n        else\n            brew install supabase/tap/supabase@\"$version\"\n        fi\n    elif [ \"$(uname)\" = \"Linux\" ]; then\n        # Linux - download binary directly from GitHub releases\n        local arch\n        arch=$(uname -m)\n        case \"$arch\" in\n            x86_64)  arch=\"amd64\" ;;\n            aarch64) arch=\"arm64\" ;;\n            *) echo \"ERROR: Unsupported architecture: $arch\"; exit 1 ;;\n        esac\n        local download_url\n        if [ \"$version\" = \"latest\" ]; then\n            download_url=\"https://github.com/supabase/cli/releases/latest/download/supabase_linux_${arch}.tar.gz\"\n        else\n            download_url=\"https://github.com/supabase/cli/releases/download/v${version}/supabase_linux_${arch}.tar.gz\"\n        fi\n        echo \"Downloading Supabase CLI from GitHub releases...\"\n        mkdir -p \"$HOME/.local/bin\"\n        curl -fsSL \"$download_url\" -o /tmp/supabase.tar.gz\n        tar -xzf /tmp/supabase.tar.gz -C \"$HOME/.local/bin\"\n        chmod +x \"$HOME/.local/bin/supabase\"\n        export PATH=\"$HOME/.local/bin:$PATH\"\n        rm -f /tmp/supabase.tar.gz\n    else\n        echo \"ERROR: Unsupported operating system: $(uname)\"\n        exit 1\n    fi\n}\n\nif ! command -v supabase &> /dev/null; then\n    echo \"Supabase CLI not found. Installing...\"\n    install_supabase_cli \"$SUPABASE_CLI_VERSION\"\nelse\n    echo \"Supabase CLI found: $(which supabase)\"\n    CURRENT_VERSION=$(supabase --version 2>/dev/null | awk '{print $2}')\n    echo \"Current version: $CURRENT_VERSION\"\n\n    if [ \"$SUPABASE_CLI_VERSION\" != \"latest\" ] && [ \"$SUPABASE_CLI_VERSION\" != \"$CURRENT_VERSION\" ]; then\n        echo \"Updating CLI to version $SUPABASE_CLI_VERSION...\"\n        install_supabase_cli \"$SUPABASE_CLI_VERSION\"\n    fi\nfi\n\n# Verify CLI installation\nif ! command -v supabase &> /dev/null; then\n    echo \"ERROR: Failed to install Supabase CLI\"\n    exit 1\nfi\n\n# Resolve working directory from extracted package\nWORKDIR=\"#{Octopus.Action.Package[supabase-migrations].ExtractedPath}\"\nif [ -z \"$WORKDIR\" ] || [ ! -d \"$WORKDIR\" ]; then\n    WORKDIR=\"$(pwd)\"\nfi\necho \"Supabase workdir: $WORKDIR\"\nif [ -d \"$WORKDIR/supabase/functions\" ]; then\n    echo \"Functions folder exists: YES\"\nelse\n    echo \"Functions folder exists: NO\"\nfi\n\necho \"\"\necho \"==========================================\"\necho \"Deploying Edge Function...\"\necho \"==========================================\"\n\n# Build deploy command as array to handle spaces in arguments safely\nDEPLOY_ARGS=(functions deploy)\n\nif [ -z \"$SUPABASE_FUNCTION_NAME\" ]; then\n    echo \"Mode: Deploy all functions\"\nelse\n    DEPLOY_ARGS+=(\"$SUPABASE_FUNCTION_NAME\")\n    echo \"Mode: Deploy function '$SUPABASE_FUNCTION_NAME'\"\nfi\n\nif [ \"$SUPABASE_VERIFY_JWT\" = \"False\" ]; then\n    DEPLOY_ARGS+=(--no-verify-jwt)\n    echo \"JWT verification: disabled\"\nfi\n\nif [ -n \"$SUPABASE_IMPORT_MAP_PATH\" ]; then\n    DEPLOY_ARGS+=(--import-map \"$SUPABASE_IMPORT_MAP_PATH\")\n    echo \"Import map: $SUPABASE_IMPORT_MAP_PATH\"\nfi\n\nDEPLOY_ARGS+=(--project-ref \"$SUPABASE_PROJECT_REF\")\nDEPLOY_ARGS+=(--workdir \"$WORKDIR\")\n\nDEPLOY_OUTPUT=$(supabase \"${DEPLOY_ARGS[@]}\" 2>&1) || {\n    echo \"ERROR: Deploy failed.\"\n    echo \"$DEPLOY_OUTPUT\"\n    exit 1\n}\necho \"$DEPLOY_OUTPUT\"\n\necho \"\"\necho \"==========================================\"\necho \"Deploy successful!\"\necho \"==========================================\"\n\nif [ -z \"$SUPABASE_FUNCTION_NAME\" ]; then\n    echo \"All functions deployed.\"\n    echo \"Base URL: https://${SUPABASE_PROJECT_REF}.supabase.co/functions/v1/\"\n    if [ \"$SUPABASE_SMOKE_TEST\" = \"True\" ]; then\n        echo \"Note: Smoke test skipped - cannot test a single endpoint when deploying all functions.\"\n    fi\nelse\n    FUNCTION_URL=\"https://${SUPABASE_PROJECT_REF}.supabase.co/functions/v1/${SUPABASE_FUNCTION_NAME}\"\n    echo \"Function URL: $FUNCTION_URL\"\n\n    if [ \"$SUPABASE_SMOKE_TEST\" = \"True\" ]; then\n        echo \"\"\n        echo \"==========================================\"\n        echo \"Running smoke test...\"\n        echo \"==========================================\"\n        echo \"GET $FUNCTION_URL\"\n\n        HTTP_STATUS=$(curl -s -o /dev/null -w \"%{http_code}\" --max-time 10 \"$FUNCTION_URL\") || {\n            echo \"ERROR: Smoke test failed - could not reach $FUNCTION_URL\"\n            exit 1\n        }\n\n        echo \"HTTP status: $HTTP_STATUS\"\n\n        if [ \"${HTTP_STATUS:0:1}\" = \"5\" ]; then\n            echo \"ERROR: Smoke test failed with HTTP $HTTP_STATUS. The function returned a server error.\"\n            exit 1\n        else\n            echo \"Smoke test passed (HTTP $HTTP_STATUS).\"\n        fi\n    fi\nfi\n"
  },
  "Category": "Supabase",
  "HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates/supabase-deploy-edge-function.json",
  "Website": "/step-templates/c3e5a7f2-8b14-4d9c-a6e0-f1d2b3c4e5f6",
  "Logo": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAeGVYSWZNTQAqAAAACAAEARoABQAAAAEAAAA+ARsABQAAAAEAAABGASgAAwAAAAEAAgAAh2kABAAAAAEAAABOAAAAAAAAASAAAAABAAABIAAAAAEAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAyKADAAQAAAABAAAAyAAAAAAO6ld3AAAACXBIWXMAACxLAAAsSwGlPZapAAA7LElEQVR4Ae19e5ilR1nn+c453TO5oQiriLju7rMrYHQxFxJCZiYTEEFd/3BVdtV9kERFIRJIyG2TKC2rCSHJRIHAGlCIruwurD77LLp4Q0OuhGQyEx4DKBdXUETEcMllprvP+b79/X7v+9ZXp6e70z19uvv0dFWf/qrqvVV9Vb/3q6rvWnVKWLcWeOG91zxlfnrHM+um+bZup5rqdIdf6FTVJ29/zqV/vW6FFsNjbYFqrNaKMbXAnv3XPbvTm35N1WleUnc639qbnup2Ok2nGdadpu78I9J3d+r6lttPed3/LU022S1QHGTM/XPO/uvP60xPvanb7z+1nh/AIRr4A/49VF2OJT04C72l857q8Nylt51x2ReCX+LJaoHiIGPsj90HbvyZbq/3tk7V6TcDjB3Lharq9HZOdYaz83c1w94P3XHqhRhZSpi0FsDQX8I4WmD3/df/QLfbewtsPbFzsECMKsNDc3CS6bM71WDfTDNT+mIcHTFmG6VTxtCgL3zgzd9RTfVv6XSrHVxnrCbQSbrd7o998MBJ565Gr8huTAsUB1ljO+9+4Jp/Nt8d/Ha333t6Mxiu3hpGkmq614PiK7EmKVPe1bfgumoUB1lD8+7985l+p7Pzbd3pqVPrucFRW2rmhzj7W5151sf2PfmojRTFdWmB4iBraNbh1530ht6O/o/Us/NrsILlCM90dTrf1DlUf+OaDBXlsbdAcZCjbNLd+298eXeqd+lRTasWL7OqmimMSCVMUguUDjmK3th18IZd3V5/H85E9f3ofxRWchUuPqqqN1Udn1NLevNboIwgq+yD5z9ww7f1qt47q2715NWesVquqKZqMII05YC1XCNtAq84yCoa/XsfvP6Eqar7zmp66plrWZSvosgiusktUBxkpR0wM9M9XHevq3ZOfU99eG6lWkVui7dAGdJX2IHn/OCTXlNN9y+oD6/tjNUKiytiE9ICxUFW0BG7D9z0A51edc0Yz1itoNQiMgktUKZYT9ALvHW96nXegZNMO8dzxuoJCizsiWqB4iDLdMdZD+37hk63fytuI/nmjRg9qqbX3he/TL0Ka+NaoDjIEm29t5npT802t3R3Tj+3nj3620iWML8IGfe/d4c7F2EU0ia2QFmDLNH49YEnvb67Y+qH13obyRLmFyE31aCeLw6ySMtsJqk4yCKtv+fADT9R9XtX8IlA3GG7YaFquhtY2obt1pYuqDjIgu7bc+DG51d88IlXtbNHZReIlew2aYGyBsk6eu+Db35Gp+re2ul1x3obSVZESW6xFigO4h3G20iaevib3en+v244tSqhtABaoDiIw+DQsLqh2tF/0cYtygv+tkILlDUIegnPdrwWz3b8XLkBcStAdmPruO0dZNfBG/8d3kZyTYfvWiiL8o1F3xYobVtPsc4+uO/kbqf767iN5LimXt3bSMbatzi5W1V4oVy/OWGsdouxNbfAtnUQvo0ErxLhovzo3kay5qY/0gCemeLbTUqYoBbYlg5y8kPvncagcXNvx/QZZVE+QWicwKpsSwd5ytznruzu6P/ocLY8+DSBmJyoKm27RfquA/t+vOp1r2r4HqtyY8dEgXESK7OtHGTXg796ZrfqvBUd0W/KGatJxOPE1WnbTLH2fvi6Z/Q69bur3njfRjJxPVoqNNYW2BYOsvehm0+sp/vvrqamntXMHcX7c8fa5MXYVmqBbeEg9ezs9Xjw6YUTfcYKr61uhs30VgLPdqjrMe8gux+44dXVjt4rJv42EjxQiO8glAemJszrjulF+q79+16CB5/e2Bk23XIbyYQhb4tU55h1kD37b3p21e+8E/crH9/Mb+JtJFsECKWai7fAMTnF2vuXNzwVzwO+C199+hZ+e6OE0gJH2wLHnIPwozbDx6o393dMnTnRi/Kj7bGit6EtcMw5SP2kk67u7Zj6MX77r4TSAmttgWNqDbLn4I3/oer2r67LtGqtuCj63gLHjIPsvm/fGXjhwttxNaG3dc9Y8VxvCZPUAsfEFIu3kVT96t1Vf+u+jQQf5MFXpOsTJwkcpS64aW+rNwLfRnK46b4TDz49e6svypu6vERj0vC4tUcQfNqPH7XpTk+/eKs7x6QBo9THWmBLO8iuA9e/GlfKL5j420gK2rZsC2zZKdZe3EZS97vX6qGn8mzHlgXgpFd8S44geFXPt9e96jewsD1+nF+anfTOKvXb+BbYcg5yxr3XPAUvyPltvOjt6eU2ko0HzHYrcUs5yEwz090xveMt3empM8q6Y7tBdXP2d0s5yJ8dPOkXe1NTP3ZMOgeuETZVvWNzYFBKXaoFtswiffeD+/4j3j54pdYcx+KiHA6Cv/JE4VJI3ST6lhhBdh9409ndqsu3kUxt6itCN6mTSrGb1wIT7yAvOLjvW6ru1DuqXu8p5YzV5gFlu5Y80Q5y2v2/fvyg6dzS420kc/PbtY/Kfm9iC0yugzRNdULv0V/B20i+f3i4OMcmYmRbFz2xDrLngX2vwiOzry33WG1rfG76zk/kWaxzDtzwoqbbe1NniJctHItnrDa920sFVtoCEzeCnHX/Dc/qdPu/qdtI6u31dmmc6Z24/lgpkI5VuYkaQfYeuOnrm27zLjz49Ixj8mLgMijiA1NN3S1fmFqmjTaDNTFHrB9t3turO/Ut1fTU87abc6SOxyemUrokJqIFJsZBvnAAH7WZnvrRsiifCFyUSngLTMQUa89+vI1kqv8L9QAvedtey44CxAlvgU13kF0PXn8m1qa4jaSZ6myzRfmEY6NUDy2wqVOsvQ9e94xup49Fee+pzaC8P7cgcvJaYNMc5Ac//+vHD4f9d/SmeBsJvhdYQmmBCWyBTXOQr37h0et6x02/ZDhbbiOZQFyUKnkLbMoaZPfBfT+Hu3N/vp4tI0dCIu4YqJuqfEAnNchkJDZ8BOFtJHjwaZ8W5OU2khEU4GJhuQ4y0iKbn9nQDuFtJFNTvT/u9rrfWl4wPdr5eDNk5/G/e/jBL979F3/U9Hptv+Cu5vxUShcZns7QtovjW9VrxKcc6TzkdbsNTpdbnkwdBpFl3KvsRHqDw5To2JAGfbpn1e3hsEVboAdfMbIeQ8rY1QJGVTXwcTBZB/5QS7fdDWWpmj5fJBlkJqQIvV4PdUB1OpXtKV4rqzo3NWgqEpHblQHtE2yxDVAHvMMVprAb3erhXq/72XrQfHLQbz7zkTOv/CfVbRUb1WkV8kctqttImuYD1U5cKS/rjiPasep1O4/+zT90/umjnwHme6N89JJ1lCUM/cSCMxhDwiLSPE0rShuNRkyHCf6wwS0u2CovAwvkXVB6tE99YZdKLhs+IVthTMImH3KMVZj0Qh+Ilw4i1CVkKUofZ0w+3Flx2FCZ4VSZPQqZHegpVB1cX8O9r9Vn4DP3IfXeua8N/2z/i674akgsF7P4dQ+n3f+KqRN6z3wXnu34ibo827Foe9NBHvnrL3QePvhpOIh9UtHAaLjQBVQDSxodAlAymIFE4OGRVGghYKhNARHkFNQxuYgdCgFSE6CCyXV1H4wQC73WHhGsf4ss7WWzDA4RmS75qVyrkOdVOYIbfsG6aGNgl52sHNejCG3JHutLZ6c+lOOXZNCm1RQOPLjW1tTNQ9iFXzvxSTt+6wP/5sJZqi4VNGAtxRwX/cT+s/4zbiMpzrGCBmXv8p9dHDhgVnnGOqwynwQ0NzLQESwUUlBmxDnIdIGQZ16Ts8RzA8gbyXS45Y9/UYfWRpgFj3wJQpLOIS2qMSHtqBwADRIdUk5JNnW59RTRKZLFiYMpZKRNBXx3bEysWBDzakZwFPguA85cGtytgdHk5Krfv+Wxr83/ya79N5wWMovF6+4ge/Zf/1JMKq8uL3lbrPlHaYSPoIEjvkFklA9AqfsJAB0ps5GBmMA/QOHgkA3pk2OA0dEZaaLK5MUS2EQm3eogJaFPJLMbOjxS00DkoRu4FNltGF9yBmiWJh5j/sIAM/GfHyCMRidSe1BcgWsNqrhOkBlThv9cj3AtZiMpOSaPuMZFaeKxmu7vxtroT3fdv+/HJbDIZl0d5OwH9p0OT70ZtZ3CqmuR4gtppAXYsQiYzHjK8upwOQOZWgJITF0upzFxwog/SkWCCqIRwQnFDkIJUt5HEaWwYYgqKKY5arstxRKSaBQhPutDR1R9qbbAloqjHdLbfxUTsj4aKKsNgO5Bzhz1aIl5fZOsTjzY+AhJFjYadIG6qr6+O9299Zz9N1w2yrXcujnIWXgbCaZ9t2L0KLeRLNbyi9C4uOBfCgKQo4hOI8dBLIBAiiyj2QiR05WGgItLhwpGQpZmPCNTGU8ApaoVxfoozUQADeLJViQQy6acESnJgCZ1s2VE6roBmlSglKcY4zthkpWcjQayZCLacmoon0eO/svAFYwSHD2OCGDJHvWcjalXVTf9Zrp/7a6D+85bqLIuDnLa/TPHTzWdd2Dd8R3NfLkYuLDRl8p3cfaK83aD1CJS7HrrfiU0zWpphp8ceM4jFETWaGOZBD7IaB0gWWzoHAzJDgWc7o6jOgQ/eIqhR4C6SoAxjSiuk/bRRwqrC4uBqv6xxtAChYb4w8btyiayYjBiCDbp4onqGxD4y3gqIxPEop2OhaVJ9RZ8UmNvrr0uDnJC96Rruzunvq+czs2bemVp9iOPjBbYs9a57GABiYSYVgk0kklHS+Sko/4XKlwPc3EzYSD0AtxmpiN9WcnsgMiyvGzVQ8aoZ2SpScTt+3pHzqfRTzWSCR29WUSatoWdsKWq0raNIm4LGdWCZakobGwXQ48xZaCn6zoshLKgefAmMX2yvf585xpumj2h6vTeuuujb3tyyI/dQXYduPECPNtRbiOJFl5lnPek9Z1NHogxBou84x1zpBpobRYWaVNIGAg0geCGCDwGz0tPBNJADDkmIp8gCppGGwmxBpI3GyiKGqqsFyu+qC5LmSSClNUj6Wju6IeKVKZmUKiz7BhViqJYzbk41wVD3xHapaTLOXXRiGsSfEL85O7g8M+GwFgdZM/Bfd/b6/fwUZsGx7jU1VFWiZ+oBdTv7NEIdA7HQZAIDuKBkU+Zco1gI244BRPgAhxOC1PQMzvgJxuuYyqUGMVW2AuTVIy0rNCQjKWEEXwUSHZZCenSPmDIckyRjif0JL+QPTMbZckJaIMB/IQ2CiQhYyOf2BJW3o26iCLQeRoY5b/6uR9509NIG5uDnH3fdc9ERd6JCe1J5RWheauvLq2eZB/jD/ME6/zodI8JUgO/yakXATLRiRZhBBsgTKBDkqBD2jmMvF6SEBk0EaUigXw9QhGBnFZMXuW5ipsWT9MqyjLQhtmx4qN+oJkdr4fTZSdGANl2ftjTaACa10FcNRPr5LLhAMpzdzQSxSAMITWFWsc1aA/HIrQ4plq47efpx/X7LydvLA5y1t37vqE3Pf2O7lT/W8uiPDX50SW8k9Wl6nF2sAeBAmkS0L3sYckxigU42c4XAKVKAqhuiEgJkOdsK06yVgaRJVlqS9kityNdKEmGToCfeYVbpROYkBVPG/x5HPqtkAtLyXWtXDs75cYYWdJKk8goL+VcXcVa4VEha+HI5SOSXpBedX745IdmptfsIHh/7tTUzuYmzN12l0V5au6jTBBspsrIk0RUyhjN8kwLnEQ8j6z4mb7xZUk38oUx0DNHUgGyTXn8U59EpGXXCNwqCNieMZBTNmx7bBUwBW7dcUAWmk2PDCvHzJmdzLkoMBo0KoDE8lIwvQXExM0To7a1lznb0l4Gn27FKHjyN86e9Ow1Pw9yfO+RS/EZ5pcND80dWWChHEULaGAwGAQYHHSKuOEvpjt0DMoR+OSAPwpCVoEiEHIZilMuyTLPQEb+71kSk3OIb7omm6WTHDTMMVQn16XmSLAKg2Q2vf7M8zRvdoTXjlPVTXjdSVEIy6KDQqAjnWyQrusitGm/ZMtNKOLUjoH3q0z1j5uvm71rchAsyl+KO09n9DYSWS6bo24BwIM3KRKJ7CXrSsFaJkVk3zJhAiJxbQEB5yBCnqakKVFLSsfJpsOCaIjadICIjRb6xqMh/mcyng662UoyVgUwW7sqKLPDPAN0UoU9H87hZbIohGTLsqTwl7hOZh6th1ZoeM+WRDAFzdY10nC1ZGtBQmuRqvq+o55i7X7wplPR0G/HzpW3kSxo3KPOstP8vwUoSImOBNMMoinj6AaNvampljkYFek9MmCjB1EG5Mii88J+gpo9HxL2ocdzkqk8t8MKELFWHdsyQ4pHXrzzQLVzm6oRa2WB/t2KtESMIsyI5XwScm0vKaS0m9RR4CgUIwIdJjcUMsvEvHiIwv7tUTnI3odufhpuG35Pt9v7hmaI02IljKkFvB8TYgAQYpmdK0wrYekctGILAcbTGS0S+TM6jqEM5kCk5+CONPlJxvSYx59+ZsplnE0aVbRhIk8zpzyLFeCsDqS5iok4wchQ4YGfoM69x5lLRMkCEio0EVRQ8iuRVeElDAVZ43DzTat2kL1/PrOznpt9Jxblz6zLbSTRnGOMvWcZ2T861xIGRC/KRwqhScCEjAPUcEUdBKmSl6XFoDgxmMlRRKIuz3VElCMdQs8VJOj6SFuWtuyfWyUthhXqtsFyRqE7RKCdNsSRHxTR3YYKa6WsSAoEHynW240pTa7byDSXT+L2k1WvQeon4TaSHVM/UM5YLd+2R83lrAgdmXrXkaXOjQ5nzM7W+gOZyItoJQsqLmPS3FJUOTqdRKRCOdFtSuYLbDdkeizQdd2OqZge9f1YK1v0K1f3KRnJXtZo2U62qkvKDLNYU6Apq6yzaUqBedZ7JHjed8XsmhwGUVULEguVRiwoQ7tN85lVOcg5D9z4ympq6tXlPVZHtufYKH7E5lE1B2QCgoCM0gQMR4fAgHTSYcJqpBTF4EwtyUzLBgXId1MppnrQg00DkU4JEhmEY0tia+aCl4xrRMp5KltaNJwUkXRdCdOn3HSYSoQoy/ltZO1BuTBlvLDUSi6S4kGiGTQHVzzF2vPgTS/o9HtvapoaNyLLERcxW0hrbgF2X9unyiQQOS8HcetEDhQcsQ0BNGIKrmYEZTjpYILBDrWWBKZINxmlJSWayQdwM3Wpmn6blBGqREmm7rYpZxjS1nkhkrjS55sasjqSCXoqn/kIlM+NkK58IqZEqCwV67Hnqnn/ihxk18Ebvx0PPP0mjkInlttIlmrSMdEFB/SjriMQsLQbB6SAJ0iUI1M/pCRHPhliGzjgMHbSymTB5nLdKiu5sNPSqKgcN6iHc6w8nRwgJaiUYQU9n5GtkKh9xiDeVQeW7VIRM5uIrYURtpfF/TA6tvq51BH6YWeFMUePucFXq9nhXU/oIHwbCU6Y/VZveurbymOzK2zgoxXz/tUQQJ9A3mZc7H3+k2ZpgZx5gZMFOtgCfASPgIJt6BqKWmHQ7RSuyVJOf0RFpKXjtmiH3gY11VH18ZKZVghZZpCOqZ3qZTTfKe2KVCTpPNiRWdljhnXUo7NKiywlGnRFilGrZWrfRWvNSmslm26fT2t17n/BmY9/elkH0UdtmvrXsCg/syzKV9K0a5HhEzvoDuKPQNQIAnvsdNEYEQTOFx1ZAZbycVSmGOVMLweNH+kTbigUZ3hU89AhPdkQp91QJoWRTKLGmMGyMRs3IY0ZSDJH2yNBROP5gUFsnYQAOa5nhG6Iy4w2R1gTIWct+oThiFrKyPGa6l0z1Uy9rIP8w8HPXQHneFn5Rnlqu3VPjGKHQGWRWU8zyZMxcAgh3YEsSfGwSeKONuZ1JHfr0nE50slnlmeiPG0xM6STqWTaRFZ1kJAEXT+4rkagk4R/mBL+tGMuFuXLuDJukI7hZ57EO2IT5dCwM6OuWV51TE7Gxls68NVAzezg42iJP6DUkg6y+4EbfgTPk/+i7o9f1uTShRXOaluA0wl0oP8bVgR9IYtnVqzfERNyzPA/m2YlpDjqLIKQH8kN7AZYpakAIU6FZIsmXTdqn7rfCpdEyIbMonE4gyy7ctQjKSSjiaJES1ZKVQJDFxwpEI6T5JAIoahcyHDfIoSjRD6PqQ9J/N5w2ykXfYWsRR3kXLwrCK9DeTsaalqX3HMjJb2OLRBIMhgLuAQAeylNuUjwfweyIRw05I3EWKB3WUbGp6pSLhvOoKlQO02zIqCWbDLNAOUUIK+1iAjJsMCo8rk7KpdqjlGrBzgO2tye1ykKgbIVBzq1KYrn2akLFGsABdllwn6qnAybda8lhL0SSWgk0d3Rx+uA6t972inPeF8wjrgOcvYD1z297vXezY/alOsd0UwbFTskiAcgjCBjsK2nFoIocMDYRhIhxgAFIn+0Y0dRs+l2BTQCjLrcCNAsx4PokYk45CGtWoLu9lQwSzTwuyD5kKSQy4lCEiunEDEzWVp1NhcUVXXUtMvEWH4c4sM2BeN/1BqNLxn4buTm8ODj893mwvdVL033T4V5KeLBp+N61RS+NNv/zuIcS7bl+jFabLQplhadn0oGWyBg7KIEEwG+AB3hZLIiWYOxplRuOt2M6Pbbw6zbJp26+DcKt5llZ1PMQ6tINVvlJFayEVMfmYNcpq2SsvEpWLG/ksXmyEtyZixto31gADSSjwgYDPjGxS8Nu9V593z3xX+XC4w4yPTOzqW6jaS8Pzdvo41NZyBWd0YHM8Y/IwFYdO9vRjqaIwHQmSjS+IVsDmd3ADMGITsTZqLcWcnSZoQ0PwqCxVaQpxm5DqPcyXDMT1lV21QgBAtBiClX8FL5Xk0ahwzJxrJUmzZFy6fiwpp020yb0utRO515LCVec+dzXntvy7FUmmKdc+BXn4v7gy/v4JWMJWxeCxAv6l49CejwMcQn4AIychQhxacvlAxpQQiHPuVJd0hJCfZTHrtpw44KpQGJpL0PWcQMrIYCY5QrNirLaY4GLzJdyMqWmBG5dgihsEd5BhoiDzIyGwVF7DLUV6E28pgVbsMe5fVPhQUhH43ojMxTHKfWh3Pz/+WOU1/3ngUaymoE4fWOphnO9Kb7x+t53MUkC23dW2DkOkhMS6LTo/QEAPYu8UBQI8FAZ2GezkGmby1p8qQpn8mnPGkpYxaUFbC9jJZvBC8b0RGHbVmIumm0UAG2oXbwSGEeMkcYIZl8BnkRYtUn1L1eHklMGxAyGkkoz0y5s3R3THdwR/p7eqc8cq34i2w0gnzxwc/twZOBLx6Wj2ku0kQbSWKnEmmOgLyHeRYrApPKKmEp4/OFhFCHkZAZBaGOnLQeTiVl2h2RS9QokeURXO41SlmeEgY8GmWOUgpJIOgZTzqgQ7QtrE21VE4ZlVOdDeCet1KwDb2IE2NBwh2De4IXG3bwKY575g91Xn1PNbPk6z81gqBBz6+m8d7LI1c8C0oo2XVvAQAxYCNcsdO944UUpNvpi9WG10cUQkFZp4EhVCW/k3UYUWe3QmZhwTbsUnwUyxIMuIY/g2ga2PLn6pKNo7dltNU0BykzE5qmmywl21EYLPviHq9y8VrJecxmXqZRWJGkLNIUvnw1N/jb+eHw/Huef/HDIbZY3H3+g9d/I25EPLfcZ7VY82wgzbvQwY+OJ1D83xfe+rKYo86cyIAhVQdNAjKBwusUiFoV2iMBmIwVNvMMdEzaMD50XFasPE174WQsXwK0IFUSRBPFqJSWBck6qHk0d8HchoyktgijVqZyBDt0qWPHEge/dFQOhVPpSLs1J/Fg0nQeazrDn77n9Es+0QounsIX6apTcFr36eUu3cUbaKOpOOXKnhcABBZlmScirOMjrWxggS4lGVMwoIEgvus5y0pI5ixB1zD3yFVYF/tHxHSGNhWXmCgqePRKL3ihDgz44kqVD9swnAM59sNqQp7ssAowoEyUZXmQQQ1xSqVAR+Q/A+xgUV7Xc8Mr7/juS/4oySyT6FZ1dS5Vl5EprI1qgQW9gP60Q2XWPeEcLcm9icKoZwKOJ2RygV12t9OTODHIkIBtWVEsaQLuFc5NSkR9stUCOnRC3EYPOYM7RFIiiFmJZDIrWurOcAHlZCN0QjHkvMws4sVAOMfb7jztdW/JyMsmcV6t2tvB6xZLmIwWENwFFHY04Ig0s74ZqaQfi1tacijKJ6wZX0ZIDwB5nOdVTmtuxEZuj84ghwC8w5xGsMy+yYDtipJLNQbXjurYP41bZIcpq8FoTjSQJBesGBlMYYG+Ez3ibST17NyfDA53LoNg8stRqSNznJF9S1mbH9kwm0VR3wO0dAwG9aTWF04jnayQUVqi3JiSspTz/2AEFzEnHhyfpBT0hBwjJHDTrEAVgtCjbpoWMS1LVrLOpBlF28XgKHWI+7Quqk5Dse9WN5adrSOiCrxmEsVCEEluuTki4JW4cI7Bx5th9yexKD90hMAyBDb9jmX4hbWRLcD+RY+kbmbv8F9gBC8xFqkUeIltaGmFUt6FDN4tn5pJeYlyCGTKuC1Go7g3A8lMKtPtIS9e0HPQsyahuDA2llODSYW8/EXZkuGFwHpYf3nY77zsjtMv+nsRV7Hp4omQZU9zrcJWEV1DCxBs+vISx3SCyICkVIAHnuJAGgWKE2lBNViUmxF5jNaRmzSNDFRzXc/rKC4SNvzRUT2oanQycpCRWGsijQq0of0KGU2nYIcGND2SBRoxyy4fWW+DxKOagq7Kx/AHCumJaSLcevl1NRxccNd3XXx/y1l5Cov05i/TefSV6xXJdWoB4IZ4sXn5wqNsICeAwjoEtiLtIGsBHhWFoH65soFIquSRpfIzmUjGCBLmHJFiZ+DU8JflZVKu5YbS2gOGYv+iDNmOjMeZLclThzZCLBJhK9UP5rkoHzZv+NCpl/z3jLyqJI9XH+QwVMIktAD6nR1vG1aoBQLoOVYCFxJJYPF9kA2sLOVoVJTD5aiSMdkT8M2AeWVmwwtRJTQYeP2icBoQ3XTolFFhc1COFtoLbNxLrCgnwhtjp8xWWKbdkbQymTWvUyvnjodSVJCulM/N/c43T391ydtIrNbLb/mp9w81A6zt6SolTEoLqDPU0wkpjsQAVMAHZIOe9R+3nqKCJUlCup2ixW6CHRLUYzrLh5RoyVbomKCVTV1X1JE8jNgszOwELZzMqHCRZDmVhwIpLZ4TW20QIuNyrR5YcBSdsTo0/+Gp2R2ved/JM2v67ED3izse+Xin7vxFGUXyZp6ANECQcEAgMB8gDIxQAPAKuZbvFHCUchB6joZGd5DZoJlXWgmgw6b7HzMsLgnItlH9sC2rdIpWhkL42SadgKBT0C5qpCO/JFo5y5pqUnYbiloBGY66k8dp1fzwc52p6vwPnvnz/wTSmkL3IXhY3Wl+z++LX5OxojyGFvCBQpa841P/B+5IkJxipA0wYhsP6skdmFReNmOTjJpukMNWyrs2bVMyOaEyIqRiQyfJBMFjjRUqDk4U64goXk4cmdzFWhrN0P28Ivke0iUxdGA+1HQerQfNK27/ros+7sWuKdLiYzgcvhev9flKGUXW1JZjUgZy+QtrhJJB0KGaRXQSOQqEkw6ERferW3QEHq/tgC05mpZ9bMhW2olMB8BNSQRyR4LpYKsRDLHKZMyCECigD+EwFp9U46ebDEUwNuUta6rUQWAdLOl5cllCJi85UkibH1x152kX/yFp4whykLtPv+zTKPNdfGFWCZvXAo6JhRUIvBqdp1sDHC1MMh0BCBtYa+XAzzIpGYmIMzGSFpbUgrYtj3KZbFs7Fr9gDRJyiEd3qi1rQaWPLIcU2kEwT7Q0noTtNMPm5g+duvLbSExz+a0cRCJN/9rh7Pxf86pjCZvUAnENhMUTBAKCo8GjFrQmAEDpRzTmOiFuNnx/AuA5MfQkIkjLjgBsRQiHyR7kjACK/cy429aFzVw4T1NyYV7auaFMRrKaVEmqVfZddlt0jvrw3J88Njz+MgjmfuN6Rx8lB7nj1Av/EWP5pXiicFDOaB19g65N04CCJwLRyUp7ZxsSCFpPGdsySGNCr7QTqE/ghzSZ5ggteFQGa+vIlghNWd7ndeKbVbcNtqd8V9ucnEqLbqpJ1cpDOkm1NbCiE8PMJQVdmHQmy4xyScK/TyD5yWa8qmf4ie7c4Pz9p//s42ZlfNvkIDSJ53J/F4XN4OlCq/z4yimWVtgCggThzQTAKrgGKGhDAguMEdQObApommPjiRTiPDDpMkhnCduUgE0VaOXYOlgFWzn5W09Gi/ecVxLmvVSn+0KctgV8K0hgl2VbmLvLQIdnuSgj51DVWbnWpWg2y9ttJMOHq8HwvNued/nfWm3Hux1xEJq+/f2PXIvndK9h4eUK+3gbe03WuFilARsJzJTSolreRg7nge6shPVW1BwvBFJsqgmRIR+wD0NejrJBk2o7HZJqxoukF2wF0UvpRHIIFRIlcqKUVFw4IjOti9vVAN/wuOC201734WCOO24rtMDyngM3XoX3Bc1gh/o4r7yAW7JjbwHAAWvAzsMf+39YbOLxA+SFEIeJgBW9xSMtRwxNk0wgDmatHPXtyC0JbMRjxWGH91ZxYtbyjBF5+YzUefynMvUyGyjb6Fap1raoNIaRAM9/pKGKhRpZsszCHp0Rp2fpWVYGhVQJ0jV6QEzcUJYep1bD2cHr7zj14jcYY322R4wgUcztp7zuVzpz9b9HK36qd9y0faI4mCVe9xYwjAAYC4ODx8Em7PgbFQNh0GgBJXFskiUjcA4f+BwpQaOHO4Zj1pSj3JD2USU/1IsVBSV5J+R01SfodCJaYQDNp1BS9zLSxUnX420kOJj8z94pX7tGauu4WdJBWOaHTrv4/VU9e259aP5aLN6/yLMF+MA6d2Idq1RMt2g22Ki9bbRQ48RMn4DCoddGE3B4GI4gVDNPsGOwaG2KhqyETcyTJMnjXJpZ/DEn06nbW3lU0AQEbNJZ5SRIfY4CUgCjTWnPBHg3nUSQj7THRkAGu6HbSA7Pf2R2fvaC25Z5G4kKG8MmqvKEpvY8eP2/7NT9H8c+/RA8+mScDt6phlBjYHe1x09opggs1QI4xTvEGy2/dOCTHb4wXM2qDRQQR14dxowlQI80xZi2vNIsS/glxMBIOmaTeRHpfJpume4RchIPHtdCYSvsiKKyrQiTpW2uMphjfTwRzioaa6CfKZqNSKcpFsqBED9NgLvP/66uh997x6mXfIzU9Q6qymoKOfmhmemvGzz52/vD5tROp3426v3PMcSf0OGn5Eo4+hYASIePzZ7w8Cc+uxdo7RtGsGVCePS0sky3oFShylMYQexIUy7SxlSWG+q4/EgZpAeDcZKjDn8Wi26CkhHZ822ZmSzLIujp/5TDzw2SYMncHrlB16K8+/iwHvzIXade8gFqbkRQFTeioFLGE7fAyTe//GnDncf9FRanJ+lEP8ARACF6UtqP+A5Ijt1CtGHL5Vic36EtPeZlz2PPJ5DCpsm5FSLDkkzYGU1h2IBMdbPnEHJ5q2MsriV1pBwX5RxHaJ8/mUgJyzsPBeOTKQh9rAaa4Ws+9JzXvdmtbki07BpkQ2pQCkktcPi446c0VyVgcKQ1sJFtWOJlBgWfpIBvziEJbTBJ98muQGfiBGELRKPJkmQJTJeTXXCUNyLrYBcuMz0mBWBXZGQoZ6w6uTYZQZOM7MX1EbJoSzJKQF3yRtW9XGgGu0P3rXCOFb+NxKytfVscZO1tODYL1bAHgOOsDiHmTiDjwIwA7XByQAmI5AtUTABLjELMMqJQKBIWMx+OJpUQcDmPVG5Wl5CiEYn4hpHVgyuNYKbYaMjaflhC6cTJqgi2BT7bgdtI5ub+dDBbjf02kihlubg4yHKts8G8HVX/cSxlhzrK5khEPRKOPIEokRLoSAkwu35yHi7WGVr9LBPENOuRaBKnLf1cLowkqTyRyaQkJ1QyYIJKoyzlgh7CXk3I8L7AZm74iaae+qnVvo0kr9Fa0sVB1tJ6Y9btzh0GOgIwbpxgYogYfCVtKqOjtiScnxzCtHwLCTlO2EI2HCamZCPyodbKg2J3rJAV0z+JeX2UNv9zLaOgXpYP/xyx6VpZRHn+Y1GOs3lfHnSq8+88/TWfzSQ2NFkcZEObewWF5ehiWi6TQOWTKOWxCbrHNE/gu7OIHSLGcwTbqVfx04hDAQaapVIAG0lhG7AVGRuuIRhsq2QqM+jOa0WQolOT4M6tM1oSIE/03NagHgx+/u5TL7rHiJuzLQ6yOe2+aKm94w7xKI37eoQayDhwWuk47htFoHImRwJyHfDmI2GnNaAUZdxSO+IsKCtUw9kWmLBsCGVMkYze2oZDgeTuQWET8LqKFybA6eJ6Rz1fv/HO0y9d9KM2IboRcXGQjWjlFZZxqO4O0SGHBB9CiKCirjaeyACLpMaX4AcgTbxVlgo3ySloKwvJPmhMu5ynkc9GE7Jl0PSzpOSMmm1z204WSaOJLjqqmBhVelyUzw/+R/+xR38ps7JpyeIgm9b0SxUciIrY5XIkkoW8zXw8SmewwFwo2xYFjpQxTRqBuVRaNwheVgcvE8bNGqJUDBO0LBbTGU/SYohOIdbbpLIvSmHapttI5oYPDGa7F9x27tIftWl3Z/1TxUHWv41XUcJTKetocrUAHxnk5FiznChylpiyUFXUEEac550vnRAljSFGD0sbKddlWkf/uMlQTBBhzdcYdDTAPSZ7KlrO52uP0FARZk/3+OFZpM9XncF/eqKP2qhSG7QpDrJBDb2SYnZM1XzN/qxuXSfGDNWmKlQFtDxOgGuP3nYUb0trNZAi+EkIdd724Ud0EcXzUslTcGE3OZqjT5i9GHNCRc95pIIgRDlf3PsSHzRzMu4v5Gchcf7tp10+lreRqB5j2BQHGUMjjsvECTvxIEjVwYvOBMMR/8jLSE4geEvW2AuujCc5V7ZFspk1QC+UQMmwKQCbK5kDUJ8Yb8WRSjAX00awnEayO1lUEVpMVml0UQarcnxpdji45I7TVvZRG2htWCgOsmFNvYqCAlBUITClqkTMiogyY5BpApzlANw8EQYgtmBm1uCeZF0hxohE59LEkQ9a7qGuAaLcDGMBYwoZR1ukkw4JlDKGyZKkOwXMkViUvY2kfttdz73sZu3mhG2Kg0xYhwBRCwAeiFVFwQbiBDqveLhMADUW67FfBlrXkC48KDxDRWnj1gnwVEArR5KbMP+xjDnJyLDRZsyMleQOQRKnWdLGlfKd+Azz7Pwf9o979HJyosqTFJd3/ExQb/zjFwb11Nd1DvlNuBkoUUmDpB/hhXqCGdMTot3Qq63Labcc1ERekDHEpIM8qaCnfMgkIgluI7fncvBcG5goHyVkSSe7tAzYhgVW/OLT3OBjeFfoz9528qWPZuyJSpYRZIK6Y8fTnsI5SfY9PJ/FoI4ClWG7RVykNFeRo2hvDNPBzKAL0sJRIQ7bGpmk7ZRWXaWLtXATMjbtGuGO1iEEIcLbVHDrejMcfrkZDH9qM28jGanwEpniIEs0zGaRCSWBS5hyYIEQQD6iXhTmgdwP5iNHfAobUlu1dHaKLA0BrelUsJfrWrmJPE3Xw8Ma2dV76LmN1iiM0ClIt7NWNI63kVQX3fW8y9ftbSTtDq8tVRxkbe03Vu2d/+rzXB/wlSaZXQIrwR90y6d5kTsGZvbtsyAmA6y6rt2GAir+KA+6cGyUyGRlepJyR1BpkyqKeU7gSCEVq43qKxnZwaIct5E09fC6u8685NYjTE8goTjIBHXK/t9/+hBoe9xQ6SBk/ez4K2B6dUdAKaxybWHOkg7eTACmGmEUJ2VPOFu5EDBngiUjyBiTKoSx6dqbF7n4NkI7RTN+2krXcnq2Y37w3kPVp38p8Sc8URxkwjoooVv1Qg6AdaxaTQVJA2WAOEDK2EeNfK9ITLpMaLTJJZR2GXMNy0AvAd/ZSY08OYfVGJU09wyBEXmcsdKifHjfVLd3wf7Tb5kPsUmPi4NMWA8BZ4JzYNpGBYAwA1zuRO4QgrXpOBfyyQb3MTLJDgVkncOABeSTQ1CFphIzS8aaglqwqz9OtSyrPNPGQ6S7cwd/35nDK0JPv+RL4m2RTXGQSeqomRkAvYvP4bFbCOBAJ2Pm+cOfskwtFoRYyRk3k1LS9cnUMZ/yJpMSVgpHGg8sCxmXMz2wgh8xCGkkCdkemE1zCLcInH/XriseCotbJS4OMlk9xaFi9Jt6BBqP9BESGEEIELZQDak2lnqWDX3SoR/ZNkG79j/KW7wKybKfHaPZoMk+3/gwqK+854zLxvZRm7C/EXFxkI1o5dWUgSmWxB1mikZn96PWJNAe+0fRHUZsfdC6g9NHLPHo3xLkDmGbZHNUxcbzigaddaR860dYd+CjNoP6v9515qENfVVPuxdrTxUHWXsbjtXC6FLXEcsI/wngPPI7TYW7WIBY2bRolqIM6DMGVtsg2pV414dNwJwZJzCFZGA+yrd1CtwJTKSp4/7UGurh/bnN3PwH8XzkZZ1qJrv4aRXYKtviIBPWU5iRpE9yJ3By5c56ciMA55UWUXQHrjF91JG4rfux6BaijW8XCYF+0rDl6d1k3P3EHcXsmqPkxeOiDYioGsXdN6iiR2bn5v+qM99g3XH5I3ltt1q6OMik9VjTmQussWqOPB2tR6vqUohC3m4jcUIQpRRjgFuQn1DAhehM4VBIBtoT6KnmZt0CK2Zu50I+hOBtJPj4UtN8GWvz8+7cdcVnk/wWTRQHmbSOC48g8By/eRVJCgBTIBdp05ZKcnIIKmaW3CFIG7ESMj5tapUkaAaYDH03SRssD//Deq6+8PYzrrg7K23LJouDTFrX+Z1NmrjkdUvrg4yYwGw0HsU1VaLsYiFsUC/+zUNcGgJ0DPKOcIAwaIXqHixL0jVkT68IHQ7eePfZV/y3kN7qcXGQCetBABS3mgBwAqghUAAMwDooKRNc7YLy1KNyxmJWguR5Sp60wIkkBwFd8DOd5CzUDxseh5yVxu924G0ks4P/NX14dkb1OUY25XmQCetIHMB5esjwyLoFOIXEIIAsoDq/jSigYNMrE3JMS8nSsUWcmExG3smJC7o5lRv3Qjyq7FU99/d2Hv+q255/xWCUu7VzZQSZuP7zLkkX3oRg1FLnjKy24R0Lp1Kkh/jIfpGI/wUTr5QV207VSi23EWm3rXUGhXwqhu9Y8jPMn8fU7uX8lLj0j6FNcZAJ68ymUw8Fck6HBNyoIKAZjgGSwB1TJjqTA1kqBuaEf+O12dYiUmEzWRANOTNoo4obbxVhDBMw3hJTdfDC7fqVd52x9W4jid1ZLi4OslzrbAIP973izYoZOFmHhYAniagHXU4T4AbJliCquKwkp5Ks2xLbNxqYaIs8moRNv/GwFYM/OM9pEIMcPxU+aK6866wr/08re2ylioNMan9i+pSfyaIrqKqMlLIRwa59tDvRTpR4RiqjMxl5mnBzuDFSPhWsVoPyFDRFRtkkD4+S40r5/ODtd551+Za9jWRkX5fIFAdZomE2jdz2SMJsSkSluPYAeA3kwfWYUYCf8rpC7lMyDQPEPITchtww7JLOIMfgtI3uZjS6Y5j1B59uO/HEqUtNRlrH5KbtjmNy97beTgGOh1hrglgwDlSKaGD1a9jaObEFaNMS0ZNwIA0zmg4lhidiWhZ0M42cJzR+1ciYj8SI08Xn0DByfKpqhi//4+dc+lioH6txcZBJ69m6mtcKnDgN50jxyFUOTqHkALELyVmoGkQ4gnlJRpRtEwjgK5fRWbZ4UTbV7aM2X4XJn7z77Kv/xiwc29viIJPWv+iRDJNEujkBwZsf9ZHPf0vshkSoKunkKZ4PN6IAHYJkhpTwLCvEl3XhNpLOoH71Pc8/Nm4jsb1bflscZPn22RxuBlDCMlWiTYGYZSCQjwTmYMZX2giylPNyE8kapmW0PSIH+/xeYF3Pv/Hu3Vf+dqrPNkgUB5m8Tn6UL/4RQjF6aBol9DqEidyEZsplO2C8dsTJmZLLhV1VFyR9mKJ+forXxbt4tgMftXnfzrnhL2elbYtkudVkwroZDsGVsYIfxwF4T9lhHbxMgpKJTt9AxhbniMm0oIzy2PBHHebpEFLRUkVp0wMT5uQcc4MH5ubmXnXPuTOHw952icsIMmE9jfdNEbZtyNcdpOpgL58xgAdNTpJ8wtEf8sI6JRcJuY4ch16mUE3jNpJB/fl62Jy3/9yZLfU2ktiHtcbFQdbaguPW73btgSm6CZ2BUE8uI+zyeC8mixbFncjkkrCkpN2SuNhODqCRZgHPmCiBbyPpdB7vDJsL7t1z1UeZ2Y6hOMiE9To6ZPQ6iMPcvMTRnIE6TZW0H2AEb0FsAwyIPqWiHH8Ssy0s0PVwYZ1E3GdVzw1ff8+eK//3hDXRhlanOMiGNvcqCgNI20O96xmaieN0e0g64ovXypmoG9G0LMpOUyq374qI0jMevBg4GLzj3j1X3xha2zUuDjLpPW8vU7Ba0jGYijsScah3eAcf8QjFsiFPbrB1OheENOUyBr/bgSvlH3zSoZ0X0RHN8PbdFgeZsL4HbnWmiNDnXAcrBvMCOgeB7gBPa3fkDfTOUIRNAr7zk2dgh6kTBrKTAnxktpkbfgrPdvzUH7/42L+NZCVdX07zrqSVNlSmizcrtvfoOuwFah3P/eZDgzkrRrSLA38yaR32k2P56VvtQ7Jm9kRzE7iNBFcCv4Zp1ra5jSR2f7m4jCDLtc6m8Th6EMPc2FmndINiDQ7AL6i7Q8SUyz5JQBVKWOVDRNY4qjhdXDKZx5AB5xo2w+bCe865+ph4G8m4uq44yLhacox2Fkz8w1sczAsK4oiSQO+Ad/+RArn+zEd7lVxeIUN0Qt6hiwcZ3/Thc66+dYH1bZ8tU6wJgwAO6o8ByMB2Qn1WQ6NpKmWLbBsrRDY/Mi8ylUVN0JvCNJO8jWR27ncffWo9kxVUkt4CZQSZMChgBjUcGUEI5gA06wqXcL7NvaL+uUy7ToF8zjBhOJhGHd6AiPfnHuj161c9dPLM6Fvlw+42j4uDTCAAckhzCmR5bPkDtIOvhOdEC066SpJ2jsOLaZpypbeRDJvPd4fDl9199swXk2RJjLRAcZCR5tj8DDA+8ib0NJrkXqF1h+ZhXmEwOdlCsOlXLNuDbSOG+Nzw2Y6mM1sPOq+4+9yZv3CpEi3SAsVBFmmUzSThhNJjQDk+yGRgt1EiA78qR4DHcAECspQWy7KWBokOoyvkusXExPi6nqapr/rIC676g9Ap8eItUBxk8XbZPGrTTYNGVIIwj7ScgZMlkkiVE5C7QM1VWqqZ4Mc0O/P1b9x7zi/sSzZLYskWKA6yZNNsMiMcAF5AkMshVCUDui4lgqVceIEcxusd10+YdaEev/g0O/jgzmr4WlBDyxVKtFgLFAdZrFU2kYa3VM3CN1rwmj+0NSIPNIwqhDgWFwgaLUihMMcb8vgglKtV3abL91gNhp8cDutX3HbuzKPOKdETtEBxkCdooI1mD5ruLECenpoS5OUAqAky/An5xiDBnIl5D+E0ksPVczzbgWVI8xU85HHefd8z85mQK/ETt0BxkCduo82QAMblASg7Qz5xHlMjnbbFFEvjiVcxrqrb9MocRwbwNpJ6ePGH91x512bszFYuszjIhPUepkE88Ovgr6olP0HCfMV4mELJOdJdu2CGsyCWNDa6GDgc3Hjv3te/a8J2dUtUpzjIpHVTr+LbCu1aiDlEqiEdInkOXYAjBp2C3pDJRlqfYZ4f/t5jX+r8QjJSEqtqgeIgq2qu9ReuT9j5FcD9ixUv5uVh0Sw9g79gMrY0T+c2eBvJofn6lQ+9tNxGkjflatLFQVbTWhsg+9CLX/9lLB7u460gEUYcgPjnyMHgUyosRCwPHkePqg+B+fofOv3mvI++uNxGorY6yk1xkKNsuHVTw8qiqnq/09RAv73uU96gcUEblMyr6PIEq4VlvEbQgbvM1k3zM/fumdm2byMZV/8UBxlXS47RziP9b/p9vAP3D3lhTyEcgxn6hmKNH3AVZ8pnwONHbeYHV933wte/X7pls6YWKA6ypuZbH+VPff+Fs/1O71XDueGDXEuYQ2AbzhHF+hSLWY42/JjmcDB8y/fd3b0pREq8thbww8/ajBTt9WmB531g5l8Mmvlb8TKFPZxydYZ+oy9HDe853nioU7m4EohTxL92Qr+6FFfKj6kvza5P667ManGQlbXTpkmddfdFx8199cRX4uL6T6MSz+r28cpDLsnpI3zRwqA+jEdq76ur5ob7XzBzzH4rcLM6oDjIZrX8Kss9+c9nTjz+0PA0LDrOhXN8JweRptu5t9Pp/+n9L/rFgzBnZ7JWabeIL98C/x/D4jwc5uy0GgAAAABJRU5ErkJggg==",
  "$Meta": {
    "Type": "ActionTemplate"
  }
}

History

Page updated on Tuesday, June 2, 2026