server: port: ${SERVER_PORT:8080} logging: file: path: ${LOG_PATH:./logs} spring: profiles: active: ${SPRING_PROFILES_ACTIVE:dev} cache: type: redis servlet: multipart: max-file-size: 2048MB max-request-size: 2048MB jackson: date-format: yyyy-MM-dd HH:mm:ss serialization: write-dates-as-timestamps: false time-zone: GMT+8 mail: # SMTP服务器地址 host: ${MAIL_HOST} # 端口(QQ邮箱使用587或465) port: 465 # 你的完整邮箱地址 username: ${MAIL_USERNAME} # 授权码(不是登录密码!) password: ${MAIL_PASSWORD} # 默认编码 default-encoding: UTF-8 # 协议(默认为smtp) protocol: smtp # 测试连接(可选) test-connection: false # 额外属性配置 properties: mail: smtp: # 启用认证 auth: true # 启用STARTTLS加密(465端口为隐式SSL,无需STARTTLS) starttls: enable: false required: false # 465端口必须启用隐式SSL,否则连接会一直阻塞直到超时 ssl: enable: true # 超时配置(避免线程阻塞) connectiontimeout: 5000 timeout: 3000 writetimeout: 5000 # 启用调试日志(生产环境建议关闭) debug: true springdoc: api-docs: enabled: true swagger-ui: path: /swagger-ui.html tags-sorter: alpha operations-sorter: alpha mybatis-plus: configuration: map-underscore-to-camel-case: true global-config: db-config: logic-delete-field: isDeleted logic-delete-value: 1 logic-not-delete-value: 0 unisbase: web: auth-endpoints-enabled: true management-endpoints-enabled: true tenant: ignoreTables: - biz_ai_tasks - biz_meeting_transcripts - biz_speakers - biz_llm_models - biz_asr_models - biz_prompt_templates - biz_meeting_transcript_chapter_versions - biz_meeting_transcript_chapters - biz_speaker_asr_sync - biz_android_push_message - biz_client_downloads - biz_external_apps security: enabled: true mode: embedded auth-header: Authorization token-prefix: "Bearer " permit-all-urls: - /actuator/health - /api/auth/** - /api/static/** - /api/public/meetings/** - /api/android/devices/home - /api/android/auth/login - /api/android/auth/refresh - /api/clients/latest/by-platform - /api/android/screensavers/active - /api/screensavers/active - /v3/api-docs/** - /swagger-ui.html - /swagger-ui/** - /ws/** internal-auth: enabled: true header-name: X-Internal-Secret app: resource-prefix: /api/static/ captcha: ttl-seconds: 120 max-attempts: 5 token: access-default-minutes: 30 refresh-default-days: 7 imeeting: summary-orchestration: mode: INTERNAL_BUILTIN external-n8n: webhook-url: ${IMEETING_EXTERNAL_N8N_WEBHOOK_URL:https://n8n.oa.unissense.tech/webhook/imeeting-summary-external-template} auth-header-name: ${IMEETING_EXTERNAL_N8N_AUTH_HEADER_NAME:test} auth-header-value: ${IMEETING_EXTERNAL_N8N_AUTH_HEADER_VALUE:123456} connect-timeout-seconds: ${IMEETING_EXTERNAL_N8N_CONNECT_TIMEOUT_SECONDS:10} read-timeout-seconds: ${IMEETING_EXTERNAL_N8N_READ_TIMEOUT_SECONDS:1200} realtime: resume-window-minutes: 30 empty-session-retention-minutes: 720 redis-expire-listener-enabled: true grpc: enabled: true port: 19090 max-inbound-message-size: 4194304 reflection-enabled: true gateway: heartbeat-interval-seconds: 15 heartbeat-timeout-seconds: 45 realtime: session-ttl-seconds: 600 sample-rate: 16000 channels: 1 encoding: PCM16LE connection-ttl-seconds: 1800 auth: enabled: false allow-anonymous: true