technitium 0.4.0

Typed async Rust client for the Technitium DNS Server API
Documentation
# Export Allowed Zones

## Endpoint

`/api/allowed/export`

**Obsolete Path:** `/api/exportAllowedZones`

## Method

GET

## Description

Exports all the zones from the Allowed Zones as a downloadable text file. The response is a plain text file rather than the standard JSON response format.

## Authentication

Required. A valid session token obtained from the `login` or `createToken` API call.

## Permissions

Allowed: View

## Parameters

| Name | Type | Required | Conditional | Description |
|------|------|----------|-------------|-------------|
| `token` | string | Yes | No | The session token generated by the `login` or the `createToken` call. |
| `node` | string | No | No | The node domain name for which this API call is intended. When unspecified, the current node is used. Can only be used when Clustering is initialized. |

## Response Fields

This endpoint does NOT return a JSON response. Instead it returns:

| Header | Value | Description |
|--------|-------|-------------|
| `Content-Type` | `text/plain` | The response body is plain text, not JSON. |
| `Content-Disposition` | `attachment` | The response is served as a downloadable file attachment. |

The response body is a text file containing the exported allowed zones.

## Conditional Logic Notes

- The `node` parameter is only functional when Clustering is initialized.
- This is one of only two Allowed Zones endpoints that support the `node` parameter (along with `list`).
- This endpoint shares the "View" permission level with the `list` endpoint.
- Unlike all other Allowed Zones endpoints, the response is NOT JSON but a downloadable text file.

## Edge Cases

- The documentation does not specify the format of the exported text file (e.g., one domain per line, comma-separated, or another format).
- The documentation does not specify behavior when there are no allowed zones to export (empty file vs. error).
- The response requires different handling than other API calls since it returns a file download rather than JSON.
- The `Content-Disposition: attachment` header means HTTP clients should treat the response as a file download, which may require special handling (e.g., saving to disk rather than parsing as JSON).