Skip to content

Releases: poweradmin/poweradmin

v4.1.1

15 Feb 19:30

Choose a tag to compare

✨ Features

πŸ”’ dnssec:

  • add CSK info alert on add key page with translations (closes #996) (23c8b14)

πŸ› Bug Fixes

🌐 api:

  • URL-encode zone names in PowerDNS API calls for RFC 2317 support (closes #994) (cc4db43)

🌍 dns:

  • handle LUA records with record type prefix and explicit return mode (closes #991) (63346ba)

πŸ“ records:

  • resolve @ to zone name in multi-record add form (92c47c0)

πŸ”§ supermasters:

  • allow IPv6 addresses in edit and delete validation (closes #992) (c5f69ad)

πŸ“‹ templates:

  • add wizard link to zone edit toolbar (207c9f3)
  • use correct _token CSRF field name in pdns_status forms (d95d2c8)

v4.0.7

15 Feb 20:09

Choose a tag to compare

πŸ› Bug Fixes

🌍 dns:

  • handle LUA records with record type prefix and explicit return mode (closes #991) (ae57c71)

πŸ”‘ mfa:

  • always generate new TOTP secret for app-based MFA setup, closes #985 (c1e688d)

πŸ“ records:

  • resolve @ to zone name in multi-record add form (85a41ce)

πŸ”§ supermasters:

  • allow IPv6 addresses in edit and delete validation (closes #992) (995f3bd)

πŸ“‹ templates:

  • use correct _token CSRF field name in forms (closes #995) (1429634)

v4.1.0

08 Feb 16:21

Choose a tag to compare

v4.1.0 Pre-release
Pre-release

✨ 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:

  • correct pagination calculation when filters are applied, closes #748 (593373a)
  • clear form data when switching be...
Read more

v4.0.6

01 Feb 08:10

Choose a tag to compare

πŸ› Bug Fixes

🌐 api:

  • improve HTTP error handling for non-JSON responses, closes #971 (e4dae38)

πŸ—ƒοΈ db:

  • disable MySQL SSL verification by default for backwards compatibility (#978) (481a601)

🐳 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:

  • use correct CSRF token field name in delete forms (closes #979) (e34e73e)

πŸ“ zones:

  • handle comment deletion errors gracefully during zone deletion, related to #971 (a834539)
  • move DNSSEC handling before transaction in bulk deletion, closes #971 (f68843c)

v3.9.9

01 Feb 08:10

Choose a tag to compare

πŸ› Bug Fixes

🌍 dns:

  • allow HTML characters in TXT records, closes #953 (0fd5ed4)

πŸ”§ general:

  • only strip zone suffix from end of record name (#958) (dcd6a46)

v4.0.5

27 Jan 16:17

Choose a tag to compare

πŸ› 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:

  • correct TLS/STARTTLS connection handling, closes #861 (36d682b)

πŸ”§ pgsql:

  • sync sequences after explicit ID inserts, closes #942 (51b0241)

πŸ“ records:

  • add table prefix to ORDER BY clause, closes #919 (9c2e554)

πŸ”§ 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:

  • add primary key to records_zone_templ table, closes #906 (4437643)

πŸ”§ template:

  • use domain_id for zone list lookup, closes #945 (35f8fa1)

πŸ”§ theme:

  • gracefully handle removed legacy themes with fallback, closes #899 (8d1d430)

πŸ–₯️ 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.sql
  • sql/poweradmin-pgsql-update-to-4.0.5.sql
  • sql/poweradmin-sqlite-update-to-4.0.5.sql

Note: Run the appropriate update script for your database type before upgrading.

v3.9.8

07 Jan 18:56

Choose a tag to compare

πŸ› 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:

  • sync sequences after explicit ID inserts, closes #942 (4f34437)

πŸ“ 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:

  • replace onClick buttons with anchor tags in zone templates (5b0641d)
  • replace onClick buttons with anchor tags in DNSSEC templates (a934fd1)

v4.0.4

03 Nov 07:49

Choose a tag to compare

πŸ› 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

13 Oct 08:56

Choose a tag to compare

πŸ› 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

06 Oct 11:03

Choose a tag to compare

✨ 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