Administration / Configuration / Menu Hierarchy
{
  "id": "home",
  "route": "/",
  "pageTitle": "Shopify API Proxy — Administration",
  "title": "Shopify API Proxy",
  "eyebrow": "Cloudflare Worker Administration",
  "description": "Manage storefronts, routes, deployments, and encryption keys",
  "sidebarGroup": "Overview",
  "sidebarLabel": "Home",
  "category": "overview",
  "iconColor": "#6d5bd0",
  "parent": null,
  "children": [
    {
      "id": "customers",
      "route": "/customers",
      "pageTitle": "Customers",
      "title": "Customers",
      "eyebrow": "Customer Management",
      "description": "Manage customer accounts, storefronts, and hostname mappings",
      "sidebarGroup": "Customers",
      "sidebarLabel": "Customers",
      "category": "customers",
      "iconColor": "#3b82f6",
      "parent": "/",
      "mobile": true,
      "children": [
        {
          "label": "Add Customer",
          "title": "Add Customer",
          "description": "Create a new customer with storefronts and hostname mappings",
          "category": "customers",
          "iconColor": "#3b82f6",
          "type": "link",
          "route": "/customers/add",
          "mobile": true
        },
        {
          "label": "Edit Customer",
          "title": "Edit Customer",
          "description": "Select and update an existing customer, storefront, or hostname",
          "category": "customers",
          "iconColor": "#3b82f6",
          "type": "link",
          "route": "/customers/edit",
          "mobile": true
        }
      ]
    },
    {
      "id": "administration",
      "route": "/administration",
      "pageTitle": "Administration",
      "title": "Administration",
      "eyebrow": "Administration",
      "description": "Everything but Customers",
      "sidebarGroup": "Administration",
      "sidebarLabel": "Administration",
      "category": "administration",
      "iconColor": "#8b5cf6",
      "parent": "/",
      "mobile": false,
      "children": [
        {
          "label": "Database",
          "category": "database",
          "iconColor": "#6d5bd0",
          "route": "/database",
          "mobile": false,
          "children": [
            {
              "label": "Create D1",
              "description": "Initialize storefront, hostname & auditLog tables",
              "type": "link",
              "route": "/create-d1",
              "mobile": false
            },
            {
              "label": "Delete D1",
              "description": "Drop all tables in d1_shopify",
              "type": "link",
              "route": "/delete-d1",
              "mobile": false
            },
            {
              "label": "Database Sync",
              "description": "View and sync SQL Server ↔ D1 data",
              "type": "link",
              "route": "/database-sync",
              "mobile": false
            },
            {
              "label": "SQL Server",
              "description": "Browse customers, storefronts & hostnames",
              "type": "link",
              "route": "/sql-server",
              "mobile": false
            }
          ]
        },
        {
          "label": "Cloudflare",
          "category": "cloudflare",
          "iconColor": "#f97316",
          "route": "/cloudflare",
          "mobile": false,
          "children": [
            {
              "label": "Update KEK",
              "description": "Push KEK_SHOPIFY_TOKEN secret to worker-proxy",
              "type": "link",
              "route": "/update-kek",
              "mobile": false
            },
            {
              "label": "Sync KV",
              "description": "Write storefront & hostname records to KV store",
              "type": "link",
              "route": "/kv-sync",
              "mobile": false
            }
          ]
        },
        {
          "label": "Testing",
          "category": "testing",
          "iconColor": "#22c55e",
          "route": "/testing",
          "mobile": false,
          "children": [
            {
              "label": "Test No Proxy",
              "description": "Direct Shopify API call — bypass the proxy worker",
              "type": "link",
              "route": "/test-no-proxy",
              "mobile": false
            },
            {
              "label": "Test With Proxy",
              "description": "Shopify API call routed through the Cloudflare proxy",
              "type": "link",
              "route": "/test-with-proxy",
              "mobile": false
            }
          ]
        },
        {
          "label": "Configuration",
          "category": "config",
          "iconColor": "#8b5cf6",
          "route": "/configuration",
          "mobile": false,
          "children": [
            {
              "label": "Add Route",
              "description": "Register a new Cloudflare Worker route",
              "type": "link",
              "route": "/add-route",
              "mobile": false
            },
            {
              "label": "Routes & Domains",
              "description": "View routes and domains for all workers",
              "type": "link",
              "route": "/routes-domains",
              "mobile": false
            },
            {
              "label": "Menu Hierarchy",
              "description": "View and save the navigation hierarchy JSON",
              "type": "link",
              "route": "/menu-hierarchy",
              "mobile": false
            }
          ]
        },
        {
          "label": "API",
          "category": "api",
          "iconColor": "#6d5bd0",
          "route": "/api",
          "mobile": false,
          "children": [
            {
              "label": "API Explorer",
              "description": "Browse Cloudflare resources interactively",
              "type": "link",
              "route": "/cloudflare-explorer",
              "mobile": false
            },
            {
              "label": "API Library",
              "description": "Reusable Cloudflare API helper functions",
              "type": "link",
              "route": "/api-library",
              "mobile": false
            }
          ]
        },
        {
          "label": "Workers",
          "category": "workers",
          "iconColor": "#f97316",
          "route": "/workers",
          "mobile": false,
          "children": [
            {
              "label": "Worker-Proxy Script",
              "description": "View and deploy the worker-proxy script to Cloudflare",
              "type": "link",
              "route": "/worker-proxy-script",
              "mobile": false
            },
            {
              "label": "Deploy Workers",
              "description": "Build and publish Workers to Cloudflare",
              "type": "link",
              "route": "/deploy-workers",
              "mobile": false
            }
          ]
        }
      ]
    }
  ]
}
An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.