Skip to content

ClusterGate v1.12.5

Choose a tag to compare

@github-actions github-actions released this 07 Oct 10:33
· 5 commits to master since this release
ce45727

ClusterGate v1.12.5

Kubernetes Routing Gateway Platform — expose internal Kubernetes services over public domains.

Fixed

  • Request bodies show up in the log again. POST/PUT/PATCH bodies were dropped from the request log unless the route had transforms, so most logs read "no body". They are now recorded, including bodies streamed through to the upstream.
  • Streamed responses are no longer cut after a few words. Logged bodies were capped at 5000 characters; an n8n NDJSON stream spends most of that on metadata, so only the first sentence survived. Bodies now keep up to 64 KB, streamed responses up to 256 KB. Buffered responses that hit the limit now end with a visible truncation note instead of being cut silently, and binary bodies are logged as a short placeholder.
  • Text view of n8n / OpenAI streams no longer shows JSON fragments. The PII sanitizer masked 13-digit timestamps and UUID tails as phone numbers and bare JSON numbers such as "created":1759830000, which turned every logged frame into invalid JSON. Bare JSON numbers are left alone now and the phone pattern no longer matches inside longer digit runs; phone, card and SSN values in strings and free text are still masked. A frame cut by the log limit is shown as the text written so far.
  • Log detail is easier to read. Text wraps at word boundaries instead of mid-word, header names are shown in full, the dialog is wider, and each body has Copy and More/Less buttons. A truncated body says so above the text.
  • docker-compose UI could not reach the API after the client-token change in v1.12.4: the X-CG-Client-Token header was missing from the CORS allow list, so every call from the UI on :3000 to the API on :3001 failed. Single-origin setups (Ingress, Helm) were not affected.

Upgrade notes

  • New optional settings LOG_BODY_LIMIT (default 65536) and LOG_STREAM_BODY_LIMIT (default 262144) control how many characters of each body the request log keeps. Larger bodies take more space in request_logs; Postgres compresses repetitive stream frames on disk. No database migration.

What's Changed

  • fix(logs): full request/response bodies, readable stream text, no JSON-breaking PII masks (@claude)

Docker Images

# Backend
docker pull ghcr.io/No749ah/clustergate-backend:v1.12.5

# Frontend
docker pull ghcr.io/No749ah/clustergate-frontend:v1.12.5

Quick Start

git clone https://github.com/No749ah/ClusterGate.git
cd ClusterGate
cp .env.example .env
# Edit .env — set JWT_SECRET and POSTGRES_PASSWORD
docker compose up -d
docker compose exec backend npm run db:migrate

Frontend: http://localhost:3000
Backend API: http://localhost:3001

On first visit, the Setup Wizard will guide you through creating your admin account.

Kubernetes Deploy

helm upgrade --install clustergate ./helm/clustergate \
  --namespace clustergate \
  --create-namespace \
  --set ingress.host=clustergate.example.com \
  --set backend.secrets.jwtSecret=$(openssl rand -base64 64) \
  --set postgres.credentials.password=$(openssl rand -base64 32) \
  --wait