Skip to content

Commit d7c4e0d

Browse files
committed
CCM-10980: merge
2 parents 79f0baf + db02f40 commit d7c4e0d

File tree

19 files changed

+39
-113
lines changed

19 files changed

+39
-113
lines changed

infrastructure/terraform/components/acct/README.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
| <a name="input_group"></a> [group](#input\_group) | The group variables are being inherited from (often synonmous with account short-name) | `string` | n/a | yes |
2323
| <a name="input_initial_cli_secrets_provision_override"></a> [initial\_cli\_secrets\_provision\_override](#input\_initial\_cli\_secrets\_provision\_override) | A map of default value to intialise SSM secret values with. Only useful for initial setup of the account due to lifecycle rules. | `map(string)` | `{}` | no |
2424
| <a name="input_kms_deletion_window"></a> [kms\_deletion\_window](#input\_kms\_deletion\_window) | When a kms key is deleted, how long should it wait in the pending deletion state? | `string` | `"30"` | no |
25-
| <a name="input_letter_suppliers"></a> [letter\_suppliers](#input\_letter\_suppliers) | Letter suppliers enabled in the account (across all environments) | <pre>map(object({<br> enable_polling = bool<br> default_supplier = optional(bool)<br> }))</pre> | `{}` | no |
25+
| <a name="input_letter_suppliers"></a> [letter\_suppliers](#input\_letter\_suppliers) | Letter suppliers enabled in the account (across all environments) | <pre>map(object({<br/> enable_polling = bool<br/> default_supplier = optional(bool)<br/> }))</pre> | `{}` | no |
2626
| <a name="input_log_retention_in_days"></a> [log\_retention\_in\_days](#input\_log\_retention\_in\_days) | The retention period in days for the Cloudwatch Logs events to be retained, default of 0 is indefinite | `number` | `0` | no |
2727
| <a name="input_oam_sink_id"></a> [oam\_sink\_id](#input\_oam\_sink\_id) | The ID of the Cloudwatch OAM sink in the appropriate observability account. | `string` | `""` | no |
2828
| <a name="input_observability_account_id"></a> [observability\_account\_id](#input\_observability\_account\_id) | The Observability Account ID that needs access | `string` | n/a | yes |
@@ -31,7 +31,7 @@
3131
| <a name="input_root_domain_name"></a> [root\_domain\_name](#input\_root\_domain\_name) | The service's root DNS root nameespace, like nonprod.nhsnotify.national.nhs.uk | `string` | `"nonprod.nhsnotify.national.nhs.uk"` | no |
3232
| <a name="input_support_sandbox_environments"></a> [support\_sandbox\_environments](#input\_support\_sandbox\_environments) | Does this account support dev sandbox environments? | `bool` | `false` | no |
3333
| <a name="input_vpc_cidr"></a> [vpc\_cidr](#input\_vpc\_cidr) | n/a | `string` | `"10.0.0.0/16"` | no |
34-
| <a name="input_vpc_subnet_cidr_bits"></a> [vpc\_subnet\_cidr\_bits](#input\_vpc\_subnet\_cidr\_bits) | Number of additional bits to use for subnetting the VPC CIDR block. The bits are evently distributed | <pre>object({<br> public = number<br> private = number<br> })</pre> | <pre>{<br> "private": 3,<br> "public": 12<br>}</pre> | no |
34+
| <a name="input_vpc_subnet_cidr_bits"></a> [vpc\_subnet\_cidr\_bits](#input\_vpc\_subnet\_cidr\_bits) | Number of additional bits to use for subnetting the VPC CIDR block. The bits are evently distributed | <pre>object({<br/> public = number<br/> private = number<br/> })</pre> | <pre>{<br/> "private": 3,<br/> "public": 12<br/>}</pre> | no |
3535
## Modules
3636

3737
| Name | Source | Version |
@@ -57,7 +57,6 @@
5757
| <a name="output_ses_testing_config"></a> [ses\_testing\_config](#output\_ses\_testing\_config) | n/a |
5858
| <a name="output_vpc_nat_ips"></a> [vpc\_nat\_ips](#output\_vpc\_nat\_ips) | n/a |
5959
| <a name="output_vpc_subnets"></a> [vpc\_subnets](#output\_vpc\_subnets) | n/a |
60-
6160
<!-- vale on -->
6261
<!-- markdownlint-enable -->
6362
<!-- END_TF_DOCS -->

infrastructure/terraform/components/app/README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
| <a name="input_external_email_domain"></a> [external\_email\_domain](#input\_external\_email\_domain) | Externally managed domain used to create an SES identity for sending emails from. Validation DNS records will need to be manually configured in the DNS provider. | `string` | `null` | no |
3838
| <a name="input_group"></a> [group](#input\_group) | The group variables are being inherited from (often synonmous with account short-name) | `string` | n/a | yes |
3939
| <a name="input_kms_deletion_window"></a> [kms\_deletion\_window](#input\_kms\_deletion\_window) | When a kms key is deleted, how long should it wait in the pending deletion state? | `string` | `"30"` | no |
40-
| <a name="input_letter_suppliers"></a> [letter\_suppliers](#input\_letter\_suppliers) | Letter suppliers enabled in the environment | <pre>map(object({<br> email_addresses = list(string)<br> enable_polling = bool<br> default_supplier = optional(bool)<br> }))</pre> | `{}` | no |
40+
| <a name="input_letter_suppliers"></a> [letter\_suppliers](#input\_letter\_suppliers) | Letter suppliers enabled in the environment | <pre>map(object({<br/> email_addresses = list(string)<br/> enable_polling = bool<br/> default_supplier = optional(bool)<br/> }))</pre> | `{}` | no |
4141
| <a name="input_log_retention_in_days"></a> [log\_retention\_in\_days](#input\_log\_retention\_in\_days) | The retention period in days for the Cloudwatch Logs events to be retained, default of 0 is indefinite | `number` | `0` | no |
4242
| <a name="input_observability_account_id"></a> [observability\_account\_id](#input\_observability\_account\_id) | The Observability Account ID that needs access | `string` | n/a | yes |
4343
| <a name="input_parent_acct_environment"></a> [parent\_acct\_environment](#input\_parent\_acct\_environment) | Name of the environment responsible for the acct resources used, affects things like DNS zone. Useful for named dev environments | `string` | `"main"` | no |
@@ -64,7 +64,6 @@
6464
|------|-------------|
6565
| <a name="output_amplify"></a> [amplify](#output\_amplify) | n/a |
6666
| <a name="output_deployment"></a> [deployment](#output\_deployment) | Deployment details used for post-deployment scripts |
67-
6867
<!-- vale on -->
6968
<!-- markdownlint-enable -->
7069
<!-- END_TF_DOCS -->

infrastructure/terraform/components/branch/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
## Outputs
3030

3131
No outputs.
32-
3332
<!-- vale on -->
3433
<!-- markdownlint-enable -->
3534
<!-- END_TF_DOCS -->

infrastructure/terraform/components/sandbox/README.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
| <a name="input_environment"></a> [environment](#input\_environment) | The name of the tfscaffold environment | `string` | n/a | yes |
1919
| <a name="input_group"></a> [group](#input\_group) | The group variables are being inherited from (often synonymous with account short-name) | `string` | n/a | yes |
2020
| <a name="input_kms_deletion_window"></a> [kms\_deletion\_window](#input\_kms\_deletion\_window) | When a kms key is deleted, how long should it wait in the pending deletion state? | `string` | `"30"` | no |
21-
| <a name="input_letter_suppliers"></a> [letter\_suppliers](#input\_letter\_suppliers) | Letter suppliers enabled in the environment | <pre>map(object({<br> email_addresses = list(string)<br> enable_polling = bool<br> default_supplier = optional(bool)<br> }))</pre> | <pre>{<br> "WTMMOCK": {<br> "default_supplier": true,<br> "email_addresses": [],<br> "enable_polling": true<br> }<br>}</pre> | no |
2221
| <a name="input_log_retention_in_days"></a> [log\_retention\_in\_days](#input\_log\_retention\_in\_days) | The retention period in days for the Cloudwatch Logs events to be retained, default of 0 is indefinite | `number` | `0` | no |
2322
| <a name="input_parent_acct_environment"></a> [parent\_acct\_environment](#input\_parent\_acct\_environment) | Name of the environment responsible for the acct resources used, affects things like DNS zone. Useful for named dev environments | `string` | `"main"` | no |
2423
| <a name="input_project"></a> [project](#input\_project) | The name of the tfscaffold project | `string` | n/a | yes |
@@ -47,9 +46,7 @@
4746
| <a name="output_sftp_poll_lambda_name"></a> [sftp\_poll\_lambda\_name](#output\_sftp\_poll\_lambda\_name) | n/a |
4847
| <a name="output_templates_table_name"></a> [templates\_table\_name](#output\_templates\_table\_name) | n/a |
4948
| <a name="output_test_email_bucket_name"></a> [test\_email\_bucket\_name](#output\_test\_email\_bucket\_name) | n/a |
50-
| <a name="output_test_proof_requested_email_prefix"></a> [test\_proof\_requested\_email\_prefix](#output\_test\_proof\_requested\_email\_prefix) | n/a |
51-
| <a name="output_test_template_submitted_email_prefix"></a> [test\_template\_submitted\_email\_prefix](#output\_test\_template\_submitted\_email\_prefix) | n/a |
52-
49+
| <a name="output_test_email_bucket_prefix"></a> [test\_email\_bucket\_prefix](#output\_test\_email\_bucket\_prefix) | n/a |
5350
<!-- vale on -->
5451
<!-- markdownlint-enable -->
5552
<!-- END_TF_DOCS -->
Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,6 @@
11
locals {
2-
mock_letter_supplier_name = "WTMMOCK"
3-
4-
use_sftp_letter_supplier_mock = lookup(var.letter_suppliers, local.mock_letter_supplier_name, null) != null
5-
62
email_domain = "sandbox.${local.acct.dns_zone["name"]}"
73
sandbox_letter_supplier_mock_proof_requested_sender = "proof-requested-sender-${var.environment}@${local.email_domain}"
84
sandbox_letter_supplier_mock_template_submitted_sender = "template-submitted-sender-${var.environment}@${local.email_domain}"
95
sandbox_letter_supplier_mock_recipient = "supplier-recipient-${var.environment}@${local.email_domain}"
10-
11-
# var.letter_suppliers is defined at a point where we don't know what the environment is, so
12-
# we need to add the environment-dependent test recipient separately here
13-
letter_suppliers = local.use_sftp_letter_supplier_mock ? merge(
14-
var.letter_suppliers,
15-
{ WTMMOCK = {
16-
email_addresses = concat(var.letter_suppliers.WTMMOCK.email_addresses, [local.sandbox_letter_supplier_mock_recipient])
17-
enable_polling = true
18-
default_supplier = true
19-
} }
20-
) : var.letter_suppliers
216
}

infrastructure/terraform/components/sandbox/module_backend_api.tf

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,13 @@ module "backend_api" {
1818
}
1919

2020
enable_proofing = true
21-
letter_suppliers = local.letter_suppliers
21+
letter_suppliers = {
22+
WTMMOCK = {
23+
email_addresses = [local.sandbox_letter_supplier_mock_recipient]
24+
enable_polling = true
25+
default_supplier = true
26+
}
27+
}
2228

2329
kms_key_arn = data.aws_kms_key.sandbox.arn
2430

infrastructure/terraform/components/sandbox/outputs.tf

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,6 @@ output "test_email_bucket_name" {
6262
value = local.acct["ses_testing_config"].bucket_name
6363
}
6464

65-
output "test_proof_requested_email_prefix" {
66-
value = "proof-requested-emails-${var.environment}"
67-
}
68-
69-
70-
output "test_template_submitted_email_prefix" {
71-
value = "template-submitted-emails-${var.environment}"
65+
output "test_email_bucket_prefix" {
66+
value = "emails-${var.environment}"
7267
}

infrastructure/terraform/components/sandbox/ses_receipt_rule_proof_requested.tf renamed to infrastructure/terraform/components/sandbox/ses_receipt_rule.tf

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,15 @@ resource "aws_ses_receipt_rule" "proof_requested" {
22
name = "${local.csi}-store-email-proof-requested"
33
rule_set_name = local.acct["ses_testing_config"].rule_set_name
44

5-
# Despite being called "recipients", AWS appears to apply this check to the sender email
6-
recipients = [local.sandbox_letter_supplier_mock_proof_requested_sender]
5+
recipients = [local.sandbox_letter_supplier_mock_recipient]
76
enabled = true
87
scan_enabled = true
98
tls_policy = "Optional"
109

1110
s3_action {
1211
position = 1
1312
bucket_name = local.acct["ses_testing_config"].bucket_name
14-
object_key_prefix = "proof-requested-emails-${var.environment}/"
13+
object_key_prefix = "emails-${var.environment}/"
1514
iam_role_arn = local.acct["ses_testing_config"].iam_role_arn
1615
}
1716
}

infrastructure/terraform/components/sandbox/ses_receipt_rule_template_submitted.tf

Lines changed: 0 additions & 17 deletions
This file was deleted.

infrastructure/terraform/components/sandbox/variables.tf

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -63,32 +63,6 @@ variable "kms_deletion_window" {
6363
default = "30"
6464
}
6565

66-
variable "letter_suppliers" {
67-
type = map(object({
68-
email_addresses = list(string)
69-
enable_polling = bool
70-
default_supplier = optional(bool)
71-
}))
72-
73-
default = {
74-
"WTMMOCK" = {
75-
email_addresses = []
76-
enable_polling = true
77-
default_supplier = true
78-
}
79-
}
80-
81-
validation {
82-
condition = (
83-
length(var.letter_suppliers) == 0 ||
84-
length([for s in values(var.letter_suppliers) : s if s.default_supplier]) == 1
85-
)
86-
error_message = "If letter suppliers are configured, exactly one must be default_supplier"
87-
}
88-
89-
description = "Letter suppliers enabled in the environment"
90-
}
91-
9266
variable "parent_acct_environment" {
9367
type = string
9468
description = "Name of the environment responsible for the acct resources used, affects things like DNS zone. Useful for named dev environments"

0 commit comments

Comments
 (0)