@salesforce/plugin-api 1.3.7-dev.0 → 1.3.7
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/LICENSE.txt +1 -1
- package/README.md +2 -60
- package/oclif.manifest.json +1 -82
- package/package.json +3 -3
- package/lib/commands/api/request/soap.d.ts +0 -18
- package/lib/commands/api/request/soap.js +0 -176
- package/lib/commands/api/request/soap.js.map +0 -1
- package/messages/soap.md +0 -40
package/LICENSE.txt
CHANGED
package/README.md
CHANGED
|
@@ -61,7 +61,6 @@ sf plugins
|
|
|
61
61
|
|
|
62
62
|
- [`sf api request graphql`](#sf-api-request-graphql)
|
|
63
63
|
- [`sf api request rest [URL]`](#sf-api-request-rest-url)
|
|
64
|
-
- [`sf api request soap URL`](#sf-api-request-soap-url)
|
|
65
64
|
|
|
66
65
|
## `sf api request graphql`
|
|
67
66
|
|
|
@@ -114,7 +113,7 @@ EXAMPLES
|
|
|
114
113
|
$ sf api request graphql --body example.txt --stream-to-file output.txt --include
|
|
115
114
|
```
|
|
116
115
|
|
|
117
|
-
_See code: [src/commands/api/request/graphql.ts](https://github.com/salesforcecli/plugin-api/blob/1.3.7
|
|
116
|
+
_See code: [src/commands/api/request/graphql.ts](https://github.com/salesforcecli/plugin-api/blob/1.3.7/src/commands/api/request/graphql.ts)_
|
|
118
117
|
|
|
119
118
|
## `sf api request rest [URL]`
|
|
120
119
|
|
|
@@ -223,64 +222,7 @@ FLAG DESCRIPTIONS
|
|
|
223
222
|
https://github.com/salesforcecli/plugin-api/tree/main/test/test-files/data-project.
|
|
224
223
|
```
|
|
225
224
|
|
|
226
|
-
_See code: [src/commands/api/request/rest.ts](https://github.com/salesforcecli/plugin-api/blob/1.3.7
|
|
227
|
-
|
|
228
|
-
## `sf api request soap URL`
|
|
229
|
-
|
|
230
|
-
Make an authenticated SOAP API request to a Salesforce org.
|
|
231
|
-
|
|
232
|
-
```
|
|
233
|
-
USAGE
|
|
234
|
-
$ sf api request soap URL -o <value> --body file [--flags-dir <value>] [--output-file file]
|
|
235
|
-
|
|
236
|
-
ARGUMENTS
|
|
237
|
-
URL SOAP API endpoint
|
|
238
|
-
|
|
239
|
-
FLAGS
|
|
240
|
-
-o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
|
|
241
|
-
configuration variable is already set.
|
|
242
|
-
--body=file (required) File or XML content for the SOAP Body. Specify "-" to read from standard input.
|
|
243
|
-
If passing a file, prefix the filename with '@'. The command will extract the SOAP Body
|
|
244
|
-
content if you provide a full SOAP envelope, or use your content as-is if it's just the
|
|
245
|
-
method call.
|
|
246
|
-
--output-file=file File path to save the SOAP response. If not specified, the response is printed to stdout.
|
|
247
|
-
|
|
248
|
-
GLOBAL FLAGS
|
|
249
|
-
--flags-dir=<value> Import flag values from a directory.
|
|
250
|
-
|
|
251
|
-
DESCRIPTION
|
|
252
|
-
Make an authenticated SOAP API request to a Salesforce org.
|
|
253
|
-
|
|
254
|
-
This command allows you to make SOAP API requests to Salesforce orgs. You provide the SOAP Body content (the method
|
|
255
|
-
call), and the command automatically wraps it in a complete SOAP envelope with authentication headers.
|
|
256
|
-
|
|
257
|
-
The command constructs a full SOAP envelope with:
|
|
258
|
-
|
|
259
|
-
- SOAP Header containing SessionHeader with your org's access token
|
|
260
|
-
- SOAP Body containing your provided XML content
|
|
261
|
-
|
|
262
|
-
For more information about the Salesforce SOAP API, see
|
|
263
|
-
https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_quickstart.htm.
|
|
264
|
-
|
|
265
|
-
EXAMPLES
|
|
266
|
-
Make a SOAP request to get server timestamp using the Partner API:
|
|
267
|
-
|
|
268
|
-
$ sf api request soap /services/Soap/u/58.0/ --body '<getServerTimestamp/>' --target-org my-org
|
|
269
|
-
|
|
270
|
-
Read SOAP Body content from a file:
|
|
271
|
-
|
|
272
|
-
$ sf api request soap /services/Soap/u/58.0/ --body @soap-body.xml --target-org my-org
|
|
273
|
-
|
|
274
|
-
Save the SOAP response to a file:
|
|
275
|
-
|
|
276
|
-
$ sf api request soap /services/Soap/u/58.0/ --body '<getServerTimestamp/>' --target-org my-org --output-file \
|
|
277
|
-
response.xml
|
|
278
|
-
|
|
279
|
-
Pipe SOAP Body content from standard input:
|
|
280
|
-
$ echo '<getServerTimestamp/>' | sf api request soap /services/Soap/u/58.0/ --body - --target-org my-org
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
_See code: [src/commands/api/request/soap.ts](https://github.com/salesforcecli/plugin-api/blob/1.3.7-dev.0/src/commands/api/request/soap.ts)_
|
|
225
|
+
_See code: [src/commands/api/request/rest.ts](https://github.com/salesforcecli/plugin-api/blob/1.3.7/src/commands/api/request/rest.ts)_
|
|
284
226
|
|
|
285
227
|
<!-- commandsstop -->
|
|
286
228
|
|
package/oclif.manifest.json
CHANGED
|
@@ -240,88 +240,7 @@
|
|
|
240
240
|
"rest:api:request",
|
|
241
241
|
"rest:request:api"
|
|
242
242
|
]
|
|
243
|
-
},
|
|
244
|
-
"api:request:soap": {
|
|
245
|
-
"aliases": [],
|
|
246
|
-
"args": {
|
|
247
|
-
"url": {
|
|
248
|
-
"description": "SOAP API endpoint",
|
|
249
|
-
"name": "url",
|
|
250
|
-
"required": true
|
|
251
|
-
}
|
|
252
|
-
},
|
|
253
|
-
"description": "This command allows you to make SOAP API requests to Salesforce orgs. You provide the SOAP Body content (the method call), and the command automatically wraps it in a complete SOAP envelope with authentication headers.\n\nThe command constructs a full SOAP envelope with:\n\n- SOAP Header containing SessionHeader with your org's access token\n- SOAP Body containing your provided XML content\n\nFor more information about the Salesforce SOAP API, see https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_quickstart.htm.",
|
|
254
|
-
"examples": [
|
|
255
|
-
"Make a SOAP request to get server timestamp using the Partner API:\n<%= config.bin %> <%= command.id %> /services/Soap/u/58.0/ --body '<getServerTimestamp/>' --target-org my-org",
|
|
256
|
-
"Read SOAP Body content from a file:\n<%= config.bin %> <%= command.id %> /services/Soap/u/58.0/ --body @soap-body.xml --target-org my-org",
|
|
257
|
-
"Save the SOAP response to a file:\n<%= config.bin %> <%= command.id %> /services/Soap/u/58.0/ --body '<getServerTimestamp/>' --target-org my-org --output-file response.xml",
|
|
258
|
-
"Pipe SOAP Body content from standard input:\n$ echo '<getServerTimestamp/>' | <%= config.bin %> <%= command.id %> /services/Soap/u/58.0/ --body - --target-org my-org"
|
|
259
|
-
],
|
|
260
|
-
"flags": {
|
|
261
|
-
"flags-dir": {
|
|
262
|
-
"helpGroup": "GLOBAL",
|
|
263
|
-
"name": "flags-dir",
|
|
264
|
-
"summary": "Import flag values from a directory.",
|
|
265
|
-
"hasDynamicHelp": false,
|
|
266
|
-
"multiple": false,
|
|
267
|
-
"type": "option"
|
|
268
|
-
},
|
|
269
|
-
"target-org": {
|
|
270
|
-
"char": "o",
|
|
271
|
-
"name": "target-org",
|
|
272
|
-
"noCacheDefault": true,
|
|
273
|
-
"required": true,
|
|
274
|
-
"summary": "Username or alias of the target org. Not required if the `target-org` configuration variable is already set.",
|
|
275
|
-
"hasDynamicHelp": true,
|
|
276
|
-
"multiple": false,
|
|
277
|
-
"type": "option"
|
|
278
|
-
},
|
|
279
|
-
"body": {
|
|
280
|
-
"name": "body",
|
|
281
|
-
"required": true,
|
|
282
|
-
"summary": "File or XML content for the SOAP Body. Specify \"-\" to read from standard input. If passing a file, prefix the filename with '@'. The command will extract the SOAP Body content if you provide a full SOAP envelope, or use your content as-is if it's just the method call.",
|
|
283
|
-
"hasDynamicHelp": false,
|
|
284
|
-
"helpValue": "file",
|
|
285
|
-
"multiple": false,
|
|
286
|
-
"type": "option"
|
|
287
|
-
},
|
|
288
|
-
"output-file": {
|
|
289
|
-
"name": "output-file",
|
|
290
|
-
"summary": "File path to save the SOAP response. If not specified, the response is printed to stdout.",
|
|
291
|
-
"hasDynamicHelp": false,
|
|
292
|
-
"helpValue": "file",
|
|
293
|
-
"multiple": false,
|
|
294
|
-
"type": "option"
|
|
295
|
-
}
|
|
296
|
-
},
|
|
297
|
-
"hasDynamicHelp": true,
|
|
298
|
-
"hiddenAliases": [],
|
|
299
|
-
"id": "api:request:soap",
|
|
300
|
-
"pluginAlias": "@salesforce/plugin-api",
|
|
301
|
-
"pluginName": "@salesforce/plugin-api",
|
|
302
|
-
"pluginType": "core",
|
|
303
|
-
"state": "beta",
|
|
304
|
-
"strict": true,
|
|
305
|
-
"summary": "Make an authenticated SOAP API request to a Salesforce org.",
|
|
306
|
-
"enableJsonFlag": false,
|
|
307
|
-
"isESM": true,
|
|
308
|
-
"relativePath": [
|
|
309
|
-
"lib",
|
|
310
|
-
"commands",
|
|
311
|
-
"api",
|
|
312
|
-
"request",
|
|
313
|
-
"soap.js"
|
|
314
|
-
],
|
|
315
|
-
"aliasPermutations": [],
|
|
316
|
-
"permutations": [
|
|
317
|
-
"api:request:soap",
|
|
318
|
-
"request:api:soap",
|
|
319
|
-
"request:soap:api",
|
|
320
|
-
"api:soap:request",
|
|
321
|
-
"soap:api:request",
|
|
322
|
-
"soap:request:api"
|
|
323
|
-
]
|
|
324
243
|
}
|
|
325
244
|
},
|
|
326
|
-
"version": "1.3.7
|
|
245
|
+
"version": "1.3.7"
|
|
327
246
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/plugin-api",
|
|
3
3
|
"description": "A plugin to call API endpoints via CLI commands",
|
|
4
|
-
"version": "1.3.7
|
|
4
|
+
"version": "1.3.7",
|
|
5
5
|
"author": "Salesforce",
|
|
6
6
|
"bugs": "https://github.com/forcedotcom/cli/issues",
|
|
7
7
|
"dependencies": {
|
|
@@ -206,7 +206,7 @@
|
|
|
206
206
|
"exports": "./lib/index.js",
|
|
207
207
|
"type": "module",
|
|
208
208
|
"sfdx": {
|
|
209
|
-
"publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-api/1.3.7
|
|
210
|
-
"signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-api/1.3.7
|
|
209
|
+
"publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-api/1.3.7.crt",
|
|
210
|
+
"signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-api/1.3.7.sig"
|
|
211
211
|
}
|
|
212
212
|
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { SfCommand } from '@salesforce/sf-plugins-core';
|
|
2
|
-
import { Org } from '@salesforce/core';
|
|
3
|
-
export declare class Soap extends SfCommand<void> {
|
|
4
|
-
static readonly summary: string;
|
|
5
|
-
static readonly description: string;
|
|
6
|
-
static readonly examples: string[];
|
|
7
|
-
static state: string;
|
|
8
|
-
static enableJsonFlag: boolean;
|
|
9
|
-
static readonly flags: {
|
|
10
|
-
'target-org': import("@oclif/core/interfaces").OptionFlag<Org, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
-
body: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
|
-
'output-file': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
-
};
|
|
14
|
-
static args: {
|
|
15
|
-
url: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
|
|
16
|
-
};
|
|
17
|
-
run(): Promise<void>;
|
|
18
|
-
}
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2023, salesforce.com, inc.
|
|
3
|
-
* All rights reserved.
|
|
4
|
-
* Licensed under the BSD 3-Clause license.
|
|
5
|
-
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
6
|
-
*/
|
|
7
|
-
import { readFileSync, writeFileSync } from 'node:fs';
|
|
8
|
-
import * as fs from 'node:fs';
|
|
9
|
-
import { ProxyAgent } from 'proxy-agent';
|
|
10
|
-
import { Flags, SfCommand } from '@salesforce/sf-plugins-core';
|
|
11
|
-
import { Messages, Org, SfError } from '@salesforce/core';
|
|
12
|
-
import { Args } from '@oclif/core';
|
|
13
|
-
import got from 'got';
|
|
14
|
-
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
15
|
-
const messages = Messages.loadMessages('@salesforce/plugin-api', 'soap');
|
|
16
|
-
/**
|
|
17
|
-
* Extract namespace from XML content if present
|
|
18
|
-
*/
|
|
19
|
-
function extractNamespace(xmlContent) {
|
|
20
|
-
// Try to find xmlns attribute in the root element
|
|
21
|
-
const xmlnsMatch = xmlContent.match(/<[^>]+xmlns\s*=\s*["']([^"']+)["']/);
|
|
22
|
-
if (xmlnsMatch) {
|
|
23
|
-
return xmlnsMatch[1];
|
|
24
|
-
}
|
|
25
|
-
return undefined;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Remove xmlns attribute from root element if present
|
|
29
|
-
*/
|
|
30
|
-
function removeXmlnsFromBody(bodyContent) {
|
|
31
|
-
// Remove xmlns attribute from the root element
|
|
32
|
-
return bodyContent.replace(/<([^>\s]+)([^>]*)\s+xmlns\s*=\s*["'][^"']+["']([^>]*)>/i, '<$1$2$3>');
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Extract SOAP Body content from user-provided XML.
|
|
36
|
-
* If user provides a full SOAP envelope, extract just the Body content.
|
|
37
|
-
* If user provides just Body content, return it as-is.
|
|
38
|
-
*/
|
|
39
|
-
function extractSoapBody(xmlContent) {
|
|
40
|
-
// Try to find SOAP Body content
|
|
41
|
-
// Match <soapenv:Body>...</soapenv:Body> or <Body>...</Body> or <soap:Body>...</soap:Body>
|
|
42
|
-
const bodyMatch = xmlContent.match(/<(?:soapenv|soap|SOAP-ENV):Body[^>]*>([\s\S]*?)<\/(?:soapenv|soap|SOAP-ENV):Body>/i);
|
|
43
|
-
if (bodyMatch) {
|
|
44
|
-
return bodyMatch[1].trim();
|
|
45
|
-
}
|
|
46
|
-
// Try without namespace prefix
|
|
47
|
-
const bodyMatchNoNs = xmlContent.match(/<Body[^>]*>([\s\S]*?)<\/Body>/i);
|
|
48
|
-
if (bodyMatchNoNs) {
|
|
49
|
-
return bodyMatchNoNs[1].trim();
|
|
50
|
-
}
|
|
51
|
-
// If no SOAP envelope structure found, assume user provided just the Body content
|
|
52
|
-
return xmlContent.trim();
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Escape XML special characters
|
|
56
|
-
*/
|
|
57
|
-
function escapeXml(text) {
|
|
58
|
-
return text
|
|
59
|
-
.replace(/&/g, '&')
|
|
60
|
-
.replace(/</g, '<')
|
|
61
|
-
.replace(/>/g, '>')
|
|
62
|
-
.replace(/"/g, '"')
|
|
63
|
-
.replace(/'/g, ''');
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Create SOAP envelope with SessionHeader and Body content
|
|
67
|
-
*/
|
|
68
|
-
function createSoapEnvelope(bodyContent, accessToken, xmlns = 'urn:partner.soap.sforce.com') {
|
|
69
|
-
const escapedToken = escapeXml(accessToken);
|
|
70
|
-
return `<?xml version="1.0" encoding="UTF-8"?>
|
|
71
|
-
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
72
|
-
<soapenv:Header xmlns="${xmlns}">
|
|
73
|
-
<SessionHeader>
|
|
74
|
-
<sessionId>${escapedToken}</sessionId>
|
|
75
|
-
</SessionHeader>
|
|
76
|
-
</soapenv:Header>
|
|
77
|
-
<soapenv:Body xmlns="${xmlns}">
|
|
78
|
-
${bodyContent}
|
|
79
|
-
</soapenv:Body>
|
|
80
|
-
</soapenv:Envelope>`;
|
|
81
|
-
}
|
|
82
|
-
export class Soap extends SfCommand {
|
|
83
|
-
static summary = messages.getMessage('summary');
|
|
84
|
-
static description = messages.getMessage('description');
|
|
85
|
-
static examples = messages.getMessages('examples');
|
|
86
|
-
static state = 'beta';
|
|
87
|
-
static enableJsonFlag = false;
|
|
88
|
-
static flags = {
|
|
89
|
-
'target-org': Flags.requiredOrg(),
|
|
90
|
-
body: Flags.string({
|
|
91
|
-
summary: messages.getMessage('flags.body.summary'),
|
|
92
|
-
allowStdin: true,
|
|
93
|
-
helpValue: 'file',
|
|
94
|
-
required: true,
|
|
95
|
-
}),
|
|
96
|
-
'output-file': Flags.string({
|
|
97
|
-
summary: messages.getMessage('flags.output-file.summary'),
|
|
98
|
-
helpValue: 'file',
|
|
99
|
-
}),
|
|
100
|
-
};
|
|
101
|
-
static args = {
|
|
102
|
-
url: Args.string({
|
|
103
|
-
description: 'SOAP API endpoint',
|
|
104
|
-
required: true,
|
|
105
|
-
}),
|
|
106
|
-
};
|
|
107
|
-
async run() {
|
|
108
|
-
const { flags, args } = await this.parse(Soap);
|
|
109
|
-
const org = flags['target-org'];
|
|
110
|
-
const outputFile = flags['output-file'];
|
|
111
|
-
// Read body content
|
|
112
|
-
let bodyContent;
|
|
113
|
-
if (flags.body.startsWith('@')) {
|
|
114
|
-
// Remove '@' prefix and read file
|
|
115
|
-
bodyContent = readFileSync(flags.body.substring(1), 'utf8');
|
|
116
|
-
}
|
|
117
|
-
else if (fs.existsSync(flags.body)) {
|
|
118
|
-
// Check if it's a file path
|
|
119
|
-
bodyContent = readFileSync(flags.body, 'utf8');
|
|
120
|
-
}
|
|
121
|
-
else {
|
|
122
|
-
// Use body content directly (or stdin content if allowStdin handled it)
|
|
123
|
-
bodyContent = flags.body;
|
|
124
|
-
}
|
|
125
|
-
// Extract SOAP Body content from user input
|
|
126
|
-
let soapBodyContent = extractSoapBody(bodyContent);
|
|
127
|
-
// Detect namespace from body content
|
|
128
|
-
let namespace = extractNamespace(bodyContent);
|
|
129
|
-
if (!namespace) {
|
|
130
|
-
// Default to partner namespace if not detected
|
|
131
|
-
namespace = 'urn:partner.soap.sforce.com';
|
|
132
|
-
}
|
|
133
|
-
// Remove xmlns attribute from body content since it will be set on the Body element
|
|
134
|
-
soapBodyContent = removeXmlnsFromBody(soapBodyContent);
|
|
135
|
-
// Build URL
|
|
136
|
-
const specifiedUrl = args.url.replace(/^\//, '');
|
|
137
|
-
const url = new URL(`${org.getField(Org.Fields.INSTANCE_URL)}/${specifiedUrl}`);
|
|
138
|
-
// Refresh access token to ensure we have a valid access token
|
|
139
|
-
await org.refreshAuth();
|
|
140
|
-
// Get access token
|
|
141
|
-
// eslint-disable-next-line sf-plugin/get-connection-with-version
|
|
142
|
-
const accessToken = org.getConnection().getConnectionOptions().accessToken;
|
|
143
|
-
if (!accessToken) {
|
|
144
|
-
throw new SfError('No access token available for the org');
|
|
145
|
-
}
|
|
146
|
-
// Create SOAP envelope with detected namespace
|
|
147
|
-
const soapEnvelope = createSoapEnvelope(soapBodyContent, accessToken, namespace);
|
|
148
|
-
// Make SOAP request
|
|
149
|
-
const options = {
|
|
150
|
-
agent: { https: new ProxyAgent() },
|
|
151
|
-
method: 'POST',
|
|
152
|
-
headers: {
|
|
153
|
-
'Content-Type': 'text/xml',
|
|
154
|
-
SOAPAction: '""',
|
|
155
|
-
},
|
|
156
|
-
body: soapEnvelope,
|
|
157
|
-
throwHttpErrors: false,
|
|
158
|
-
followRedirect: false,
|
|
159
|
-
};
|
|
160
|
-
const response = await got(url, options);
|
|
161
|
-
// Handle response
|
|
162
|
-
if (outputFile) {
|
|
163
|
-
writeFileSync(outputFile, response.body, 'utf8');
|
|
164
|
-
this.log(`Response saved to ${outputFile}`);
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
// Print response body to stdout
|
|
168
|
-
this.log(response.body);
|
|
169
|
-
}
|
|
170
|
-
// Set exit code for errors
|
|
171
|
-
if (response.statusCode >= 400) {
|
|
172
|
-
process.exitCode = 1;
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
//# sourceMappingURL=soap.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"soap.js","sourceRoot":"","sources":["../../../../src/commands/api/request/soap.ts"],"names":[],"mappings":"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"}
|
package/messages/soap.md
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# summary
|
|
2
|
-
|
|
3
|
-
Make an authenticated SOAP API request to a Salesforce org.
|
|
4
|
-
|
|
5
|
-
# description
|
|
6
|
-
|
|
7
|
-
This command allows you to make SOAP API requests to Salesforce orgs. You provide the SOAP Body content (the method call), and the command automatically wraps it in a complete SOAP envelope with authentication headers.
|
|
8
|
-
|
|
9
|
-
The command constructs a full SOAP envelope with:
|
|
10
|
-
|
|
11
|
-
- SOAP Header containing SessionHeader with your org's access token
|
|
12
|
-
- SOAP Body containing your provided XML content
|
|
13
|
-
|
|
14
|
-
For more information about the Salesforce SOAP API, see https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_quickstart.htm.
|
|
15
|
-
|
|
16
|
-
# examples
|
|
17
|
-
|
|
18
|
-
- Make a SOAP request to get server timestamp using the Partner API:
|
|
19
|
-
|
|
20
|
-
<%= config.bin %> <%= command.id %> /services/Soap/u/58.0/ --body '<getServerTimestamp/>' --target-org my-org
|
|
21
|
-
|
|
22
|
-
- Read SOAP Body content from a file:
|
|
23
|
-
|
|
24
|
-
<%= config.bin %> <%= command.id %> /services/Soap/u/58.0/ --body @soap-body.xml --target-org my-org
|
|
25
|
-
|
|
26
|
-
- Save the SOAP response to a file:
|
|
27
|
-
|
|
28
|
-
<%= config.bin %> <%= command.id %> /services/Soap/u/58.0/ --body '<getServerTimestamp/>' --target-org my-org --output-file response.xml
|
|
29
|
-
|
|
30
|
-
- Pipe SOAP Body content from standard input:
|
|
31
|
-
|
|
32
|
-
$ echo '<getServerTimestamp/>' | <%= config.bin %> <%= command.id %> /services/Soap/u/58.0/ --body - --target-org my-org
|
|
33
|
-
|
|
34
|
-
# flags.body.summary
|
|
35
|
-
|
|
36
|
-
File or XML content for the SOAP Body. Specify "-" to read from standard input. If passing a file, prefix the filename with '@'. The command will extract the SOAP Body content if you provide a full SOAP envelope, or use your content as-is if it's just the method call.
|
|
37
|
-
|
|
38
|
-
# flags.output-file.summary
|
|
39
|
-
|
|
40
|
-
File path to save the SOAP response. If not specified, the response is printed to stdout.
|