@rockcarver/frodo-cli 2.0.0-27 → 2.0.0-29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -1
- package/esm/app.js +4 -0
- package/esm/app.js.map +1 -1
- package/esm/cli/FrodoCommand.js +10 -4
- package/esm/cli/FrodoCommand.js.map +1 -1
- package/esm/cli/admin/admin-get-access-token.js +1 -1
- package/esm/cli/admin/admin-get-access-token.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
- package/esm/cli/admin/admin-list-static-user-mappings.js +1 -1
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/authz/authz-policy-delete.js +2 -2
- package/esm/cli/authz/authz-policy-delete.js.map +1 -1
- package/esm/cli/authz/authz-set-delete.js +2 -2
- package/esm/cli/authz/authz-set-delete.js.map +1 -1
- package/esm/cli/authz/authz-type-delete.js +3 -3
- package/esm/cli/authz/authz-type-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +14 -3
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret.js +1 -2
- package/esm/cli/esv/esv-secret.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +2 -2
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +15 -4
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable.js +1 -2
- package/esm/cli/esv/esv-variable.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +1 -0
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-export.js +11 -1
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js +1 -1
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/PolicyOps.js +5 -15
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js +11 -10
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/RealmOps.js +3 -3
- package/esm/ops/RealmOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.js +11 -25
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js +2 -2
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/SecretsOps.js +73 -5
- package/esm/ops/SecretsOps.js.map +1 -1
- package/esm/ops/VariablesOps.js +82 -8
- package/esm/ops/VariablesOps.js.map +1 -1
- package/global-jest-setup.js +4 -0
- package/package.json +4 -3
package/esm/ops/VariablesOps.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { frodo, state } from '@rockcarver/frodo-lib';
|
|
2
|
-
import { createKeyValueTable, createProgressBar, createTable, failSpinner, printMessage, showSpinner, stopProgressBar, succeedSpinner, updateProgressBar } from '../utils/Console';
|
|
2
|
+
import { createKeyValueTable, createProgressBar, createProgressIndicator, createTable, debugMessage, failSpinner, printMessage, showSpinner, stopProgressBar, stopProgressIndicator, succeedSpinner, updateProgressBar, updateProgressIndicator } from '../utils/Console';
|
|
3
|
+
import { getTypedFilename, saveJsonToFile, saveToFile, titleCase } from '../utils/ExportImportUtils';
|
|
3
4
|
import wordwrap from './utils/Wordwrap';
|
|
4
5
|
const {
|
|
5
|
-
decodeBase64
|
|
6
|
+
decodeBase64,
|
|
7
|
+
getFilePath
|
|
6
8
|
} = frodo.utils;
|
|
7
9
|
const {
|
|
8
10
|
resolveUserName
|
|
@@ -10,6 +12,10 @@ const {
|
|
|
10
12
|
const {
|
|
11
13
|
readVariables,
|
|
12
14
|
readVariable,
|
|
15
|
+
exportVariable,
|
|
16
|
+
exportVariables,
|
|
17
|
+
deleteVariable,
|
|
18
|
+
updateVariableDescription,
|
|
13
19
|
updateVariable: _updateVariable
|
|
14
20
|
} = frodo.cloud.variable;
|
|
15
21
|
|
|
@@ -33,8 +39,8 @@ export async function listVariables(long) {
|
|
|
33
39
|
}
|
|
34
40
|
printMessage(table.toString(), 'data');
|
|
35
41
|
} else {
|
|
36
|
-
variables.forEach(
|
|
37
|
-
printMessage(
|
|
42
|
+
variables.forEach(variable => {
|
|
43
|
+
printMessage(variable._id, 'data');
|
|
38
44
|
});
|
|
39
45
|
}
|
|
40
46
|
}
|
|
@@ -52,7 +58,7 @@ export async function createVariable(variableId, value, description, type = 'str
|
|
|
52
58
|
await _updateVariable(variableId, value, description, type);
|
|
53
59
|
succeedSpinner(`Created variable ${variableId}`);
|
|
54
60
|
} catch (error) {
|
|
55
|
-
failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
|
|
61
|
+
failSpinner(error.response ? `Error: ${error.response.data.code} - ${error.response.data.message}` : error);
|
|
56
62
|
}
|
|
57
63
|
}
|
|
58
64
|
|
|
@@ -80,7 +86,7 @@ export async function updateVariable(variableId, value, description) {
|
|
|
80
86
|
export async function setVariableDescription(variableId, description) {
|
|
81
87
|
showSpinner(`Setting description of variable ${variableId}...`);
|
|
82
88
|
try {
|
|
83
|
-
await
|
|
89
|
+
await updateVariableDescription(variableId, description);
|
|
84
90
|
succeedSpinner(`Set description of variable ${variableId}`);
|
|
85
91
|
} catch (error) {
|
|
86
92
|
failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
|
|
@@ -91,7 +97,7 @@ export async function setVariableDescription(variableId, description) {
|
|
|
91
97
|
* Delete a variable
|
|
92
98
|
* @param {string} variableId variable id
|
|
93
99
|
*/
|
|
94
|
-
export async function
|
|
100
|
+
export async function deleteVariableById(variableId) {
|
|
95
101
|
showSpinner(`Deleting variable ${variableId}...`);
|
|
96
102
|
try {
|
|
97
103
|
await deleteVariable(variableId);
|
|
@@ -137,6 +143,74 @@ export async function describeVariable(variableId) {
|
|
|
137
143
|
table.push(['Modified'['brightCyan'], new Date(variable.lastChangeDate).toLocaleString()]);
|
|
138
144
|
table.push(['Modifier'['brightCyan'], await resolveUserName('teammember', variable.lastChangedBy)]);
|
|
139
145
|
table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);
|
|
140
|
-
printMessage(table.toString());
|
|
146
|
+
printMessage(table.toString(), 'data');
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Export a single variable to file
|
|
151
|
+
* @param {String} variableId Variable id
|
|
152
|
+
* @param {String} file Optional filename
|
|
153
|
+
* @param {boolean} noDecode Do not include decoded variable value in export
|
|
154
|
+
*/
|
|
155
|
+
export async function exportVariableToFile(variableId, file, noDecode) {
|
|
156
|
+
debugMessage(`Cli.VariablesOps.exportVariableToFile: start [variableId=${variableId}, file=${file}]`);
|
|
157
|
+
let fileName = file;
|
|
158
|
+
if (!fileName) {
|
|
159
|
+
fileName = getTypedFilename(variableId, 'variable');
|
|
160
|
+
}
|
|
161
|
+
const filePath = getFilePath(fileName, true);
|
|
162
|
+
try {
|
|
163
|
+
createProgressBar(1, `Exporting variable ${variableId}`);
|
|
164
|
+
const fileData = await exportVariable(variableId, noDecode);
|
|
165
|
+
saveJsonToFile(fileData, filePath);
|
|
166
|
+
updateProgressBar(`Exported variable ${variableId}`);
|
|
167
|
+
stopProgressBar(
|
|
168
|
+
// @ts-expect-error - brightCyan colors the string, even though it is not a property of string
|
|
169
|
+
`Exported ${variableId.brightCyan} to ${filePath.brightCyan}.`);
|
|
170
|
+
} catch (err) {
|
|
171
|
+
stopProgressBar(`${err}`);
|
|
172
|
+
printMessage(err, 'error');
|
|
173
|
+
}
|
|
174
|
+
debugMessage(`Cli.VariablesOps.exportVariableToFile: end [variableId=${variableId}, file=${file}]`);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* Export all variables to single file
|
|
179
|
+
* @param {string} file Optional filename
|
|
180
|
+
* @param {boolean} noDecode Do not include decoded variable value in export
|
|
181
|
+
*/
|
|
182
|
+
export async function exportVariablesToFile(file, noDecode) {
|
|
183
|
+
debugMessage(`Cli.VariablesOps.exportVariablesToFile: start [file=${file}]`);
|
|
184
|
+
let fileName = file;
|
|
185
|
+
if (!fileName) {
|
|
186
|
+
fileName = getTypedFilename(`all${titleCase(state.getRealm())}Variables`, 'variable');
|
|
187
|
+
}
|
|
188
|
+
try {
|
|
189
|
+
const variablesExport = await exportVariables(noDecode);
|
|
190
|
+
saveJsonToFile(variablesExport, getFilePath(fileName, true));
|
|
191
|
+
} catch (error) {
|
|
192
|
+
var _error$response;
|
|
193
|
+
printMessage(error.message, 'error');
|
|
194
|
+
printMessage(`exportVariablesToFile: ${(_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status}`, 'error');
|
|
195
|
+
}
|
|
196
|
+
debugMessage(`Cli.VariablesOps.exportVariablesToFile: end [file=${file}]`);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Export all variables to seperate files
|
|
201
|
+
* @param {boolean} noDecode Do not include decoded variable value in export
|
|
202
|
+
*/
|
|
203
|
+
export async function exportVariablesToFiles(noDecode) {
|
|
204
|
+
const variableList = await readVariables();
|
|
205
|
+
createProgressIndicator('determinate', variableList.length, 'Exporting variables');
|
|
206
|
+
for (const variable of variableList) {
|
|
207
|
+
if (!noDecode) {
|
|
208
|
+
variable.value = decodeBase64(variable.valueBase64);
|
|
209
|
+
}
|
|
210
|
+
updateProgressIndicator(`Writing variable ${variable._id}`);
|
|
211
|
+
const fileName = getTypedFilename(variable._id, 'variable');
|
|
212
|
+
saveToFile('variable', variable, '_id', getFilePath(fileName, true));
|
|
213
|
+
}
|
|
214
|
+
stopProgressIndicator(`${variableList.length} variables exported`);
|
|
141
215
|
}
|
|
142
216
|
//# sourceMappingURL=VariablesOps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VariablesOps.js","names":["frodo","state","createKeyValueTable","createProgressBar","createTable","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","wordwrap","decodeBase64","utils","resolveUserName","idm","managed","readVariables","readVariable","updateVariable","_updateVariable","cloud","variable","listVariables","long","variables","sort","a","b","_id","localeCompare","error","message","response","data","table","push","valueBase64","loaded","description","getUseBearerTokenForAmApis","lastChangedBy","Date","lastChangeDate","toUTCString","toString","forEach","secret","createVariable","variableId","value","type","code","setVariableDescription","deleteVariable","deleteVariables","length","describeVariable","toLocaleString"],"sources":["../../src/ops/VariablesOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { VariableExpressionType } from '@rockcarver/frodo-lib/types/api/cloud/VariablesApi';\n\nimport {\n createKeyValueTable,\n createProgressBar,\n createTable,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport wordwrap from './utils/Wordwrap';\n\nconst { decodeBase64 } = frodo.utils;\nconst { resolveUserName } = frodo.idm.managed;\nconst {\n readVariables,\n readVariable,\n updateVariable: _updateVariable,\n} = frodo.cloud.variable;\n\n/**\n * List variables\n * @param {boolean} long Long version, all the fields\n */\nexport async function listVariables(long) {\n let variables = [];\n try {\n variables = await readVariables();\n variables.sort((a, b) => a._id.localeCompare(b._id));\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.data, 'error');\n }\n if (long) {\n const table = createTable([\n 'Id'['brightCyan'],\n 'Value'['brightCyan'],\n 'Status'['brightCyan'],\n 'Description'['brightCyan'],\n 'Modifier'['brightCyan'],\n 'Modified (UTC)'['brightCyan'],\n ]);\n for (const variable of variables) {\n table.push([\n variable._id,\n wordwrap(decodeBase64(variable.valueBase64), 40),\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n wordwrap(variable.description, 40),\n state.getUseBearerTokenForAmApis()\n ? variable.lastChangedBy\n : await resolveUserName('teammember', variable.lastChangedBy),\n new Date(variable.lastChangeDate).toUTCString(),\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n variables.forEach((secret) => {\n printMessage(secret._id, 'data');\n });\n }\n}\n\n/**\n * Create variable\n * @param {string} variableId variable id\n * @param {string} value variable value\n * @param {string} description variable description\n * @param {VariableExpressionType} type variable type\n */\nexport async function createVariable(\n variableId: string,\n value: string,\n description: string,\n type: VariableExpressionType = 'string'\n) {\n showSpinner(`Creating variable ${variableId}...`);\n try {\n await _updateVariable(variableId, value, description, type);\n succeedSpinner(`Created variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Update variable\n * @param {string} variableId variable id\n * @param {string} value variable value\n * @param {string} description variable description\n */\nexport async function updateVariable(variableId, value, description) {\n showSpinner(`Updating variable ${variableId}...`);\n try {\n await _updateVariable(variableId, value, description);\n succeedSpinner(`Updated variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Set description of variable\n * @param {string} variableId variable id\n * @param {string} description variable description\n */\nexport async function setVariableDescription(variableId, description) {\n showSpinner(`Setting description of variable ${variableId}...`);\n try {\n await setVariableDescription(variableId, description);\n succeedSpinner(`Set description of variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Delete a variable\n * @param {string} variableId variable id\n */\nexport async function deleteVariable(variableId) {\n showSpinner(`Deleting variable ${variableId}...`);\n try {\n await deleteVariable(variableId);\n succeedSpinner(`Deleted variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Delete all variables\n */\nexport async function deleteVariables() {\n try {\n const variables = await readVariables();\n createProgressBar(variables.length, `Deleting variable...`);\n for (const variable of variables) {\n try {\n await deleteVariable(variable._id);\n updateProgressBar(`Deleted variable ${variable._id}`);\n } catch (error) {\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n }\n stopProgressBar(`Variables deleted.`);\n } catch (error) {\n stopProgressBar(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n}\n\n/**\n * Describe a variable\n * @param {string} variableId variable id\n */\nexport async function describeVariable(variableId) {\n const variable = await readVariable(variableId);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], variable._id]);\n table.push([\n 'Value'['brightCyan'],\n wordwrap(decodeBase64(variable.valueBase64), 40),\n ]);\n table.push([\n 'Status'['brightCyan'],\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n ]);\n table.push(['Description'['brightCyan'], wordwrap(variable.description, 60)]);\n table.push([\n 'Modified'['brightCyan'],\n new Date(variable.lastChangeDate).toLocaleString(),\n ]);\n table.push([\n 'Modifier'['brightCyan'],\n await resolveUserName('teammember', variable.lastChangedBy),\n ]);\n table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);\n printMessage(table.toString());\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VariablesOps.js","names":["frodo","state","createKeyValueTable","createProgressBar","createProgressIndicator","createTable","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","stopProgressIndicator","succeedSpinner","updateProgressBar","updateProgressIndicator","getTypedFilename","saveJsonToFile","saveToFile","titleCase","wordwrap","decodeBase64","getFilePath","utils","resolveUserName","idm","managed","readVariables","readVariable","exportVariable","exportVariables","deleteVariable","updateVariableDescription","updateVariable","_updateVariable","cloud","variable","listVariables","long","variables","sort","a","b","_id","localeCompare","error","message","response","data","table","push","valueBase64","loaded","description","getUseBearerTokenForAmApis","lastChangedBy","Date","lastChangeDate","toUTCString","toString","forEach","createVariable","variableId","value","type","code","setVariableDescription","deleteVariableById","deleteVariables","length","describeVariable","toLocaleString","exportVariableToFile","file","noDecode","fileName","filePath","fileData","brightCyan","err","exportVariablesToFile","getRealm","variablesExport","_error$response","status","exportVariablesToFiles","variableList"],"sources":["../../src/ops/VariablesOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { VariableExpressionType } from '@rockcarver/frodo-lib/types/api/cloud/VariablesApi';\n\nimport {\n createKeyValueTable,\n createProgressBar,\n createProgressIndicator,\n createTable,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n stopProgressIndicator,\n succeedSpinner,\n updateProgressBar,\n updateProgressIndicator,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n saveToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\nimport wordwrap from './utils/Wordwrap';\n\nconst { decodeBase64, getFilePath } = frodo.utils;\nconst { resolveUserName } = frodo.idm.managed;\nconst {\n readVariables,\n readVariable,\n exportVariable,\n exportVariables,\n deleteVariable,\n updateVariableDescription,\n updateVariable: _updateVariable,\n} = frodo.cloud.variable;\n\n/**\n * List variables\n * @param {boolean} long Long version, all the fields\n */\nexport async function listVariables(long) {\n let variables = [];\n try {\n variables = await readVariables();\n variables.sort((a, b) => a._id.localeCompare(b._id));\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.data, 'error');\n }\n if (long) {\n const table = createTable([\n 'Id'['brightCyan'],\n 'Value'['brightCyan'],\n 'Status'['brightCyan'],\n 'Description'['brightCyan'],\n 'Modifier'['brightCyan'],\n 'Modified (UTC)'['brightCyan'],\n ]);\n for (const variable of variables) {\n table.push([\n variable._id,\n wordwrap(decodeBase64(variable.valueBase64), 40),\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n wordwrap(variable.description, 40),\n state.getUseBearerTokenForAmApis()\n ? variable.lastChangedBy\n : await resolveUserName('teammember', variable.lastChangedBy),\n new Date(variable.lastChangeDate).toUTCString(),\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n variables.forEach((variable) => {\n printMessage(variable._id, 'data');\n });\n }\n}\n\n/**\n * Create variable\n * @param {string} variableId variable id\n * @param {string} value variable value\n * @param {string} description variable description\n * @param {VariableExpressionType} type variable type\n */\nexport async function createVariable(\n variableId: string,\n value: string,\n description: string,\n type: VariableExpressionType = 'string'\n) {\n showSpinner(`Creating variable ${variableId}...`);\n try {\n await _updateVariable(variableId, value, description, type);\n succeedSpinner(`Created variable ${variableId}`);\n } catch (error) {\n failSpinner(\n error.response\n ? `Error: ${error.response.data.code} - ${error.response.data.message}`\n : error\n );\n }\n}\n\n/**\n * Update variable\n * @param {string} variableId variable id\n * @param {string} value variable value\n * @param {string} description variable description\n */\nexport async function updateVariable(variableId, value, description) {\n showSpinner(`Updating variable ${variableId}...`);\n try {\n await _updateVariable(variableId, value, description);\n succeedSpinner(`Updated variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Set description of variable\n * @param {string} variableId variable id\n * @param {string} description variable description\n */\nexport async function setVariableDescription(variableId, description) {\n showSpinner(`Setting description of variable ${variableId}...`);\n try {\n await updateVariableDescription(variableId, description);\n succeedSpinner(`Set description of variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Delete a variable\n * @param {string} variableId variable id\n */\nexport async function deleteVariableById(variableId) {\n showSpinner(`Deleting variable ${variableId}...`);\n try {\n await deleteVariable(variableId);\n succeedSpinner(`Deleted variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Delete all variables\n */\nexport async function deleteVariables() {\n try {\n const variables = await readVariables();\n createProgressBar(variables.length, `Deleting variable...`);\n for (const variable of variables) {\n try {\n await deleteVariable(variable._id);\n updateProgressBar(`Deleted variable ${variable._id}`);\n } catch (error) {\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n }\n stopProgressBar(`Variables deleted.`);\n } catch (error) {\n stopProgressBar(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n}\n\n/**\n * Describe a variable\n * @param {string} variableId variable id\n */\nexport async function describeVariable(variableId) {\n const variable = await readVariable(variableId);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], variable._id]);\n table.push([\n 'Value'['brightCyan'],\n wordwrap(decodeBase64(variable.valueBase64), 40),\n ]);\n table.push([\n 'Status'['brightCyan'],\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n ]);\n table.push(['Description'['brightCyan'], wordwrap(variable.description, 60)]);\n table.push([\n 'Modified'['brightCyan'],\n new Date(variable.lastChangeDate).toLocaleString(),\n ]);\n table.push([\n 'Modifier'['brightCyan'],\n await resolveUserName('teammember', variable.lastChangedBy),\n ]);\n table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);\n printMessage(table.toString(), 'data');\n}\n\n/**\n * Export a single variable to file\n * @param {String} variableId Variable id\n * @param {String} file Optional filename\n * @param {boolean} noDecode Do not include decoded variable value in export\n */\nexport async function exportVariableToFile(\n variableId: string,\n file: string | null,\n noDecode: boolean\n) {\n debugMessage(\n `Cli.VariablesOps.exportVariableToFile: start [variableId=${variableId}, file=${file}]`\n );\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(variableId, 'variable');\n }\n const filePath = getFilePath(fileName, true);\n try {\n createProgressBar(1, `Exporting variable ${variableId}`);\n const fileData = await exportVariable(variableId, noDecode);\n saveJsonToFile(fileData, filePath);\n updateProgressBar(`Exported variable ${variableId}`);\n stopProgressBar(\n // @ts-expect-error - brightCyan colors the string, even though it is not a property of string\n `Exported ${variableId.brightCyan} to ${filePath.brightCyan}.`\n );\n } catch (err) {\n stopProgressBar(`${err}`);\n printMessage(err, 'error');\n }\n debugMessage(\n `Cli.VariablesOps.exportVariableToFile: end [variableId=${variableId}, file=${file}]`\n );\n}\n\n/**\n * Export all variables to single file\n * @param {string} file Optional filename\n * @param {boolean} noDecode Do not include decoded variable value in export\n */\nexport async function exportVariablesToFile(\n file: string | null,\n noDecode: boolean\n) {\n debugMessage(`Cli.VariablesOps.exportVariablesToFile: start [file=${file}]`);\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(\n `all${titleCase(state.getRealm())}Variables`,\n 'variable'\n );\n }\n try {\n const variablesExport = await exportVariables(noDecode);\n saveJsonToFile(variablesExport, getFilePath(fileName, true));\n } catch (error) {\n printMessage(error.message, 'error');\n printMessage(`exportVariablesToFile: ${error.response?.status}`, 'error');\n }\n debugMessage(`Cli.VariablesOps.exportVariablesToFile: end [file=${file}]`);\n}\n\n/**\n * Export all variables to seperate files\n * @param {boolean} noDecode Do not include decoded variable value in export\n */\nexport async function exportVariablesToFiles(noDecode: boolean) {\n const variableList = await readVariables();\n createProgressIndicator(\n 'determinate',\n variableList.length,\n 'Exporting variables'\n );\n for (const variable of variableList) {\n if (!noDecode) {\n variable.value = decodeBase64(variable.valueBase64);\n }\n updateProgressIndicator(`Writing variable ${variable._id}`);\n const fileName = getTypedFilename(variable._id, 'variable');\n saveToFile('variable', variable, '_id', getFilePath(fileName, true));\n }\n stopProgressIndicator(`${variableList.length} variables exported`);\n}\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAGpD,SACEC,mBAAmB,EACnBC,iBAAiB,EACjBC,uBAAuB,EACvBC,WAAW,EACXC,YAAY,EACZC,WAAW,EACXC,YAAY,EACZC,WAAW,EACXC,eAAe,EACfC,qBAAqB,EACrBC,cAAc,EACdC,iBAAiB,EACjBC,uBAAuB,QAClB,kBAAkB;AACzB,SACEC,gBAAgB,EAChBC,cAAc,EACdC,UAAU,EACVC,SAAS,QACJ,4BAA4B;AACnC,OAAOC,QAAQ,MAAM,kBAAkB;AAEvC,MAAM;EAAEC,YAAY;EAAEC;AAAY,CAAC,GAAGrB,KAAK,CAACsB,KAAK;AACjD,MAAM;EAAEC;AAAgB,CAAC,GAAGvB,KAAK,CAACwB,GAAG,CAACC,OAAO;AAC7C,MAAM;EACJC,aAAa;EACbC,YAAY;EACZC,cAAc;EACdC,eAAe;EACfC,cAAc;EACdC,yBAAyB;EACzBC,cAAc,EAAEC;AAClB,CAAC,GAAGjC,KAAK,CAACkC,KAAK,CAACC,QAAQ;;AAExB;AACA;AACA;AACA;AACA,OAAO,eAAeC,aAAaA,CAACC,IAAI,EAAE;EACxC,IAAIC,SAAS,GAAG,EAAE;EAClB,IAAI;IACFA,SAAS,GAAG,MAAMZ,aAAa,CAAC,CAAC;IACjCY,SAAS,CAACC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,GAAG,CAACC,aAAa,CAACF,CAAC,CAACC,GAAG,CAAC,CAAC;EACtD,CAAC,CAAC,OAAOE,KAAK,EAAE;IACdpC,YAAY,CAAE,GAAEoC,KAAK,CAACC,OAAQ,EAAC,EAAE,OAAO,CAAC;IACzCrC,YAAY,CAACoC,KAAK,CAACE,QAAQ,CAACC,IAAI,EAAE,OAAO,CAAC;EAC5C;EACA,IAAIV,IAAI,EAAE;IACR,MAAMW,KAAK,GAAG3C,WAAW,CAAC,CACxB,IAAI,CAAC,YAAY,CAAC,EAClB,OAAO,CAAC,YAAY,CAAC,EACrB,QAAQ,CAAC,YAAY,CAAC,EACtB,aAAa,CAAC,YAAY,CAAC,EAC3B,UAAU,CAAC,YAAY,CAAC,EACxB,gBAAgB,CAAC,YAAY,CAAC,CAC/B,CAAC;IACF,KAAK,MAAM8B,QAAQ,IAAIG,SAAS,EAAE;MAChCU,KAAK,CAACC,IAAI,CAAC,CACTd,QAAQ,CAACO,GAAG,EACZvB,QAAQ,CAACC,YAAY,CAACe,QAAQ,CAACe,WAAW,CAAC,EAAE,EAAE,CAAC,EAChDf,QAAQ,CAACgB,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,EACnEhC,QAAQ,CAACgB,QAAQ,CAACiB,WAAW,EAAE,EAAE,CAAC,EAClCnD,KAAK,CAACoD,0BAA0B,CAAC,CAAC,GAC9BlB,QAAQ,CAACmB,aAAa,GACtB,MAAM/B,eAAe,CAAC,YAAY,EAAEY,QAAQ,CAACmB,aAAa,CAAC,EAC/D,IAAIC,IAAI,CAACpB,QAAQ,CAACqB,cAAc,CAAC,CAACC,WAAW,CAAC,CAAC,CAChD,CAAC;IACJ;IACAjD,YAAY,CAACwC,KAAK,CAACU,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;EACxC,CAAC,MAAM;IACLpB,SAAS,CAACqB,OAAO,CAAExB,QAAQ,IAAK;MAC9B3B,YAAY,CAAC2B,QAAQ,CAACO,GAAG,EAAE,MAAM,CAAC;IACpC,CAAC,CAAC;EACJ;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAekB,cAAcA,CAClCC,UAAkB,EAClBC,KAAa,EACbV,WAAmB,EACnBW,IAA4B,GAAG,QAAQ,EACvC;EACAtD,WAAW,CAAE,qBAAoBoD,UAAW,KAAI,CAAC;EACjD,IAAI;IACF,MAAM5B,eAAe,CAAC4B,UAAU,EAAEC,KAAK,EAAEV,WAAW,EAAEW,IAAI,CAAC;IAC3DnD,cAAc,CAAE,oBAAmBiD,UAAW,EAAC,CAAC;EAClD,CAAC,CAAC,OAAOjB,KAAK,EAAE;IACdrC,WAAW,CACTqC,KAAK,CAACE,QAAQ,GACT,UAASF,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACiB,IAAK,MAAKpB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EAAC,GACrED,KACN,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeZ,cAAcA,CAAC6B,UAAU,EAAEC,KAAK,EAAEV,WAAW,EAAE;EACnE3C,WAAW,CAAE,qBAAoBoD,UAAW,KAAI,CAAC;EACjD,IAAI;IACF,MAAM5B,eAAe,CAAC4B,UAAU,EAAEC,KAAK,EAAEV,WAAW,CAAC;IACrDxC,cAAc,CAAE,oBAAmBiD,UAAW,EAAC,CAAC;EAClD,CAAC,CAAC,OAAOjB,KAAK,EAAE;IACdrC,WAAW,CACR,UAASqC,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACiB,IAAK,MAAKpB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EACtE,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeoB,sBAAsBA,CAACJ,UAAU,EAAET,WAAW,EAAE;EACpE3C,WAAW,CAAE,mCAAkCoD,UAAW,KAAI,CAAC;EAC/D,IAAI;IACF,MAAM9B,yBAAyB,CAAC8B,UAAU,EAAET,WAAW,CAAC;IACxDxC,cAAc,CAAE,+BAA8BiD,UAAW,EAAC,CAAC;EAC7D,CAAC,CAAC,OAAOjB,KAAK,EAAE;IACdrC,WAAW,CACR,UAASqC,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACiB,IAAK,MAAKpB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EACtE,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAeqB,kBAAkBA,CAACL,UAAU,EAAE;EACnDpD,WAAW,CAAE,qBAAoBoD,UAAW,KAAI,CAAC;EACjD,IAAI;IACF,MAAM/B,cAAc,CAAC+B,UAAU,CAAC;IAChCjD,cAAc,CAAE,oBAAmBiD,UAAW,EAAC,CAAC;EAClD,CAAC,CAAC,OAAOjB,KAAK,EAAE;IACdrC,WAAW,CACR,UAASqC,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACiB,IAAK,MAAKpB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EACtE,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA,OAAO,eAAesB,eAAeA,CAAA,EAAG;EACtC,IAAI;IACF,MAAM7B,SAAS,GAAG,MAAMZ,aAAa,CAAC,CAAC;IACvCvB,iBAAiB,CAACmC,SAAS,CAAC8B,MAAM,EAAG,sBAAqB,CAAC;IAC3D,KAAK,MAAMjC,QAAQ,IAAIG,SAAS,EAAE;MAChC,IAAI;QACF,MAAMR,cAAc,CAACK,QAAQ,CAACO,GAAG,CAAC;QAClC7B,iBAAiB,CAAE,oBAAmBsB,QAAQ,CAACO,GAAI,EAAC,CAAC;MACvD,CAAC,CAAC,OAAOE,KAAK,EAAE;QACdpC,YAAY,CACT,UAASoC,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACiB,IAAK,MAAKpB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EAAC,EACrE,OACF,CAAC;MACH;IACF;IACAnC,eAAe,CAAE,oBAAmB,CAAC;EACvC,CAAC,CAAC,OAAOkC,KAAK,EAAE;IACdlC,eAAe,CACZ,UAASkC,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACiB,IAAK,MAAKpB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EACtE,CAAC;IACDrC,YAAY,CACT,UAASoC,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACiB,IAAK,MAAKpB,KAAK,CAACE,QAAQ,CAACC,IAAI,CAACF,OAAQ,EAAC,EACrE,OACF,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAewB,gBAAgBA,CAACR,UAAU,EAAE;EACjD,MAAM1B,QAAQ,GAAG,MAAMR,YAAY,CAACkC,UAAU,CAAC;EAC/C,MAAMb,KAAK,GAAG9C,mBAAmB,CAAC,CAAC;EACnC8C,KAAK,CAACC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,EAAEd,QAAQ,CAACO,GAAG,CAAC,CAAC;EAChDM,KAAK,CAACC,IAAI,CAAC,CACT,OAAO,CAAC,YAAY,CAAC,EACrB9B,QAAQ,CAACC,YAAY,CAACe,QAAQ,CAACe,WAAW,CAAC,EAAE,EAAE,CAAC,CACjD,CAAC;EACFF,KAAK,CAACC,IAAI,CAAC,CACT,QAAQ,CAAC,YAAY,CAAC,EACtBd,QAAQ,CAACgB,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,UAAU,CAAC,WAAW,CAAC,CACpE,CAAC;EACFH,KAAK,CAACC,IAAI,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE9B,QAAQ,CAACgB,QAAQ,CAACiB,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;EAC7EJ,KAAK,CAACC,IAAI,CAAC,CACT,UAAU,CAAC,YAAY,CAAC,EACxB,IAAIM,IAAI,CAACpB,QAAQ,CAACqB,cAAc,CAAC,CAACc,cAAc,CAAC,CAAC,CACnD,CAAC;EACFtB,KAAK,CAACC,IAAI,CAAC,CACT,UAAU,CAAC,YAAY,CAAC,EACxB,MAAM1B,eAAe,CAAC,YAAY,EAAEY,QAAQ,CAACmB,aAAa,CAAC,CAC5D,CAAC;EACFN,KAAK,CAACC,IAAI,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,EAAEd,QAAQ,CAACmB,aAAa,CAAC,CAAC;EACnE9C,YAAY,CAACwC,KAAK,CAACU,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAea,oBAAoBA,CACxCV,UAAkB,EAClBW,IAAmB,EACnBC,QAAiB,EACjB;EACAnE,YAAY,CACT,4DAA2DuD,UAAW,UAASW,IAAK,GACvF,CAAC;EACD,IAAIE,QAAQ,GAAGF,IAAI;EACnB,IAAI,CAACE,QAAQ,EAAE;IACbA,QAAQ,GAAG3D,gBAAgB,CAAC8C,UAAU,EAAE,UAAU,CAAC;EACrD;EACA,MAAMc,QAAQ,GAAGtD,WAAW,CAACqD,QAAQ,EAAE,IAAI,CAAC;EAC5C,IAAI;IACFvE,iBAAiB,CAAC,CAAC,EAAG,sBAAqB0D,UAAW,EAAC,CAAC;IACxD,MAAMe,QAAQ,GAAG,MAAMhD,cAAc,CAACiC,UAAU,EAAEY,QAAQ,CAAC;IAC3DzD,cAAc,CAAC4D,QAAQ,EAAED,QAAQ,CAAC;IAClC9D,iBAAiB,CAAE,qBAAoBgD,UAAW,EAAC,CAAC;IACpDnD,eAAe;IACb;IACC,YAAWmD,UAAU,CAACgB,UAAW,OAAMF,QAAQ,CAACE,UAAW,GAC9D,CAAC;EACH,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZpE,eAAe,CAAE,GAAEoE,GAAI,EAAC,CAAC;IACzBtE,YAAY,CAACsE,GAAG,EAAE,OAAO,CAAC;EAC5B;EACAxE,YAAY,CACT,0DAAyDuD,UAAW,UAASW,IAAK,GACrF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeO,qBAAqBA,CACzCP,IAAmB,EACnBC,QAAiB,EACjB;EACAnE,YAAY,CAAE,uDAAsDkE,IAAK,GAAE,CAAC;EAC5E,IAAIE,QAAQ,GAAGF,IAAI;EACnB,IAAI,CAACE,QAAQ,EAAE;IACbA,QAAQ,GAAG3D,gBAAgB,CACxB,MAAKG,SAAS,CAACjB,KAAK,CAAC+E,QAAQ,CAAC,CAAC,CAAE,WAAU,EAC5C,UACF,CAAC;EACH;EACA,IAAI;IACF,MAAMC,eAAe,GAAG,MAAMpD,eAAe,CAAC4C,QAAQ,CAAC;IACvDzD,cAAc,CAACiE,eAAe,EAAE5D,WAAW,CAACqD,QAAQ,EAAE,IAAI,CAAC,CAAC;EAC9D,CAAC,CAAC,OAAO9B,KAAK,EAAE;IAAA,IAAAsC,eAAA;IACd1E,YAAY,CAACoC,KAAK,CAACC,OAAO,EAAE,OAAO,CAAC;IACpCrC,YAAY,CAAE,0BAAuB,CAAA0E,eAAA,GAAEtC,KAAK,CAACE,QAAQ,cAAAoC,eAAA,uBAAdA,eAAA,CAAgBC,MAAO,EAAC,EAAE,OAAO,CAAC;EAC3E;EACA7E,YAAY,CAAE,qDAAoDkE,IAAK,GAAE,CAAC;AAC5E;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAeY,sBAAsBA,CAACX,QAAiB,EAAE;EAC9D,MAAMY,YAAY,GAAG,MAAM3D,aAAa,CAAC,CAAC;EAC1CtB,uBAAuB,CACrB,aAAa,EACbiF,YAAY,CAACjB,MAAM,EACnB,qBACF,CAAC;EACD,KAAK,MAAMjC,QAAQ,IAAIkD,YAAY,EAAE;IACnC,IAAI,CAACZ,QAAQ,EAAE;MACbtC,QAAQ,CAAC2B,KAAK,GAAG1C,YAAY,CAACe,QAAQ,CAACe,WAAW,CAAC;IACrD;IACApC,uBAAuB,CAAE,oBAAmBqB,QAAQ,CAACO,GAAI,EAAC,CAAC;IAC3D,MAAMgC,QAAQ,GAAG3D,gBAAgB,CAACoB,QAAQ,CAACO,GAAG,EAAE,UAAU,CAAC;IAC3DzB,UAAU,CAAC,UAAU,EAAEkB,QAAQ,EAAE,KAAK,EAAEd,WAAW,CAACqD,QAAQ,EAAE,IAAI,CAAC,CAAC;EACtE;EACA/D,qBAAqB,CAAE,GAAE0E,YAAY,CAACjB,MAAO,qBAAoB,CAAC;AACpE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rockcarver/frodo-cli",
|
|
3
|
-
"version": "2.0.0-
|
|
3
|
+
"version": "2.0.0-29",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A command line interface to manage ForgeRock Identity Cloud tenants, ForgeOps deployments, and classic deployments.",
|
|
6
6
|
"keywords": [
|
|
@@ -52,7 +52,8 @@
|
|
|
52
52
|
"testTimeout": 30000,
|
|
53
53
|
"testMatch": [
|
|
54
54
|
"**/?(*.)(test).js"
|
|
55
|
-
]
|
|
55
|
+
],
|
|
56
|
+
"globalSetup": "./global-jest-setup.js"
|
|
56
57
|
},
|
|
57
58
|
"contributors": [
|
|
58
59
|
{
|
|
@@ -107,7 +108,7 @@
|
|
|
107
108
|
]
|
|
108
109
|
},
|
|
109
110
|
"dependencies": {
|
|
110
|
-
"@rockcarver/frodo-lib": "2.0.0-
|
|
111
|
+
"@rockcarver/frodo-lib": "2.0.0-47",
|
|
111
112
|
"chokidar": "^3.5.3",
|
|
112
113
|
"cli-progress": "^3.11.2",
|
|
113
114
|
"cli-table3": "^0.6.3",
|