@salesforce/plugin-auth 2.5.1 → 2.6.0
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/lib/commands/{auth/list.d.ts → org/list/auth.d.ts} +1 -1
- package/lib/commands/{auth/list.js → org/list/auth.js} +10 -10
- package/lib/commands/org/list/auth.js.map +1 -0
- package/lib/commands/{auth/accesstoken/store.d.ts → org/login/access-token.d.ts} +1 -1
- package/lib/commands/{auth/accesstoken/store.js → org/login/access-token.js} +18 -17
- package/lib/commands/org/login/access-token.js.map +1 -0
- package/lib/commands/{auth/device/login.d.ts → org/login/device.d.ts} +1 -1
- package/lib/commands/{auth/device/login.js → org/login/device.js} +20 -19
- package/lib/commands/org/login/device.js.map +1 -0
- package/lib/commands/{auth/jwt/grant.d.ts → org/login/jwt.d.ts} +1 -1
- package/lib/commands/{auth/jwt/grant.js → org/login/jwt.js} +19 -18
- package/lib/commands/org/login/jwt.js.map +1 -0
- package/lib/commands/{auth/sfdxurl/store.d.ts → org/login/sfdx-url.d.ts} +1 -1
- package/lib/commands/{auth/sfdxurl/store.js → org/login/sfdx-url.js} +15 -15
- package/lib/commands/org/login/sfdx-url.js.map +1 -0
- package/lib/commands/{auth/web/login.d.ts → org/login/web.d.ts} +1 -1
- package/lib/commands/{auth/web/login.js → org/login/web.js} +23 -21
- package/lib/commands/org/login/web.js.map +1 -0
- package/lib/commands/{auth → org}/logout.d.ts +2 -1
- package/lib/commands/org/logout.js +188 -0
- package/lib/commands/org/logout.js.map +1 -0
- package/messages/accesstoken.store.md +7 -5
- package/messages/device.login.md +14 -7
- package/messages/jwt.grant.md +31 -11
- package/messages/list.md +6 -4
- package/messages/logout.md +54 -18
- package/messages/messages.md +23 -15
- package/messages/sfdxurl.store.md +18 -12
- package/messages/web.login.md +31 -11
- package/oclif.manifest.json +145 -126
- package/package.json +36 -25
- package/lib/commands/auth/accesstoken/store.js.map +0 -1
- package/lib/commands/auth/device/login.js.map +0 -1
- package/lib/commands/auth/jwt/grant.js.map +0 -1
- package/lib/commands/auth/list.js.map +0 -1
- package/lib/commands/auth/logout.js +0 -98
- package/lib/commands/auth/logout.js.map +0 -1
- package/lib/commands/auth/sfdxurl/store.js.map +0 -1
- package/lib/commands/auth/web/login.js.map +0 -1
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2020, salesforce.com, inc.
|
|
4
|
+
* All rights reserved.
|
|
5
|
+
* Licensed under the BSD 3-Clause license.
|
|
6
|
+
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const os = require("os");
|
|
10
|
+
const core_1 = require("@salesforce/core");
|
|
11
|
+
const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
|
|
12
|
+
const inquirer_1 = require("inquirer");
|
|
13
|
+
const chalk = require("chalk");
|
|
14
|
+
const authBaseCommand_1 = require("../../authBaseCommand");
|
|
15
|
+
core_1.Messages.importMessagesDirectory(__dirname);
|
|
16
|
+
const messages = core_1.Messages.loadMessages('@salesforce/plugin-auth', 'logout');
|
|
17
|
+
const commonMessages = core_1.Messages.loadMessages('@salesforce/plugin-auth', 'messages');
|
|
18
|
+
class Logout extends authBaseCommand_1.AuthBaseCommand {
|
|
19
|
+
static buildChoices(orgAuths, all) {
|
|
20
|
+
const maxUsernameLength = Math.max('Username'.length, ...orgAuths.map((orgAuth) => orgAuth.username.length));
|
|
21
|
+
const maxAliasLength = Math.max('Aliases'.length, ...orgAuths.map((orgAuth) => (orgAuth.aliases ? orgAuth.aliases.join(',') : '').length));
|
|
22
|
+
const maxConfigLength = Math.max('Configs'.length, ...orgAuths.map((orgAuth) => (orgAuth.configs ? orgAuth.configs.join(',') : '').length));
|
|
23
|
+
const maxTypeLength = Math.max('Type'.length, ...orgAuths.map((orgAuth) => {
|
|
24
|
+
if (orgAuth.isScratchOrg) {
|
|
25
|
+
return 'Scratch'.length;
|
|
26
|
+
}
|
|
27
|
+
if (orgAuth.isDevHub) {
|
|
28
|
+
return 'DevHub'.length;
|
|
29
|
+
}
|
|
30
|
+
if (orgAuth.isSandbox) {
|
|
31
|
+
return 'Sandbox'.length;
|
|
32
|
+
}
|
|
33
|
+
return 0;
|
|
34
|
+
}));
|
|
35
|
+
const choices = orgAuths
|
|
36
|
+
.map((orgAuth) => {
|
|
37
|
+
const aliasString = (orgAuth.aliases ? orgAuth.aliases.join(',') : '').padEnd(maxAliasLength, ' ');
|
|
38
|
+
const configString = (orgAuth.configs ? orgAuth.configs.join(',') : '').padEnd(maxConfigLength, ' ');
|
|
39
|
+
const typeString = chalk.dim((orgAuth.isScratchOrg ? 'Scratch' : orgAuth.isDevHub ? 'DevHub' : orgAuth.isSandbox ? 'Sandbox' : '').padEnd(maxTypeLength, ' '));
|
|
40
|
+
// username - aliases - configs
|
|
41
|
+
const key = `${chalk.bold(orgAuth.username.padEnd(maxUsernameLength))} | ${typeString} | ${aliasString} | ${chalk.yellowBright(configString)}`;
|
|
42
|
+
return { name: key, value: orgAuth, checked: all, short: `${os.EOL}${orgAuth.username}` };
|
|
43
|
+
})
|
|
44
|
+
.sort((a, b) => a.value.username.localeCompare(b.value.username));
|
|
45
|
+
const userHeader = `${'Username'.padEnd(maxUsernameLength, ' ')}`;
|
|
46
|
+
const aliasHeader = `${'Aliases'.padEnd(maxAliasLength, ' ')}`;
|
|
47
|
+
const configHeader = `${'Configs'.padEnd(maxConfigLength, ' ')}`;
|
|
48
|
+
const typeHeader = `${'Type'.padEnd(maxTypeLength, ' ')}`;
|
|
49
|
+
return [new inquirer_1.Separator(` ${userHeader} | ${typeHeader} | ${aliasHeader} | ${configHeader}`), ...choices];
|
|
50
|
+
}
|
|
51
|
+
async run() {
|
|
52
|
+
const { flags } = await this.parse(Logout);
|
|
53
|
+
this.flags = flags;
|
|
54
|
+
this.configAggregator = await core_1.ConfigAggregator.create();
|
|
55
|
+
const remover = await core_1.AuthRemover.create();
|
|
56
|
+
let orgAuths = [];
|
|
57
|
+
const targetUsername = this.flags['target-org'] ?? this.configAggregator.getInfo(core_1.OrgConfigProperties.TARGET_ORG).value;
|
|
58
|
+
// if no-prompt, there must be a resolved target-org or --all
|
|
59
|
+
if (flags['no-prompt'] && !targetUsername && !flags.all) {
|
|
60
|
+
throw messages.createError('noOrgSpecifiedWithNoPrompt');
|
|
61
|
+
}
|
|
62
|
+
if (this.jsonEnabled() && !targetUsername && !flags.all) {
|
|
63
|
+
throw messages.createError('noOrgSpecifiedWithJson');
|
|
64
|
+
}
|
|
65
|
+
if (this.shouldFindAllAuths(targetUsername)) {
|
|
66
|
+
orgAuths = await core_1.AuthInfo.listAllAuthorizations();
|
|
67
|
+
}
|
|
68
|
+
else if (targetUsername) {
|
|
69
|
+
orgAuths = await core_1.AuthInfo.listAllAuthorizations((orgAuth) => orgAuth.username === targetUsername || !!orgAuth.aliases?.includes(targetUsername));
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
// just for clarity
|
|
73
|
+
orgAuths = [];
|
|
74
|
+
}
|
|
75
|
+
if (orgAuths.length === 0) {
|
|
76
|
+
if (this.flags['target-org']) {
|
|
77
|
+
// user specified a target org but it was not resolved, issue success message and return
|
|
78
|
+
this.logSuccess(messages.getMessage('logoutOrgCommandSuccess', [this.flags['target-org']]));
|
|
79
|
+
return [this.flags['target-org']];
|
|
80
|
+
}
|
|
81
|
+
this.info(messages.getMessage('noOrgsFound'));
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
const { orgs, confirmed } = await this.promptForOrgsToRemove(orgAuths, flags.all);
|
|
85
|
+
if (confirmed) {
|
|
86
|
+
for (const org of orgs) {
|
|
87
|
+
// run sequentially to avoid configFile concurrency issues
|
|
88
|
+
// eslint-disable-next-line no-await-in-loop
|
|
89
|
+
await remover.removeAuth(org.username);
|
|
90
|
+
}
|
|
91
|
+
const loggedOutUsernames = orgs.map((org) => org.username);
|
|
92
|
+
this.logSuccess(messages.getMessage('logoutOrgCommandSuccess', [loggedOutUsernames.join(os.EOL)]));
|
|
93
|
+
return loggedOutUsernames;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
this.info(messages.getMessage('noOrgsSelected'));
|
|
97
|
+
return [];
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
shouldFindAllAuths(targetUsername) {
|
|
101
|
+
if (targetUsername && !this.flags.all) {
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
return this.flags.all || core_1.Global.getEnvironmentMode() === core_1.Mode.DEMO || !this.flags['no-prompt'];
|
|
105
|
+
}
|
|
106
|
+
async promptForOrgsToRemove(orgAuths, all) {
|
|
107
|
+
if (this.flags['no-prompt'] || this.jsonEnabled()) {
|
|
108
|
+
return { orgs: orgAuths, confirmed: true };
|
|
109
|
+
}
|
|
110
|
+
if (orgAuths.length === 1) {
|
|
111
|
+
if (orgAuths[0].isScratchOrg) {
|
|
112
|
+
this.warn(messages.getMessage('warning'));
|
|
113
|
+
}
|
|
114
|
+
if (await this.confirm(messages.getMessage('prompt.confirm.single', [orgAuths[0].username]), 30000, false)) {
|
|
115
|
+
return { orgs: orgAuths, confirmed: true };
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
return { orgs: [], confirmed: false };
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// pick the orgs to delete - if this.flags.all - set each org to selected
|
|
122
|
+
// otherwise prompt the user to select the orgs to delete
|
|
123
|
+
const choices = Logout.buildChoices(orgAuths, all);
|
|
124
|
+
const { orgs, confirmed } = await this.timedPrompt([
|
|
125
|
+
{
|
|
126
|
+
name: 'orgs',
|
|
127
|
+
message: messages.getMessage('prompt.select-envs'),
|
|
128
|
+
type: 'checkbox',
|
|
129
|
+
choices,
|
|
130
|
+
loop: true,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
name: 'confirmed',
|
|
134
|
+
when: (answers) => answers.orgs.length > 0,
|
|
135
|
+
message: (answers) => {
|
|
136
|
+
const hasScratchOrgs = answers.orgs.some((org) => org.isScratchOrg);
|
|
137
|
+
if (hasScratchOrgs) {
|
|
138
|
+
this.warn(messages.getMessage('warning'));
|
|
139
|
+
}
|
|
140
|
+
const names = answers.orgs.map((org) => org.username);
|
|
141
|
+
if (names.length === orgAuths.length) {
|
|
142
|
+
return messages.getMessage('prompt.confirm-all');
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
return messages.getMessage('prompt.confirm', [names.length, names.length > 1 ? 's' : '']);
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
type: 'confirm',
|
|
149
|
+
default: false,
|
|
150
|
+
},
|
|
151
|
+
], 30000);
|
|
152
|
+
return {
|
|
153
|
+
orgs: orgs.map((a) => a),
|
|
154
|
+
confirmed,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
exports.default = Logout;
|
|
159
|
+
Logout.summary = messages.getMessage('summary');
|
|
160
|
+
Logout.description = messages.getMessage('description');
|
|
161
|
+
Logout.examples = messages.getMessages('examples');
|
|
162
|
+
Logout.deprecateAliases = true;
|
|
163
|
+
Logout.aliases = ['force:auth:logout', 'auth:logout'];
|
|
164
|
+
Logout.flags = {
|
|
165
|
+
'target-org': sf_plugins_core_1.Flags.string({
|
|
166
|
+
summary: messages.getMessage('flags.target-org.summary'),
|
|
167
|
+
char: 'o',
|
|
168
|
+
aliases: ['targetusername', 'u'],
|
|
169
|
+
deprecateAliases: true,
|
|
170
|
+
}),
|
|
171
|
+
all: sf_plugins_core_1.Flags.boolean({
|
|
172
|
+
char: 'a',
|
|
173
|
+
summary: messages.getMessage('flags.all.summary'),
|
|
174
|
+
description: messages.getMessage('flags.all.description'),
|
|
175
|
+
required: false,
|
|
176
|
+
default: false,
|
|
177
|
+
exclusive: ['target-org'],
|
|
178
|
+
}),
|
|
179
|
+
'no-prompt': sf_plugins_core_1.Flags.boolean({
|
|
180
|
+
char: 'p',
|
|
181
|
+
summary: commonMessages.getMessage('flags.no-prompt.summary'),
|
|
182
|
+
required: false,
|
|
183
|
+
deprecateAliases: true,
|
|
184
|
+
aliases: ['noprompt'],
|
|
185
|
+
}),
|
|
186
|
+
loglevel: sf_plugins_core_1.loglevel,
|
|
187
|
+
};
|
|
188
|
+
//# sourceMappingURL=logout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/commands/org/logout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
# summary
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Authorize an org using an existing Salesforce access token.
|
|
4
4
|
|
|
5
5
|
# description
|
|
6
6
|
|
|
7
|
-
authorize an org using an existing Salesforce access token
|
|
8
7
|
By default, the command runs interactively and asks you for the access token. If you previously authorized the org, the command prompts whether you want to overwrite the local file. Specify --no-prompt to not be prompted.
|
|
8
|
+
|
|
9
9
|
To use the command in a CI/CD script, set the SFDX_ACCESS_TOKEN environment variable to the access token. Then run the command with the --no-prompt parameter.
|
|
10
10
|
|
|
11
11
|
# examples
|
|
12
12
|
|
|
13
|
-
-
|
|
13
|
+
- Authorize an org on https://mycompany.my.salesforce.com; the command prompts you for the access token:
|
|
14
|
+
|
|
15
|
+
<%= config.bin %> <%= command.id %> --instance-url https://mycompany.my.salesforce.com
|
|
14
16
|
|
|
15
|
-
-
|
|
17
|
+
- Authorize the org without being prompted; you must have previously set the SFDX_ACCESS_TOKEN environment variable to the access token:
|
|
16
18
|
|
|
17
|
-
|
|
19
|
+
<%= config.bin %> <%= command.id %> --instance-url https://dev-hub.my.salesforce.com --no-prompt
|
|
18
20
|
|
|
19
21
|
# invalidAccessTokenFormat
|
|
20
22
|
|
package/messages/device.login.md
CHANGED
|
@@ -1,19 +1,26 @@
|
|
|
1
1
|
# summary
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Authorize an org using a device code.
|
|
4
4
|
|
|
5
5
|
# description
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
Use this command to allow a device to connect to an org.
|
|
8
|
+
|
|
9
|
+
When you run this command, it first displays an 8-digit device code and the URL for verifying the code on your org. The default instance URL is https://login.salesforce.com, so if the org you're authorizing is on a different instance, use the --instance-url. The command waits while you complete the verification. Open a browser and navigate to the displayed verification URL, enter the code, then click Connect. If you aren't already logged into your org, log in, and then you're prompted to allow the device to connect to the org. After you successfully authorize the org, you can close the browser window.
|
|
9
10
|
|
|
10
11
|
# examples
|
|
11
12
|
|
|
12
|
-
-
|
|
13
|
+
- Authorize an org using a device code, give the org the alias TestOrg1, and set it as your default Dev Hub org:
|
|
14
|
+
|
|
15
|
+
<%= config.bin %> <%= command.id %> --set-default-dev-hub --alias TestOrg1
|
|
16
|
+
|
|
17
|
+
- Authorize an org in which you've created a custom connected app with the specified client ID (consumer key):
|
|
18
|
+
|
|
19
|
+
<%= config.bin %> <%= command.id %> --client-id <OAuth client id>
|
|
13
20
|
|
|
14
|
-
-
|
|
21
|
+
- Authorize a sandbox org with the specified instance URL:
|
|
15
22
|
|
|
16
|
-
|
|
23
|
+
<%= config.bin %> <%= command.id %> --instance-url https://MyDomainName--SandboxName.sandbox.my.salesforce.com
|
|
17
24
|
|
|
18
25
|
# actionRequired
|
|
19
26
|
|
|
@@ -21,7 +28,7 @@ Action Required!
|
|
|
21
28
|
|
|
22
29
|
# enterCode
|
|
23
30
|
|
|
24
|
-
Enter %s
|
|
31
|
+
Enter %s device code in this verification URL: %s
|
|
25
32
|
|
|
26
33
|
# success
|
|
27
34
|
|
package/messages/jwt.grant.md
CHANGED
|
@@ -1,28 +1,48 @@
|
|
|
1
1
|
# summary
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Log in to a Salesforce org using a JSON web token (JWT).
|
|
4
4
|
|
|
5
5
|
# description
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
Use this command in automated environments where you can’t interactively log in with a browser, such as in CI/CD scripts.
|
|
8
|
+
|
|
9
|
+
Logging into an org authorizes the CLI to run other commands that connect to that org, such as deploying or retrieving a project. You can log into many types of orgs, such as sandboxes, Dev Hubs, Env Hubs, production orgs, and scratch orgs.
|
|
10
|
+
|
|
11
|
+
Complete these steps before you run this command:
|
|
12
|
+
|
|
13
|
+
1. Create a digital certificate (also called digital signature) and the private key to sign the certificate. You can use your own key and certificate issued by a certification authority. Or use OpenSSL to create a key and a self-signed digital certificate.
|
|
14
|
+
2. Store the private key in a file on your computer. When you run this command, you set the --jwt-key-file flag to this file.
|
|
15
|
+
3. Create a custom connected app in your org using the digital certificate. Make note of the consumer key (also called client id) that’s generated for you. Be sure the username of the user logging in is approved to use the connected app. When you run this command, you set the --client-id flag to the consumer key.
|
|
16
|
+
|
|
17
|
+
See https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_auth_jwt_flow.htm for more information.
|
|
18
|
+
|
|
19
|
+
We recommend that you set an alias when you log into an org. Aliases make it easy to later reference this org when running commands that require it. If you don’t set an alias, you use the username that you specified when you logged in to the org. If you run multiple commands that reference the same org, consider setting the org as your default. Use --set-default for your default scratch org or sandbox, or --set-default-dev-hub for your default Dev Hub.
|
|
10
20
|
|
|
11
21
|
# examples
|
|
12
22
|
|
|
13
|
-
-
|
|
23
|
+
- Log into an org with username jdoe@example.org and on the default instance URL (https://login.salesforce.org). The private key is stored in the file /Users/jdoe/JWT/server.key and the command uses the connected app with consumer key (client id) 04580y4051234051.
|
|
24
|
+
|
|
25
|
+
<%= config.bin %> <%= command.id %> --username jdoe@example.org --jwt-key-file /Users/jdoe/JWT/server.key --client-id 04580y4051234051
|
|
26
|
+
|
|
27
|
+
- Set the org as the default and give it an alias:
|
|
28
|
+
|
|
29
|
+
<%= config.bin %> <%= command.id %> --username jdoe@example.org --jwt-key-file /Users/jdoe/JWT/server.key --client-id 04580y4051234051 --alias ci-org --set-default
|
|
30
|
+
|
|
31
|
+
- Set the org as the default Dev Hub and give it an alias:
|
|
32
|
+
|
|
33
|
+
<%= config.bin %> <%= command.id %> --username jdoe@example.org --jwt-key-file /Users/jdoe/JWT/server.key --client-id 04580y4051234051 --alias ci-dev-hub --set-default-dev-hub
|
|
14
34
|
|
|
15
|
-
-
|
|
35
|
+
- Log in to a sandbox using URL https://MyDomainName--SandboxName.sandbox.my.salesforce.com:
|
|
16
36
|
|
|
17
|
-
|
|
37
|
+
<%= config.bin %> <%= command.id %> --username jdoe@example.org --jwt-key-file /Users/jdoe/JWT/server.key --client-id 04580y4051234051 --alias ci-org --set-default --instance-url https://MyDomainName--SandboxName.sandbox.my.salesforce.com
|
|
18
38
|
|
|
19
|
-
# username
|
|
39
|
+
# flags.username.summary
|
|
20
40
|
|
|
21
|
-
|
|
41
|
+
Username of the user logging in.
|
|
22
42
|
|
|
23
|
-
# key
|
|
43
|
+
# flags.jwt-key-file.summary
|
|
24
44
|
|
|
25
|
-
|
|
45
|
+
Path to a file containing the private key.
|
|
26
46
|
|
|
27
47
|
# JwtGrantError
|
|
28
48
|
|
package/messages/list.md
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
# summary
|
|
2
2
|
|
|
3
|
-
List
|
|
3
|
+
List authorization information about the orgs you created or logged into.
|
|
4
4
|
|
|
5
5
|
# description
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
This command uses local authorization information that Salesforce CLI caches when you create a scratch org or log into an org. The command doesn't actually connect to the orgs to verify that they're still active. As a result, this command executes very quickly. If you want to view live information about your authorized orgs, such as their connection status, use the "org list" command.
|
|
8
8
|
|
|
9
9
|
# examples
|
|
10
10
|
|
|
11
|
-
-
|
|
11
|
+
- List local authorization information about your orgs:
|
|
12
|
+
|
|
13
|
+
<%= config.bin %> <%= command.id %>
|
|
12
14
|
|
|
13
15
|
# noResultsFound
|
|
14
16
|
|
|
15
|
-
No results found
|
|
17
|
+
No results found.
|
package/messages/logout.md
CHANGED
|
@@ -1,45 +1,81 @@
|
|
|
1
1
|
# summary
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Log out of a Salesforce org.
|
|
4
4
|
|
|
5
5
|
# description
|
|
6
6
|
|
|
7
|
-
log out
|
|
8
|
-
|
|
7
|
+
If you run this command with no flags, it first displays a list of orgs you've created or logged into, with none of the orgs selected. Use the arrow keys to scroll through the list and the space bar to select the orgs you want to log out of. Press Enter when you're done; the command asks for a final confirmation before logging out of the selected orgs.
|
|
8
|
+
|
|
9
|
+
The process is similar if you specify --all, except that in the initial list of orgs, they're all selected. Use --target-org to logout of a specific org. In both these cases by default, you must still confirm that you want to log out. Use --no-prompt to never be asked for confirmation when also using --all or --target-org.
|
|
10
|
+
|
|
11
|
+
Be careful! If you log out of a scratch org without having access to its password, you can't access the scratch org again, either through the CLI or the Salesforce UI.
|
|
9
12
|
|
|
10
13
|
# examples
|
|
11
14
|
|
|
12
|
-
-
|
|
15
|
+
- Interactively select the orgs to log out of:
|
|
13
16
|
|
|
14
|
-
|
|
17
|
+
<%= config.bin %> <%= command.id %>
|
|
15
18
|
|
|
16
|
-
-
|
|
19
|
+
- Log out of the org with username me@my.org:
|
|
17
20
|
|
|
18
|
-
|
|
21
|
+
<%= config.bin %> <%= command.id %> --target-org me@my.org
|
|
19
22
|
|
|
20
|
-
|
|
23
|
+
- Log out of all orgs after confirmation:
|
|
24
|
+
|
|
25
|
+
<%= config.bin %> <%= command.id %> --all
|
|
21
26
|
|
|
22
|
-
|
|
27
|
+
- Logout of the org with alias my-scratch and don't prompt for confirmation:
|
|
23
28
|
|
|
24
|
-
|
|
29
|
+
<%= config.bin %> <%= command.id %> --target-org my-scratch --no-prompt
|
|
25
30
|
|
|
26
|
-
#
|
|
31
|
+
# flags.target-org.summary
|
|
27
32
|
|
|
28
|
-
|
|
33
|
+
Username or alias of the target org.
|
|
29
34
|
|
|
30
|
-
#
|
|
35
|
+
# flags.all.summary
|
|
31
36
|
|
|
32
|
-
|
|
33
|
-
%s
|
|
37
|
+
Include all authenticated orgs.
|
|
34
38
|
|
|
35
|
-
|
|
39
|
+
# flags.all.description
|
|
36
40
|
|
|
37
|
-
|
|
41
|
+
All orgs includes Dev Hubs, sandboxes, DE orgs, and expired, deleted, and unknown-status scratch orgs.
|
|
38
42
|
|
|
39
43
|
# logoutOrgCommandSuccess
|
|
40
44
|
|
|
41
45
|
Successfully logged out of orgs: %s
|
|
42
46
|
|
|
43
|
-
#
|
|
47
|
+
# noOrgsFound
|
|
44
48
|
|
|
45
49
|
No orgs found to log out of.
|
|
50
|
+
|
|
51
|
+
# noOrgsSelected
|
|
52
|
+
|
|
53
|
+
No orgs selected for logout.
|
|
54
|
+
|
|
55
|
+
# prompt.select-envs
|
|
56
|
+
|
|
57
|
+
Select the orgs you want to log out of:
|
|
58
|
+
|
|
59
|
+
# prompt.confirm
|
|
60
|
+
|
|
61
|
+
Are you sure you want to log out of %d org%s?
|
|
62
|
+
|
|
63
|
+
# prompt.confirm-all
|
|
64
|
+
|
|
65
|
+
Are you sure you want to log out of all your orgs?
|
|
66
|
+
|
|
67
|
+
# prompt.confirm.single
|
|
68
|
+
|
|
69
|
+
Are you sure you want to log out of %s?
|
|
70
|
+
|
|
71
|
+
# warning
|
|
72
|
+
|
|
73
|
+
Warning: If you log out of a scratch org without having access to its password, you can't access this org again, either through the CLI or the Salesforce UI.
|
|
74
|
+
|
|
75
|
+
# noOrgSpecifiedWithNoPrompt
|
|
76
|
+
|
|
77
|
+
You must specify a target-org (or default target-org config is set) or use --all flag when using the --no-prompt flag.
|
|
78
|
+
|
|
79
|
+
# noOrgSpecifiedWithJson
|
|
80
|
+
|
|
81
|
+
You must specify a target-org (or default target-org config is set) or use --all flag when using the --json flag.
|
package/messages/messages.md
CHANGED
|
@@ -1,22 +1,30 @@
|
|
|
1
|
-
#
|
|
1
|
+
# flags.client-id.summary
|
|
2
2
|
|
|
3
|
-
OAuth client ID (
|
|
3
|
+
OAuth client ID (also called consumer key) of your custom connected app.
|
|
4
4
|
|
|
5
|
-
#
|
|
5
|
+
# flags.set-default-dev-hub.summary
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Set the authenticated org as the default Dev Hub.
|
|
8
8
|
|
|
9
|
-
#
|
|
9
|
+
# flags.set-default.summary
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Set the authenticated org as the default that all org-related commands run against.
|
|
12
12
|
|
|
13
|
-
#
|
|
13
|
+
# flags.alias.summary
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
Alias for the org.
|
|
16
16
|
|
|
17
|
-
#
|
|
17
|
+
# flags.instance-url.summary
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
URL of the instance that the org lives on.
|
|
20
|
+
|
|
21
|
+
# flags.instance-url.description
|
|
22
|
+
|
|
23
|
+
If you specify an --instance-url value, this value overrides the sfdcLoginUrl value in your sfdx-project.json file.
|
|
24
|
+
|
|
25
|
+
To specify a My Domain URL, use the format https://yourcompanyname.my.salesforce.com.
|
|
26
|
+
|
|
27
|
+
To specify a sandbox, set --instance-url to https://MyDomainName--SandboxName.sandbox.my.salesforce.com.
|
|
20
28
|
|
|
21
29
|
# authorizeCommandSuccess
|
|
22
30
|
|
|
@@ -24,17 +32,17 @@ Successfully authorized %s with org ID %s
|
|
|
24
32
|
|
|
25
33
|
# warnAuth
|
|
26
34
|
|
|
27
|
-
Logging in to a business or production org is not recommended on a demo or shared machine. Please run "%s
|
|
35
|
+
Logging in to a business or production org is not recommended on a demo or shared machine. Please run "%s org:logout --target-org <your username> --no-prompt" when finished using this org, which is similar to logging out of the org in the browser.
|
|
28
36
|
|
|
29
37
|
Do you want to authorize this org for use with the Salesforce CLI?
|
|
30
38
|
|
|
31
|
-
#
|
|
39
|
+
# flags.no-prompt.summary
|
|
32
40
|
|
|
33
|
-
|
|
41
|
+
Don't prompt for confirmation.
|
|
34
42
|
|
|
35
|
-
#
|
|
43
|
+
# flags.disable-masking.summary
|
|
36
44
|
|
|
37
|
-
|
|
45
|
+
Disable masking of user input; use with problematic terminals.
|
|
38
46
|
|
|
39
47
|
# clientSecretStdin
|
|
40
48
|
|
|
@@ -1,27 +1,33 @@
|
|
|
1
1
|
# summary
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Authorize an org using a Salesforce DX authorization URL stored in a file.
|
|
4
4
|
|
|
5
5
|
# description
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
The SFDX auth URL must have the format "%s". NOTE: The SFDX auth URL uses the "force" protocol, and not "http" or "https". Also, the "instanceUrl" inside the SFDX auth URL doesn't include the protocol ("https://").
|
|
7
|
+
The Salesforce DX (SFDX) authorization URL must have the format "%s". NOTE: The SFDX authorization URL uses the "force" protocol, and not "http" or "https". Also, the "instanceUrl" inside the SFDX authorization URL doesn't include the protocol ("https://").
|
|
9
8
|
|
|
10
|
-
You have three options when creating the
|
|
9
|
+
You have three options when creating the authorization file. The easiest option is to redirect the output of the "<%= config.bin %> org display --verbose --json" command into a file. For example, using an org with alias my-org that you've already authorized:
|
|
11
10
|
|
|
12
|
-
$ <%= config.bin %> org
|
|
13
|
-
$ <%= config.bin %> <%= command.id %> -f authFile.json
|
|
11
|
+
$ <%= config.bin %> org display --target-org my-org --verbose --json > authFile.json
|
|
14
12
|
|
|
15
|
-
The resulting JSON file contains the URL in the sfdxAuthUrl property
|
|
13
|
+
The resulting JSON file contains the URL in the "sfdxAuthUrl" property of the "result" object. You can then reference the file when running this command:
|
|
16
14
|
|
|
17
|
-
|
|
15
|
+
$ <%= config.bin %> <%= command.id %> --sfdx-url-file authFile.json
|
|
18
16
|
|
|
19
|
-
|
|
17
|
+
NOTE: The "<%= config.bin %> org display --verbose" command displays the refresh token only for orgs authorized with the web server flow, and not the JWT bearer flow.
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
You can also create a JSON file that has a top-level property named sfdxAuthUrl whose value is the authorization URL. Finally, you can create a normal text file that includes just the URL and nothing else.
|
|
20
|
+
|
|
21
|
+
# flags.sfdx-url-file.summary
|
|
22
|
+
|
|
23
|
+
Path to a file that contains the Salesforce DX authorization URL.
|
|
22
24
|
|
|
23
25
|
# examples
|
|
24
26
|
|
|
25
|
-
-
|
|
27
|
+
- Authorize an org using the SFDX authorization URL in the files/authFile.json file:
|
|
28
|
+
|
|
29
|
+
<%= config.bin %> <%= command.id %> --sfdx-url-file files/authFile.json
|
|
30
|
+
|
|
31
|
+
- Similar to previous example, but set the org as your default and give it an alias MyDefaultOrg:
|
|
26
32
|
|
|
27
|
-
|
|
33
|
+
<%= config.bin %> <%= command.id %> --sfdx-url-file files/authFile.json --set-default --alias MyDefaultOrg
|