Skip to content

Commit ca243cb

Browse files
CCM-12034: Added new sms nudge views (#208)
* CCM-12034: Added new sms nudge views * CCM-12034: update terraform docs * CCM-12034: typo in workflow description * CCM-12034: add nudge client id to tfvars * CCM-12034: add flagged guids to .gitleaksignore file * CCM-12034: view query performance improvement --------- Co-authored-by: Ian Hodges <ian.hodges1@nhs.net>
1 parent 28318f3 commit ca243cb

15 files changed

+113
-2
lines changed

.github/workflows/cicd-3-deploy.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ on:
1515
default: apply
1616
type: string
1717
tag:
18-
description: "This is the tag that is oging to be deployed"
18+
description: "This is the tag that is going to be deployed"
1919
required: true
2020
default: "latest"
2121

.gitleaksignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ cd9c0efec38c5d63053dd865e5d4e207c0760d91:docs/guides/Perform_static_analysis.md:
66
e2fd9d99d561c274cfd11b85a99a0cb1ae00f97d:infrastructure/terraform/components/reporting/templates/cloudinit_config.ps1:ipv4:28
77
8cd75c04961cd6ce8477b7dad9c6daa67f03cd19:infrastructure/terraform/components/reporting/templates/cloudinit_config.tmpl:ipv4:32
88
9b7b5b4539e13109e15c474684911b5a349c1b6d:infrastructure/terraform/components/reporting/scripts/sql/views/request_item_status_summary_all_emailfilter.sql:generic-api-key:12
9-
9+
e4f41f458ca66d94f1fcebdff9579e2ce81d1d5e:infrastructure/terraform/etc/env_eu-west-2_int.tfvars:generic-api-key:29
10+
e4f41f458ca66d94f1fcebdff9579e2ce81d1d5e:infrastructure/terraform/etc/env_eu-west-2_prod.tfvars:generic-api-key:43

infrastructure/terraform/components/reporting/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ No requirements.
5050
| <a name="input_scale_in_recurrence_schedule"></a> [scale\_in\_recurrence\_schedule](#input\_scale\_in\_recurrence\_schedule) | The cron expression for the scale in schedule. Set to null if no recurrence is needed. | `string` | `null` | no |
5151
| <a name="input_scale_out_recurrence_schedule"></a> [scale\_out\_recurrence\_schedule](#input\_scale\_out\_recurrence\_schedule) | The cron expression for the scale out schedule. Set to null if no recurrence is needed. | `string` | `null` | no |
5252
| <a name="input_shared_infra_account_id"></a> [shared\_infra\_account\_id](#input\_shared\_infra\_account\_id) | The AWS Account ID of the shared infrastructure account | `string` | `"000000000000"` | no |
53+
| <a name="input_sms_nudge_client_id"></a> [sms\_nudge\_client\_id](#input\_sms\_nudge\_client\_id) | Client id for the SMS Nudge umbrella client used to filter smsnudge views | `string` | `"NULL"` | no |
5354
| <a name="input_spot_max_price"></a> [spot\_max\_price](#input\_spot\_max\_price) | max spot price for Power BI On-Premises Gateway instances | `string` | `"0.3"` | no |
5455
| <a name="input_superuser_role_name"></a> [superuser\_role\_name](#input\_superuser\_role\_name) | Name of the superuser role that is allowed to create other IAM roles | `string` | n/a | yes |
5556
## Modules

infrastructure/terraform/components/reporting/data_iam_policy_document_sso_read_only_table_access.tf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ data "aws_iam_policy_document" "sso_read_only_table_access" {
3232
"arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/request_item_plan_completed_summary_all",
3333
"arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/request_item_status_summary_all",
3434
"arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/request_item_status_summary_all_email_filter",
35+
"arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/request_item_status_smsnudge_staging",
36+
"arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/request_item_plan_status_smsnudge",
37+
"arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/request_item_status_smsnudge",
3538
"arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/dates",
3639
"arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/letters_invoice_units_monthly",
3740
"arn:aws:glue:${var.region}:${var.aws_account_id}:table/${var.project}-*-reporting-database/letters_invoice_units_weekly",

infrastructure/terraform/components/reporting/iam_instance_profile_powerbi_gateway.tf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,9 @@ data "aws_iam_policy_document" "powerbi_gateway_permissions_policy" {
184184
"arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/request_item_plan_completed_summary_all",
185185
"arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/request_item_status_summary_all",
186186
"arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/request_item_status_summary_all_email_filter",
187+
"arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/request_item_status_smsnudge_staging",
188+
"arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/request_item_plan_status_smsnudge",
189+
"arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/request_item_status_smsnudge",
187190
"arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/dates",
188191
"arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/letters_invoice_units_monthly",
189192
"arn:aws:glue:${var.region}:${local.this_account}:table/${aws_glue_catalog_database.reporting.name}/letters_invoice_units_weekly",

infrastructure/terraform/components/reporting/locals.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,5 +84,7 @@ locals {
8484
]
8585
]) : []
8686

87+
sms_nudge_client_id = format("'%s'", var.sms_nudge_client_id)
88+
8789
log_destination_arn = "arn:aws:logs:${var.region}:${var.shared_infra_account_id}:destination:nhs-main-obs-firehose-logs"
8890
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
resource "null_resource" "request_item_plan_status_smsnudge_view" {
2+
triggers = {
3+
sql = filesha256("${path.module}/scripts/sql/views/request_item_plan_status_smsnudge.sql")
4+
}
5+
6+
provisioner "local-exec" {
7+
command = <<EOT
8+
${path.module}/scripts/create_replace_view.sh \
9+
${aws_athena_workgroup.setup.name} \
10+
${aws_glue_catalog_database.reporting.name} \
11+
request_item_plan_status_smsnudge \
12+
sms_nudge_client_id "${local.sms_nudge_client_id}"
13+
EOT
14+
}
15+
16+
depends_on = [
17+
null_resource.request_item_plan_status_table,
18+
null_resource.request_item_status_smsnudge_staging_view
19+
]
20+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
resource "null_resource" "request_item_status_smsnudge_staging_view" {
2+
triggers = {
3+
sql = filesha256("${path.module}/scripts/sql/views/request_item_status_smsnudge_staging.sql")
4+
}
5+
6+
provisioner "local-exec" {
7+
command = <<EOT
8+
${path.module}/scripts/create_replace_view.sh \
9+
${aws_athena_workgroup.setup.name} \
10+
${aws_glue_catalog_database.reporting.name} \
11+
request_item_status_smsnudge_staging \
12+
sms_nudge_client_id "${local.sms_nudge_client_id}"
13+
EOT
14+
}
15+
16+
depends_on = [
17+
null_resource.request_item_status_table
18+
]
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
resource "null_resource" "request_item_status_smsnudge_view" {
2+
triggers = {
3+
sql = filesha256("${path.module}/scripts/sql/views/request_item_status_smsnudge.sql")
4+
}
5+
6+
provisioner "local-exec" {
7+
command = <<EOT
8+
${path.module}/scripts/create_replace_view.sh \
9+
${aws_athena_workgroup.setup.name} \
10+
${aws_glue_catalog_database.reporting.name} \
11+
request_item_status_smsnudge
12+
EOT
13+
}
14+
15+
depends_on = [
16+
null_resource.request_item_status_smsnudge_staging_view,
17+
null_resource.request_item_plan_status_smsnudge_view
18+
]
19+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
CREATE OR REPLACE VIEW ${view_name} AS
2+
SELECT
3+
rip.*,
4+
ris.originatingclientid,
5+
ris.originatingcampaignid,
6+
ris.originatingbillingrefid,
7+
ris.originatingrequestitemid,
8+
ris.originatingrequestitemplanid,
9+
original_ri.sendinggroupid AS originalsendinggroupid
10+
FROM request_item_plan_status rip
11+
LEFT JOIN request_item_status_smsnudge_staging ris
12+
ON rip.requestitemid = ris.requestitemid
13+
LEFT JOIN request_item_status original_ri
14+
ON original_ri.requestitemid = ris.originatingrequestitemid
15+
AND original_ri.clientid = ris.originatingclientid
16+
WHERE rip.clientid = ${sms_nudge_client_id}

0 commit comments

Comments
 (0)