dmarc-day, health-sockets: the reporter's day said; the inbound journal dialled

The owner, 2026-10-17: "Показ времени отчёта по UTC принимаем. Это не
проблема. Пояснения добавь. Все мелочи закрой." Designs 9b33b80, 2bf9056.

DMARC: a report's day stays the reporter's, in UTC (RFC 7489 § 7.2); the
report's Window now says so under its times (windowNote), and Settings'
Time zone box and Help (#settings, #dmarc) name it as the one exception to
the panel's zone. formatDMARCWindow counts a window that ends at midnight
as ending the day before, so a daily report is one day, not "20 Sep - 21
Sep" (TestDMARCWindowIsTheReportersDay, in Moscow's zone).

Health: with the inbound relay on, the inbound journal milter's socket is
dialled (InboundJournalSocket through web and handlers Config), fail-open
as the send log's, and Overview's card counts it; the send log's socket is
named journal-milter, as the mockup names it.

The confirmation link's sign-in state is drawn (confirm-email-signin.html);
the panel already renders it.

guide: /license and /server/components, the DMARC pages' paths and day,
selfpost-backup -o / -i / -version, the Inbound log's retention field,
PANEL_COOKIE_SECURE, the inbound journal's socket, the DMARC exception to
the zone. CHANGELOG [Unreleased].

(The e2e case negative_level1_ratelimit, listed as able to pass falsely,
was fixed on 2026-10-14 - the note was stale.)

go vet + go test (26 packages) and make e2e on the test server for this
tree.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
mix
2026-10-17 13:38:34 +03:00
co-authored by Claude Opus 5.5
parent 2bf9056d20
commit 0eaf69a830
13 changed files with 129 additions and 29 deletions
+13 -3
View File
@@ -328,8 +328,8 @@ type ReportInput struct {
DomainID int64
Contact string
Pass, Fail int
Window string // the window in the title: "20 Sep"
Period string // the window with its times: "20 Sep 00:00 – 21 Sep 00:00"
Window string // the reporter's day, in the title: "20 Sep"
Period string // the window with its times, this zone's: "20 Sep 03:00 – 21 Sep 03:00"
Received string // "2026-09-21 04:40"
PolicyP string
PolicySP string
@@ -341,6 +341,16 @@ type ReportInput struct {
Hub bool
}
// windowNote says, under a report's window, which day the report is of: the
// reporter's, in UTC, which the title and the lists name (owner, 2026-10-17:
// "Показ времени отчёта по UTC принимаем ... Пояснения добавь").
func windowNote(day string) Text {
if day == "" {
return nil
}
return Plain("The reporter's day, " + day + ": reports count their days in UTC, and the title and the lists name that day. The times are this panel's zone.")
}
// NewDMARCReport builds the page of one report.
func NewDMARCReport(m Meta, in ReportInput) *DMARCReport {
title := in.Reporter
@@ -359,7 +369,7 @@ func NewDMARCReport(m Meta, in ReportInput) *DMARCReport {
report := []Fact{
{Label: "Reporter", Value: Plain(in.Reporter)},
{Label: "Report id", Value: Plain(in.ReportID), Mono: true, Small: true},
{Label: "Window", Value: Plain(in.Period)},
{Label: "Window", Value: Plain(in.Period), Note: windowNote(in.Window)},
{Label: "Received", Value: Plain(in.Received)},
}
if in.Contact != "" {