fluidattacks-core 4.2.1__py3-none-any.whl → 4.3.0__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.
@@ -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": get_env_var("AWS_LAMBDA_FUNCTION_NAME") or "unknown",
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
- job_name = get_env_var("JOB_NAME")
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
- job_name or job_definition_name or (f"from-{job_queue}" if job_queue else product_id)
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 or "unknown",
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
- "deployment.pipeline.type": pipeline,
112
+ "pipeline_metadata.type": pipeline,
92
113
  **(
93
114
  {
94
- "deployment.pipeline.CI_JOB_ID": get_env_var("CI_JOB_ID") or "unknown",
95
- "deployment.pipeline.CI_JOB_URL": get_env_var("CI_JOB_URL") or "unknown",
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
- "deployment.pipeline.CIRCLE_BUILD_NUM": get_env_var("CIRCLE_BUILD_NUM")
123
+ "pipeline_metadata.CIRCLE_BUILD_NUM": get_env_var("CIRCLE_BUILD_NUM")
103
124
  or "unknown",
104
- "deployment.pipeline.CIRCLE_BUILD_URL": get_env_var("CIRCLE_BUILD_URL")
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
- "deployment.pipeline.System.JobId": get_env_var("System.JobId") or "unknown",
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
- "deployment.pipeline.BUILD_NUMBER": get_env_var("BUILD_NUMBER") or "unknown",
120
- "deployment.pipeline.BUILD_ID": get_env_var("BUILD_ID") or "unknown",
121
- "deployment.pipeline.BUILD_URL": get_env_var("BUILD_URL") or "unknown",
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": get_env_var("PRODUCT_ID") or "unknown",
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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fluidattacks-core
3
- Version: 4.2.1
3
+ Version: 4.3.0
4
4
  Summary: Fluid Attacks Core Library
5
5
  Author-email: Development <development@fluidattacks.com>
6
6
  License: MPL-2.0
@@ -25,24 +25,25 @@ 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"
46
47
  Provides-Extra: cpg
47
48
  Requires-Dist: aioboto3>=13.3.0; extra == "cpg"
48
49
  Requires-Dist: platformdirs>=4.3.8; extra == "cpg"
@@ -54,13 +55,13 @@ Provides-Extra: all
54
55
  Requires-Dist: fluidattacks-core[aio]; extra == "all"
55
56
  Requires-Dist: fluidattacks-core[authz]; extra == "all"
56
57
  Requires-Dist: fluidattacks-core[bugsnag]; extra == "all"
58
+ Requires-Dist: fluidattacks-core[cpg]; extra == "all"
59
+ Requires-Dist: fluidattacks-core[filesystem]; extra == "all"
57
60
  Requires-Dist: fluidattacks-core[git]; extra == "all"
58
61
  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
62
  Requires-Dist: fluidattacks-core[sarif]; extra == "all"
63
63
  Requires-Dist: fluidattacks-core[semver]; extra == "all"
64
+ Requires-Dist: fluidattacks-core[serializers]; extra == "all"
64
65
 
65
66
  # Fluid Attacks Core Library
66
67
 
@@ -37,7 +37,7 @@ fluidattacks_core/logging/formatters.py,sha256=SCA4k9XvHJknmkTv63uiCBU31VrWOsgA7
37
37
  fluidattacks_core/logging/handlers.py,sha256=7fjCG0AqwlF0PRmH6MwkYRO1qdVoRjyYAAwML3A5lXY,4658
38
38
  fluidattacks_core/logging/presets.py,sha256=KU6d6PI61kklJ_o7NgAzU1DahEPM0KwwjTYHo2naHv8,939
39
39
  fluidattacks_core/logging/utils.py,sha256=jbAcwr0L6iPsId3dYEp-vAbtFex2UUU2l2iIk1F60BE,1115
40
- fluidattacks_core/logging/sources/__init__.py,sha256=lRd6zhhoRuinh27MtQv5j8nzZfk53e4hzz882_AGXic,4891
40
+ fluidattacks_core/logging/sources/__init__.py,sha256=bUOsNhmBq9WHLvPxCW3G0Az4D8Wunp0mCCqEYlCsjsI,5937
41
41
  fluidattacks_core/logging/sources/types.py,sha256=ial-ASN6e0EV7XeetDknjcMx_HjqL6ilFwzNwqw5YyY,338
42
42
  fluidattacks_core/logging/sources/utils.py,sha256=tMoEVqrkVtqMuYtjgG6ih0HOjHyN3tn9G7nZhNoo6IU,1102
43
43
  fluidattacks_core/sarif/__init__.py,sha256=vZkbzafVeqRPEc_dzq6oevZuNp50NNyNGa_eS0oNXnc,101519
@@ -46,7 +46,7 @@ fluidattacks_core/semver/match_versions.py,sha256=3L3C0TIVH0AtDpISvk5HHBXFSbJh5V
46
46
  fluidattacks_core/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
47
  fluidattacks_core/serializers/snippet.py,sha256=e520pZHC-fsNuYVNY30A7TcSugvUlFL6xdr74j5aCDM,12780
48
48
  fluidattacks_core/serializers/syntax.py,sha256=DkRsdMyMNrL0pRfsOSVAx79K8F0AmjBk676_d_v7PjM,15908
49
- fluidattacks_core-4.2.1.dist-info/METADATA,sha256=0O-UKXy3eSmKQDGSpwrNHdrN2Ozet4W8fxoXDP8Wkrc,3199
50
- fluidattacks_core-4.2.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
51
- fluidattacks_core-4.2.1.dist-info/top_level.txt,sha256=m49ZyZ2zPQmDBxkSpjb20wr-ZbGVXdOMFBZrDiP5Lb8,18
52
- fluidattacks_core-4.2.1.dist-info/RECORD,,
49
+ fluidattacks_core-4.3.0.dist-info/METADATA,sha256=g4N-6VQpds-l5_k99tEPNc5toW78Htw7gxmNtkdtbIQ,3248
50
+ fluidattacks_core-4.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
51
+ fluidattacks_core-4.3.0.dist-info/top_level.txt,sha256=m49ZyZ2zPQmDBxkSpjb20wr-ZbGVXdOMFBZrDiP5Lb8,18
52
+ fluidattacks_core-4.3.0.dist-info/RECORD,,