v4.1.0
โจ Features
๐ auth:
- add SAML authentication support with user provisioning, closes #789 (e8eb1ac)
- add Generic OIDC provider support for Authentik/Keycloak/Okta, closes #918 (9b204ca)
- add Google OAuth support (#791) (aa88a9a)
- add user avatar support with OAuth and Gravatar integration (7fc4d3b)
- implement forgot username feature, closes #578 (e2f7bda)
- implement session caching for LDAP authentication (a2cf55d)
๐ api:
- add API v2 with consistent response wrapping (0551e8a)
- add permission validation for API endpoints (7f01625)
๐ dns:
- add interactive wizards for complex DNS record types (DMARC, SPF, DKIM, CAA, TLSA, SRV), closes #685 (586b29e)
- add custom TLD whitelist for CNAME validation, closes #946 (e63517a)
- enhance RFC 2317 classless reverse delegation validation, closes #85 (8928b82)
๐ dnssec:
- add pre-flight zone validation before signing (9b5f6fe)
- add pre-flight validation to zone creation (af7a0f8)
๐ก๏ธ permissions:
- separate zone deletion from edit permissions, closes #97 (672796b)
- add preconfigured permission templates for common user roles (d889fbb)
๐ฅ๏ธ ui:
- enhance zone edit UX with configurable elements and improved layout, closes #756 (a49f137)
- add disabled flag support to DNS record operations (00a43fb)
- enable edit operation on selected record (6dd2949)
- add conditional API documentation link to tools menu, closes #749 (c1c2fbf)
โ๏ธ infrastructure:
- replace custom SMTP with Symfony Mailer, closes #774 (ba5f8d1)
- add SSL/TLS configuration options for MySQL and PostgreSQL, closes #978 (3c5e070)
- add support for immutable container deployments, closes #939 (6f17666)
- add validation for PowerDNS API configuration (c2c3708)
- add Basic Auth support for PowerDNS metrics endpoint, closes #800 (92cfb3c)
- add MySQL separate PowerDNS database configuration support (69c9a91)
- add DB_PORT environment variable support, closes #981 (399bdbc)
๐ Bug Fixes
๐ api:
- resolve Basic Auth TypeError when LDAP authentication is enabled, closes #799 (751a175)
- make pagination optional for zones and users endpoints, closes #803 (078a3a0)
- update SOA serial on all record operations, closes #804 (63315d6)
- handle missing optional fields gracefully, closes #818 (052a625)
- filter PowerDNS ENT records from API endpoints, closes #914 (d6d38e7)
- improve error handling for non-JSON responses, closes #971 (0dab36e)
๐ auth:
- resolve missing LDAP section in Add User form, closes #750 (8b6c78f)
- correct recovery code input validation length, closes #784 (3814b87)
- improve scheme detection for callback URLs behind proxies, related to #783 (130d0b4)
- prevent external auth from overwriting existing auth methods (0886ad7)
- resolve orphaned user link issues in SAML/OIDC authentication (8ee4f75)
- always generate new TOTP secret for app-based MFA setup, closes #985 (5f66e8d)
๐ dns:
- correct SRV record validation to match PowerDNS format requirements, closes #755 (14dc8e5)
- allow multiple instances of SPF mechanisms (42193b3)
- remove 255-byte TXT validation to support long DKIM records, closes #809 (5a96e40)
- use consistent FQDN handling across record creation flows, closes #814 (ac2eab4)
- prevent TypeError when zone_templ_id is NULL in PostgreSQL, closes #935 (2032773)
- allow HTML characters in TXT records, closes #953 (4ea65ee)
- exclude reverse zones from forward zone listings (da1789d)
๐ dnssec:
- correct DS/DNSKEY button routing, closes #775 (0348236)
- improve input validation and error handling for key management (06f20c9)
- standardize permission checks across all DNSSEC controllers, closes #778 (03ccb47)
๐ก๏ธ security:
- prevent non-superusers from modifying superuser accounts (460a5d2)
๐๏ธ database:
- use DbCompat for boolean column comparisons in PostgreSQL, closes #819 (295a8dd)
- add primary key to records_zone_templ table, closes #906 (9252c44)
- sync PostgreSQL sequences after explicit ID inserts, closes #942 (6cc3c3b)
๐ณ docker:
- resolve container startup validation logic, closes #766 (9f4e9eb)
- update OIDC Azure AD configuration and metadata URL handling (#785) (438d0af)
- add LDAP extension for LDAP authentication support, closes #812 (ee7da53)
- improve container health check and database initialization, closes #851 (e461071)
๐ฅ๏ธ ui:
- correct pagination calculation when filters are applied, closes #748 (593373a)
- clear form data when switching between zones, closes #769 (6533732)
- disable browser autofill for user creation, closes #782 (1c2c395)
- enable sorting by owner, id, and disabled status, closes #781 (6ff3fb1)
- correct filter form redirect in zone edit views, closes #786 (ae0f074)
- improve log table layout and prevent text overflow, closes #772 (cb69f64)
- correct checkbox handling in multi-record add form, closes #807 (0eefdb5)
๐ zones:
- allow slave zone creation with delegation NS records, closes #802 (1fc14f6)
- correct form submission for bulk record deletion, closes #842 (1d3242e)
- handle comment deletion errors gracefully during zone deletion, #971 (7116992)
โก Performance
- add database indexes to improve query performance (14fcf2c)
- optimize reverse zone listing for large datasets, closes #956 (60da21c)
Database Migrations
sql/poweradmin-mysql-update-to-4.1.0.sqlsql/poweradmin-pgsql-update-to-4.1.0.sqlsql/poweradmin-sqlite-update-to-4.1.0.sql
Note: Run the appropriate update script for your database type before upgrading.
โ ๏ธ PHP Version Notice
Poweradmin 4.1.x is the last version to support PHP 8.1. The upcoming 4.2.x release will require PHP 8.2 or later.