feat(ttp): E.1.10 repository contract — TTPMixin with insert_tags + list_techniques_by_{identity,attacker,campaign,session} + list_distinct_techniques

Empty NotImplementedError bodies; the SQL lands at E.3 implementation.
Mixin composed onto SQLModelRepository alongside the existing domain
mixins. Dialect-specific INSERT-OR-IGNORE syntax overrides land in
the per-backend subclasses at E.3 per the dual-DB-backend convention.
This commit is contained in:
2026-05-01 07:21:37 -04:00
parent b7f206c8c5
commit b6e31e64e9
3 changed files with 110 additions and 0 deletions

View File

@@ -49,6 +49,7 @@ from decnet.web.db.sqlmodel_repo.realism import RealismMixin
from decnet.web.db.sqlmodel_repo.swarm import SwarmMixin
from decnet.web.db.sqlmodel_repo.topology import TopologyMixin
from decnet.web.db.sqlmodel_repo.tarpit import TarpitMixin
from decnet.web.db.sqlmodel_repo.ttp import TTPMixin
from decnet.web.db.sqlmodel_repo.webhooks import WebhooksMixin
@@ -69,6 +70,7 @@ class SQLModelRepository(
SwarmMixin,
TarpitMixin,
TopologyMixin,
TTPMixin,
WebhooksMixin,
BaseRepository,
):