# 项目相关配置
ruoyi:
  # 名称
  name: Ruoyi-Flex
  # 版本
  version: 4.1.8
  # 版权年份
  copyrightYear: 2023
  # 实例演示开关
  demoEnabled: true
  # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
  profile: D:/ruoyi/uploadPath
  # 获取ip地址开关
  addressEnabled: false

captcha:
  enable: true
  # 页面 <参数设置> 可开启关闭 验证码校验
  # 验证码类型 math 数组计算 char 字符验证
  type: MATH
  # line 线段干扰 circle 圆圈干扰 shear 扭曲干扰
  category: CIRCLE
  # 数字验证码位数
  numberLength: 1
  # 字符验证码长度
  charLength: 4

# 开发环境配置
server:
  # 服务器的HTTP端口,默认为8080
  port: 8080
  servlet:
    # 应用的访问路径
    context-path: /

  # undertow web容器配置
  undertow:
      # HTTP post内容的最大大小。当值为-1时,默认值为大小是无限的
      max-http-post-size: -1
      # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
      # 每块buffer的空间大小,越小的空间被利用越充分
      buffer-size: 512
      # 是否分配的直接内存
      direct-buffers: true
      threads:
        # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
        io: 8
        # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
        worker: 256

# 日志配置
logging:
  level:
    com.ruoyi: debug
    org.springframework: warn
    tech.powerjob.worker.background: warn
  config: classpath:logback.xml

# 用户配置
user:
  password:
    # 密码最大错误次数
    maxRetryCount: 5
    # 密码锁定时间(默认10分钟)
    lockTime: 10

# Spring配置
spring:
  application:
    name: ${ruoyi.name}
  # 资源信息
  messages:
    # 国际化资源文件路径
    basename: i18n/messages
  profiles:
    active: @profiles.active@
  # 文件上传
  servlet:
    multipart:
      # 单个文件大小
      max-file-size: 10MB
      # 设置总上传的文件大小
      max-request-size: 20MB
  mvc:
    format:
      date-time: yyyy-MM-dd HH:mm:ss
  jackson:
    # 日期格式化
    date-format: yyyy-MM-dd HH:mm:ss
    serialization:
      # 格式化输出
      indent_output: false
      # 忽略无法转换的对象
      fail_on_empty_beans: false
    deserialization:
      # 允许对象忽略json中不存在的属性
      fail_on_unknown_properties: false
  # 服务模块
  devtools:
    restart:
      # 热部署开关
      enabled: true

# token配置
token:
  # 令牌自定义标识
  header: Authorization
  # 令牌密钥
  secret: abcdefghijklmnopqrstuvwxyz
  # 令牌有效期(默认30分钟)
  expireTime: 30

# PageHelper分页插件
pagehelper:
  helperDialect: mysql
  supportMethodsArguments: true
  params: count=countSql

# SpringDoc配置
springdoc:
  #需要扫描的包,可以配置多个,使用逗号分割
  packages-to-scan: com.ruoyi
  paths-to-exclude:  #配置不包含在swagger文档中的api
    - /api/test/**
    - /api/mockito/data
  swagger-ui:
    enabled: true  #开启/禁止swagger,prod可以设置为false
    disable-swagger-default-url: true  #禁用default petstore url
    path: /swagger-ui.html  #swagger页面
    persistAuthorization: true  # 持久化认证数据,如果设置为 true,它会保留授权数据并且不会在浏览器关闭/刷新时丢失
    csrf:
      enabled: true # 启用CSRF支持
  api-docs:
    enabled: true #开启/禁止api-docs, prod可以设置为false
  use-management-port: false
  enable-spring-security: true
  info:
    # 标题
    title: 'Ruoyi-Flex API Doc'
    # 描述
    description: 'Ruoyi-Flex SrpingDoc demo'
    # 版本
    version: '版本号: ${ruoyi.version}'
    # 作者信息
    contact:
      name: 数据小王子
      email: 738981257@qq.com
      url: https://gitee.com/dataprince/ruoyi-flex
  components:
      # 鉴权方式配置
    security-schemes:
      apiKey:
        type: APIKEY
        in: HEADER
        name: ${sa-token.token-name}
  group-configs:
    - group: 1.演示模块
      packages-to-scan: com.ruoyi.demo
    - group: 2.通用模块
      packages-to-scan: com.ruoyi.common
    - group: 3.系统模块
      packages-to-scan: com.ruoyi.system
    - group: 4.代码生成模块
      packages-to-scan: com.ruoyi.generator

# 防止XSS攻击
xss:
  # 过滤开关
  enabled: true
  # 排除链接(多个用逗号分隔)
  excludes: /system/notice
  # 匹配链接
  urlPatterns: /system/*,/monitor/*,/tool/*,/demo/*

# 全局线程池相关配置
thread-pool:
  # 是否开启线程池
  enabled: false
  # 队列最大长度
  queueCapacity: 128
  # 线程池维护线程所允许的空闲时间
  keepAliveSeconds: 300

# 分布式锁 lock4j 全局配置
lock4j:
  # 获取分布式锁超时时间,默认为 3000 毫秒
  acquire-timeout: 3000
  # 分布式锁的超时时间,默认为 30 秒
  expire: 30000

# Sa-Token配置
sa-token:
  # token名称 (同时也是cookie名称)
  token-name: Authorization
  # token固定超时 设为七天 (必定过期) 单位: 秒
  timeout: 604800
  # 多端不同 token 有效期 可查看 LoginHelper.loginByDevice 方法自定义
  # token最低活跃时间 (指定时间无操作就过期) 单位: 秒
  active-timeout: 1800
  # 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
  is-concurrent: true
  # 在多人登录同一账号时,是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
  is-share: false
  # token 风格(默认可取值:uuid、simple-uuid、random-32、random-64、random-128、tik)
  token-style: uuid
  # 是否输出操作日志
  is-log: true
  # jwt秘钥
  jwt-secret-key: abcdefghijklmnopqrstuvwxyz

# security配置
security:
  # 排除路径
  excludes:
    # 静态资源
    - /*.html
    - /**/*.html
    - /**/*.css
    - /**/*.js
    - /profile/**
    # 公共路径
    - /favicon.ico
    - /error
    # swagger 文档配置
    - /*/api-docs
    - /*/api-docs/**
    # actuator 监控配置
    - /actuator
    - /actuator/**
    # 其它链接
    - /login
    - /register
    - /captchaImage
    - /captcha/get
    - /captcha/check

# 多租户配置
tenant:
  # 是否开启
  enable: false
  # 排除表
  excludes:
    - sys_menu
    - sys_tenant
    - sys_tenant_package
    - sys_role_dept
    - sys_role_menu
    - sys_user_post
    - sys_user_role
    - sys_client

--- # Actuator 监控端点的配置项
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: ALWAYS
    logfile:
      external-file: ./logs/sys-console.log

--- # websocket
websocket:
  enabled: true
  # 路径
  path: /resource/websocket
  # 设置访问源地址
  allowedOrigins: '*'