docs(ttp): catalogue producer wiring for every TTP-watched topic
Add a "Producer wiring" subsection under TTP_TAGGING.md §"Bus topics" mapping every topic the TTP worker subscribes to onto the file:line that publishes it. Calls out the gap (`email.received` has no producer today) and the new `attacker.session.ended` payload shape from the collector aggregator. Also lists the four producer regression tests added in this series so a future contributor sees the safety net before staring at the silent rule engine. DEBT.md gets the `attacker.email.received` follow-up entry — wire the producer when SMTP-receive persistence lands, since today the honeypot relay path doesn't store received emails anywhere a publisher could read from.
This commit is contained in:
15
DEBT.md
15
DEBT.md
@@ -33,3 +33,18 @@ stays YAML-only.
|
||||
|
||||
Trigger: v0 precision targets met + at least one downstream user
|
||||
who needs it.
|
||||
|
||||
### `attacker.email.received` producer — wire when SMTP-receive
|
||||
### persistence lands
|
||||
|
||||
The TTP worker subscribes to `email.received` for the EmailLifter
|
||||
(R0041–R0048), but no upstream component publishes the topic today.
|
||||
The honeypot SMTP-relay path (`decnet/services/smtp_relay.py`) does
|
||||
not persist received emails to a DB table the way ingester /
|
||||
collector persist log events, so there is no source row to fan out
|
||||
on. See `development/TTP_TAGGING.md` §"Bus topics → Producer
|
||||
wiring" for the full producer audit.
|
||||
|
||||
Trigger: SMTP-receive persistence model lands (a `ReceivedEmail`
|
||||
SQLModel + ingest path). Wire the publisher in the same PR.
|
||||
Owner: TBD.
|
||||
|
||||
Reference in New Issue
Block a user