feat(compliance): data classification fields and retention policies job [FASE-3.5]
Some checks failed
Aegis CI / lint-and-test (push) Has been cancelled

This commit is contained in:
2026-05-18 14:17:29 +02:00
parent 3e854b7b79
commit bdeeed54e1
10 changed files with 213 additions and 1 deletions

View File

@@ -53,6 +53,7 @@ class Campaign(Base):
target_platform = Column(String, nullable=True)
tags = Column(JSONB, nullable=True, default=[])
created_at = Column(DateTime(timezone=True), server_default=func.now())
data_classification = Column(String(20), nullable=False, server_default="internal")
# Recurring scheduling fields
is_recurring = Column(Boolean, default=False)

View File

@@ -6,6 +6,7 @@ working with ``from app.models.enums import ...``.
"""
from app.domain.enums import ( # noqa: F401
DataClassification,
TeamSide,
TechniqueStatus,
TestResult,

View File

@@ -28,6 +28,7 @@ class Evidence(Base):
uploaded_at = Column(DateTime(timezone=True), server_default=func.now())
team = Column(Enum(TeamSide, name="teamside"), nullable=False, default=TeamSide.red)
notes = Column(Text, nullable=True)
data_classification = Column(String(20), nullable=False, server_default="internal")
# Relationships
test = relationship("Test", back_populates="evidences")

View File

@@ -62,6 +62,7 @@ class Test(Base):
# ── Re-test fields ────────────────────────────────────────────
retest_of = Column(UUID(as_uuid=True), ForeignKey("tests.id"), nullable=True)
retest_count = Column(Integer, default=0)
data_classification = Column(String(20), nullable=False, server_default="internal")
# ── Relationships ───────────────────────────────────────────────
technique = relationship("Technique", back_populates="tests")