刘光辉
11 小时以前 34981c30a78e8bbd7791131059a9210f9928b62c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
config:
  # ===============域名配置==================
  #后端域名带端口(消息跳转、第三方登录回调、工作流表单数据流转使用)
  ApiDomain: ${JNPF_API_DOMAIN:http://cx-infra:30000}
  #前端域名带端口(消息跳转使用)
  FrontDomain: ${JNPF_FRONT_DOMAIN:http://localhost/}
  #H5域名带端口(消息跳转使用)
  AppDomain: ${JNPF_APP_DOMAIN:http://localhost/}
  #工作流域名(工作流使用)
  FlowDomain: ${JNPF_FLOW_DOMAIN:http://cx-flow-engine:31000}
  
  # ===============多租户配置==================
  MultiTenancy: false
  MultiTenancyUrl: http://127.0.0.1:30006/api/tenant/DbName/
 
  # ===============静态资源目录映射==================
  WebAnnexFilePath: WebAnnexFile
  DataBackupFilePath: DataBackupFile
  TemporaryFilePath: TemporaryFile
  SystemFilePath: SystemFile
  TemplateFilePath: TemplateFile
  EmailFilePath: EmailFile
  DocumentFilePath: DocumentFile
  DocumentPreviewPath: DocumentPreview
  UserAvatarFilePath: UserAvatar
  IMContentFilePath: IMContentFile
  MPMaterialFilePath: MPMaterial
  TemplateCodePath: TemplateCode
  BiVisualPath: BiVisualPath
 
  # ===============功能格式限制==================
  MPUploadFileType: bmp,png,jpeg,jpg,gif,mp3,wma,wav,amr,mp4
  WeChatUploadFileType: jpg,png,doc,docx,ppt,pptx,xls,xlsx,pdf,txt,rar,zip,csv,amr,mp4
  AllowUploadImageType: jpg,gif,png,bmp,jpeg,tiff,psd,swf,svg,pcx,dxf,wmf,emf,lic,eps,tga
  AllowUploadFileType: jpg,gif,png,bmp,jpeg,doc,docx,ppt,pptx,xls,xlsx,pdf,txt,rar,zip,csv
 
  AllowPreviewFileType: doc,docx,xls,xlsx,ppt,pptx,pdf,txt #允许预览文件类型
  PreviewType: kkfile #文件预览方式 (1.yozo 2.kkfile)默认使用kk
  kkFileUrl: http://localhost:8012/ #kk文件预览服务地址(本地需自行启动 kkFileView)
 
  # 代码生成器命名空间
  CodeAreasName: example
  WebDirectoryPath:
 
  # ===============系统错误邮件报告反馈相关==================
  SoftName: JNPF.JAVA
  SoftFullName: JNPF软件开发平台
  AppVersion: V6.0.0
  AppUpdateContent: ;
 
  # =====================================
  RecordLog: true
  ErrorReport: false
  ErrorReportTo: surrpot@yinmaisoft.com
 
  IgexinEnabled: true
  IgexinAppid: HLFY9T2d1z7MySY8hwGwh4
  IgexinAppkey: 6Uiduugq648YDChhCjAt59
  IgexinMastersecret: pEyQm156SJ9iS7PbyjLCZ6
  SoftVersion: V6.0.0
  AccessKeyId: LTAI4Fu4iJnKmDu5QG78ibfa
  AccessKeySecret: pMSYlgOz3Tm6sYqWA8sKiyxgNY97J7
 
  # ===============跨域配置==================
  Origins: http://127.0.0.1
  Methods: GET,HEAD,POST,PUT,DELETE,OPTIONS
 
  # =========永中配置文件=========
  YozoAppId: yozoAgR41jgC0062
  YozoAppKey: fc3134a9ba8bc6f4c69d635f9adf
  YozoCloudDomain: //dmc.yozocloud.cn
  YozoDomain: //dcsapi.com/
  YozoDomainKey: 57462250284462899344489
  YozoEditDomain: //eic.yozocloud.cn
 
  # ==================== ApacheShardingSphere 配置开关 =====================
  sharding-sphere-enabled: false
 
  #===================== 系统功能配置 =====================
  #是否开启逻辑删除
  EnableLogicDelete: true
  # 秒
  CodeCertificateTimeout: 180
  #检查上传的PDF文件安全
  check-file-pdf: false
  #是否开启身份管理功能
  standingSwitch: true
 
spring:
  messages:
    # 国际化语言文件名配置, 配合当前命名空间下的对应语言文件 message_zh_CN.properties 等等
    basename: message
  mvc:
    #csrf-origins: ${config.FrontDomain}
    cors:
      # 允许跨域的域名
      #allowed-origins: ${config.FrontDomain}
      # 允许跨域的域名正则匹配 如需全部匹配设置为 '**', 因为包含凭据的请求不允许直接写* 这个写法可以直接返回当前请求域名
      allowed-origin-patterns: '**'
      # 允许跨域的请求方法 GET, POST, PUT, DELETE
      allowed-methods: "*"
      # 允许跨域的头部信息 Content-Type, Authorization
      allowed-headers: "*"
      options-max-age: 18000
    headers:
      server-name: ''
      x-frame-options: sameorigin
      x-content-type-options: disabled
      x-xss-protection: enabled_mode_block
 
security:
  # AES加密秘钥
  security-key: EY8WePvjM5GGwQzn
  # 是否开启接口鉴权
  enable-pre-auth: true
  # 接口加密
  enable-rest-encrypt: true
  # 请求来源鉴权
  enable-inner-auth: true
 
# 事件配置
event:
  # 事件总线实现:local(进程内)/ redis(pub/sub)/ mq(Spring Cloud Stream binder)。
  #
  # 2026-08-10 由 mq 切 redis(去 RocketMQ,省 1.14 GiB / 2 容器 / 2 JVM)。
  # 这是 JNPF 官方的可插拔点,不是自研改造:
  #   redis 档 → jnpf-common-event 的 ProjectEventRedisSender + ProjectEventRedisMessageHandler
  #   mq   档 → jnpf-common-mq   的 ProjectEventMQSender + defMsgToptic/ssoEventReceiver
  # 两组 @Bean 的 @ConditionalOnProperty(prefix=event, name=event-publish-type) 完全对称,
  # 且**无 matchIfMissing**——本项必须显式设值,留空则两组都不注册、事件总线整个哑掉。
  #
  # 业务代码零改动:发布方一律走 PublishEventUtil.publish + ProjectEventSender 接口,
  # 消费方一律 @ProjectEventListener,与具体实现解耦。
  event-publish-type: redis
  # Redis 监听模式:current / all。
  # 🔴 **它不是隔离开关**(2026-08-10 字节码实查,反直觉,别照字面理解):
  #   all     → channel = "myevent_" + <事件channel>
  #   current → channel = "lock:" + "myevent_" + <事件channel>
  #     (前缀取自 RedisConst.getRedisLock4JPrefix(),是**硬编码常量 "lock:"**,
  #       不含实例/租户/应用标识)
  # 发送端 ProjectEventRedisSender.send 与订阅端 ProjectEventRedisMessageHandler 构造器
  # 用同一个值推导同一前缀,故两档都自洽;差别仅是 channel 名多不多 "lock:"。
  # 真正的隔离靠「每客户一个 Redis 实例」——连同一实例的多台开发机会互相收到事件
  # (Redis pub/sub 还是**跨 db 全局**的,分 database 也隔离不了)。
  redis-publish-type: current
 
# 将配置设置到系统属性中
conf2system:
  # sentinel日志目录
  csp.sentinel.log.dir: log/${spring.application.name}/sentinel
  # sentinel日志等级 LOGGING日志等级, ALL, INFO, WARNING, SEVERE, OFF
  csp.sentinel.log.level: "OFF"
  # (原 rocketmq.log.level 已随 RocketMQ 于 2026-08-10 移除,见补丁 #10)
 
# 在线表单、流程表单字段权限豁免。主表填写 vModel,子表填写 parentVModel-vModel。
# 配置全局生效;这里只跳过字段权限检查,其他表单校验和系统字段保护仍按原逻辑执行。
jnpf:
  visualdev:
    permission:
      exempt-fields:
        - biz_sign