Files
selfpost/internal/web/view/templates/settings.html
T
mixandClaude Opus 5.5 0eaf69a830 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>
2026-10-17 13:38:34 +03:00

56 lines
3.0 KiB
HTML

{{/* Server > Settings (mockup settings.html): what holds for the whole instance.
One form, in the left column, with its Save button under its fields; the
right column holds what is not a field - the records of the server's own
name, the ones notifications are signed and authorised with, the
read-only rate limits and the read-only time zone. A user's own name, e-mail, password and DMARC
address are on Account (account.html). */}}
{{define "content"}}
{{template "page_head" .Head}}
{{if .Flash}}{{template "flash" .Flash}}{{end}}
<div class="columns">
<div class="column is-6">
<form class="sp-form" method="post" action="/server/settings">
{{template "box_open" .Retention}}
{{template "body_open"}}
<div class="field"><label class="label" for="send_log_retention_days">Keep outbound log rows, days</label>
<div class="control"><input class="input" id="send_log_retention_days" name="send_log_retention_days" type="number" min="7" max="365" step="1" value="{{.RetentionDays}}" required></div>
<p class="help">The main driver of <code>/data</code> growth. Does not affect <code>mail.log</code> rotation (fourteen daily files).</p></div>
{{if .Inbound}}<div class="field"><label class="label" for="inbound_spam_log_retention_days">Keep inbound log rows, days</label>
<div class="control"><input class="input" id="inbound_spam_log_retention_days" name="inbound_spam_log_retention_days" type="number" min="7" max="365" step="1" value="{{.InboundRetentionDays}}" required></div>
<p class="help">The inbound log also never holds more than 10 000 rows: refused mail is logged at the rate strangers knock on port 25.</p></div>
{{end}}
{{template "body_close"}}
{{template "box_close"}}
{{template "box_open" .Notifications}}
{{template "body_open"}}
<div class="field"><label class="checkbox"><input type="checkbox" name="notify"{{if .Notify}} checked{{end}}> Send notification e-mails</label>
<p class="help">{{template "inline" .NotifyNote}}</p></div>
{{template "body_close"}}
{{template "box_close"}}
<div class="buttons"><button type="submit" class="button is-primary">Save settings</button></div>
</form>
</div>
<div class="column is-6">
{{template "box_open" .Mail}}
{{range .MailRecords}}{{template "dns_record" .}}
{{end}}{{template "box_close"}}
{{template "box_open" .RateLimits}}
{{template "body_open"}}
{{template "facts" .RateFacts}}
{{template "body_close"}}
{{template "box_close"}}
{{template "box_open" .TimeZone}}
{{template "body_open"}}
{{template "facts" .ZoneFacts}}
<p class="mt-4 sp-muted">Every time the panel shows, and every day it counts - today on Health, the days of the statistics - is this zone's, and so are the stamps of <code>mail.log</code>. One exception: the day a DMARC report covers is the reporter's, in UTC.</p>
{{template "body_close"}}
{{template "box_close"}}
</div>
</div>
{{end}}