GitHub user user1500177 edited a comment on the discussion: How to Mask
Passwords in Superset Action Log (DatabaseRestApi.import_)
@dosu
NO it seems to be working fine with this code and such masking is also
appeining inside the json field as show nin the screenshot
CODE
class MaskPasswordsEventLogger(DBEventLogger):
def _mask_sensitive(self, data):
try:
if isinstance(data, dict):
return {
k: (
"***MASKED***" if k.lower() in {"password",
"passwords", "db_password", "access_token", "secret"}
else self._mask_sensitive(v)
)
for k, v in data.items()
}
elif isinstance(data, list):
return [self._mask_sensitive(item) for item in data]
else:
return data
except Exception as e:
import logging
logging.warning(f"Error masking sensitive data: {e}")
return data
def log(self, user_id, action, *args, **kwargs):
try:
# Mask sensitive fields in kwargs before passing to DBEventLogger
masked_kwargs = self._mask_sensitive(kwargs)
super().log(user_id, action, *args, **masked_kwargs)
except Exception as e:
import logging
logging.warning(f"Error in custom event logger: {e}")
EVENT_LOGGER = MaskPasswordsEventLogger()
<img width="1376" height="157" alt="image"
src="https://github.com/user-attachments/assets/de38887a-7dbc-4752-8350-988d7e4c7e9f"
/>
GitHub link:
https://github.com/apache/superset/discussions/35415#discussioncomment-14580760
----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]