@terafina/tffa-sfdx-plugin 16.0.0-rc.5 → 16.0.0-rc.6

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/README.md CHANGED
@@ -41,7 +41,7 @@ $ npm install -g @terafina/tffa-sfdx-plugin
41
41
  $ sfdx COMMAND
42
42
  running command...
43
43
  $ sfdx (--version|-v)
44
- @terafina/tffa-sfdx-plugin/16.0.0-rc.5 linux-x64 node-v16.13.1
44
+ @terafina/tffa-sfdx-plugin/16.0.0-rc.6 linux-x64 node-v16.13.1
45
45
  $ sfdx --help [COMMAND]
46
46
  USAGE
47
47
  $ sfdx COMMAND
@@ -55,6 +55,7 @@ USAGE
55
55
  * [`sfdx help [COMMAND]`](#sfdx-help-command)
56
56
  * [`sfdx tffa:apexdoc [-s <directory>] [-d <directory>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`](#sfdx-tffaapexdoc--s-directory--d-directory---json---loglevel-tracedebuginfowarnerrorfataltracedebuginfowarnerrorfatal)
57
57
  * [`sfdx tffa:data:export -s <array> [-d <string>] [-g <string>] [-o <array>] [-c <array>] [-s] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`](#sfdx-tffadataexport--s-array--d-string--g-string--o-array--c-array--s--u-string---apiversion-string---json---loglevel-tracedebuginfowarnerrorfataltracedebuginfowarnerrorfatal)
58
+ * [`sfdx tffa:data:import [-f <array>] [-p <string>] [-s <array>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`](#sfdx-tffadataimport--f-array--p-string--s-array--u-string---apiversion-string---json---loglevel-tracedebuginfowarnerrorfataltracedebuginfowarnerrorfatal)
58
59
  * [`sfdx tffa:lint [-s <directory>] [-m <integer>] [-r <filepath>] [-e] [-f] [-j] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`](#sfdx-tffalint--s-directory--m-integer--r-filepath--e--f--j---loglevel-tracedebuginfowarnerrorfataltracedebuginfowarnerrorfatal)
59
60
  * [`sfdx tffa:meta [-s <directory>] [-d <directory>] [-c <directory>] [-o json|csv|human] [-f] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`](#sfdx-tffameta--s-directory--d-directory--c-directory--o-jsoncsvhuman--f---json---loglevel-tracedebuginfowarnerrorfataltracedebuginfowarnerrorfatal)
60
61
  * [`sfdx tffa:ping [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`](#sfdx-tffaping---json---loglevel-tracedebuginfowarnerrorfataltracedebuginfowarnerrorfatal)
@@ -109,7 +110,7 @@ EXAMPLES
109
110
  $ sfdx tffa:apexdoc
110
111
  ```
111
112
 
112
- _See code: [src/commands/tffa/apexdoc.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v16.0.0-rc.5/src/commands/tffa/apexdoc.ts)_
113
+ _See code: [src/commands/tffa/apexdoc.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v16.0.0-rc.6/src/commands/tffa/apexdoc.ts)_
113
114
 
114
115
  ## `sfdx tffa:data:export -s <array> [-d <string>] [-g <string>] [-o <array>] [-c <array>] [-s] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
115
116
 
@@ -178,7 +179,85 @@ EXAMPLES
178
179
  Writing 144 records to ./data/configuration/DisclosureMatrix__c.json
179
180
  ```
180
181
 
181
- _See code: [src/commands/tffa/data/export.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v16.0.0-rc.5/src/commands/tffa/data/export.ts)_
182
+ _See code: [src/commands/tffa/data/export.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v16.0.0-rc.6/src/commands/tffa/data/export.ts)_
183
+
184
+ ## `sfdx tffa:data:import [-f <array>] [-p <string>] [-s <array>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
185
+
186
+ Imports data into an org using the SObject Bulk Upsert API. This data can include master-detail relationships. Primarily used for importing business configurations.
187
+
188
+ ```
189
+ USAGE
190
+ $ sfdx tffa:data:import [-f <array>] [-p <string>] [-s <array>] [-u <string>] [--apiversion <string>] [--json]
191
+ [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]
192
+
193
+ FLAGS
194
+ -f, --sobjectfiles=<value>
195
+ comma-delimited, ordered paths of json files containing collection of record trees to upsert
196
+
197
+ -p, --plan=<value>
198
+ [default: data/configuration/config-data-plan.json] path to plan to upsert multiple data files that have
199
+ master-detail relationships; to restrict the sobject types imported using the plan, specify sobjecttypes along with
200
+ plan
201
+
202
+ -s, --sobjecttypes=<value>
203
+ comma-delimited, list of sobject types to be imported when using a plan
204
+
205
+ -u, --targetusername=<value>
206
+ username or alias for the target org; overrides default target org
207
+
208
+ --apiversion=<value>
209
+ override the api version used for api requests made by this command
210
+
211
+ --json
212
+ format output as json
213
+
214
+ --loglevel=(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)
215
+ [default: warn] logging level for this command invocation
216
+
217
+ DESCRIPTION
218
+ Imports data into an org using the SObject Bulk Upsert API. This data can include master-detail relationships.
219
+ Primarily used for importing business configurations.
220
+ To generate JSON files for use with tffa:data:import, run "sfdx tffa:data:export"
221
+
222
+ EXAMPLES
223
+ $ sfdx tffa:data:import
224
+ (Imports all records from default plan - data/configuration/config-data-plan.json
225
+ - Updated 101 record(s) of tffa__Product__c
226
+ - Updated 532 record(s) of tffa__ProductFeature__c
227
+ - Updated 143 record(s) of tffa__ProductTerm__c
228
+ Importing record(s) and relationships of tffa__Product__c... done
229
+
230
+ - Updated 5 record(s) of tffa__DependentProductEligibility__c
231
+ Importing record(s) and relationships of tffa__DependentProductEligibility__c... done
232
+
233
+ $ sfdx tffa:data:import -p data/configuration/config-data-plan.json
234
+ (Imports all records from default plan - data/configuration/config-data-plan.json
235
+ - Updated 101 record(s) of tffa__Product__c
236
+ - Updated 532 record(s) of tffa__ProductFeature__c
237
+ - Updated 143 record(s) of tffa__ProductTerm__c
238
+ Importing record(s) and relationships of tffa__Product__c... done
239
+ ...
240
+
241
+
242
+ $ sfdx tffa:data:import -s tffa__Product__c
243
+ (Imports only tffa__Product__c from data/configuration/config-data-plan.json)
244
+ - Updated 101 record(s) of tffa__Product__c
245
+ - Updated 532 record(s) of tffa__ProductFeature__c
246
+ - Updated 143 record(s) of tffa__ProductTerm__c
247
+ Importing record(s) and relationships of tffa__Product__c... done
248
+ ...
249
+
250
+
251
+ $ sfdx tffa:data:import -f data/configuration/DisclosureTemplate__c.json,data/configuration/AddOnService__c.json
252
+ (Imports tffa__DisclosureTemplate__c and tffa__AddOnService__c from the files; ignores config data plan)
253
+ - Updated 82 record(s) of tffa__DisclosureTemplate__c
254
+ Importing record(s) and relationships of tffa__DisclosureTemplate__c... done
255
+
256
+ - Updated 30 record(s) of tffa__AddOnService__c
257
+ Importing record(s) and relationships of tffa__AddOnService__c... done
258
+ ```
259
+
260
+ _See code: [src/commands/tffa/data/import.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v16.0.0-rc.6/src/commands/tffa/data/import.ts)_
182
261
 
183
262
  ## `sfdx tffa:lint [-s <directory>] [-m <integer>] [-r <filepath>] [-e] [-f] [-j] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
184
263
 
@@ -237,7 +316,7 @@ EXAMPLES
237
316
  $sfdx tffa:lint
238
317
  ```
239
318
 
240
- _See code: [src/commands/tffa/lint.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v16.0.0-rc.5/src/commands/tffa/lint.ts)_
319
+ _See code: [src/commands/tffa/lint.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v16.0.0-rc.6/src/commands/tffa/lint.ts)_
241
320
 
242
321
  ## `sfdx tffa:meta [-s <directory>] [-d <directory>] [-c <directory>] [-o json|csv|human] [-f] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
243
322
 
@@ -266,7 +345,7 @@ EXAMPLES
266
345
  $ sfdx tffa:meta
267
346
  ```
268
347
 
269
- _See code: [src/commands/tffa/meta.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v16.0.0-rc.5/src/commands/tffa/meta.ts)_
348
+ _See code: [src/commands/tffa/meta.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v16.0.0-rc.6/src/commands/tffa/meta.ts)_
270
349
 
271
350
  ## `sfdx tffa:ping [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
272
351
 
@@ -288,7 +367,7 @@ EXAMPLES
288
367
  $ sfdx tffa:ping
289
368
  ```
290
369
 
291
- _See code: [src/commands/tffa/ping.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v16.0.0-rc.5/src/commands/tffa/ping.ts)_
370
+ _See code: [src/commands/tffa/ping.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v16.0.0-rc.6/src/commands/tffa/ping.ts)_
292
371
 
293
372
  ## `sfdx tffa:source:apiset [-h <help>] [-s <directory>] [-a <integer>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]`
294
373
 
@@ -316,7 +395,7 @@ EXAMPLES
316
395
  $ sfdx tffa:source:apiset
317
396
  ```
318
397
 
319
- _See code: [src/commands/tffa/source/apiset.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v16.0.0-rc.5/src/commands/tffa/source/apiset.ts)_
398
+ _See code: [src/commands/tffa/source/apiset.ts](https://github.com/terafina/tffa-sfdx-plugin/blob/v16.0.0-rc.6/src/commands/tffa/source/apiset.ts)_
320
399
 
321
400
  ## `sfdx version`
322
401
 
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Copyright (c) NCR Terafina
3
+ **/
4
+ import { FlagsConfig, SfdxCommand } from '@salesforce/command';
5
+ /**
6
+ * Stores external id information of a record.
7
+ * Stores both the external id field name and value.
8
+ */
9
+ declare type ExternalId = {
10
+ fieldName: string;
11
+ value: string;
12
+ };
13
+ export default class DataImport extends SfdxCommand {
14
+ static requiresUsername: boolean;
15
+ static description: string;
16
+ static examples: string[];
17
+ protected static flagsConfig: FlagsConfig;
18
+ protected referenceIdExternalIdMap: Map<string, ExternalId>;
19
+ run(): Promise<any>;
20
+ /**
21
+ * Reads the JSON file
22
+ * @param filename path to JSON file
23
+ */
24
+ private readJSON;
25
+ /**
26
+ * Gathers external ids from the specified records. The external id of each record along with the external id field name
27
+ * is stored as a lookup reference mapped to the reference id of the record.
28
+ * @see referenceIdExternalIdMap
29
+ * @param records
30
+ */
31
+ private collectExternalIds;
32
+ /**
33
+ * Upserts the records using sfdx bulk2 API.
34
+ * @param records SObject records
35
+ */
36
+ private upsert;
37
+ /**
38
+ * Creates an upsert request for the records
39
+ * @param records
40
+ */
41
+ private createUpsertRequest;
42
+ /**
43
+ * Executes the upsert request. May include execution of child upsert requests if the records have child relationships.
44
+ * @param request
45
+ */
46
+ private execute;
47
+ /**
48
+ * Logs the success/error metrics
49
+ * @param result
50
+ * @param request
51
+ */
52
+ private logResult;
53
+ }
54
+ export {};
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Copyright (c) NCR Terafina
5
+ **/
6
+ const command_1 = require("@salesforce/command");
7
+ const core_1 = require("@salesforce/core");
8
+ const fs_extra_1 = require("fs-extra");
9
+ const path_1 = require("path");
10
+ // Initialize Messages with the current plugin directory
11
+ core_1.Messages.importMessagesDirectory(__dirname);
12
+ // Load the specific messages for this file. Messages from @salesforce/command, @salesforce/core,
13
+ // or any library that is using the messages framework can also be loaded this way.
14
+ const messages = core_1.Messages.loadMessages('@terafina/tffa-sfdx-plugin', 'dataImport');
15
+ /**
16
+ * Represents a request to perform upsert operation using sfdx bulk2 API
17
+ */
18
+ class UpsertRequest {
19
+ constructor(object, input, externalIdFieldName) {
20
+ this.object = object;
21
+ this.input = input;
22
+ this.externalIdFieldName = externalIdFieldName;
23
+ this.operation = 'upsert';
24
+ }
25
+ }
26
+ /**
27
+ * Fields that usually store the external id of records.
28
+ * Fixing them instead of resolving them to save on describe calls.
29
+ */
30
+ const EXTERNAL_ID_FIELDS = ['tffa__ExternalId__c', 'ExternalId__c', 'Code__c'];
31
+ class DataImport extends command_1.SfdxCommand {
32
+ constructor() {
33
+ super(...arguments);
34
+ this.referenceIdExternalIdMap = new Map();
35
+ }
36
+ async run() {
37
+ const sobjectfiles = this.flags.sobjectfiles;
38
+ const plan = this.flags.plan;
39
+ const sobjecttypes = this.flags.sobjecttypes;
40
+ if (sobjectfiles) {
41
+ for (const sobjectfile of sobjectfiles) {
42
+ const records = (await this.readJSON(sobjectfile)).records;
43
+ if (records.length) {
44
+ this.collectExternalIds(records);
45
+ await this.upsert(records);
46
+ }
47
+ }
48
+ }
49
+ else if (plan) {
50
+ let upsertConfigs = await this.readJSON(plan);
51
+ if (sobjecttypes) {
52
+ const i = [...upsertConfigs].reverse().findIndex(c => sobjecttypes.includes(c.sobject));
53
+ if (i !== -1) {
54
+ upsertConfigs = upsertConfigs.slice(0, upsertConfigs.length - i);
55
+ }
56
+ }
57
+ const basedir = (0, path_1.dirname)(plan);
58
+ for (const upsertConfig of upsertConfigs) {
59
+ const records = [];
60
+ for (const file of upsertConfig.files) {
61
+ const sobjectfile = (0, path_1.join)(basedir, file);
62
+ records.push(...(await this.readJSON(sobjectfile)).records);
63
+ }
64
+ if (records.length) {
65
+ this.collectExternalIds(records);
66
+ if (!sobjecttypes || sobjecttypes.includes(upsertConfig.sobject)) {
67
+ await this.upsert(records);
68
+ }
69
+ }
70
+ }
71
+ }
72
+ }
73
+ /**
74
+ * Reads the JSON file
75
+ * @param filename path to JSON file
76
+ */
77
+ async readJSON(filename) {
78
+ const fileContent = await (0, fs_extra_1.readFile)(filename, 'utf-8');
79
+ return JSON.parse(fileContent);
80
+ }
81
+ /**
82
+ * Gathers external ids from the specified records. The external id of each record along with the external id field name
83
+ * is stored as a lookup reference mapped to the reference id of the record.
84
+ * @see referenceIdExternalIdMap
85
+ * @param records
86
+ */
87
+ collectExternalIds(records) {
88
+ for (const record of records) {
89
+ for (const externalIdFieldName of EXTERNAL_ID_FIELDS) {
90
+ const externalId = record[externalIdFieldName];
91
+ if (externalId) {
92
+ this.referenceIdExternalIdMap.set(record.attributes.referenceId, { fieldName: externalIdFieldName, value: externalId });
93
+ break;
94
+ }
95
+ }
96
+ for (const v of Object.values(record)) {
97
+ if (v && typeof v === 'object' && v.records) {
98
+ this.collectExternalIds(v.records);
99
+ }
100
+ }
101
+ }
102
+ }
103
+ /**
104
+ * Upserts the records using sfdx bulk2 API.
105
+ * @param records SObject records
106
+ */
107
+ async upsert(records) {
108
+ this.ux.startSpinner(`Importing record(s) and relationships of ${records[0].attributes.type}`);
109
+ try {
110
+ const request = this.createUpsertRequest(records);
111
+ await this.execute(request);
112
+ }
113
+ catch (error) {
114
+ this.ux.stopSpinner('error');
115
+ throw error;
116
+ }
117
+ finally {
118
+ this.ux.stopSpinner('done\n');
119
+ }
120
+ }
121
+ /**
122
+ * Creates an upsert request for the records
123
+ * @param records
124
+ */
125
+ createUpsertRequest(records) {
126
+ const externalIdFieldName = EXTERNAL_ID_FIELDS.find(f => records[0][f]) || EXTERNAL_ID_FIELDS[0];
127
+ for (const record of records) {
128
+ const externalId = record[externalIdFieldName];
129
+ if (!externalId) {
130
+ this.ux.log(`- ERROR: External id (${externalIdFieldName}) not set for record ${record.attributes.type} ${record.attributes.referenceId}`);
131
+ throw new Error('RECORD_ERROR');
132
+ }
133
+ }
134
+ const sobjectType = records[0].attributes.type;
135
+ return new UpsertRequest(sobjectType, records, externalIdFieldName);
136
+ }
137
+ /**
138
+ * Executes the upsert request. May include execution of child upsert requests if the records have child relationships.
139
+ * @param request
140
+ */
141
+ async execute(request) {
142
+ const describeResult = await this.org.getConnection().describe$(request.object);
143
+ const childrenMap = new Map();
144
+ for (const record of request.input) {
145
+ for (const field of describeResult.fields) {
146
+ if (!field.relationshipName) {
147
+ continue;
148
+ }
149
+ const lookupField = field;
150
+ const lookupId = record[lookupField.name];
151
+ if (lookupId?.startsWith('@')) {
152
+ const externalId = this.referenceIdExternalIdMap.get(lookupId.slice(1));
153
+ if (!externalId) {
154
+ this.ux.error(`- ERROR: Unable to resolve external id for reference id ${lookupId}`);
155
+ throw new Error(`ERROR`);
156
+ }
157
+ record[`${lookupField.relationshipName}.${externalId.fieldName}`] = externalId.value;
158
+ delete record[lookupField.name];
159
+ }
160
+ }
161
+ for (const childRelationship of describeResult.childRelationships || []) {
162
+ const children = record[childRelationship.relationshipName]?.records;
163
+ if (children) {
164
+ for (const child of children) {
165
+ child[childRelationship.field] = `@${record.attributes.referenceId}`;
166
+ }
167
+ if (!childrenMap.has(childRelationship.childSObject)) {
168
+ childrenMap.set(childRelationship.childSObject, []);
169
+ }
170
+ childrenMap.get(childRelationship.childSObject).push(...children);
171
+ delete record[childRelationship.relationshipName];
172
+ }
173
+ }
174
+ }
175
+ this.ux.setSpinnerStatus(`importing ${request.input.length} record(s) of ${request.object} using ${request.externalIdFieldName} as external id`);
176
+ const result = await this.org.getConnection().bulk2.loadAndWaitForResults({ ...request });
177
+ this.logResult(result, request);
178
+ for (const children of childrenMap.values()) {
179
+ await this.execute(this.createUpsertRequest(children));
180
+ }
181
+ }
182
+ /**
183
+ * Logs the success/error metrics
184
+ * @param result
185
+ * @param request
186
+ */
187
+ logResult(result, request) {
188
+ if (result.successfulResults?.length) {
189
+ let createdCount = 0;
190
+ let updatedCount = 0;
191
+ for (const successfulResult of result.successfulResults) {
192
+ if (successfulResult.sf__Created === 'true') {
193
+ createdCount++;
194
+ }
195
+ else {
196
+ updatedCount++;
197
+ }
198
+ }
199
+ if (createdCount) {
200
+ this.ux.log(`- Created ${createdCount} record(s) of ${request.object}`);
201
+ }
202
+ if (updatedCount) {
203
+ this.ux.log(`- Updated ${updatedCount} record(s) of ${request.object}`);
204
+ }
205
+ }
206
+ if (result.failedResults?.length) {
207
+ for (const failedResult of result.failedResults) {
208
+ this.ux.error(`- ERROR: ${failedResult.sf__Error} id=${failedResult.sf__Id}`);
209
+ }
210
+ throw new Error(`RECORD_ERROR`);
211
+ }
212
+ if (result.unprocessedRecords?.length) {
213
+ throw new Error(`INTERNAL_ERROR`);
214
+ }
215
+ }
216
+ }
217
+ exports.default = DataImport;
218
+ DataImport.requiresUsername = true;
219
+ DataImport.description = messages.getMessage('commandDescription');
220
+ DataImport.examples = messages.getMessages('commandExamples');
221
+ DataImport.flagsConfig = {
222
+ sobjectfiles: command_1.flags.array({ char: 'f', required: false, description: messages.getMessage('sobjectfilesFlagDescription') }),
223
+ plan: command_1.flags.string({
224
+ char: 'p',
225
+ description: messages.getMessage('planFlagDescription'),
226
+ default: 'data/configuration/config-data-plan.json'
227
+ }),
228
+ sobjecttypes: command_1.flags.array({ char: 's', required: false, description: messages.getMessage('sobjecttypesFlagDescription') })
229
+ };
230
+ //# sourceMappingURL=import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../src/commands/tffa/data/import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Copyright (c) NCR Terafina
3
+ **/
4
+ module.exports = {
5
+ commandDescription: `Imports data into an org using the SObject Bulk Upsert API. This data can include master-detail relationships. Primarily used for importing business configurations.
6
+ To generate JSON files for use with tffa:data:import, run "sfdx tffa:data:export"`,
7
+ sobjectfilesFlagDescription: 'comma-delimited, ordered paths of json files containing collection of record trees to upsert',
8
+ planFlagDescription:
9
+ 'path to plan to upsert multiple data files that have master-detail relationships; to restrict the sobject types imported using the plan, specify sobjecttypes along with plan',
10
+ sobjecttypesFlagDescription: 'comma-delimited, list of sobject types to be imported when using a plan',
11
+ commandExamples: [
12
+ `$ sfdx tffa:data:import
13
+ (Imports all records from default plan - data/configuration/config-data-plan.json
14
+ - Updated 101 record(s) of tffa__Product__c
15
+ - Updated 532 record(s) of tffa__ProductFeature__c
16
+ - Updated 143 record(s) of tffa__ProductTerm__c
17
+ Importing record(s) and relationships of tffa__Product__c... done
18
+
19
+ - Updated 5 record(s) of tffa__DependentProductEligibility__c
20
+ Importing record(s) and relationships of tffa__DependentProductEligibility__c... done`,
21
+ `$ sfdx tffa:data:import -p data/configuration/config-data-plan.json
22
+ (Imports all records from default plan - data/configuration/config-data-plan.json
23
+ - Updated 101 record(s) of tffa__Product__c
24
+ - Updated 532 record(s) of tffa__ProductFeature__c
25
+ - Updated 143 record(s) of tffa__ProductTerm__c
26
+ Importing record(s) and relationships of tffa__Product__c... done
27
+ ...
28
+ `,
29
+ `$ sfdx tffa:data:import -s tffa__Product__c
30
+ (Imports only tffa__Product__c from data/configuration/config-data-plan.json)
31
+ - Updated 101 record(s) of tffa__Product__c
32
+ - Updated 532 record(s) of tffa__ProductFeature__c
33
+ - Updated 143 record(s) of tffa__ProductTerm__c
34
+ Importing record(s) and relationships of tffa__Product__c... done
35
+ ...
36
+ `,
37
+ `$ sfdx tffa:data:import -f data/configuration/DisclosureTemplate__c.json,data/configuration/AddOnService__c.json
38
+ (Imports tffa__DisclosureTemplate__c and tffa__AddOnService__c from the files; ignores config data plan)
39
+ - Updated 82 record(s) of tffa__DisclosureTemplate__c
40
+ Importing record(s) and relationships of tffa__DisclosureTemplate__c... done
41
+
42
+ - Updated 30 record(s) of tffa__AddOnService__c
43
+ Importing record(s) and relationships of tffa__AddOnService__c... done`
44
+ ]
45
+ };
@@ -1 +1 @@
1
- {"version":"16.0.0-rc.5","commands":{"tffa:apexdoc":{"id":"tffa:apexdoc","description":"Command to generate apex documentation similar to javadoc based on the comments in apex classes.\nPlease read more at [Documenting Apex Classes](development-guidelines/documentation).\nOnce generated you can use vscode plugin [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer) and select index.html from generated folder and run Open with LiveServer to render the html","strict":true,"usage":"<%= command.id %> [-s <directory>] [-d <directory>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@terafina/tffa-sfdx-plugin","pluginAlias":"@terafina/tffa-sfdx-plugin","pluginType":"core","aliases":[],"examples":["$ sfdx tffa:apexdoc"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"sourcefolder":{"name":"sourcefolder","type":"option","char":"s","description":"directory containing sfdx project","multiple":false,"default":"."},"destfolder":{"name":"destfolder","type":"option","char":"d","description":"directory to generate the api docs","multiple":false}},"args":[],"flagsConfig":{"sourcefolder":{"kind":"directory","char":"s","description":"directory containing sfdx project","default":".","input":[],"multiple":false,"type":"option"},"destfolder":{"kind":"directory","char":"d","description":"directory to generate the api docs","input":[],"multiple":false,"type":"option"}}},"tffa:lint":{"id":"tffa:lint","description":"Scans a sfdx project and provide a violations report based on defined standards.\nPerforms static analysis of source code with a command-line interface and report output.\nThe command creates \"Rule Violations\" when the it identifies issues. Developers use this information as feedback to fix their code.\n\nThe rules used in the lint command are:\n\n- [Apex PMD](https://pmd.github.io/latest/pmd_rules_apex.html) to statically analyse Apex Code to find design, performance and security vulnerabilities. It allowes us to have a better quality and avoid maintenance, performance and bug problems in our Apex code. for Salesforce apex classes are scans during build and development process.\n- Custom rules\n - Custom Objects should have a description\n - Custom Fields should have a description'\n - Custom fields should not contain underscores.\n - Custom fields in managed object should start with CZ.\n - Custom objects should start with CZ.\n - Using Metadata API Version and Project source api version should be the latest supported.\n - Files violating naming conventions\n - Do not use isCreateable, isAccessible, isUpdateable, CRUD/FLS Checks are checked by tffa.AbstractRepository\n - Do not call methods directly of an abstract class. Call methods from Repository classes extending tffa.AbstractRepository\n - Do not call methods directly of an abstract class. Call methods from Controllers classes extending tffa.AbstractController',\n - Do not call methods directly of an abstract class. Call methods from RESTService classes extending tffa.AbstractRESTService\n - Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doQuery method\n - Do not supress PMD warnings using @SupressWarnings\n\nThe lint command is integrated into the jenkins build to report violations and fail builds\n","strict":true,"usage":"<%= command.id %> [-s <directory>] [-m <integer>] [-r <filepath>] [-e] [-f] [-j] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@terafina/tffa-sfdx-plugin","pluginAlias":"@terafina/tffa-sfdx-plugin","pluginType":"core","aliases":[],"examples":["$sfdx tffa:lint"],"flags":{"json":{"name":"json","type":"boolean","char":"j","description":"generate json output","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"sourcefolder":{"name":"sourcefolder","type":"option","char":"s","description":"directory containing sfdx project","multiple":false,"default":"."},"minapi":{"name":"minapi","type":"option","char":"m","description":"minimum api version to use during quality checks","multiple":false,"default":56},"rulesetpath":{"name":"rulesetpath","type":"option","char":"r","description":"path to pmd ruleset","multiple":false},"eject":{"name":"eject","type":"boolean","char":"e","description":"update local pmd ruleset","allowNo":false},"level":{"name":"level","type":"boolean","char":"f","description":"emit fatal violations only","allowNo":false}},"args":[],"flagsConfig":{"sourcefolder":{"kind":"directory","char":"s","description":"directory containing sfdx project","default":".","input":[],"multiple":false,"type":"option"},"minapi":{"kind":"integer","char":"m","description":"minimum api version to use during quality checks","default":56,"input":[],"multiple":false,"type":"option"},"json":{"kind":"boolean","char":"j","description":"generate json output","allowNo":false,"type":"boolean"},"rulesetpath":{"kind":"filepath","char":"r","description":"path to pmd ruleset","input":[],"multiple":false,"type":"option"},"eject":{"kind":"boolean","char":"e","description":"update local pmd ruleset","allowNo":false,"type":"boolean"},"level":{"kind":"boolean","char":"f","description":"emit fatal violations only","allowNo":false,"type":"boolean"}}},"tffa:meta":{"id":"tffa:meta","description":"Scan a sfdx project for generating metadata summary information","strict":true,"usage":"<%= command.id %> [-s <directory>] [-d <directory>] [-c <directory>] [-o json|csv|human] [-f] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@terafina/tffa-sfdx-plugin","pluginAlias":"@terafina/tffa-sfdx-plugin","pluginType":"core","aliases":[],"examples":["$ sfdx tffa:meta"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"sourcefolder":{"name":"sourcefolder","type":"option","char":"s","description":"directory containing sfdx project","multiple":false,"default":"."},"destpath":{"name":"destpath","type":"option","char":"d","description":"full path output file","multiple":false,"default":"."},"clientname":{"name":"clientname","type":"option","char":"c","description":"name of the client","multiple":false,"default":"."},"output":{"name":"output","type":"option","char":"o","description":"output format json csv human","helpValue":"(json|csv|human)","multiple":false,"options":["json","csv","human"]},"fields":{"name":"fields","type":"boolean","char":"f","description":"generate field output","allowNo":false}},"args":[],"flagsConfig":{"sourcefolder":{"kind":"directory","char":"s","description":"directory containing sfdx project","default":".","input":[],"multiple":false,"type":"option"},"destpath":{"kind":"directory","char":"d","description":"full path output file","default":".","input":[],"multiple":false,"type":"option"},"clientname":{"kind":"directory","char":"c","description":"name of the client","default":".","input":[],"multiple":false,"type":"option"},"output":{"kind":"enum","helpValue":"(json|csv|human)","char":"o","options":["json","csv","human"],"description":"output format json csv human","input":[],"multiple":false,"type":"option"},"fields":{"kind":"boolean","char":"f","description":"generate field output","allowNo":false,"type":"boolean"}}},"tffa:ping":{"id":"tffa:ping","description":"Ping and test the plugin","strict":true,"usage":"<%= command.id %> [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@terafina/tffa-sfdx-plugin","pluginAlias":"@terafina/tffa-sfdx-plugin","pluginType":"core","aliases":[],"examples":["$ sfdx tffa:ping "],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"}},"args":[{"name":"file"}],"flagsConfig":{}},"tffa:data:export":{"id":"tffa:data:export","description":"Exports records of specified sobject types from target org into JSON file(s). Primarily used for exporting business configurations.\nThe export command requires a target org for exporting records. Run this command from within a sfdx project containing a default username or specify targetusername explicitly.","strict":true,"usage":"<%= command.id %> -s <array> [-d <string>] [-g <string>] [-o <array>] [-c <array>] [-s] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@terafina/tffa-sfdx-plugin","pluginAlias":"@terafina/tffa-sfdx-plugin","pluginType":"core","aliases":[],"examples":["$ sfdx tffa:data:export --sobjecttype tffa__Product__c\n Fetched 101 records of tffa__Product__c\n Writing 24 records to ./data/configuration/Product__c.json\n Writing 30 records to ./data/configuration/Product__c1.json\n Writing 20 records to ./data/configuration/Product__c2.json\n Writing 27 records to ./data/configuration/Product__c3.json\n ","$ sfdx tffa:data:export --sobjecttype tffa__DisclosureTemplate__c,tffa__DisclosureChecklist__c,tffa__DisclosureMatrix__c\n Fetched 81 records of tffa__DisclosureTemplate__c\n Writing 81 records to ./data/configuration/DisclosureTemplate__c.json\n Fetched 57 records of tffa__DisclosureChecklist__c\n Writing 57 records to ./data/configuration/DisclosureChecklist__c.json\n Fetched 144 records of tffa__DisclosureMatrix__c\n Writing 144 records to ./data/configuration/DisclosureMatrix__c.json\n "],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"targetusername":{"name":"targetusername","type":"option","char":"u","description":"username or alias for the target org; overrides default target org","multiple":false},"apiversion":{"name":"apiversion","type":"option","description":"override the api version used for api requests made by this command","multiple":false},"sobjecttype":{"name":"sobjecttype","type":"option","char":"s","description":"sobject types of records to be exported","required":true,"multiple":false},"outputdir":{"name":"outputdir","type":"option","char":"d","description":"output directory where the JSON files of exported records will be placed","multiple":false,"default":"./data/configuration"},"groupby":{"name":"groupby","type":"option","char":"g","description":"the field to be used for grouping the exported records; records belonging to each group are placed in separate JSON files (filename suffixed by group name)","required":false,"multiple":false},"orderby":{"name":"orderby","type":"option","char":"o","description":"the fields to be used for sorting the exported records","required":false,"multiple":false},"children":{"name":"children","type":"option","char":"c","description":"the child relationships to be included in the exported records; this is not required for tffa package objects. e.g. tffa__Features__r,tffa__Terms__r child relationships are auto included when running export command for tffa__Product__c","required":false,"multiple":false},"skipconfigplan":{"name":"skipconfigplan","type":"boolean","char":"s","description":"skip import of exported record JSON files into configuration plan","required":false,"allowNo":false}},"args":[],"requiresUsername":true,"flagsConfig":{"sobjecttype":{"kind":"array","char":"s","required":true,"description":"sobject types of records to be exported","input":[],"multiple":false,"type":"option"},"outputdir":{"kind":"string","char":"d","description":"output directory where the JSON files of exported records will be placed","default":"./data/configuration","input":[],"multiple":false,"type":"option"},"groupby":{"kind":"string","char":"g","required":false,"description":"the field to be used for grouping the exported records; records belonging to each group are placed in separate JSON files (filename suffixed by group name)","input":[],"multiple":false,"type":"option"},"orderby":{"kind":"array","char":"o","required":false,"description":"the fields to be used for sorting the exported records","input":[],"multiple":false,"type":"option"},"children":{"kind":"array","char":"c","required":false,"description":"the child relationships to be included in the exported records; this is not required for tffa package objects. e.g. tffa__Features__r,tffa__Terms__r child relationships are auto included when running export command for tffa__Product__c","input":[],"multiple":false,"type":"option"},"skipconfigplan":{"kind":"boolean","char":"s","required":false,"description":"skip import of exported record JSON files into configuration plan","allowNo":false,"type":"boolean"}}},"tffa:source:apiset":{"id":"tffa:source:apiset","description":"Upgrades the current project and all metadata to the latest API version","strict":true,"usage":"<%= command.id %> [-h <help>] [-s <directory>] [-a <integer>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@terafina/tffa-sfdx-plugin","pluginAlias":"@terafina/tffa-sfdx-plugin","pluginType":"core","aliases":[],"examples":["$ sfdx tffa:source:apiset "],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"sourcefolder":{"name":"sourcefolder","type":"option","char":"s","description":"directory containing sfdx project","multiple":false,"default":"."},"api":{"name":"api","type":"option","char":"a","description":"specify the API version ","multiple":false,"default":56}},"args":[],"flagsConfig":{"help":{"kind":"help","description":"Show CLI help.","char":"h","allowNo":false,"type":"boolean"},"sourcefolder":{"kind":"directory","char":"s","description":"directory containing sfdx project","default":".","input":[],"multiple":false,"type":"option"},"api":{"kind":"integer","char":"a","description":"specify the API version ","default":56,"input":[],"multiple":false,"type":"option"}}}}}
1
+ {"version":"16.0.0-rc.6","commands":{"tffa:apexdoc":{"id":"tffa:apexdoc","description":"Command to generate apex documentation similar to javadoc based on the comments in apex classes.\nPlease read more at [Documenting Apex Classes](development-guidelines/documentation).\nOnce generated you can use vscode plugin [Live Server](https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer) and select index.html from generated folder and run Open with LiveServer to render the html","strict":true,"usage":"<%= command.id %> [-s <directory>] [-d <directory>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@terafina/tffa-sfdx-plugin","pluginAlias":"@terafina/tffa-sfdx-plugin","pluginType":"core","aliases":[],"examples":["$ sfdx tffa:apexdoc"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"sourcefolder":{"name":"sourcefolder","type":"option","char":"s","description":"directory containing sfdx project","multiple":false,"default":"."},"destfolder":{"name":"destfolder","type":"option","char":"d","description":"directory to generate the api docs","multiple":false}},"args":[],"flagsConfig":{"sourcefolder":{"kind":"directory","char":"s","description":"directory containing sfdx project","default":".","input":[],"multiple":false,"type":"option"},"destfolder":{"kind":"directory","char":"d","description":"directory to generate the api docs","input":[],"multiple":false,"type":"option"}}},"tffa:lint":{"id":"tffa:lint","description":"Scans a sfdx project and provide a violations report based on defined standards.\nPerforms static analysis of source code with a command-line interface and report output.\nThe command creates \"Rule Violations\" when the it identifies issues. Developers use this information as feedback to fix their code.\n\nThe rules used in the lint command are:\n\n- [Apex PMD](https://pmd.github.io/latest/pmd_rules_apex.html) to statically analyse Apex Code to find design, performance and security vulnerabilities. It allowes us to have a better quality and avoid maintenance, performance and bug problems in our Apex code. for Salesforce apex classes are scans during build and development process.\n- Custom rules\n - Custom Objects should have a description\n - Custom Fields should have a description'\n - Custom fields should not contain underscores.\n - Custom fields in managed object should start with CZ.\n - Custom objects should start with CZ.\n - Using Metadata API Version and Project source api version should be the latest supported.\n - Files violating naming conventions\n - Do not use isCreateable, isAccessible, isUpdateable, CRUD/FLS Checks are checked by tffa.AbstractRepository\n - Do not call methods directly of an abstract class. Call methods from Repository classes extending tffa.AbstractRepository\n - Do not call methods directly of an abstract class. Call methods from Controllers classes extending tffa.AbstractController',\n - Do not call methods directly of an abstract class. Call methods from RESTService classes extending tffa.AbstractRESTService\n - Any SOQL should be encapsulated into Repository classes extending tffa.AbstractRepository. Use doQuery method\n - Do not supress PMD warnings using @SupressWarnings\n\nThe lint command is integrated into the jenkins build to report violations and fail builds\n","strict":true,"usage":"<%= command.id %> [-s <directory>] [-m <integer>] [-r <filepath>] [-e] [-f] [-j] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@terafina/tffa-sfdx-plugin","pluginAlias":"@terafina/tffa-sfdx-plugin","pluginType":"core","aliases":[],"examples":["$sfdx tffa:lint"],"flags":{"json":{"name":"json","type":"boolean","char":"j","description":"generate json output","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"sourcefolder":{"name":"sourcefolder","type":"option","char":"s","description":"directory containing sfdx project","multiple":false,"default":"."},"minapi":{"name":"minapi","type":"option","char":"m","description":"minimum api version to use during quality checks","multiple":false,"default":56},"rulesetpath":{"name":"rulesetpath","type":"option","char":"r","description":"path to pmd ruleset","multiple":false},"eject":{"name":"eject","type":"boolean","char":"e","description":"update local pmd ruleset","allowNo":false},"level":{"name":"level","type":"boolean","char":"f","description":"emit fatal violations only","allowNo":false}},"args":[],"flagsConfig":{"sourcefolder":{"kind":"directory","char":"s","description":"directory containing sfdx project","default":".","input":[],"multiple":false,"type":"option"},"minapi":{"kind":"integer","char":"m","description":"minimum api version to use during quality checks","default":56,"input":[],"multiple":false,"type":"option"},"json":{"kind":"boolean","char":"j","description":"generate json output","allowNo":false,"type":"boolean"},"rulesetpath":{"kind":"filepath","char":"r","description":"path to pmd ruleset","input":[],"multiple":false,"type":"option"},"eject":{"kind":"boolean","char":"e","description":"update local pmd ruleset","allowNo":false,"type":"boolean"},"level":{"kind":"boolean","char":"f","description":"emit fatal violations only","allowNo":false,"type":"boolean"}}},"tffa:meta":{"id":"tffa:meta","description":"Scan a sfdx project for generating metadata summary information","strict":true,"usage":"<%= command.id %> [-s <directory>] [-d <directory>] [-c <directory>] [-o json|csv|human] [-f] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@terafina/tffa-sfdx-plugin","pluginAlias":"@terafina/tffa-sfdx-plugin","pluginType":"core","aliases":[],"examples":["$ sfdx tffa:meta"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"sourcefolder":{"name":"sourcefolder","type":"option","char":"s","description":"directory containing sfdx project","multiple":false,"default":"."},"destpath":{"name":"destpath","type":"option","char":"d","description":"full path output file","multiple":false,"default":"."},"clientname":{"name":"clientname","type":"option","char":"c","description":"name of the client","multiple":false,"default":"."},"output":{"name":"output","type":"option","char":"o","description":"output format json csv human","helpValue":"(json|csv|human)","multiple":false,"options":["json","csv","human"]},"fields":{"name":"fields","type":"boolean","char":"f","description":"generate field output","allowNo":false}},"args":[],"flagsConfig":{"sourcefolder":{"kind":"directory","char":"s","description":"directory containing sfdx project","default":".","input":[],"multiple":false,"type":"option"},"destpath":{"kind":"directory","char":"d","description":"full path output file","default":".","input":[],"multiple":false,"type":"option"},"clientname":{"kind":"directory","char":"c","description":"name of the client","default":".","input":[],"multiple":false,"type":"option"},"output":{"kind":"enum","helpValue":"(json|csv|human)","char":"o","options":["json","csv","human"],"description":"output format json csv human","input":[],"multiple":false,"type":"option"},"fields":{"kind":"boolean","char":"f","description":"generate field output","allowNo":false,"type":"boolean"}}},"tffa:ping":{"id":"tffa:ping","description":"Ping and test the plugin","strict":true,"usage":"<%= command.id %> [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@terafina/tffa-sfdx-plugin","pluginAlias":"@terafina/tffa-sfdx-plugin","pluginType":"core","aliases":[],"examples":["$ sfdx tffa:ping "],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"}},"args":[{"name":"file"}],"flagsConfig":{}},"tffa:data:export":{"id":"tffa:data:export","description":"Exports records of specified sobject types from target org into JSON file(s). Primarily used for exporting business configurations.\nThe export command requires a target org for exporting records. Run this command from within a sfdx project containing a default username or specify targetusername explicitly.","strict":true,"usage":"<%= command.id %> -s <array> [-d <string>] [-g <string>] [-o <array>] [-c <array>] [-s] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@terafina/tffa-sfdx-plugin","pluginAlias":"@terafina/tffa-sfdx-plugin","pluginType":"core","aliases":[],"examples":["$ sfdx tffa:data:export --sobjecttype tffa__Product__c\n Fetched 101 records of tffa__Product__c\n Writing 24 records to ./data/configuration/Product__c.json\n Writing 30 records to ./data/configuration/Product__c1.json\n Writing 20 records to ./data/configuration/Product__c2.json\n Writing 27 records to ./data/configuration/Product__c3.json\n ","$ sfdx tffa:data:export --sobjecttype tffa__DisclosureTemplate__c,tffa__DisclosureChecklist__c,tffa__DisclosureMatrix__c\n Fetched 81 records of tffa__DisclosureTemplate__c\n Writing 81 records to ./data/configuration/DisclosureTemplate__c.json\n Fetched 57 records of tffa__DisclosureChecklist__c\n Writing 57 records to ./data/configuration/DisclosureChecklist__c.json\n Fetched 144 records of tffa__DisclosureMatrix__c\n Writing 144 records to ./data/configuration/DisclosureMatrix__c.json\n "],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"targetusername":{"name":"targetusername","type":"option","char":"u","description":"username or alias for the target org; overrides default target org","multiple":false},"apiversion":{"name":"apiversion","type":"option","description":"override the api version used for api requests made by this command","multiple":false},"sobjecttype":{"name":"sobjecttype","type":"option","char":"s","description":"sobject types of records to be exported","required":true,"multiple":false},"outputdir":{"name":"outputdir","type":"option","char":"d","description":"output directory where the JSON files of exported records will be placed","multiple":false,"default":"./data/configuration"},"groupby":{"name":"groupby","type":"option","char":"g","description":"the field to be used for grouping the exported records; records belonging to each group are placed in separate JSON files (filename suffixed by group name)","required":false,"multiple":false},"orderby":{"name":"orderby","type":"option","char":"o","description":"the fields to be used for sorting the exported records","required":false,"multiple":false},"children":{"name":"children","type":"option","char":"c","description":"the child relationships to be included in the exported records; this is not required for tffa package objects. e.g. tffa__Features__r,tffa__Terms__r child relationships are auto included when running export command for tffa__Product__c","required":false,"multiple":false},"skipconfigplan":{"name":"skipconfigplan","type":"boolean","char":"s","description":"skip import of exported record JSON files into configuration plan","required":false,"allowNo":false}},"args":[],"requiresUsername":true,"flagsConfig":{"sobjecttype":{"kind":"array","char":"s","required":true,"description":"sobject types of records to be exported","input":[],"multiple":false,"type":"option"},"outputdir":{"kind":"string","char":"d","description":"output directory where the JSON files of exported records will be placed","default":"./data/configuration","input":[],"multiple":false,"type":"option"},"groupby":{"kind":"string","char":"g","required":false,"description":"the field to be used for grouping the exported records; records belonging to each group are placed in separate JSON files (filename suffixed by group name)","input":[],"multiple":false,"type":"option"},"orderby":{"kind":"array","char":"o","required":false,"description":"the fields to be used for sorting the exported records","input":[],"multiple":false,"type":"option"},"children":{"kind":"array","char":"c","required":false,"description":"the child relationships to be included in the exported records; this is not required for tffa package objects. e.g. tffa__Features__r,tffa__Terms__r child relationships are auto included when running export command for tffa__Product__c","input":[],"multiple":false,"type":"option"},"skipconfigplan":{"kind":"boolean","char":"s","required":false,"description":"skip import of exported record JSON files into configuration plan","allowNo":false,"type":"boolean"}}},"tffa:data:import":{"id":"tffa:data:import","description":"Imports data into an org using the SObject Bulk Upsert API. This data can include master-detail relationships. Primarily used for importing business configurations.\n To generate JSON files for use with tffa:data:import, run \"sfdx tffa:data:export\"","strict":true,"usage":"<%= command.id %> [-f <array>] [-p <string>] [-s <array>] [-u <string>] [--apiversion <string>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@terafina/tffa-sfdx-plugin","pluginAlias":"@terafina/tffa-sfdx-plugin","pluginType":"core","aliases":[],"examples":["$ sfdx tffa:data:import\n (Imports all records from default plan - data/configuration/config-data-plan.json\n - Updated 101 record(s) of tffa__Product__c\n - Updated 532 record(s) of tffa__ProductFeature__c\n - Updated 143 record(s) of tffa__ProductTerm__c\n Importing record(s) and relationships of tffa__Product__c... done\n \n - Updated 5 record(s) of tffa__DependentProductEligibility__c\n Importing record(s) and relationships of tffa__DependentProductEligibility__c... done","$ sfdx tffa:data:import -p data/configuration/config-data-plan.json\n (Imports all records from default plan - data/configuration/config-data-plan.json\n - Updated 101 record(s) of tffa__Product__c\n - Updated 532 record(s) of tffa__ProductFeature__c\n - Updated 143 record(s) of tffa__ProductTerm__c\n Importing record(s) and relationships of tffa__Product__c... done\n ... \n ","$ sfdx tffa:data:import -s tffa__Product__c\n (Imports only tffa__Product__c from data/configuration/config-data-plan.json)\n - Updated 101 record(s) of tffa__Product__c\n - Updated 532 record(s) of tffa__ProductFeature__c\n - Updated 143 record(s) of tffa__ProductTerm__c\n Importing record(s) and relationships of tffa__Product__c... done\n ...\n ","$ sfdx tffa:data:import -f data/configuration/DisclosureTemplate__c.json,data/configuration/AddOnService__c.json\n (Imports tffa__DisclosureTemplate__c and tffa__AddOnService__c from the files; ignores config data plan)\n - Updated 82 record(s) of tffa__DisclosureTemplate__c\n Importing record(s) and relationships of tffa__DisclosureTemplate__c... done\n \n - Updated 30 record(s) of tffa__AddOnService__c\n Importing record(s) and relationships of tffa__AddOnService__c... done"],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"targetusername":{"name":"targetusername","type":"option","char":"u","description":"username or alias for the target org; overrides default target org","multiple":false},"apiversion":{"name":"apiversion","type":"option","description":"override the api version used for api requests made by this command","multiple":false},"sobjectfiles":{"name":"sobjectfiles","type":"option","char":"f","description":"comma-delimited, ordered paths of json files containing collection of record trees to upsert","required":false,"multiple":false},"plan":{"name":"plan","type":"option","char":"p","description":"path to plan to upsert multiple data files that have master-detail relationships; to restrict the sobject types imported using the plan, specify sobjecttypes along with plan","multiple":false,"default":"data/configuration/config-data-plan.json"},"sobjecttypes":{"name":"sobjecttypes","type":"option","char":"s","description":"comma-delimited, list of sobject types to be imported when using a plan","required":false,"multiple":false}},"args":[],"requiresUsername":true,"flagsConfig":{"sobjectfiles":{"kind":"array","char":"f","required":false,"description":"comma-delimited, ordered paths of json files containing collection of record trees to upsert","input":[],"multiple":false,"type":"option"},"plan":{"kind":"string","char":"p","description":"path to plan to upsert multiple data files that have master-detail relationships; to restrict the sobject types imported using the plan, specify sobjecttypes along with plan","default":"data/configuration/config-data-plan.json","input":[],"multiple":false,"type":"option"},"sobjecttypes":{"kind":"array","char":"s","required":false,"description":"comma-delimited, list of sobject types to be imported when using a plan","input":[],"multiple":false,"type":"option"}}},"tffa:source:apiset":{"id":"tffa:source:apiset","description":"Upgrades the current project and all metadata to the latest API version","strict":true,"usage":"<%= command.id %> [-h <help>] [-s <directory>] [-a <integer>] [--json] [--loglevel trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL]","pluginName":"@terafina/tffa-sfdx-plugin","pluginAlias":"@terafina/tffa-sfdx-plugin","pluginType":"core","aliases":[],"examples":["$ sfdx tffa:source:apiset "],"flags":{"json":{"name":"json","type":"boolean","description":"format output as json","allowNo":false},"loglevel":{"name":"loglevel","type":"option","description":"logging level for this command invocation","required":false,"helpValue":"(trace|debug|info|warn|error|fatal|TRACE|DEBUG|INFO|WARN|ERROR|FATAL)","multiple":false,"options":["trace","debug","info","warn","error","fatal","TRACE","DEBUG","INFO","WARN","ERROR","FATAL"],"default":"warn"},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"sourcefolder":{"name":"sourcefolder","type":"option","char":"s","description":"directory containing sfdx project","multiple":false,"default":"."},"api":{"name":"api","type":"option","char":"a","description":"specify the API version ","multiple":false,"default":56}},"args":[],"flagsConfig":{"help":{"kind":"help","description":"Show CLI help.","char":"h","allowNo":false,"type":"boolean"},"sourcefolder":{"kind":"directory","char":"s","description":"directory containing sfdx project","default":".","input":[],"multiple":false,"type":"option"},"api":{"kind":"integer","char":"a","description":"specify the API version ","default":56,"input":[],"multiple":false,"type":"option"}}}}}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@terafina/tffa-sfdx-plugin",
3
3
  "description": "sfdx plugin from Terafina containing tools for scanning and extending digital applications for the financial services industry.",
4
- "version": "16.0.0-rc.5",
4
+ "version": "16.0.0-rc.6",
5
5
  "author": "Terafina Inc",
6
6
  "bugs": "https://github.com/terafinainc/tffa-sfdx-plugin/issues",
7
7
  "dependencies": {