Skip to content

Commit 48ffc9a

Browse files
committed
Merge branch 'VED-26-permissions-api' of https://github.com/NHSDigital/immunisation-fhir-api into VED-26-permissions-api
final merge with local branch
2 parents 61e7065 + f4a1aee commit 48ffc9a

File tree

7 files changed

+48
-23
lines changed

7 files changed

+48
-23
lines changed

backend/src/models/utils/permission_checker.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def _expand_permissions(permissions: list[str]) -> dict[str, list[ApiOperationCo
2323
def validate_permissions(permissions: list[str], operation: ApiOperationCode, vaccine_types: list[str]):
2424
expanded_permissions = _expand_permissions(permissions)
2525
print(f"operation: {operation}, expanded_permissions: {expanded_permissions}, vaccine_types: {vaccine_types}")
26-
return all([
26+
return all(
2727
operation in expanded_permissions.get(vaccine_type.lower(), [])
2828
for vaccine_type in vaccine_types
29-
])
29+
)

terraform/.terraform.lock.hcl

Lines changed: 16 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

terraform/ecs_batch_processor_config.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -334,7 +334,7 @@ resource "aws_pipes_pipe" "fifo_pipe" {
334334
launch_type = "FARGATE"
335335
network_configuration {
336336
aws_vpc_configuration {
337-
subnets = data.aws_subnets.default.ids
337+
subnets = local.private_subnet_ids
338338
assign_public_ip = "ENABLED"
339339
}
340340
}

terraform/endpoints.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ module "imms_event_endpoint_lambdas" {
6666
image_uri = module.docker_image.image_uri
6767
policy_json = data.aws_iam_policy_document.imms_policy_document.json
6868
environments = local.imms_lambda_env_vars
69-
vpc_subnet_ids = data.aws_subnets.default.ids
69+
vpc_subnet_ids = local.private_subnet_ids
7070
vpc_security_group_ids = [data.aws_security_group.existing_securitygroup.id]
7171
}
7272

terraform/file_name_processor.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ resource "aws_lambda_function" "file_processor_lambda" {
276276
timeout = 360
277277

278278
vpc_config {
279-
subnet_ids = data.aws_subnets.default.ids
279+
subnet_ids = local.private_subnet_ids
280280
security_group_ids = [data.aws_security_group.existing_securitygroup.id]
281281
}
282282

terraform/redis_sync_lambda.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ resource "aws_lambda_function" "redis_sync_lambda" {
224224
timeout = 360
225225

226226
vpc_config {
227-
subnet_ids = data.aws_subnets.default.ids
227+
subnet_ids = local.private_subnet_ids
228228
security_group_ids = [data.aws_security_group.existing_securitygroup.id]
229229
}
230230

terraform/variables.tf

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,44 @@ locals {
3131
create_config_bucket = local.environment == local.config_bucket_env
3232
config_bucket_arn = local.create_config_bucket ? aws_s3_bucket.batch_config_bucket[0].arn : data.aws_s3_bucket.existing_config_bucket[0].arn
3333
config_bucket_name = local.create_config_bucket ? aws_s3_bucket.batch_config_bucket[0].bucket : data.aws_s3_bucket.existing_config_bucket[0].bucket
34+
35+
# Public subnet - The subnet has a direct route to an internet gateway. Resources in a public subnet can access the public internet.
36+
# public_subnet_ids = [for k, v in data.aws_route.internet_traffic_route_by_subnet : k if length(v.gateway_id) > 0]
37+
# Private subnet - The subnet does not have a direct route to an internet gateway. Resources in a private subnet require a NAT device to access the public internet.
38+
private_subnet_ids = [for k, v in data.aws_route.internet_traffic_route_by_subnet : k if length(v.nat_gateway_id) > 0]
39+
}
40+
41+
check "private_subnets" {
42+
assert {
43+
condition = length(local.private_subnet_ids) > 0
44+
error_message = "No private subnets with internet access found in VPC ${data.aws_vpc.default.id}"
45+
}
3446
}
3547

3648
data "aws_vpc" "default" {
3749
default = true
3850
}
3951

40-
data "aws_subnets" "default" {
52+
data "aws_subnets" "all" {
4153
filter {
4254
name = "vpc-id"
4355
values = [data.aws_vpc.default.id]
4456
}
4557
}
4658

59+
data "aws_route_table" "route_table_by_subnet" {
60+
for_each = toset(data.aws_subnets.all.ids)
61+
62+
subnet_id = each.value
63+
}
64+
65+
data "aws_route" "internet_traffic_route_by_subnet" {
66+
for_each = data.aws_route_table.route_table_by_subnet
67+
68+
route_table_id = each.value.id
69+
destination_cidr_block = "0.0.0.0/0"
70+
}
71+
4772
data "aws_kms_key" "existing_s3_encryption_key" {
4873
key_id = "alias/imms-batch-s3-shared-key"
4974
}

0 commit comments

Comments
 (0)