配置说明
更新时间: 2022-12-05 17:36:05
1. 概述
本产品有四个地方可以进行参数配置,分别是:
- 环境变量:docker 中使用
docker-compose.yaml
进行配置。变量名采用大写下划线形式; config
模块:平台等引用的子模块。不同文件名代表了不同环境下的配置。变量名采用驼峰形式;- 自定义配置文件:
Platform/custom/custom.config.json
文件。变量名采用驼峰形式; - backend 中的设置。直接在 http://127.0.0.1:8009/operation/setting 中的 开发后台管理-设置 中进行配置。注意有两个 tab,外观和平台。
2. 配置优先级
backend 中的设置 > 自定义配置文件 > 环境变量 > config
模块
3. 参数解析方法
- 环境变量:使用
envParser
进行解析; config
模块:通过require('config')
进行解析。参考 https://www.npmjs.com/package/config;- 自定义配置文件:通过解析
custom.config.json
文件;
4. envParser 调用方法
envParser
解析 node 环境变量,并为对应的系统配置进行赋值。它接收四个参数,分别是
configJSON
:模块的配置对象ev
:node 环境变量appPath
:Platform 模块所在路径envList
:需要解析的环境变量数组。各模块根据实际情况决定数组内容。数组中包括多个对象。每个对象中的属性包括:- name:环境变量中的变量名。大写下划线格式。
- type:变量的类型。目前包括 String、Bool、Json、smtp、Array、Store、Custom。其中,Array 类型的变量,各元素之间用英文逗号
,
隔开,不要加多余的空格。 - path(可选):envParser 会直接把大写下划线形式的环境变量参数映射成系统配置中的驼峰形式。如果直接映射的结果不符合预期,就在 path 中放入期望的系统配置变量名。支持映射为对象中的属性,用
.
隔开。 - keyMap(可选):对于对象(Json)类型的变量,需要传入该参数指明需要解析的属性。对于变量
LOG_DB
、DB
、REDIS
、CAPTURE
、CACHE_CAPTURE
、CHROME
,envParser 提供了默认的 keyMap,故上述环境变量可以不传 keyMap 参数。 - fn(可选):对于无法使用 envParser 提供的统一方法进行映射的配置,在 fn 中进行处理。
envList 的样例:
[
//把环境变量中的 PLATFORM_LINK 赋值给系统配置中的 platform
{name: 'PLATFORM_LINK', type: 'String', path: 'platform'},
//把环境变量中的 BACKEND_LINK 赋值给系统配置中的对应驼峰形式的 backendLink
{name: 'BACKEND_LINK', type: 'String'},
//把环境变量中的 COMPANY_NAME 赋值给系统配置中 customAssets 的属性 companyName
{name: 'COMPANY_NAME', type: 'String', path: 'customAssets.companyName'},
//把环境变量中的 WATERMARK 解析成布尔类型,赋值给系统配置中 customAssets 的属性 watermark
{name: 'WATERMARK', type: 'Bool', path: 'customAssets.watermark'},
//把环境变量中的 LOG_DB 解析成一个对象,赋值给系统配置中的 logDatasource。keyMap = {database: 'title', host: 'host', port: 'port', user: 'user', password: 'password'} 在这里省略了因为 envParser 提供了对 LOG_DB 默认的 keyMap
{name: 'LOG_DB', type: 'Json', path: 'logDatasource'},
// 把环境变量中的 PAY_MODULES 解析成一个数组,并赋值给系统配置中的对应驼峰形式的 payModules
{name: 'PAY_MODULES', type: 'Array'},
// 把环境变量中的 STORE 解析成一个 store 对象,赋值给系统配置中的 ydStore。keyMap 在这里省略了因为 envParser 提供了对 LOG_DB 默认的 keyMap
{name: 'STORE', type: 'Store', path: 'ydstore'},
// 无法统一处理的配置,在这里的函数中进行自定义配置
{
name: '',
type: 'Custom',
fn:function (configJSON) {
configJSON.from = _.get(configJSON, 'smtp.from') || configJSON.from;
}
}
]
5. 参数说明
环境变量 | 配置参数 | 类型 | 含义 | 使用模块 | 备注 |
---|---|---|---|---|---|
PLATFORM_LINK | platform | String | 平台运行的地址 | platform schedule backend survey website | 供外部用户访问 |
PLATFORM | platformInner | String | 平台运行的地址 | platform schedule backend | 供内部容器访问 |
BACKEND_LINK | backendLink | String | backend 模块的外部域名 | platform | 5.8 版本以后可不配置,与 PLATFORM_LINK 公用同一个域名,根据 path 区分 |
SCHEDULE | schedule | String | schedule 模块的调用地址 | platform | |
INSIGHT | insight | String | insight 模块的调用地址 | platform | |
DE | de | String | DE 模块的调用地址 | platform | |
WEBSITE | website | String | website 模块的调用地址 | platform | |
SURVEY | survey | String | survey 模块的调用地址 | platform | |
DC | dc | String | DC 模块的调用地址 | platform | |
CAPTURE | capture | Json | capture 模块的调用地址 | schedule | |
CACHE_CAPTURE | cacheCapture | Json | cacheCapture 模块的调用地址 | schedule | 用于执行 capture 的预加载任务 |
HA_COMPUTE | haCompute | String | 高性能计算模块的调用地址 | platform | |
COMPANY_NAME | customAssets.companyName | String | 公司名 | platform | 系统左上角显示的公司名;系统邮件中的发件人处也显示该变量内容 |
USER_LIMIT | userLimit | String | 最大账号数量 | platform | |
LOGIN_TYPE | loginType | String | 用户登录方式 | platform | ‘’:通过用户名密码的普通登录形式;’customLogin’:企业单点登录;’openId’:使用 openId 登录(单点登录的一种) |
OPENID_SECRET_ID | openId.secretId | String | 私有部署的域名的 secretId,用于单点登录 | platform | 只有 loginType = ‘openId’ 时才会使用 |
OPENID_CLIENT_ID | openId.clientId | String | 私有部署的域名的 clientId,用于单点登录 | platform | 只有 loginType = ‘openId’ 时才会使用 |
PASS_KEY | passKey | String | 各模块共有的一个秘钥 | platform backend website schedule | |
PUBLIC_PATH | customAssets.publicPath | String | 前端公共域名 | platform | |
GLOBAL_LANGUAGE | customAssets.globalLanguage | String | 全局语言 | platform | 默认中文 ‘zh-cn’,可改为英文 ‘en’,可以在 backend 中进行配置 |
DEPLOY_TYPE | deployType | String | 部署类型 | platform schedule backend survey website | ‘private’:私有部署;’netease’:内部环境 ‘online’:线上环境 |
DEFAULT_USER_PWD | defaultUserPwd | String | 默认的用户密码 | platform | |
MOBILE_DEPLOYED | mobileDeployed | Bool | 是否部署了移动端 app | platform backend | |
WATERMARK | customAssets.watermark | Bool | 是否开启报告界面的水印 | platform | 可以在 backend 中进行配置 |
OPEN_HUBBLE | customAssets.openHubble | Bool | 是否在哈勃进行埋点 | platform | |
PUSH_MAMMUT | pushMammut | Bool | 是否调用猛犸接口 | platform | 若开启,数据产生变化时放入消息队列,数据准备好后通知本产品,可执行预加载,需要部署 SyncExtract 模块 |
SQL_LOG | sqlLog | Bool | 后台日志是否打印业务查询 SQL | platform | 可以在 backend 中进行配置 |
REDIS_LOG | redisLog | Bool | 后台日志是否打印有关 redis 的日志 | platform | |
LANGUAGE_SWITCH | customAssets.languageSwitch | Bool | 用户是否可以切换自己的系统语言 | platform | 可以在 backend 中进行配置 |
HIDE_HELP_CENTER | customAssets.hideHelpCenter | Bool | 是否需要隐藏帮助中心 | platform | 帮助中心是界面右上角的问号图标,其中包括新手引导、用户手册、常见问题等。可以在 backend 中进行配置 |
ENABLE_EMAIL | enableEmail | Bool | 是否开启电子邮件服务 | platform | 开启的话需要配置邮箱服务 SMTP |
ENABLE_MESSAGE | enableMessage | Bool | 是否开启短信服务 | platform | 私有部署用户开启的话需要在 custom/customSMS.js 文件下进行外挂脚本适配开发,自己提供短信服务。可以在 backend 中进行配置 |
TR_INPUT_LOG | trInputLog | Bool | 是否打印大屏 input 日志 | platform | 可以在 backend 中进行配置 |
NETWORK_ACCESS_ENABLE | networkAccessEnable | Bool | 是否开启网络拦截 | platform | 开启后,具体的白名单需要在 backend 的设置中进行配置。网络拦截配置有两个选项:若选择 user ,开启后只有在白名单中的 IP 才能访问,如果有某些特殊用户想使用非白名单 IP 来访问,需要调用 user/batchImport 接口修改用户 networkConfig 属性;若选择 mobile ,开启后 web 端只有在 IP 白名单中才可以访问,移动端在非白名单中也可以访问。具体白名单和拦截类型如何配置请看 backend 的配置页面 |
PICTURE_NO_LINK | smtp.pictureNoLink | Bool | 发送邮件是否带跳转连接 | platform schedule backend | 可以在 backend 中进行配置。 |
SERVICE_DOWNGRADE | serviceDowngrade | Bool | 是否开启服务降级 | schedule | 开启后 schedule 中只有表单填写提醒邮件和 kill Chrome 会如期运行,其他任务将不再运行 |
PAY_MODULES | payModules | Array | 用于指定用户购买的模块 | platform | ‘report’: 报告, ‘mpp’: mpp, ‘cockpit’: 驾驶仓, ‘screen’: 大屏, ‘survey’: 数据填报, ‘gis’: gis 地图 |
TR_INPUT_API_LIST | trInputApiList | Array | 用于指定必须打日志的 API 列表 | platform | |
LOG_DB | logDatasource | Json | backend 查询的系统日志所存放的数据库的配置 | backend | 环境变量中配置成 mysql://<user>:<password>@<host>:<port>/<database> ,例 mysql://youdata:password@127.0.0.1:3306/youdata_log |
REDIS | redis | Json | redis 相关配置,用于缓存设置和存储 session 等 | platform backend survey website | 环境变量中配置成 redis://<password>@<host>:<port> ,例 redis://password@127.0.0.1:6379 |
CHROME | chrome | Json | Chrome 相关的配置 | capture | 需包含 host、port 属性 |
DB | datasource | Json | Platform 模块的数据库相关配置 | platform schedule backend survey website | 环境变量中配置成 mysql://<user>:<password>@<host>:<port>/<database> ,例 mysql://youdata:password@127.0.0.1:3306/youdata |
SMTP | smtp | smtp | 发邮件相关的配置 | platform schedule backend | 环境变量中配置成 smtp://<user>:<password>@<host>:<port> , 例 smtp://youdata@corp.com:password@corp.com:25 。可以在 backend 中进行配置 |
STORE | ydstore | Store | 对象存储服务的配置 | platform schedule capture | 环境变量中配置成 <protocol>://<user>:<password>@<host>:<port>/<bucket> ,例 minio://PJ99D7K3OAFS732PS1PZ:password@store.ydqa:80/yd-bucket |