@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.
- package/README.md +204 -81
- package/oclif.manifest.json +127 -14
- package/package.json +6 -4
- package/src/commands/cm/assets/publish.js +32 -18
- package/src/commands/cm/assets/unpublish.js +32 -18
- package/src/commands/cm/bulk-publish/cross-publish.js +33 -18
- package/src/commands/cm/entries/publish-modified.js +26 -13
- package/src/commands/cm/entries/publish-non-localized-fields.js +26 -9
- package/src/commands/cm/entries/publish-only-unpublished.js +7 -0
- package/src/commands/cm/entries/publish.js +25 -13
- package/src/commands/cm/entries/unpublish.js +29 -17
- package/src/commands/cm/entries/update-and-publish.js +26 -15
- package/src/commands/cm/stacks/publish-configure.js +14 -9
- package/src/commands/cm/stacks/publish.js +2 -3
- package/src/commands/cm/stacks/unpublish.js +26 -16
- package/src/producer/cross-publish.js +6 -1
- package/src/producer/unpublish.js +6 -1
- package/src/services/publish-only-unpublished.js +16 -14
- package/src/util/client.js +19 -4
|
@@ -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] --
|
|
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] --
|
|
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 (
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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) {
|
package/src/util/client.js
CHANGED
|
@@ -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
|
|
7
|
-
|
|
8
|
-
|
|
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;
|