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