65 lines
5.5 KiB
Markdown
65 lines
5.5 KiB
Markdown
# Changelog
|
||
|
||
## 0.1.0
|
||
|
||
Logika dopasowana do PostfixAdmin 4.0.5 / master, przygotowanie do pracy produkcyjnej.
|
||
|
||
### Zgodność z PostfixAdmin
|
||
- Limity domen: `-1` = wyłączone, `0` = bez limitu (wcześniej `-1` przy aliasach znaczyło „bez limitu”); licznik aliasów nie obejmuje aliasów skrzynek.
|
||
- Quota skrzynek liczona jak `check_quota()`/`allowed_quota()`; formularz pokazuje dozwolone maksimum. Wyłączona funkcja quota nie nadpisuje już quota skrzynek zerem.
|
||
- `alias_control`/`alias_control_admin` dotyczą wyłącznie aliasów skrzynek (przekierowań); wcześniej blokowały tworzenie wszystkich aliasów.
|
||
- Alias nie może wskazywać na siebie; dozwolone konta lokalne (`root`) i `@domena` dla catch-all; listy administratora pomijają aliasy skrzynek.
|
||
- Edycja skrzynki zawsze synchronizuje aktywność aliasu skrzynki; edycja częściowa nie resetuje pól (SMTP, telefon, e-mail).
|
||
- Edycja domeny bez podanych limitów zachowuje dotychczasowe wartości (wcześniej przywracała domyślne).
|
||
- Domena: walidacja `password_expiry` (0–36500), konflikt z `vacation_domain`, usuwanie w transakcji.
|
||
- Administrator domeny widzi tylko aktywne domeny bez backup MX (`list_domains_for_admin`).
|
||
- Administratorzy: zachowanie listy domen superadmina, ochrona przed odebraniem sobie uprawnień.
|
||
- Autoresponder: „Wracam” dezaktywuje zamiast usuwać, czyszczenie `vacation_notification`, godziny od/do, `vacation_choice_of_reply`.
|
||
- Fetchmail: hasło źródłowe zapisywane base64, jak oczekuje `fetchmail.pl`.
|
||
- `recipient_delimiter` traktowany jako zbiór znaków; status POP/IMAP jak w `gen_show_status()`.
|
||
- `edit_mailbox_name`: użytkownik skrzynki może zmienić własną nazwę (globalnie lub dla listy domen).
|
||
- Nowe akcje: przełączanie aktywności (domeny, skrzynki, aliasy, domeny aliasowe, administratorzy), przekierowania skrzynki, wyszukiwanie globalne i w domenie, stronicowanie, filtr aktywności aliasów, dziennik ze stronicowaniem.
|
||
|
||
### Instalacja i utrzymanie
|
||
- `--init-schema [--dry-run]` (odpowiednik `setup.php`/`upgrade.php`), `--create-superadmin`, `--integrity-check`, `--refresh-dns`, `--help`.
|
||
- Baza developerska tworzona tym samym kodem co produkcyjny schemat.
|
||
|
||
### Bezpieczeństwo
|
||
- `trusted_proxies` – poprawny adres klienta za reverse proxy (limit logowań, wyjątki TOTP).
|
||
- Rewalidacja sesji, wylogowanie innych sesji po zmianie hasła, czyszczenie pamięci sesji/limitów, opcjonalny HSTS.
|
||
- Logowanie z automatycznym rozpoznaniem konta (administrator, następnie skrzynka).
|
||
- Wiadomość powitalna wysyłana w tle, limit czasu SMTP 15 s.
|
||
|
||
### Poprawki
|
||
- PostgreSQL: logowanie i listy nie działały (`CAST(boolean AS BIGINT)`, sumy `NUMERIC`, parametry `timestamp`).
|
||
- MySQL/PostgreSQL: sumy quota rzutowane na liczbę całkowitą.
|
||
|
||
### Interfejs
|
||
- Nowy interfejs: adresy URL widoków (odświeżenie/zakładki/przycisk wstecz), lista wirtualna domeny, wyszukiwarka, stronicowanie, formularze z potwierdzeniem hasła i generatorem, błędy wyświetlane w oknie formularza, widok na telefonie, panel użytkownika (przekierowania, autoresponder, nazwa, 2FA).
|
||
- Teksty źródłowe po angielsku, kompletne tłumaczenie polskie (łącznie z komunikatami API).
|
||
|
||
## 0.0.3
|
||
- Alias status is shown as a simple `Alias` badge; catch-all aliases follow PostfixAdmin semantics (`*` in the form, `@domain` in the database), including edit/delete compatibility and catch-all domain forwarding to `@target-domain`.
|
||
|
||
- Fixed MySQL/MariaDB `TEXT`/`LONGTEXT` decoding through `sqlx::Any`; alias destinations from PostfixAdmin (`alias.goto`) now render from the real database value instead of falling back to an empty string.
|
||
- Alias destination listing now normalizes `goto` through the database dialect so targets render consistently on MySQL/MariaDB, PostgreSQL and SQLite.
|
||
- Static release validation no longer hard-codes the application or Rust version; it validates semantic versioning and Cargo/toolchain consistency instead.
|
||
|
||
- Domain workspace now separates user aliases from technical/default aliases instead of mixing them in one table.
|
||
- Alias tables keep the PostfixAdmin-RS data model (address, destination, description, delivery status, active state and actions) while using a clearer full-width layout inspired by classic PostfixAdmin.
|
||
- Mailbox self-alias rows are hidden from the domain alias sections so mailbox-managed routing does not clutter the alias view.
|
||
- Technical alias edit/delete controls follow the existing `special_alias_control` and global-admin permissions.
|
||
- Release version bumped to 0.0.3.
|
||
|
||
## 0.0.2
|
||
|
||
- Mailbox and alias creation in a selected domain now accepts only the local part; the domain is read-only.
|
||
- Admin Vacation UI now searches/selects an existing mailbox and uses the same editor as a mailbox user.
|
||
- Vacation save/delete now synchronizes the PostfixAdmin autoreply transport address in `alias.goto`, so the mail transport actually receives the vacation copy.
|
||
- Vacation transport destinations are hidden from alias UI and do not affect alias delivery-status badges.
|
||
- Mailbox users can edit only alias destinations, Store & Forward, and Active; the backend also preserves protected fields on crafted requests.
|
||
- Default technical aliases (`abuse`, `hostmaster`, `postmaster`, `webmaster`, according to config keys) are shown separately from user aliases.
|
||
- Rspamd DKIM filesystem failures now report the operation and exact path instead of a generic I/O error.
|
||
- Debian package includes a one-time Rspamd DKIM permission helper using a dedicated shared group; private keys stay non-world-readable.
|
||
- Release version bumped to 0.0.2.
|