Interfaces

Persistence for API keys: lookup by key value or owner, creation, expiry and usage tracking.

Persistence boundary for generic admin-managed settings layered above config/settings.php. Keys use dotted notation (e.g. "interface.theme") so they map cleanly onto ConfigurationManager groups during fallback.

Read-only lookups on the domains table: name and id resolution, zone type, primary server and the best-matching zone for a record name. Implemented for direct SQL and for the API backend mode.

Persistence for the dynamic DNS update endpoint: resolves the calling user, the zones they may update, and reads or replaces the A and AAAA records for one hostname.

Persistence for record comments in the Poweradmin-native comments table, including the record-to-comment links and the migration of legacy PowerDNS comments.

Reads over the records table by zone, name, id or RRset, plus the existence checks record validation relies on. Implemented for direct SQL and for the API backend mode.

Persistence boundary for admin-configured default TTLs keyed by record type.

Persistence for user group membership (user_group_members).

Persistence for user groups: lookup by id, name or member, and the member and zone counts the group list displays.

Persistence for per-user multi-factor authentication settings (user_mfa).

Persistence for per-user interface preferences stored as key-value pairs.

Persistence for user accounts, their permission template and the zones they own.

Persistence for group-based zone ownership (zones_groups), the second ownership path beside the direct owner on the zones table.

Zone reads and ownership writes over the zones and domains tables. Implemented once for direct SQL and once for the API backend mode, which reads zone state via PowerDNS.