Releases: poweradmin/poweradmin
v4.1.1
β¨ Features
π dnssec:
π Bug Fixes
π api:
π dns:
π records:
- resolve @ to zone name in multi-record add form (92c47c0)
π§ supermasters:
π templates:
v4.0.7
π Bug Fixes
π dns:
π mfa:
π records:
- resolve @ to zone name in multi-record add form (85a41ce)
π§ supermasters:
π templates:
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)
- support record type prefixes in LUA validator, closes #770 (d946628)
- improve IP address validation, closes #794 (923e56a)
π 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:
v4.0.6
π Bug Fixes
π api:
ποΈ db:
π³ docker:
- use curl for healthcheck to handle relative redirects (095e682)
- disable SSL for mysql CLI in entrypoint (0fabf58)
π i18n:
- make Select All Filtered button translatable, closes #972 (12c60e0)
- add missing translations for 14 locales (988072a)
π templates:
π zones:
v3.9.9
v4.0.5
π Bug Fixes
π api:
- prevent crash when PowerDNS API returns zone errors (2b0a703)
- return empty body for HTTP 204 responses per RFC 7231 (cf61fa1)
- remove PHP 8.3+ #[Override] attributes for 8.1 compatibility (89da6f8)
- standardize response handling and remove dead code (dee09fe)
ποΈ db:
- use TableNameService for cross-database queries in DbUserRepository (c6c5fc4)
π dns:
- validate empty strings in IDN conversion (424c3fc)
- prevent TypeError when zone_templ_id is NULL in PostgreSQL, closes #935 (82c4541)
- allow HTML characters in TXT records, closes #953 (62a1652)
π dnssec:
- add missing is_reverse_zone variable to DNSSEC controllers (412b7d4)
π³ docker:
- capture admin user insert result before case statement ends (c1e58bd)
- update FrankenPHP base image to 1.10-php8.4-alpine, closes #877 (9bcbe1f)
- update base packages to resolve security vulnerabilities (bcdaa75)
- improve container health check and database initialization (454943f)
- update PostgreSQL packages and remove baked-in config (04ca74d)
π§ forms:
- make DNSSEC opt-in instead of enabled by default (76b5eb7)
π₯ install:
- add missing xml extension check in requirements step (5dee62f)
- improve security service null safety (6e658b0)
π§ mail:
π§ pgsql:
π records:
π§ router:
- prevent page parameter collision with API pagination (2b0eb0b)
π security:
- escape debug output and use modern cryptographic functions (e5b01a1)
- replace GET confirm links with POST forms in delete flows (f12edb9)
ποΈ sql:
π§ template:
π§ theme:
π₯οΈ ui:
- use double quotes for class attributes in templates (e5b8c97)
β»οΈ Refactoring
π api:
- remove duplicate OpenAPI annotations from controllers (ada0444)
π§ proxy:
- extract protocol detection to ProtocolDetector utility (afba33e)
data
π§ whois:
- sync TLD servers with IANA registry (4246dae)
Database Migrations
The following database update scripts are included in this release:
sql/poweradmin-mysql-update-to-4.0.5.sqlsql/poweradmin-pgsql-update-to-4.0.5.sqlsql/poweradmin-sqlite-update-to-4.0.5.sql
Note: Run the appropriate update script for your database type before upgrading.
v3.9.8
π Bug Fixes
π api:
- handle missing optional fields in PowerDNS API response (338be75)
- prevent crash when PowerDNS API returns zone errors (73315be)
π§ controllers:
- improve type safety and error handling (a424514)
ποΈ db:
- use explicit PDO parameter binding for integer types (fefd015)
π³ docker:
- update base packages to resolve security vulnerabilities (8e2b72a)
- consolidate RUN instructions and fix linting warnings (7d55974)
- add hadolint ignore comments for linting warnings (25b6fc2)
π§ general:
- resolve static analysis warnings and type issues (93e9728)
- add CSRF protection and input validation to controllers (c7438af)
- harden debug output and update crypto functions (74ff87b)
- use -> instead of self:: for instance methods in PdnsUtilProvider (859f87d)
- preserve record comments when show_record_comments is disabled, closes #912 (b354e8e)
- prevent crash when accessing invalid record ID (067b321)
π§ logger:
- use explicit PDO parameter binding for LIMIT/OFFSET (ec5e314)
π§ pgsql:
π records:
- preserve comments on rename when UI is disabled (a28d5c4)
π search:
- PostgreSQL-compatible record grouping with subquery (6ae8830)
π₯οΈ ui:
- correct HTML tag pairing and attribute quotes in templates (8dac34f)
β»οΈ Refactoring
π§ general:
- simplify hasLanguageError method in Installer (dbb8ee9)
π templates:
v4.0.4
π Bug Fixes
π Authentication & LDAP
- Auth: Fixed LDAP Authentication with MFA integration issues (#813)
- Auth: Resolved LDAP Authentication PHP compatibility problems (#812)
π Core System & Database
- Core: Fixed record comment not being saved while adding records (#814)
- Database: Resolved SQL syntax error causing database access violations (#810)
- UI: Fixed page crashes when clearing search field (#815)
π§ DNS Management
- DNS: Added support for automatic splitting of long TXT records (e.g., DKIM) into 255-byte strings with configurable length options (#809)
π DNSSEC
- DNSSEC: Fixed DNSSEC zone signing functionality (#819)
- DNSSEC: Resolved errors when using "DS and DNS keys" operations (#818)
Full Changelog: v4.0.3...v4.0.4
v4.0.3
π Bug Fixes
π DNS & API
- API: Update SOA serial on all record operations (#804)
- API: Make pagination optional for zones and users endpoints (#803)
- API: Resolve Basic Auth TypeError when LDAP authentication is enabled (#799)
- DNS: Exclude reverse zones from forward zone listings
- Zones: Allow slave zone creation with delegation NS records (#802)
- PowerDNS: Add Basic Auth support for PowerDNS metrics endpoint (#800)
π₯οΈ User Interface
- UI: Correct checkbox handling in multi-record add form (#807)
- UI: Remove color classes preventing dark mode visibility (#801)
π§ Mail System
- Mail: Prevent email rejection due to long lines (#798)
Full Changelog: v4.0.2...v4.0.3
v3.9.7
β¨ Features
π User Interface & Experience
- User-configurable rows per page with session persistence - Users can now customize the number of rows displayed per page (10, 20, 50, 100) on list zones, search results, and zone edit pages. Preferences are stored in the session for convenience.
β‘ Performance Improvements
ποΈ Database Optimization
- Optimize zone listing performance with database indexes - Added missing database indexes on the zones table (domain_id and owner columns) across all database types (MySQL, PostgreSQL, SQLite). This provides 10-100x faster query performance when managing large numbers of zones (tested with 10,000+ zones).
π§ Refactoring
π DNS & Validation
- Extract core DNS record validators into dedicated class - Improved code organization by separating DNS record validation logic into focused, reusable validator classes.
π¦ Database Migrations
Migration to v3.9.7
This release includes database schema updates. Run the appropriate migration script for your database:
MySQL:
mysql -u username -p database_name < sql/poweradmin-mysql-update-to-3.9.7.sql
PostgreSQL:
psql -U username -d database_name -f sql/poweradmin-pgsql-update-to-3.9.7.sql
SQLite:
sqlite3 /path/to/pdns.db < sql/poweradmin-sqlite-update-to-3.9.7.sql
What the migration does:
- Adds zones_domain_id_idx index on zones.domain_id column
- Adds zones_owner_idx index on zones.owner column
Note: These indexes significantly improve performance for zone listing queries, especially with large datasets.
Full Changelog: v3.9.6...v3.9.7