interface BackendCapabilitiesInterface (View source)

Capability probe telling callers which kind of DNS backend they hold.

Methods

bool
isApiBackend()

Check if this is the API backend.

bool
supportsLocalWriteTransaction()

Whether backend writes can be wrapped in a transaction on the Poweradmin database.

bool
recordIdsAreNumeric()

Whether record ids are the integer records.id values.

bool
managesSoaRecord()

Whether the backend writes and maintains the apex SOA of the zones it creates.

bool
allocatesZoneIdsLocally()

Whether zone ids are allocated from the local zones table rather than the PowerDNS domains table.

bool
providesSignedSerial()

Whether the zone list can carry the serial PowerDNS serves for signed zones.

bool
supportsRecordCountSort()

Whether zone lists can be ordered by record count across every page.

bool
supportsGroupSort()

Whether zone lists can be ordered by owning group.

bool
supportsZoneRetrieve()

Whether a secondary zone can be pulled from its primary on request.

bool
supportsZoneNotify()

Whether a primary zone can be told to send NOTIFY on request.

bool
syncsZoneListFromServer()

Whether the local zone list is a mirror that can be refreshed from the server.

Details

bool isApiBackend()

Check if this is the API backend.

Callers can use this to adjust behavior (e.g., skip manual SOA serial updates, show notices about search limitations).

Return Value

bool

bool supportsLocalWriteTransaction()

Whether backend writes can be wrapped in a transaction on the Poweradmin database.

True for the SQL backend, where the PowerDNS tables share the connection. False for the API backend: it writes over HTTP and then reads the local zones table for the new ids, and an open transaction would hide those rows.

Return Value

bool

bool recordIdsAreNumeric()

Whether record ids are the integer records.id values.

True for the SQL backend. False for the API backend, whose record ids are encoded composite keys (see RecordIdentifier) that do not fit an INT column.

Return Value

bool

bool managesSoaRecord()

Whether the backend writes and maintains the apex SOA of the zones it creates.

True for the API backend, where PowerDNS seeds the SOA on zone creation and template SOA records are skipped. False for the SQL backend, which stores whatever SOA Poweradmin writes.

Return Value

bool

bool allocatesZoneIdsLocally()

Whether zone ids are allocated from the local zones table rather than the PowerDNS domains table.

True for the API backend: createZone() inserts the zones row itself and a zone is identified by that row alone. False for the SQL backend, where the id is domains.id, the caller adds the zones row and a zone without a domains row is stale.

Return Value

bool

bool providesSignedSerial()

Whether the zone list can carry the serial PowerDNS serves for signed zones.

True for the API backend, whose zone list reports the signed serial. False for the SQL backend, which only sees the stored SOA serial.

Return Value

bool

bool supportsRecordCountSort()

Whether zone lists can be ordered by record count across every page.

True for the SQL backend, which counts in the query. False for the API backend, where counts are resolved per page and a sort would only order the rows already on screen.

Return Value

bool

bool supportsGroupSort()

Whether zone lists can be ordered by owning group.

True for the SQL backend, which joins the Poweradmin ownership tables in the list query. False for the API backend, whose zone list comes from PowerDNS and cannot join them.

Return Value

bool

bool supportsZoneRetrieve()

Whether a secondary zone can be pulled from its primary on request.

True for the API backend, and for the SQL backend when a PowerDNS API is configured. False otherwise, as there is no way to trigger a transfer.

Return Value

bool

bool supportsZoneNotify()

Whether a primary zone can be told to send NOTIFY on request.

True for the API backend, and for the SQL backend when a PowerDNS API is configured. False otherwise, as there is no way to trigger a NOTIFY.

Return Value

bool

bool syncsZoneListFromServer()

Whether the local zone list is a mirror that can be refreshed from the server.

True for the API backend, where the zones table is synced from PowerDNS. False for the SQL backend, where the domains table is the source itself.

Return Value

bool