@rockcarver/frodo-cli 2.0.0-51 → 2.0.0-52
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 +10 -1
- package/esm/app.js +7 -2
- package/esm/app.js.map +1 -1
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +3 -6
- package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +46 -51
- package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-federation-export.js +1 -1
- package/esm/cli/admin/admin-federation-export.js.map +1 -1
- package/esm/cli/admin/admin-federation-import.js +1 -1
- package/esm/cli/admin/admin-federation-import.js.map +1 -1
- package/esm/cli/admin/admin-federation-list.js +1 -1
- package/esm/cli/admin/admin-federation-list.js.map +1 -1
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +4 -6
- package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js +4 -6
- package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
- package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +4 -9
- 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 +4 -9
- 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 +3 -9
- package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
- package/esm/cli/admin/admin-remove-static-user-mapping.js +3 -6
- package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
- package/esm/cli/admin/admin-repair-org-model.js +4 -6
- package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +4 -6
- package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
- package/esm/cli/admin/admin-show-generic-extension-attributes.js +4 -6
- package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
- package/esm/cli/agent/agent-delete.js +8 -21
- package/esm/cli/agent/agent-delete.js.map +1 -1
- package/esm/cli/agent/agent-export.js +6 -3
- package/esm/cli/agent/agent-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-delete.js +7 -20
- package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
- package/esm/cli/agent/agent-gateway-export.js +6 -3
- package/esm/cli/agent/agent-gateway-export.js.map +1 -1
- package/esm/cli/agent/agent-gateway-import.js +8 -4
- package/esm/cli/agent/agent-gateway-import.js.map +1 -1
- package/esm/cli/agent/agent-gateway-list.js +2 -1
- package/esm/cli/agent/agent-gateway-list.js.map +1 -1
- package/esm/cli/agent/agent-import.js +8 -4
- package/esm/cli/agent/agent-import.js.map +1 -1
- package/esm/cli/agent/agent-java-delete.js +7 -20
- package/esm/cli/agent/agent-java-delete.js.map +1 -1
- package/esm/cli/agent/agent-java-export.js +6 -3
- package/esm/cli/agent/agent-java-export.js.map +1 -1
- package/esm/cli/agent/agent-java-import.js +8 -4
- package/esm/cli/agent/agent-java-import.js.map +1 -1
- package/esm/cli/agent/agent-java-list.js +2 -1
- package/esm/cli/agent/agent-java-list.js.map +1 -1
- package/esm/cli/agent/agent-list.js +2 -1
- package/esm/cli/agent/agent-list.js.map +1 -1
- package/esm/cli/agent/agent-web-delete.js +7 -20
- package/esm/cli/agent/agent-web-delete.js.map +1 -1
- package/esm/cli/agent/agent-web-export.js +6 -3
- package/esm/cli/agent/agent-web-export.js.map +1 -1
- package/esm/cli/agent/agent-web-import.js +8 -4
- package/esm/cli/agent/agent-web-import.js.map +1 -1
- package/esm/cli/agent/agent-web-list.js +2 -1
- package/esm/cli/agent/agent-web-list.js.map +1 -1
- package/esm/cli/app/app-delete.js +4 -4
- package/esm/cli/app/app-delete.js.map +1 -1
- package/esm/cli/app/app-export.js +6 -6
- package/esm/cli/app/app-export.js.map +1 -1
- package/esm/cli/app/app-import.js +8 -8
- package/esm/cli/app/app-import.js.map +1 -1
- package/esm/cli/app/app-list.js +2 -1
- package/esm/cli/app/app-list.js.map +1 -1
- package/esm/cli/conn/conn-delete.js +7 -1
- package/esm/cli/conn/conn-delete.js.map +1 -1
- package/esm/cli/conn/conn-save.js +9 -9
- package/esm/cli/conn/conn-save.js.map +1 -1
- package/esm/cli/email/email-template-export.js +6 -3
- package/esm/cli/email/email-template-export.js.map +1 -1
- package/esm/cli/email/email-template-import.js +8 -4
- package/esm/cli/email/email-template-import.js.map +1 -1
- package/esm/cli/email/email-template-list.js +2 -1
- package/esm/cli/email/email-template-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-create.js +1 -1
- package/esm/cli/esv/esv-secret-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-delete.js +1 -1
- package/esm/cli/esv/esv-secret-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-describe.js +1 -1
- package/esm/cli/esv/esv-secret-describe.js.map +1 -1
- package/esm/cli/esv/esv-secret-export.js +1 -1
- package/esm/cli/esv/esv-secret-export.js.map +1 -1
- package/esm/cli/esv/esv-secret-list.js +1 -1
- package/esm/cli/esv/esv-secret-list.js.map +1 -1
- package/esm/cli/esv/esv-secret-set.js +1 -1
- package/esm/cli/esv/esv-secret-set.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js +1 -1
- package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-create.js +1 -1
- package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js +1 -1
- package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js +1 -1
- package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
- package/esm/cli/esv/esv-secret-version-list.js +1 -1
- package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-create.js +1 -1
- package/esm/cli/esv/esv-variable-create.js.map +1 -1
- package/esm/cli/esv/esv-variable-delete.js +1 -1
- package/esm/cli/esv/esv-variable-delete.js.map +1 -1
- package/esm/cli/esv/esv-variable-describe.js +1 -1
- package/esm/cli/esv/esv-variable-describe.js.map +1 -1
- package/esm/cli/esv/esv-variable-export.js +1 -1
- package/esm/cli/esv/esv-variable-export.js.map +1 -1
- package/esm/cli/esv/esv-variable-list.js +1 -1
- package/esm/cli/esv/esv-variable-list.js.map +1 -1
- package/esm/cli/esv/esv-variable-set.js +1 -1
- package/esm/cli/esv/esv-variable-set.js.map +1 -1
- package/esm/cli/idm/idm-count.js +2 -1
- package/esm/cli/idm/idm-count.js.map +1 -1
- package/esm/cli/idm/idm-export.js +6 -3
- package/esm/cli/idm/idm-export.js.map +1 -1
- package/esm/cli/idm/idm-import.js +8 -4
- package/esm/cli/idm/idm-import.js.map +1 -1
- package/esm/cli/idm/idm-list.js +2 -1
- package/esm/cli/idm/idm-list.js.map +1 -1
- package/esm/cli/idp/idp-export.js +6 -3
- package/esm/cli/idp/idp-export.js.map +1 -1
- package/esm/cli/idp/idp-import.js +8 -4
- package/esm/cli/idp/idp-import.js.map +1 -1
- package/esm/cli/idp/idp-list.js +2 -1
- package/esm/cli/idp/idp-list.js.map +1 -1
- package/esm/cli/journey/journey-delete.js +6 -7
- package/esm/cli/journey/journey-delete.js.map +1 -1
- package/esm/cli/journey/journey-describe.js +15 -9
- package/esm/cli/journey/journey-describe.js.map +1 -1
- package/esm/cli/journey/journey-export.js +6 -3
- package/esm/cli/journey/journey-export.js.map +1 -1
- package/esm/cli/journey/journey-import.js +8 -4
- package/esm/cli/journey/journey-import.js.map +1 -1
- package/esm/cli/journey/journey-list.js +2 -1
- package/esm/cli/journey/journey-list.js.map +1 -1
- package/esm/cli/journey/journey-prune.js +3 -2
- package/esm/cli/journey/journey-prune.js.map +1 -1
- package/esm/cli/log/log-fetch.js +6 -2
- package/esm/cli/log/log-fetch.js.map +1 -1
- package/esm/cli/log/log-list.js +12 -3
- package/esm/cli/log/log-list.js.map +1 -1
- package/esm/cli/log/log-tail.js +6 -2
- package/esm/cli/log/log-tail.js.map +1 -1
- package/esm/cli/oauth/oauth-client-export.js +6 -6
- package/esm/cli/oauth/oauth-client-export.js.map +1 -1
- package/esm/cli/oauth/oauth-client-import.js +8 -8
- package/esm/cli/oauth/oauth-client-import.js.map +1 -1
- package/esm/cli/oauth/oauth-client-list.js +2 -1
- package/esm/cli/oauth/oauth-client-list.js.map +1 -1
- package/esm/cli/saml/saml-describe.js +2 -1
- package/esm/cli/saml/saml-describe.js.map +1 -1
- package/esm/cli/saml/saml-export.js +6 -3
- package/esm/cli/saml/saml-export.js.map +1 -1
- package/esm/cli/saml/saml-import.js +8 -4
- package/esm/cli/saml/saml-import.js.map +1 -1
- package/esm/cli/saml/saml-list.js +2 -1
- package/esm/cli/saml/saml-list.js.map +1 -1
- package/esm/cli/saml/saml-metadata-export.js +10 -2
- package/esm/cli/saml/saml-metadata-export.js.map +1 -1
- package/esm/cli/script/script-delete.js +10 -4
- package/esm/cli/script/script-delete.js.map +1 -1
- package/esm/cli/script/script-export.js +9 -13
- package/esm/cli/script/script-export.js.map +1 -1
- package/esm/cli/script/script-import.js +19 -14
- package/esm/cli/script/script-import.js.map +1 -1
- package/esm/cli/service/service-delete.js +4 -2
- package/esm/cli/service/service-delete.js.map +1 -1
- package/esm/cli/service/service-export.js +6 -3
- package/esm/cli/service/service-export.js.map +1 -1
- package/esm/cli/service/service-import.js +8 -4
- package/esm/cli/service/service-import.js.map +1 -1
- package/esm/cli/service/service-list.js +2 -1
- package/esm/cli/service/service-list.js.map +1 -1
- package/esm/cli/shell/shell.js +2 -4
- package/esm/cli/shell/shell.js.map +1 -1
- package/esm/cli/theme/theme-delete.js +7 -4
- package/esm/cli/theme/theme-delete.js.map +1 -1
- package/esm/cli/theme/theme-export.js +8 -4
- package/esm/cli/theme/theme-export.js.map +1 -1
- package/esm/cli/theme/theme-import.js +10 -5
- package/esm/cli/theme/theme-import.js.map +1 -1
- package/esm/cli/theme/theme-list.js +2 -1
- package/esm/cli/theme/theme-list.js.map +1 -1
- package/esm/ops/AdminOps.js +790 -3
- package/esm/ops/AdminOps.js.map +1 -1
- package/esm/ops/AgentOps.js +638 -305
- package/esm/ops/AgentOps.js.map +1 -1
- package/esm/ops/ApplicationOps.js +91 -79
- package/esm/ops/ApplicationOps.js.map +1 -1
- package/esm/ops/AuthenticateOps.js +4 -9
- package/esm/ops/AuthenticateOps.js.map +1 -1
- package/esm/ops/AuthenticationSettingsOps.js +22 -23
- package/esm/ops/AuthenticationSettingsOps.js.map +1 -1
- package/esm/ops/CirclesOfTrustOps.js +52 -55
- package/esm/ops/CirclesOfTrustOps.js.map +1 -1
- package/esm/ops/ConfigOps.js +100 -84
- package/esm/ops/ConfigOps.js.map +1 -1
- package/esm/ops/ConnectionProfileOps.js +9 -7
- package/esm/ops/ConnectionProfileOps.js.map +1 -1
- package/esm/ops/EmailTemplateOps.js +64 -47
- package/esm/ops/EmailTemplateOps.js.map +1 -1
- package/esm/ops/IdmOps.js +149 -117
- package/esm/ops/IdmOps.js.map +1 -1
- package/esm/ops/IdpOps.js +76 -46
- package/esm/ops/IdpOps.js.map +1 -1
- package/esm/ops/JourneyOps.js +333 -238
- package/esm/ops/JourneyOps.js.map +1 -1
- package/esm/ops/LogOps.js +15 -23
- package/esm/ops/LogOps.js.map +1 -1
- package/esm/ops/OAuth2ClientOps.js +43 -36
- package/esm/ops/OAuth2ClientOps.js.map +1 -1
- package/esm/ops/PolicyOps.js +104 -108
- package/esm/ops/PolicyOps.js.map +1 -1
- package/esm/ops/PolicySetOps.js +72 -78
- package/esm/ops/PolicySetOps.js.map +1 -1
- package/esm/ops/ResourceTypeOps.js +84 -99
- package/esm/ops/ResourceTypeOps.js.map +1 -1
- package/esm/ops/Saml2Ops.js +132 -88
- package/esm/ops/Saml2Ops.js.map +1 -1
- package/esm/ops/ScriptOps.js +90 -80
- package/esm/ops/ScriptOps.js.map +1 -1
- package/esm/ops/ServiceOps.js +125 -87
- package/esm/ops/ServiceOps.js.map +1 -1
- package/esm/ops/ThemeOps.js +170 -139
- package/esm/ops/ThemeOps.js.map +1 -1
- package/esm/ops/{AdminFederationOps.js → cloud/AdminFederationOps.js} +10 -16
- package/esm/ops/cloud/AdminFederationOps.js.map +1 -0
- package/esm/ops/{SecretsOps.js → cloud/SecretsOps.js} +123 -129
- package/esm/ops/cloud/SecretsOps.js.map +1 -0
- package/esm/ops/{VariablesOps.js → cloud/VariablesOps.js} +48 -52
- package/esm/ops/cloud/VariablesOps.js.map +1 -0
- package/esm/ops/templates/OAuth2ClientTemplate.json +270 -0
- package/esm/ops/templates/OAuth2TrustedJwtIssuerTemplate.json +38 -0
- package/esm/ops/templates/OrgModelUserAttributesTemplate.json +149 -0
- package/esm/ops/templates/autoaccess/IPAddresses.json +202 -0
- package/esm/ops/templates/autoaccess/UserAgents.json +35 -0
- package/esm/ops/templates/autoaccess/Usernames.json +203 -0
- package/esm/ops/templates/cloud/GenericExtensionAttributesTemplate.json +392 -0
- package/esm/ops/templates/cloud/managed.json +4119 -0
- package/esm/ops/utils/OpsUtils.js.map +1 -1
- package/esm/utils/Console.js +31 -0
- package/esm/utils/Console.js.map +1 -1
- package/package.json +10 -6
- package/esm/ops/AdminFederationOps.js.map +0 -1
- package/esm/ops/SecretsOps.js.map +0 -1
- package/esm/ops/VariablesOps.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { frodo } from '@rockcarver/frodo-lib';
|
|
2
2
|
import fs from 'fs';
|
|
3
|
-
import { createProgressIndicator, debugMessage, printMessage, stopProgressIndicator, updateProgressIndicator } from '
|
|
3
|
+
import { createProgressIndicator, debugMessage, printError, printMessage, stopProgressIndicator, updateProgressIndicator } from '../../utils/Console';
|
|
4
4
|
const {
|
|
5
5
|
readAdminFederationProviders,
|
|
6
6
|
exportAdminFederationProvider,
|
|
@@ -30,8 +30,7 @@ export async function listAdminFederationProviders() {
|
|
|
30
30
|
});
|
|
31
31
|
outcome = true;
|
|
32
32
|
} catch (err) {
|
|
33
|
-
|
|
34
|
-
printMessage(err, 'error');
|
|
33
|
+
printError(err);
|
|
35
34
|
}
|
|
36
35
|
return outcome;
|
|
37
36
|
}
|
|
@@ -59,7 +58,7 @@ export async function exportAdminFederationProviderToFile(providerId, file = '',
|
|
|
59
58
|
outcome = true;
|
|
60
59
|
} catch (err) {
|
|
61
60
|
stopProgressIndicator(indicatorId, `${err}`);
|
|
62
|
-
|
|
61
|
+
printError(err);
|
|
63
62
|
}
|
|
64
63
|
return outcome;
|
|
65
64
|
}
|
|
@@ -84,9 +83,8 @@ export async function exportAdminFederationProvidersToFile(file = '', includeMet
|
|
|
84
83
|
stopProgressIndicator(spinnerId, `Exported all providers to ${filePath}`, 'success');
|
|
85
84
|
outcome = true;
|
|
86
85
|
} catch (error) {
|
|
87
|
-
var _error$response;
|
|
88
86
|
stopProgressIndicator(spinnerId, `Error exporting all providers.`, 'fail');
|
|
89
|
-
|
|
87
|
+
printError(error);
|
|
90
88
|
}
|
|
91
89
|
return outcome;
|
|
92
90
|
}
|
|
@@ -111,9 +109,8 @@ export async function exportAdminFederationProvidersToFiles(includeMeta = true)
|
|
|
111
109
|
stopProgressIndicator(indicatorId, `${allIdpsData.length} providers exported.`);
|
|
112
110
|
outcome = true;
|
|
113
111
|
} catch (error) {
|
|
114
|
-
var _error$response2;
|
|
115
112
|
stopProgressIndicator(indicatorId, `Error exporting all providers.`, 'fail');
|
|
116
|
-
|
|
113
|
+
printError(error);
|
|
117
114
|
}
|
|
118
115
|
return outcome;
|
|
119
116
|
}
|
|
@@ -135,9 +132,8 @@ export async function importAdminFederationProviderFromFile(providerId, file) {
|
|
|
135
132
|
stopProgressIndicator(spinnerId, `Successfully imported provider ${providerId} from ${filePath}.`, 'success');
|
|
136
133
|
outcome = true;
|
|
137
134
|
} catch (error) {
|
|
138
|
-
var _error$response3;
|
|
139
135
|
stopProgressIndicator(spinnerId, `Error importing provider ${providerId} from ${filePath}.`, 'fail');
|
|
140
|
-
|
|
136
|
+
printError(error);
|
|
141
137
|
}
|
|
142
138
|
return outcome;
|
|
143
139
|
}
|
|
@@ -159,9 +155,8 @@ export async function importFirstAdminFederationProviderFromFile(file) {
|
|
|
159
155
|
stopProgressIndicator(spinnerId, `Successfully imported first provider from ${filePath}.`, 'success');
|
|
160
156
|
outcome = true;
|
|
161
157
|
} catch (error) {
|
|
162
|
-
var _error$response4;
|
|
163
158
|
stopProgressIndicator(spinnerId, `Error importing first provider from ${filePath}.`, 'fail');
|
|
164
|
-
|
|
159
|
+
printError(error);
|
|
165
160
|
}
|
|
166
161
|
debugMessage(`cli.AdminFederationOps.importFirstAdminFederationProviderFromFile: end`);
|
|
167
162
|
return outcome;
|
|
@@ -184,9 +179,8 @@ export async function importAdminFederationProvidersFromFile(file) {
|
|
|
184
179
|
stopProgressIndicator(spinnerId, `Imported providers from ${filePath}.`, 'success');
|
|
185
180
|
outcome = true;
|
|
186
181
|
} catch (error) {
|
|
187
|
-
var _error$response5;
|
|
188
182
|
stopProgressIndicator(spinnerId, `Error importing ${filePath}.`, 'fail');
|
|
189
|
-
|
|
183
|
+
printError(error);
|
|
190
184
|
}
|
|
191
185
|
debugMessage(`cli.AdminFederationOps.importAdminFederationProvidersFromFile: end`);
|
|
192
186
|
return outcome;
|
|
@@ -216,14 +210,14 @@ export async function importAdminFederationProvidersFromFiles() {
|
|
|
216
210
|
} catch (error) {
|
|
217
211
|
errors.push(error);
|
|
218
212
|
updateProgressIndicator(indicatorId, `Error importing provider(s) from ${file}`);
|
|
219
|
-
|
|
213
|
+
printError(error);
|
|
220
214
|
}
|
|
221
215
|
}
|
|
222
216
|
stopProgressIndicator(indicatorId, `Finished importing ${total} provider(s) from ${files.length} file(s).`);
|
|
223
217
|
} catch (error) {
|
|
224
218
|
errors.push(error);
|
|
225
219
|
stopProgressIndicator(indicatorId, `Error importing provider(s) from file(s).`);
|
|
226
|
-
|
|
220
|
+
printError(error);
|
|
227
221
|
}
|
|
228
222
|
debugMessage(`cli.AdminFederationOps.importAdminFederationProvidersFromFiles: end`);
|
|
229
223
|
return 0 === errors.length;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminFederationOps.js","names":["frodo","fs","createProgressIndicator","debugMessage","printError","printMessage","stopProgressIndicator","updateProgressIndicator","readAdminFederationProviders","exportAdminFederationProvider","exportAdminFederationProviders","importAdminFederationProvider","importAdminFederationProviders","importFirstAdminFederationProvider","cloud","adminFed","getTypedFilename","saveJsonToFile","getFilePath","getWorkingDirectory","utils","listAdminFederationProviders","outcome","providers","sort","a","b","_id","localeCompare","forEach","socialIdentityProvider","err","exportAdminFederationProviderToFile","providerId","file","includeMeta","fileName","filePath","indicatorId","fileData","exportAdminFederationProvidersToFile","spinnerId","error","exportAdminFederationProvidersToFiles","allIdpsData","length","idpData","importAdminFederationProviderFromFile","data","readFileSync","JSON","parse","importFirstAdminFederationProviderFromFile","importAdminFederationProvidersFromFile","importAdminFederationProvidersFromFiles","errors","names","readdirSync","files","filter","name","toLowerCase","endsWith","map","total","count","Object","keys","idp","push"],"sources":["../../../src/ops/cloud/AdminFederationOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\n\nimport {\n createProgressIndicator,\n debugMessage,\n printError,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from '../../utils/Console';\n\nconst {\n readAdminFederationProviders,\n exportAdminFederationProvider,\n exportAdminFederationProviders,\n importAdminFederationProvider,\n importAdminFederationProviders,\n importFirstAdminFederationProvider,\n} = frodo.cloud.adminFed;\n\nconst { getTypedFilename, saveJsonToFile, getFilePath, getWorkingDirectory } =\n frodo.utils;\n\n/**\n * List providers\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listAdminFederationProviders(): Promise<boolean> {\n let outcome = false;\n try {\n const providers = await readAdminFederationProviders();\n providers.sort((a, b) => a._id.localeCompare(b._id));\n providers.forEach((socialIdentityProvider) => {\n printMessage(`${socialIdentityProvider._id}`, 'data');\n });\n outcome = true;\n } catch (err) {\n printError(err);\n }\n return outcome;\n}\n\n/**\n * Export provider by id\n * @param {string} providerId provider id/name\n * @param {string} file optional export file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportAdminFederationProviderToFile(\n providerId: string,\n file = '',\n includeMeta = true\n): Promise<boolean> {\n let outcome = false;\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(providerId, 'admin.federation');\n }\n const filePath = getFilePath(fileName, true);\n const indicatorId = createProgressIndicator(\n 'determinate',\n 1,\n `Exporting ${providerId}`\n );\n try {\n updateProgressIndicator(indicatorId, `Writing file ${filePath}`);\n const fileData = await exportAdminFederationProvider(providerId);\n saveJsonToFile(fileData, filePath, includeMeta);\n stopProgressIndicator(\n indicatorId,\n `Exported ${providerId['brightCyan']} to ${filePath['brightCyan']}.`\n );\n outcome = true;\n } catch (err) {\n stopProgressIndicator(indicatorId, `${err}`);\n printError(err);\n }\n return outcome;\n}\n\n/**\n * Export all providers\n * @param {string} file optional export file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportAdminFederationProvidersToFile(\n file = '',\n includeMeta = true\n): Promise<boolean> {\n let outcome = false;\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Exporting all providers...`\n );\n try {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(`allProviders`, 'admin.federation');\n }\n const filePath = getFilePath(fileName, true);\n const fileData = await exportAdminFederationProviders();\n saveJsonToFile(fileData, filePath, includeMeta);\n stopProgressIndicator(\n spinnerId,\n `Exported all providers to ${filePath}`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(spinnerId, `Error exporting all providers.`, 'fail');\n printError(error);\n }\n return outcome;\n}\n\n/**\n * Export all providers to individual files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportAdminFederationProvidersToFiles(\n includeMeta = true\n): Promise<boolean> {\n let outcome = false;\n let indicatorId: string;\n try {\n const allIdpsData = await readAdminFederationProviders();\n indicatorId = createProgressIndicator(\n 'determinate',\n allIdpsData.length,\n 'Exporting providers'\n );\n for (const idpData of allIdpsData) {\n updateProgressIndicator(indicatorId, `Writing provider ${idpData._id}`);\n const fileName = getTypedFilename(idpData._id, 'admin.federation');\n const fileData = await exportAdminFederationProvider(idpData._id);\n saveJsonToFile(fileData, getFilePath(fileName, true), includeMeta);\n }\n stopProgressIndicator(\n indicatorId,\n `${allIdpsData.length} providers exported.`\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n indicatorId,\n `Error exporting all providers.`,\n 'fail'\n );\n printError(error);\n }\n return outcome;\n}\n\n/**\n * Import provider by id/name\n * @param {string} providerId provider id/name\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importAdminFederationProviderFromFile(\n providerId: string,\n file: string\n): Promise<boolean> {\n let outcome = false;\n const filePath = getFilePath(file);\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing provider ${providerId} from ${filePath}...`\n );\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importAdminFederationProvider(providerId, fileData);\n stopProgressIndicator(\n spinnerId,\n `Successfully imported provider ${providerId} from ${filePath}.`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error importing provider ${providerId} from ${filePath}.`,\n 'fail'\n );\n printError(error);\n }\n return outcome;\n}\n\n/**\n * Import first provider from file\n * @param {String} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstAdminFederationProviderFromFile(\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(\n `cli.AdminFederationOps.importFirstAdminFederationProviderFromFile: begin`\n );\n const filePath = getFilePath(file);\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing first provider from ${filePath}...`\n );\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importFirstAdminFederationProvider(fileData);\n stopProgressIndicator(\n spinnerId,\n `Successfully imported first provider from ${filePath}.`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error importing first provider from ${filePath}.`,\n 'fail'\n );\n printError(error);\n }\n debugMessage(\n `cli.AdminFederationOps.importFirstAdminFederationProviderFromFile: end`\n );\n return outcome;\n}\n\n/**\n * Import all providers from file\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importAdminFederationProvidersFromFile(\n file: string\n): Promise<boolean> {\n let outcome = false;\n debugMessage(\n `cli.AdminFederationOps.importAdminFederationProvidersFromFile: begin`\n );\n const filePath = getFilePath(file);\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing providers from ${filePath}...`\n );\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importAdminFederationProviders(fileData);\n stopProgressIndicator(\n spinnerId,\n `Imported providers from ${filePath}.`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(spinnerId, `Error importing ${filePath}.`, 'fail');\n printError(error);\n }\n debugMessage(\n `cli.AdminFederationOps.importAdminFederationProvidersFromFile: end`\n );\n return outcome;\n}\n\n/**\n * Import providers from *.idp.json files in current working directory\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importAdminFederationProvidersFromFiles(): Promise<boolean> {\n const errors = [];\n let indicatorId: string;\n try {\n debugMessage(\n `cli.AdminFederationOps.importAdminFederationProvidersFromFiles: begin`\n );\n const names = fs.readdirSync(getWorkingDirectory());\n const files = names\n .filter((name) => name.toLowerCase().endsWith('.admin.federation.json'))\n .map((name) => getFilePath(name));\n indicatorId = createProgressIndicator(\n 'determinate',\n files.length,\n 'Importing providers...'\n );\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n const count = Object.keys(fileData.idp).length;\n total += count;\n await importAdminFederationProviders(fileData);\n updateProgressIndicator(\n indicatorId,\n `Imported ${count} provider(s) from ${file}`\n );\n } catch (error) {\n errors.push(error);\n updateProgressIndicator(\n indicatorId,\n `Error importing provider(s) from ${file}`\n );\n printError(error);\n }\n }\n stopProgressIndicator(\n indicatorId,\n `Finished importing ${total} provider(s) from ${files.length} file(s).`\n );\n } catch (error) {\n errors.push(error);\n stopProgressIndicator(\n indicatorId,\n `Error importing provider(s) from file(s).`\n );\n printError(error);\n }\n debugMessage(\n `cli.AdminFederationOps.importAdminFederationProvidersFromFiles: end`\n );\n return 0 === errors.length;\n}\n"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { frodo, state } from '@rockcarver/frodo-lib';
|
|
2
2
|
import fs from 'fs';
|
|
3
|
-
import { getFullExportConfig, isIdUsed } from '
|
|
4
|
-
import { createKeyValueTable, createProgressIndicator, createTable, debugMessage, printMessage, stopProgressIndicator, updateProgressIndicator } from '
|
|
5
|
-
import wordwrap from '
|
|
3
|
+
import { getFullExportConfig, isIdUsed } from '../../utils/Config';
|
|
4
|
+
import { createKeyValueTable, createProgressIndicator, createTable, debugMessage, printError, printMessage, stopProgressIndicator, updateProgressIndicator } from '../../utils/Console';
|
|
5
|
+
import wordwrap from '../utils/Wordwrap';
|
|
6
6
|
const {
|
|
7
7
|
resolveUserName
|
|
8
8
|
} = frodo.idm.managed;
|
|
@@ -44,8 +44,8 @@ export async function listSecrets(long = false, usage = false, file = null) {
|
|
|
44
44
|
secrets.sort((a, b) => a._id.localeCompare(b._id));
|
|
45
45
|
stopProgressIndicator(spinnerId, `Successfully read ${secrets.length} secrets.`, 'success');
|
|
46
46
|
} catch (error) {
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
stopProgressIndicator(spinnerId, `Error reading secrets`, 'fail');
|
|
48
|
+
printError(error);
|
|
49
49
|
return false;
|
|
50
50
|
}
|
|
51
51
|
if (!long && !usage) {
|
|
@@ -66,8 +66,7 @@ export async function listSecrets(long = false, usage = false, file = null) {
|
|
|
66
66
|
try {
|
|
67
67
|
fullExport = await getFullExportConfig(file);
|
|
68
68
|
} catch (error) {
|
|
69
|
-
|
|
70
|
-
printMessage(`Error getting full export: ${((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.data) || error.message}`, 'error');
|
|
69
|
+
printError(error);
|
|
71
70
|
return false;
|
|
72
71
|
}
|
|
73
72
|
//Delete secrets from full export so they aren't mistakenly used for determining usage
|
|
@@ -118,7 +117,8 @@ export async function createSecret(id, value, description, encoding, useInPlaceh
|
|
|
118
117
|
stopProgressIndicator(spinnerId, `Created secret ${id}`, 'success');
|
|
119
118
|
outcome = true;
|
|
120
119
|
} catch (error) {
|
|
121
|
-
stopProgressIndicator(spinnerId,
|
|
120
|
+
stopProgressIndicator(spinnerId, `Error creating secret ${id}`, 'fail');
|
|
121
|
+
printError(error);
|
|
122
122
|
}
|
|
123
123
|
return outcome;
|
|
124
124
|
}
|
|
@@ -141,7 +141,8 @@ export async function createSecretFromFile(id, file, description, encoding, useI
|
|
|
141
141
|
stopProgressIndicator(spinnerId, `Created secret ${id}`, 'success');
|
|
142
142
|
outcome = true;
|
|
143
143
|
} catch (error) {
|
|
144
|
-
stopProgressIndicator(spinnerId,
|
|
144
|
+
stopProgressIndicator(spinnerId, `Error creating secret ${id} from file ${getFilePath(file)}`, 'fail');
|
|
145
|
+
printError(error);
|
|
145
146
|
}
|
|
146
147
|
return outcome;
|
|
147
148
|
}
|
|
@@ -160,7 +161,8 @@ export async function setSecretDescription(secretId, description) {
|
|
|
160
161
|
stopProgressIndicator(spinnerId, `Set description of secret ${secretId}`, 'success');
|
|
161
162
|
outcome = true;
|
|
162
163
|
} catch (error) {
|
|
163
|
-
stopProgressIndicator(spinnerId, `Error
|
|
164
|
+
stopProgressIndicator(spinnerId, `Error creating secret ${secretId}`, 'fail');
|
|
165
|
+
printError(error);
|
|
164
166
|
}
|
|
165
167
|
return outcome;
|
|
166
168
|
}
|
|
@@ -178,7 +180,8 @@ export async function deleteSecret(secretId) {
|
|
|
178
180
|
stopProgressIndicator(spinnerId, `Deleted secret ${secretId}`, 'success');
|
|
179
181
|
outcome = true;
|
|
180
182
|
} catch (error) {
|
|
181
|
-
stopProgressIndicator(spinnerId, `Error
|
|
183
|
+
stopProgressIndicator(spinnerId, `Error deleting secret ${secretId}`, 'fail');
|
|
184
|
+
printError(error);
|
|
182
185
|
}
|
|
183
186
|
return outcome;
|
|
184
187
|
}
|
|
@@ -188,33 +191,27 @@ export async function deleteSecret(secretId) {
|
|
|
188
191
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
189
192
|
*/
|
|
190
193
|
export async function deleteSecrets() {
|
|
191
|
-
let outcome = false;
|
|
192
|
-
let secrets = [];
|
|
193
194
|
const spinnerId = createProgressIndicator('indeterminate', 0, `Reading secrets...`);
|
|
194
195
|
try {
|
|
195
|
-
secrets = await readSecrets();
|
|
196
|
+
const secrets = await readSecrets();
|
|
196
197
|
secrets.sort((a, b) => a._id.localeCompare(b._id));
|
|
197
198
|
stopProgressIndicator(spinnerId, `Successfully read ${secrets.length} secrets.`, 'success');
|
|
198
|
-
|
|
199
|
-
var _error$response3;
|
|
200
|
-
stopProgressIndicator(spinnerId, `Error reading secrets: ${((_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : _error$response3.data) || error.message}`, 'fail');
|
|
201
|
-
}
|
|
202
|
-
const indicatorId = createProgressIndicator('determinate', secrets.length, `Deleting secrets...`);
|
|
203
|
-
try {
|
|
199
|
+
const indicatorId = createProgressIndicator('determinate', secrets.length, `Deleting secrets...`);
|
|
204
200
|
for (const secret of secrets) {
|
|
205
201
|
try {
|
|
206
202
|
await _deleteSecret(secret._id);
|
|
207
203
|
updateProgressIndicator(indicatorId, `Deleted secret ${secret._id}`);
|
|
208
204
|
} catch (error) {
|
|
209
|
-
|
|
205
|
+
printError(error);
|
|
210
206
|
}
|
|
211
207
|
}
|
|
212
208
|
stopProgressIndicator(indicatorId, `Secrets deleted.`);
|
|
213
|
-
|
|
209
|
+
return true;
|
|
214
210
|
} catch (error) {
|
|
215
|
-
|
|
211
|
+
stopProgressIndicator(spinnerId, `Error deleting secrets`, 'fail');
|
|
212
|
+
printError(error);
|
|
216
213
|
}
|
|
217
|
-
return
|
|
214
|
+
return false;
|
|
218
215
|
}
|
|
219
216
|
|
|
220
217
|
/**
|
|
@@ -223,35 +220,34 @@ export async function deleteSecrets() {
|
|
|
223
220
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
224
221
|
*/
|
|
225
222
|
export async function listSecretVersions(secretId) {
|
|
226
|
-
let outcome = false;
|
|
227
223
|
let spinnerId;
|
|
228
224
|
let versions = [];
|
|
229
225
|
try {
|
|
230
226
|
spinnerId = createProgressIndicator('indeterminate', 0, `Reading secret versions...`);
|
|
231
227
|
versions = await readVersionsOfSecret(secretId);
|
|
232
228
|
stopProgressIndicator(spinnerId, `Successfully read ${versions.length} secret versions.`, 'success');
|
|
233
|
-
|
|
234
|
-
var _error$response4;
|
|
235
|
-
stopProgressIndicator(spinnerId, `Error reading secret versions: ${((_error$response4 = error.response) === null || _error$response4 === void 0 ? void 0 : _error$response4.data) || error.message}`, 'fail');
|
|
236
|
-
}
|
|
237
|
-
const table = createTable([{
|
|
238
|
-
hAlign: 'right',
|
|
239
|
-
content: 'Version'['brightCyan']
|
|
240
|
-
}, 'Status'['brightCyan'], 'Loaded'['brightCyan'], 'Created'['brightCyan']]);
|
|
241
|
-
const statusMap = {
|
|
242
|
-
ENABLED: 'active'['brightGreen'],
|
|
243
|
-
DISABLED: 'inactive'['brightRed'],
|
|
244
|
-
DESTROYED: 'deleted'['brightRed']
|
|
245
|
-
};
|
|
246
|
-
for (const version of versions) {
|
|
247
|
-
table.push([{
|
|
229
|
+
const table = createTable([{
|
|
248
230
|
hAlign: 'right',
|
|
249
|
-
content:
|
|
250
|
-
},
|
|
231
|
+
content: 'Version'['brightCyan']
|
|
232
|
+
}, 'Status'['brightCyan'], 'Loaded'['brightCyan'], 'Created'['brightCyan']]);
|
|
233
|
+
const statusMap = {
|
|
234
|
+
ENABLED: 'active'['brightGreen'],
|
|
235
|
+
DISABLED: 'inactive'['brightRed'],
|
|
236
|
+
DESTROYED: 'deleted'['brightRed']
|
|
237
|
+
};
|
|
238
|
+
for (const version of versions) {
|
|
239
|
+
table.push([{
|
|
240
|
+
hAlign: 'right',
|
|
241
|
+
content: version.version
|
|
242
|
+
}, statusMap[version.status], version.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'], new Date(version.createDate).toLocaleString()]);
|
|
243
|
+
}
|
|
244
|
+
printMessage(table.toString(), 'data');
|
|
245
|
+
return true;
|
|
246
|
+
} catch (error) {
|
|
247
|
+
stopProgressIndicator(spinnerId, `Error reading secret versions`, 'fail');
|
|
248
|
+
printError(error);
|
|
251
249
|
}
|
|
252
|
-
|
|
253
|
-
outcome = true;
|
|
254
|
-
return outcome;
|
|
250
|
+
return false;
|
|
255
251
|
}
|
|
256
252
|
|
|
257
253
|
/**
|
|
@@ -260,39 +256,38 @@ export async function listSecretVersions(secretId) {
|
|
|
260
256
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
261
257
|
*/
|
|
262
258
|
export async function describeSecret(secretId) {
|
|
263
|
-
let outcome = false;
|
|
264
259
|
let spinnerId;
|
|
265
260
|
let secret = null;
|
|
266
261
|
try {
|
|
267
262
|
spinnerId = createProgressIndicator('indeterminate', 0, `Reading secret ${secretId}...`);
|
|
268
263
|
secret = await readSecret(secretId);
|
|
269
264
|
stopProgressIndicator(spinnerId, `Successfully read secret ${secretId}.`, 'success');
|
|
265
|
+
const table = createKeyValueTable();
|
|
266
|
+
table.push(['Name'['brightCyan'], secret._id]);
|
|
267
|
+
table.push(['Active Version'['brightCyan'], secret.activeVersion]);
|
|
268
|
+
table.push(['Loaded Version'['brightCyan'], secret.loadedVersion]);
|
|
269
|
+
table.push(['Status'['brightCyan'], secret.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed']]);
|
|
270
|
+
table.push(['Description'['brightCyan'], wordwrap(secret.description, 60)]);
|
|
271
|
+
table.push(['Modified'['brightCyan'], new Date(secret.lastChangeDate).toLocaleString()]);
|
|
272
|
+
let lastChangedBy = secret.lastChangedBy;
|
|
273
|
+
try {
|
|
274
|
+
lastChangedBy = state.getUseBearerTokenForAmApis() ? secret.lastChangedBy : await resolveUserName('teammember', secret.lastChangedBy);
|
|
275
|
+
} catch (error) {
|
|
276
|
+
// ignore
|
|
277
|
+
}
|
|
278
|
+
table.push(['Modifier'['brightCyan'], lastChangedBy]);
|
|
279
|
+
table.push(['Modifier UUID'['brightCyan'], secret.lastChangedBy]);
|
|
280
|
+
table.push(['Encoding'['brightCyan'], secret.encoding]);
|
|
281
|
+
table.push(['Use In Placeholders'['brightCyan'], secret.useInPlaceholders]);
|
|
282
|
+
printMessage(table.toString(), 'data');
|
|
283
|
+
printMessage('\nSecret Versions:', 'data');
|
|
284
|
+
await listSecretVersions(secretId);
|
|
285
|
+
return true;
|
|
270
286
|
} catch (error) {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
}
|
|
274
|
-
const table = createKeyValueTable();
|
|
275
|
-
table.push(['Name'['brightCyan'], secret._id]);
|
|
276
|
-
table.push(['Active Version'['brightCyan'], secret.activeVersion]);
|
|
277
|
-
table.push(['Loaded Version'['brightCyan'], secret.loadedVersion]);
|
|
278
|
-
table.push(['Status'['brightCyan'], secret.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed']]);
|
|
279
|
-
table.push(['Description'['brightCyan'], wordwrap(secret.description, 60)]);
|
|
280
|
-
table.push(['Modified'['brightCyan'], new Date(secret.lastChangeDate).toLocaleString()]);
|
|
281
|
-
let lastChangedBy = secret.lastChangedBy;
|
|
282
|
-
try {
|
|
283
|
-
lastChangedBy = state.getUseBearerTokenForAmApis() ? secret.lastChangedBy : await resolveUserName('teammember', secret.lastChangedBy);
|
|
284
|
-
} catch (error) {
|
|
285
|
-
// ignore
|
|
287
|
+
stopProgressIndicator(spinnerId, `Error describing secret ${secretId}`, 'fail');
|
|
288
|
+
printError(error);
|
|
286
289
|
}
|
|
287
|
-
|
|
288
|
-
table.push(['Modifier UUID'['brightCyan'], secret.lastChangedBy]);
|
|
289
|
-
table.push(['Encoding'['brightCyan'], secret.encoding]);
|
|
290
|
-
table.push(['Use In Placeholders'['brightCyan'], secret.useInPlaceholders]);
|
|
291
|
-
printMessage(table.toString(), 'data');
|
|
292
|
-
printMessage('\nSecret Versions:', 'data');
|
|
293
|
-
await listSecretVersions(secretId);
|
|
294
|
-
outcome = true;
|
|
295
|
-
return outcome;
|
|
290
|
+
return false;
|
|
296
291
|
}
|
|
297
292
|
|
|
298
293
|
/**
|
|
@@ -304,7 +299,6 @@ export async function describeSecret(secretId) {
|
|
|
304
299
|
*/
|
|
305
300
|
export async function exportSecretToFile(secretId, file, includeMeta) {
|
|
306
301
|
debugMessage(`Cli.SecretsOps.exportSecretToFile: start [secretId=${secretId}, file=${file}]`);
|
|
307
|
-
let outcome = false;
|
|
308
302
|
let fileName = file;
|
|
309
303
|
if (!fileName) {
|
|
310
304
|
fileName = getTypedFilename(secretId, 'secret');
|
|
@@ -316,13 +310,13 @@ export async function exportSecretToFile(secretId, file, includeMeta) {
|
|
|
316
310
|
const fileData = await exportSecret(secretId);
|
|
317
311
|
saveJsonToFile(fileData, filePath, includeMeta);
|
|
318
312
|
stopProgressIndicator(spinnerId, `Exported ${secretId['brightCyan']} to ${filePath['brightCyan']}.`, 'success');
|
|
319
|
-
|
|
313
|
+
debugMessage(`Cli.SecretsOps.exportSecretToFile: end [secretId=${secretId}, file=${file}]`);
|
|
314
|
+
return true;
|
|
320
315
|
} catch (error) {
|
|
321
|
-
|
|
322
|
-
|
|
316
|
+
stopProgressIndicator(spinnerId, `Error exporting secret ${secretId} to ${filePath}`, 'fail');
|
|
317
|
+
printError(error);
|
|
323
318
|
}
|
|
324
|
-
|
|
325
|
-
return outcome;
|
|
319
|
+
return false;
|
|
326
320
|
}
|
|
327
321
|
|
|
328
322
|
/**
|
|
@@ -332,23 +326,20 @@ export async function exportSecretToFile(secretId, file, includeMeta) {
|
|
|
332
326
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
333
327
|
*/
|
|
334
328
|
export async function exportSecretsToFile(file, includeMeta) {
|
|
335
|
-
debugMessage(`Cli.SecretsOps.exportSecretsToFile: start [file=${file}]`);
|
|
336
|
-
let outcome = false;
|
|
337
|
-
let fileName = file;
|
|
338
|
-
if (!fileName) {
|
|
339
|
-
fileName = getTypedFilename(`all${titleCase(state.getRealm())}Secrets`, 'secret');
|
|
340
|
-
}
|
|
341
329
|
try {
|
|
330
|
+
debugMessage(`Cli.SecretsOps.exportSecretsToFile: start [file=${file}]`);
|
|
331
|
+
let fileName = file;
|
|
332
|
+
if (!fileName) {
|
|
333
|
+
fileName = getTypedFilename(`all${titleCase(state.getRealm())}Secrets`, 'secret');
|
|
334
|
+
}
|
|
342
335
|
const secretsExport = await exportSecrets();
|
|
343
336
|
saveJsonToFile(secretsExport, getFilePath(fileName, true), includeMeta);
|
|
344
|
-
|
|
337
|
+
debugMessage(`Cli.SecretsOps.exportSecretsToFile: end [file=${file}]`);
|
|
338
|
+
return true;
|
|
345
339
|
} catch (error) {
|
|
346
|
-
|
|
347
|
-
printMessage(error.message, 'error');
|
|
348
|
-
printMessage(`exportSecretsToFile: ${(_error$response7 = error.response) === null || _error$response7 === void 0 ? void 0 : _error$response7.status}`, 'error');
|
|
340
|
+
printError(error);
|
|
349
341
|
}
|
|
350
|
-
|
|
351
|
-
return outcome;
|
|
342
|
+
return false;
|
|
352
343
|
}
|
|
353
344
|
|
|
354
345
|
/**
|
|
@@ -357,26 +348,25 @@ export async function exportSecretsToFile(file, includeMeta) {
|
|
|
357
348
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
358
349
|
*/
|
|
359
350
|
export async function exportSecretsToFiles(includeMeta) {
|
|
360
|
-
let outcome = false;
|
|
361
351
|
let secrets = [];
|
|
362
352
|
const spinnerId = createProgressIndicator('indeterminate', 0, `Reading secrets...`);
|
|
363
353
|
try {
|
|
364
354
|
secrets = await readSecrets();
|
|
365
355
|
secrets.sort((a, b) => a._id.localeCompare(b._id));
|
|
366
356
|
stopProgressIndicator(spinnerId, `Successfully read ${secrets.length} secrets.`, 'success');
|
|
357
|
+
const indicatorId = createProgressIndicator('determinate', secrets.length, 'Exporting secrets');
|
|
358
|
+
for (const secret of secrets) {
|
|
359
|
+
updateProgressIndicator(indicatorId, `Writing secret ${secret._id}`);
|
|
360
|
+
const fileName = getTypedFilename(secret._id, 'secret');
|
|
361
|
+
saveToFile('secret', secret, '_id', getFilePath(fileName, true), includeMeta);
|
|
362
|
+
}
|
|
363
|
+
stopProgressIndicator(indicatorId, `${secrets.length} secrets exported.`);
|
|
364
|
+
return true;
|
|
367
365
|
} catch (error) {
|
|
368
|
-
|
|
369
|
-
|
|
366
|
+
stopProgressIndicator(spinnerId, `Error exporting secrets to files`, 'fail');
|
|
367
|
+
printError(error);
|
|
370
368
|
}
|
|
371
|
-
|
|
372
|
-
for (const secret of secrets) {
|
|
373
|
-
updateProgressIndicator(indicatorId, `Writing secret ${secret._id}`);
|
|
374
|
-
const fileName = getTypedFilename(secret._id, 'secret');
|
|
375
|
-
saveToFile('secret', secret, '_id', getFilePath(fileName, true), includeMeta);
|
|
376
|
-
}
|
|
377
|
-
stopProgressIndicator(indicatorId, `${secrets.length} secrets exported.`);
|
|
378
|
-
outcome = true;
|
|
379
|
-
return outcome;
|
|
369
|
+
return false;
|
|
380
370
|
}
|
|
381
371
|
|
|
382
372
|
/**
|
|
@@ -386,16 +376,16 @@ export async function exportSecretsToFiles(includeMeta) {
|
|
|
386
376
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
387
377
|
*/
|
|
388
378
|
export async function createVersionOfSecret(secretId, value) {
|
|
389
|
-
let outcome = false;
|
|
390
379
|
const spinnerId = createProgressIndicator('indeterminate', 0, `Creating new version of secret ${secretId}...`);
|
|
391
380
|
try {
|
|
392
381
|
const version = await _createVersionOfSecret(secretId, value);
|
|
393
382
|
stopProgressIndicator(spinnerId, `Created version ${version.version} of secret ${secretId}`, 'success');
|
|
394
|
-
|
|
383
|
+
return true;
|
|
395
384
|
} catch (error) {
|
|
396
|
-
stopProgressIndicator(spinnerId, `Error
|
|
385
|
+
stopProgressIndicator(spinnerId, `Error creating new version of secret ${secretId}`, 'fail');
|
|
386
|
+
printError(error);
|
|
397
387
|
}
|
|
398
|
-
return
|
|
388
|
+
return false;
|
|
399
389
|
}
|
|
400
390
|
|
|
401
391
|
/**
|
|
@@ -405,55 +395,58 @@ export async function createVersionOfSecret(secretId, value) {
|
|
|
405
395
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
406
396
|
*/
|
|
407
397
|
export async function createVersionOfSecretFromFile(secretId, file) {
|
|
408
|
-
let
|
|
409
|
-
const value = fs.readFileSync(getFilePath(file), 'utf8');
|
|
410
|
-
const spinnerId = createProgressIndicator('indeterminate', 0, `Creating new version of secret ${secretId}...`);
|
|
398
|
+
let spinnerId;
|
|
411
399
|
try {
|
|
400
|
+
const value = fs.readFileSync(getFilePath(file), 'utf8');
|
|
401
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Creating new version of secret ${secretId}...`);
|
|
412
402
|
const version = await _createVersionOfSecret(secretId, value);
|
|
413
403
|
stopProgressIndicator(spinnerId, `Created version ${version.version} of secret ${secretId}`, 'success');
|
|
414
|
-
|
|
404
|
+
return true;
|
|
415
405
|
} catch (error) {
|
|
416
|
-
stopProgressIndicator(spinnerId, `Error
|
|
406
|
+
stopProgressIndicator(spinnerId, `Error creating new version of secret ${secretId} from ${getFilePath(file)}`, 'fail');
|
|
407
|
+
printError(error);
|
|
417
408
|
}
|
|
418
|
-
return
|
|
409
|
+
return false;
|
|
419
410
|
}
|
|
420
411
|
|
|
421
412
|
/**
|
|
422
413
|
* Activate a version of a secret
|
|
423
|
-
* @param {
|
|
424
|
-
* @param {
|
|
414
|
+
* @param {string} secretId secret id
|
|
415
|
+
* @param {string} version version of secret
|
|
425
416
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
426
417
|
*/
|
|
427
418
|
export async function activateVersionOfSecret(secretId, version) {
|
|
428
|
-
let
|
|
429
|
-
const spinnerId = createProgressIndicator('indeterminate', 0, `Activating version ${version} of secret ${secretId}...`);
|
|
419
|
+
let spinnerId;
|
|
430
420
|
try {
|
|
421
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Activating version ${version} of secret ${secretId}...`);
|
|
431
422
|
await enableVersionOfSecret(secretId, version);
|
|
432
423
|
stopProgressIndicator(spinnerId, `Activated version ${version} of secret ${secretId}`, 'success');
|
|
433
|
-
|
|
424
|
+
return true;
|
|
434
425
|
} catch (error) {
|
|
435
|
-
stopProgressIndicator(spinnerId, `Error
|
|
426
|
+
stopProgressIndicator(spinnerId, `Error activating version ${version} of secret ${secretId}`, 'fail');
|
|
427
|
+
printError(error);
|
|
436
428
|
}
|
|
437
|
-
return
|
|
429
|
+
return false;
|
|
438
430
|
}
|
|
439
431
|
|
|
440
432
|
/**
|
|
441
433
|
* Deactivate a version of a secret
|
|
442
|
-
* @param {
|
|
443
|
-
* @param {
|
|
434
|
+
* @param {string} secretId secret id
|
|
435
|
+
* @param {string} version version of secret
|
|
444
436
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
445
437
|
*/
|
|
446
438
|
export async function deactivateVersionOfSecret(secretId, version) {
|
|
447
|
-
let
|
|
448
|
-
const spinnerId = createProgressIndicator('indeterminate', 0, `Deactivating version ${version} of secret ${secretId}...`);
|
|
439
|
+
let spinnerId;
|
|
449
440
|
try {
|
|
441
|
+
const spinnerId = createProgressIndicator('indeterminate', 0, `Deactivating version ${version} of secret ${secretId}...`);
|
|
450
442
|
await disableVersionOfSecret(secretId, version);
|
|
451
443
|
stopProgressIndicator(spinnerId, `Deactivated version ${version} of secret ${secretId}`, 'success');
|
|
452
|
-
|
|
444
|
+
return true;
|
|
453
445
|
} catch (error) {
|
|
454
|
-
stopProgressIndicator(spinnerId, `Error
|
|
446
|
+
stopProgressIndicator(spinnerId, `Error deactivating version ${version} of secret ${secretId}`, 'fail');
|
|
447
|
+
printError(error);
|
|
455
448
|
}
|
|
456
|
-
return
|
|
449
|
+
return false;
|
|
457
450
|
}
|
|
458
451
|
|
|
459
452
|
/**
|
|
@@ -463,15 +456,16 @@ export async function deactivateVersionOfSecret(secretId, version) {
|
|
|
463
456
|
* @returns {Promise<boolean>} true if successful, false otherwise
|
|
464
457
|
*/
|
|
465
458
|
export async function deleteVersionOfSecret(secretId, version) {
|
|
466
|
-
let
|
|
467
|
-
const spinnerId = createProgressIndicator('indeterminate', 0, `Deleting version ${version} of secret ${secretId}...`);
|
|
459
|
+
let spinnerId;
|
|
468
460
|
try {
|
|
461
|
+
spinnerId = createProgressIndicator('indeterminate', 0, `Deleting version ${version} of secret ${secretId}...`);
|
|
469
462
|
await _deleteVersionOfSecret(secretId, version);
|
|
470
463
|
stopProgressIndicator(spinnerId, `Deleted version ${version} of secret ${secretId}`, 'success');
|
|
471
|
-
|
|
464
|
+
return true;
|
|
472
465
|
} catch (error) {
|
|
473
|
-
stopProgressIndicator(spinnerId, `Error
|
|
466
|
+
stopProgressIndicator(spinnerId, `Error deleting version ${version} of secret ${secretId}`, 'fail');
|
|
467
|
+
printError(error);
|
|
474
468
|
}
|
|
475
|
-
return
|
|
469
|
+
return false;
|
|
476
470
|
}
|
|
477
471
|
//# sourceMappingURL=SecretsOps.js.map
|