contentctl 5.3.0__py3-none-any.whl → 5.3.1__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.
@@ -14,7 +14,7 @@ from contentctl.input.director import DirectorOutputDto
14
14
  from contentctl.objects.config import All, Changes, Selected, test_common
15
15
  from contentctl.objects.data_source import DataSource
16
16
  from contentctl.objects.detection import Detection
17
- from contentctl.objects.lookup import CSVLookup, Lookup
17
+ from contentctl.objects.lookup import CSVLookup, Lookup, RuntimeCSV
18
18
  from contentctl.objects.macro import Macro
19
19
  from contentctl.objects.security_content_object import SecurityContentObject
20
20
 
@@ -148,6 +148,9 @@ class GitService(BaseModel):
148
148
  matched = list(
149
149
  filter(
150
150
  lambda x: isinstance(x, CSVLookup)
151
+ and not isinstance(
152
+ x, RuntimeCSV
153
+ ) # RuntimeCSV is not used directly by any content
151
154
  and x.filename == decoded_path,
152
155
  self.director.lookups,
153
156
  )
@@ -54,7 +54,7 @@ class Validate:
54
54
  """
55
55
  lookupsDirectory = repo_path / "lookups"
56
56
 
57
- # Get all of the files referneced by Lookups
57
+ # Get all of the files referenced by Lookups
58
58
  usedLookupFiles: list[pathlib.Path] = [
59
59
  lookup.filename
60
60
  for lookup in director_output_dto.lookups
@@ -547,7 +547,7 @@ class Detection_Abstract(SecurityContentObject):
547
547
  {
548
548
  "name": lookup.name,
549
549
  "description": lookup.description,
550
- "filename": lookup.filename.name,
550
+ "filename": lookup.filename.name, # This does not cause an issue for RuntimeCSV type because they are not used by any detections
551
551
  "default_match": lookup.default_match,
552
552
  "case_sensitive_match": "true"
553
553
  if lookup.case_sensitive_match
@@ -257,7 +257,7 @@ class CSVLookup(FileBackedLookup):
257
257
  """
258
258
  if self.file_path is None:
259
259
  raise ValueError(
260
- f"Cannot get the filename of the lookup {self.lookup_type} because the YML file_path attribute is None"
260
+ f"Cannot get the filename of the lookup {self.lookup_type} for content [{self.name}] because the YML file_path attribute is None"
261
261
  ) # type: ignore
262
262
 
263
263
  csv_file = self.file_path.parent / f"{self.file_path.stem}.{self.lookup_type}" # type: ignore
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: contentctl
3
- Version: 5.3.0
3
+ Version: 5.3.1
4
4
  Summary: Splunk Content Control Tool
5
5
  License: Apache 2.0
6
6
  Author: STRT
@@ -2,7 +2,7 @@ contentctl/__init__.py,sha256=kUR5RAFc7HCeiqdlX36dZOHkUI5wI6V_43RpEcD8b-0,22
2
2
  contentctl/actions/build.py,sha256=agpHT6QCCFdWTs4jU7v8xqvGy3DG_zgsZZT96j1gcW0,3965
3
3
  contentctl/actions/deploy_acs.py,sha256=w3OqO8GXzB_5zHrE8lDYbadAy4Etw7F2o84Gze74RY0,3264
4
4
  contentctl/actions/detection_testing/DetectionTestingManager.py,sha256=94apBwLkXWsgdLSvE9f_KqCfQSdmDChMncMcsEdY1A8,10974
5
- contentctl/actions/detection_testing/GitService.py,sha256=a6y7lqCgSL1KdSVEgJDxawea8ZgEkGNfOKEf9v_BgLo,11135
5
+ contentctl/actions/detection_testing/GitService.py,sha256=HU1fKkb5463weqSZ3LrTVHtNrzBH_f5pE99-zD2j1A8,11345
6
6
  contentctl/actions/detection_testing/generate_detection_coverage_badge.py,sha256=bGUVKjKv96lTw1GZ4Kw1JX-Yicu4aOJWm-IL524e9HI,2302
7
7
  contentctl/actions/detection_testing/infrastructures/DetectionTestingInfrastructure.py,sha256=nJVo_L3Y4V0Uk7VCGHY58waGCBKcfujIFmxKC83oVgY,61082
8
8
  contentctl/actions/detection_testing/infrastructures/DetectionTestingInfrastructureContainer.py,sha256=qYWgRW7uc-15jzwv5xSUF2xyLDmtyGyMfuXkQK9j-aM,7221
@@ -19,7 +19,7 @@ contentctl/actions/new_content.py,sha256=xs0QvHzlrf0g-EgdUJTkdDdFaA-uEGmzMTixDt6
19
19
  contentctl/actions/release_notes.py,sha256=rrloomsLBfl53xpjqDez6RgHU5AE4Gb9ASrivGbYYVs,17122
20
20
  contentctl/actions/reporting.py,sha256=GF32i7sHdc47bw-VWSW-nZ1QBaUl6Ni1JjV5_SOyiAU,1660
21
21
  contentctl/actions/test.py,sha256=ftZazqoqv7bLNhyW23aRnDpetG9zltS8wr4Xq9Hls0k,6268
22
- contentctl/actions/validate.py,sha256=2AzxEhqtvq4QlkcMbzw1fPCCZKnnuO3XfBE5WEEnFrs,5879
22
+ contentctl/actions/validate.py,sha256=hgcczMFA8xOo4T--RviBPJdZ7INfkq5kCZkWFB7rnDs,5879
23
23
  contentctl/api.py,sha256=6s17vNOW1E1EzQqOCXAa5uWuhwwShu-JkGSgrsOFEMs,6329
24
24
  contentctl/contentctl.py,sha256=nR8nHxXY0elvQogVHFqsyid7Ch5sMnIiNAOFbCa0yzI,11755
25
25
  contentctl/enrichments/attack_enrichment.py,sha256=68C9xQ8Q3YX-luRdK2hLnwWtRFpheFA2kE4v5GOLGEo,6358
@@ -32,7 +32,7 @@ contentctl/helper/utils.py,sha256=1_6cbvvbPXWxym3ZhRhL18ttmXLXiHbavpXAkROtGcg,21
32
32
  contentctl/input/director.py,sha256=rThzfssOG4v52ClhVwUx-sU0MKWb_UaMy3MSANCrwmo,11999
33
33
  contentctl/input/new_content_questions.py,sha256=z2C4Mg7-EyxtiF2z9m4SnSbi6QO4CUPB3wg__JeMXIQ,4067
34
34
  contentctl/input/yml_reader.py,sha256=L27b14_xXQYypUV1eAzZrfMtwtkzAZx--6nRo3RNZnE,2729
35
- contentctl/objects/abstract_security_content_objects/detection_abstract.py,sha256=dNkCXqlGVJw06tMWFS4r5a1LV10jxwKUslNG7iVL__s,46765
35
+ contentctl/objects/abstract_security_content_objects/detection_abstract.py,sha256=Gsb6v44VpWeGnMi79viJ0zO81pZ9GuiaqQJyHM-ba5I,46861
36
36
  contentctl/objects/abstract_security_content_objects/security_content_object_abstract.py,sha256=VzAkq-oJ05Y7Y2BzoUG8De8tVANV5X9ZvHbrDe65iRA,33282
37
37
  contentctl/objects/alert_action.py,sha256=iEvdEOT4TrTXT0z4rQ_W5v79hPJpPhFPSzo7TuHDxwA,1376
38
38
  contentctl/objects/annotated_types.py,sha256=xR4EKvdOpNDEt0doGs8XjxCzKK99J2NHZgHFAmt7p2c,424
@@ -65,7 +65,7 @@ contentctl/objects/integration_test.py,sha256=TYjKyH4YinUnYXOse5BQGCa4-ez_5mtoMw
65
65
  contentctl/objects/integration_test_result.py,sha256=_uUSgqgjFhEZM8UwOJI6Q9K-ekIrbKU6OPdqHZycl-s,279
66
66
  contentctl/objects/investigation.py,sha256=GZsvhSZO7ZSmhg2ZeT-kPMqDG-GYpTXIvGBgV1H2lwQ,4030
67
67
  contentctl/objects/investigation_tags.py,sha256=qDGNusrWDvCX_GcBEzag2MydSV0LIhGxoXZGgxDXfHA,1317
68
- contentctl/objects/lookup.py,sha256=XDluqS9CumSP7ijbV9O2bbSaDGh0Beo4QaL-II_xC6U,15601
68
+ contentctl/objects/lookup.py,sha256=u0s2kxIFtQV4TJdUyG0wp4EdEF_D4w71Axmpz1-MXPo,15627
69
69
  contentctl/objects/macro.py,sha256=cMQ_frqJnX2NSy-21cbUnMRZZxBionQ2KOxuC9J9bp0,4051
70
70
  contentctl/objects/manual_test.py,sha256=cx_XAtQ8VG8Ui_F553Xnut75vFEOtRwm1dDIIWNpOaM,952
71
71
  contentctl/objects/manual_test_result.py,sha256=FyCVVf-f1DKs-qBkM4tbKfY6mkrW25NcIEBqyaDC2rE,156
@@ -163,8 +163,8 @@ contentctl/templates/detections/web/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
163
163
  contentctl/templates/macros/security_content_ctime.yml,sha256=Gg1YNllHVsX_YB716H1SJLWzxXZEfuJlnsgB2fuyoHU,159
164
164
  contentctl/templates/macros/security_content_summariesonly.yml,sha256=9BYUxAl2E4Nwh8K19F3AJS8Ka7ceO6ZDBjFiO3l3LY0,162
165
165
  contentctl/templates/stories/cobalt_strike.yml,sha256=uj8idtDNOAIqpZ9p8usQg6mop1CQkJ5TlB4Q7CJdTIE,3082
166
- contentctl-5.3.0.dist-info/LICENSE.md,sha256=hQWUayRk-pAiOZbZnuy8djmoZkjKBx8MrCFpW-JiOgo,11344
167
- contentctl-5.3.0.dist-info/METADATA,sha256=qnEm__g-PB2TIjTXm7DFPJWrdgj8vlXQlE-qrHjtLTA,5134
168
- contentctl-5.3.0.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
169
- contentctl-5.3.0.dist-info/entry_points.txt,sha256=5bjZ2NkbQfSwK47uOnA77yCtjgXhvgxnmCQiynRF_-U,57
170
- contentctl-5.3.0.dist-info/RECORD,,
166
+ contentctl-5.3.1.dist-info/LICENSE.md,sha256=hQWUayRk-pAiOZbZnuy8djmoZkjKBx8MrCFpW-JiOgo,11344
167
+ contentctl-5.3.1.dist-info/METADATA,sha256=1nKu_O4jpY0Vtv0lNteAbgJR_Fx8Wc5UhTal5frFyTg,5134
168
+ contentctl-5.3.1.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
169
+ contentctl-5.3.1.dist-info/entry_points.txt,sha256=5bjZ2NkbQfSwK47uOnA77yCtjgXhvgxnmCQiynRF_-U,57
170
+ contentctl-5.3.1.dist-info/RECORD,,