Skip to content

Commit 2ba721b

Browse files
Eliesmbrshahargl
andauthored
fix: pop Keep-internal kwargs in BaseProvider before passing to providers (#5732)
Co-authored-by: Shahar Glazner <shaharglazner@gmail.com>
1 parent fa83853 commit 2ba721b

3 files changed

Lines changed: 8 additions & 7 deletions

File tree

keep/providers/base/base_provider.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -187,14 +187,16 @@ def notify(self, **kwargs):
187187
Args:
188188
**kwargs (dict): The provider context (with statement)
189189
"""
190-
# TODO: pop enrich_event from kwargs to handle it more elegantly then in every provider (http, webhook, etc.)
190+
# Pop Keep-internal fields before passing kwargs to the provider
191+
enrich_alert = kwargs.pop("enrich_alert", [])
192+
enrich_incident = kwargs.pop("enrich_incident", [])
193+
audit_enabled = bool(kwargs.pop("audit_enabled", True))
191194
# trigger the provider
192195
results = self._notify(**kwargs)
193196
self.results.append(results)
194197
# if the alert should be enriched, enrich it
195-
enrich_event = kwargs.get("enrich_alert", kwargs.get("enrich_incident", []))
198+
enrich_event = enrich_alert or enrich_incident
196199
if enrich_event:
197-
audit_enabled = bool(kwargs.get("audit_enabled", True))
198200
self._enrich(enrich_event, results, audit_enabled=audit_enabled)
199201

200202
return results if results else None
@@ -384,6 +386,9 @@ def _query(self, **kwargs: dict):
384386
raise NotImplementedError("query() method not implemented")
385387

386388
def query(self, **kwargs: dict):
389+
# Pop Keep-internal fields before passing kwargs to the provider
390+
enrich_alert = kwargs.pop("enrich_alert", [])
391+
audit_enabled = bool(kwargs.pop("audit_enabled", True))
387392
# just run the query
388393
results = self._query(**kwargs)
389394
self.results.append(results)
@@ -393,9 +398,7 @@ def query(self, **kwargs: dict):
393398
elif results:
394399
self.context_manager.dependencies.add(results.__class__)
395400

396-
enrich_alert = kwargs.get("enrich_alert", [])
397401
if enrich_alert:
398-
audit_enabled = bool(kwargs.get("audit_enabled", True))
399402
self._enrich(enrich_alert, results, audit_enabled=audit_enabled)
400403
# and return the results
401404
return results

keep/providers/http_provider/http_provider.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,6 @@ def _query(
100100
params = {}
101101

102102
extra_args = copy.deepcopy(kwargs)
103-
extra_args.pop("enrich_alert", None)
104103

105104
# todo: this might be problematic if params/body/headers contain sensitive data
106105
# think about changing those debug messages or adding a flag to enable/disable them

keep/providers/webhook_provider/webhook_provider.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,6 @@ def _query(
200200
params = {}
201201

202202
extra_args = copy.deepcopy(kwargs)
203-
extra_args.pop("enrich_alert", None)
204203
verify = extra_args.pop("verify", self.authentication_config.verify)
205204

206205
if http_basic_authentication_username and http_basic_authentication_password:

0 commit comments

Comments
 (0)