Skip to content

Commit b21f568

Browse files
committed
fix: change VEX responses to return VEX document inside the metadata key
1 parent f46079c commit b21f568

File tree

8 files changed

+6
-36
lines changed

8 files changed

+6
-36
lines changed

app/domain/vex_generation/processors/sbom_processor.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,6 @@ async def save_vex_tix(
147147
sbom_path=sbom_path,
148148
sbom_name=sbom_path.split("/")[-1] if "/" in sbom_path else sbom_path,
149149
moment=now,
150-
statements=vex.get("statements", []),
151150
metadata=vex
152151
)
153152
vex_id = await self.vex_service.create_vex(vex_create)
@@ -158,7 +157,6 @@ async def save_vex_tix(
158157
sbom_path=sbom_path,
159158
sbom_name=sbom_path.split("/")[-1] if "/" in sbom_path else sbom_path,
160159
moment=now,
161-
statements=tix.get("statements", []),
162160
metadata=tix
163161
)
164162
tix_id = await self.tix_service.create_tix(tix_create)

app/schemas/tix/tix.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,12 @@ class TIXBase(BaseModel):
1515

1616

1717
class TIXCreate(TIXBase):
18-
statements: list[dict[str, Any]] = Field(default_factory=list)
1918
metadata: dict[str, Any] | None = None
2019

2120

2221
class TIXResponse(TIXBase):
2322
id: str = Field(..., alias="_id")
24-
statements: list[dict[str, Any]] = Field(default_factory=list)
23+
metadata: dict[str, Any] | None = None
2524

2625
model_config = ConfigDict(
2726
populate_by_name=True,

app/schemas/vex/vex.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,12 @@ class VEXBase(BaseModel):
1515

1616

1717
class VEXCreate(VEXBase):
18-
statements: list[dict[str, Any]] = Field(default_factory=list)
1918
metadata: dict[str, Any] | None = None
2019

2120

2221
class VEXResponse(VEXBase):
2322
id: str = Field(..., alias="_id")
24-
statements: list[dict[str, Any]] = Field(default_factory=list)
23+
metadata: dict[str, Any] | None = None
2524

2625
model_config = ConfigDict(
2726
populate_by_name=True,

app/services/tix_service.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ async def read_user_tixs(self, user_id: str) -> list[TIXResponse]:
4545
},
4646
{
4747
"$lookup": {
48-
"from": "tixs",
48+
"from": "tix",
4949
"localField": "tixs",
5050
"foreignField": "_id",
5151
"as": 'lookup'
@@ -60,7 +60,7 @@ async def read_user_tixs(self, user_id: str) -> list[TIXResponse]:
6060
"sbom_path": "$lookup.sbom_path",
6161
"sbom_name": "$lookup.sbom_name",
6262
"moment": "$lookup.moment",
63-
"statements": "$lookup.statements"
63+
"metadata": "$lookup.metadata"
6464
}
6565
}
6666
]

app/services/vex_service.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ async def read_user_vexs(self, user_id: str) -> list[VEXResponse]:
4545
},
4646
{
4747
"$lookup": {
48-
"from": "vexs",
48+
"from": "vex",
4949
"localField": "vexs",
5050
"foreignField": "_id",
5151
"as": 'lookup'
@@ -60,7 +60,7 @@ async def read_user_vexs(self, user_id: str) -> list[VEXResponse]:
6060
"sbom_path": "$lookup.sbom_path",
6161
"sbom_name": "$lookup.sbom_name",
6262
"moment": "$lookup.moment",
63-
"statements": "$lookup.statements"
63+
"metadata": "$lookup.metadata"
6464
}
6565
}
6666
]

tests/unit/processors/test_sbom_processor.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,15 +209,13 @@ async def test_save_vex_tix(self, processor, mock_vex_service, mock_tix_service)
209209
assert vex_call.name == "test-repo"
210210
assert vex_call.sbom_path == sbom_path
211211
assert vex_call.sbom_name == "sbom.json"
212-
assert vex_call.statements == [{"id": "stmt1"}]
213212

214213
mock_tix_service.create_tix.assert_called_once()
215214
tix_call = mock_tix_service.create_tix.call_args[0][0]
216215
assert tix_call.owner == "test-owner"
217216
assert tix_call.name == "test-repo"
218217
assert tix_call.sbom_path == sbom_path
219218
assert tix_call.sbom_name == "sbom.json"
220-
assert tix_call.statements == [{"id": "stmt2"}]
221219

222220
mock_vex_service.update_user_vexs.assert_called_once_with("vex_id_123", "507f1f77bcf86cd799439011")
223221
mock_tix_service.update_user_tixs.assert_called_once_with("tix_id_123", "507f1f77bcf86cd799439011")

tests/unit/schemas/test_tix.py

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -86,20 +86,8 @@ def test_valid_tix_create(self):
8686
}
8787
tix = TIXCreate(**data)
8888
assert tix.owner == "test-owner"
89-
assert tix.statements == []
9089
assert tix.metadata is None
9190

92-
def test_tix_create_with_statements(self):
93-
data = {
94-
"owner": "test-owner",
95-
"name": "test-repo",
96-
"sbom_path": "/path/to/sbom.json",
97-
"statements": [{"id": "stmt-1", "status": "exploitable"}]
98-
}
99-
tix = TIXCreate(**data)
100-
assert len(tix.statements) == 1
101-
assert tix.statements[0]["id"] == "stmt-1"
102-
10391
def test_tix_create_with_metadata(self):
10492
data = {
10593
"owner": "test-owner",

tests/unit/schemas/test_vex.py

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -86,20 +86,8 @@ def test_valid_vex_create(self):
8686
}
8787
vex = VEXCreate(**data)
8888
assert vex.owner == "test-owner"
89-
assert vex.statements == []
9089
assert vex.metadata is None
9190

92-
def test_vex_create_with_statements(self):
93-
data = {
94-
"owner": "test-owner",
95-
"name": "test-repo",
96-
"sbom_path": "/path/to/sbom.json",
97-
"statements": [{"id": "stmt-1", "status": "not_affected"}]
98-
}
99-
vex = VEXCreate(**data)
100-
assert len(vex.statements) == 1
101-
assert vex.statements[0]["id"] == "stmt-1"
102-
10391
def test_vex_create_with_metadata(self):
10492
data = {
10593
"owner": "test-owner",

0 commit comments

Comments
 (0)