DNSPod (Tencent Cloud)
Dotnify connects to DNSPod using a SecretId and SecretKey pair from Tencent Cloud. Requests are signed using the TC3-HMAC-SHA256 algorithm — no SDK dependency is needed.
Creating a SecretId and SecretKey
- Log in to the Tencent Cloud console
- Go to Access Management → API Key Management → API Keys
- Click Create Key — a SecretId and SecretKey will be generated
- Save the SecretKey securely — you won't be able to view it again after closing the dialog
WARNING
DNSPod uses the same Tencent Cloud API credentials. If you already have a SecretId/SecretKey with DNS permissions, you can reuse it — there's no need to create a new one.
Required Permissions
The API key needs the following DNSPod permissions:
| Service | Action | Description |
|---|---|---|
| DNSPod | dnspod:DescribeDomainList | List domains |
| DNSPod | dnspod:DescribeRecordList | List records in a domain |
| DNSPod | dnspod:CreateRecord | Create a record |
| DNSPod | dnspod:ModifyRecord | Update a record |
| DNSPod | dnspod:DeleteRecord | Delete a record |
| DNSPod | dnspod:DescribeRecordLineCategoryList | List resolution lines |
You can assign these through a custom policy in Access Management → Policies → Create Custom Policy.
Example custom policy (JSON):
{
"version": "2.0",
"statement": [
{
"effect": "allow",
"action": [
"dnspod:DescribeDomainList",
"dnspod:DescribeRecordList",
"dnspod:CreateRecord",
"dnspod:ModifyRecord",
"dnspod:DeleteRecord",
"dnspod:DescribeRecordLineCategoryList"
],
"resource": "*"
}
]
}For simplicity, you can also use the QcloudDNSPodFullAccess preset policy, which grants full DNSPod access.
Adding the Provider in Dotnify
- Go to Providers → Add provider
- Select DNSPod as the provider type
- Enter a Display name (e.g. "My DNSPod")
- Enter the SecretId and SecretKey
- Click Verify & continue
Dotnify will attempt to list domains using the provided credentials. If verification fails, check that:
- The SecretId and SecretKey were copied correctly
- The API key has the required DNSPod permissions
- The account has domains configured in DNSPod
Selecting Zones
After verification, Dotnify shows all domains accessible with the credentials. You can:
- Check specific domains to manage only those
- Leave all unchecked to manage every accessible domain
You can change the domain selection later by editing the provider.
How Dotnify Uses the Credentials
Dotnify stores the SecretId and SecretKey in Redis and uses them to make signed calls to the DNSPod API (version 2021-03-23):
| Operation | DNSPod API Action |
|---|---|
| List domains | DescribeDomainList |
| List records | DescribeRecordList |
| Create record | CreateRecord |
| Update record | ModifyRecord |
| Delete record | DeleteRecord |
| List lines | DescribeRecordLineCategoryList |
All requests are signed with the TC3-HMAC-SHA256 algorithm and sent as POST to https://dnspod.tencentcloudapi.com/.
DNSPod-Specific Features
Resolution Lines
DNSPod supports resolution lines — you can set different records for different ISPs, regions, or search engines (e.g. default, telecom, unicom, mobile, Baidu, Google). When creating or editing a record in Dotnify, you can select a resolution line from a dropdown.
Unlike Huawei Cloud (which uses a local static file), DNSPod lines are fetched live from the API via the DescribeRecordLineCategoryList action. The available lines may vary per domain depending on your DNSPod plan.
Lines are organized into categories with a two-level hierarchy:
| Category | Examples |
|---|---|
| Default | Default line |
| ISP/Carrier | Telecom, Unicom, Mobile |
| Region | China, Overseas, Continents, Countries |
| Search Engine | Baidu, Google, Bing, Youdao, Sogou, Qihoo |
When selecting a line in the Dotnify UI, the first dropdown shows the top-level group and the second dropdown shows the specific line within that group.
Record Weight
DNSPod supports per-record weighting. When creating or editing a record, you can set a weight value. This is useful for load balancing — DNSPod will distribute traffic based on the weight ratio across records with the same name and type.
Minimum TTL
DNSPod enforces a minimum TTL of 600 seconds (10 minutes) on the free plan. Dotnify automatically enforces this: if you set a TTL below 600, it will be rounded up to 600.
| Plan | Minimum TTL |
|---|---|
| Free | 600s |
| Professional | 300s |
| Enterprise | 60s |
| Ultimate | 1s |
URL Forwarding Types
DNSPod uses Chinese names for URL forwarding record types. Dotnify automatically converts between the standard names and DNSPod's API names:
| Dotnify Type | DNSPod API Type |
|---|---|
REDIRECT_URL | 显性URL |
FORWARD_URL | 隐性URL |
Record Status
DNSPod records have an enable/disable status. Dotnify exposes this as a status field on records ("enable" or "disable"). This is read-only in the current version.
Security Notes
- The SecretId and SecretKey are stored in plaintext in Redis (current MVP design). Protect your Redis instance with strong credentials.
- When the provider list is returned via the API, keys are masked — only the last 4 characters are visible.
- When editing a provider, you can leave the SecretId/SecretKey fields blank to keep the current values unchanged.
- All DNSPod API calls are made server-side — the credentials are never exposed to the browser.