# Sandbox ConfigMap in sandbox namespace
# This is mounted into dynamically created sandbox pods
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: sandbox-config
  namespace: sandbox
  labels:
    app.kubernetes.io/name: sandbox
    app.kubernetes.io/component: config
data:
  config.yaml: |
    # Default configuration for user sandbox containers
    # This is mounted at /app/config/config.yaml in sandbox pods

    # Data directory for persistent storage (workspace, strategies, etc.)
    # This is mounted as a PVC at /app/data
    data_dir: "/app/data"

    # User-specific settings (defaults, can be overridden per-user)
    user:
      timezone: "UTC"

    # Data sources
    data:
      iceberg:
        catalog_name: "dexorder"
        catalog_uri: "http://iceberg-catalog.default.svc.cluster.local:8181"
        namespace: "trading"
        # S3 endpoint for MinIO in default namespace
        s3_endpoint: "http://minio.default.svc.cluster.local:9000"
        s3_region: "us-east-1"

      relay:
        endpoint: "tcp://relay.default.svc.cluster.local:5559"
        notification_endpoint: "tcp://relay.default.svc.cluster.local:5558"
        timeout_ms: 5000

    # Strategy settings
    strategies:
      max_concurrent: 5
      default_timeout_minutes: 60

    # Alert settings
    alerts:
      max_active: 100

    # Memory guard: soft RLIMIT_AS limit as a fraction of the cgroup memory.max.
    # Set below 1.0 so Python raises MemoryError before the kernel OOM-kills the pod.
    memory:
      limit_fraction: 0.85

    # Logging
    logging:
      level: "INFO"
      include_timestamps: true
