From a97b6ceb4cb05cbd63ebebc634dacaebbc7ccf1b Mon Sep 17 00:00:00 2001 From: Tom Limoncelli Date: Sat, 16 May 2026 08:50:33 -0400 Subject: [PATCH] MIKROTIK: support init command Register CredsMetadata so the MIKROTIK provider appears in the `dnscontrol init` wizard. Co-Authored-By: Claude Opus 4.7 (1M context) --- providers/mikrotik/mikrotikProvider.go | 27 ++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/providers/mikrotik/mikrotikProvider.go b/providers/mikrotik/mikrotikProvider.go index fd27550873..c719422914 100644 --- a/providers/mikrotik/mikrotikProvider.go +++ b/providers/mikrotik/mikrotikProvider.go @@ -65,6 +65,33 @@ func init() { providers.RegisterCustomRecordType("MIKROTIK_FORWARDER", providerName, "") providers.RegisterDomainServiceProviderType(providerName, fns, features) providers.RegisterMaintainer(providerName, providerMaintainer) + providers.RegisterCredsMetadata(providerName, providers.CredsMetadata{ + DisplayName: "MikroTik RouterOS", + Kind: providers.KindDNS, + DocsURL: "https://docs.dnscontrol.org/provider/mikrotik", + PortalURL: "", // No portal; managed on-device + Fields: []providers.CredsField{ + { + Key: "host", + Label: "Host URL", + Help: "The MikroTik RouterOS REST API endpoint (for example http://192.168.88.1:8080).", + Required: true, + }, + { + Key: "username", + Label: "Username", + Help: "RouterOS API username.", + Required: true, + }, + { + Key: "password", + Label: "Password", + Help: "RouterOS API password.", + Secret: true, + Required: true, + }, + }, + }) } func newMikrotikProvider(cfg map[string]string, _ json.RawMessage) (providers.DNSServiceProvider, error) {