From f0207796df285b35bb04f15442d44beb0fc3a352 Mon Sep 17 00:00:00 2001 From: badra001 Date: Thu, 14 Aug 2025 16:35:45 -0400 Subject: [PATCH] - 1.0.1 -- 2025-08-14 - add response.text to errors for notify lamba code --- CHANGELOG.md | 3 +++ code/darhts-guardduty-notify.py | 4 ++-- code/darhts-guardduty-notify.zip | Bin 3621 -> 3632 bytes code/darhts-s3-notify.py | 4 ++-- code/darhts-s3-notify.zip | Bin 3578 -> 3589 bytes code/package.move.tf | 8 ++++---- code/package.notify.tf | 2 +- code/package.s3-tag.tf | 2 +- code/package.s3.tf | 2 +- version.tf | 2 +- 10 files changed, 15 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 60b9a8d..8f8dca5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,3 +3,6 @@ - 1.0.0 -- 2025-08-13 - initial creation +- 1.0.1 -- 2025-08-14 + - add response.text to errors for notify lamba code + diff --git a/code/darhts-guardduty-notify.py b/code/darhts-guardduty-notify.py index fbfa70c..d05d2e0 100755 --- a/code/darhts-guardduty-notify.py +++ b/code/darhts-guardduty-notify.py @@ -40,7 +40,7 @@ def boolean_env(value): APPNAME = 'darhts-guardduty-notify' account_id = None region = None -VERSION = '1.0.16' +VERSION = '1.0.17' #TF_MODULE_VERSION=os.environ.get('TF_MODULE_VERSION','') logger_level=os.environ.get('POWERTOOLS_LOG_LEVEL', 'INFO') @@ -306,7 +306,7 @@ def send_to_salesforce(event_payload): if response: logger.debug(f"Successfully sent event to Salesforce. Response: {response.status_code}") else: - logger.debug(f"Salesforce send-event Response: {response.status_code}") + logger.debug(f"Salesforce send-event Response: status {response.status_code} text {response.text}") response.raise_for_status() except requests.exceptions.HTTPError as e: logger.error(f'HTTP error: {e}') diff --git a/code/darhts-guardduty-notify.zip b/code/darhts-guardduty-notify.zip index 62f172621ce4d1b894876b4c69296eb14bcb51ba..8d0afd191f1d76975f9d07159729d85d3bcfb07d 100644 GIT binary patch delta 3528 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 C$=E#r delta 3517 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 diff --git a/code/darhts-s3-notify.py b/code/darhts-s3-notify.py index 135eebc..8810351 100755 --- a/code/darhts-s3-notify.py +++ b/code/darhts-s3-notify.py @@ -41,7 +41,7 @@ def boolean_env(value): APPNAME = 'darhts-s3-notify' account_id = None region = None -VERSION = '1.0.5' +VERSION = '1.0.6' #TF_MODULE_VERSION=os.environ.get('TF_MODULE_VERSION','') logger_level=os.environ.get('POWERTOOLS_LOG_LEVEL', 'INFO') @@ -308,7 +308,7 @@ def send_to_salesforce(event_payload): if response: logger.debug(f"Successfully sent event to Salesforce. Response: {response.status_code}") else: - logger.debug(f"Salesforce send-event Response: {response.status_code}") + logger.debug(f"Salesforce send-event Response: status {response.status_code} text {response.text}") response.raise_for_status() except requests.exceptions.HTTPError as e: logger.error(f'HTTP error: {e}') diff --git a/code/darhts-s3-notify.zip b/code/darhts-s3-notify.zip index cbe2f8d5dc7d88d70ca4f5db37d355a9cc132788..88c6474c5546e739e5f9547f4222b052e10a9b93 100644 GIT binary patch delta 3170 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πr%uI!7h%uLqdI?uOB(0Z-K{>3Jx<7);52Fs zq`s(r&V1AfKNB;=Y9Uj(yv_GM`1uh=yVQSresNKmKTWl%Dm1+l0c9P_q$jhC1&Rp?5P z&`-FPsfK^8*yFN~IV*T%V0&RM*H{11QUW%*jG8mq4x`4h>@@7}zp{6z9nvz_DP)~z z*+E?`vhCC(SU6f|3S!S$&(_%m%hH?FU1mOc{|tvq1vdQus$l;w00960P)i30mU#j0 wVhsQQ8!i9