Task · TSO-0041

Verify flow-log native actor identity fields are decoded, not dropped

Description

Tailscale announced (~2026-02/03) that network flow logs now carry user identity, device identity and human-readable device name natively. Diff the internal/flowlog record decoder against a fresh .capture/ fixture from the lab tailnet: if identity fields arrive on the wire they may be silently dropped today. If present, decode them and decide how they interact with internal/enrich IP-to-name resolution (cross-check, prefer-native, or replace). Validate against real captures per the repo rule - synthetic fixtures miss wire-format quirks.

Acceptance Criteria

Definition of Done

Implementation Notes

PRE-WAVE-3 RESEARCH, 2026-08-30 — ALREADY DELIVERED. The premise (“identity fields may be silently dropped today”) is refuted by the code as it stands.

Both acceptance criteria are satisfied by shipped, tested code (internal/flowlog/nodemeta_test.go, processor_normalization_test.go, store_test.go). No live capture was needed and none was taken.

Final Summary

Refuted on inspection, not built: flow-log native actor identity was already decoded, already feeding enrich as the primary source, and already gated by pii_filter. Evidence at internal/flowlog/record.go:32-50 and :98-128, internal/flowlog/processor.go:654, internal/app/flowredact.go:50-95, covered by nodemeta_test.go and processor_normalization_test.go.

View the source file on GitHub