{
  "name": "Securely call private Google Cloud Run APIs with JWT authentication (simplified)",
  "nodes": [
    {
      "id": "05736aa9-30cd-4387-bdbb-e00cc316592d",
      "name": "JWT",
      "type": "n8n-nodes-base.jwt",
      "position": [
        960,
        320
      ]
    },
    {
      "id": "72cc7bae-3ba8-4b8a-bd56-652ea8454705",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        704,
        384
      ]
    },
    {
      "id": "3acc14d7-bb7c-457f-b459-9219f5519579",
      "name": "Cloud Run Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1424,
        336
      ]
    },
    {
      "id": "3583afae-ee3d-4066-9a47-fbda5e319c97",
      "name": "Bearer YOUR_TOKEN_HERE Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1184,
        208
      ]
    },
    {
      "id": "c9eadc11-0acc-4471-b493-df1fa51a7948",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        32,
        224
      ],
      "parameters": {
        "width": 560,
        "height": 448,
        "content": "## Google Service Auth Workflow (Minimal)\n\n### Purpose\nCreate a Google **ID token** so n8n can call your Cloud Run service with `Authorization: Bearer …`.\n\n### How It Works\n  * **Set** vars: `service_"
      }
    },
    {
      "id": "d35ae519-26a6-4728-ae2a-38dde55be605",
      "name": "Execute",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        432,
        544
      ]
    },
    {
      "id": "88201046-6262-4403-ac1d-2b5cee1cb6b0",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        896,
        304
      ],
      "parameters": {
        "width": 230,
        "height": 432,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n### Create a JWT Credential\n\nUse the **private_key** from your generated `.json key` file.\n\n- **Key Type:** PEM Key  \n- **Private Key:** `private_key` (full block, including `-----BEGIN P"
      }
    },
    {
      "id": "1b1a5865-4c9a-4717-9aa5-e115e0c2395a",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1344,
        304
      ],
      "parameters": {
        "width": 246,
        "height": 320,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n#### Create a Bearer YOUR_TOKEN_HERE\nUse the `{{$json.id_token}}` value.\n\n#### Append desired `/path` to the service_url."
      }
    },
    {
      "id": "43b102b7-fcfc-44d7-b824-2c417e43f290",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        656,
        208
      ],
      "parameters": {
        "width": 182,
        "height": 320,
        "content": "#### Var Config\n- **service_url** — your Cloud Run service URL (base URL)  \n- **client_email** — from `.json key`"
      }
    },
    {
      "id": "a070e14b-f57b-49fc-af57-04d1f39496c8",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        32,
        -16
      ],
      "parameters": {
        "width": 672,
        "height": 208,
        "content": "## Required Setup — Google Cloud Run & Service Account\n### You’ll need to:\n- **Configure a Google Cloud Run service** (set **Require authentication**).\n- **Create a Google Service Account** and grant "
      }
    }
  ],
  "connections": {
    "JWT": {
      "main": [
        [
          {
            "node": "Bearer YOUR_TOKEN_HERE Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Execute": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "JWT",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Bearer Token Request": {
      "main": [
        [
          {
            "node": "Cloud Run Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}