in source/packages/services/installer/src/commands/modules/service/bulkCerts.ts [48:251]
public async prompts(answers: Answers): Promise<Answers> {
delete answers.bulkCerts?.redeploy;
let updatedAnswers: Answers = await inquirer.prompt(
[redeployIfAlreadyExistsPrompt(this.name, this.stackName)],
answers
);
if ((updatedAnswers.bulkCerts?.redeploy ?? true) === false) {
return updatedAnswers;
}
const suppliers = await this.getSuppliers(answers);
if (updatedAnswers.bulkCerts === undefined) {
updatedAnswers.bulkCerts = {} as BulkCerts;
}
updatedAnswers.bulkCerts.suppliers = suppliers;
updatedAnswers = await inquirer.prompt(
[
{
message: `Create or modify supplier CA alias ?`,
type: 'confirm',
name: 'bulkCerts.setSupplier',
default: answers.bulkCerts?.setSupplier ?? true,
askAnswered: true,
},
{
message: 'Select the suppliers you wish to modify',
type: 'list',
name: 'bulkCerts.caAlias',
choices: suppliers.list,
pageSize: 20,
loop: false,
askAnswered: true,
default: suppliers.list.length - 1,
validate(answer: string[]) {
if (answer?.length === 0) {
return false;
}
return true;
},
when(answers: Answers) {
return (
answers.bulkCerts?.setSupplier === true && suppliers.list?.length > 1
);
},
},
{
message: `No supplier was found, Create a new alias ?`,
type: 'confirm',
name: 'bulkCerts.setSupplier',
default: answers.bulkCerts?.setSupplier ?? true,
askAnswered: true,
when(answers: Answers) {
return (
answers.bulkCerts?.setSupplier === true && suppliers.list?.length === 1
);
},
},
{
message: `Enter new supplier alias:`,
type: 'input',
name: 'bulkCerts.caAlias',
default: answers.bulkCerts?.caAlias,
askAnswered: true,
validate(answer: string[]) {
if (answer?.length === 0) {
return false;
}
return true;
},
when(answers: Answers) {
return (
answers.bulkCerts?.setSupplier === true &&
(answers.bulkCerts.suppliers.list?.length === 1 ||
answers.bulkCerts.caAlias === 'Create New Supplier')
);
},
},
{
message: `Supplier CA value:`,
type: 'input',
name: 'bulkCerts.caValue',
default: answers.bulkCerts?.caValue,
askAnswered: true,
when(answers: Answers) {
return answers.bulkCerts?.setSupplier === true;
},
},
{
message:
'Would you like to provide any default values for the device certificates?',
type: 'confirm',
name: 'bulkCerts.setCertificateDefaults',
default: answers.bulkCerts?.setCertificateDefaults ?? true,
askAnswered: true,
},
{
message: `Default certificate common name (leave blank to skip):`,
type: 'input',
name: 'bulkCerts.commonName',
default: answers.bulkCerts?.commonName,
askAnswered: true,
when(answers: Answers) {
return answers.bulkCerts?.setCertificateDefaults === true;
},
},
{
message: `Default certificate organization (leave blank to skip):`,
type: 'input',
name: 'bulkCerts.organization',
default: answers.bulkCerts?.organization,
askAnswered: true,
when(answers: Answers) {
return answers.bulkCerts?.setCertificateDefaults === true;
},
},
{
message: `Default certificate organizational unit (leave blank to skip):`,
type: 'input',
name: 'bulkCerts.organizationalUnit',
default: answers.bulkCerts?.organizationalUnit,
askAnswered: true,
when(answers: Answers) {
return answers.bulkCerts?.setCertificateDefaults === true;
},
},
{
message: `Default certificate locality (leave blank to skip):`,
type: 'input',
name: 'bulkCerts.locality',
default: answers.bulkCerts?.locality,
askAnswered: true,
when(answers: Answers) {
return answers.bulkCerts?.setCertificateDefaults === true;
},
},
{
message: `Default certificate state name (leave blank to skip):`,
type: 'input',
name: 'bulkCerts.stateName',
default: answers.bulkCerts?.stateName,
askAnswered: true,
when(answers: Answers) {
return answers.bulkCerts?.setCertificateDefaults === true;
},
},
{
message: `Default certificate country (leave blank to skip):`,
type: 'input',
name: 'bulkCerts.country',
default: answers.bulkCerts?.country,
askAnswered: true,
when(answers: Answers) {
return answers.bulkCerts?.setCertificateDefaults === true;
},
},
{
message: `Default certificate email address (leave blank to skip):`,
type: 'input',
name: 'bulkCerts.emailAddress',
default: answers.bulkCerts?.emailAddress,
askAnswered: true,
when(answers: Answers) {
return answers.bulkCerts?.setCertificateDefaults === true;
},
},
{
message: `Default certificate distinguished name identifier (leave blank to skip):`,
type: 'input',
name: 'bulkCerts.distinguishedNameIdentifier',
default: answers.bulkCerts?.distinguishedNameIdentifier,
askAnswered: true,
when(answers: Answers) {
return answers.bulkCerts?.setCertificateDefaults === true;
},
},
...applicationConfigurationPrompt(this.name, answers, [
{
question: 'Default certificate expiry days (leave blank to skip):',
defaultConfiguration: 365,
propertyName: 'expiryDays',
},
{
question:
'The chunk size that the number of requested certificates are split into',
defaultConfiguration: 100,
propertyName: 'chunksize',
},
{
question:
'Default number of concurrent threads for issuing ACM certificates:',
defaultConfiguration: 10,
propertyName: 'acmConcurrencyLimit',
},
]),
...customDomainPrompt(this.name, answers),
],
updatedAnswers
);
return updatedAnswers;
}