From 4b95e0b746095e8cdfa1a2d2b558f946c9159565 Mon Sep 17 00:00:00 2001 From: Austin Stark <14080242+ausmaster@users.noreply.github.com> Date: Wed, 15 Apr 2026 09:45:17 -0700 Subject: [PATCH] Move `last_seen` from Technology to Asset model. --- bbot_server/models/base.py | 1 + bbot_server/modules/technologies/technologies_models.py | 2 -- tests/test_asset_indexes.py | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bbot_server/models/base.py b/bbot_server/models/base.py index dcb92e6f..aec9effb 100644 --- a/bbot_server/models/base.py +++ b/bbot_server/models/base.py @@ -101,6 +101,7 @@ class BaseAssetFacet(BaseHostModel): # scope is an array of target IDs, which are dynamically maintained as new scan data arrives, or as targets are created/updated. scope: Annotated[list[UUID], "indexed"] = [] + last_seen: Annotated[Optional[float], "indexed"] = None # unless overridden, all asset facets are stored in the asset store __store_type__ = "asset" diff --git a/bbot_server/modules/technologies/technologies_models.py b/bbot_server/modules/technologies/technologies_models.py index 8568a1b9..803ca538 100644 --- a/bbot_server/modules/technologies/technologies_models.py +++ b/bbot_server/modules/technologies/technologies_models.py @@ -1,7 +1,6 @@ from pydantic import Field, computed_field from typing import Annotated -from bbot_server.utils.misc import utc_now from bbot_server.models.base import AssetQuery, BaseAssetFacet @@ -20,7 +19,6 @@ async def build(self, applet=None): class Technology(BaseAssetFacet): technology: Annotated[str, "indexed", "indexed-text"] - last_seen: Annotated[float, "indexed"] = Field(default_factory=utc_now) @computed_field @property diff --git a/tests/test_asset_indexes.py b/tests/test_asset_indexes.py index 4d2355e6..9f3c01fd 100644 --- a/tests/test_asset_indexes.py +++ b/tests/test_asset_indexes.py @@ -69,6 +69,7 @@ async def test_asset_indexes(): assert bbot_server.assets.model.indexed_fields() == { "host": ["indexed"], "scope": ["indexed"], + "last_seen": ["indexed"], "created": ["indexed"], "modified": ["indexed"], "dns_links": ["indexed"],