contentctl 5.3.0__tar.gz → 5.3.2__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.
- {contentctl-5.3.0 → contentctl-5.3.2}/PKG-INFO +1 -1
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/detection_testing/GitService.py +4 -1
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/inspect.py +15 -1
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/validate.py +1 -1
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/abstract_security_content_objects/detection_abstract.py +1 -1
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/errors.py +28 -2
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/lookup.py +1 -1
- {contentctl-5.3.0 → contentctl-5.3.2}/pyproject.toml +1 -1
- {contentctl-5.3.0 → contentctl-5.3.2}/LICENSE.md +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/README.md +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/__init__.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/build.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/deploy_acs.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/detection_testing/DetectionTestingManager.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/detection_testing/generate_detection_coverage_badge.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/detection_testing/infrastructures/DetectionTestingInfrastructure.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/detection_testing/infrastructures/DetectionTestingInfrastructureContainer.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/detection_testing/infrastructures/DetectionTestingInfrastructureServer.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/detection_testing/progress_bar.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/detection_testing/views/DetectionTestingView.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/detection_testing/views/DetectionTestingViewCLI.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/detection_testing/views/DetectionTestingViewFile.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/detection_testing/views/DetectionTestingViewWeb.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/doc_gen.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/initialize.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/new_content.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/release_notes.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/reporting.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/actions/test.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/api.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/contentctl.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/enrichments/attack_enrichment.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/enrichments/cve_enrichment.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/enrichments/splunk_app_enrichment.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/helper/link_validator.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/helper/logger.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/helper/splunk_app.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/helper/utils.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/input/director.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/input/new_content_questions.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/input/yml_reader.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/abstract_security_content_objects/security_content_object_abstract.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/alert_action.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/annotated_types.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/atomic.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/base_test.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/base_test_result.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/baseline.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/baseline_tags.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/config.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/constants.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/content_versioning_service.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/correlation_search.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/dashboard.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/data_source.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/deployment.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/deployment_email.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/deployment_notable.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/deployment_phantom.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/deployment_rba.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/deployment_scheduling.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/deployment_slack.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/detection.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/detection_metadata.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/detection_stanza.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/detection_tags.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/drilldown.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/enums.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/integration_test.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/integration_test_result.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/investigation.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/investigation_tags.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/macro.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/manual_test.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/manual_test_result.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/mitre_attack_enrichment.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/notable_action.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/notable_event.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/playbook.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/playbook_tags.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/rba.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/removed_security_content_object.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/risk_analysis_action.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/risk_event.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/risk_object.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/savedsearches_conf.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/security_content_object.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/story.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/story_tags.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/test_attack_data.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/test_group.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/threat_object.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/throttling.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/unit_test.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/unit_test_baseline.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/objects/unit_test_result.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/api_json_output.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/attack_nav_output.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/attack_nav_writer.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/conf_output.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/conf_writer.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/doc_md_output.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/jinja_writer.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/json_writer.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/runtime_csv_writer.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/svg_output.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/analyticstories_detections.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/analyticstories_investigations.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/analyticstories_stories.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/app.conf.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/app.manifest.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/collections.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/content-version.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/detection_count.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/detection_coverage.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/doc_detection_page.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/doc_detections.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/doc_navigation.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/doc_navigation_pages.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/doc_playbooks.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/doc_playbooks_page.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/doc_stories.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/doc_story_page.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/es_investigations_investigations.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/es_investigations_stories.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/header.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/macros.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/panel.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/savedsearches_baselines.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/savedsearches_detections.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/savedsearches_investigations.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/server.conf.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/transforms.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/workflow_actions.j2 +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/yml_writer.py +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/README.md +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_default.yml +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/README/essoc_story_detail.txt +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/README/essoc_summary.txt +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/README/essoc_usage_dashboard.txt +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/README.md +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/default/analytic_stories.conf +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/default/commands.conf +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/default/data/ui/nav/default.xml +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/default/data/ui/views/escu_summary.xml +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/default/data/ui/views/feedback.xml +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/default/use_case_library.conf +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/lookups/mitre_enrichment.csv +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/metadata/default.meta +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/static/appIcon.png +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/static/appIconAlt.png +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/static/appIconAlt_2x.png +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/static/appIcon_2x.png +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/data_sources/sysmon_eventid_1.yml +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/datamodels_cim.conf +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/datamodels_custom.conf +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/deployments/escu_default_configuration_anomaly.yml +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/deployments/escu_default_configuration_baseline.yml +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/deployments/escu_default_configuration_correlation.yml +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/deployments/escu_default_configuration_hunting.yml +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/deployments/escu_default_configuration_ttp.yml +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/detections/application/.gitkeep +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/detections/cloud/.gitkeep +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/detections/endpoint/anomalous_usage_of_7zip.yml +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/detections/network/.gitkeep +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/detections/web/.gitkeep +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/macros/security_content_ctime.yml +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/macros/security_content_summariesonly.yml +0 -0
- {contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/stories/cobalt_strike.yml +0 -0
|
@@ -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
|
)
|
|
@@ -16,6 +16,7 @@ from contentctl.objects.errors import (
|
|
|
16
16
|
DetectionMissingError,
|
|
17
17
|
MetadataValidationError,
|
|
18
18
|
VersionBumpingError,
|
|
19
|
+
VersionBumpingTooFarError,
|
|
19
20
|
VersionDecrementedError,
|
|
20
21
|
)
|
|
21
22
|
from contentctl.objects.savedsearches_conf import SavedsearchesConf
|
|
@@ -101,7 +102,7 @@ class Inspect:
|
|
|
101
102
|
-F "app_package=@<PATH/APP-PACKAGE>" \
|
|
102
103
|
-F "included_tags=cloud" \
|
|
103
104
|
--url "https://appinspect.splunk.com/v1/app/validate"
|
|
104
|
-
|
|
105
|
+
|
|
105
106
|
This is confirmed by the great resource:
|
|
106
107
|
https://curlconverter.com/
|
|
107
108
|
"""
|
|
@@ -429,6 +430,19 @@ class Inspect:
|
|
|
429
430
|
)
|
|
430
431
|
)
|
|
431
432
|
|
|
433
|
+
# Versions should never increase more than one version between releases
|
|
434
|
+
if (
|
|
435
|
+
current_stanza.metadata.detection_version
|
|
436
|
+
> previous_stanza.metadata.detection_version + 1
|
|
437
|
+
):
|
|
438
|
+
validation_errors[rule_name].append(
|
|
439
|
+
VersionBumpingTooFarError(
|
|
440
|
+
rule_name=rule_name,
|
|
441
|
+
current_version=current_stanza.metadata.detection_version,
|
|
442
|
+
previous_version=previous_stanza.metadata.detection_version,
|
|
443
|
+
)
|
|
444
|
+
)
|
|
445
|
+
|
|
432
446
|
# Convert our dict mapping to a flat list of errors for use in reporting
|
|
433
447
|
validation_error_list = [
|
|
434
448
|
x for inner_list in validation_errors.values() for x in inner_list
|
|
@@ -54,7 +54,7 @@ class Validate:
|
|
|
54
54
|
"""
|
|
55
55
|
lookupsDirectory = repo_path / "lookups"
|
|
56
56
|
|
|
57
|
-
# Get all of the files
|
|
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
|
|
@@ -185,7 +185,7 @@ class VersionBumpingError(VersioningError):
|
|
|
185
185
|
return (
|
|
186
186
|
f"Rule '{self.rule_name}' has changed in current build compared to previous "
|
|
187
187
|
"build (stanza hashes differ); the detection version should be bumped "
|
|
188
|
-
f"to
|
|
188
|
+
f"to {self.previous_version + 1}."
|
|
189
189
|
)
|
|
190
190
|
|
|
191
191
|
@property
|
|
@@ -194,4 +194,30 @@ class VersionBumpingError(VersioningError):
|
|
|
194
194
|
A short-form error message
|
|
195
195
|
:returns: a str, the message
|
|
196
196
|
"""
|
|
197
|
-
return f"Detection version in current build should be bumped to
|
|
197
|
+
return f"Detection version in current build should be bumped to {self.previous_version + 1}."
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
class VersionBumpingTooFarError(VersioningError):
|
|
201
|
+
"""
|
|
202
|
+
An error indicating the detection changed but its version was bumped too far
|
|
203
|
+
"""
|
|
204
|
+
|
|
205
|
+
@property
|
|
206
|
+
def long_message(self) -> str:
|
|
207
|
+
"""
|
|
208
|
+
A long-form error message
|
|
209
|
+
:returns: a str, the message
|
|
210
|
+
"""
|
|
211
|
+
return (
|
|
212
|
+
f"Rule '{self.rule_name}' has changed in current build compared to previous "
|
|
213
|
+
"build (stanza hashes differ); however the detection version increased too much"
|
|
214
|
+
f"The version should be reduced to {self.previous_version + 1}."
|
|
215
|
+
)
|
|
216
|
+
|
|
217
|
+
@property
|
|
218
|
+
def short_message(self) -> str:
|
|
219
|
+
"""
|
|
220
|
+
A short-form error message
|
|
221
|
+
:returns: a str, the message
|
|
222
|
+
"""
|
|
223
|
+
return f"Detection version in current build should be reduced to {self.previous_version + 1}."
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/analyticstories_detections.j2
RENAMED
|
File without changes
|
{contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/analyticstories_investigations.j2
RENAMED
|
File without changes
|
{contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/analyticstories_stories.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/es_investigations_stories.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/savedsearches_baselines.j2
RENAMED
|
File without changes
|
{contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/savedsearches_detections.j2
RENAMED
|
File without changes
|
{contentctl-5.3.0 → contentctl-5.3.2}/contentctl/output/templates/savedsearches_investigations.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/README/essoc_summary.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/default/commands.conf
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/lookups/mitre_enrichment.csv
RENAMED
|
File without changes
|
{contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/metadata/default.meta
RENAMED
|
File without changes
|
|
File without changes
|
{contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/static/appIconAlt.png
RENAMED
|
File without changes
|
{contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/static/appIconAlt_2x.png
RENAMED
|
File without changes
|
{contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/app_template/static/appIcon_2x.png
RENAMED
|
File without changes
|
{contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/data_sources/sysmon_eventid_1.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/macros/security_content_ctime.yml
RENAMED
|
File without changes
|
{contentctl-5.3.0 → contentctl-5.3.2}/contentctl/templates/macros/security_content_summariesonly.yml
RENAMED
|
File without changes
|
|
File without changes
|