fluidattacks_core_models 13.1.0__tar.gz → 13.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 (36) hide show
  1. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/.gitignore +2 -0
  2. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/PKG-INFO +1 -1
  3. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/state_machines/__init__.py +2 -0
  4. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/state_machines/component_orchestrator.py +4 -0
  5. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/pyproject.toml +1 -1
  6. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/tests/test_component_orchestrator.py +14 -5
  7. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/uv.lock +1 -1
  8. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/.envrc +0 -0
  9. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/build/default.nix +0 -0
  10. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/build/filter.nix +0 -0
  11. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/flake.lock +0 -0
  12. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/flake.nix +0 -0
  13. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/__init__.py +0 -0
  14. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/py.typed +0 -0
  15. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/scanners/__init__.py +0 -0
  16. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/scanners/apk_config.py +0 -0
  17. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/scanners/common_config.py +0 -0
  18. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/scanners/containers_sca_config.py +0 -0
  19. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/scanners/cspm_config.py +0 -0
  20. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/scanners/dast_config.py +0 -0
  21. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/scanners/loader.py +0 -0
  22. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/scanners/sast_config.py +0 -0
  23. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/scanners/sbom_config.py +0 -0
  24. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/scanners/sca_config.py +0 -0
  25. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/scanners/scan_config.py +0 -0
  26. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/scanners/sniffs_config.py +0 -0
  27. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/state_machines/root_scanner.py +0 -0
  28. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/fluidattacks_core/models/state_machines/types.py +0 -0
  29. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/import-linter.cfg +0 -0
  30. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/mypy.ini +0 -0
  31. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/ruff.toml +0 -0
  32. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/tests/__init__.py +0 -0
  33. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/tests/test_loader_env.py +0 -0
  34. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/tests/test_model_scanner.py +0 -0
  35. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/tests/test_root_scanner.py +0 -0
  36. {fluidattacks_core_models-13.1.0 → fluidattacks_core_models-13.2.0}/tests/test_state_machines.py +0 -0
@@ -1,3 +1,4 @@
1
+ dist/
1
2
  dist-*/
2
3
  /.cargo-cache
3
4
  target/
@@ -5,3 +6,4 @@ target/
5
6
  .venv/
6
7
  .vscode/settings.json
7
8
  .zed/settings.json
9
+ *.so
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: fluidattacks_core_models
3
- Version: 13.1.0
3
+ Version: 13.2.0
4
4
  Summary: Fluid Attacks Core Models Library
5
5
  Author-email: Development <development@fluidattacks.com>
6
6
  License: MPL-2.0
@@ -1,5 +1,6 @@
1
1
  from fluidattacks_core.models.state_machines.component_orchestrator import (
2
2
  ComponentScanOptions,
3
+ ResolvesScanOptions,
3
4
  StateMachineComponentOrchestrator,
4
5
  )
5
6
  from fluidattacks_core.models.state_machines.root_scanner import (
@@ -26,6 +27,7 @@ __all__ = [
26
27
  "ContextualizesScanInput",
27
28
  "ContextualizesScanOptions",
28
29
  "PerRootScanOptions",
30
+ "ResolvesScanOptions",
29
31
  "StateMachine",
30
32
  "StateMachineCloningInput",
31
33
  "StateMachineComponentOrchestrator",
@@ -20,6 +20,10 @@ class ComponentScanOptions(BaseModel):
20
20
  user_email: TVisibleAscii = Field(..., min_length=1)
21
21
 
22
22
 
23
+ class ResolvesScanOptions(ComponentScanOptions):
24
+ pass
25
+
26
+
23
27
  TComponentOptions = TypeVar("TComponentOptions", bound=ComponentScanOptions)
24
28
 
25
29
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "fluidattacks_core_models"
3
- version = "13.1.0"
3
+ version = "13.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" }
@@ -5,6 +5,7 @@ from pydantic import ValidationError
5
5
 
6
6
  from fluidattacks_core.models.state_machines.component_orchestrator import (
7
7
  ComponentScanOptions,
8
+ ResolvesScanOptions,
8
9
  StateMachineComponentOrchestrator,
9
10
  )
10
11
  from fluidattacks_core.models.state_machines.root_scanner import (
@@ -14,7 +15,7 @@ from fluidattacks_core.models.state_machines.root_scanner import (
14
15
  )
15
16
 
16
17
 
17
- class _ResolvesScanOptions(ComponentScanOptions):
18
+ class _OptionsWithAnExtraField(ComponentScanOptions):
18
19
  seed_domain: str
19
20
 
20
21
 
@@ -155,15 +156,23 @@ def test_machine_name_is_injective() -> None:
155
156
 
156
157
 
157
158
  def test_orchestrator_binds_the_options_type_it_is_parameterized_with() -> None:
158
- resolves = _ResolvesScanOptions(
159
+ extended = _OptionsWithAnExtraField(
159
160
  config_id="123456",
160
161
  entity_name="acme",
161
162
  seed_domain="acme.com",
162
163
  user_email="test@fluidattacks.com",
163
164
  )
164
- machine_input = StateMachineComponentOrchestrator[_ResolvesScanOptions].model_validate(
165
- _wire_payload(options=resolves)
165
+ machine_input = StateMachineComponentOrchestrator[_OptionsWithAnExtraField].model_validate(
166
+ _wire_payload(options=extended)
166
167
  )
167
168
  assert json.loads(machine_input.execution_options)["seed_domain"] == "acme.com"
168
169
  with pytest.raises(ValidationError):
169
- StateMachineComponentOrchestrator[_ResolvesScanOptions].model_validate(_wire_payload())
170
+ StateMachineComponentOrchestrator[_OptionsWithAnExtraField].model_validate(_wire_payload())
171
+
172
+
173
+ def test_resolves_options_add_no_fields_of_their_own() -> None:
174
+ options = ResolvesScanOptions(
175
+ config_id="123456", entity_name="acme", user_email="test@fluidattacks.com"
176
+ )
177
+ with pytest.raises(ValidationError):
178
+ ResolvesScanOptions.model_validate({**options.model_dump(), "seed_domain": "acme.com"})
@@ -187,7 +187,7 @@ wheels = [
187
187
 
188
188
  [[package]]
189
189
  name = "fluidattacks-core-models"
190
- version = "13.1.0"
190
+ version = "13.2.0"
191
191
  source = { editable = "." }
192
192
  dependencies = [
193
193
  { name = "pydantic" },