Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
14 commits
Select commit Hold shift + click to select a range
80a3cb3
build(.tool-versions): bump tool versions for terraform-docs and pre-…
nhs-oliverslater May 6, 2026
c416895
docs(infrastructure/modules): correct formatting and refresh tf-docs …
nhs-oliverslater May 6, 2026
c006be7
docs(docs/developer-guides): Update GitHub links to use permalinks (v…
nhs-oliverslater May 6, 2026
a0640e1
feat(infrastructure/modules/tags): add new tags module and implement …
nhs-oliverslater May 6, 2026
a3c0a47
docs(infrastructure/modules): correct formatting and refresh tf-docs …
nhs-oliverslater May 6, 2026
89ad801
fix(infrastructure/modules/tags/variables.tf): set default value for …
nhs-oliverslater May 6, 2026
1a2b741
test(infrastructure/modules/tags/region.tf): add tflint exclusions fo…
nhs-oliverslater May 6, 2026
31a6dee
style(infrastructure/modules/tags): lint fix and formatting
nhs-oliverslater May 6, 2026
19e26b9
fix(infrastructure/modules/tags/exports/context.tf): add context.tf f…
nhs-oliverslater May 6, 2026
9200d06
feat(infrastructure/modules/kms): add new kms module
nhs-oliverslater May 7, 2026
e6fd278
docs(infrastructure/modules/tags): correct description for var.label_…
nhs-oliverslater May 7, 2026
1192ff9
fix(infrastructure/modules/tags/main.tf): update deprecated data sour…
nhs-oliverslater May 7, 2026
cdb8e2d
fix(infrastructure/modules/tags/main.tf): covert incompatible generat…
nhs-oliverslater May 7, 2026
fdf21ab
fix(infrastructure/modules/kms/outputs.tf): add outputs to kms module
nhs-oliverslater May 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/cicd-2-publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,3 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}
default_bump: patch
tag_prefix: "v"

4 changes: 2 additions & 2 deletions .tool-versions
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# This file is for you! Please, updated to the versions agreed by your team.

terraform 1.13.2
terraform-docs 0.19.0
pre-commit 3.6.0
terraform-docs 0.23.0
pre-commit 4.6.0
python 3.12
vale 3.6.0

Expand Down
4 changes: 2 additions & 2 deletions .tool-versions.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
infrastructure:
terraform: 1.13.2
terraform-docs: 0.19.0
pre-commit: 3.6.0
terraform-docs: 0.23.0
pre-commit: 4.6.0
vale: 3.6.0
python: 3.12.0
nodejs: 24.8.0
2 changes: 1 addition & 1 deletion docs/developer-guides/Scripting_Docker.md
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ Here is a step-by-step guide for an image which packages a third-party tool. It

You can specify the version tags that the automated build process applies to your images with a `VERSION` file. This file must be located adjacent to the `Dockerfile` where each image is defined.

It may be a "_statically defined_" version, such as `1.2.3`, `20230601`, etc., or a "_dynamic pattern_" based on the current time and commit hash, e.g. `${yyyy}${mm}${dd}${HH}${MM}${SS}-${hash}`. This pattern will be substituted during the build process to create a `.version` file in the same directory, containing effective content like `20230601153000-123abcd`. See [this function](https://github.com/nhs-england-tools/repository-template/blob/main/scripts/docker/docker.lib.sh#L118) for what template substitutions are available.
It may be a "_statically defined_" version, such as `1.2.3`, `20230601`, etc., or a "_dynamic pattern_" based on the current time and commit hash, e.g. `${yyyy}${mm}${dd}${HH}${MM}${SS}-${hash}`. This pattern will be substituted during the build process to create a `.version` file in the same directory, containing effective content like `20230601153000-123abcd`. See [this function](https://github.com/nhs-england-tools/repository-template/blob/ec475e15f049b8ec1ac1b69088297e70ea5c1291/scripts/docker/docker.lib.sh#L118) for what template substitutions are available.

This file is then used by functions defined in [docker.lib.sh](../../scripts/docker/docker.lib.sh) but is ignored by Git, and is not checked in with other files.

Expand Down
2 changes: 1 addition & 1 deletion docs/developer-guides/Scripting_Terraform.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Here are some key features built into this repository's Terraform module:
- [`check-terraform-format.sh`](../../scripts/githooks/check-terraform-format.sh): Git hook
- Usage example
- Declarative infrastructure definition example [`terraform-state-aws-s3`](../../scripts/terraform/examples/terraform-state-aws-s3) to store Terraform state
- A set of [make targets](https://github.com/nhs-england-tools/repository-template/blob/main/scripts/terraform/terraform.mk#L44) to run the example
- A set of [make targets](https://github.com/nhs-england-tools/repository-template/blob/ec475e15f049b8ec1ac1b69088297e70ea5c1291/scripts/terraform/terraform.mk#L44) to run the example

## Usage

Expand Down
2 changes: 0 additions & 2 deletions infrastructure/modules/api-gateway/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -250,5 +250,3 @@ resource "aws_api_gateway_base_path_mapping" "custom_domain_mapping" {

depends_on = [aws_api_gateway_stage.stage]
}


1 change: 0 additions & 1 deletion infrastructure/modules/api-gateway/outputs.tf
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,3 @@ output "api_key_secret_arn" {
description = "The ARN of the API key secret in Secrets Manager"
value = aws_secretsmanager_secret.api_token.arn
}

52 changes: 26 additions & 26 deletions infrastructure/modules/api-gateway/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ No requirements.
## Providers

| Name | Version |
|------|---------|
| <a name="provider_aws"></a> [aws](#provider_aws) | n/a |
| <a name="provider_random"></a> [random](#provider_random) | n/a |
| ---- | ------- |
| <a name="provider_aws"></a> [aws](#provider\_aws) | 6.43.0 |
| <a name="provider_random"></a> [random](#provider\_random) | 3.8.1 |

## Modules

Expand All @@ -20,7 +20,7 @@ No modules.
## Resources

| Name | Type |
|------|------|
| ---- | ---- |
| [aws_acm_certificate.cert](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/acm_certificate) | resource |
| [aws_acm_certificate_validation.cert_validation](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/acm_certificate_validation) | resource |
| [aws_api_gateway_account.account](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/api_gateway_account) | resource |
Expand Down Expand Up @@ -48,31 +48,31 @@ No modules.
## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| <a name="input_api_gateway_description"></a> [api_gateway_description](#input_api_gateway_description) | Description for the API Gateway | `string` | n/a | yes |
| <a name="input_api_gateway_name"></a> [api_gateway_name](#input_api_gateway_name) | the name of the API Gateway | `any` | n/a | yes |
| <a name="input_api_path_part"></a> [api_path_part](#input_api_path_part) | the url path for the API | `any` | n/a | yes |
| <a name="input_aws_account_id"></a> [aws_account_id](#input_aws_account_id) | n/a | `any` | n/a | yes |
| <a name="input_aws_lambda_arn"></a> [aws_lambda_arn](#input_aws_lambda_arn) | n/a | `any` | n/a | yes |
| <a name="input_aws_lambda_name"></a> [aws_lambda_name](#input_aws_lambda_name) | n/a | `any` | n/a | yes |
| <a name="input_aws_region"></a> [aws_region](#input_aws_region) | The AWS region where the API Gateway is deployed | `string` | `"eu-west-2"` | no |
| <a name="input_certificate_arn"></a> [certificate_arn](#input_certificate_arn) | The ARN of the ACM certificate to use for the custom domain (optional, will create if not provided) | `string` | `null` | no |
| <a name="input_domain_name_prefix"></a> [domain_name_prefix](#input_domain_name_prefix) | Prefix for the custom domain name | `string` | n/a | yes |
| <a name="input_hosted_zone_name"></a> [hosted_zone_name](#input_hosted_zone_name) | The hosted zone name for the custom domain | `string` | n/a | yes |
| <a name="input_http_method"></a> [http_method](#input_http_method) | The HTTP method to use for the API Gateway | `string` | n/a | yes |
| <a name="input_name_prefix"></a> [name_prefix](#input_name_prefix) | Prefix for naming resources | `string` | n/a | yes |
| <a name="input_route53_hosted_zone_id"></a> [route53_hosted_zone_id](#input_route53_hosted_zone_id) | The ID of the Route53 hosted zone | `string` | n/a | yes |
| <a name="input_secret_replication_regions"></a> [secret_replication_regions](#input_secret_replication_regions) | List of additional regions where created secrets should be replicated | `list(string)` | n/a | yes |
| <a name="input_stage_name"></a> [stage_name](#input_stage_name) | the API stage name | `any` | n/a | yes |
| ---- | ----------- | ---- | ------- | :------: |
| <a name="input_api_gateway_description"></a> [api\_gateway\_description](#input\_api\_gateway\_description) | Description for the API Gateway | `string` | n/a | yes |
| <a name="input_api_gateway_name"></a> [api\_gateway\_name](#input\_api\_gateway\_name) | the name of the API Gateway | `any` | n/a | yes |
| <a name="input_api_path_part"></a> [api\_path\_part](#input\_api\_path\_part) | the url path for the API | `any` | n/a | yes |
| <a name="input_aws_account_id"></a> [aws\_account\_id](#input\_aws\_account\_id) | n/a | `any` | n/a | yes |
| <a name="input_aws_lambda_arn"></a> [aws\_lambda\_arn](#input\_aws\_lambda\_arn) | n/a | `any` | n/a | yes |
| <a name="input_aws_lambda_name"></a> [aws\_lambda\_name](#input\_aws\_lambda\_name) | n/a | `any` | n/a | yes |
| <a name="input_aws_region"></a> [aws\_region](#input\_aws\_region) | The AWS region where the API Gateway is deployed | `string` | `"eu-west-2"` | no |
| <a name="input_certificate_arn"></a> [certificate\_arn](#input\_certificate\_arn) | The ARN of the ACM certificate to use for the custom domain (optional, will create if not provided) | `string` | `null` | no |
| <a name="input_domain_name_prefix"></a> [domain\_name\_prefix](#input\_domain\_name\_prefix) | Prefix for the custom domain name | `string` | n/a | yes |
| <a name="input_hosted_zone_name"></a> [hosted\_zone\_name](#input\_hosted\_zone\_name) | The hosted zone name for the custom domain | `string` | n/a | yes |
| <a name="input_http_method"></a> [http\_method](#input\_http\_method) | The HTTP method to use for the API Gateway | `string` | n/a | yes |
| <a name="input_name_prefix"></a> [name\_prefix](#input\_name\_prefix) | Prefix for naming resources | `string` | n/a | yes |
| <a name="input_route53_hosted_zone_id"></a> [route53\_hosted\_zone\_id](#input\_route53\_hosted\_zone\_id) | The ID of the Route53 hosted zone | `string` | n/a | yes |
| <a name="input_secret_replication_regions"></a> [secret\_replication\_regions](#input\_secret\_replication\_regions) | List of additional regions where created secrets should be replicated | `list(string)` | n/a | yes |
| <a name="input_stage_name"></a> [stage\_name](#input\_stage\_name) | the API stage name | `any` | n/a | yes |

## Outputs

| Name | Description |
|------|-------------|
| <a name="output_api_gateway_id"></a> [api_gateway_id](#output_api_gateway_id) | The ID of the API Gateway |
| <a name="output_api_gateway_invoke_url"></a> [api_gateway_invoke_url](#output_api_gateway_invoke_url) | The invoke URL of the API Gateway stage |
| <a name="output_api_gateway_url"></a> [api_gateway_url](#output_api_gateway_url) | The URL of the API Gateway custom domain |
| <a name="output_api_key_id"></a> [api_key_id](#output_api_key_id) | The ID of the API key |
| <a name="output_api_key_secret_arn"></a> [api_key_secret_arn](#output_api_key_secret_arn) | The ARN of the API key secret in Secrets Manager |
| ---- | ----------- |
| <a name="output_api_gateway_id"></a> [api\_gateway\_id](#output\_api\_gateway\_id) | The ID of the API Gateway |
| <a name="output_api_gateway_invoke_url"></a> [api\_gateway\_invoke\_url](#output\_api\_gateway\_invoke\_url) | The invoke URL of the API Gateway stage |
| <a name="output_api_gateway_url"></a> [api\_gateway\_url](#output\_api\_gateway\_url) | The URL of the API Gateway custom domain |
| <a name="output_api_key_id"></a> [api\_key\_id](#output\_api\_key\_id) | The ID of the API key |
| <a name="output_api_key_secret_arn"></a> [api\_key\_secret\_arn](#output\_api\_key\_secret\_arn) | The ARN of the API key secret in Secrets Manager |
<!-- END_TF_DOCS -->
<!-- vale on -->
Loading
Loading