-
Notifications
You must be signed in to change notification settings - Fork 35
Expand file tree
/
Copy pathimport.js
More file actions
60 lines (52 loc) · 2.1 KB
/
import.js
File metadata and controls
60 lines (52 loc) · 2.1 KB
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
const { loadAndValidateConfigFile, importConfigJson, loadConfigFile, getServiceApiKey, getOAuthS2SCredential } = require('./import-helper')
const { SERVICE_API_KEY_ENV, IMS_OAUTH_S2S_ENV } = require('./defaults')
/**
* Imports the project's console config to the local environment.
*
* @param {string | Buffer} consoleConfigFileOrBuffer Name of config file to import or a buffer to write into
* @param {object} flags Flags for file writing
* @returns {Promise} Console config
*/
async function importConsoleConfig (consoleConfigFileOrBuffer, flags) {
const overwrite = flags.overwrite
const merge = flags.merge
const skipValidation = flags.skipValidation
const useJwt = flags['use-jwt'] // for migration purposes
let interactive = true
if (overwrite || merge) {
interactive = false
}
const loadFunc = skipValidation ? loadConfigFile : loadAndValidateConfigFile
const config = loadFunc(consoleConfigFileOrBuffer).values
const serviceClientId = getServiceApiKey(config, useJwt)
const oauthS2SCredential = getOAuthS2SCredential(config)
let extraEnvVars
if (typeof oauthS2SCredential === 'object') {
extraEnvVars = { [SERVICE_API_KEY_ENV]: serviceClientId, [IMS_OAUTH_S2S_ENV]: JSON.stringify(oauthS2SCredential) }
} else {
extraEnvVars = { [SERVICE_API_KEY_ENV]: serviceClientId }
}
await importConfigJson(consoleConfigFileOrBuffer, process.cwd(), { interactive, overwrite, merge, useJwt }, extraEnvVars)
return config
}
/**
* Downloads the project's console config, returns it in a buffer
*
* @param {object} consoleCLI Instance of the Console CLI sdk
* @param {object} config Global config
* @param {Array} supportedServices List of org supported services
* @returns {Promise<Buffer>} Project console config
*/
async function downloadConsoleConfigToBuffer (consoleCLI, config, supportedServices) {
const workspaceConfig = await consoleCLI.getWorkspaceConfig(
config.org.id,
config.project.id,
config.workspace.id,
supportedServices
)
return Buffer.from(JSON.stringify(workspaceConfig))
}
module.exports = {
importConsoleConfig,
downloadConsoleConfigToBuffer
}