From cf2ba7be51e478bc51f70856aa9c63a7fd50c29f Mon Sep 17 00:00:00 2001 From: Adam Moussa Date: Fri, 14 Aug 2026 12:49:31 -0400 Subject: [PATCH] fix(terraform): codify dynamodb pitr and deletion protection --- terraform/po_ddb.tf | 18 ++++++++++++++++++ terraform/wo_ddb.tf | 12 ++++++++++++ 2 files changed, 30 insertions(+) diff --git a/terraform/po_ddb.tf b/terraform/po_ddb.tf index 0091316..8807a64 100644 --- a/terraform/po_ddb.tf +++ b/terraform/po_ddb.tf @@ -3,6 +3,8 @@ resource "aws_dynamodb_table" "purchase_orders" { billing_mode = "PAY_PER_REQUEST" hash_key = "po_number" + deletion_protection_enabled = true + attribute { name = "po_number" type = "S" @@ -16,6 +18,10 @@ resource "aws_dynamodb_table" "purchase_orders" { kms_key_arn = data.aws_ssm_parameter.dynamodb_cmk_arn.value } + point_in_time_recovery { + enabled = true + } + lifecycle { prevent_destroy = true } @@ -26,11 +32,17 @@ resource "aws_dynamodb_table" "verified_sites" { billing_mode = "PAY_PER_REQUEST" hash_key = "siteCode" + deletion_protection_enabled = true + attribute { name = "siteCode" type = "S" } + point_in_time_recovery { + enabled = true + } + lifecycle { prevent_destroy = true } @@ -41,11 +53,17 @@ resource "aws_dynamodb_table" "pending_site_review" { billing_mode = "PAY_PER_REQUEST" hash_key = "po_number" + deletion_protection_enabled = true + attribute { name = "po_number" type = "S" } + point_in_time_recovery { + enabled = true + } + lifecycle { prevent_destroy = true } diff --git a/terraform/wo_ddb.tf b/terraform/wo_ddb.tf index 6626633..f9de155 100644 --- a/terraform/wo_ddb.tf +++ b/terraform/wo_ddb.tf @@ -5,6 +5,8 @@ resource "aws_dynamodb_table" "work_orders_kebab" { billing_mode = "PAY_PER_REQUEST" hash_key = "work_order_id" + deletion_protection_enabled = true + attribute { name = "work_order_id" type = "S" @@ -13,6 +15,10 @@ resource "aws_dynamodb_table" "work_orders_kebab" { stream_enabled = true stream_view_type = "NEW_AND_OLD_IMAGES" + point_in_time_recovery { + enabled = true + } + lifecycle { prevent_destroy = true } @@ -24,6 +30,8 @@ resource "aws_dynamodb_table" "work_order_comments_kebab" { hash_key = "work_order_id" range_key = "comment_id" + deletion_protection_enabled = true + attribute { name = "work_order_id" type = "S" @@ -37,6 +45,10 @@ resource "aws_dynamodb_table" "work_order_comments_kebab" { stream_enabled = true stream_view_type = "NEW_AND_OLD_IMAGES" + point_in_time_recovery { + enabled = true + } + lifecycle { prevent_destroy = true }