feat(F4): add SecurityConfig model to VigilarConfig

This commit is contained in:
Aaron D. Lee 2026-04-03 17:38:10 -04:00
parent 3f2a59c11e
commit 0544f7218a
2 changed files with 22 additions and 0 deletions

View File

@ -82,6 +82,20 @@ class TestPetActivityConfig:
assert cfg.zoomie_threshold == 0.8
def test_security_config_defaults():
from vigilar.config import SecurityConfig
sc = SecurityConfig()
assert sc.pin_hash == ""
assert sc.recovery_passphrase_hash == ""
def test_vigilar_config_has_security():
from vigilar.config import VigilarConfig
cfg = VigilarConfig()
assert cfg.security.pin_hash == ""
assert cfg.security.recovery_passphrase_hash == ""
class TestCameraConfigLocation:
def test_default_location_is_interior(self):
from vigilar.config import CameraConfig

View File

@ -282,6 +282,13 @@ class PetsConfig(BaseModel):
activity: PetActivityConfig = Field(default_factory=PetActivityConfig)
# --- Security Config ---
class SecurityConfig(BaseModel):
pin_hash: str = ""
recovery_passphrase_hash: str = ""
# --- Rule Config ---
class RuleCondition(BaseModel):
@ -328,6 +335,7 @@ class VigilarConfig(BaseModel):
vehicles: VehicleConfig = Field(default_factory=VehicleConfig)
health: HealthConfig = Field(default_factory=HealthConfig)
pets: PetsConfig = Field(default_factory=PetsConfig)
security: SecurityConfig = Field(default_factory=SecurityConfig)
cameras: list[CameraConfig] = Field(default_factory=list)
sensors: list[SensorConfig] = Field(default_factory=list)
sensor_gpio: SensorGPIOConfig = Field(default_factory=SensorGPIOConfig, alias="sensors.gpio")