GIAP Development Gateway

Node-RED + Docker-native root page for quick access to the GIAP operator stack, services, and supporting apps.

Aligned with AMD_NODERED_DOCKER_PORTING_PATH.md: browser UI on top, gRPC contracts in the middle, deterministic .NET runtime underneath.

DEV MODE AMD PORTING PATH NODE-RED + DOCKER

Application Gateway

Open applications and API surfaces from one place.

Node-RED Flow Editor

Service: edge-flow | Port: 1880
Purpose
Build and deploy automation, inspection, and integration flows with the low-code Node-RED editor.

Node-RED Dashboard

Service: edge-flow dashboard UI
Purpose
Operator-facing dashboard surface for Node-RED widgets, quick controls, and runtime telemetry.

Engine Runtime

Service: engine-runtime | HTTP 59060 / gRPC 59061
Purpose
Deterministic .NET processing runtime that executes workflow logic, orchestration, and heavy compute services behind the web UI.

Core API

Service: cloudapi | Host Port: 8088 | Public route: /core-api
Purpose
CloudAPI is the primary platform management API for catalog sync, app access, and resource discovery. It accepts Keycloak-IAM tokens and is the public replacement for the old IAM launcher API surface.

RMT IAM

Identity service | Port: 18080
Purpose
Central identity provider for realm administration, OIDC login, token issuance, and role management across platform apps.

Administrative credentials are environment-specific and are intentionally not displayed on this page.

Platform Management Client

Primary route: /iam-client | Keycloak-IAM sign-in + Core API catalog
Purpose
Keycloak-backed platform management client for resource visibility, catalog sync, API discovery, and day-to-day platform administration.

RMT Venture Site

Served by existing edge-web container | Route: /
Purpose
Static business site and lead-capture flow hosted inside the same Docker web gateway to validate the multi-app porting model.

PostgreSQL (Dev DB)

Host access for HeidiSQL / DBeaver / psql
Local development database only.
Production credentials are environment-specific and intentionally not displayed on this page.

Logical Architecture Diagram

┌──────────────────────────────────────────────────────────────────────────────────┐ │ BROWSER / CLIENT PLANE │ │ Operator Browser ──────────► Node-RED Dashboard UI (port 1880, /ui path) │ │ Engineer Browser ──────────► Node-RED Flow Editor (port 1880, /editor path) │ │ Admin Browser ─────────────► React Operator Shell (port 3000) │ │ Mobile / Tablet ───────────► React Operator Shell (port 3000, responsive) │ └──────────────────────────┬──────────────────────────────────────────────────────┘ │ HTTP + WebSocket + Socket.IO ┌──────────────────────────▼──────────────────────────────────────────────────────┐ │ EDGE WEB LAYER (Docker: edge-web) │ │ Node.js 20 + Express │ │ ├─ React build served as static assets │ │ ├─ Socket.IO server → live feed relay │ │ ├─ MQTT client → subscribes engine events │ │ └─ Reverse proxy → /api + /core-api → CloudAPI, /flow → Node-RED │ └──────────────────────────┬──────────────────────────────────────────────────────┘ │ MQTT + HTTP ┌──────────────────────────▼──────────────────────────────────────────────────────┐ │ NODE-RED FLOW LAYER (Docker: edge-flow) │ │ node-red:latest (upstream; not forked) │ │ ├─ @giap/node-red-engine-nodes ← custom SDK │ │ ├─ node-red-dashboard │ │ └─ Flows stored in /data volume │ └────────────────────┬────────────────────────────────────────────────────────────┘ │ gRPC (protobuf) ┌────────────────────▼────────────────────────────────────────────────────────────┐ │ .NET RUNTIME SERVICES (Docker) │ │ engine-runtime (59060/59061) cloudapi (8088) acquisition-service │ │ ├─ EngineGateway ├─ REST API ├─ Camera drivers │ │ ├─ WorkflowBoundaryGateway ├─ Auth/JWT ├─ Trigger I/O │ │ ├─ CV pipeline + AI inference └─ gRPC → runtime └─ Frame multiplexer │ └────────────────────┬────────────────────────────────────────────────────────────┘ │ ┌────────────────────▼────────────────────────────────────────────────────────────┐ │ INFRASTRUCTURE (Docker) │ │ postgres:16-alpine Mosquitto MQTT broker Redis session cache │ │ OpenTelemetry Collector Prometheus Grafana │ └─────────────────────────────────────────────────────────────────────────────────┘

Port Reference (Full Stack)

Port Service Protocol Notes
8089edge-webHTTPDevelopment gateway entrypoint
1880edge-flowHTTPNode-RED editor + dashboard
8088cloudapiHTTPCore API + platform auth/provisioning
18080keycloakHTTPRMT IAM / OIDC identity provider
59060engine-runtimeHTTPHealth endpoint
59061engine-runtimegRPCEngineGateway + WorkflowBoundaryGateway
1883mosquittoMQTTInternal broker
9001mosquittoWSMQTT over WebSocket
5434postgresTCPPostgreSQL
6379redisTCPSession cache
4317otel-collectorgRPCOTLP telemetry
9090prometheusHTTPMetrics UI

For development convenience, this page lists and links local endpoints directly. Architecture and migration source of truth: AMD_NODERED_DOCKER_PORTING_PATH.md.