Skip to content

Commit 5b95bd3

Browse files
committed
redefine audit table
1 parent da9a81f commit 5b95bd3

File tree

9 files changed

+68
-20
lines changed

9 files changed

+68
-20
lines changed

infrastructure/instance/dynamodb.tf

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,36 @@ resource "aws_dynamodb_table" "audit-table" {
2424
type = "S"
2525
}
2626

27+
attribute {
28+
name = "error_details"
29+
type = "S"
30+
}
31+
32+
attribute {
33+
name = "created_at"
34+
type = "S"
35+
}
36+
37+
attribute {
38+
name = "completed_at"
39+
type = "S"
40+
}
41+
42+
attribute {
43+
name = "record_count"
44+
type = "N"
45+
}
46+
47+
attribute {
48+
name = "records_succeeded"
49+
type = "N"
50+
}
51+
52+
attribute {
53+
name = "records_failed"
54+
type = "N"
55+
}
56+
2757
ttl {
2858
attribute_name = "expires_at"
2959
enabled = true

lambdas/ack_backend/src/constants.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,17 @@ class FileStatus:
3232
class AuditTableKeys:
3333
"""Audit table keys"""
3434

35-
FILENAME = "filename"
3635
MESSAGE_ID = "message_id"
36+
FILENAME = "filename"
3737
QUEUE_NAME = "queue_name"
38-
RECORD_COUNT = "record_count"
3938
STATUS = "status"
40-
TIMESTAMP = "timestamp"
39+
ERROR_DETAILS = "error_details"
40+
CREATED_AT = "created_at"
41+
COMPLETED_AT = "completed_at"
42+
RECORD_COUNT = "record_count"
43+
RECORDS_SUCCEEDED = "records_succeeded"
44+
RECORDS_FAILED = "records_failed"
45+
EXPIRES_AT = "expires_at"
4146

4247

4348
ACK_HEADERS = [

lambdas/batch_processor_filter/src/constants.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,14 @@ class FileNotProcessedReason(StrEnum):
3030
class AuditTableKeys(StrEnum):
3131
"""Audit table keys"""
3232

33-
FILENAME = "filename"
3433
MESSAGE_ID = "message_id"
34+
FILENAME = "filename"
3535
QUEUE_NAME = "queue_name"
3636
STATUS = "status"
37-
TIMESTAMP = "timestamp"
3837
ERROR_DETAILS = "error_details"
38+
CREATED_AT = "created_at"
39+
COMPLETED_AT = "completed_at"
40+
RECORD_COUNT = "record_count"
41+
RECORDS_SUCCEEDED = "records_succeeded"
42+
RECORDS_FAILED = "records_failed"
43+
EXPIRES_AT = "expires_at"

lambdas/filenameprocessor/src/audit_table.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def upsert_audit_table(
2525
AuditTableKeys.FILENAME: {"S": file_key},
2626
AuditTableKeys.QUEUE_NAME: {"S": queue_name},
2727
AuditTableKeys.STATUS: {"S": file_status},
28-
AuditTableKeys.TIMESTAMP: {"S": created_at_formatted_str},
28+
AuditTableKeys.CREATED_AT: {"S": created_at_formatted_str},
2929
AuditTableKeys.EXPIRES_AT: {"N": str(expiry_timestamp)},
3030
}
3131

lambdas/filenameprocessor/src/constants.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,14 @@ class FileNotProcessedReason(StrEnum):
5454
class AuditTableKeys(StrEnum):
5555
"""Audit table keys"""
5656

57-
FILENAME = "filename"
5857
MESSAGE_ID = "message_id"
58+
FILENAME = "filename"
5959
QUEUE_NAME = "queue_name"
6060
STATUS = "status"
61-
TIMESTAMP = "timestamp"
62-
EXPIRES_AT = "expires_at"
6361
ERROR_DETAILS = "error_details"
62+
CREATED_AT = "created_at"
63+
COMPLETED_AT = "completed_at"
64+
RECORD_COUNT = "record_count"
65+
RECORDS_SUCCEEDED = "records_succeeded"
66+
RECORDS_FAILED = "records_failed"
67+
EXPIRES_AT = "expires_at"

lambdas/filenameprocessor/tests/test_lambda_handler.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ def test_lambda_handler_extended_attributes_success(self):
303303
item[AuditTableKeys.QUEUE_NAME]["S"], test_cases[0].ods_code + "_" + EXTENDED_ATTRIBUTES_VACC_TYPE
304304
)
305305
self.assertEqual(item[AuditTableKeys.STATUS]["S"], "Processed")
306-
self.assertEqual(item[AuditTableKeys.TIMESTAMP]["S"], test_cases[0].created_at_formatted_string)
306+
self.assertEqual(item[AuditTableKeys.CREATED_AT]["S"], test_cases[0].created_at_formatted_string)
307307
self.assertEqual(item[AuditTableKeys.EXPIRES_AT]["N"], str(test_cases[0].expires_at))
308308
# File should be moved to destination/
309309
dest_key = f"dps_destination/{test_cases[0].file_key}"
@@ -356,7 +356,7 @@ def test_lambda_handler_extended_attributes_failure(self):
356356
self.assertEqual(
357357
item[AuditTableKeys.QUEUE_NAME]["S"], test_cases[0].ods_code + "_" + EXTENDED_ATTRIBUTES_VACC_TYPE
358358
)
359-
self.assertEqual(item[AuditTableKeys.TIMESTAMP]["S"], test_cases[0].created_at_formatted_string)
359+
self.assertEqual(item[AuditTableKeys.CREATED_AT]["S"], test_cases[0].created_at_formatted_string)
360360
self.assertEqual(item[AuditTableKeys.STATUS]["S"], "Failed")
361361
self.assertEqual(
362362
item[AuditTableKeys.ERROR_DETAILS]["S"],
@@ -418,7 +418,7 @@ def test_lambda_handler_extended_attributes_invalid_key(self):
418418
self.assertEqual(item[AuditTableKeys.MESSAGE_ID]["S"], test_cases[0].message_id)
419419
self.assertEqual(item[AuditTableKeys.FILENAME]["S"], invalid_file_key)
420420
self.assertEqual(item[AuditTableKeys.QUEUE_NAME]["S"], "unknown")
421-
self.assertEqual(item[AuditTableKeys.TIMESTAMP]["S"], test_cases[0].created_at_formatted_string)
421+
self.assertEqual(item[AuditTableKeys.CREATED_AT]["S"], test_cases[0].created_at_formatted_string)
422422
self.assertEqual(item[AuditTableKeys.STATUS]["S"], "Failed")
423423
self.assertEqual(
424424
item[AuditTableKeys.ERROR_DETAILS]["S"],
@@ -474,7 +474,7 @@ def test_lambda_invalid_file_key_no_other_files_in_queue(self, mock_get_redis_cl
474474
"queue_name": {"S": "unknown_unknown"},
475475
"status": {"S": "Failed"},
476476
"error_details": {"S": "Initial file validation failed: invalid file key"},
477-
"timestamp": {"S": file_details.created_at_formatted_string},
477+
"created_at": {"S": file_details.created_at_formatted_string},
478478
"expires_at": {"N": str(file_details.expires_at)},
479479
}
480480
]
@@ -517,7 +517,7 @@ def test_lambda_invalid_permissions(self, mock_get_redis_client):
517517
"queue_name": {"S": "RAVS_RSV"},
518518
"status": {"S": "Not processed - Unauthorised"},
519519
"error_details": {"S": "Initial file validation failed: RAVS does not have permissions for RSV"},
520-
"timestamp": {"S": file_details.created_at_formatted_string},
520+
"created_at": {"S": file_details.created_at_formatted_string},
521521
"expires_at": {"N": str(file_details.expires_at)},
522522
}
523523
]
@@ -561,7 +561,7 @@ def test_lambda_adds_event_to_audit_table_as_failed_when_unexpected_exception_is
561561
"queue_name": {"S": "EMIS_FLU"},
562562
"status": {"S": "Failed"},
563563
"error_details": {"S": "Some unexpected exception"},
564-
"timestamp": {"S": test_file_details.created_at_formatted_string},
564+
"created_at": {"S": test_file_details.created_at_formatted_string},
565565
"expires_at": {"N": str(test_file_details.expires_at)},
566566
}
567567
]

lambdas/filenameprocessor/tests/utils_for_tests/values_for_tests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def __init__(
7676
AuditTableKeys.MESSAGE_ID: {"S": self.message_id},
7777
AuditTableKeys.FILENAME: {"S": self.file_key},
7878
AuditTableKeys.QUEUE_NAME: {"S": self.queue_name},
79-
AuditTableKeys.TIMESTAMP: {"S": self.created_at_formatted_string},
79+
AuditTableKeys.CREATED_AT: {"S": self.created_at_formatted_string},
8080
AuditTableKeys.EXPIRES_AT: {"N": str(self.expires_at)},
8181
}
8282

lambdas/recordprocessor/src/constants.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,17 @@ class FileNotProcessedReason(StrEnum):
7171
class AuditTableKeys:
7272
"""Audit table keys"""
7373

74-
FILENAME = "filename"
7574
MESSAGE_ID = "message_id"
75+
FILENAME = "filename"
7676
QUEUE_NAME = "queue_name"
77-
RECORD_COUNT = "record_count"
7877
STATUS = "status"
79-
TIMESTAMP = "timestamp"
8078
ERROR_DETAILS = "error_details"
79+
CREATED_AT = "created_at"
80+
COMPLETED_AT = "completed_at"
81+
RECORD_COUNT = "record_count"
82+
RECORDS_SUCCEEDED = "records_succeeded"
83+
RECORDS_FAILED = "records_failed"
84+
EXPIRES_AT = "expires_at"
8185

8286

8387
class Diagnostics:

lambdas/recordprocessor/tests/utils_for_recordprocessor_tests/values_for_recordprocessor_tests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ def __init__(self, vaccine_type: str, supplier: str, ods_code: str, file_number:
197197
AuditTableKeys.MESSAGE_ID: {"S": self.message_id},
198198
AuditTableKeys.FILENAME: {"S": self.file_key},
199199
AuditTableKeys.QUEUE_NAME: {"S": self.queue_name},
200-
AuditTableKeys.TIMESTAMP: {"S": self.created_at_formatted_string},
200+
AuditTableKeys.CREATED_AT: {"S": self.created_at_formatted_string},
201201
}
202202

203203

0 commit comments

Comments
 (0)