Skip to content

HeliosProxy v0.4.0 demos — 22 hands-on showcases

HeliosProxy v0.4.0 demos — 22 hands-on showcases

One self-contained demo per feature added in v0.4.0. Each demo:

  • has a README.md with the UVP, use cases, and a step-by-step walkthrough,
  • ships a docker-compose.yml with a working PostgreSQL 17 backend (HeliosDB swap notes inline),
  • and a demo.sh entry point with up / run / down subcommands.
Terminal window
cd <demo-dir>
./demo.sh # interactive walkthrough
./demo.sh up # just bring up services + leave them running
./demo.sh down # tear everything down + remove volumes

Prerequisites

  • Docker + Docker Compose v2
  • psql (PostgreSQL 14+ client)
  • curl and jq
  • For plugin demos: a Rust toolchain with wasm32-unknown-unknown target, OR pre-built .wasm artefacts dropped into the per-demo plugins/ directory.

Demo index

#DemoModuleRunnableWhat it proves
1Anomaly Detectionanomaly-detectionyesSQLi + auth burst + novel query — three families fire concurrently against a single backend
2Edge / Geo Proxyedge-proxyyesTwo proxies (home + edge), invalidation broadcast on write, ~40× cache speedup
3Plugin host KV bridgewasm-pluginsyes (via Demo 11)Per-plugin namespaced state survives across hook invocations
4Plugin host cryptowasm-pluginswalkthroughRFC 6234 SHA-256 vector check + audit-chain producing real digests
5Plugin Ed25519 signatureswasm-pluginsyesopenssl-signed .wasm loads; tampered or unsigned refuses
6Plugin OCI artefact loaderwasm-pluginsyeshelios-plugin pack → drop tarball → proxy loads + validates SHA-256
7RouteResult::Blockwasm-pluginsyes (via Demo 18)Route hook produces clean PG ErrorResponse on rejection
8trust_root config knobwasm-pluginswalkthroughSame proxy binary, different TOML → permissive vs enforced
9Admin Web UI(always-on)yes10-panel dashboard at http://localhost:9090/, auto-refresh
10Admin REST API tour(always-on)yescurl tour of all 8 new endpoints
11Plugin: cost-governorT2.3yesPer-tenant budget exhaustion → block; recovery after window resets
12Plugin: ai-classifierT2.2yesLLM detection from application_name keywords + generated-by markers
13Plugin: token-budgetT2.2yesPer-(agent, model) cost gate for AI traffic
14Plugin: llm-guardrailT2.2yesDROP, missing WHERE, missing tenant_id all refused for AI traffic
15Plugin: pgvector-routerT2.2yesVector top-K → pg-vector replica; non-vector → pg-primary
16Plugin: column-maskT2.4yesSame query, different roles, masked vs raw PII
17Plugin: audit-chainT2.4yesHash-chained tamper-evident log; verify_chain catches mutation
18Plugin: residency-routerT2.4yesEU users → EU replica; US users → US replica; unknown region → block
19helios-plugin CLI(build tool)walkthroughPack/inspect/verify with openssl-generated key
20Kubernetes operatorT1.1yes (kind cluster)One CR brings up ConfigMap + Deployment + Service; status flips Pending → Ready
21Terraform providerT1.3walkthrough (needs Demo 20)Five resources via main.tf; Terraform-tracked state
22Pulumi providerT1.3walkthrough (needs Demo 20)Same five resources via TypeScript

Shared assets

_shared/ contains files multiple demos depend on:

  • proxy.base.toml — minimal proxy config
  • init.sql — sample schema (users + orders + events) with mask functions and roles
  • wait-for.sh — TCP-port poller used by every demo.sh
  • plugin-demo.sh — shared bring-up logic sourced by per-plugin demos

HeliosDB compatibility

Every demo uses postgres:17-alpine as the default backend so docker compose up works on any laptop. The wire protocol is identical between PG and HeliosDB; swap the image: line for dimensigon/heliosdb-lite:latest (or your local build) and every demo behaves the same. See _shared/README.md for the swap recipe.

Container image

All demos pull ghcr.io/dimensigon/hdb-heliosdb-proxy:0.4.0. The image is published by the docker workflow on tag pushes; if you’re running against an unreleased build, swap the image: line for build: pointing at your local proxy repo.

Where to file improvements

github.com/dimensigon/HDB-HeliosDB-Proxy/issues — one issue per demo, please. Pull requests welcome; new demos follow the layout described at the top of this file.