diff --git a/research-spoke/main.bicep b/research-spoke/main.bicep index 03096e9..59decf9 100644 --- a/research-spoke/main.bicep +++ b/research-spoke/main.bicep @@ -116,6 +116,8 @@ param isAirlockReviewCentralized bool = false param airlockApproverEmail string @description('The email address where process notifications (designed to be the principal investigator) will be sent.') param airlockProcessNotificationEmail string +@description('The email address that will appear in the "From" field of emails sent by the airlock Logic App.') +param airlockFromEmail string @description('The allowed file extensions for ingest.') param allowedIngestFileExtensions array = [] @@ -734,6 +736,7 @@ module airlockModule './spoke-modules/airlock/main.bicep' = { allowedIngestFileExtensions: allowedIngestFileExtensions processNotificationEmail: airlockProcessNotificationEmail + fromEmail: airlockFromEmail } } diff --git a/research-spoke/spoke-modules/airlock/content/logicAppWorkflow.json b/research-spoke/spoke-modules/airlock/content/logicAppWorkflow.json index 16bfb94..a256a1f 100644 --- a/research-spoke/spoke-modules/airlock/content/logicAppWorkflow.json +++ b/research-spoke/spoke-modules/airlock/content/logicAppWorkflow.json @@ -102,6 +102,7 @@ "To": "@parameters('processNotificationEmail')", "Subject": "Airlock Export Request Approved", "Body": "
@{parameters('approverEmail')} approved the export request of file \"@{parameters('airlockFolderPath')}/@{triggerBody()?['Name']}\".
The file is being moved to the project's external storage account in the \"@{parameters('exportApprovedContainerName')}\" blob container. This usually takes 1-2 minutes.
", + "From": "@parameters('fromEmail')", "Importance": "Normal" }, "path": "/v2/Mail" @@ -154,6 +155,7 @@ "To": "@parameters('processNotificationEmail')", "Subject": "Airlock Export Request Rejected by Approver", "Body": "@{parameters('approverEmail')} rejected the export request of file \"@{parameters('airlockFolderPath')}/@{triggerBody()?['Name']}\".
The file is being moved back to the project's file share in the \"export-rejected\" folder. This usually takes 1-2 minutes.
", + "From": "@parameters('fromEmail')", "Importance": "Normal" }, "path": "/v2/Mail" @@ -183,6 +185,7 @@ "Message": { "To": "@parameters('approverEmail')", "Body": "A new request for export has been received.\n\nFile: @{parameters('airlockFolderPath')}/@{triggerBody()?['Name']}", + "From": "@parameters('fromEmail')", "Importance": "Normal", "HideHTMLMessage": false, "ShowHTMLConfirmationDialog": false, @@ -209,6 +212,7 @@ "To": "@{parameters('approverEmail')},@{parameters('processNotificationEmail')}", "Subject": "Airlock Pipeline Failed", "Body": "Pipeline run failed moving file \"@{parameters('airlockFolderPath')}/@{triggerBody()?['Name']}\" from the spoke's export-requested container to the airlock file share.
For troubleshooting purposes:
Data Factory pipeline run ID: @{body('Move_file_from_private_ADLS_to_Airlock_File_Share')?['runId']}
Data Factory pipeline status: @{variables('pipelineStatus')}
", + "From": "@parameters('fromEmail')", "Importance": "Normal" }, "path": "/v2/Mail" @@ -356,6 +360,10 @@ "exportRejectedFolderName": { "type": "String", "defaultValue": "export-rejected" + }, + "fromEmail": { + "type": "String", + "defaultValue": "" } }, "triggers": { diff --git a/research-spoke/spoke-modules/airlock/logicApp.bicep b/research-spoke/spoke-modules/airlock/logicApp.bicep index d00e1c7..86dd5b4 100644 --- a/research-spoke/spoke-modules/airlock/logicApp.bicep +++ b/research-spoke/spoke-modules/airlock/logicApp.bicep @@ -14,6 +14,7 @@ param airlockFileShareName string param privateFileShareName string param approverEmail string param processNotificationEmail string +param fromEmail string param sourceFolderPath string param airlockFolderPath string param exportApprovedContainerName string @@ -205,6 +206,9 @@ resource logicApp 'Microsoft.Logic/workflows@2019-05-01' = { pipelineNameFileShareToFileShare: { value: pipelineNames.fileShareToFileShare } + fromEmail: { + value: fromEmail + } } } tags: tags diff --git a/research-spoke/spoke-modules/airlock/main.bicep b/research-spoke/spoke-modules/airlock/main.bicep index 5e1c711..ead0291 100644 --- a/research-spoke/spoke-modules/airlock/main.bicep +++ b/research-spoke/spoke-modules/airlock/main.bicep @@ -31,6 +31,8 @@ param containerNames object = { param approverEmail string @description('The email address where process notifications (designed to be the principal investigator) will be sent.') param processNotificationEmail string +@description('The email address that will appear in the "From" field of emails sent by the airlock Logic App.') +param fromEmail string param roles object @@ -290,6 +292,7 @@ module logicAppModule 'logicApp.bicep' = { privateContainerName: containerNames.exportRequest privateFileShareName: spokePrivateFileShareName processNotificationEmail: processNotificationEmail + fromEmail: fromEmail } }