diff --git a/packages/nodes-base/nodes/Venafi/ProtectCloud/CertificateRequestDescription.ts b/packages/nodes-base/nodes/Venafi/ProtectCloud/CertificateRequestDescription.ts index f2d3e9d73e..ee7368bda1 100644 --- a/packages/nodes-base/nodes/Venafi/ProtectCloud/CertificateRequestDescription.ts +++ b/packages/nodes-base/nodes/Venafi/ProtectCloud/CertificateRequestDescription.ts @@ -64,6 +64,9 @@ export const certificateRequestFields: INodeProperties[] = [ 'Choose from the list, or specify an ID using an expression', typeOptions: { loadOptionsMethod: 'getCertificateIssuingTemplates', + loadOptionsDependsOn: [ + 'applicationId', + ], }, displayOptions: { show: { @@ -134,13 +137,25 @@ export const certificateRequestFields: INodeProperties[] = [ }, options: [ { - displayName: 'Country', - name: 'country', - type: 'string', - default: '', - description: 'A 2 letter country code', + displayName: 'Key Type', + name: 'keyType', + type: 'options', + options: [ + { + name: 'EC', + value: 'EC', + description: 'Elliptic Curve (EC)', + }, + { + name: 'RSA', + value: 'RSA', + description: 'Rivest, Shamir, Adleman key (RSA)', + }, + ], + default: 'RSA', + description: 'The encryption algorithm for the public key', }, - { + { displayName: 'Key Curve', name: 'keyCurve', type: 'options', @@ -180,40 +195,14 @@ export const certificateRequestFields: INodeProperties[] = [ description: 'The number of bits to allow for key generation', }, { - displayName: 'Key Type', - name: 'keyType', - type: 'options', - options: [ - { - name: 'EC', - value: 'EC', - description: 'Elliptic Curve (EC)', - }, - { - name: 'RSA', - value: 'RSA', - description: 'Rivest, Shamir, Adleman key (RSA)', - }, - ], - default: 'RSA', - description: 'The encryption algorithm for the public key', - }, - { - displayName: 'Locality', - name: 'locality', - type: 'string', - default: '', - description: 'The name of a city or town', - }, - { - displayName: 'Organization', + displayName: '(O) Organization', name: 'organization', type: 'string', default: '', description: 'The name of a company or organization', }, { - displayName: 'Organizational Units', + displayName: '(OU) Organizational Unit(s)', name: 'organizationalUnits', type: 'string', typeOptions: { @@ -223,12 +212,27 @@ export const certificateRequestFields: INodeProperties[] = [ description: 'The name of a department or section', }, { - displayName: 'State', + displayName: '(L) City/Locality', + name: 'locality', + type: 'string', + default: '', + description: 'The name of a city or town', + }, + + { + displayName: '(ST) State', name: 'state', type: 'string', default: '', description: 'The name of a state or province', }, + { + displayName: '(C) Country', + name: 'country', + type: 'string', + default: '', + description: 'A 2 letter country code', + }, { displayName: 'Subject Alt Names', name: 'SubjectAltNamesUi', @@ -316,22 +320,11 @@ export const certificateRequestFields: INodeProperties[] = [ { displayName: 'Validity Period', name: 'validityPeriod', - type: 'options', - options: [ - { - name: '1 Year', - value: 'P1Y', - }, - { - name: '10 Days', - value: 'P10D', - }, - { - name: '12 Hours', - value: 'PT12H', - }, - ], + type: 'string', + placeholder: 'P1Y', default: 'P1Y', + description: 'Specify how long the issued certificate should be valid for. Use ISO8601 format.', + hint: 'e.g. 1 year -> P1Y', }, ], }, diff --git a/packages/nodes-base/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.ts b/packages/nodes-base/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.ts index fb64a153c9..8ac098710f 100644 --- a/packages/nodes-base/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.ts +++ b/packages/nodes-base/nodes/Venafi/ProtectCloud/VenafiTlsProtectCloud.node.ts @@ -80,6 +80,7 @@ export class VenafiTlsProtectCloud implements INodeType { 'GET', '/outagedetection/v1/applications', ); + for (const application of applications) { returnData.push({ name: application.name, @@ -109,15 +110,18 @@ export class VenafiTlsProtectCloud implements INodeType { this: ILoadOptionsFunctions, ): Promise { const returnData: INodePropertyOptions[] = []; - const { certificateIssuingTemplates } = await venafiApiRequest.call( + const currentApplication: string = this.getCurrentNodeParameter('applicationId') as string; + + const { certificateIssuingTemplateAliasIdMap } = await venafiApiRequest.call( this, 'GET', - '/v1/certificateissuingtemplates', - ); - for (const issueTemplate of certificateIssuingTemplates) { + `/outagedetection/v1/applications/${currentApplication}`, + ) as { certificateIssuingTemplateAliasIdMap: { [key: string]: string } }; + + for (const [templateName, templateId] of Object.entries(certificateIssuingTemplateAliasIdMap)) { returnData.push({ - name: issueTemplate.name, - value: issueTemplate.id, + name: templateName, + value: templateId, }); } return returnData; @@ -472,7 +476,6 @@ export class VenafiTlsProtectCloud implements INodeType { itemData: { item: i }, }), ); - } catch (error) { if (this.continueOnFail()) { returnData.push({ json: { error: error.message } });