Skip to content

Seed Demo Data

The seed script pre-loads a realistic enterprise scenario (NovaTrust Bank) for demos and development.

Quick Start

bash
# Local (docker compose running)
bash scripts/seed-demo-data.sh

# Remote (demo VM)
bash scripts/seed-demo-data.sh --remote

What Gets Created

CategoryCountDetails
Tenants4Retail Banking (pro), Wealth Management (pro), Insurance Division (pro), PayFlow (free)
API Routes5Account API, Chat Completions, Payment API, Reports API, Health Records API
Rate Limits4Per-tenant: retail 10k/min, wealth 2k/min, insurance 2k/min, payflow 500/min
Token Budgets4retail 2M/month, wealth 1M, insurance 500K, payflow 50K
MCP Servers3ehr-read-only, scheduling, product-catalog
Agent Sessions3Insurance tenant triage sessions
ClickHouse Data300 rows150 request logs + 90 AI logs + 60 agent audit logs (7-day spread)
Semantic Cache50 entriesPre-warmed Qdrant cache for common banking/healthcare queries
Notifications5Budget warnings, key approvals, HITL pending, session errors, health alerts
Webhooks2Slack integrations for retail + insurance
Demo Users2operator/demo123 (platform admin), developer/demo123 (retail tenant)

Route Plugin Configuration

Every seeded route includes the full plugin set:

PluginPurposeOn All Routes
tenant-rate-limitPer-tenant rate limitingYes
clickhouse-loggerAnalytics data collectionYes
request-idTrace correlationYes
opentelemetryDistributed tracingYes
corsCross-origin headersYes
key-authAPI key authenticationYes
response-pii-scrubPII redaction (HIPAA)Chat + Health Records only

NovaTrust Bank Scenario

The demo data models a real enterprise deployment:

NovaTrust Bank
  |
  +-- Platform Engineering (operator portal)
  |     Sarah Chen — platform-admin
  |
  +-- Retail Banking (developer portal, tenant: retail)
  |     Raj Patel — tenant-user
  |     Routes: Account API v2, Chat Completions
  |     Budget: 2M tokens/month, 10k req/min
  |
  +-- Wealth Management (tenant: wealth)
  |     Routes: Reports API v3
  |     Budget: 1M tokens/month
  |
  +-- Insurance Division (tenant: insurance)
  |     Routes: Health Records API (draft, HIPAA PII scrubbing)
  |     MCP: ehr-read-only, scheduling servers
  |     Agent sessions with HITL gates
  |
  +-- PayFlow (external partner, tenant: payflow)
        Routes: Payment API
        Budget: 50K tokens/month, 500 req/min (strict)

Customizing Demo Data

Edit scripts/seed-demo-data.sh to customize:

  • Tenants: Modify the tenant JSON array in section 1
  • Routes: Change URIs, upstreams, and plugin configs in section 2
  • ClickHouse data: Adjust row counts, tenant distribution, and time spread in section 7
  • Keycloak users: Users are created in section 9 (requires Keycloak admin token)

Re-seeding

The script is idempotent — running it again updates existing data without duplicating:

  • Tenants: creates if not exists, skips if already present
  • Routes: PUT (upsert) — overwrites existing route config
  • ClickHouse: INSERT adds new rows (old data remains, TTL handles cleanup)
  • Redis: SET overwrites existing keys

Enterprise API + AI + Agent Gateway