django-activity-audit 1.3.0.dev21__tar.gz → 1.3.0.dev22__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/PKG-INFO +1 -1
  2. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/activity_audit/config.py +2 -0
  3. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/activity_audit/shared_processors.py +71 -0
  4. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/pyproject.toml +1 -1
  5. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/.claude/settings.local.json +0 -0
  6. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/.gitignore +0 -0
  7. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/.pre-commit-config.yaml +0 -0
  8. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/LICENSE +0 -0
  9. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/MANIFEST.in +0 -0
  10. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/README.md +0 -0
  11. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/README.rst +0 -0
  12. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/activity_audit/__init__.py +0 -0
  13. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/activity_audit/apps.py +0 -0
  14. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/activity_audit/constants.py +0 -0
  15. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/activity_audit/formatters.py +0 -0
  16. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/activity_audit/handlers.py +0 -0
  17. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/activity_audit/logger_levels.py +0 -0
  18. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/activity_audit/middleware.py +0 -0
  19. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/activity_audit/protocols.py +0 -0
  20. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/activity_audit/settings.py +0 -0
  21. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/activity_audit/signals.py +0 -0
  22. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/activity_audit/unregistered.py +0 -0
  23. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/activity_audit/utils.py +0 -0
  24. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/docs/django-activity-audit.md +0 -0
  25. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/docs/hipaa-audit-gaps.md +0 -0
  26. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/docs/improvements.md +0 -0
  27. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/docs/structlog-integration.md +0 -0
  28. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/docs/user-activity-feed-plan.md +0 -0
  29. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/hatch +0 -0
  30. {django_activity_audit-1.3.0.dev21 → django_activity_audit-1.3.0.dev22}/pytest.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-activity-audit
3
- Version: 1.3.0.dev21
3
+ Version: 1.3.0.dev22
4
4
  Summary: A Django package for easy CRUD operation logging and container logs
5
5
  Project-URL: Homepage, https://github.com/shree256/django-activity-audit
6
6
  Project-URL: Repository, https://github.com/shree256/django-activity-audit
@@ -4,6 +4,7 @@ from activity_audit.shared_processors import (
4
4
  _json_default,
5
5
  _orjson_dumps,
6
6
  shared_processors,
7
+ trim_log_fields,
7
8
  )
8
9
 
9
10
 
@@ -46,6 +47,7 @@ def get_stdlib_formatter() -> dict:
46
47
  "()": structlog.stdlib.ProcessorFormatter,
47
48
  "processors": [
48
49
  structlog.stdlib.ProcessorFormatter.remove_processors_meta,
50
+ trim_log_fields,
49
51
  structlog.processors.JSONRenderer(
50
52
  serializer=_orjson_dumps, default=_json_default
51
53
  ),
@@ -82,6 +82,77 @@ def _add_log_type(logger, method, event_dict):
82
82
  return event_dict
83
83
 
84
84
 
85
+ _APP_FIELDS = frozenset(
86
+ {
87
+ "timestamp",
88
+ "level",
89
+ "name",
90
+ "message",
91
+ "log_type",
92
+ "filename",
93
+ "func_name",
94
+ "request_id",
95
+ "exception",
96
+ "extra",
97
+ }
98
+ )
99
+
100
+ _AUDIT_FIELDS = frozenset(
101
+ {
102
+ "timestamp",
103
+ "level",
104
+ "name",
105
+ "message",
106
+ "log_type",
107
+ "model",
108
+ "event_type",
109
+ "request_id",
110
+ "instance_id",
111
+ "instance_repr",
112
+ "user_id",
113
+ "user_info",
114
+ "extra",
115
+ }
116
+ )
117
+
118
+ _API_FIELDS = frozenset(
119
+ {
120
+ "timestamp",
121
+ "level",
122
+ "name",
123
+ "message",
124
+ "log_type",
125
+ "service_name",
126
+ "request_type",
127
+ "protocol",
128
+ "request_id",
129
+ "user_id",
130
+ "user_info",
131
+ "request_repr",
132
+ "response_repr",
133
+ "error_message",
134
+ "execution_time",
135
+ "extra",
136
+ }
137
+ )
138
+
139
+ _FIELDS_BY_LOG_TYPE = {
140
+ LogType.APP: _APP_FIELDS,
141
+ LogType.CELERYBEAT: _APP_FIELDS,
142
+ LogType.CELERYWORKER: _APP_FIELDS,
143
+ LogType.AUDIT: _AUDIT_FIELDS,
144
+ LogType.API: _API_FIELDS,
145
+ }
146
+
147
+
148
+ def trim_log_fields(logger, method, event_dict):
149
+ """Keep only the required fields for each log type."""
150
+ allowed = _FIELDS_BY_LOG_TYPE.get(event_dict.get("log_type"))
151
+ if allowed is not None:
152
+ return {k: v for k, v in event_dict.items() if k in allowed}
153
+ return event_dict
154
+
155
+
85
156
  _STANDARD_KEYS = frozenset(
86
157
  {
87
158
  "timestamp",
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "django-activity-audit"
3
- version = "1.3.0.dev21"
3
+ version = "1.3.0.dev22"
4
4
  description = "A Django package for easy CRUD operation logging and container logs"
5
5
  authors = [
6
6
  { name = "Shreeshan", email = "shreeshan256@gmail.com" }