Persist MediaService PHI access trail to phi_access_log

FeatureMediaService
Shipped
August 3, 2026 at 3:07 PM UTC
Author
Kamo
Commit
211a360

Chat message reads were recorded through the Slf4j default writer, which puts the §164.312(b) trail in a 14-day log stream against a six-year retention obligation — and leaves "who read this conversation" unanswerable, since a log stream cannot be queried by member or by resource. The JpaPhiAccessLogWriter bean and the com.kamo.z.shared.phi.audit entry in @EnableJpaRepositories ship together deliberately: @ComponentScan("com.kamo") picks up the @Configuration, but the repository list is explicit, so the bean without the scan entry means PhiAccessLogRepository has no bean and the context fails to start. ChatMessageAccessAuditor needs no change — PhiAccessRecorder resolves its writer via ObjectProvider.getIfUnique, so the JPA writer displaces the Slf4j fallback at every existing call site.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing