From a1256bea9185f6a27201e6434102dc31f4aea9c8 Mon Sep 17 00:00:00 2001 From: Mark Pullan Date: Mon, 8 Sep 2025 11:11:42 +0100 Subject: [PATCH 1/3] Rename existing monthly report --- .../data_iam_policy_document_sso_read_only_table_access.tf | 2 +- .../reporting/iam_instance_profile_powerbi_gateway.tf | 2 +- ... => null_resource_letters_invoice_units_monthly_view.tf} | 6 +++--- ..._invoice_units.sql => letters_invoice_units_monthly.sql} | 0 4 files changed, 5 insertions(+), 5 deletions(-) rename infrastructure/terraform/components/reporting/{null_resource_letters_invoice_units_view.tf => null_resource_letters_invoice_units_monthly_view.tf} (74%) rename infrastructure/terraform/components/reporting/scripts/sql/views/{letters_invoice_units.sql => letters_invoice_units_monthly.sql} (100%) diff --git a/infrastructure/terraform/components/reporting/data_iam_policy_document_sso_read_only_table_access.tf b/infrastructure/terraform/components/reporting/data_iam_policy_document_sso_read_only_table_access.tf index c3552b7f..3673f653 100644 --- a/infrastructure/terraform/components/reporting/data_iam_policy_document_sso_read_only_table_access.tf +++ b/infrastructure/terraform/components/reporting/data_iam_policy_document_sso_read_only_table_access.tf @@ -33,7 +33,7 @@ data "aws_iam_policy_document" "sso_read_only_table_access" { "arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/request_item_status_summary_all", "arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/request_item_status_summary_all_email_filter", "arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/dates", - "arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/letters_invoice_units", + "arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/letters_invoice_units_monthly", "arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/latency_percentiles", "arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/daily_recipient_count", "arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/daily_recipient_distribution", diff --git a/infrastructure/terraform/components/reporting/iam_instance_profile_powerbi_gateway.tf b/infrastructure/terraform/components/reporting/iam_instance_profile_powerbi_gateway.tf index deb3f7bd..379afc21 100644 --- a/infrastructure/terraform/components/reporting/iam_instance_profile_powerbi_gateway.tf +++ b/infrastructure/terraform/components/reporting/iam_instance_profile_powerbi_gateway.tf @@ -185,7 +185,7 @@ data "aws_iam_policy_document" "powerbi_gateway_permissions_policy" { "arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/request_item_status_summary_all", "arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/request_item_status_summary_all_email_filter", "arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/dates", - "arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/letters_invoice_units", + "arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/letters_invoice_units_monthly", "arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/latency_percentiles", "arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/daily_recipient_count", "arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/daily_recipient_distribution", diff --git a/infrastructure/terraform/components/reporting/null_resource_letters_invoice_units_view.tf b/infrastructure/terraform/components/reporting/null_resource_letters_invoice_units_monthly_view.tf similarity index 74% rename from infrastructure/terraform/components/reporting/null_resource_letters_invoice_units_view.tf rename to infrastructure/terraform/components/reporting/null_resource_letters_invoice_units_monthly_view.tf index d476a7cf..97e3b969 100644 --- a/infrastructure/terraform/components/reporting/null_resource_letters_invoice_units_view.tf +++ b/infrastructure/terraform/components/reporting/null_resource_letters_invoice_units_monthly_view.tf @@ -1,13 +1,13 @@ -resource "null_resource" "letters_invoice_units_view" { +resource "null_resource" "letters_invoice_units_monthly_view" { triggers = { - sql = filesha256("${path.module}/scripts/sql/views/letters_invoice_units.sql") + sql = filesha256("${path.module}/scripts/sql/views/letters_invoice_units_monthly.sql") } provisioner "local-exec" { command = < Date: Mon, 8 Sep 2025 11:28:04 +0100 Subject: [PATCH 2/3] Add weekly view for supplier invoice reconciliation --- ...ource_letters_invoice_units_weekly_view.tf | 17 ++++++++++++++ .../views/letters_invoice_units_monthly.sql | 4 ++-- .../views/letters_invoice_units_weekly.sql | 22 +++++++++++++++++++ 3 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 infrastructure/terraform/components/reporting/null_resource_letters_invoice_units_weekly_view.tf create mode 100644 infrastructure/terraform/components/reporting/scripts/sql/views/letters_invoice_units_weekly.sql diff --git a/infrastructure/terraform/components/reporting/null_resource_letters_invoice_units_weekly_view.tf b/infrastructure/terraform/components/reporting/null_resource_letters_invoice_units_weekly_view.tf new file mode 100644 index 00000000..551fe634 --- /dev/null +++ b/infrastructure/terraform/components/reporting/null_resource_letters_invoice_units_weekly_view.tf @@ -0,0 +1,17 @@ +resource "null_resource" "letters_invoice_units_weekly_view" { + triggers = { + sql = filesha256("${path.module}/scripts/sql/views/letters_invoice_units_weekly.sql") + } + provisioner "local-exec" { + command = < Date: Mon, 8 Sep 2025 11:34:08 +0100 Subject: [PATCH 3/3] IAM for new view --- .../data_iam_policy_document_sso_read_only_table_access.tf | 1 + .../components/reporting/iam_instance_profile_powerbi_gateway.tf | 1 + 2 files changed, 2 insertions(+) diff --git a/infrastructure/terraform/components/reporting/data_iam_policy_document_sso_read_only_table_access.tf b/infrastructure/terraform/components/reporting/data_iam_policy_document_sso_read_only_table_access.tf index 3673f653..6aa21525 100644 --- a/infrastructure/terraform/components/reporting/data_iam_policy_document_sso_read_only_table_access.tf +++ b/infrastructure/terraform/components/reporting/data_iam_policy_document_sso_read_only_table_access.tf @@ -34,6 +34,7 @@ data "aws_iam_policy_document" "sso_read_only_table_access" { "arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/request_item_status_summary_all_email_filter", "arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/dates", "arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/letters_invoice_units_monthly", + "arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/letters_invoice_units_weekly", "arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/latency_percentiles", "arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/daily_recipient_count", "arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/daily_recipient_distribution", diff --git a/infrastructure/terraform/components/reporting/iam_instance_profile_powerbi_gateway.tf b/infrastructure/terraform/components/reporting/iam_instance_profile_powerbi_gateway.tf index 379afc21..b777ea45 100644 --- a/infrastructure/terraform/components/reporting/iam_instance_profile_powerbi_gateway.tf +++ b/infrastructure/terraform/components/reporting/iam_instance_profile_powerbi_gateway.tf @@ -186,6 +186,7 @@ data "aws_iam_policy_document" "powerbi_gateway_permissions_policy" { "arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/request_item_status_summary_all_email_filter", "arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/dates", "arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/letters_invoice_units_monthly", + "arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/letters_invoice_units_weekly", "arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/latency_percentiles", "arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/daily_recipient_count", "arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/daily_recipient_distribution",