Files
rengine/shared/models/dashboard.py
T
Yogesh Ojha 2faf1dddaf feat: Implement scan orchestrator with event publishing and tracking
- Add aggregate functions for scan status and counts in orchestrator.
- Create ScanEventPublisher for emitting scan-related events.
- Introduce ScanActivityService for managing scan activities.
- Implement ScanCommandRecorder for logging command executions.
- Develop canvas building and finalization logic for scan tasks.
- Refactor scan task to utilize orchestrator functions for running stages and finalizing scans.
- Enhance scan notification system to dispatch relevant events.
- Integrate command recording into CLI tool execution for better tracking.
2026-06-23 20:07:46 +05:30

48 lines
936 B
Python

import uuid
from datetime import datetime
from pydantic import BaseModel, Field
class TakeoverCandidate(BaseModel):
name: str
target_id: uuid.UUID
cname: str
provider: str
last_seen: datetime
class TakeoverSignal(BaseModel):
count: int
items: list[TakeoverCandidate] = Field(default_factory=list)
class SpoofableDomain(BaseModel):
target_id: uuid.UUID
target_value: str
reason: str
class SpoofableSignal(BaseModel):
count: int
items: list[SpoofableDomain] = Field(default_factory=list)
class StaleTarget(BaseModel):
target_id: uuid.UUID
target_value: str
target_type: str
last_scanned_at: datetime | None = None
class StaleSignal(BaseModel):
never_scanned: int
stale: int
items: list[StaleTarget] = Field(default_factory=list)
class DashboardSignals(BaseModel):
takeover: TakeoverSignal
spoofable: SpoofableSignal
stale: StaleSignal