[ { "id": "full-demo-tab", "type": "tab", "label": "POD Gateway · Full local demo", "disabled": false, "info": "One-tab local demo with a fake upstream HTTP endpoint plus both Gateway Call and Gateway Out/In. Start Redis first." }, { "id": "full-server-config", "type": "pod-gateway-server-config", "name": "Central Gateway + Redis", "host": "0.0.0.0", "port": 8080, "path": "/ws", "redisUrl": "redis://127.0.0.1:6379", "redisRejectUnauthorized": true, "redisKeyPrefix": "pod-gateway-full-demo", "redisConsumer": "full-demo-gateway", "redisMaxQueueSize": 10000, "redisResultTtlSeconds": 3600, "redisDeleteOnAck": true, "redisRetryPollMs": 250, "rateLimits": "{\"demo\":{\"rate\":2,\"burst\":1}}", "concurrency": 8, "upstreamTimeoutMs": 60000, "maxAttempts": 0, "verboseLogging": false, "credentials": {} }, { "id": "full-demo-api", "type": "pod-gateway-api-config", "name": "Local Demo API", "baseUrl": "http://127.0.0.1:1880", "headers": "{\"Accept\":\"application/json\"}", "apiKeyHeader": "", "apiKeyPrefix": "", "credentials": {} }, { "id": "full-demo-adapter", "type": "pod-gateway-adapter", "name": "Demo Echo Adapter", "server": "full-server-config", "api": "full-demo-api", "operation": "demo/echo", "label": "Demo · Echo", "path": "/pod-gateway-demo/echo", "method": "POST", "headers": "{}", "idempotencyHeader": "", "description": "Local fake upstream used by the full demo." }, { "id": "full-demo-http-in", "type": "http in", "z": "full-demo-tab", "name": "Fake upstream endpoint", "url": "/pod-gateway-demo/echo", "method": "post", "upload": false, "swaggerDoc": "", "x": 160, "y": 500, "wires": [["full-demo-function"]] }, { "id": "full-demo-function", "type": "function", "z": "full-demo-tab", "name": "Fake upstream API", "func": "msg.payload = { echoed: msg.payload, handledBy: 'local-upstream' };\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 390, "y": 500, "wires": [["full-demo-http-response"]] }, { "id": "full-demo-http-response", "type": "http response", "z": "full-demo-tab", "name": "Return upstream response", "statusCode": "", "headers": {}, "x": 620, "y": 500, "wires": [] }, { "id": "full-pod-gateway", "type": "pod-gateway-config", "name": "POD connector", "url": "ws://127.0.0.1:8080/ws", "podId": "pod-full-demo", "connectTimeout": 10000, "reconnectInterval": 3000, "verboseLogging": false, "credentials": {} }, { "id": "full-call-inject", "type": "inject", "z": "full-demo-tab", "name": "Call from POD", "props": [{ "p": "payload" }], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "{\"hello\":\"gateway\"}", "payloadType": "json", "x": 150, "y": 100, "wires": [["full-call"]] }, { "id": "full-call", "type": "pod-gateway-call", "z": "full-demo-tab", "name": "Gateway Call: demo/echo", "gateway": "full-pod-gateway", "operation": "demo/echo", "timeout": 60000, "priority": "normal", "x": 420, "y": 100, "wires": [["full-call-result"], ["full-call-error"]] }, { "id": "full-call-result", "type": "debug", "z": "full-demo-tab", "name": "POD result", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 680, "y": 80, "wires": [] }, { "id": "full-call-error", "type": "debug", "z": "full-demo-tab", "name": "POD error", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 650, "y": 120, "wires": [] }, { "id": "full-out-inject", "type": "inject", "z": "full-demo-tab", "name": "Send async task", "props": [{ "p": "payload" }], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "{\"async\":true}", "payloadType": "json", "x": 160, "y": 260, "wires": [["full-out"]] }, { "id": "full-out", "type": "pod-gateway-out", "z": "full-demo-tab", "name": "Gateway Out: demo/echo", "gateway": "full-pod-gateway", "operation": "demo/echo", "priority": "bulk", "acceptTimeout": 10000, "x": 420, "y": 260, "wires": [["full-out-accepted"], ["full-out-error"]] }, { "id": "full-out-accepted", "type": "debug", "z": "full-demo-tab", "name": "Accepted by gateway", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 690, "y": 240, "wires": [] }, { "id": "full-out-error", "type": "debug", "z": "full-demo-tab", "name": "Gateway Out error", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 680, "y": 280, "wires": [] }, { "id": "full-in", "type": "pod-gateway-in", "z": "full-demo-tab", "name": "Gateway In: async result", "gateway": "full-pod-gateway", "event": "demo/echo", "x": 250, "y": 380, "wires": [["full-in-result"]] }, { "id": "full-in-result", "type": "debug", "z": "full-demo-tab", "name": "Async result in same POD", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "true", "targetType": "full", "statusVal": "", "statusType": "auto", "x": 570, "y": 380, "wires": [] } ]