diff --git a/services/blob/src/constants.rs b/services/blob/src/constants.rs --- a/services/blob/src/constants.rs +++ b/services/blob/src/constants.rs @@ -20,6 +20,9 @@ pub const UNCHECKED_INDEX_PARTITION_KEY: &str = ATTR_UNCHECKED; pub const UNCHECKED_INDEX_SORT_KEY: &str = ATTR_LAST_MODIFIED; + pub const HOLDER_TAG_INDEX_NAME: &str = "holder-tag-index"; + pub const HOLDER_TAG_INDEX_KEY_ATTR: &str = ATTR_INDEXED_TAG; + /// attribute names pub const ATTR_BLOB_HASH: &str = "blob_hash"; pub const ATTR_HOLDER: &str = "holder"; diff --git a/services/terraform/modules/shared/dynamodb.tf b/services/terraform/modules/shared/dynamodb.tf --- a/services/terraform/modules/shared/dynamodb.tf +++ b/services/terraform/modules/shared/dynamodb.tf @@ -83,6 +83,11 @@ type = "S" } + attribute { + name = "indexed_tag" + type = "S" + } + global_secondary_index { name = "unchecked-index" hash_key = "unchecked" @@ -90,6 +95,12 @@ projection_type = "KEYS_ONLY" } + global_secondary_index { + name = "holder-tag-index" + hash_key = "indexed_tag" + projection_type = "KEYS_ONLY" + } + point_in_time_recovery { enabled = local.pitr_enabled }