howler-api 3.4.0.dev933__py3-none-any.whl → 3.4.0.dev950__py3-none-any.whl
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.
- howler/helper/discover.py +4 -1
- howler/odm/helper.py +1 -1
- howler/odm/models/config.py +14 -0
- howler/security/utils.py +2 -2
- {howler_api-3.4.0.dev933.dist-info → howler_api-3.4.0.dev950.dist-info}/METADATA +2 -2
- {howler_api-3.4.0.dev933.dist-info → howler_api-3.4.0.dev950.dist-info}/RECORD +8 -8
- {howler_api-3.4.0.dev933.dist-info → howler_api-3.4.0.dev950.dist-info}/WHEEL +0 -0
- {howler_api-3.4.0.dev933.dist-info → howler_api-3.4.0.dev950.dist-info}/entry_points.txt +0 -0
howler/helper/discover.py
CHANGED
|
@@ -17,6 +17,9 @@ def get_apps_list(discovery_url: Optional[str]) -> list[dict[str, str]]:
|
|
|
17
17
|
Returns:
|
|
18
18
|
list[dict[str, str]]: A list of other apps
|
|
19
19
|
"""
|
|
20
|
+
if not config.discovery.enabled or discovery_url is None:
|
|
21
|
+
return []
|
|
22
|
+
|
|
20
23
|
if discovery_url not in DISCO_CACHE:
|
|
21
24
|
apps = []
|
|
22
25
|
|
|
@@ -25,7 +28,7 @@ def get_apps_list(discovery_url: Optional[str]) -> list[dict[str, str]]:
|
|
|
25
28
|
|
|
26
29
|
try:
|
|
27
30
|
resp = requests.get(
|
|
28
|
-
typing.cast(str, discovery_url or config.
|
|
31
|
+
typing.cast(str, discovery_url or config.discovery.url),
|
|
29
32
|
headers={"accept": "application/json"},
|
|
30
33
|
timeout=5,
|
|
31
34
|
)
|
howler/odm/helper.py
CHANGED
|
@@ -31,7 +31,7 @@ from howler.security.utils import get_password_hash
|
|
|
31
31
|
from howler.utils.constants import TESTING
|
|
32
32
|
from howler.utils.uid import get_random_id
|
|
33
33
|
|
|
34
|
-
APPS = get_apps_list(discovery_url=config.
|
|
34
|
+
APPS = get_apps_list(discovery_url=config.discovery.url)
|
|
35
35
|
ESCALATIONS = Escalation.list()
|
|
36
36
|
EXAMPLE_ANALYTICS = ["Password Checker", "Bad Guy Finder", "Exploit Patcher"]
|
|
37
37
|
|
howler/odm/models/config.py
CHANGED
|
@@ -471,6 +471,18 @@ class Telemetry(BaseModel):
|
|
|
471
471
|
)
|
|
472
472
|
|
|
473
473
|
|
|
474
|
+
class Discovery(BaseModel):
|
|
475
|
+
"""Service discovery configuration for Howler.
|
|
476
|
+
|
|
477
|
+
Defines settings for enabling and configuring service discovery,
|
|
478
|
+
allowing Howler instances to locate and communicate with each other
|
|
479
|
+
in distributed deployments.
|
|
480
|
+
"""
|
|
481
|
+
|
|
482
|
+
url: Optional[str] = Field(default=None, description="Discovery URL")
|
|
483
|
+
enabled: bool = Field(default=False, description="Should discovery be enabled?")
|
|
484
|
+
|
|
485
|
+
|
|
474
486
|
class Core(BaseModel):
|
|
475
487
|
"""Core application configuration for Howler.
|
|
476
488
|
|
|
@@ -553,6 +565,8 @@ class Config(BaseSettings):
|
|
|
553
565
|
logging: Logging = Logging()
|
|
554
566
|
system: System = System()
|
|
555
567
|
ui: UI = UI()
|
|
568
|
+
discovery: Discovery = Discovery()
|
|
569
|
+
|
|
556
570
|
mapping: dict[str, str] = Field(description="Mapping of alert keys to clue types", default={})
|
|
557
571
|
|
|
558
572
|
model_config = SettingsConfigDict(
|
howler/security/utils.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: howler-api
|
|
3
|
-
Version: 3.4.0.
|
|
3
|
+
Version: 3.4.0.dev950
|
|
4
4
|
Summary: Howler - API server
|
|
5
5
|
License: MIT
|
|
6
6
|
Keywords: howler,alerting,gc,canada,cse-cst,cse,cst,cyber,cccs
|
|
@@ -42,7 +42,7 @@ Requires-Dist: prometheus-client (==0.25.0)
|
|
|
42
42
|
Requires-Dist: pydantic (>=2.11.4,<3.0.0)
|
|
43
43
|
Requires-Dist: pydantic-settings[yaml] (>=2.9.1,<3.0.0)
|
|
44
44
|
Requires-Dist: pydash (>=8.0.5,<9.0.0)
|
|
45
|
-
Requires-Dist: pyjwt (==2.
|
|
45
|
+
Requires-Dist: pyjwt (==2.13.0)
|
|
46
46
|
Requires-Dist: pysigma (==0.11.23)
|
|
47
47
|
Requires-Dist: pysigma-backend-elasticsearch (>=1.1.2,<2.0.0)
|
|
48
48
|
Requires-Dist: python-baseconv (==1.2.2)
|
|
@@ -78,7 +78,7 @@ howler/gunicorn_config.py,sha256=0X7DPFcVDu3qAgMbNsdYGqCuvQGn5ZNx_eapOMyuXuI,750
|
|
|
78
78
|
howler/healthz.py,sha256=nvb8MBBERYIkA_UxxLIyNEQazYOnPCcm0sH0Jm5nF0k,769
|
|
79
79
|
howler/helper/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
80
80
|
howler/helper/azure.py,sha256=evI413uz-PdI6C5HIHh8LPRx83mTO8y6nad5ed_qJ5Y,1830
|
|
81
|
-
howler/helper/discover.py,sha256=
|
|
81
|
+
howler/helper/discover.py,sha256=YMdfSnk6yUpifz0PNJqjfMURugAn-IawE4ZJNUFDY08,2300
|
|
82
82
|
howler/helper/hit.py,sha256=Us2B4Dngu_ghWCZ40o7mZ0iLKKDr2onV6oB2OLuE5Fc,7863
|
|
83
83
|
howler/helper/oauth.py,sha256=08yApXF9l-mCVFUodmcZDDj6Y0B4tFge10OrDYqnQmg,10725
|
|
84
84
|
howler/helper/search.py,sha256=XQ_6ScHsmzfqXnQ3Rt-j9ADmddaSVsAcG6348L-WtPY,2882
|
|
@@ -88,7 +88,7 @@ howler/odm/README.md,sha256=Ihc_DyjVQlLaIOEbPoQNPkum9Ecn8kn37-PMFQsX77s,5645
|
|
|
88
88
|
howler/odm/__init__.py,sha256=1n6vgBOrFcCHSBFysqgODERvqP7s5DIeJe8N8UeE5pM,44
|
|
89
89
|
howler/odm/base.py,sha256=e90yzWXi7DB14FdRleCY2sn6WW_pSDw9yNIseY4WhFo,55794
|
|
90
90
|
howler/odm/charter.txt,sha256=-Wgrv7nqugZmeQknJk0_m6klLJStjVbuqKbi_KaDinQ,15277
|
|
91
|
-
howler/odm/helper.py,sha256=
|
|
91
|
+
howler/odm/helper.py,sha256=JYNkWcQBsaWPidTYExXdElFTvsCJuw7PPxhsSnCjhoU,13943
|
|
92
92
|
howler/odm/howler_enum.py,sha256=JzRK3_adlhvfkoGdMZD1jgOwlneZs8-x7OxGEj3zcpY,768
|
|
93
93
|
howler/odm/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
94
94
|
howler/odm/models/action.py,sha256=V9tgMCg1ewu8mOngTcA6QAPwaR0NIT71VHglpRFYmS4,1235
|
|
@@ -98,7 +98,7 @@ howler/odm/models/aws.py,sha256=pJVadJqubdgT27riCfp7bEKVP4XsMZB0ZUnKAbmCMd0,895
|
|
|
98
98
|
howler/odm/models/azure.py,sha256=o7MZMMo9jh1SB8xXCajl_YSKP2nnnWsjx_DPT6LnQKg,710
|
|
99
99
|
howler/odm/models/cbs.py,sha256=onUiJOGUxK3iy_-4XkGGwHxFiFq9Td_p59Kum4XaR-w,1366
|
|
100
100
|
howler/odm/models/clue.py,sha256=TNJV1t9bEhRTcJuSC2qNKQ-XpwFqb5iQstRpvHOrTHE,636
|
|
101
|
-
howler/odm/models/config.py,sha256=
|
|
101
|
+
howler/odm/models/config.py,sha256=sjfOO9au__97NJYRHjiHIhmOSUkGJBQA2TX4IqwG1R8,23705
|
|
102
102
|
howler/odm/models/dossier.py,sha256=Ob2qROrG2-DYzmVo2XVe4NJ8HjWGCoRAu2gPo6p9XGU,1244
|
|
103
103
|
howler/odm/models/ecs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
104
104
|
howler/odm/models/ecs/agent.py,sha256=idSooyFCLuQAB7_RyEWTYW4-x9w5a3wpy2ct_-EDRQs,713
|
|
@@ -169,7 +169,7 @@ howler/remote/datatypes/set.py,sha256=y3SS8_-goa6q-IDwQMTpBA6VtjMC833CSwySaawAO4
|
|
|
169
169
|
howler/remote/datatypes/user_quota_tracker.py,sha256=v18t7xMZmUjuiOnyKRZGkdBQrGiVAn9Oaa4_mdog2-4,1949
|
|
170
170
|
howler/security/__init__.py,sha256=iC7RLwfDcgBHdNMSHgQwweLdk-swh5SPVPuOsdgRWlI,11438
|
|
171
171
|
howler/security/socket.py,sha256=ghpQj9fg0rGB1Ua8dTmiWIHRVHqGvhHYfpaKNdBzsrQ,3876
|
|
172
|
-
howler/security/utils.py,sha256=
|
|
172
|
+
howler/security/utils.py,sha256=fYrz3UaBBA-evvMD03kZNBfBHA65irgZipeqcIJ9S6w,5352
|
|
173
173
|
howler/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
174
174
|
howler/services/action_service.py,sha256=aq3jaSlvxg4KigJLc4mi5efeO-QqtVGbubOws87r1uk,7572
|
|
175
175
|
howler/services/analytic_service.py,sha256=6V_LD88bfDhdWN_47KFJ0y44X1mIE4xqGj834T2CfnM,4959
|
|
@@ -198,7 +198,7 @@ howler/utils/path.py,sha256=DfOU4i4zSs4wchHoE8iE7aWVLkTxiC_JRGepF2hBYBk,690
|
|
|
198
198
|
howler/utils/socket_utils.py,sha256=nz1SklC9xBHUSfHyTJjpq3mbozX1GDf01WzdGxfaUII,2212
|
|
199
199
|
howler/utils/str_utils.py,sha256=HE8Hqh2HlOLaj16w0H9zKOyDJLp-f1LQ50y_WeGZaEk,8389
|
|
200
200
|
howler/utils/uid.py,sha256=p9dsqyvZ-lpiAuzZWCPCeEM99kdk0Ly9czf04HNdSuw,1341
|
|
201
|
-
howler_api-3.4.0.
|
|
202
|
-
howler_api-3.4.0.
|
|
203
|
-
howler_api-3.4.0.
|
|
204
|
-
howler_api-3.4.0.
|
|
201
|
+
howler_api-3.4.0.dev950.dist-info/METADATA,sha256=uG3saJNE8JiuNKMLd4BnqJEjLFR55w-jBcOOy6WSs6s,2879
|
|
202
|
+
howler_api-3.4.0.dev950.dist-info/WHEEL,sha256=EGEvSphFYqXKs23-kQBeyNoJP1nrT8ZJKQoi5p5DYL8,88
|
|
203
|
+
howler_api-3.4.0.dev950.dist-info/entry_points.txt,sha256=Lu9SBGvwe0wczJHmc-RudC24lmQk7tv3ZBXon9RIihg,259
|
|
204
|
+
howler_api-3.4.0.dev950.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|