O2OA使用手册
第1章 功能简介及概述
第6章 平台部署与配置
  • 6.1 安装部署-在Windows系统中部署O2OA开发平台
  • 6.2 安装部署-在Linux系统中部署O2OA开发平台
  • 6.3 安装部署-在宝塔/PHPStudy中部署O2OA开发平台
  • 6.4 安装部署-O2OA开发平台之HTTP端口规划
  • 6.5 安装部署-平台服务器版本升级操作说明
  • 6.6 安装部署-私有化部署服务器架构推荐
  • 6.7 安装部署-O2OA开发平台集群部署配置及操作说明
  • 6.8 安装部署-在线部署自定义应用的WAR包和JAR包
  • 6.9 服务器配置与管理-​O2OA主要配置文件说明
  • 6.10 服务器配置与管理-服务器端口冲突和端口修改
  • 6.11 服务器配置与管理-如何修改服务器内存占用率?
  • 6.12 服务器配置与管理-如何访问和操作H2内置数据库
  • 6.13 服务器配置与管理-​如何在O2OA中使用MySQL数据库?
  • 6.14 服务器配置与管理-如何修改平台支持的数据库驱动包
  • 6.15 服务器配置与管理-O2OA使用openGauss(华为高斯数据库)配置
  • 6.16 服务器配置与管理-O2OA开发平台平台数据库配置信息样例
  • 6.17 服务器配置与管理-配置O2OA服务器连接O2云
  • 6.18 服务器配置与管理-O2OA实现服务器随操作系统自动启动
  • 6.19 服务器配置与管理-文件存储服务器配置
  • 6.20 服务器配置与管理-工作日节假日配置
  • 6.21 服务器配置与管理-为平台增加全文检索功能
  • 6.22 服务器配置与管理-消息提醒配置说明
  • 6.23 服务器配置与管理-自定义消息提醒
  • 6.24 服务器配置与管理-定制消息通知的内容
  • 6.25 服务器配置与管理-消息通知过滤
  • 6.26 服务器配置与管理-为待办创建配置邮件通知
  • 6.27 服务器配置与管理-待办待阅数据的查询操作和管理
  • 6.28 服务器配置与管理-​自动执行平台数据的备份与恢复
  • 6.29 服务器配置与管理-数据导出导入与系统数据备份
  • 6.30 ​服务器配置与管理-定期自动执行数据备份与恢复
  • 6.31 系统安全-O2OA作为认证中心实现基于OAUTH2单点认证
  • 6.32 系统安全-O2OA基于Nginx的SSL跳转、转发配置
  • 6.33 系统安全-访问日志相关配置
  • 6.34 系统安全-审计日志相关配置
  • 6.35 系统安全-平台日志文件说明
  • 6.36 系统安全-O2OA日志输出设置log4j2.xml
  • 6.37 系统安全-用户密码初始化规则的设定
  • 6.38 系统安全-启用HTTPS(百度云版)
  • 6.39 系统安全-启用HTTPS(腾讯云版)
  • 6.40 系统安全-自签名SSL证书验证HTTPS功能
  • 6.41 系统安全-登录密码RSA加密
  • 6.42 系统安全-用户登录IP限制
  • 6.43 系统安全-在用户登录过程中启用图形验证码
  • 6.44 系统安全-平台部署之使用非root用户运行服务
  • 6.45 系统安全-O2Server启用国密加密设置
  • 6.46 系统安全-日志应用使用说明
  • 6.47 系统安全-用户重置密码操作
  • 6.48 系统安全-超级管理员(xadmin)密码修改
  • 6.49 系统安全-使用Web端运行服务器管理命令
  • 6.50 系统安全-o2server无法正常显示验证码解决办法
  • 6.51 O2OA(翱途)开发平台前端安全配置建议(一)
  • 第16章 开发知识及常见问题
  • 16.1 如何替换登录页面二维码中默认的logo图标
  • 16.2 O2OA(翱途)流程引擎中如何修改,定制流程的流转记录
  • 16.3 mysql数据库备份
  • 16.4 domain不正确的时候如何强制设置成正确的
  • 16.5 配置文件中使用密文存储密码
  • 16.6 常见问题-连接MySQL出现 Public Key Retrieval is not allowed 的错误
  • 16.7 常见问题-查看表结构
  • 16.8 常见问题-7.2及以上版本开启web代理后请求中没有正确使用web端口问题解决方式
  • 16.9 linux环境libreoffice安装及使用
  • 16.10 在O2OA中使用网络会议(二):Openmeetings与O2OA认证配置
  • 16.11 在O2OA中使用网络会议(一):Openmeetings-5.1.0亲手安装整理 Step-By-Step
  • 16.12 藕粉社区问答系列1
  • 16.13 藕粉社区问答系列2
  • 16.14 藕粉社区问答系列3
  • 16.15 快速入门-平台相关资料汇总
  • 16.16 快速入门-服务器总体介绍汇总
  • 16.17 快速入门-流程表单载入基础数据
  • 16.18 快速入门-常用表单脚本样例汇总
  • 16.19 快速入门-自定义表数据分页样例
  • 16.20 OEM白标-如何修改平台中的Logo图标和文字
  • 16.21 云服务器-阿里云ECS服务器的端口启用
  • 16.22 开发知识-React篇:在O2OA平台框架中使用React
  • 16.23 开发知识-React篇:在O2OA门户页面中使用React
  • 16.24 开发知识-Vue篇:在Vue应用中集成O2OA
  • 16.25 开发知识-Vue篇:使用Vue-CLI开发O2应用
  • 16.26 开发知识-Vue篇:在O2门户页面中使用Vue
  • 16.27 平台中使用Druid数据库连接及监控
  • 16.28 开发知识-在PAAS平台上部署O2OA开发平台
  • 16.29 开发知识-如何使用Tomcat架设webdav服务器
  • 16.30 开发知识-单个端口模式的Nginx和系统配置
  • 16.31 开发知识-Linux非root用户如何使用80端口启动O2OA
  • 16.32 开发知识-O2OA平台启用Eruda进行移动端调试
  • 16.33 开发知识-神通数据库安装
  • 16.34 开发知识-人大金仓数据安装
  • 16.35 开发知识-中标麒麟安装达梦数据库(DM8)
  • 16.36 开发知识-中标麒麟安装人大金仓详细步骤
  • 16.37 开发知识-使用VNC连接中标麒麟V7操作系统
  • 16.38 开发知识-鲲鹏(ARM)麒麟操作系统如何替换yum源?
  • 16.39 开发知识-数据优化知识点
  • 16.40 水印安全-附件水印|加密|文档格式转换图片|PDF
  • 16.41 消息队列-配置activeMQ、kafka消息队列
  • 16.42 常见问题-数据导出或者导入时发生OOM异常
  • 16.43 常见问题-如何让用户在首次登录时,必须对初始密码进行修改
  • 16.44 常见问题-如何在模块部署中控制模块的访问权限
  • 16.45 常见问题-如何在平台中开发Ftp文件上传文件的服务?
  • 16.46 常见问题-如何使用服务管理调用WebService
  • 16.47 常见问题-如何使用脚本调用外部服务
  • 16.48 常见问题-如何使用脚本控制流程自动流转
  • 16.49 常见问题-如何通过脚本调用系统内服务
  • 16.50 常见问题-接口代码疑惑解答汇总
  • 16.51 常见问题:Maven编译o2server错误: Java Heap Space
  • 16.52 常见问题-集群配置后启动报错:NullPointerException
  • 16.53 常见问题-服务器错误:can not decrypt token
  • 16.54 常见问题-IOS移动办公无法收到验证码
  • 16.55 常见问题-服务器和日志时间相差12小时的问题
  • 16.56 常见问题-为什么127.0.0.1可以访问但其他IP无法访问
  • 16.57 藕粉社区问答系列4
  • 16.58 开发知识-React篇:在React应用中集成O2OA

  • 服务器配置与管理-​O2OA主要配置文件说明

    时间:2022-10-11   

    系统配置文件分成两类:

    local目录下的配置文件

    配置样例文件位于localSample目录.

    node.cfg

    用于标识当前节点的名称.

    127.0.0.1


    config目录下的配置文件

    配置样例文件位于configSample目录,V5.3版本后配置文件可在web端编辑修改(管理员登录平台——系统设置——基础配置——平台配置).

    appStyle.json(app内容及样式配置)

    配置原生app移动端样式和内容,此业务内容可以在web端配置(管理员登录平台——系统设置——移动办公配置).


    {
    "indexType": "default",
    "indexPortal": "",
    "nativeAppList": [],
    "images": [],
    "###indexType": "首页展现类型,default是移动端原来的首页,portal是门户.###",
    "###indexPortal": "门户首页.###",
    "###nativeAppList": "导航设置###",
    "###images": "图片设置.###"
    }


    bindLogo.png(二维码中心标识图片)

    扫描二维码登录的二维码中心标识图片,长68px,宽68px.

    collect.json(o2云服务配置)

    o2云服务器配置,当使用移动办公、平台应用市场应用时需要配置,此业务内容可以在web端配置(管理员登录平台——系统设置——云服务配置).


    {
    "enable": false,
    "name": "",
    "password": "",
    "title": "",
    "footer": "",
    "appUrl": "",
    "server": "",
    "port": 20080.0,
    "sslEnable": false,
    "###enable": "是否启用连接到云平台###",
    "###name": "云平台账户名称,同时显示在登录页面底部.###",
    "###password": "云平台密码###",
    "###title": "系统标题,同时显示在登录页面上部.###",
    "###footer": "底部申明###",
    "###appUrl": "app下载地址###",
    "###server": "云平台服务器地址###",
    "###port": "云平台端口###",
    "###sslEnable": "云平台连接是否启用ssl###",
    "###secret": "推送消息secret###",
    "###key": "推送消息key###"
    }


    dingding.json(钉钉集成配置)

    钉钉配置,如需集成钉钉平台需要配置,主要用于用户组织登录、消息推送。


    {
      "enable": false,
      "corpId": "",
      "agentId": "",
      "appKey": "",
      "appSecret": "",
      "syncCron": "10 0/10 * * * ?",
      "forceSyncCron": "10 45 8,12 * * ?",
      "oapiAddress": "https://oapi.dingtalk.com",
      "workUrl": "",
      "messageRedirectPortal": "",
      "messageEnable": true,
      "###enable": "是否启用###",
      "###corpId": "钉钉corpId###",
      "###agentId": "agentId###",
      "###appKey": "应用的key,唯一标识###",
      "###appSecret": "应用的密钥###",
      "###syncCron": "组织同步cron,默认每10分钟同步一次.###",
      "###forceSyncCron": "强制拉入同步cron,默认在每天的8点和12点强制进行同步.###",
      "###oapiAddress": "oapi服务器地址###",
      "###workUrl": "钉钉消息打开工作的url地址###",
      "###messageRedirectPortal": "钉钉消息处理完成后跳转到特定的门户页面的Id###",
      "###messageEnable": "是否启用消息推送###"
    }


    dumpRestoreData.json(数据导出配置)

    数据库数据和文件导出设置.


    {
    "enable": false,
    "includes": [],
    "excludes": [],
    "batchSize": 2000.0,
    "###enable": "是否启用.###",
    "###includes": "导出导入包含对象,可以使用通配符*.###",
    "###excludes": "导出导入排除对象,可以使用通配符*.###",
    "###batchSize": "批量对象数量.###"
    }


    logLevel.json(系统日志配置)

    日志设置,默认打印的是warn级别的日志,其中audit配置是否开启审计日志,所有日志存储在o2server/logs目录下.


    {
    "x_program_center": "",
    "x_processplatform_service_processing": "",
    "x_processplatform_assemble_surface": "",
    "x_processplatform_assemble_designer": "",
    "x_query_assemble_designer": "",
    "x_query_assemble_surface": "",
    "x_query_service_processing": "",
    "x_meeting_assemble_control": "",
    "x_organization_assemble_authentication": "",
    "x_organization_assemble_control": "",
    "x_general_assemble_control": "",
    "x_file_assemble_control": "",
    "x_attendance_assemble_control": "",
    "x_collaboration_core_message": "",
    "x_organization_core_express": "",
    "x_query_core_express": "",
    "x_bbs_assemble_control": "",
    "x_calendar_assemble_control": "",
    "x_cms_assemble_control": "",
    "x_component_assemble_control": "",
    "x_hotpic_assemble_control": "",
    "x_message_assemble_communicate": "",
    "x_mind_assemble_control": "",
    "x_okr_assemble_control": "",
    "x_organization_assemble_express": "",
    "x_organization_assemble_personal": "",
    "x_portal_assemble_designer": "",
    "x_portal_assemble_surface": "",
    "x_processplatform_assemble_bam": "",
    "audit": {
    "###enable": "是否启用审计日志###",
    "###logSize": "审计日志保留天数###"
    },
    "###x_program_center": "是否启用调试###",
    "###x_processplatform_service_processing": "是否启用调试###",
    "###x_processplatform_assemble_surface": "是否启用调试###",
    "###x_processplatform_assemble_designer": "是否启用调试###",
    "###x_query_assemble_designer": "是否启用调试###",
    "###x_query_assemble_surface": "是否启用调试###",
    "###x_query_service_processing": "是否启用调试###",
    "###x_meeting_assemble_control": "是否启用调试###",
    "###x_organization_assemble_authentication": "是否启用调试###",
    "###x_organization_assemble_control": "是否启用调试###",
    "###x_general_assemble_control": "是否启用调试###",
    "###x_file_assemble_control": "是否启用调试###",
    "###x_attendance_assemble_control": "是否启用调试###",
    "###x_collaboration_core_message": "是否启用调试###",
    "###x_organization_core_express": "是否启用调试###",
    "###x_query_core_express": "是否启用调试###",
    "###x_bbs_assemble_control": "是否启用调试###",
    "###x_calendar_assemble_control": "是否启用调试###",
    "###x_cms_assemble_control": "是否启用调试###",
    "###x_component_assemble_control": "是否启用调试###",
    "###x_hotpic_assemble_control": "是否启用调试###",
    "###x_message_assemble_communicate": "是否启用调试###",
    "###x_mind_assemble_control": "是否启用调试###",
    "###x_okr_assemble_control": "是否启用调试###",
    "###x_organization_assemble_express": "是否启用调试###",
    "###x_organization_assemble_personal": "是否启用调试###",
    "###x_portal_assemble_designer": "是否启用调试###",
    "###x_portal_assemble_surface": "是否启用调试###",
    "###x_processplatform_assemble_bam": "是否启用调试###",
    "###audit": "审计日志配置###"
    }


    jpushConfig.json(app消息推送配置)

    app端消息推送配置,使用极光推送.


    {
      "enable": false,
      "appKey": "9aca7cc20fe0cc987cd913ca",
      "masterSecret": "96ee7e2e0daffd51bac57815",
      "###enable": "是否启用.###",
      "###appKey": "极光推送应用的AppKey###",
      "###masterSecret": "极光推送应用的Master Secret###"
    }


    meeting.json(会议管理配置)

    会议管理以及openMeeting连接设置.


    {
    "enable": false,
    "oauth2Id": "5",
    "port": 5080.0,
    "host": "127.0.0.1",
    "user": "xadmin",
    "pass": "",
    "anonymousAccessAttachment": false,
    "###enable": "是否启用###",
    "###oauth2Id": "openMeeting单点序号###",
    "###port": "openMeeting端口###",
    "###host": "openMeeting服务器###",
    "###user": "openMeeting管理员账户###",
    "###pass": "openMeeting管理员密码###",
    "###httpProtocol": "openMeeting协议###",
    "###anonymousAccessAttachment": "匿名用户是否可以访问附件###"
    }

    messages.json(平台消息配置)

    平台消息配置,包括自定义消费者队列消息、推送到钉钉微信消息、与web端websocket交互消息、第三方mq中间件(kafka、activemq)消息,具体配置见平台消息提醒配置说明

    consumersV2与consumers的区别。consumersV2在方法消息执行前多执行messageSendRule.js中的方法。例如"ws": "excute"就是在给ws发消息之前执行excute方法,excute返回true则发送消息,返回false不发送消息

    {
      "##sample##": {
        "consumers": [],
        "consumersV2": {
          "qiyeweixin": "excute",
          "describe": "excute表示脚本messageSendRule.js中的方法名称,该js文件需放在与messages.json同目录下,更改脚本需重启服务"
        }
      },
      "attachment_editor": {
        "consumers": [],
        "consumersV2": {
          "mq": "",
          "pms": "",
          "zhengwuDingding": "",
          "qiyeweixin": "",
          "welink": "",
          "ws": "",
          "dingding": ""
        }
      },
      "attachment_editorCancel": {
        "consumers": [],
        "consumersV2": {
          "mq": "",
          "pms": "",
          "zhengwuDingding": "",
          "qiyeweixin": "",
          "welink": "",
          "ws": "",
          "dingding": ""
        }
      },
      "attachment_editorModify": {
        "consumers": [],
        "consumersV2": {
          "mq": "",
          "pms": "",
          "zhengwuDingding": "",
          "qiyeweixin": "",
          "welink": "",
          "ws": "",
          "dingding": ""
        }
      },
      "attachment_share": {
        "consumers": [],
        "consumersV2": {
          "mq": "",
          "pms": "",
          "zhengwuDingding": "",
          "qiyeweixin": "",
          "welink": "",
          "ws": "",
          "dingding": ""
        }
      },
      "attachment_shareCancel": {
        "consumers": [],
        "consumersV2": {
          "mq": "",
          "pms": "",
          "zhengwuDingding": "",
          "qiyeweixin": "",
          "welink": "",
          "ws": "",
          "dingding": ""
        }
      },
      "bbs_replyCreate": {
        "consumers": [],
        "consumersV2": {
          "pms": "",
          "ws": ""
        }
      },
      "bbs_subjectCreate": {
        "consumers": [],
        "consumersV2": {
          "pms": "",
          "ws": ""
        }
      },
      "calendar_alarm": {
        "consumers": [],
        "consumersV2": {
          "pms": "",
          "zhengwuDingding": "",
          "qiyeweixin": "",
          "welink": "",
          "ws": "",
          "dingding": ""
        }
      },
      "im_create": {
        "consumers": [],
        "consumersV2": {
          "ws": ""
        }
      },
      "meeting_delete": {
        "consumers": [],
        "consumersV2": {
          "mq": "",
          "pms": "",
          "zhengwuDingding": "",
          "qiyeweixin": "",
          "welink": "",
          "ws": "",
          "dingding": ""
        }
      },
      "meeting_invite": {
        "consumers": [],
        "consumersV2": {
          "mq": "",
          "pms": "",
          "zhengwuDingding": "",
          "qiyeweixin": "",
          "welink": "",
          "ws": "",
          "dingding": ""
        }
      },
      "mind_fileSend": {
        "consumers": [],
        "consumersV2": {
          "pms": "",
          "ws": ""
        }
      },
      "mind_fileShare": {
        "consumers": [],
        "consumersV2": {
          "pms": "",
          "ws": ""
        }
      },
      "readCompleted_create": {
        "consumers": [],
        "consumersV2": {}
      },
      "readCompleted_delete": {
        "consumers": [],
        "consumersV2": {}
      },
      "read_create": {
        "consumers": [],
        "consumersV2": {
          "mq": "",
          "pms": "",
          "zhengwuDingding": "",
          "qiyeweixin": "",
          "welink": "",
          "ws": "",
          "dingding": ""
        }
      },
      "read_delete": {
        "consumers": [],
        "consumersV2": {}
      },
      "taskCompleted_create": {
        "consumers": [],
        "consumersV2": {}
      },
      "taskCompleted_delete": {
        "consumers": [],
        "consumersV2": {}
      },
      "task_create": {
        "consumers": [],
        "consumersV2": {
          "mq": "",
          "pms": "",
          "zhengwuDingding": "",
          "qiyeweixin": "",
          "welink": "",
          "ws": "",
          "dingding": ""
        }
      },
      "task_delete": {
        "consumers": [],
        "consumersV2": {}
      },
      "task_press": {
        "consumers": [],
        "consumersV2": {
          "mq": "",
          "pms": "",
          "zhengwuDingding": "",
          "qiyeweixin": "",
          "welink": "",
          "ws": "",
          "dingding": ""
        }
      }
    }

    mq.json(平台消息集成kafka)

    第三方消息中间件配置,平台支持消息推送到kafka或activemq,如需启用需在message.json中做相应的消费者配置,配置名称为"mq"的consumer.


    {
      "enable": false,
      "mq":"kafka",
      "kafka":{
    	  "bootstrap_servers": "localhost:9092",
    	  "topic":"topic-test",
    	  "acks": "all",
    	  "retries": 0,
    	  "batch_size": 16384,
    	  "linger_ms": 1,
    	  "buffer_memory": 33554432,
    	  "key_deserializer": "org.apache.kafka.common.serialization.StringDeserializer",
    	  "value_deserializer": "org.apache.kafka.common.serialization.StringDeserializer",
    	  "###bootstrap_servers": "服务器地址###",
    	  "###acks": "指定必须有多少个分区副本接收消息,生产者才认为消息写入成功,用户检测数据丢失的可能性###",
    	  "###retries": "生产者从服务器收到的错误有可能是临时性的错误的次数###",
    	  "###batch_size": "该参数指定了一个批次可以使用的内存大小,按照字节数计算(而不是消息个数)。###",
    	  "###linger_ms": "该参数指定了生产者在发送批次之前等待更多消息加入批次的时间,增加延迟,提高吞吐量###",
    	  "###buffer_memory": "该参数用来设置生产者内存缓冲区的大小,生产者用它缓冲要发送到服务器的消息###",
    	  "###key_deserializer": "key值的序列化类###",
    	  "###value_deserializer": "value的序列化类###"
      },
      "activeMQ":{
    	   "url":"tcp://127.0.0.1:61616",
    	   "queueName":"queue-test",
    	   "###url": "服务地址,端口默认61616.###",
    	   "###queueName": "要创建的消息名称###"
      },
      "###enable": "是否启用.###",
      "###mq": "消息服务类型.###"
    }

    node_127.0.0.1.json

    节点配置,包含中心服务、应用服务、web服务、h2数据库、ftp附件存储配置,此配置为平台核心配置文件.


    {
      "enable": true,
      "isPrimaryCenter": true,
      "center": {
        "enable": true,
        "order": 0.0,
        "sslEnable": false,
        "redeploy": true,
        "port": 20030.0,
        "httpProtocol": "",
        "proxyHost": "",
        "proxyPort": 20030.0,
        "scanInterval": 0.0,
        "configApiEnable": true,
        "statEnable": true,
        "statExclusions": "*.js,*.gif,*.jpg,*.png,*.css,*.ico",
        "maxFormContent": 20.0,
        "exposeJest": true,
        "persistentConnectionsEnable": true,
        "###enable": "是否启用###",
        "###order": "center节点顺序,顺序排列0,1,2...###",
        "###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
        "###redeploy": "每次启动是否重新部署所有应用.###",
        "###port": "端口,center服务器端口,默认20030###",
        "###httpProtocol": "对外http访问协议,http/https###",
        "###proxyHost": "代理主机,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问地址.###",
        "###proxyPort": "代理端口,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问端口.###",
        "###scanInterval": "重新扫描war包时间间隔(秒)###",
        "###config": "其他参数###",
        "###configApiEnable": "允许通过Api修改config###",
        "###statEnable": "启用统计,默认启用统计.###",
        "###statExclusions": "统计忽略路径,默认忽略*.js,*.gif,*.jpg,*.png,*.css,*.ico###",
        "###maxFormContent": "最大提交数据限制(M),限制有所上传的内容大小,包括附件.###",
        "###exposeJest": "暴露jest接口.###",
        "###persistentConnectionsEnable": "是否启用长连接,默认false.###"
      },
      "application": {
        "enable": true,
        "port": 20020.0,
        "sslEnable": false,
        "proxyHost": "",
        "proxyPort": 20020.0,
        "redeploy": true,
        "scanInterval": 0.0,
        "includes": [],
        "excludes": [],
        "weights": [],
        "scheduleWeights": [],
        "statEnable": true,
        "statExclusions": "*.js,*.gif,*.jpg,*.png,*.css,*.ico",
        "maxFormContent": 20.0,
        "exposeJest": true,
        "persistentConnectionsEnable": true,
        "###enable": "是否启用###",
        "###port": "http/https端口,负责向前端提供数据访问接口.默认为20020端口.###",
        "###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
        "###proxyHost": "代理主机,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问地址.###",
        "###proxyPort": "代理端口,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问端口.###",
        "###redeploy": "每次启动是否重载全部应用.###",
        "###scanInterval": "应用reload扫描间隔,u003c0 表示不会reload应用,扫描到应用文件发生了变化.###",
        "###includes": "承载的应用,在集群环境下可以选择仅承载部分应用以降低服务器负载,可以使用*作为通配符.###",
        "###excludes": "选择不承载的应用,和includes的值配合使用可以选择或者排除承载的应用,可以使用*作为通配符.###",
        "###weights": "设置应用的Web访问权重,在集群环境中,一个应用可以部署多个实例提供负载均衡.通过合计占比来分配应用占比.###",
        "###scheduleWeights": "设置应用的定时任务权重,在集群环境中,一个应用可以部署多个实例提供负载均衡.通过合计占比来分配应用占比.###",
        "###statEnable": "启用统计,默认启用统计.###",
        "###statExclusions": "统计忽略路径,默认忽略*.js,*.gif,*.jpg,*.png,*.css,*.ico###",
        "###maxFormContent": "最大提交数据限制(M),限制有所上传的内容大小,包括附件.###",
        "###exposeJest": "暴露jest接口.###",
        "###persistentConnectionsEnable": "是否启用长连接,默认true.###"
      },
      "web": {
        "enable": true,
        "sslEnable": false,
        "proxyHost": "",
        "weight": 100.0,
        "dirAllowed": false,
        "statEnable": false,
        "statExclusions": "*.gif,*.jpg,*.png,*.ico",
        "cacheControlMaxAge": 0.0,
        "persistentConnectionsEnable": true,
        "###enable": "是否启用###",
        "###port": "http/https端口,用户输入网址后实际访问的第一个端口.http协议默认为80端口,https默认为443端口.###",
        "###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
        "###proxyHost": "代理主机,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问地址.###",
        "###proxyPort": "代理端口,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问端口.###",
        "###weight": "设置权重.当前没有作用,###",
        "###dirAllowed": "允许浏览目录,###",
        "###statEnable": "启用统计,默认启用统计.###",
        "###statExclusions": "统计忽略路径,默认忽略*.gif,*.jpg,*.png,*.ico###",
        "###cacheControlMaxAge": "服务器max-age缓存时间(秒)###",
        "###proxyCenterEnable": "是否启用center服务器代理.###",
        "###proxyApplicationEnable": "是否启用application服务器代理###",
        "###persistentConnectionsEnable": "是否启用长连接,默认true.###"
      },
      "data": {
        "enable": true,
        "tcpPort": 20050.0,
        "webPort": 20051.0,
        "includes": [],
        "excludes": [],
        "jmxEnable": false,
        "cacheSize": 512.0,
        "logLevel": "WARN",
        "maxTotal": 50.0,
        "maxIdle": 0.0,
        "statEnable": true,
        "statFilter": "mergeStat",
        "slowSqlMillis": 2000.0,
        "lockTimeout": 120000.0,
        "###enable": "是否启用,如果没有可用的externalDataSources.json文件,那么默认会在节点中启用本地的H2数据库作为默认的数据库.###",
        "###tcpPort": "H2数据库jdbc连接端口,登录的用户名:sa,密码为xadmin的密码.数据库创建在/o2server/local/repository/data/X.mv.db,一旦数据库文件被创建,那么该数据库的密码被创建.###",
        "###webPort": "H2数据库web端口,H2提供一个web端的client,此端口为web端client的访问端口.用户名sa,密码为xadmin数据库初始创建的密码.###",
        "###includes": "设置此数据库存储的类,默认情况下存储所有类型,如果需要对每个类进行单独的控制以达到高性能,可以将不同的类存储到不同的节点上提高性能.可以使用通配符*###",
        "###excludes": "在此节点上不存储的类,和includes一起设置实际存储的类,可以使用通配符*###",
        "###jmxEnable": "是否启动jmx,如果启用,可以通过本地的jmx客户端进行访问,不支持远程jmx客户端.###",
        "###cacheSize": "H2数据库缓存大小,设置H2用于作为缓存的内存大小,以M作为单位,这里默认为512M.###",
        "###logLevel": "默认日志级别,FATAL, ERROR, WARN, INFO, TRACE. 完整的配置为DefaultLevelu003dWARN, Toolu003dTRACE, Enhanceu003dTRACE, METADATAu003dTRACE, Runtimeu003dTRACE, Queryu003dTRACE, DataCacheu003dTRACE, JDBCu003dTRACE, SQLu003dTRACE###",
        "###maxTotal": "最大使用连接数###",
        "###maxIdle": "最大空闲连接数###",
        "###statEnable": "启用统计,默认启用###",
        "###statFilter": "统计方式配置,默认mergeStat###",
        "###slowSqlMillis": "执行缓慢sql毫秒数,默认2000毫秒,执行缓慢的sql将被单独记录.###",
        "###lockTimeout": "默认锁超时时间()毫秒).###"
      },
      "storage": {
        "enable": true,
        "port": 20040.0,
        "sslEnable": false,
        "name": "251",
        "accounts": [],
        "prefix": "",
        "deepPath": false,
        "###enable": "是否启用,对于二进制流文件,比如附件,图片等存储在单独的文件服务器中,可以支持多种文件服务器,默认情况下使用ftp服务器作为文件服务器,每个节点可以启动一个文件服务器以提供高性能.###",
        "###port": "ftp服务器端口,此端口可以不对外开放,仅有ApplicationServer进行访问,并不直接对用户提供服务.###",
        "###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
        "###name": "名称,多个节点中不能重名,默认为251.###",
        "###accounts": "二进制流文件是分多个账号分段存储的,可以单独设置每个分类的存储配置,一般不需要设置.###",
        "###passivePorts": "ftp传输有主动和被动之分,如果使用了被动传输,设置被动端口范围,默认为29000-30000.###",
        "###prefix": "路径前缀.###",
        "###deepPath": "使用更深的路径###"
      },
      "logLevel": "warn",
      "dumpData": {
        "enable": false,
        "cron": "",
        "size": 7.0,
        "path": "",
        "###enable": "是否启用,默认禁用.###",
        "###cron": "定时任务cron表达式,默认每天凌晨2点进行备份.###",
        "###size": "最大保留份数,超过将自动删除最久的数据.###",
        "###path": "备份路径###"
      },
      "restoreData": {
        "enable": false,
        "cron": "",
        "path": "",
        "###enable": "是否启用.###",
        "###cron": "定时任务cron表达式###",
        "###path": "恢复路径###"
      },
      "nodeAgentEnable": true,
      "nodeAgentPort": 20010.0,
      "nodeAgentEncrypt": true,
      "quickStartWebApp": false,
      "autoStart": true,
      "###enable": "是否启用###",
      "###isPrimaryCenter": "是否是center节点,仅允许存在一个center节点###",
      "###center": "Center服务器配置###",
      "###application": "Application服务器配置###",
      "###web": "Web服务器配置###",
      "###data": "Data服务器配置###",
      "###storage": "Storage服务器配置###",
      "###logLevel": "日志级别,默认当前节点的slf4j日志级别,通过系统变量"org.slf4j.simpleLogger.defaultLogLevel"设置到当前jvm中.###",
      "###dumpData": "定时数据导出配置###",
      "###restoreData": "定时数据导入配置###",
      "###logSize": "日志文件保留天数.###",
      "###auditLogSize": "审计日志文件保留天数.###",
      "###nodeAgentEnable": "是否启用节点代理###",
      "###nodeAgentPort": "是否启用节点端口###",
      "###nodeAgentEncrypt": "是否启用节点代理加密###",
      "###quickStartWebApp": "是否使用快速应用部署###",
      "###banner": "服务器控制台启动标识###",
      "###autoStart": "是否自动启动###",
      "###eraseContentEnable": "是否允许使用擦除数据功能###"
    }


    person.json(平台用户关联功能配置)

    平台用户相关功能配置,如密码规则、登录模式、个性化登录页等,此业务内容部分可以在web端配置(管理员登录平台——系统设置——基础配置——系统用户配置、系统登录配置)


    {
      "MAX_PASSWORDPERIOD": 3650.0,
      "captchaLogin": true,
      "codeLogin": true,
      "bindLogin": true,
      "faceLogin": true,
      "password": "(var v u003d person.getMobile();u000a return v.substring(v.length - 6))",
      "passwordPeriod": 0.0,
      "passwordRegex": "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,}$",
      "passwordRegexHint": "6位以上,包含数字和字母.",
      "register": "disable",
      "superPermission": true,
      "tokenCookieHttpOnly": false,
      "personUnitOrderByAsc": true,
      "###captchaLogin": "是否启用验证码登录,默认值:true###",
      "###codeLogin": "是否启用验证码登录,默认值:true###",
      "###bindLogin": "是否启用扫描二维码登录,默认值:false###",
      "###faceLogin": "是否启用刷脸登录,默认值:false###",
      "###password": "注册初始密码,使用()调用脚本生成初始密码,默认为:(var v u003d person.getMobile();u000a return v.substring(v.length - 6))###",
      "###passwordPeriod": "密码过期时间(天),0表示不过期,默认值:0.###",
      "###passwordRegex": "密码校验正则表达式,默认6位以上,包含数字和字母.###",
      "###passwordRegexHint": "密码校验不通过的提示信息.###",
      "###register": "是否允许用户自注册,disable:不允许,captcha通过验证码注册,code:通过短信注册,默认值:disable###",
      "###superPermission": "是否启用超级管理员权限,默认值:true###",
      "###mobileRegex": "手机号码校验正则表达式,()表示脚本内容,默认值:(^(+)?0{0,2}852d{8}$)|(^(+)?0{0,2}853d{8}$)|(^(+)?0{0,2}886d{9}$)|(^1(3|4|5|7|8|9)d{9}$)###",
      "###loginPage": "定制登录页面设置.###",
      "loginPage": {
        "enable": false,
        "portal": "",
        "page": "",
        "###enable": "是否启用定制登录页面.###",
        "###portal": "指定登录页面所属的portal,可以用id,name,alias.###",
        "###page": "指定的登录页面,可以使用name,alias,id###"
      },
      "###failureInterval": "登录限制时间(分钟)###",
      "###failureCount": "尝试登录次数###",
      "###tokenExpiredMinutes": "token时长,分钟###",
      "###tokenCookieHttpOnly": "保存token的cookie是否启用httpOnly###",
      "###personUnitOrderByAsc": "人员组织排序是否为升序,true为升序(默认),false为降序###"
    }


    portal.json(系统访问页面配置)

    系统访问页面配置,个性化登录页(此配置与person.json重复,如此配置启用则为优先配置)、个性化首页配置.


    {
      "indexPage": {
        "enable": false,
        "portal": "",
        "page": "",
        "###enable": "是否启用定制的首页面.###",
        "###portal": "指定首页面所属的portal,可以用id,name,alias.###",
        "###page": "指定的首页面,可以使用name,alias,id###"
      },
      "loginPage": {
        "enable": false,
        "portal": "",
        "page": "",
        "###enable": "是否启用定制登录页面.###",
        "###portal": "指定登录页面所属的portal,可以用id,name,alias.###",
        "###page": "指定的登录页面,可以使用name,alias,id###"
      },
      "###urlMapping": "url转换配置.###",
      "###indexPage": "定制首页面设置.###",
      "###loginPage": "定制登录页面设置.###"
    }


    processPlatform.json(流程平台配置)

    流程平台配置


    {
      "maintenanceIdentity": "",
      "formVersionCount": 30.0,
      "processVersionCount": 30.0,
      "scriptVersionCount": 30.0,
      "docToWordType": "local",
      "docToWordDefaultFileName": "正文.docx",
      "docToWordDefaultSite": "$doc",
      "executorCount": 32.0,
      "updateDataProjectionEnable": false,
      "urge": {
        "enable": false,
        "cron": "30 0/10 8-18 * * ?",
        "###enable": "是否启用###",
        "###cron": "定时cron表达式.###"
      },
      "expire": {
        "enable": true,
        "cron": "45 0/15 8-18 * * ?",
        "###enable": "是否启用###",
        "###cron": "定时cron表达式###"
      },
      "touchDelay": {
        "enable": true,
        "cron": "5 0/5 * * * ?",
        "###enable": "是否启用###",
        "###cron": "定时cron表达式###"
      },
      "merge": {
        "enable": false,
        "cron": "30 30 6 * * ?",
        "thresholdDays": 730.0,
        "batchSize": 100.0,
        "###enable": "是否启用###",
        "###cron": "定时cron表达式###",
        "###thresholdDays": "期限,已完成工作结束间隔指定时间进行merge,默认两年后进行merge###",
        "###batchSize": "批量大小.###"
      },
      "deleteDraft": {
        "enable": false,
        "cron": "0 0 20 * * ?",
        "thresholdMinutes": 86400.0,
        "###enable": "是否启用###",
        "###cron": "定时cron表达式###",
        "###thresholdMinutes": "设定阈值,如果超过这个时间认为是可以删除的草稿,默认为10天.###"
      },
      "passExpired": {
        "enable": true,
        "cron": "5 5 8-18 * * ?",
        "###enable": "是否启用###",
        "###cron": "定时cron表达式###"
      },
      "touchDetained": {
        "enable": true,
        "cron": "30 30 12 * * ?",
        "thresholdMinutes": 1440.0,
        "###enable": "是否启用###",
        "###cron": "定时cron表达式###",
        "###thresholdMinutes": "当工作滞留设定时间后,将尝试触发工作流转,可以自动处理由于人员变动的引起的工作滞留,默认24*60分钟.###"
      },
      "processingSignalPersistEnable": false,
      "attachmentConfig": {
        "fileSize": 0.0,
        "fileTypeIncludes": [],
        "fileTypeExcludes": [],
        "###fileSize": "附件大小限制(单位M,默认不限制).###",
        "###fileTypeIncludes": "只允许上传的文件后缀###",
        "###fileTypeExcludes": "不允许上传的文件后缀###"
      },
      "###maintenanceIdentity": "维护身份,当工作发生意外错误,无法找到对应的处理人情况下,先尝试将工作分配给创建身份,如果创建身份也不可获取,那么分配给指定人员,默认情况下这个值为空.###",
      "###formVersionCount": "表单历史版本保留数量,0为不保留.###",
      "###processVersionCount": "流程历史版本保留数量,0为不保留.###",
      "###scriptVersionCount": "脚本历史版本保留数量,0为不保留.###",
      "###docToWordType": "HTML版式公文转换成Word文件方式,local,cloud.###",
      "###docToWordDefaultFileName": "HTML版式公文转换成Word文件缺省文件名.###",
      "###docToWordDefaultSite": "HTML版式公文转换成Word文件缺省site.###",
      "###executorCount": "执行器数量###",
      "###updateDataProjectionEnable": "更新data数据是否执行映射.###",
      "###urge": "催办任务设置,发现即将过期时发送提醒消息.###",
      "###expire": "将已经过了截至时间的待办标记过期.###",
      "###touchDelay": "延时任务设置,定时触发延时任务,当超过延时时间后继续流转.###",
      "###merge": "合并任务设置,定时触发合并任务,将已完成工作的Data从Item表中提取合并到WorkCompleted的Data字段中,默认工作完成后2年开始进行合并.###",
      "###deleteDraft": "清除草稿状态的工作.###",
      "###passExpired": "超时工作路由设置.###",
      "###touchDetained": "触发长时间未处理的工作.###",
      "###logLongDetained": "记录长期滞留工作,待办,待阅设置.###",
      "logLongDetained": {
        "enable": true,
        "cron": "0 0 4 * * ?",
        "taskThresholdMinutes": 14400.0,
        "readThresholdMinutes": 14400.0,
        "workThresholdMinutes": 14400.0,
        "###enable": "是否启用###",
        "###cron": "定时cron表达式###",
        "###taskThresholdMinutes": "设定待办滞留阈值,.###",
        "###readThresholdMinutes": "设定待阅滞留阈值,.###",
        "###workThresholdMinutes": "设定工作滞留阈值,.###"
      },
      "###press": "提醒设置,设置提醒间隔.###",
      "press": {
        "intervalMinutes": 10.0,
        "count": 3.0,
        "###intervalMinutes": "提醒间隔(分钟)###",
        "###count": "提醒数量限制.###"
      },
      "###extensionEvents": "事件扩充.###",
      "###processingSignalPersistEnable": "是否保存工作处理信号内容,默认false.###",
      "###attachmentConfig": "流程附件上传限制大小或者类型.###"
    }


    qiyeweixin.json(企业微信接入配置)

    企业微信接入配置.


    {
      "enable": false,
      "syncCron": "10 0/10 * * * ?",
      "forceSyncCron": "10 45 8,12 * * ?",
      "apiAddress": "https://qyapi.weixin.qq.com",
      "corpId": "",
      "syncSecret": "",
      "corpSecret": "",
      "agentId": "",
      "token": "",
      "encodingAesKey": "",
      "workUrl": "",
      "messageRedirectPortal": "",
      "messageEnable": true,
      "###enable": "是否启用.###",
      "###syncCron": "拉入同步cron,默认每10分钟同步一次.###",
      "###forceSyncCron": "强制拉入同步cron,默认在每天的8点和12点强制进行同步.###",
      "###apiAddress": "api服务器地址###",
      "###corpId": "企业微信corpId###",
      "###syncSecret": "企业微信同步通讯录Secret###",
      "###corpSecret": "企业微信corpSecret###",
      "###agentId": "企业微信agentId###",
      "###token": "回调token###",
      "###encodingAesKey": "回调encodingAesKey###",
      "###workUrl": "企业微信消息打开工作的url地址###",
      "###messageRedirectPortal": "企业微信消息处理完成后跳转到特定的门户页面的Id###",
      "###messageEnable": "推送消息到企业微信###"
    }


    query.json(平台统一搜索爬虫配置)

    平台统一搜索爬虫配置,如不需使用平台统一搜索功能建议关闭爬虫业务(因为涉及到附件的爬虫会耗些内存)


    {
    "crawlWorkCompleted": {
    "enable": true,
    "cron": "50 50 21 * * ?",
    "count": 5000.0,
    "###enable": "是否启用###",
    "###cron": "定时cron表达式.###",
    "###count": "每次处理的数量,默认为5000,同时每次将重爬最旧的10%以提高数据质量.###"
    },
    "crawlWork": {
    "enable": true,
    "cron": "45 45 * * * ?",
    "count": 1000.0,
    "###enable": "是否启用###",
    "###cron": "定时cron表达式.###",
    "###count": "每次处理的数量,默认为1000,同时每次将重爬最旧的25%以提高数据质量.###"
    },
    "crawlCms": {
    "enable": true,
    "cron": "55 55 8/2 * * ?",
    "count": 1000.0,
    "###enable": "是否启用###",
    "###cron": "定时cron表达式.###",
    "###count": "每次处理的数量,默认为1000,同时每次将重爬最旧的10%以提高数据质量.###"
    },
    "extractOffice": true,
    "extractPdf": true,
    "extractText": true,
    "extractImage": false,
    "tessLanguage": "chi_sim",
    "###crawlWorkCompleted": "已完成工作收集器设置.###",
    "###crawlWork": "工作收集器设置.###",
    "###crawlCms": "内容管理收集器设置.###",
    "###extractOffice": "抽取office中的文本.###",
    "###extractPdf": "抽取pdf中的文本.###",
    "###extractText": "抽取文本中的文本.###",
    "###extractImage": "抽取图像中的文本.###",
    "###tessLanguage": "tess使用语言.###"
    }


    startImage.png(服务器启动时显示的logo图标)

    服务器启动时显示的logo图标,通过ASCII码展现,图片要求背景透明,长40px,宽20px.

    token.json(平台认证配置)

    认证相关配置.


    {
    "key": "",
    "password": "",
    "sslKeyStorePassword": "12345678",
    "sslKeyManagerPassword": "12345678",
    "initialManager": "xadmin",
    "initialManagerDistinguishedName": "xadmin@o2oa@P",
    "ssos": [
    {
    "enable": false,
    "client": "",
    "key": "",
    "###enable": "是否启用###",
    "###client": "名称###",
    "###key": "密钥###"
    }
    ],
    "oauths": [
    {
    "enable": false,
    "clientId": "",
    "mapping": {},
    "###enable": "是否启用###",
    "###clientId": "客户端名称###",
    "###mapping": "返回值###"
    }
    ],
    "oauthClients": [
    {
    "enable": false,
    "name": "",
    "displayName": "",
    "icon": "",
    "clientId": "",
    "clientSecret": "",
    "authAddress": "",
    "authParameter": "client_idu003d{$client_id}u0026redirect_uriu003d{$redirect_uri}",
    "authMethod": "GET",
    "tokenAddress": "",
    "tokenParameter": "client_idu003d{$client_id}u0026client_secretu003d{$client_secret}u0026redirect_uriu003d{$redirect_uri}u0026grant_typeu003dauthorization_codeu0026codeu003d{$code}",
    "tokenMethod": "POST",
    "tokenType": "json",
    "infoAddress": "",
    "infoParameter": "access_tokenu003d{$access_token}",
    "infoMethod": "GET",
    "infoType": "json",
    "infoCredentialField": "openId",
    "infoScriptText": "",
    "bindingEnable": false,
    "bindingField": "",
    "###enable": "是否启用.###",
    "###name": "名称.###",
    "###displayName": "显示名称.###",
    "###icon": "图标.###",
    "###clientId": "用户oauth2认证的client_id.###",
    "###clientSecret": "用户oauth2认证的client_secret.###",
    "###authAddress": "认证后的跳转地址.###",
    "###authParameter": "请求密钥方法参数.###",
    "###authMethod": "请求密钥方法.一般为GET###",
    "###tokenAddress": "请求令牌网址.###",
    "###tokenParameter": "请求令牌方法参数.###",
    "###tokenMethod": "请求令牌方法.一般为POST###",
    "###tokenType": "token信息格式.json格式或者form格式###",
    "###infoAddress": "请求信息网址.###",
    "###infoParameter": "请求信息方法参数.###",
    "###infoMethod": "请求信息方法.一般为GET###",
    "###infoType": "info信息格式.json格式或者form格式或者script格式###",
    "###infoCredentialField": "info信息中用于标识个人的字段.###",
    "###infoScriptText": "info信息中用于标识个人的字段.###",
    "###bindingEnable": "是否允许绑定到用户,如果允许,用户可以自行绑定.###",
    "###bindingField": "绑定字段,对端的用户标识,一般为openId绑定到个人字段,可选值为open1Id,open2Id,open3Id,open4Id,open5Id###"
    }
    ],
    "###key": "加密用口令的密钥,修改后会导致用户口令验证失败.###",
    "###password": "初始管理员密码,用于内部数据库和FTP文件服务器,以及http的token加密.###",
    "###sslKeyStorePassword": "ssl密码###",
    "###sslKeyManagerPassword": "ssl管理密码###",
    "###initialManager": "初始管理员名称,目前不可更改.###",
    "###initialManagerDistinguishedName": "初始管理员DistinguishedName,不可更改.###",
    "###ssos": "sso登录配置###",
    "###oauths": "oauth单点登录配置###",
    "###oauthClients": "作为客户端单点登录配置###"
    }


    vfs.json

    平台附件上传使用vfs框架,此文件用来配置客户端使用ftp、sftp或者ftps连接服务器时采用主动模式还是被动模式,默认是被动模式(大部分情况都可以忽略此配置,部分服务只开一个端口需要配置为主动模式).


    {
      "ftp": {
        "passive": true
      },
      "ftps": {
        "passive": true
      },
      "sftp": {
        "passive": true
      }
    }


    web.json

    平台前端业务需要的配置,根据业务需要添加字段,保证为json格式即可.


    {
      "mock": {},
      "###mock": "使用Post模拟Put,Get模拟Delete的模块.###"
    }


    weLink.json(华为weLink接入配置)

    华为weLink接入配置


    {
      "enable": false,
      "clientId": "",
      "clientSecret": "",
      "syncCron": "10 0/10 * * * ?",
      "forceSyncCron": "10 45 8,12 * * ?",
      "oapiAddress": "https://open.welink.huaweicloud.com/api",
      "messageEnable": false,
      "workUrl": "",
      "messageRedirectPortal": "",
      "###enable": "是否启用###",
      "###clientId": "WeLink应用的client_id###",
      "###clientSecret": "WeLink应用的client_secret###",
      "###syncCron": "回调信号触发同步检查,默认每10分钟运行一次,如果期间内有WeLink回调信号接收到,那么触发同步任务进行人员同步.###",
      "###forceSyncCron": "强制拉入同步cron,默认在每天的8点和12点强制进行同步.###",
      "###oapiAddress": "WeLink api服务器地址###",
      "###messageEnable": "是否启用消息推送###",
      "###workUrl": "WeLink消息打开工作的url地址,如:http://dev.o2oa.net/x_desktop/###",
      "###messageRedirectPortal": "WeLink消息处理完成后跳转到特定的门户页面的Id###"
    }


    workTime.json(平台工作时间、节假日配置)

    平台工作时间、节假日配置,详见平台工作日节假日配置文章.


    {
      "amStart": "09:00:00",
      "amEnd": "11:30:00",
      "pmStart": "13:00:00",
      "pmEnd": "17:30:00",
      "holidays": [],
      "workdays": [],
      "weekends": [
        1.0,
        7.0
      ],
      "###amStart": "工作时间上午开始时间###",
      "###amEnd": "工作时间上午结束时间###",
      "###pmStart": "工作时间下午开始时间###",
      "###pmEnd": "工作时间下午结束时间###",
      "###holidays": "固定节假日,格式为["2019-01-01","2019-05-01"]###",
      "###workdays": "固定工作时间,格式为["2019-01-01","2019-05-01"]###",
      "###weekends": "周末设定,默认格式为[1,7]其中1代表周日,7代表周六.###"
    }


    zhengwuDingding.json(政务钉钉接入配置)

    政务钉钉接入配置


    {
      "enable": false,
      "appSecret": "",
      "agentId": "",
      "syncCron": "10 0/10 * * * ?",
      "forceSyncCron": "10 45 8,12 * * ?",
      "oapiAddress": "https://oapi.dingtalk.com",
      "corpId": "",
      "corpSecret": "",
      "titleSplit": [
        ",",
        "、",
        ",",
        " ",
        " "
      ],
      "personAttributeTitleName": "职务",
      "nonce": "o2oa",
      "messageEnable": true,
      "###enable": "是否启用.###",
      "###appId": "政务钉钉appId###",
      "###appSecret": "政务钉钉appSecret###",
      "###agentId": "政务钉钉agentId###",
      "###syncCron": "回调信号触发同步检查,默认每10分钟运行一次,如果期间内有政务钉钉回调信号接收到,那么触发同步任务进行人员同步.###",
      "###forceSyncCron": "强制拉入同步cron,默认在每天的8点和12点强制进行同步.###",
      "###oapiAddress": "oapi服务器地址###",
      "###corpId": "政务钉钉corpId###",
      "###corpSecret": "政务钉钉corpSecret###",
      "###titleSplit": "title分隔符###",
      "###personAttributeTitleName": "title对应个人属性名称###",
      "###nonce": "政务钉钉nonce###",
      "###messageEnable": "推送消息到政务钉钉消息###"
    }