fluidattacks-core 4.2.1__tar.gz → 4.3.1__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.
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/PKG-INFO +10 -8
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/logging/sources/__init__.py +41 -15
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/serializers/syntax.py +4 -1
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core.egg-info/PKG-INFO +10 -8
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core.egg-info/requires.txt +9 -7
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/pyproject.toml +35 -12
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/test/test_logging.py +4 -2
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/README.md +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/__init__.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/aio/__init__.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/aio/processes.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/aio/runners.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/aio/tasks.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/aio/threads.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/authz/__init__.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/authz/py.typed +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/authz/types.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/bugsnag/__init__.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/bugsnag/client.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/cpg/__init__.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/cpg/joern.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/filesystem/__init__.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/filesystem/defaults.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/git/__init__.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/git/classes.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/git/clone.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/git/codecommit_utils.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/git/constants.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/git/delete_files.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/git/download_file.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/git/download_repo.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/git/https_utils.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/git/py.typed +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/git/remote.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/git/ssh_utils.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/git/utils.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/git/warp.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/http/__init__.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/http/client.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/http/validations.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/logging/__init__.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/logging/filters.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/logging/formatters.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/logging/handlers.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/logging/presets.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/logging/sources/types.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/logging/sources/utils.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/logging/utils.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/py.typed +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/sarif/__init__.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/semver/__init__.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/semver/match_versions.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/serializers/__init__.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/serializers/snippet.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core.egg-info/SOURCES.txt +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core.egg-info/dependency_links.txt +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core.egg-info/top_level.txt +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/setup.cfg +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/test/test_aio_tasks.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/test/test_extract_db.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/test/test_language_detection.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/test/test_make_snippet.py +0 -0
- {fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/test/test_match_versions.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fluidattacks-core
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.3.1
|
|
4
4
|
Summary: Fluid Attacks Core Library
|
|
5
5
|
Author-email: Development <development@fluidattacks.com>
|
|
6
6
|
License: MPL-2.0
|
|
@@ -25,24 +25,26 @@ Requires-Dist: bugsnag>=4.7.1; extra == "bugsnag"
|
|
|
25
25
|
Provides-Extra: git
|
|
26
26
|
Requires-Dist: aiofiles>=23.2.1; extra == "git"
|
|
27
27
|
Requires-Dist: boto3>=1.34; extra == "git"
|
|
28
|
+
Requires-Dist: botocore>=1.40.18; extra == "git"
|
|
28
29
|
Requires-Dist: GitPython>=3.1.41; extra == "git"
|
|
29
30
|
Requires-Dist: pathspec>=0.12.1; extra == "git"
|
|
30
31
|
Provides-Extra: http
|
|
31
32
|
Provides-Extra: serializers
|
|
32
|
-
Requires-Dist: tree-sitter>=0.25.2; extra == "serializers"
|
|
33
33
|
Requires-Dist: more-itertools>=10.0.0; extra == "serializers"
|
|
34
34
|
Requires-Dist: tree-sitter-c-sharp>=0.23.1; extra == "serializers"
|
|
35
35
|
Requires-Dist: tree-sitter-go>=0.23.4; extra == "serializers"
|
|
36
|
+
Requires-Dist: tree-sitter-html>=0.23.2; extra == "serializers"
|
|
36
37
|
Requires-Dist: tree-sitter-java>=0.23.4; extra == "serializers"
|
|
37
38
|
Requires-Dist: tree-sitter-javascript>=0.23.1; extra == "serializers"
|
|
38
39
|
Requires-Dist: tree-sitter-json>=0.24.8; extra == "serializers"
|
|
39
40
|
Requires-Dist: tree-sitter-kotlin>=1.0.1; extra == "serializers"
|
|
40
|
-
Requires-Dist: tree-sitter-python>=0.23.4; extra == "serializers"
|
|
41
41
|
Requires-Dist: tree-sitter-php==0.23.11; extra == "serializers"
|
|
42
|
+
Requires-Dist: tree-sitter-python>=0.23.4; extra == "serializers"
|
|
42
43
|
Requires-Dist: tree-sitter-typescript>=0.23.2; extra == "serializers"
|
|
43
|
-
Requires-Dist: tree-sitter-yaml>=0.7.0; extra == "serializers"
|
|
44
|
-
Requires-Dist: tree-sitter-html>=0.23.2; extra == "serializers"
|
|
45
44
|
Requires-Dist: tree-sitter-xml>=0.7.0; extra == "serializers"
|
|
45
|
+
Requires-Dist: tree-sitter-yaml>=0.7.0; extra == "serializers"
|
|
46
|
+
Requires-Dist: tree-sitter>=0.25.2; extra == "serializers"
|
|
47
|
+
Requires-Dist: tree-sitter-dart-orchard==0.3.2; extra == "serializers"
|
|
46
48
|
Provides-Extra: cpg
|
|
47
49
|
Requires-Dist: aioboto3>=13.3.0; extra == "cpg"
|
|
48
50
|
Requires-Dist: platformdirs>=4.3.8; extra == "cpg"
|
|
@@ -54,13 +56,13 @@ Provides-Extra: all
|
|
|
54
56
|
Requires-Dist: fluidattacks-core[aio]; extra == "all"
|
|
55
57
|
Requires-Dist: fluidattacks-core[authz]; extra == "all"
|
|
56
58
|
Requires-Dist: fluidattacks-core[bugsnag]; extra == "all"
|
|
59
|
+
Requires-Dist: fluidattacks-core[cpg]; extra == "all"
|
|
60
|
+
Requires-Dist: fluidattacks-core[filesystem]; extra == "all"
|
|
57
61
|
Requires-Dist: fluidattacks-core[git]; extra == "all"
|
|
58
62
|
Requires-Dist: fluidattacks-core[http]; extra == "all"
|
|
59
|
-
Requires-Dist: fluidattacks-core[serializers]; extra == "all"
|
|
60
|
-
Requires-Dist: fluidattacks-core[filesystem]; extra == "all"
|
|
61
|
-
Requires-Dist: fluidattacks-core[cpg]; extra == "all"
|
|
62
63
|
Requires-Dist: fluidattacks-core[sarif]; extra == "all"
|
|
63
64
|
Requires-Dist: fluidattacks-core[semver]; extra == "all"
|
|
65
|
+
Requires-Dist: fluidattacks-core[serializers]; extra == "all"
|
|
64
66
|
|
|
65
67
|
# Fluid Attacks Core Library
|
|
66
68
|
|
{fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/logging/sources/__init__.py
RENAMED
|
@@ -24,11 +24,19 @@ class LambdaSource(SourceStrategy):
|
|
|
24
24
|
|
|
25
25
|
@staticmethod
|
|
26
26
|
def log_metadata() -> dict[str, str]:
|
|
27
|
+
product_id = get_env_var("PRODUCT_ID")
|
|
28
|
+
function_name = get_env_var("AWS_LAMBDA_FUNCTION_NAME")
|
|
29
|
+
service = product_id or function_name or "unknown"
|
|
30
|
+
|
|
31
|
+
trace_header = get_env_var("_X_AMZN_TRACE_ID")
|
|
32
|
+
|
|
27
33
|
return {
|
|
28
34
|
"ddsource": "lambda",
|
|
29
|
-
"dd.service":
|
|
35
|
+
"dd.service": service,
|
|
30
36
|
"dd.version": get_version(),
|
|
31
37
|
"deployment.environment": get_environment(),
|
|
38
|
+
"lambda_metadata.function_name": function_name or "unknown",
|
|
39
|
+
"lambda_metadata.trace_header": trace_header or "unknown",
|
|
32
40
|
}
|
|
33
41
|
|
|
34
42
|
|
|
@@ -39,18 +47,31 @@ class BatchSource(SourceStrategy):
|
|
|
39
47
|
|
|
40
48
|
@staticmethod
|
|
41
49
|
def log_metadata() -> dict[str, str]:
|
|
42
|
-
|
|
50
|
+
job_id = get_env_var("AWS_BATCH_JOB_ID")
|
|
51
|
+
attempt = get_env_var("AWS_BATCH_JOB_ATTEMPT")
|
|
52
|
+
compute_environment = get_env_var("AWS_BATCH_CE_NAME")
|
|
53
|
+
|
|
54
|
+
product_id = get_env_var("PRODUCT_ID")
|
|
43
55
|
job_definition_name = get_env_var("JOB_DEFINITION_NAME")
|
|
56
|
+
job_name = get_env_var("JOB_NAME")
|
|
44
57
|
job_queue = get_env_var("AWS_BATCH_JQ_NAME")
|
|
45
|
-
product_id = get_env_var("PRODUCT_ID")
|
|
46
58
|
service = (
|
|
47
|
-
|
|
59
|
+
product_id
|
|
60
|
+
or job_definition_name
|
|
61
|
+
or job_name
|
|
62
|
+
or (f"from-{job_queue}" if job_queue else "unknown")
|
|
48
63
|
)
|
|
64
|
+
|
|
49
65
|
return {
|
|
50
66
|
"ddsource": "batch",
|
|
51
|
-
"dd.service": service
|
|
67
|
+
"dd.service": service,
|
|
52
68
|
"dd.version": get_version(),
|
|
53
69
|
"deployment.environment": get_environment(),
|
|
70
|
+
"job_metadata.id": job_id or "unknown",
|
|
71
|
+
"job_metadata.queue": job_queue or "unknown",
|
|
72
|
+
"job_metadata.definition_name": job_definition_name or "unknown",
|
|
73
|
+
"job_metadata.attempt": attempt or "unknown",
|
|
74
|
+
"job_metadata.compute_environment": compute_environment or "unknown",
|
|
54
75
|
}
|
|
55
76
|
|
|
56
77
|
|
|
@@ -88,20 +109,20 @@ class PipelineSource(SourceStrategy):
|
|
|
88
109
|
|
|
89
110
|
return {
|
|
90
111
|
"ddsource": f"ci/{pipeline}",
|
|
91
|
-
"
|
|
112
|
+
"pipeline_metadata.type": pipeline,
|
|
92
113
|
**(
|
|
93
114
|
{
|
|
94
|
-
"
|
|
95
|
-
"
|
|
115
|
+
"pipeline_metadata.CI_JOB_ID": get_env_var("CI_JOB_ID") or "unknown",
|
|
116
|
+
"pipeline_metadata.CI_JOB_URL": get_env_var("CI_JOB_URL") or "unknown",
|
|
96
117
|
}
|
|
97
118
|
if pipeline == "gitlab_ci"
|
|
98
119
|
else {}
|
|
99
120
|
),
|
|
100
121
|
**(
|
|
101
122
|
{
|
|
102
|
-
"
|
|
123
|
+
"pipeline_metadata.CIRCLE_BUILD_NUM": get_env_var("CIRCLE_BUILD_NUM")
|
|
103
124
|
or "unknown",
|
|
104
|
-
"
|
|
125
|
+
"pipeline_metadata.CIRCLE_BUILD_URL": get_env_var("CIRCLE_BUILD_URL")
|
|
105
126
|
or "unknown",
|
|
106
127
|
}
|
|
107
128
|
if pipeline == "circleci"
|
|
@@ -109,16 +130,16 @@ class PipelineSource(SourceStrategy):
|
|
|
109
130
|
),
|
|
110
131
|
**(
|
|
111
132
|
{
|
|
112
|
-
"
|
|
133
|
+
"pipeline_metadata.System.JobId": get_env_var("System.JobId") or "unknown",
|
|
113
134
|
}
|
|
114
135
|
if pipeline == "azure_devops"
|
|
115
136
|
else {}
|
|
116
137
|
),
|
|
117
138
|
**(
|
|
118
139
|
{
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
"
|
|
140
|
+
"pipeline_metadata.BUILD_NUMBER": get_env_var("BUILD_NUMBER") or "unknown",
|
|
141
|
+
"pipeline_metadata.BUILD_ID": get_env_var("BUILD_ID") or "unknown",
|
|
142
|
+
"pipeline_metadata.BUILD_URL": get_env_var("BUILD_URL") or "unknown",
|
|
122
143
|
}
|
|
123
144
|
if pipeline == "jenkins"
|
|
124
145
|
else {}
|
|
@@ -137,11 +158,16 @@ class ContainerSource(SourceStrategy):
|
|
|
137
158
|
|
|
138
159
|
@staticmethod
|
|
139
160
|
def log_metadata() -> dict[str, str]:
|
|
161
|
+
product_id = get_env_var("PRODUCT_ID")
|
|
162
|
+
container_image = get_env_var("CONTAINER_IMAGE")
|
|
163
|
+
service = product_id or container_image or "unknown"
|
|
164
|
+
|
|
140
165
|
return {
|
|
141
166
|
"ddsource": "container",
|
|
142
|
-
"dd.service":
|
|
167
|
+
"dd.service": service,
|
|
143
168
|
"dd.version": get_version(),
|
|
144
169
|
"deployment.environment": get_environment(),
|
|
170
|
+
"container_metadata.image": container_image or "unknown",
|
|
145
171
|
}
|
|
146
172
|
|
|
147
173
|
|
|
@@ -281,7 +281,10 @@ def get_language_from_path(path: str) -> str | None:
|
|
|
281
281
|
|
|
282
282
|
def get_language_for_tree(language: str) -> Language:
|
|
283
283
|
try:
|
|
284
|
-
|
|
284
|
+
parser_name = (
|
|
285
|
+
f"tree_sitter_{language}" if language != "dart" else "tree_sitter_dart_orchard"
|
|
286
|
+
)
|
|
287
|
+
language_module = importlib.import_module(parser_name)
|
|
285
288
|
function_name = {
|
|
286
289
|
"php": "language_php",
|
|
287
290
|
"tsx": "language_tsx",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fluidattacks-core
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.3.1
|
|
4
4
|
Summary: Fluid Attacks Core Library
|
|
5
5
|
Author-email: Development <development@fluidattacks.com>
|
|
6
6
|
License: MPL-2.0
|
|
@@ -25,24 +25,26 @@ Requires-Dist: bugsnag>=4.7.1; extra == "bugsnag"
|
|
|
25
25
|
Provides-Extra: git
|
|
26
26
|
Requires-Dist: aiofiles>=23.2.1; extra == "git"
|
|
27
27
|
Requires-Dist: boto3>=1.34; extra == "git"
|
|
28
|
+
Requires-Dist: botocore>=1.40.18; extra == "git"
|
|
28
29
|
Requires-Dist: GitPython>=3.1.41; extra == "git"
|
|
29
30
|
Requires-Dist: pathspec>=0.12.1; extra == "git"
|
|
30
31
|
Provides-Extra: http
|
|
31
32
|
Provides-Extra: serializers
|
|
32
|
-
Requires-Dist: tree-sitter>=0.25.2; extra == "serializers"
|
|
33
33
|
Requires-Dist: more-itertools>=10.0.0; extra == "serializers"
|
|
34
34
|
Requires-Dist: tree-sitter-c-sharp>=0.23.1; extra == "serializers"
|
|
35
35
|
Requires-Dist: tree-sitter-go>=0.23.4; extra == "serializers"
|
|
36
|
+
Requires-Dist: tree-sitter-html>=0.23.2; extra == "serializers"
|
|
36
37
|
Requires-Dist: tree-sitter-java>=0.23.4; extra == "serializers"
|
|
37
38
|
Requires-Dist: tree-sitter-javascript>=0.23.1; extra == "serializers"
|
|
38
39
|
Requires-Dist: tree-sitter-json>=0.24.8; extra == "serializers"
|
|
39
40
|
Requires-Dist: tree-sitter-kotlin>=1.0.1; extra == "serializers"
|
|
40
|
-
Requires-Dist: tree-sitter-python>=0.23.4; extra == "serializers"
|
|
41
41
|
Requires-Dist: tree-sitter-php==0.23.11; extra == "serializers"
|
|
42
|
+
Requires-Dist: tree-sitter-python>=0.23.4; extra == "serializers"
|
|
42
43
|
Requires-Dist: tree-sitter-typescript>=0.23.2; extra == "serializers"
|
|
43
|
-
Requires-Dist: tree-sitter-yaml>=0.7.0; extra == "serializers"
|
|
44
|
-
Requires-Dist: tree-sitter-html>=0.23.2; extra == "serializers"
|
|
45
44
|
Requires-Dist: tree-sitter-xml>=0.7.0; extra == "serializers"
|
|
45
|
+
Requires-Dist: tree-sitter-yaml>=0.7.0; extra == "serializers"
|
|
46
|
+
Requires-Dist: tree-sitter>=0.25.2; extra == "serializers"
|
|
47
|
+
Requires-Dist: tree-sitter-dart-orchard==0.3.2; extra == "serializers"
|
|
46
48
|
Provides-Extra: cpg
|
|
47
49
|
Requires-Dist: aioboto3>=13.3.0; extra == "cpg"
|
|
48
50
|
Requires-Dist: platformdirs>=4.3.8; extra == "cpg"
|
|
@@ -54,13 +56,13 @@ Provides-Extra: all
|
|
|
54
56
|
Requires-Dist: fluidattacks-core[aio]; extra == "all"
|
|
55
57
|
Requires-Dist: fluidattacks-core[authz]; extra == "all"
|
|
56
58
|
Requires-Dist: fluidattacks-core[bugsnag]; extra == "all"
|
|
59
|
+
Requires-Dist: fluidattacks-core[cpg]; extra == "all"
|
|
60
|
+
Requires-Dist: fluidattacks-core[filesystem]; extra == "all"
|
|
57
61
|
Requires-Dist: fluidattacks-core[git]; extra == "all"
|
|
58
62
|
Requires-Dist: fluidattacks-core[http]; extra == "all"
|
|
59
|
-
Requires-Dist: fluidattacks-core[serializers]; extra == "all"
|
|
60
|
-
Requires-Dist: fluidattacks-core[filesystem]; extra == "all"
|
|
61
|
-
Requires-Dist: fluidattacks-core[cpg]; extra == "all"
|
|
62
63
|
Requires-Dist: fluidattacks-core[sarif]; extra == "all"
|
|
63
64
|
Requires-Dist: fluidattacks-core[semver]; extra == "all"
|
|
65
|
+
Requires-Dist: fluidattacks-core[serializers]; extra == "all"
|
|
64
66
|
|
|
65
67
|
# Fluid Attacks Core Library
|
|
66
68
|
|
|
@@ -11,13 +11,13 @@ uvloop>=0.21.0
|
|
|
11
11
|
fluidattacks-core[aio]
|
|
12
12
|
fluidattacks-core[authz]
|
|
13
13
|
fluidattacks-core[bugsnag]
|
|
14
|
+
fluidattacks-core[cpg]
|
|
15
|
+
fluidattacks-core[filesystem]
|
|
14
16
|
fluidattacks-core[git]
|
|
15
17
|
fluidattacks-core[http]
|
|
16
|
-
fluidattacks-core[serializers]
|
|
17
|
-
fluidattacks-core[filesystem]
|
|
18
|
-
fluidattacks-core[cpg]
|
|
19
18
|
fluidattacks-core[sarif]
|
|
20
19
|
fluidattacks-core[semver]
|
|
20
|
+
fluidattacks-core[serializers]
|
|
21
21
|
|
|
22
22
|
[authz]
|
|
23
23
|
|
|
@@ -33,6 +33,7 @@ platformdirs>=4.3.8
|
|
|
33
33
|
[git]
|
|
34
34
|
aiofiles>=23.2.1
|
|
35
35
|
boto3>=1.34
|
|
36
|
+
botocore>=1.40.18
|
|
36
37
|
GitPython>=3.1.41
|
|
37
38
|
pathspec>=0.12.1
|
|
38
39
|
|
|
@@ -44,17 +45,18 @@ pydantic>=2.12.3
|
|
|
44
45
|
[semver]
|
|
45
46
|
|
|
46
47
|
[serializers]
|
|
47
|
-
tree-sitter>=0.25.2
|
|
48
48
|
more-itertools>=10.0.0
|
|
49
49
|
tree-sitter-c-sharp>=0.23.1
|
|
50
50
|
tree-sitter-go>=0.23.4
|
|
51
|
+
tree-sitter-html>=0.23.2
|
|
51
52
|
tree-sitter-java>=0.23.4
|
|
52
53
|
tree-sitter-javascript>=0.23.1
|
|
53
54
|
tree-sitter-json>=0.24.8
|
|
54
55
|
tree-sitter-kotlin>=1.0.1
|
|
55
|
-
tree-sitter-python>=0.23.4
|
|
56
56
|
tree-sitter-php==0.23.11
|
|
57
|
+
tree-sitter-python>=0.23.4
|
|
57
58
|
tree-sitter-typescript>=0.23.2
|
|
58
|
-
tree-sitter-yaml>=0.7.0
|
|
59
|
-
tree-sitter-html>=0.23.2
|
|
60
59
|
tree-sitter-xml>=0.7.0
|
|
60
|
+
tree-sitter-yaml>=0.7.0
|
|
61
|
+
tree-sitter>=0.25.2
|
|
62
|
+
tree-sitter-dart-orchard==0.3.2
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "fluidattacks-core"
|
|
3
|
-
version = "4.
|
|
3
|
+
version = "4.3.1"
|
|
4
4
|
description = "Fluid Attacks Core Library"
|
|
5
5
|
authors = [{ name = "Development", email = "development@fluidattacks.com" }]
|
|
6
6
|
license = { text = "MPL-2.0" }
|
|
@@ -30,25 +30,27 @@ bugsnag = ["bugsnag>=4.7.1"]
|
|
|
30
30
|
git = [
|
|
31
31
|
"aiofiles>=23.2.1",
|
|
32
32
|
"boto3>=1.34",
|
|
33
|
+
"botocore>=1.40.18",
|
|
33
34
|
"GitPython>=3.1.41",
|
|
34
35
|
"pathspec>=0.12.1",
|
|
35
36
|
]
|
|
36
37
|
http = []
|
|
37
38
|
serializers = [
|
|
38
|
-
"tree-sitter>=0.25.2",
|
|
39
39
|
"more-itertools>=10.0.0",
|
|
40
40
|
"tree-sitter-c-sharp>=0.23.1",
|
|
41
41
|
"tree-sitter-go>=0.23.4",
|
|
42
|
+
"tree-sitter-html>=0.23.2",
|
|
42
43
|
"tree-sitter-java>=0.23.4",
|
|
43
44
|
"tree-sitter-javascript>=0.23.1",
|
|
44
45
|
"tree-sitter-json>=0.24.8",
|
|
45
46
|
"tree-sitter-kotlin>=1.0.1",
|
|
46
|
-
"tree-sitter-python>=0.23.4",
|
|
47
47
|
"tree-sitter-php==0.23.11",
|
|
48
|
+
"tree-sitter-python>=0.23.4",
|
|
48
49
|
"tree-sitter-typescript>=0.23.2",
|
|
49
|
-
"tree-sitter-yaml>=0.7.0",
|
|
50
|
-
"tree-sitter-html>=0.23.2",
|
|
51
50
|
"tree-sitter-xml>=0.7.0",
|
|
51
|
+
"tree-sitter-yaml>=0.7.0",
|
|
52
|
+
"tree-sitter>=0.25.2",
|
|
53
|
+
"tree-sitter-dart-orchard==0.3.2",
|
|
52
54
|
]
|
|
53
55
|
cpg = ["aioboto3>=13.3.0", "platformdirs>=4.3.8"]
|
|
54
56
|
filesystem = []
|
|
@@ -58,28 +60,29 @@ all = [
|
|
|
58
60
|
"fluidattacks-core[aio]",
|
|
59
61
|
"fluidattacks-core[authz]",
|
|
60
62
|
"fluidattacks-core[bugsnag]",
|
|
63
|
+
"fluidattacks-core[cpg]",
|
|
64
|
+
"fluidattacks-core[filesystem]",
|
|
61
65
|
"fluidattacks-core[git]",
|
|
62
66
|
"fluidattacks-core[http]",
|
|
63
|
-
"fluidattacks-core[serializers]",
|
|
64
|
-
"fluidattacks-core[filesystem]",
|
|
65
|
-
"fluidattacks-core[cpg]",
|
|
66
67
|
"fluidattacks-core[sarif]",
|
|
67
68
|
"fluidattacks-core[semver]",
|
|
69
|
+
"fluidattacks-core[serializers]",
|
|
68
70
|
]
|
|
69
71
|
|
|
70
72
|
[dependency-groups]
|
|
71
73
|
dev = [
|
|
72
74
|
"boto3-stubs[essential,dynamodbstreams,sts]>=1.34.0",
|
|
73
75
|
"botocore-stubs==1.35.71",
|
|
76
|
+
"datamodel-code-generator>=0.35.0",
|
|
77
|
+
"deptry==0.24.0",
|
|
74
78
|
"import-linter==2.5.2",
|
|
75
79
|
"mypy==1.18.2",
|
|
76
|
-
"
|
|
80
|
+
"pytest-asyncio>=1.1.0",
|
|
77
81
|
"pytest==8.4.1",
|
|
82
|
+
"ruff==0.14.0",
|
|
83
|
+
"types-aioboto3[s3]>=15.1.0",
|
|
78
84
|
"types-aiofiles==24.1.0.20240626",
|
|
79
85
|
"types-simplejson>=3.20.0.20250822",
|
|
80
|
-
"types-aioboto3[s3]>=15.1.0",
|
|
81
|
-
"pytest-asyncio>=1.1.0",
|
|
82
|
-
"datamodel-code-generator>=0.35.0",
|
|
83
86
|
]
|
|
84
87
|
|
|
85
88
|
[tool.setuptools]
|
|
@@ -91,6 +94,26 @@ include = ["fluidattacks_core*"]
|
|
|
91
94
|
[tool.setuptools.package-data]
|
|
92
95
|
"fluidattacks_core.sarif" = ["__init__.py"]
|
|
93
96
|
|
|
97
|
+
[tool.deptry]
|
|
98
|
+
extend_exclude = ["^test/.*"]
|
|
99
|
+
|
|
100
|
+
[tool.deptry.per_rule_ignores]
|
|
101
|
+
DEP002 = [
|
|
102
|
+
"tree-sitter-c-sharp",
|
|
103
|
+
"tree-sitter-go",
|
|
104
|
+
"tree-sitter-html",
|
|
105
|
+
"tree-sitter-java",
|
|
106
|
+
"tree-sitter-javascript",
|
|
107
|
+
"tree-sitter-json",
|
|
108
|
+
"tree-sitter-kotlin",
|
|
109
|
+
"tree-sitter-php",
|
|
110
|
+
"tree-sitter-python",
|
|
111
|
+
"tree-sitter-typescript",
|
|
112
|
+
"tree-sitter-xml",
|
|
113
|
+
"tree-sitter-yaml",
|
|
114
|
+
"tree-sitter-dart-orchard",
|
|
115
|
+
]
|
|
116
|
+
|
|
94
117
|
[build-system]
|
|
95
118
|
requires = ["setuptools>=69", "wheel"]
|
|
96
119
|
build-backend = "setuptools.build_meta"
|
|
@@ -122,10 +122,11 @@ def test_json_formatter_for_lambdas(
|
|
|
122
122
|
@pytest.mark.parametrize(
|
|
123
123
|
("job_name", "job_queue", "product_id", "expected_source", "expected_service_name"),
|
|
124
124
|
[
|
|
125
|
-
("skims_process", "skims_large", "skims", "batch", "
|
|
126
|
-
(
|
|
125
|
+
("skims_process", "skims_large", "skims", "batch", "skims"),
|
|
126
|
+
("skims_process", "skims_large", None, "batch", "skims_process"),
|
|
127
127
|
(None, None, "skims", "batch", "skims"),
|
|
128
128
|
(None, None, None, "batch", "unknown"),
|
|
129
|
+
(None, "skims_large", None, "batch", "from-skims_large"),
|
|
129
130
|
],
|
|
130
131
|
)
|
|
131
132
|
def test_json_formatter_for_batch( # noqa: PLR0913
|
|
@@ -149,6 +150,7 @@ def test_json_formatter_for_batch( # noqa: PLR0913
|
|
|
149
150
|
log_entry = json.loads(output.err)
|
|
150
151
|
assert log_entry["ddsource"] == expected_source
|
|
151
152
|
assert log_entry["dd.service"] == expected_service_name
|
|
153
|
+
assert log_entry["job_metadata.id"] == "111"
|
|
152
154
|
|
|
153
155
|
|
|
154
156
|
@pytest.mark.parametrize(
|
|
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
|
{fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/filesystem/__init__.py
RENAMED
|
File without changes
|
{fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/filesystem/defaults.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/git/codecommit_utils.py
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/logging/sources/types.py
RENAMED
|
File without changes
|
{fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/logging/sources/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/semver/match_versions.py
RENAMED
|
File without changes
|
{fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/serializers/__init__.py
RENAMED
|
File without changes
|
{fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core/serializers/snippet.py
RENAMED
|
File without changes
|
|
File without changes
|
{fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{fluidattacks_core-4.2.1 → fluidattacks_core-4.3.1}/fluidattacks_core.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|