@contentstack/cli-cm-bulk-publish 1.3.8 → 1.3.10

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.
@@ -40,25 +40,34 @@ class NonlocalizedFieldChangesCommand extends Command {
40
40
  let stack;
41
41
  if (!updatedFlags.retryFailed) {
42
42
  updatedFlags.bulkPublish = updatedFlags.bulkPublish === 'false' ? false : true;
43
- // Validate management token alias.
44
- try {
45
- this.getToken(updatedFlags.alias);
46
- } catch (error) {
47
- this.error(
48
- `The configured management token alias ${updatedFlags.alias} has not been added yet. Add it using 'csdx auth:tokens:add -a ${updatedFlags.alias}'`,
49
- { exit: 2 },
50
- );
51
- }
52
43
  config = {
53
44
  alias: updatedFlags.alias,
54
45
  host: this.cmaHost,
55
46
  cda: this.cdaHost,
56
47
  branch: nonlocalizedFieldChangesFlags.branch,
57
48
  };
49
+ if (updatedFlags.alias) {
50
+ try {
51
+ this.getToken(updatedFlags.alias);
52
+ config.alias = updatedFlags.alias;
53
+ } catch (error) {
54
+ this.error(
55
+ `The configured management token alias ${updatedFlags.alias} has not been added yet. Add it using 'csdx auth:tokens:add -a ${updatedFlags.alias}'`,
56
+ { exit: 2 },
57
+ );
58
+ }
59
+ } else if (updatedFlags['stack-api-key']) {
60
+ config.stackApiKey = updatedFlags['stack-api-key'];
61
+ } else {
62
+ this.error('Please use `--alias` or `--stack-api-key` to proceed.', { exit: 2 });
63
+ }
58
64
  stack = await getStack(config);
59
65
  }
60
66
  if (await this.confirmFlags(updatedFlags)) {
61
67
  try {
68
+ if (process.env.NODE_ENV === 'test') {
69
+ return;
70
+ }
62
71
  if (!updatedFlags.retryFailed) {
63
72
  await start(updatedFlags, stack, config);
64
73
  } else {
@@ -122,6 +131,11 @@ NonlocalizedFieldChangesCommand.flags = {
122
131
  char: 'a',
123
132
  description: 'Alias(name) for the management token',
124
133
  }),
134
+ 'stack-api-key': flags.string({
135
+ char: 'k',
136
+ description: 'Stack api key to be used',
137
+ required: false,
138
+ }),
125
139
  'retry-failed': flags.string({
126
140
  description: 'Retry publishing failed entries from the logfile',
127
141
  }),
@@ -204,6 +218,9 @@ NonlocalizedFieldChangesCommand.examples = [
204
218
  '',
205
219
  'Using --branch flag',
206
220
  'csdx cm:entries:publish-non-localized-fields --content-types [CONTENT TYPE 1] [CONTENT TYPE 2] --environments [ENVIRONMENT 1] [ENVIRONMENT 2] --alias [MANAGEMENT TOKEN ALIAS] --source-env [SOURCE ENV] --branch [BRANCH NAME]',
221
+ '',
222
+ 'Using --stack-api-key flag',
223
+ 'csdx cm:entries:publish-non-localized-fields --content-types [CONTENT TYPE 1] [CONTENT TYPE 2] --environments [ENVIRONMENT 1] [ENVIRONMENT 2] --stack-api-key [STACK API KEY] --source-env [SOURCE ENV]',
207
224
  ];
208
225
 
209
226
  NonlocalizedFieldChangesCommand.aliases = ['cm:bulk-publish:nonlocalized-field-changes'];
@@ -22,6 +22,10 @@ But, if retry-failed flag is set, then only a logfile is required
22
22
 
23
23
  PublishOnlyUnpublished.flags = {
24
24
  alias: flags.string({ char: 'a', description: 'Alias(name) for the management token' }),
25
+ 'stack-api-key': flags.string({
26
+ char: 'k',
27
+ description: 'Stack api key to be used',
28
+ }),
25
29
  retryFailed: flags.string({
26
30
  char: 'r',
27
31
  hidden: true,
@@ -102,6 +106,9 @@ PublishOnlyUnpublished.examples = [
102
106
  '',
103
107
  'Using --branch',
104
108
  'csdx cm:entries:publish-only-unpublished -b --content-types [CONTENT TYPES] -e [ENVIRONMENTS] --locales LOCALE -a [MANAGEMENT TOKEN ALIAS] --branch [BRANCH NAME] -source-env [SOURCE ENV]',
109
+ '',
110
+ 'Using --stack-api-key',
111
+ 'csdx cm:entries:publish-only-unpublished -b --content-types [CONTENT TYPES] -e [ENVIRONMENTS] --locales LOCALE -a [MANAGEMENT TOKEN ALIAS] --stack-api-key [STACK API KEY] -source-env [SOURCE ENV]',
105
112
  ];
106
113
 
107
114
  PublishOnlyUnpublished.aliases = ['cm:bulk-publish:unpublished-entries'];
@@ -37,29 +37,34 @@ class PublishEntriesCommand extends Command {
37
37
  if (this.validate(updatedFlags)) {
38
38
  let stack;
39
39
  if (!updatedFlags.retryFailed) {
40
- if (!updatedFlags.alias) {
41
- updatedFlags.alias = await cliux.prompt('Provide the alias of the management token to use');
42
- }
43
- updatedFlags.bulkPublish = updatedFlags.bulkPublish !== 'false';
44
- // Validate management token alias.
45
- try {
46
- this.getToken(updatedFlags.alias);
47
- } catch (error) {
48
- this.error(
49
- `The configured management token alias ${updatedFlags.alias} has not been added yet. Add it using 'csdx auth:tokens:add -a ${updatedFlags.alias}'`,
50
- { exit: 2 },
51
- );
52
- }
53
40
  config = {
54
41
  alias: updatedFlags.alias,
55
42
  host: this.cmaHost,
56
43
  cda: this.cdaHost,
57
44
  branch: entriesFlags.branch,
58
45
  };
46
+ if (updatedFlags.alias) {
47
+ try {
48
+ this.getToken(updatedFlags.alias);
49
+ } catch (error) {
50
+ this.error(
51
+ `The configured management token alias ${updatedFlags.alias} has not been added yet. Add it using 'csdx auth:tokens:add -a ${updatedFlags.alias}'`,
52
+ { exit: 2 },
53
+ );
54
+ }
55
+ } else if (updatedFlags['stack-api-key']) {
56
+ config.stackApiKey = updatedFlags['stack-api-key'];
57
+ } else {
58
+ this.error('Please use `--alias` or `--stack-api-key` to proceed.', { exit: 2 });
59
+ }
60
+ updatedFlags.bulkPublish = updatedFlags.bulkPublish !== 'false';
59
61
  stack = await getStack(config);
60
62
  }
61
63
  if (await this.confirmFlags(updatedFlags)) {
62
64
  try {
65
+ if (process.env.NODE_ENV === 'test') {
66
+ return;
67
+ }
63
68
  const publishFunction = async (func) => {
64
69
  // eslint-disable-next-line no-negated-condition
65
70
  if (!updatedFlags.retryFailed) {
@@ -164,6 +169,10 @@ But, if retry-failed flag is set, then only a logfile is required
164
169
 
165
170
  PublishEntriesCommand.flags = {
166
171
  alias: flags.string({ char: 'a', description: 'Alias(name) for the management token' }),
172
+ 'stack-api-key': flags.string({
173
+ char: 'k',
174
+ description: 'Stack api key to be used',
175
+ }),
167
176
  retryFailed: flags.string({
168
177
  char: 'r',
169
178
  description:
@@ -255,6 +264,9 @@ PublishEntriesCommand.examples = [
255
264
  '',
256
265
  'Using --source-env',
257
266
  'csdx cm:entries:publish --content-types [CONTENT TYPE 1] [CONTENT TYPE 2] -e [ENVIRONMENT 1] [ENVIRONMENT 2] --locales [LOCALE 1] [LOCALE 2] -a [MANAGEMENT TOKEN ALIAS] --source-env [SOURCE ENVIRONMENT] --delivery-token [DELIVERY TOKEN]',
267
+ '',
268
+ 'Using --stack-api-key',
269
+ 'csdx cm:entries:publish -e [ENVIRONMENT 1] [ENVIRONMENT 2] --locales [LOCALE 1] [LOCALE 2] --stack-api-key [STACK API KEY] --source-env [SOURCE ENVIRONMENT] --delivery-token [DELIVERY TOKEN]',
258
270
  ];
259
271
 
260
272
  PublishEntriesCommand.aliases = ['cm:bulk-publish:entries'];
@@ -35,28 +35,31 @@ class UnpublishCommand extends Command {
35
35
  if (this.validate(updatedFlags)) {
36
36
  let stack;
37
37
  if (!updatedFlags.retryFailed) {
38
- if (!updatedFlags.alias) {
39
- updatedFlags.alias = await cliux.prompt('Please enter the management token alias to be used');
40
- }
41
- if (!updatedFlags.deliveryToken) {
42
- updatedFlags.deliveryToken = await cliux.prompt('Enter delivery token of your source environment');
43
- }
44
- updatedFlags.bulkUnpublish = updatedFlags.bulkUnpublish === 'false' ? false : true;
45
- // Validate management token alias.
46
- try {
47
- this.getToken(updatedFlags.alias);
48
- } catch (error) {
49
- this.error(
50
- `The configured management token alias ${updatedFlags.alias} has not been added yet. Add it using 'csdx auth:tokens:add --alias ${updatedFlags.alias}'`,
51
- { exit: 2 },
52
- );
53
- }
54
38
  config = {
55
39
  alias: updatedFlags.alias,
56
40
  host: this.cmaHost,
57
41
  cda: this.cdaHost,
58
42
  branch: unpublishFlags.branch,
59
43
  };
44
+ if (updatedFlags.alias) {
45
+ try {
46
+ this.getToken(updatedFlags.alias);
47
+ } catch (error) {
48
+ this.error(
49
+ `The configured management token alias ${updatedFlags.alias} has not been added yet. Add it using 'csdx auth:tokens:add --alias ${updatedFlags.alias}'`,
50
+ { exit: 2 },
51
+ );
52
+ }
53
+ } else if (updatedFlags['stack-api-key']) {
54
+ config.stackApiKey = updatedFlags['stack-api-key'];
55
+ } else {
56
+ this.error('Please use `--alias` or `--stack-api-key` to proceed.', { exit: 2 });
57
+ }
58
+ if (!updatedFlags.deliveryToken) {
59
+ updatedFlags.deliveryToken = await cliux.prompt('Enter delivery token of your source environment');
60
+ }
61
+ updatedFlags.bulkUnpublish = updatedFlags.bulkUnpublish === 'false' ? false : true;
62
+
60
63
  stack = await getStack(config);
61
64
  }
62
65
  if (!updatedFlags.deliveryToken && updatedFlags.deliveryToken.length === 0) {
@@ -65,6 +68,9 @@ class UnpublishCommand extends Command {
65
68
 
66
69
  if (await this.confirmFlags(updatedFlags)) {
67
70
  try {
71
+ if (process.env.NODE_ENV === 'test') {
72
+ return;
73
+ }
68
74
  if (!updatedFlags.retryFailed) {
69
75
  await start(updatedFlags, stack, config);
70
76
  } else {
@@ -131,6 +137,10 @@ UnpublishCommand.flags = {
131
137
  char: 'a',
132
138
  description: 'Alias(name) for the management token',
133
139
  }),
140
+ 'stack-api-key': flags.string({
141
+ char: 'k',
142
+ description: 'Stack api key to be used',
143
+ }),
134
144
  environment: flags.string({
135
145
  char: 'e',
136
146
  description: 'Source Environment',
@@ -181,9 +191,11 @@ UnpublishCommand.examples = [
181
191
  'Using --retry-failed flag',
182
192
  'csdx cm:stacks:unpublish --retry-failed [LOG FILE NAME]',
183
193
  '',
184
- '',
185
194
  'Using --branch flag',
186
195
  'csdx cm:stacks:unpublish --bulk-unpublish --content-type [CONTENT TYPE] --environment [SOURCE ENV] --locale [LOCALE] --alias [MANAGEMENT TOKEN ALIAS] --delivery-token [DELIVERY TOKEN] --branch [BRANCH NAME]',
196
+ '',
197
+ 'Using --stack-api-key flag',
198
+ 'csdx cm:stacks:unpublish --bulk-unpublish --content-type [CONTENT TYPE] --environment [SOURCE ENV] --locale [LOCALE] --stack-api-key [STACK API KEY] --delivery-token [DELIVERY TOKEN]',
187
199
  ];
188
200
 
189
201
  module.exports = UnpublishCommand;
@@ -30,25 +30,29 @@ class UpdateAndPublishCommand extends Command {
30
30
  if (this.validate(updatedFlags)) {
31
31
  let stack;
32
32
  if (!updatedFlags.retryFailed) {
33
- if (!updatedFlags.alias) {
34
- updatedFlags.alias = await cliux.prompt('Please enter the management token alias to be used');
35
- }
36
- updatedFlags.bulkPublish = updatedFlags.bulkPublish === 'false' ? false : true;
37
- // Validate management token alias.
38
- try {
39
- this.getToken(updatedFlags.alias);
40
- } catch (error) {
41
- this.error(
42
- `The configured management token alias ${updatedFlags.alias} has not been added yet. Add it using 'csdx auth:tokens:add -a ${updatedFlags.alias}'`,
43
- { exit: 2 },
44
- );
45
- }
46
33
  config = {
47
34
  alias: updatedFlags.alias,
48
35
  host: this.cmaHost,
49
36
  cda: this.cdaHost,
50
37
  branch: addFieldsFlags.branch,
51
38
  };
39
+ if (updatedFlags.alias) {
40
+ try {
41
+ this.getToken(updatedFlags.alias);
42
+ config.alias = updatedFlags.alias;
43
+ } catch (error) {
44
+ this.error(
45
+ `The configured management token alias ${updatedFlags.alias} has not been added yet. Add it using 'csdx auth:tokens:add -a ${updatedFlags.alias}'`,
46
+ { exit: 2 },
47
+ );
48
+ }
49
+ } else if (updatedFlags['stack-api-key']) {
50
+ config.stackApiKey = updatedFlags['stack-api-key'];
51
+ } else {
52
+ this.error('Please use `--alias` or `--stack-api-key` to proceed.', { exit: 2 });
53
+ }
54
+ updatedFlags.bulkPublish = updatedFlags.bulkPublish === 'false' ? false : true;
55
+
52
56
  stack = await getStack(config);
53
57
  }
54
58
  if (await this.confirmFlags(updatedFlags)) {
@@ -114,6 +118,10 @@ But, if retry-failed flag is set, then only a logfile is required
114
118
 
115
119
  UpdateAndPublishCommand.flags = {
116
120
  alias: flags.string({ char: 'a', description: 'Alias(name) for the management token' }),
121
+ 'stack-api-key': flags.string({
122
+ char: 'k',
123
+ description: 'Stack api key to be used',
124
+ }),
117
125
  'retry-failed': flags.string({
118
126
  description: 'Retry publishing failed entries from the logfile (optional, overrides all other flags)',
119
127
  }),
@@ -177,7 +185,7 @@ UpdateAndPublishCommand.flags = {
177
185
 
178
186
  UpdateAndPublishCommand.examples = [
179
187
  'General Usage',
180
- 'csdx cm:entries:update-and-publish --content-types [CONTENT TYPE 1] [CONTENT TYPE 2] -e [ENVIRONMENT 1] [ENVIRONMENT 2] --locale [LOCALE 1] [LOCALE 2] -a [MANAGEMENT TOKEN ALIAS]',
188
+ 'csdx cm:entries:update-and-publish --content-types [CONTENT TYPE 1] [CONTENT TYPE 2] -e [ENVIRONMENT 1] [ENVIRONMENT 2] --locales [LOCALE 1] [LOCALE 2] -a [MANAGEMENT TOKEN ALIAS]',
181
189
  '',
182
190
  'Using --config or -c flag',
183
191
  'Generate a config file at the current working directory using `csdx cm:stacks:publish-configure -a [ALIAS]`',
@@ -188,7 +196,10 @@ UpdateAndPublishCommand.examples = [
188
196
  'csdx cm:entries:update-and-publish --retry-failed [LOG FILE NAME]',
189
197
  '',
190
198
  'Using --branch',
191
- 'csdx cm:entries:update-and-publish --content-types [CONTENT TYPE 1] [CONTENT TYPE 2] -e [ENVIRONMENT 1] [ENVIRONMENT 2] --locale [LOCALE 1] [LOCALE 2] -a [MANAGEMENT TOKEN ALIAS] --branch [BRANCH NAME]',
199
+ 'csdx cm:entries:update-and-publish --content-types [CONTENT TYPE 1] [CONTENT TYPE 2] -e [ENVIRONMENT 1] [ENVIRONMENT 2] --locales [LOCALE 1] [LOCALE 2] -a [MANAGEMENT TOKEN ALIAS] --branch [BRANCH NAME]',
200
+ '',
201
+ 'Using --stack-api-key',
202
+ 'csdx cm:entries:update-and-publish --content-types [CONTENT TYPE 1] [CONTENT TYPE 2] -e [ENVIRONMENT 1] [ENVIRONMENT 2] --locales [LOCALE 1] [LOCALE 2] --stack-api-key [STACK API KEY]',
192
203
  ];
193
204
 
194
205
  UpdateAndPublishCommand.aliases = ['cm:bulk-publish:add-fields'];
@@ -9,22 +9,25 @@ class ConfigureCommand extends Command {
9
9
  async run() {
10
10
  const { flags: configureFlags } = await this.parse(ConfigureCommand);
11
11
 
12
- if (!configureFlags.alias) {
13
- configureFlags.alias = await cliux.prompt('Please enter the management token alias to be used');
14
- }
15
-
16
- try {
17
- this.getToken(configureFlags.alias);
18
- } catch (error) {
19
- this.error(`The configured management token alias ${configureFlags.alias} has not been added yet. Add it using 'csdx auth:tokens:add -a ${configureFlags.alias}'`, { exit: 2 })
12
+ if (configureFlags.alias) {
13
+ try {
14
+ this.getToken(configureFlags.alias);
15
+ } catch (error) {
16
+ this.error(`The configured management token alias ${configureFlags.alias} has not been added yet. Add it using 'csdx auth:tokens:add -a ${configureFlags.alias}'`, { exit: 2 })
17
+ }
18
+ } else if (configureFlags['stack-api-key']) {
19
+ configureFlags.stackApiKey = configureFlags['stack-api-key'];
20
+ } else {
21
+ this.error('Please use `--alias` or `--stack-api-key` to proceed.', { exit: 2 });
20
22
  }
21
23
 
22
24
  this.setConfig(configureFlags);
23
25
  this.log('The configuration has been saved successfully.');
24
26
  }
25
27
 
26
- setConfig({ alias }) {
28
+ setConfig({ alias, stackApiKey }) {
27
29
  if (alias) config.alias = alias;
30
+ else if (stackApiKey) config.stackApiKey = stackApiKey;
28
31
  fs.writeFileSync(path.join(process.cwd(), 'config.js'), `module.exports = ${JSON.stringify(config, null, 2)}`);
29
32
  }
30
33
  }
@@ -33,12 +36,14 @@ ConfigureCommand.description = `The configure command is used to generate a conf
33
36
 
34
37
  ConfigureCommand.flags = {
35
38
  alias: flags.string({ char: 'a', description: 'Alias(name) for the management token' }),
39
+ 'stack-api-key': flags.string({ char: 'k', description: 'Stack api key to be used' }),
36
40
  };
37
41
 
38
42
  ConfigureCommand.examples = [
39
43
  'csdx cm:stacks:publish-configure',
40
44
  'csdx cm:stacks:publish-configure -a <management_token_alias>',
41
45
  'csdx cm:stacks:publish-configure --alias <management_token_alias>',
46
+ 'csdx cm:stacks:publish-configure --stack-api-key <stack_api_key>',
42
47
  ];
43
48
 
44
49
  ConfigureCommand.aliases = ['cm:bulk-publish:configure'];
@@ -9,9 +9,8 @@ class StackPublishCommand extends Command {
9
9
  async run() {
10
10
  try {
11
11
  this.optionController = new OptionController();
12
-
13
- this.entriesPublishReceiver = new EntriesPublishReceiverCommand(this.argv);
14
- this.assetsPublishReceiver = new AssetsPublishReceiverCommand(this.argv);
12
+ this.entriesPublishReceiver = new EntriesPublishReceiverCommand(this.argv, this.config);
13
+ this.assetsPublishReceiver = new AssetsPublishReceiverCommand(this.argv, this.config);
15
14
  this.entriesAndAssetsPublishReceiver = new PublishEntriesAndAssetsCommand();
16
15
 
17
16
  this.publishEntriesCommand = new PublishEntriesCommand(this.entriesPublishReceiver);
@@ -37,28 +37,31 @@ class UnpublishCommand extends Command {
37
37
  if (this.validate(updatedFlags)) {
38
38
  let stack;
39
39
  if (!updatedFlags.retryFailed) {
40
- if (!updatedFlags.alias) {
41
- updatedFlags.alias = await cliux.prompt('Please enter the management token alias to be used');
42
- }
43
- if (!updatedFlags.deliveryToken) {
44
- updatedFlags.deliveryToken = await cliux.prompt('Enter delivery token of your source environment');
45
- }
46
- updatedFlags.bulkUnpublish = updatedFlags.bulkUnpublish === 'false' ? false : true;
47
- // Validate management token alias.
48
- try {
49
- this.getToken(updatedFlags.alias);
50
- } catch (error) {
51
- this.error(
52
- `The configured management token alias ${updatedFlags.alias} has not been added yet. Add it using 'csdx auth:tokens:add --alias ${updatedFlags.alias}'`,
53
- { exit: 2 },
54
- );
55
- }
56
40
  config = {
57
41
  alias: updatedFlags.alias,
58
42
  host: this.cmaHost,
59
43
  cda: this.cdaHost,
60
44
  branch: unpublishFlags.branch,
61
45
  };
46
+ if (updatedFlags.alias) {
47
+ try {
48
+ this.getToken(updatedFlags.alias);
49
+ config.alias = updatedFlags.alias;
50
+ } catch (error) {
51
+ this.error(
52
+ `The configured management token alias ${updatedFlags.alias} has not been added yet. Add it using 'csdx auth:tokens:add -a ${updatedFlags.alias}'`,
53
+ { exit: 2 },
54
+ );
55
+ }
56
+ } else if (updatedFlags['stack-api-key']) {
57
+ config.stackApiKey = updatedFlags['stack-api-key'];
58
+ } else {
59
+ this.error('Please use `--alias` or `--stack-api-key` to proceed.', { exit: 2 });
60
+ }
61
+ if (!updatedFlags.deliveryToken) {
62
+ updatedFlags.deliveryToken = await cliux.prompt('Enter delivery token of your source environment');
63
+ }
64
+ updatedFlags.bulkUnpublish = updatedFlags.bulkUnpublish === 'false' ? false : true;
62
65
  stack = await getStack(config);
63
66
  }
64
67
  if (!updatedFlags.deliveryToken && updatedFlags.deliveryToken.length === 0) {
@@ -161,6 +164,10 @@ UnpublishCommand.flags = {
161
164
  char: 'a',
162
165
  description: 'Alias(name) for the management token',
163
166
  }),
167
+ 'stack-api-key': flags.string({
168
+ char: 'k',
169
+ description: 'Stack api key to be used',
170
+ }),
164
171
  environment: flags.string({
165
172
  char: 'e',
166
173
  description: 'Source Environment',
@@ -277,6 +284,9 @@ UnpublishCommand.examples = [
277
284
  '',
278
285
  'Using --branch flag',
279
286
  'csdx cm:stacks:unpublish --bulk-unpublish --content-type [CONTENT TYPE] --environment [SOURCE ENV] --locale [LOCALE] --alias [MANAGEMENT TOKEN ALIAS] --delivery-token [DELIVERY TOKEN] --branch [BRANCH NAME]',
287
+ '',
288
+ 'Using --stack-api-key flag',
289
+ 'csdx cm:stacks:unpublish --bulk-unpublish --content-type [CONTENT TYPE] --environment [SOURCE ENV] --locale [LOCALE] --stack-api-key [STACK API KEY] --delivery-token [DELIVERY TOKEN]',
280
290
  ];
281
291
 
282
292
  UnpublishCommand.aliases = ['cm:bulk-publish:unpublish'];
@@ -143,7 +143,12 @@ async function getSyncEntries(
143
143
  ) {
144
144
  return new Promise(async (resolve, reject) => {
145
145
  try {
146
- const tokenDetails = command.getToken(config.alias);
146
+ let tokenDetails;
147
+ if (config.stackApiKey) {
148
+ tokenDetails = { apiKey: config.stackApiKey };
149
+ } else {
150
+ tokenDetails = command.getToken(config.alias);
151
+ }
147
152
  const queryParamsObj = {};
148
153
  const pairs = queryParams.split('&').filter((e) => e !== null && e !== '' && e !== undefined);
149
154
  for (let i in pairs) {
@@ -158,7 +158,12 @@ async function getSyncEntries(
158
158
  ) {
159
159
  return new Promise(async (resolve, reject) => {
160
160
  try {
161
- const tokenDetails = command.getToken(config.alias);
161
+ let tokenDetails;
162
+ if (config.stackApiKey) {
163
+ tokenDetails = { apiKey: config.stackApiKey };
164
+ } else {
165
+ tokenDetails = command.getToken(config.alias);
166
+ }
162
167
  const queryParamsObj = {};
163
168
  const pairs = queryParams.split('&');
164
169
  for (let i in pairs) {
@@ -24,27 +24,29 @@ async function publishOnlyUnpublishedService(UnpublishedEntriesCommand) {
24
24
  if (validate.apply(this, [updatedFlags])) {
25
25
  let stack;
26
26
  if (!updatedFlags.retryFailed) {
27
- if (!updatedFlags.alias) {
28
- updatedFlags.alias = await cliux.prompt('Please enter the management token alias to be used');
29
- }
30
- updatedFlags.bulkPublish = updatedFlags.bulkPublish === 'false' ? false : true;
31
- // Validate management token alias.
32
- try {
33
- this.getToken(updatedFlags.alias);
34
- } catch (error) {
35
- this.error(
36
- `The configured management token alias ${updatedFlags.alias} has not been added yet. Add it using 'csdx auth:tokens:add -a ${updatedFlags.alias}'`,
37
- { exit: 2 },
38
- );
39
- }
40
27
  config = {
41
28
  alias: updatedFlags.alias,
42
29
  host: this.cmaHost,
43
30
  cda: this.cdaHost,
44
31
  branch: unpublishedEntriesFlags.branch,
45
32
  };
46
- stack = await getStack(config);
33
+ if (updatedFlags.alias) {
34
+ try {
35
+ this.getToken(updatedFlags.alias);
36
+ } catch (error) {
37
+ this.error(
38
+ `The configured management token alias ${updatedFlags.alias} has not been added yet. Add it using 'csdx auth:tokens:add -a ${updatedFlags.alias}'`,
39
+ { exit: 2 },
40
+ );
41
+ }
42
+ } else if (updatedFlags['stack-api-key']) {
43
+ config.stackApiKey = updatedFlags['stack-api-key'];
44
+ } else {
45
+ this.error('Please use `--alias` or `--stack-api-key` to proceed.', { exit: 2 });
46
+ }
47
47
  }
48
+ updatedFlags.bulkPublish = updatedFlags.bulkPublish === 'false' ? false : true;
49
+ stack = await getStack(config);
48
50
  if (await confirmFlags(updatedFlags)) {
49
51
  try {
50
52
  if (!updatedFlags.retryFailed) {
@@ -1,11 +1,26 @@
1
- const { managementSDKClient } = require('@contentstack/cli-utilities');
1
+ const { managementSDKClient, isAuthenticated } = require('@contentstack/cli-utilities');
2
2
  const { Command } = require('@contentstack/cli-command');
3
3
  const command = new Command();
4
4
 
5
5
  async function getStack(data) {
6
- const tokenDetails = command.getToken(data.alias);
7
- const managementClient = await managementSDKClient({ host: data.host, branchName: data.branch });
8
- const stack = managementClient.stack({ api_key: tokenDetails.apiKey, management_token: tokenDetails.token });
6
+ const options = {
7
+ host: data.host,
8
+ branchName: data.branch,
9
+ };
10
+ const stackOptions = {};
11
+ if (data.alias) {
12
+ const tokenDetails = command.getToken(data.alias);
13
+ options.management_token = tokenDetails.token;
14
+ stackOptions.management_token = tokenDetails.token;
15
+ stackOptions.api_key = tokenDetails.apiKey;
16
+ } else if (data.stackApiKey) {
17
+ if (!isAuthenticated()) {
18
+ throw new Error('Please login to proceed further. Or use `--alias` instead of `--stack-api-key` to proceed without logging in.')
19
+ }
20
+ stackOptions.api_key = data.stackApiKey;
21
+ }
22
+ const managementClient = await managementSDKClient(options);
23
+ const stack = managementClient.stack(stackOptions);
9
24
  stack.alias = data.alias;
10
25
  stack.host = data.host;
11
26
  return stack;