server:
  port: 9200

spring:
  application:
    name: orion-ops-launch
  profiles:
    active: dev
  main:
    # 允许循环依赖
    allow-circular-references: true
  servlet:
    # 文件上传相关配置项
    multipart:
      # 单个文件大小
      max-file-size: 16MB
      # 设置总上传的文件大小
      max-request-size: 32MB
  mvc:
    pathmatch:
      matching-strategy: ANT_PATH_MATCHER
  websocket:
    # 1MB
    binary-buffer-size: 1048576
    # 1MB
    text-buffer-size: 1048576
    # 30MIN
    session-idle-timeout: 1800000
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      # 初始连接数
      initial-size: 5
      # 最小连接池数量
      min-idle: 5
      # 最大连接池数量
      max-active: 20
      # 配置获取连接等待超时的时间
      max-wait: 600000
      # 检测间隔
      time-between-eviction-runs-millis: 60000
      # 最小生存的时间
      min-evictable-idle-time-millis: 300000
      # 最大生存的时间
      max-evictable-idle-time-millis: 900000
      validation-query: SELECT 1
      web-stat-filter:
        enabled: true
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        login-username:
        login-password:
      filter:
        stat:
          enabled: true
          log-slow-sql: true
          slow-sql-millis: 800
          merge-sql: true
        wall:
          config:
            multi-statement-allow: true
  cache:
    type: REDIS
    redis:
      time-to-live: 1h
  output:
    ansi:
      enabled: DETECT
  boot:
    admin:
      context-path: /admin
      client:
        url: http://127.0.0.1:${server.port}/${spring.boot.admin.context-path}
        instance:
          service-host-type: IP

management:
  endpoints:
    web:
      base-path: /actuator
      exposure:
        include: '*'

mybatis-plus:
  configuration:
    map-underscore-to-camel-case: true
  mapper-locations: classpath*:mapper/*Mapper.xml
  global-config:
    db-config:
      logic-delete-field: deleted
      logic-not-delete-value: 0
      logic-delete-value: 1

springdoc:
  api-docs:
    enabled: true
    path: /v3/api-docs
  swagger-ui:
    enabled: true
    path: /swagger-ui
    tags-sorter: alpha
    operations-sorter: alpha
    show-extensions: true

knife4j:
  enable: true
  setting:
    language: ZH_CN

logging:
  file:
    path: ${user.home}/orion/logs/orion-ops-pro
    name: ${logging.file.path}/app.log
  logback:
    rollingpolicy:
      clean-history-on-start: false
      file-name-pattern: ${logging.file.path}/rolling/orion-ops-rolling-%d{yyyy-MM-dd}.%i.gz
      max-history: 30
      max-file-size: 16MB
      total-size-cap: 0B
  pattern:
    console: '%clr(%d{${LOG_DATEFORMAT_PATTERN:yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %boldBlue([%X{tid}]) %clr([%22.22t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:%wEx}'
    file: "%d{${LOG_DATEFORMAT_PATTERN:yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} [%X{tid}] [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:%wEx}"
  level:
    com.orion.ops.launch.controller.BootstrapController: INFO

orion:
  # 版本
  version: @revision@
  api:
    # 公共api前缀
    prefix: /orion-api
    # 是否开启跨域
    cors: true
  swagger:
    # swagger 配置
    title: orion-ops-pro 运维平台
    description: 一站式运维服务平台
    version: ${orion.version}
    url: https://github.com/lijiahangmax/orion-ops-pro
    email: ljh1553488six@139.com
    license: Apache-2.0
    license-url: https://github.com/lijiahangmax/orion-ops-pro/blob/main/LICENSE
    grouped-api:
      infra:
        group: "infra - 基建模块"
        path: "infra"
      machine:
        group: "machine - 机器资源模块"
        path: "machine"

  logging:
    # 全局日志打印
    printer:
      mode: PRETTY
      expression: 'execution (* com.orion.ops..*.controller..*.*(..))'
      headers:
        - user-agent,accept
        - content-type
      field:
        ignore:
          - password,newPassword
          - metrics
        desensitize:
          - phone,phoneNumber
          - email,sendEmail
  storage:
    # 本地文件存储
    local:
      primary: true
      enabled: true
      timestamp-prefix: true
      storage-path: ${user.home}
      base-path: /orion/storage/orion-ops-pro
  security:
    password-encoder-length: 4
    # 匿名接口
    permit-url:
      - ${orion.api.prefix}/server/bootstrap/health
  crypto:
    # aes加密器
    aes:
      primary: true
      enabled: true
      working-mode: ECB
      padding-mode: PKCS5_PADDING
      # 加密秘钥
      secret-key: I66AndrKWrwXjtBL
      use-generator-key: true
      generator-key-length: 128
  thread:
    # 线程池配置
    pool:
      core-pool-size: 2
      max-pool-size: 4
      keep-alive-seconds: 180
      queue-capacity: 30
