spring:
  config:
    activate:
      on-profile: prod
  datasource:
    url: jdbc:mysql://127.0.0.1:23306/easyflow?useInformationSchema=true&characterEncoding=utf-8
    username: easyflow
    password: root
    hikari:
      maximum-pool-size: 20
      minimum-idle: 4
      connection-timeout: 5000
      validation-timeout: 3000
      idle-timeout: 600000
      max-lifetime: 1800000
  data:
    redis:
      host: 127.0.0.1
      port: 6379
      database: 0
      password: ${REDIS_PASSWORD:123456}

easyflow:
  chat:
    cache:
      session-list-ttl: 300s
      session-summary-ttl: 600s
      session-tail-ttl: 1800s
      tail-size: 50
    sync:
      enabled: true
      batch-size: 500
      fixed-delay: 30000
      repair-lookback-days: 3
      retention-months: 3
  mq:
    enabled: true
    type: redis
    redis:
      database: 1
      stream-prefix: easyflow:mq
      consumer-instance-id: ${EASYFLOW_INSTANCE_ID:${HOSTNAME:${random.uuid}}}
      chat-persist-shard-count: 4
      consumer-batch-size: 200
      consumer-block-timeout: 2000ms
      pending-claim-idle: 60000ms
      consumer-failure-initial-backoff: 1s
      consumer-failure-max-backoff: 30s
      consumer-failure-log-interval: 60s
      max-retry: 16
      consumer-executor:
        core-size: 4
        max-size: 32
        queue-capacity: 64
        keep-alive-seconds: 60
      pool:
        max-active: 12
        max-idle: 8
        min-idle: 1
  analytical-db:
    enabled: true
    url: ${EASYFLOW_ANALYTICAL_DB_URL:jdbc:clickhouse://127.0.0.1:8123/easyflow?jdbc_ignore_unsupported_values=true&socket_timeout=30000&compress=false&ssl=false}
    username: ${EASYFLOW_ANALYTICAL_DB_USERNAME:default}
    password: ${EASYFLOW_ANALYTICAL_DB_PASSWORD:}
    driver-class-name: com.clickhouse.jdbc.ClickHouseDriver
    pool:
      max-pool-size: 10
      min-idle: 1
      connection-timeout: 5000
      validation-timeout: 3000
      idle-timeout: 600000
      max-lifetime: 1800000
  flyway:
    analytical-db:
      locations: classpath:db/migration/analyticaldb
      table: flyway_schema_history_analytical_db
      baseline-on-migrate: false
      validate-on-migrate: true
  storage:
    type: xFileStorage
  agent:
    runtime:
      instance-id: ${EASYFLOW_INSTANCE_ID:${HOSTNAME:${random.uuid}}}
      route-ttl: 24h
      command-topic-prefix: easyflow:agent-runtime-command
      command-result-timeout: 5s
      command-result-ttl: 5m
  ai:
    rag:
      health:
        cache-ttl: 5s
    document-import:
      status-broadcast-channel: easyflow:document-import:status
      parse-monitor:
        fixed-delay: 10000
        initial-delay: 10000
        batch-size: 10
  thread-pool:
    sse:
      core-size: 4
      max-size: 16
      queue-capacity: 2000
      keep-alive-seconds: 30
      allow-core-thread-timeout: true
    document-import:
      core-size: 2
      max-size: 4
      queue-capacity: 200
      keep-alive-seconds: 60
      allow-core-thread-timeout: true
    scheduler:
      pool-size: 4
