fluidattacks_core_models 14.0.0__tar.gz → 14.2.0__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.
Files changed (38) hide show
  1. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/PKG-INFO +1 -1
  2. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/scanners/__init__.py +6 -0
  3. fluidattacks_core_models-14.2.0/fluidattacks_core/models/scanners/resolves_config.py +6 -0
  4. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/scanners/scan_config.py +4 -0
  5. fluidattacks_core_models-14.2.0/fluidattacks_core/models/scanners/sspm_config.py +34 -0
  6. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/pyproject.toml +1 -1
  7. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/tests/test_model_scanner.py +24 -0
  8. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/uv.lock +1 -1
  9. fluidattacks_core_models-14.0.0/build/default.nix +0 -19
  10. fluidattacks_core_models-14.0.0/build/filter.nix +0 -13
  11. fluidattacks_core_models-14.0.0/flake.lock +0 -303
  12. fluidattacks_core_models-14.0.0/flake.nix +0 -29
  13. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/.envrc +0 -0
  14. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/.gitignore +0 -0
  15. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/__init__.py +0 -0
  16. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/py.typed +0 -0
  17. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/scanners/apk_config.py +0 -0
  18. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/scanners/common_config.py +0 -0
  19. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/scanners/containers_sca_config.py +0 -0
  20. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/scanners/cspm_config.py +0 -0
  21. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/scanners/dast_config.py +0 -0
  22. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/scanners/loader.py +0 -0
  23. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/scanners/sast_config.py +0 -0
  24. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/scanners/sbom_config.py +0 -0
  25. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/scanners/sca_config.py +0 -0
  26. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/scanners/sniffs_config.py +0 -0
  27. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/state_machines/__init__.py +0 -0
  28. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/state_machines/component_orchestrator.py +0 -0
  29. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/state_machines/root_scanner.py +0 -0
  30. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/fluidattacks_core/models/state_machines/types.py +0 -0
  31. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/import-linter.cfg +0 -0
  32. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/mypy.ini +0 -0
  33. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/ruff.toml +0 -0
  34. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/tests/__init__.py +0 -0
  35. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/tests/test_component_orchestrator.py +0 -0
  36. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/tests/test_loader_env.py +0 -0
  37. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/tests/test_root_scanner.py +0 -0
  38. {fluidattacks_core_models-14.0.0 → fluidattacks_core_models-14.2.0}/tests/test_state_machines.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: fluidattacks_core_models
3
- Version: 14.0.0
3
+ Version: 14.2.0
4
4
  Summary: Fluid Attacks Core Models Library
5
5
  Author-email: Development <development@fluidattacks.com>
6
6
  License: MPL-2.0
@@ -20,6 +20,7 @@ from fluidattacks_core.models.scanners.dast_config import (
20
20
  DastUrl,
21
21
  )
22
22
  from fluidattacks_core.models.scanners.loader import build_config, load_yaml_mapping
23
+ from fluidattacks_core.models.scanners.resolves_config import ResolvesConfig
23
24
  from fluidattacks_core.models.scanners.sast_config import SastConfig
24
25
  from fluidattacks_core.models.scanners.sbom_config import (
25
26
  SbomAwsCredentials,
@@ -32,6 +33,7 @@ from fluidattacks_core.models.scanners.sbom_config import (
32
33
  from fluidattacks_core.models.scanners.sca_config import ScaConfig
33
34
  from fluidattacks_core.models.scanners.scan_config import ScanConfig
34
35
  from fluidattacks_core.models.scanners.sniffs_config import SniffsConfig
36
+ from fluidattacks_core.models.scanners.sspm_config import GithubApp, GithubPat, SspmConfig
35
37
 
36
38
  __all__ = [
37
39
  "ApkConfig",
@@ -49,9 +51,12 @@ __all__ = [
49
51
  "DockerCredentialsConfig",
50
52
  "EcrCredentialsConfig",
51
53
  "FalsePositivesConfig",
54
+ "GithubApp",
55
+ "GithubPat",
52
56
  "LocalesEnum",
53
57
  "OutputConfig",
54
58
  "OutputFormat",
59
+ "ResolvesConfig",
55
60
  "SastConfig",
56
61
  "SbomAwsCredentials",
57
62
  "SbomConfig",
@@ -62,6 +67,7 @@ __all__ = [
62
67
  "ScanConfig",
63
68
  "SniffsConfig",
64
69
  "SourceType",
70
+ "SspmConfig",
65
71
  "build_config",
66
72
  "load_yaml_mapping",
67
73
  ]
@@ -0,0 +1,6 @@
1
+ from pydantic import BaseModel
2
+
3
+
4
+ class ResolvesConfig(BaseModel):
5
+ model_config = {"extra": "forbid"}
6
+ hosts: list[str] = []
@@ -9,10 +9,12 @@ from fluidattacks_core.models.scanners.common_config import (
9
9
  from fluidattacks_core.models.scanners.containers_sca_config import ContainersScaConfig
10
10
  from fluidattacks_core.models.scanners.cspm_config import CspmConfig
11
11
  from fluidattacks_core.models.scanners.dast_config import DastConfig
12
+ from fluidattacks_core.models.scanners.resolves_config import ResolvesConfig
12
13
  from fluidattacks_core.models.scanners.sast_config import SastConfig
13
14
  from fluidattacks_core.models.scanners.sbom_config import SbomConfig
14
15
  from fluidattacks_core.models.scanners.sca_config import ScaConfig
15
16
  from fluidattacks_core.models.scanners.sniffs_config import SniffsConfig
17
+ from fluidattacks_core.models.scanners.sspm_config import SspmConfig
16
18
 
17
19
 
18
20
  class ScanConfig(BaseModel):
@@ -34,6 +36,8 @@ class ScanConfig(BaseModel):
34
36
  sbom: SbomConfig | None = None
35
37
  dast: DastConfig | None = None
36
38
  cspm: CspmConfig | None = None
39
+ sspm: SspmConfig | None = None
37
40
  apk: ApkConfig | None = None
38
41
  false_positives_identified: FalsePositivesConfig | None = None
39
42
  ss: SniffsConfig | None = None
43
+ resolves: ResolvesConfig | None = None
@@ -0,0 +1,34 @@
1
+ from pydantic import BaseModel, Field, field_validator
2
+
3
+ from fluidattacks_core.models.scanners.loader import LoaderValidationInfo, resolve_env_var
4
+
5
+
6
+ class GithubPat(BaseModel):
7
+ model_config = {"extra": "forbid"}
8
+ organization: str
9
+ pat_token: str = Field(repr=False)
10
+ environment_id: str | None = None
11
+
12
+ @field_validator("pat_token", mode="before")
13
+ @classmethod
14
+ def _resolve_credentials(cls, v: object, info: LoaderValidationInfo) -> object:
15
+ return resolve_env_var(v, info)
16
+
17
+
18
+ class GithubApp(BaseModel):
19
+ model_config = {"extra": "forbid"}
20
+ organization: str
21
+ app_id: str
22
+ installation_id: str
23
+ private_key: str = Field(repr=False)
24
+ environment_id: str | None = None
25
+
26
+ @field_validator("private_key", mode="before")
27
+ @classmethod
28
+ def _resolve_credentials(cls, v: object, info: LoaderValidationInfo) -> object:
29
+ return resolve_env_var(v, info)
30
+
31
+
32
+ class SspmConfig(BaseModel):
33
+ model_config = {"extra": "forbid"}
34
+ github_credentials: list[GithubPat | GithubApp] = []
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fluidattacks_core_models"
3
- version = "14.0.0"
3
+ version = "14.2.0"
4
4
  description = "Fluid Attacks Core Models Library"
5
5
  authors = [{ name = "Development", email = "development@fluidattacks.com" }]
6
6
  license = { text = "MPL-2.0" }
@@ -22,6 +22,7 @@ from fluidattacks_core.models.scanners import (
22
22
  LocalesEnum,
23
23
  OutputConfig,
24
24
  OutputFormat,
25
+ ResolvesConfig,
25
26
  SastConfig,
26
27
  SbomAwsCredentials,
27
28
  SbomConfig,
@@ -98,6 +99,11 @@ cspm:
98
99
  - role: arn:aws:iam::123456789012:role/ScanRole
99
100
  external_id: ext-123
100
101
  environment_id: prod
102
+ sspm:
103
+ github_credentials:
104
+ - organization: octo-org
105
+ pat_token: ghp-token
106
+ environment_id: scm
101
107
  apk:
102
108
  environments:
103
109
  - apk_file_path: app.apk
@@ -229,6 +235,19 @@ def test_build_config_cspm(yaml_file: Path) -> None:
229
235
  assert role.environment_id == "prod"
230
236
 
231
237
 
238
+ def test_build_config_sspm(yaml_file: Path) -> None:
239
+ config = build_config(str(yaml_file), ScanConfig)
240
+ assert config.sspm is not None
241
+ assert config.sspm.github_credentials[0].organization == "octo-org"
242
+
243
+
244
+ def test_unknown_nested_key_sspm(tmp_path: Path) -> None:
245
+ f = tmp_path / "config.yaml"
246
+ f.write_text("sspm:\n github_credentals: []\n")
247
+ with pytest.raises(ValidationError):
248
+ build_config(str(f), ScanConfig)
249
+
250
+
232
251
  def test_build_config_apk(yaml_file: Path) -> None:
233
252
  config = build_config(str(yaml_file), ScanConfig)
234
253
  assert config.apk is not None
@@ -258,6 +277,7 @@ def test_scan_config_defaults() -> None:
258
277
  assert config.checks is None
259
278
  assert config.sast is None
260
279
  assert config.dast is None
280
+ assert config.resolves is None
261
281
  assert config.cspm is None
262
282
  assert config.apk is None
263
283
 
@@ -517,6 +537,10 @@ def test_scan_config_ss_defaults() -> None:
517
537
  assert config.ss is None
518
538
 
519
539
 
540
+ def test_resolves_config_defaults() -> None:
541
+ assert ResolvesConfig.model_validate({}).hosts == []
542
+
543
+
520
544
  def test_unknown_nested_key_sast(tmp_path: Path) -> None:
521
545
  f = tmp_path / "config.yaml"
522
546
  f.write_text("sast:\n incldue:\n - .\n")
@@ -187,7 +187,7 @@ wheels = [
187
187
 
188
188
  [[package]]
189
189
  name = "fluidattacks-core-models"
190
- version = "14.0.0"
190
+ version = "14.1.0"
191
191
  source = { editable = "." }
192
192
  dependencies = [
193
193
  { name = "pydantic" },
@@ -1,19 +0,0 @@
1
- { src, workspace_root }:
2
- {
3
- inherit src workspace_root;
4
- root_path = "develops/fluidattacks-core/python/models";
5
- module_name = "fluidattacks_core";
6
- pypi_token = {
7
- method = "oidc";
8
- };
9
- override = {
10
- checks = {
11
- basedpyright = false;
12
- };
13
- configs = {
14
- import_linter = ../import-linter.cfg;
15
- mypy = ../mypy.ini;
16
- ruff = ../ruff.toml;
17
- };
18
- };
19
- }
@@ -1,13 +0,0 @@
1
- path_filter: src:
2
- path_filter {
3
- root = src;
4
- include = [
5
- "fluidattacks_core"
6
- "tests"
7
- "import-linter.cfg"
8
- "mypy.ini"
9
- "pyproject.toml"
10
- "ruff.toml"
11
- "uv.lock"
12
- ];
13
- }
@@ -1,303 +0,0 @@
1
- {
2
- "nodes": {
3
- "flake-parts": {
4
- "inputs": {
5
- "nixpkgs-lib": "nixpkgs-lib"
6
- },
7
- "locked": {
8
- "lastModified": 1762810396,
9
- "narHash": "sha256-dxFVgQPG+R72dkhXTtqUm7KpxElw3u6E+YlQ2WaDgt8=",
10
- "owner": "hercules-ci",
11
- "repo": "flake-parts",
12
- "rev": "0bdadb1b265fb4143a75bd1ec7d8c915898a9923",
13
- "type": "github"
14
- },
15
- "original": {
16
- "owner": "hercules-ci",
17
- "repo": "flake-parts",
18
- "type": "github"
19
- }
20
- },
21
- "nix_filter": {
22
- "locked": {
23
- "lastModified": 1757882181,
24
- "narHash": "sha256-+cCxYIh2UNalTz364p+QYmWHs0P+6wDhiWR4jDIKQIU=",
25
- "owner": "numtide",
26
- "repo": "nix-filter",
27
- "rev": "59c44d1909c72441144b93cf0f054be7fe764de5",
28
- "type": "github"
29
- },
30
- "original": {
31
- "owner": "numtide",
32
- "repo": "nix-filter",
33
- "type": "github"
34
- }
35
- },
36
- "nixpkgs": {
37
- "locked": {
38
- "lastModified": 1758690382,
39
- "narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=",
40
- "owner": "nixos",
41
- "repo": "nixpkgs",
42
- "rev": "e643668fd71b949c53f8626614b21ff71a07379d",
43
- "type": "github"
44
- },
45
- "original": {
46
- "owner": "nixos",
47
- "ref": "nixos-unstable",
48
- "repo": "nixpkgs",
49
- "type": "github"
50
- }
51
- },
52
- "nixpkgs-lib": {
53
- "locked": {
54
- "lastModified": 1761765539,
55
- "narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
56
- "owner": "nix-community",
57
- "repo": "nixpkgs.lib",
58
- "rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
59
- "type": "github"
60
- },
61
- "original": {
62
- "owner": "nix-community",
63
- "repo": "nixpkgs.lib",
64
- "type": "github"
65
- }
66
- },
67
- "nixpkgs_2": {
68
- "locked": {
69
- "lastModified": 1758690382,
70
- "narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=",
71
- "owner": "nixos",
72
- "repo": "nixpkgs",
73
- "rev": "e643668fd71b949c53f8626614b21ff71a07379d",
74
- "type": "github"
75
- },
76
- "original": {
77
- "owner": "nixos",
78
- "ref": "nixos-unstable",
79
- "repo": "nixpkgs",
80
- "type": "github"
81
- }
82
- },
83
- "nixpkgs_3": {
84
- "locked": {
85
- "lastModified": 1761373498,
86
- "narHash": "sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c=",
87
- "owner": "nixos",
88
- "repo": "nixpkgs",
89
- "rev": "6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce",
90
- "type": "github"
91
- },
92
- "original": {
93
- "owner": "nixos",
94
- "ref": "nixos-unstable",
95
- "repo": "nixpkgs",
96
- "type": "github"
97
- }
98
- },
99
- "nixpkgs_flake": {
100
- "locked": {
101
- "lastModified": 1778253243,
102
- "narHash": "sha256-KkH2QvU6iRLDTGGEwH5jnMqHWj4zMTuHxi1S1zdr01w=",
103
- "owner": "nixos",
104
- "repo": "nixpkgs",
105
- "rev": "4fcda7103530b23c5ca44286344912082aad4220",
106
- "type": "github"
107
- },
108
- "original": {
109
- "owner": "nixos",
110
- "repo": "nixpkgs",
111
- "type": "github"
112
- }
113
- },
114
- "pyproject-build-systems": {
115
- "inputs": {
116
- "nixpkgs": "nixpkgs",
117
- "pyproject-nix": "pyproject-nix",
118
- "uv2nix": "uv2nix"
119
- },
120
- "locked": {
121
- "lastModified": 1761781027,
122
- "narHash": "sha256-YDvxPAm2WnxrznRqWwHLjryBGG5Ey1ATEJXrON+TWt8=",
123
- "owner": "pyproject-nix",
124
- "repo": "build-system-pkgs",
125
- "rev": "795a980d25301e5133eca37adae37283ec3c8e66",
126
- "type": "github"
127
- },
128
- "original": {
129
- "owner": "pyproject-nix",
130
- "repo": "build-system-pkgs",
131
- "type": "github"
132
- }
133
- },
134
- "pyproject-nix": {
135
- "inputs": {
136
- "nixpkgs": [
137
- "python_builder",
138
- "pyproject-build-systems",
139
- "nixpkgs"
140
- ]
141
- },
142
- "locked": {
143
- "lastModified": 1758265079,
144
- "narHash": "sha256-amLaLNwKSZPShQHzfgmc/9o76dU8xzN0743dWgvYlr8=",
145
- "owner": "nix-community",
146
- "repo": "pyproject.nix",
147
- "rev": "02e9418fd4af638447dca4b17b1280da95527fc9",
148
- "type": "github"
149
- },
150
- "original": {
151
- "owner": "nix-community",
152
- "repo": "pyproject.nix",
153
- "type": "github"
154
- }
155
- },
156
- "pyproject-nix_2": {
157
- "inputs": {
158
- "nixpkgs": "nixpkgs_2"
159
- },
160
- "locked": {
161
- "lastModified": 1762427963,
162
- "narHash": "sha256-CkPlAbIQ87wmjy5qHibfzk4DmMGBNqFer+lLfXjpP5M=",
163
- "owner": "pyproject-nix",
164
- "repo": "pyproject.nix",
165
- "rev": "4540ea004e04fcd12dd2738d51383d10f956f7b9",
166
- "type": "github"
167
- },
168
- "original": {
169
- "owner": "pyproject-nix",
170
- "repo": "pyproject.nix",
171
- "type": "github"
172
- }
173
- },
174
- "pyproject-nix_3": {
175
- "inputs": {
176
- "nixpkgs": [
177
- "python_builder",
178
- "uv2nix",
179
- "nixpkgs"
180
- ]
181
- },
182
- "locked": {
183
- "lastModified": 1760402624,
184
- "narHash": "sha256-jF6UKLs2uGc2rtved8Vrt58oTWjTQoAssuYs/0578Z4=",
185
- "owner": "pyproject-nix",
186
- "repo": "pyproject.nix",
187
- "rev": "84c4ea102127c77058ea1ed7be7300261fafc7d2",
188
- "type": "github"
189
- },
190
- "original": {
191
- "owner": "pyproject-nix",
192
- "repo": "pyproject.nix",
193
- "type": "github"
194
- }
195
- },
196
- "python_builder": {
197
- "inputs": {
198
- "nix_filter": "nix_filter",
199
- "nixpkgs_flake": "nixpkgs_flake",
200
- "pyproject-build-systems": "pyproject-build-systems",
201
- "pyproject-nix": "pyproject-nix_2",
202
- "shell-helpers": "shell-helpers",
203
- "uv2nix": "uv2nix_2"
204
- },
205
- "locked": {
206
- "dir": "common/utils/python-builder",
207
- "lastModified": 1787078362,
208
- "narHash": "sha256-HYL7Rn6SuNjYxkt/PwFLksZjsauCiY+ENbOWryLsIlw=",
209
- "ref": "refs/heads/trunk",
210
- "rev": "09fd25a13309eb5e3b5b2a061bb340df3ae5d281",
211
- "shallow": true,
212
- "type": "git",
213
- "url": "ssh://git@gitlab.com/fluidattacks/universe"
214
- },
215
- "original": {
216
- "dir": "common/utils/python-builder",
217
- "rev": "09fd25a13309eb5e3b5b2a061bb340df3ae5d281",
218
- "shallow": true,
219
- "type": "git",
220
- "url": "ssh://git@gitlab.com/fluidattacks/universe"
221
- }
222
- },
223
- "root": {
224
- "inputs": {
225
- "python_builder": "python_builder"
226
- }
227
- },
228
- "shell-helpers": {
229
- "inputs": {
230
- "flake-parts": "flake-parts",
231
- "nixpkgs": [
232
- "python_builder",
233
- "nixpkgs_flake"
234
- ]
235
- },
236
- "locked": {
237
- "dir": "common/utils/shell-helpers",
238
- "lastModified": 1762806066,
239
- "narHash": "sha256-Wz99Fl7SpPU1NkTHJ36XOo6DjOEAMXCw3ThRABOS2Hs=",
240
- "ref": "refs/heads/trunk",
241
- "rev": "d73cfdc7ae9e7f547e22a4481d4c2ccce38b26a8",
242
- "shallow": true,
243
- "type": "git",
244
- "url": "ssh://git@gitlab.com/fluidattacks/universe"
245
- },
246
- "original": {
247
- "dir": "common/utils/shell-helpers",
248
- "rev": "d73cfdc7ae9e7f547e22a4481d4c2ccce38b26a8",
249
- "shallow": true,
250
- "type": "git",
251
- "url": "ssh://git@gitlab.com/fluidattacks/universe"
252
- }
253
- },
254
- "uv2nix": {
255
- "inputs": {
256
- "nixpkgs": [
257
- "python_builder",
258
- "pyproject-build-systems",
259
- "nixpkgs"
260
- ],
261
- "pyproject-nix": [
262
- "python_builder",
263
- "pyproject-build-systems",
264
- "pyproject-nix"
265
- ]
266
- },
267
- "locked": {
268
- "lastModified": 1758933732,
269
- "narHash": "sha256-HAmm1GBS1myZCFuog0DC2ZLaynvZtiUI2Crmo+cdQI0=",
270
- "owner": "pyproject-nix",
271
- "repo": "uv2nix",
272
- "rev": "273ce18f913d8559e0d04f820d724308966d7c4d",
273
- "type": "github"
274
- },
275
- "original": {
276
- "owner": "pyproject-nix",
277
- "repo": "uv2nix",
278
- "type": "github"
279
- }
280
- },
281
- "uv2nix_2": {
282
- "inputs": {
283
- "nixpkgs": "nixpkgs_3",
284
- "pyproject-nix": "pyproject-nix_3"
285
- },
286
- "locked": {
287
- "lastModified": 1761872265,
288
- "narHash": "sha256-i25GRgp2vUOebY70L3NTAgkd+Pr1hnn5xM3qHxH0ONU=",
289
- "owner": "pyproject-nix",
290
- "repo": "uv2nix",
291
- "rev": "74dfb62871be152ad3673b143b0cc56105a4f3c5",
292
- "type": "github"
293
- },
294
- "original": {
295
- "owner": "pyproject-nix",
296
- "repo": "uv2nix",
297
- "type": "github"
298
- }
299
- }
300
- },
301
- "root": "root",
302
- "version": 7
303
- }
@@ -1,29 +0,0 @@
1
- {
2
- description = "Fluid Attacks Core models package.";
3
-
4
- inputs = {
5
- python_builder = {
6
- url = "git+ssh://git@gitlab.com/fluidattacks/universe?shallow=1&rev=09fd25a13309eb5e3b5b2a061bb340df3ae5d281&dir=common/utils/python-builder";
7
- };
8
- };
9
-
10
- outputs =
11
- { self, ... }@inputs:
12
- let
13
- build_args =
14
- {
15
- system,
16
- python_version,
17
- nixpkgs,
18
- builders,
19
- scripts,
20
- }:
21
- import ./build {
22
- src = import ./build/filter.nix nixpkgs.nix-filter self;
23
- workspace_root = ./.;
24
- };
25
- in
26
- {
27
- packages = inputs.python_builder.outputs.build build_args;
28
- };
29
- }