From 680a589ea15dd5aae67828acf2d139bc12afa4c3 Mon Sep 17 00:00:00 2001 From: sidnhs Date: Tue, 6 Oct 2026 10:12:59 +0100 Subject: [PATCH] CCM-23223: Odin destination config --- .../api/cloudwatch_log_group_api_gateway_access.tf | 8 ++++++++ .../api/cloudwatch_log_group_api_gateway_execution.tf | 8 ++++++++ infrastructure/terraform/components/api/locals.tf | 3 ++- .../terraform/components/api/module_authorizer_lambda.tf | 3 ++- .../api/module_lambda_amendment_event_transformer.tf | 3 ++- .../terraform/components/api/module_lambda_get_letter.tf | 3 ++- .../components/api/module_lambda_get_letter_data.tf | 3 ++- .../terraform/components/api/module_lambda_get_letters.tf | 3 ++- .../terraform/components/api/module_lambda_get_mi.tf | 3 ++- .../terraform/components/api/module_lambda_get_status.tf | 3 ++- .../api/module_lambda_letter_updates_transformer.tf | 3 ++- .../api/module_lambda_mi_updates_transformer.tf | 3 ++- .../components/api/module_lambda_patch_letter.tf | 3 ++- .../components/api/module_lambda_post_letters.tf | 3 ++- .../terraform/components/api/module_lambda_post_mi.tf | 3 ++- .../components/api/module_lambda_supplier_allocator.tf | 3 ++- .../api/module_lambda_supplier_config_ingress.tf | 3 ++- .../components/api/module_lambda_supplier_mock.tf | 3 ++- .../components/api/module_lambda_update_letter_queue.tf | 3 ++- .../components/api/module_lambda_upsert_letter.tf | 3 ++- 20 files changed, 52 insertions(+), 18 deletions(-) diff --git a/infrastructure/terraform/components/api/cloudwatch_log_group_api_gateway_access.tf b/infrastructure/terraform/components/api/cloudwatch_log_group_api_gateway_access.tf index 3907dd711..1c19b1bc7 100644 --- a/infrastructure/terraform/components/api/cloudwatch_log_group_api_gateway_access.tf +++ b/infrastructure/terraform/components/api/cloudwatch_log_group_api_gateway_access.tf @@ -19,3 +19,11 @@ resource "aws_cloudwatch_log_subscription_filter" "api_gateway" { filter_pattern = "" destination_arn = local.csoc_api_gw_log_destination_arn } + +resource "aws_cloudwatch_log_subscription_filter" "api_gateway_odin" { + name = "${replace(aws_cloudwatch_log_group.api_gateway_access.name, "/", "-")}-odin" + role_arn = local.acct.log_subscription_role_arn + log_group_name = aws_cloudwatch_log_group.api_gateway_access.name + filter_pattern = "" + destination_arn = local.odin_destination_arn +} diff --git a/infrastructure/terraform/components/api/cloudwatch_log_group_api_gateway_execution.tf b/infrastructure/terraform/components/api/cloudwatch_log_group_api_gateway_execution.tf index 94c2e1171..43be70b5f 100644 --- a/infrastructure/terraform/components/api/cloudwatch_log_group_api_gateway_execution.tf +++ b/infrastructure/terraform/components/api/cloudwatch_log_group_api_gateway_execution.tf @@ -13,3 +13,11 @@ resource "aws_cloudwatch_log_subscription_filter" "api_gateway_execution" { filter_pattern = "" destination_arn = local.destination_arn } + +resource "aws_cloudwatch_log_subscription_filter" "api_gateway_execution_odin" { + name = "${replace(aws_cloudwatch_log_group.api_gateway_execution.name, "/", "-")}-odin" + role_arn = local.acct.log_subscription_role_arn + log_group_name = aws_cloudwatch_log_group.api_gateway_execution.name + filter_pattern = "" + destination_arn = local.odin_destination_arn +} diff --git a/infrastructure/terraform/components/api/locals.tf b/infrastructure/terraform/components/api/locals.tf index 5f7f0e887..6b4d90305 100644 --- a/infrastructure/terraform/components/api/locals.tf +++ b/infrastructure/terraform/components/api/locals.tf @@ -18,7 +18,8 @@ locals { GET_MI_LAMBDA_ARN = module.get_mi.function_arn }) - destination_arn = "arn:aws:logs:${var.region}:${var.shared_infra_account_id}:destination:nhs-main-obs-firehose-logs" + destination_arn = "arn:aws:logs:${var.region}:${var.shared_infra_account_id}:destination:nhs-main-obs-firehose-logs" + odin_destination_arn = "arn:aws:logs:${var.region}:${var.shared_infra_account_id}:destination:nhs-main-obs-odin-firehose-logs" common_lambda_env_vars = { APIM_CORRELATION_HEADER = "nhsd-correlation-id", diff --git a/infrastructure/terraform/components/api/module_authorizer_lambda.tf b/infrastructure/terraform/components/api/module_authorizer_lambda.tf index 9a9b98acc..e02883fed 100644 --- a/infrastructure/terraform/components/api/module_authorizer_lambda.tf +++ b/infrastructure/terraform/components/api/module_authorizer_lambda.tf @@ -1,5 +1,5 @@ module "authorizer_lambda" { - source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/4.0.2/terraform-lambda.zip" + source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/6.0.5/terraform-lambda.zip" aws_account_id = var.aws_account_id component = var.component @@ -32,6 +32,7 @@ module "authorizer_lambda" { force_lambda_code_deploy = var.force_lambda_code_deploy log_destination_arn = local.destination_arn + odin_log_destination_arn = local.odin_destination_arn log_subscription_role_arn = local.acct.log_subscription_role_arn lambda_env_vars = { diff --git a/infrastructure/terraform/components/api/module_lambda_amendment_event_transformer.tf b/infrastructure/terraform/components/api/module_lambda_amendment_event_transformer.tf index 3cd0d5de2..86c931a4e 100644 --- a/infrastructure/terraform/components/api/module_lambda_amendment_event_transformer.tf +++ b/infrastructure/terraform/components/api/module_lambda_amendment_event_transformer.tf @@ -1,5 +1,5 @@ module "amendment_event_transformer" { - source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/4.0.2/terraform-lambda.zip" + source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/6.0.5/terraform-lambda.zip" function_name = "amendment_event_transformer" description = "Processes letter status updates" @@ -32,6 +32,7 @@ module "amendment_event_transformer" { enable_lambda_insights = false log_destination_arn = local.destination_arn + odin_log_destination_arn = local.odin_destination_arn log_subscription_role_arn = local.acct.log_subscription_role_arn lambda_env_vars = merge(local.common_lambda_env_vars, {}) diff --git a/infrastructure/terraform/components/api/module_lambda_get_letter.tf b/infrastructure/terraform/components/api/module_lambda_get_letter.tf index 845266816..71e64e09f 100644 --- a/infrastructure/terraform/components/api/module_lambda_get_letter.tf +++ b/infrastructure/terraform/components/api/module_lambda_get_letter.tf @@ -1,5 +1,5 @@ module "get_letter" { - source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/4.0.2/terraform-lambda.zip" + source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/6.0.5/terraform-lambda.zip" function_name = "get_letter" description = "Get letter status" @@ -32,6 +32,7 @@ module "get_letter" { enable_lambda_insights = false log_destination_arn = local.destination_arn + odin_log_destination_arn = local.odin_destination_arn log_subscription_role_arn = local.acct.log_subscription_role_arn lambda_env_vars = merge(local.common_lambda_env_vars, {}) diff --git a/infrastructure/terraform/components/api/module_lambda_get_letter_data.tf b/infrastructure/terraform/components/api/module_lambda_get_letter_data.tf index a60cfa4e7..cdb0eefa6 100644 --- a/infrastructure/terraform/components/api/module_lambda_get_letter_data.tf +++ b/infrastructure/terraform/components/api/module_lambda_get_letter_data.tf @@ -1,5 +1,5 @@ module "get_letter_data" { - source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/4.0.2/terraform-lambda.zip" + source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/6.0.5/terraform-lambda.zip" function_name = "get_letter_data" description = "Get the letter data" @@ -32,6 +32,7 @@ module "get_letter_data" { enable_lambda_insights = false log_destination_arn = local.destination_arn + odin_log_destination_arn = local.odin_destination_arn log_subscription_role_arn = local.acct.log_subscription_role_arn lambda_env_vars = merge(local.common_lambda_env_vars, {}) diff --git a/infrastructure/terraform/components/api/module_lambda_get_letters.tf b/infrastructure/terraform/components/api/module_lambda_get_letters.tf index 8c8482136..3718bd684 100644 --- a/infrastructure/terraform/components/api/module_lambda_get_letters.tf +++ b/infrastructure/terraform/components/api/module_lambda_get_letters.tf @@ -1,5 +1,5 @@ module "get_letters" { - source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/4.0.2/terraform-lambda.zip" + source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/6.0.5/terraform-lambda.zip" function_name = "get_letters" description = "Get paginated letter ids" @@ -32,6 +32,7 @@ module "get_letters" { enable_lambda_insights = false log_destination_arn = local.destination_arn + odin_log_destination_arn = local.odin_destination_arn log_subscription_role_arn = local.acct.log_subscription_role_arn lambda_env_vars = merge(local.common_lambda_env_vars, { diff --git a/infrastructure/terraform/components/api/module_lambda_get_mi.tf b/infrastructure/terraform/components/api/module_lambda_get_mi.tf index 456bd588f..143c98027 100644 --- a/infrastructure/terraform/components/api/module_lambda_get_mi.tf +++ b/infrastructure/terraform/components/api/module_lambda_get_mi.tf @@ -1,5 +1,5 @@ module "get_mi" { - source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/v2.0.29/terraform-lambda.zip" + source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/6.0.5/terraform-lambda.zip" function_name = "get_mi" description = "Retrieve management information" @@ -32,6 +32,7 @@ module "get_mi" { enable_lambda_insights = false log_destination_arn = local.destination_arn + odin_log_destination_arn = local.odin_destination_arn log_subscription_role_arn = local.acct.log_subscription_role_arn lambda_env_vars = merge(local.common_lambda_env_vars, {}) diff --git a/infrastructure/terraform/components/api/module_lambda_get_status.tf b/infrastructure/terraform/components/api/module_lambda_get_status.tf index 7582de805..a421c08f1 100644 --- a/infrastructure/terraform/components/api/module_lambda_get_status.tf +++ b/infrastructure/terraform/components/api/module_lambda_get_status.tf @@ -1,5 +1,5 @@ module "get_status" { - source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/4.0.2/terraform-lambda.zip" + source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/6.0.5/terraform-lambda.zip" function_name = "get_status" description = "Healthcheck for service" @@ -32,6 +32,7 @@ module "get_status" { enable_lambda_insights = false log_destination_arn = local.destination_arn + odin_log_destination_arn = local.odin_destination_arn log_subscription_role_arn = local.acct.log_subscription_role_arn lambda_env_vars = merge(local.common_lambda_env_vars, {}) diff --git a/infrastructure/terraform/components/api/module_lambda_letter_updates_transformer.tf b/infrastructure/terraform/components/api/module_lambda_letter_updates_transformer.tf index 20a117f50..36f9b9851 100644 --- a/infrastructure/terraform/components/api/module_lambda_letter_updates_transformer.tf +++ b/infrastructure/terraform/components/api/module_lambda_letter_updates_transformer.tf @@ -1,5 +1,5 @@ module "letter_updates_transformer" { - source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/4.0.2/terraform-lambda.zip" + source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/6.0.5/terraform-lambda.zip" function_name = "letter-updates-transformer" description = "Letter Update Filter/Producer" @@ -32,6 +32,7 @@ module "letter_updates_transformer" { enable_lambda_insights = false log_destination_arn = local.destination_arn + odin_log_destination_arn = local.odin_destination_arn log_subscription_role_arn = local.acct.log_subscription_role_arn lambda_env_vars = merge(local.common_lambda_env_vars, { diff --git a/infrastructure/terraform/components/api/module_lambda_mi_updates_transformer.tf b/infrastructure/terraform/components/api/module_lambda_mi_updates_transformer.tf index 47bdbbfe0..0b44a8bd9 100644 --- a/infrastructure/terraform/components/api/module_lambda_mi_updates_transformer.tf +++ b/infrastructure/terraform/components/api/module_lambda_mi_updates_transformer.tf @@ -1,5 +1,5 @@ module "mi_updates_transformer" { - source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/4.0.2/terraform-lambda.zip" + source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/6.0.5/terraform-lambda.zip" function_name = "mi-updates-transformer" description = "MI Update Filter/Producer" @@ -33,6 +33,7 @@ module "mi_updates_transformer" { send_to_firehose = true log_destination_arn = local.destination_arn + odin_log_destination_arn = local.odin_destination_arn log_subscription_role_arn = local.acct.log_subscription_role_arn lambda_env_vars = merge(local.common_lambda_env_vars, { diff --git a/infrastructure/terraform/components/api/module_lambda_patch_letter.tf b/infrastructure/terraform/components/api/module_lambda_patch_letter.tf index afc612c71..4da2d5c64 100644 --- a/infrastructure/terraform/components/api/module_lambda_patch_letter.tf +++ b/infrastructure/terraform/components/api/module_lambda_patch_letter.tf @@ -1,5 +1,5 @@ module "patch_letter" { - source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/4.0.2/terraform-lambda.zip" + source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/6.0.5/terraform-lambda.zip" function_name = "patch_letter" description = "Update the status of a letter" @@ -32,6 +32,7 @@ module "patch_letter" { enable_lambda_insights = false log_destination_arn = local.destination_arn + odin_log_destination_arn = local.odin_destination_arn log_subscription_role_arn = local.acct.log_subscription_role_arn lambda_env_vars = merge(local.common_lambda_env_vars, { diff --git a/infrastructure/terraform/components/api/module_lambda_post_letters.tf b/infrastructure/terraform/components/api/module_lambda_post_letters.tf index 272f4c9e9..54ba5a967 100644 --- a/infrastructure/terraform/components/api/module_lambda_post_letters.tf +++ b/infrastructure/terraform/components/api/module_lambda_post_letters.tf @@ -1,5 +1,5 @@ module "post_letters" { - source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/4.0.2/terraform-lambda.zip" + source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/6.0.5/terraform-lambda.zip" function_name = "post_letters" description = "Receives and accepts collection of letters to update" @@ -32,6 +32,7 @@ module "post_letters" { enable_lambda_insights = false log_destination_arn = local.destination_arn + odin_log_destination_arn = local.odin_destination_arn log_subscription_role_arn = local.acct.log_subscription_role_arn lambda_env_vars = merge(local.common_lambda_env_vars, { diff --git a/infrastructure/terraform/components/api/module_lambda_post_mi.tf b/infrastructure/terraform/components/api/module_lambda_post_mi.tf index be7ae4eed..2ae0b93ff 100644 --- a/infrastructure/terraform/components/api/module_lambda_post_mi.tf +++ b/infrastructure/terraform/components/api/module_lambda_post_mi.tf @@ -1,5 +1,5 @@ module "post_mi" { - source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/4.0.2/terraform-lambda.zip" + source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/6.0.5/terraform-lambda.zip" function_name = "post_mi" description = "Add management information" @@ -32,6 +32,7 @@ module "post_mi" { enable_lambda_insights = false log_destination_arn = local.destination_arn + odin_log_destination_arn = local.odin_destination_arn log_subscription_role_arn = local.acct.log_subscription_role_arn lambda_env_vars = merge(local.common_lambda_env_vars, {}) diff --git a/infrastructure/terraform/components/api/module_lambda_supplier_allocator.tf b/infrastructure/terraform/components/api/module_lambda_supplier_allocator.tf index 3ab822ecc..22832ad9e 100644 --- a/infrastructure/terraform/components/api/module_lambda_supplier_allocator.tf +++ b/infrastructure/terraform/components/api/module_lambda_supplier_allocator.tf @@ -1,5 +1,5 @@ module "supplier_allocator" { - source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/4.0.2/terraform-lambda.zip" + source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/6.0.5/terraform-lambda.zip" function_name = "supplier-allocator" description = "Allocate a letter to a supplier" @@ -32,6 +32,7 @@ module "supplier_allocator" { enable_lambda_insights = false log_destination_arn = local.destination_arn + odin_log_destination_arn = local.odin_destination_arn log_subscription_role_arn = local.acct.log_subscription_role_arn lambda_env_vars = merge(local.common_lambda_env_vars, { diff --git a/infrastructure/terraform/components/api/module_lambda_supplier_config_ingress.tf b/infrastructure/terraform/components/api/module_lambda_supplier_config_ingress.tf index 8073ffef6..478630199 100644 --- a/infrastructure/terraform/components/api/module_lambda_supplier_config_ingress.tf +++ b/infrastructure/terraform/components/api/module_lambda_supplier_config_ingress.tf @@ -1,5 +1,5 @@ module "supplier_config_ingress" { - source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/v2.0.29/terraform-lambda.zip" + source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/6.0.5/terraform-lambda.zip" function_name = "supplier-config-ingress" description = "Persist supplier config changes" @@ -32,6 +32,7 @@ module "supplier_config_ingress" { enable_lambda_insights = false log_destination_arn = local.destination_arn + odin_log_destination_arn = local.odin_destination_arn log_subscription_role_arn = local.acct.log_subscription_role_arn lambda_env_vars = merge(local.common_lambda_env_vars, {}) diff --git a/infrastructure/terraform/components/api/module_lambda_supplier_mock.tf b/infrastructure/terraform/components/api/module_lambda_supplier_mock.tf index eb17faf34..f80a47e6d 100644 --- a/infrastructure/terraform/components/api/module_lambda_supplier_mock.tf +++ b/infrastructure/terraform/components/api/module_lambda_supplier_mock.tf @@ -1,5 +1,5 @@ module "supplier_mock" { - source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/4.0.5/terraform-lambda.zip" + source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/6.0.5/terraform-lambda.zip" count = var.deploy_supplier_mock_scheduler ? 1 : 0 function_name = "supplier_mock" @@ -33,6 +33,7 @@ module "supplier_mock" { enable_lambda_insights = false log_destination_arn = local.destination_arn + odin_log_destination_arn = local.odin_destination_arn log_subscription_role_arn = local.acct.log_subscription_role_arn lambda_env_vars = merge(local.common_lambda_env_vars, { diff --git a/infrastructure/terraform/components/api/module_lambda_update_letter_queue.tf b/infrastructure/terraform/components/api/module_lambda_update_letter_queue.tf index 418bd216a..85aa0a7ce 100644 --- a/infrastructure/terraform/components/api/module_lambda_update_letter_queue.tf +++ b/infrastructure/terraform/components/api/module_lambda_update_letter_queue.tf @@ -1,5 +1,5 @@ module "update_letter_queue" { - source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/4.0.2/terraform-lambda.zip" + source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/6.0.5/terraform-lambda.zip" function_name = "update_letter_queue" description = "Populates the letter queue table with new pending letters from the letter change stream" @@ -32,6 +32,7 @@ module "update_letter_queue" { enable_lambda_insights = false log_destination_arn = local.destination_arn + odin_log_destination_arn = local.odin_destination_arn log_subscription_role_arn = local.acct.log_subscription_role_arn lambda_env_vars = merge(local.common_lambda_env_vars, {}) diff --git a/infrastructure/terraform/components/api/module_lambda_upsert_letter.tf b/infrastructure/terraform/components/api/module_lambda_upsert_letter.tf index eeaed3420..e02ec1a52 100644 --- a/infrastructure/terraform/components/api/module_lambda_upsert_letter.tf +++ b/infrastructure/terraform/components/api/module_lambda_upsert_letter.tf @@ -1,5 +1,5 @@ module "upsert_letter" { - source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/4.0.2/terraform-lambda.zip" + source = "https://github.com/NHSDigital/nhs-notify-shared-modules/releases/download/6.0.5/terraform-lambda.zip" function_name = "upsert_letter" description = "Update or Insert the letter data in the letters table" @@ -32,6 +32,7 @@ module "upsert_letter" { enable_lambda_insights = false log_destination_arn = local.destination_arn + odin_log_destination_arn = local.odin_destination_arn log_subscription_role_arn = local.acct.log_subscription_role_arn lambda_env_vars = merge(local.common_lambda_env_vars, {