New protocol version released: This page may contain outdated information.
Configuration
The HAIP Server is highly configurable through environment variables, configuration objects, and runtime options. This guide covers all configuration options and their effects.
Configuration Methods
1. Environment Variables
The easiest way to configure the server is through environment variables:
2. Configuration Object
For programmatic configuration, pass a configuration object:
3. Configuration File
Create a configuration file for complex setups:
Configuration Options
Basic Server Configuration
| Option | Type | Default | Description |
|---|
port | number | 8080 | Server port |
host | string | ’0.0.0.0’ | Server host |
jwtSecret | string | ’your-secret-key’ | JWT secret for token validation |
jwtExpiresIn | string | ’24h’ | JWT token expiration time |
maxConnections | number | 1000 | Maximum concurrent connections |
heartbeatInterval | number | 30000 | Heartbeat interval in milliseconds |
heartbeatTimeout | number | 5000 | Heartbeat timeout in milliseconds |
Flow Control Configuration
| Option | Type | Default | Description |
|---|
flowControl.enabled | boolean | true | Enable flow control |
flowControl.initialCredits | number | 1000 | Initial message credits per channel |
flowControl.minCredits | number | 100 | Minimum credits before back-pressure |
flowControl.maxCredits | number | 10000 | Maximum credits per channel |
flowControl.creditThreshold | number | 200 | Credit threshold for flow updates |
flowControl.backPressureThreshold | number | 0.8 | Back-pressure threshold (0-1) |
flowControl.adaptiveAdjustment | boolean | true | Enable adaptive credit adjustment |
flowControl.initialCreditMessages | number | 1000 | Initial message credits |
flowControl.initialCreditBytes | number | 1048576 | Initial byte credits (1MB) |
Run Management Configuration
| Option | Type | Default | Description |
|---|
maxConcurrentRuns | number | 10 | Maximum concurrent runs per session |
replayWindowSize | number | 1000 | Maximum messages in replay window |
replayWindowTime | number | 60000 | Replay window time in milliseconds |
Feature Toggles
| Option | Type | Default | Description |
|---|
enableCORS | boolean | true | Enable CORS middleware |
enableCompression | boolean | true | Enable compression middleware |
enableLogging | boolean | true | Enable request logging |
Environment Variables Reference
Required Variables
Optional Variables
Configuration Examples
Development Configuration
Production Configuration
Docker Configuration
Runtime Configuration
Dynamic Configuration Updates
The server supports some runtime configuration updates:
Configuration Validation
The server validates configuration on startup:
Security Configuration
JWT Configuration
Rate Limiting
For additional rate limiting, use a reverse proxy like nginx:
Monitoring Configuration
Health Check Configuration
The server provides built-in health checks:
Logging Configuration
Best Practices
1. Use Environment Variables for Secrets
3. Monitor Resource Usage
4. Use HTTPS in Production
Next Steps