Feature-Toggle

Control what information is included in responses and what functionality is available.


Response Content Features

Enable Logs

Variable: ENABLE_LOGS
Default: true

Controls whether the server generates and includes logs.

export ENABLE_LOGS=false

Enable Host Information

Variable: ENABLE_HOST
Default: true

Includes hostname, IP addresses, and OS details.

export ENABLE_HOST=false

Response with host info:

{
  "host": {
    "hostname": "echoserver-123",
    "ip": "10.244.0.5",
    "ips": ["10.244.0.5"]
  }
}

Enable HTTP Information

Variable: ENABLE_HTTP
Default: true

Includes HTTP method, URL, and protocol.

export ENABLE_HTTP=false

Enable Request Details

Variable: ENABLE_REQUEST
Default: true

Includes parameters, query strings, headers, body, and files.

export ENABLE_REQUEST=false

Enable Cookies

Variable: ENABLE_COOKIES
Default: true

Includes cookie information.

export ENABLE_COOKIES=false

Functional Features

Enable File Operations

Variable: ENABLE_FILE
Default: true

⚠️ Security Warning: File operations allow reading files and listing directories. Disable in production.

export ENABLE_FILE=false

When enabled:

curl http://localhost:80/?echo_file=/tmp

Enable Custom Headers

Variable: ENABLE_HEADER
Default: true

Controls custom headers via echo_header.

export ENABLE_HEADER=false

Enable Environment Variables

Variable: ENABLE_ENV
Default: false

⚠️ Security Warning: Environment variables may contain sensitive information. Only enable in secure environments.

export ENABLE_ENV=true

When enabled:

{
  "environment": {
    "PATH": "/usr/local/bin:/usr/bin",
    "HOME": "/home/user"
  }
}

Security Profiles

Minimal Security (Production)

export ENABLE_FILE=false
export ENABLE_ENV=false
export ENABLE_COOKIES=false
export CONTROLS__TIMES__MAX=5000

Development

export ENABLE_FILE=true
export ENABLE_ENV=true
export ENABLE_COOKIES=true
export LOGS__LEVEL=debug

Public Demo

export ENABLE_FILE=false
export ENABLE_ENV=false
export ENABLE_COOKIES=true
export CONTROLS__TIMES__MAX=10000

Docker Configuration

docker run -p 80:80 \
  -e ENABLE_FILE=false \
  -e ENABLE_ENV=false \
  -e ENABLE_LOGS=true \
  echoserver:latest

Kubernetes Configuration

apiVersion: v1
kind: ConfigMap
metadata:
  name: echoserver-config
data:
  ENABLE_FILE: "false"
  ENABLE_ENV: "false"
  ENABLE_LOGS: "true"

Related: Configuration →