# 项目信息
framework:
  name: "ems_agt"
  version: "0.0.1"

# 应用服务配置
server:
  # 服务端口
  port: 3040
  # 是否开启代理
  proxy: false

# 日志
logger:
  fileDir: "/usr/local/omc/log"
  fileName: "ems_agt.log"
  level: 2 # 日志记录的等级 0:silent<1:info<2:warn<3:error
  maxDay: 30 # 日志会保留 30 天
  maxSize: 10 # 调整按 10MB 大小的切割

# 静态文件配置, 相对项目根路径或填绝对路径
staticFile:
  # 默认资源，dir目录需要预先创建
  default:
    prefix: "/static"
    dir: "/usr/local/omc/static"
  # 文件上传资源目录映射，与项目目录同级
  upload:
    prefix: "/upload"
    dir: "/usr/local/omc/upload"

# 文件上传
upload:
  # 最大上传文件大小，默认为 10mb
  fileSize: 10
  # 文件扩展名白名单
  whitelist:
    # 图片
    - ".bmp"
    - ".webp"
    - ".gif"
    - ".jpg"
    - ".jpeg"
    - ".png"
    # word excel powerpoint
    - ".doc"
    - ".docx"
    - ".xls"
    - ".xlsx"
    - ".ppt"
    - ".pptx"
    # 文本文件
    - ".html"
    - ".htm"
    - ".txt"
    # pdf
    - ".pdf"
    # 压缩文件
    - ".zip"
    - ".gz"
    - ".tgz"
    - ".gzip"
    # 音视频格式
    - ".mp3"
    - ".mp4"
    - ".avi"
    - ".rmvb"

# cors 跨域
cors:
  # 设置 Access-Control-Allow-Origin 的值，【默认值】会获取请求头上的 origin
  # 例如：http://mask-api.org
  # 如果请求设置了 credentials，则 origin 不能设置为 *
  origin: "*"
  # 设置 Access-Control-Allow-Credentials，【默认值】false
  credentials: true
  # 设置 Access-Control-Max-Age
  maxAge: 31536000
  # 允许跨域的方法，【默认值】为 GET,HEAD,PUT,POST,DELETE,PATCH
  allowMethods:
    - "OPTIONS"
    - "HEAD"
    - "GET"
    - "POST"
    - "PUT"
    - "DELETE"
    - "PATCH"
  # 设置 Access-Control-Allow-Headers 的值，【默认值】会获取请求头上的 Access-Control-Request-Headers
  allowHeaders:
    - "X-App-Code"
    - "X-App-Version"
    - "Authorization"
    - "Origin"
    - "X-Requested-With"
    - "Content-Type"
    - "Content-Language"
    - "Accept"
    - "Range"
    - "Accesstoken"
    - "Operationtype"
  # 设置 Access-Control-Expose-Headers 的值
  exposeHeaders:
    - "X-RepeatSubmit-Rest"

# security 安全
security:
  csrf:
    enable: false
    type: "referer"
    # 允许调用的域名地址的，例如：http://<Referer地址>/mask-api
    refererWhiteList:
      - "127.0.0.1:3030"
  xframe:
    enable: true
    value: "SAMEORIGIN"
  csp:
    enable: true
  hsts:
    enable: false
    maxAge: 31536000
    includeSubdomains: false
  noopen:
    enable: false
  nosniff:
    enable: false
  xssProtection:
    enable: true
    value: "1; mode=block"

# JWT 令牌配置
jwt:
  # 令牌算法 HS256 HS384 HS512
  algorithm: "HS512"
  # 令牌密钥
  secret: "217a0481c7f9cfe1cb547d32ee012b0f"
  # 令牌有效期（默认120分钟）
  expiresIn: 120
  # 验证令牌有效期，相差不足xx分钟，自动刷新缓存
  refreshIn: 20

# GORM 数据源
gorm:
  dataSource:
    # 默认数据库实例
    default:
      type: "mysql"
      host: "127.0.0.1"
      port: 3306
      username: "<用户名>"
      password: "<密码>"
      database: "<数据库>"
      logging: false
  # 多个数据源时可以用这个指定默认的数据源
  defaultDataSourceName: "default"

# Redis 缓存数据
redis:
  dataSource:
    default:
      port: 6379 # Redis port
      host: "127.0.0.1" # Redis host
      password: "<密码>"
      db: 0 # Redis db_num
  # 多个数据源时可以用这个指定默认的数据源
  defaultDataSourceName: "default"

# 用户配置
user:
  # 密码
  password:
    # 密码最大错误次数
    maxRetryCount: 5
    # 密码锁定时间,单位分钟（默认10分钟）
    lockTime: 10
  # 管理员列表
  adminList:
    - "1"
    - "2"

# char 字符验证码配置
charCaptcha:
  # 宽度
  width: 120
  # 高度
  height: 40
  # 干扰线条的数量
  noise: 4
  # 验证码的字符是否有颜色，默认没有，如果设定了背景，则默认有
  color: true
  # 验证码图片背景颜色
  background: "#fafafa"
  # 验证码长度
  size: 4
  # 验证码字符
  chars: "023456789abcdefghjkmnprstuvwxyz"

# math 数值计算码配置
mathCaptcha:
  # 宽度
  width: 120
  # 高度
  height: 40
  #  干扰线条的数量
  noise: 4
  #  验证码的字符是否有颜色，默认没有，如果设定了背景，则默认有
  color: true
  # 验证码图片背景颜色
  background: "#fafafa"
