feat: add ManualDNSChallenge component and related hooks for manual DNS challenge management

- Implemented `useManualChallenge`, `useChallengePoll`, and `useManualChallengeMutations` hooks for managing manual DNS challenges.
- Created tests for the `useManualChallenge` hooks to ensure correct fetching and mutation behavior.
- Added `ManualDNSChallenge` component for displaying challenge details and actions.
- Developed end-to-end tests for the Manual DNS Provider feature, covering provider selection, challenge UI, and accessibility compliance.
- Included error handling tests for verification failures and network errors.
This commit is contained in:
GitHub Actions
2026-01-12 04:01:40 +00:00
parent a199dfd079
commit d7939bed70
132 changed files with 8680 additions and 878 deletions

View File

@@ -205,4 +205,62 @@ export const defaultProviderSchemas: Record<DNSProviderType, Partial<DNSProvider
],
documentation_url: 'https://developer.dnsimple.com/',
},
manual: {
type: 'manual',
name: 'Manual DNS',
fields: [],
documentation_url: 'https://letsencrypt.org/docs/challenge-types/',
},
script: {
type: 'script',
name: 'Custom Script',
fields: [
{
name: 'script_path',
label: 'Script Path',
type: 'text',
required: true,
hint: 'Path to custom DNS update script',
},
],
documentation_url: '',
},
webhook: {
type: 'webhook',
name: 'Webhook',
fields: [
{
name: 'url',
label: 'Webhook URL',
type: 'text',
required: true,
},
],
documentation_url: '',
},
rfc2136: {
type: 'rfc2136',
name: 'RFC2136 (Dynamic DNS)',
fields: [
{
name: 'server',
label: 'DNS Server',
type: 'text',
required: true,
},
{
name: 'key_name',
label: 'TSIG Key Name',
type: 'text',
required: true,
},
{
name: 'key_secret',
label: 'TSIG Key Secret',
type: 'password',
required: true,
},
],
documentation_url: 'https://tools.ietf.org/html/rfc2136',
},
}