From a41f3fc6892aa7c7d7a1cafa38764adec1aac9a9 Mon Sep 17 00:00:00 2001 From: Igor Abdrakhimov Date: Tue, 4 Aug 2026 10:14:51 -0700 Subject: [PATCH] Handle logging sensitive data --- awsiot/greengrasscoreipc/model.py | 42 +++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/awsiot/greengrasscoreipc/model.py b/awsiot/greengrasscoreipc/model.py index f2d34508..a188cb3e 100644 --- a/awsiot/greengrasscoreipc/model.py +++ b/awsiot/greengrasscoreipc/model.py @@ -886,9 +886,13 @@ def _model_name(cls): def __repr__(self): attrs = [] + sensitive_attrs = {'private_key', 'public_key', 'certificate', 'ca_certificates'} for attr, val in self.__dict__.items(): if val is not None: - attrs.append('%s=%r' % (attr, val)) + if attr in sensitive_attrs: + attrs.append('%s=*** REDACTED ***' % attr) + else: + attrs.append('%s=%r' % (attr, val)) return '%s(%s)' % (self.__class__.__name__, ', '.join(attrs)) def __eq__(self, other): @@ -1117,9 +1121,13 @@ def _model_name(cls): def __repr__(self): attrs = [] + sensitive_attrs = {'password'} for attr, val in self.__dict__.items(): if val is not None: - attrs.append('%s=%r' % (attr, val)) + if attr in sensitive_attrs: + attrs.append('%s=*** REDACTED ***' % attr) + else: + attrs.append('%s=%r' % (attr, val)) return '%s(%s)' % (self.__class__.__name__, ', '.join(attrs)) def __eq__(self, other): @@ -1646,9 +1654,13 @@ def _model_name(cls): def __repr__(self): attrs = [] + sensitive_attrs = {'secret_string', 'secret_binary'} for attr, val in self.__dict__.items(): if val is not None: - attrs.append('%s=%r' % (attr, val)) + if attr in sensitive_attrs: + attrs.append('%s=*** REDACTED ***' % attr) + else: + attrs.append('%s=%r' % (attr, val)) return '%s(%s)' % (self.__class__.__name__, ', '.join(attrs)) def __eq__(self, other): @@ -1888,9 +1900,13 @@ def _model_name(cls): def __repr__(self): attrs = [] + sensitive_attrs = {'certificate_update'} for attr, val in self.__dict__.items(): if val is not None: - attrs.append('%s=%r' % (attr, val)) + if attr in sensitive_attrs: + attrs.append('%s=*** REDACTED ***' % attr) + else: + attrs.append('%s=%r' % (attr, val)) return '%s(%s)' % (self.__class__.__name__, ', '.join(attrs)) def __eq__(self, other): @@ -3732,9 +3748,13 @@ def _model_name(cls): def __repr__(self): attrs = [] + sensitive_attrs = {'secret_value'} for attr, val in self.__dict__.items(): if val is not None: - attrs.append('%s=%r' % (attr, val)) + if attr in sensitive_attrs: + attrs.append('%s=*** REDACTED ***' % attr) + else: + attrs.append('%s=%r' % (attr, val)) return '%s(%s)' % (self.__class__.__name__, ', '.join(attrs)) def __eq__(self, other): @@ -4950,9 +4970,13 @@ def _model_name(cls): def __repr__(self): attrs = [] + sensitive_attrs = {'password'} for attr, val in self.__dict__.items(): if val is not None: - attrs.append('%s=%r' % (attr, val)) + if attr in sensitive_attrs: + attrs.append('%s=*** REDACTED ***' % attr) + else: + attrs.append('%s=%r' % (attr, val)) return '%s(%s)' % (self.__class__.__name__, ', '.join(attrs)) def __eq__(self, other): @@ -5662,9 +5686,13 @@ def _model_name(cls): def __repr__(self): attrs = [] + sensitive_attrs = {'client_device_auth_token'} for attr, val in self.__dict__.items(): if val is not None: - attrs.append('%s=%r' % (attr, val)) + if attr in sensitive_attrs: + attrs.append('%s=*** REDACTED ***' % attr) + else: + attrs.append('%s=%r' % (attr, val)) return '%s(%s)' % (self.__class__.__name__, ', '.join(attrs)) def __eq__(self, other):