引入
ts
import {
addOrUpdateRainbowKV,
addRainbowKV,
updateRainbowKV,
createRainbowPublishJob,
publishRainbowTask,
closeRainbowTask,
updateRainbowKVAndPublish,
processRainbowReleaseTask,
queryGroupInfo,
updateRainbowConfigAndCreateTask,
fetchRainbowConfig,
fetchRainbowConfigFromSdk
} from 't-comm';
// 不支持 tree-shaking 的项目
import {
addOrUpdateRainbowKV,
addRainbowKV,
updateRainbowKV,
createRainbowPublishJob,
publishRainbowTask,
closeRainbowTask,
updateRainbowKVAndPublish,
processRainbowReleaseTask,
queryGroupInfo,
updateRainbowConfigAndCreateTask,
fetchRainbowConfig,
fetchRainbowConfigFromSdk
} from 't-comm/lib/rainbow/index';
// 只支持 ESM 的项目
import {
addOrUpdateRainbowKV,
addRainbowKV,
updateRainbowKV,
createRainbowPublishJob,
publishRainbowTask,
closeRainbowTask,
updateRainbowKVAndPublish,
processRainbowReleaseTask,
queryGroupInfo,
updateRainbowConfigAndCreateTask,
fetchRainbowConfig,
fetchRainbowConfigFromSdk
} from 't-comm/es/rainbow/index';addOrUpdateRainbowKV(config)
描述:添加或更新配置
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| config | object | 配置信息 |
| config.keyValue | object | 配置对象 |
| config.keyValue.key | string | 配置的key |
| config.keyValue.value | string | 配置的value |
| config.valueType | number | 配置类型,1: NUMBER, 2: STRING, 3: TEXT, 4: JSON, 5: XML, 18: 日期, 20: yaml |
| config.secretInfo | object | 密钥信息 |
| config.secretInfo.appId | string | 项目Id |
| config.secretInfo.userId | string | 用户Id |
| config.secretInfo.secretKey | string | 密钥 |
| config.secretInfo.envName | string | 配置环境 |
| config.secretInfo.groupName | string | 配置组 |
返回: Promise.<object>
请求Promise
示例
typescript
addOrUpdateRainbowKV({
keyValue: {
key: 'theKey',
value: 'theValue',
},
valueType: 2,
secretInfo: {
appId: 'xxx',
userId: 'xxx',
secretKey: 'xxx',
envName: 'prod',
groupName: 'xxx',
}
}).then(() => {
})addRainbowKV(config)
描述:增加配置
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| config | object | 配置信息 |
| config.keyValue | object | 配置对象 |
| config.keyValue.key | string | 配置的key |
| config.keyValue.value | string | 配置的value |
| config.valueType | number | 配置类型,1: NUMBER, 2: STRING, 3: TEXT, 4: JSON, 5: XML, 18: 日期, 20: yaml |
| config.secretInfo | object | 密钥信息 |
| config.secretInfo.appId | string | 项目Id |
| config.secretInfo.userId | string | 用户Id |
| config.secretInfo.secretKey | string | 密钥 |
| config.secretInfo.envName | string | 配置环境 |
| config.secretInfo.groupName | string | 配置组 |
返回: Promise.<object>
请求Promise
示例
typescript
addRainbowKV({
keyValue: {
key: 'theKey',
value: 'theValue',
},
valueType: 2,
secretInfo: {
appId: 'xxx',
userId: 'xxx',
secretKey: 'xxx',
envName: 'prod',
groupName: 'xxx',
}
}).then(() => {
})updateRainbowKV(config)
描述:修改配置
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| config | object | 配置信息 |
| config.keyValue | object | 配置对象 |
| config.keyValue.key | string | 配置的key |
| config.keyValue.value | string | 配置的value |
| config.valueType | number | 配置类型,1: NUMBER, 2: STRING, 3: TEXT, 4: JSON, 5: XML, 18: 日期, 20: yaml |
| config.secretInfo | object | 密钥信息 |
| config.secretInfo.appId | string | 项目Id |
| config.secretInfo.userId | string | 用户Id |
| config.secretInfo.secretKey | string | 密钥 |
| config.secretInfo.envName | string | 配置环境 |
| config.secretInfo.groupName | string | 配置组 |
返回: Promise.<object>
请求Promise
示例
typescript
updateRainbowKV({
keyValue: {
key: 'theKey',
value: 'theValue',
},
valueType: 2,
secretInfo: {
appId: 'xxx',
userId: 'xxx',
secretKey: 'xxx',
envName: 'prod',
groupName: 'xxx',
}
}).then(() => {
})createRainbowPublishJob(config)
描述:创建发布任务
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| config | object | 配置信息 |
| config.versionName | string | 版本信息 |
| config.secretInfo | object | 密钥信息 |
| config.secretInfo.appId | string | 项目Id |
| config.secretInfo.userId | string | 用户Id |
| config.secretInfo.secretKey | string | 密钥 |
| config.secretInfo.envName | string | 配置环境 |
| config.secretInfo.groupName | string | 配置组 |
返回: Promise.<object>
请求Promise
示例
typescript
createRainbowPublishJob({
versionName: 'version',
secretInfo: {
appId: 'xxx',
userId: 'xxx',
secretKey: 'xxx',
envName: 'prod',
groupName: 'xxx',
}
}).then(() => {
})publishRainbowTask(config)
描述:发布任务
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| config | object | 配置信息 |
| config.taskId | string | 任务Id |
| config.secretInfo | object | 密钥信息 |
| config.secretInfo.appId | string | 项目Id |
| config.secretInfo.userId | string | 用户Id |
| config.secretInfo.secretKey | string | 密钥 |
| config.secretInfo.envName | string | 配置环境 |
| config.secretInfo.groupName | string | 配置组 |
返回: Promise.<object>
请求Promise
示例
typescript
publishRainbowTask({
taskId: 'taskId',
secretInfo: {
appId: 'xxx',
userId: 'xxx',
secretKey: 'xxx',
envName: 'prod',
groupName: 'xxx',
}
}).then(() => {
})closeRainbowTask(config)
描述:关闭任务
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| config | object | 配置信息 |
| config.taskId | string | 任务Id |
| config.secretInfo | object | 密钥信息 |
| config.secretInfo.appId | string | 项目Id |
| config.secretInfo.userId | string | 用户Id |
| config.secretInfo.secretKey | string | 密钥 |
| config.secretInfo.envName | string | 配置环境 |
| config.secretInfo.groupName | string | 配置组 |
返回: Promise.<object>
请求Promise
示例
typescript
closeRainbowTask({
taskId: 'taskId',
secretInfo: {
appId: 'xxx',
userId: 'xxx',
secretKey: 'xxx',
envName: 'prod',
groupName: 'xxx',
}
}).then(() => {
})updateRainbowKVAndPublish(config)
描述:更新或新增值并发布
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| config | object | 配置信息 |
| config.key | string | 配置key |
| config.value | string | 配置value |
| config.valueType | number | 配置类型,1: NUMBER, 2: STRING, 3: TEXT, 4: JSON, 5: XML, 18: 日期, 20: yaml |
| config.secretInfo | object | 密钥信息 |
| config.secretInfo.appId | string | 项目Id |
| config.secretInfo.userId | string | 用户Id |
| config.secretInfo.secretKey | string | 密钥 |
| config.secretInfo.envName | string | 配置环境 |
| config.secretInfo.groupName | string | 配置组 |
返回: Promise.<object>
请求Promise
示例
typescript
updateRainbowKVAndPublish({
key: 'key',
value: 'value',
valueType: 2,
secretInfo: {
appId: 'xxx',
userId: 'xxx',
secretKey: 'xxx',
envName: 'prod',
groupName: 'xxx',
}
}).then(() => {
})processRainbowReleaseTask(config)
描述:处理彩虹配置发布任务
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| config | object | 配置信息 |
| config.taskId | string | 任务ID |
| config.secretInfo | object | 密钥信息 |
| config.secretInfo.appId | string | 项目Id |
| config.secretInfo.userId | string | 用户Id |
| config.secretInfo.secretKey | string | 密钥 |
| config.secretInfo.envName | string | 配置环境 |
| config.secretInfo.groupName | string | 配置组 |
| config.versionName | string | 版本名称 |
返回: Promise.<object>
请求Promise
示例
typescript
processRainbowReleaseTask({
taskId: 'taskId',
secretInfo: {
appId: 'xxx',
userId: 'xxx',
secretKey: 'xxx',
envName: 'prod',
groupName: 'xxx',
},
versionName: 'version'
}).then(() => {
})queryGroupInfo(config)
描述:查询分组配置
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| config | object | 配置信息 |
| config.secretInfo | object | 密钥信息 |
| config.secretInfo.appId | string | 项目Id |
| config.secretInfo.userId | string | 用户Id |
| config.secretInfo.secretKey | string | 密钥 |
| config.secretInfo.envName | string | 配置环境 |
| config.secretInfo.groupName | string | 配置组 |
返回: Promise.<Array<object>>
分组配置
示例
typescript
queryGroupInfo({
secretInfo: {
appId: 'xxx',
userId: 'xxx',
secretKey: 'xxx',
envName: 'prod',
groupName: 'xxx',
}
}).then(() => {
})updateRainbowConfigAndCreateTask(config)
描述:更新彩虹配置并创建发布任务
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| config | object | 配置信息 |
| config.key | string | 配置key |
| config.value | string | 配置value |
| config.valueType | number | 配置类型,1: NUMBER, 2: STRING, 3: TEXT, 4: JSON, 5: XML, 18: 日期, 20: yaml |
| config.secretInfo | object | 密钥信息 |
| config.secretInfo.appId | string | 项目Id |
| config.secretInfo.userId | string | 用户Id |
| config.secretInfo.secretKey | string | 密钥 |
| config.secretInfo.envName | string | 配置环境 |
| config.secretInfo.groupName | string | 配置组 |
| config.creator | string | 创建者 |
| config.approvers | string | 审批者 |
返回: Promise.<{taskRes: any, versionName: string}>
发布任务结果和版本名称
示例
typescript
updateRainbowConfigAndCreateTask({
key: 'configKey',
value: 'configValue',
valueType: 2,
secretInfo: {
appId: 'xxx',
userId: 'xxx',
secretKey: 'xxx',
envName: 'prod',
groupName: 'xxx',
},
creator: 'creatorName',
approvers: 'approverName'
}).then(({ taskRes, versionName }) => {
console.log('任务创建成功:', taskRes);
console.log('版本名称:', versionName);
})fetchRainbowConfig(key, secretInfo)
描述:拉取七彩石配置
参数:
| 参数名 | 类型 | 描述 |
|---|---|---|
| key | String | 七彩石的key |
| secretInfo | object | 密钥信息 |
| secretInfo.appId | string | 项目Id |
| secretInfo.envName | string | 环境 |
| secretInfo.groupName | string | 组名称 |
返回: Promise.<object>
请求Promise
示例
typescript
fetchRainbowConfig('test', {
appId: 'xx',
envName: 'prod',
groupName: 'robot',
}).then((resp) => {
console.log(resp)
});fetchRainbowConfigFromSdk(config)
描述:通过七彩石 SDK 拉取配置(适用于 Node.js 服务端) 支持 v3Get 和 v3GetGroup 两种模式,内置内存缓存和文件缓存
参数:
| 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| config | object | 配置信息 | |
| config.secretInfo | ISecretInfo | 密钥信息,包含 appId、userId、secretKey、groupName、envName | |
| config.sdk | any | 七彩石 SDK 实例(需包含 Rainbow、AccessType、AddrType) | |
| config.key | string | 要获取的配置 key | |
| [config.initOptions] | Record.<string, any> | Rainbow 初始化额外选项 | |
| [config.isFetchGroup] | boolean | false | 是否使用 v3GetGroup 获取整组配置 |
| [config.tryJsonParse] | boolean | true | 是否尝试 JSON.parse 解析返回值 |
| [config.rainbow] | any | 外部传入的 Rainbow 实例(传入后不会自动 exit) |
返回: Promise.<any>
配置值
示例
ts
import * as sdk from 'rainbow-sdk';
const config = await fetchRainbowConfigFromSdk({
secretInfo: {
appId: 'xxx',
userId: 'xxx',
secretKey: 'xxx',
groupName: 'default',
envName: 'prod',
},
sdk,
key: 'my_config_key',
});