# Zgodnosc z PostfixAdmin Stan: **0.0.3**. Celem jest replacement runtime PHP z zachowaniem istniejacej bazy PostfixAdmin i SQL map uzywanych przez Postfix/Dovecot. | Obszar | Stan | Uwagi | |---|---|---| | Admin / global-admin / domain-admin | gotowe | Uprawnienia wymuszane w backendzie | | Mailbox user login | gotowe | Tabela `mailbox` | | Domeny CRUD | gotowe | Limity, quota, transport, backup MX | | Mailbox CRUD | gotowe | Maildir, quota, self-alias, welcome mail, hooki | | Aliasy CRUD | gotowe | Store-and-forward, special aliases, limity | | Bulk delete inactive forwards | gotowe | Z ochrona mailbox self-alias i special aliases | | Alias domains | gotowe | Kontrola lancuchow/cykli | | Admin preferences | gotowe | W tym domyslny cel aliasu | | Status aliasow | gotowe | undeliverable/external/POP-IMAP/vacation/disabled/expired/custom | | Fetchmail | gotowe | Stary i nowszy wariant tabeli; MDA/extra options tylko gdy wlaczone | | Vacation | gotowe | User/admin control | | Logging | gotowe | Tabela `log` | | Send mail / broadcast | gotowe | Mailbox-only lub aktywne cele aliasow | | Backup | gotowe | `mysqldump` / `pg_dump` / SQLite; sekret MySQL poza argv | | Quota / domain quota | gotowe | Zgodne z multiplierem | | Used quota | gotowe warunkowo | `quota` / `quota2`, jesli istnieje | | Password hashes | gotowe | Natywne formaty PA + Courier/Authlib/php_crypt + kontrolowany Dovecot fallback | | Mixed legacy hashes | gotowe | Format rekordu ma pierwszenstwo przy weryfikacji | | Password recovery e-mail | gotowe warunkowo | Wymaga kolumn token/email | | SMS recovery | brak | Do dodania jako jawny provider, bez callbackow PHP | | TOTP | gotowe warunkowo | Wymaga `totp_secret` | | TOTP exceptions | gotowe warunkowo | Wymaga tabeli `totp_exception_address` | | Application passwords | gotowe warunkowo | Wymaga `mailbox_app_password` | | DKIM keys/signing | gotowe warunkowo | Wymaga tabel `dkim`, `dkim_signing`; OpenSSL bez shella | | Password expiration | gotowe warunkowo | Wymaga odpowiednich kolumn | | `smtp_active` | gotowe warunkowo | Wymaga kolumny | | DNS status domeny | gotowe warunkowo | Wymaga `dns_active` i `dns_checked` | | DNS validation adresow/domen | gotowe | A/AAAA/MX/NS zgodnie z logika PA | | MySQL/MariaDB | gotowe | Podstawowy wariant produkcyjny | | PostgreSQL | gotowe | Placeholdery transliterowane przez DB layer | | SQLite | gotowe | Takze izolowany mock developerski | | Dev mock DB | gotowe | Superset tabel PA + seedy; tylko `environment=development` | | Dev SSH tunnel do produkcyjnej DB | gotowe | Domyslnie read-only; zapis wymaga `POSTFIXADMIN_RS_DEV_DB_WRITES=1` | | UI i18n | gotowe | EN/PL, domyslnie English, przelaczanie z loginu/topbara; API pozostaje angielskie | | Post-create/edit/delete hooks | gotowe inaczej | Program + argumenty, bez powloki | | `maildir_name_hook` | zastapione natywnie | `maildir_template` z `{domain}`, `{local_part}`, `{username}` | | Auto-create subfolders | gotowe dla Dovecot | `doveadm mailbox create`; generic IMAP/Courier jeszcze brak | | PHP `*_struct_hook` | brak celowo | Nie uruchamiamy PHP; docelowo natywne rozszerzenia/config | | `language_hook` PHP | brak celowo | Zastapione natywnymi katalogami i18n EN/PL; bez wykonywania callbackow PHP | | XML-RPC | brak | W przekazanym configu jest wylaczone | | Setup wizard / DB upgrade | brak | Runtime wykrywa schema capability, nie migruje jeszcze produkcyjnej DB | | Update checker | brak | Nie jest potrzebny do runtime poczty | | Stary theme PostfixAdmin | brak celowo | Zastapiony UI RustBox-like | ## Funkcje publicznego PA sprawdzone przy porownaniu Odwzorowane odpowiedniki istnieja dla: login/MFA, list/edit/delete/editactive, list-virtual, vacation, viewlog, sendmail, broadcast, backup, refresh-domain-dns, delete-inactive i delete-preference. Nieodwzorowane jeszcze publiczne wejscia: `setup.php`, `upgrade.php`, `update-check.php`, `xmlrpc.php`. ## Hasla Lista kompatybilnosci jest oparta na dostarczonych `DOCUMENTS/HASHING.md`, `functions.inc.php` i `tests/PacryptTest.php`. W kodzie sa referencyjne wektory PA dla SHA, crypt, bcrypt, SSHA, Argon2, Courier oraz wariantow B64. Weryfikacja nie wymusza aktualnego `password.scheme`, jesli hash sam identyfikuje algorytm (`{SCHEME}`, `$1$`, `$2...`, `$5$`, `$6$`). To pozwala na stopniowa migracje. Generowanie nowego hasla nadal uzywa jawnie skonfigurowanego schematu, aby nie zerwac zgodnosci z Dovecot/SASL. ## Przekazany config Aktywne elementy istotne dla tego wdrozenia (MySQL/MariaDB, `php_crypt:MD5`, alias-domain, sendmail, logging, fetchmail, user recovery) maja odpowiednik. XML-RPC jest w nim wylaczone, SMS callback pusty, `maildir_name_hook=NO`, a lista automatycznych subfolderow pusta, wiec pozostale luki nie blokuja obecnego profilu. ## Audit PostfixAdmin 4.0.1 Pelniejszy audyt funkcji z dostarczonego PHP 4.0.1 jest w [PORT-PARITY.md](PORT-PARITY.md). 0.0.3 nadal **nie jest 100% parity**; dokument rozdziela funkcje runtime juz przeportowane od pozostalych narzedzi instalacyjnych, API, CLI i legacy hookow/UI. ## Rspamd DKIM Dodano osobna integracje hostowa Rspamd: generowanie przez `rspamadm dkim_keygen`, `selector_map`, `path_map`, atomowe zapisy, `rspamadm configtest`, opcjonalny reload i podpinanie istniejacych kluczy. Szczegoly: [docs/RSPAMD_DKIM.md](docs/RSPAMD_DKIM.md).