diff --git a/commands/types/dnscontrol.d.ts b/commands/types/dnscontrol.d.ts index 3813b3d164..253fededeb 100644 --- a/commands/types/dnscontrol.d.ts +++ b/commands/types/dnscontrol.d.ts @@ -1159,7 +1159,7 @@ declare const PURGE: DomainModifier; * * Most providers automatically generate SOA records. They will ignore any `SOA()` statements. * * The mbox field should not be set to a real email address unless you love spam and hate your privacy. * - * There is more info about `SOA` in the documentation for the [BIND provider](../../providers/bind.md). + * There is more info about `SOA` in the documentation for the [BIND provider](../../service_providers/providers/bind.md). * * @see https://dnscontrol.org/js#SOA */ @@ -2302,10 +2302,10 @@ declare function IP(ip: string): number; * answers on port 53 to queries related to the zone). * * * `name` must match the name of an entry in `creds.json`. - * * `type` specifies a valid DNS provider type identifier listed on the [provider page](../../providers.md). + * * `type` specifies a valid DNS provider type identifier listed on the [provider page](../../service_providers/providers.md). * * Starting with [v3.16](../../v316.md), the type is optional. If it is absent, the `TYPE` field in `creds.json` is used instead. You can leave it out. (Thanks to JavaScript magic, you can leave it out even when there are more fields). * * Starting with v4.0, specifying the type may be an error. Please add the `TYPE` field to `creds.json` and remove this parameter from `dnsconfig.js` to prepare. - * * `meta` is a way to send additional parameters to the provider. It is optional and only certain providers use it. See the [individual provider docs](../../providers.md) for details. + * * `meta` is a way to send additional parameters to the provider. It is optional and only certain providers use it. See the [individual provider docs](../../service_providers/providers.md) for details. * * This function will return an opaque string that should be assigned to a variable name for use in [D](D.md) directives. * @@ -2341,10 +2341,10 @@ declare function NewDnsProvider(name: string, type?: string, meta?: object): str * nameservers for the domain). DNSControl only manages the delegation. * * * `name` must match the name of an entry in `creds.json`. - * * `type` specifies a valid DNS provider type identifier listed on the [provider page](../../providers.md). + * * `type` specifies a valid DNS provider type identifier listed on the [provider page](../../service_providers/providers.md). * * Starting with [v3.16](../../v316.md), the type is optional. If it is absent, the `TYPE` field in `creds.json` is used instead. You can leave it out. (Thanks to JavaScript magic, you can leave it out even when there are more fields). * * Starting with v4.0, specifying the type may be an error. Please add the `TYPE` field to `creds.json` and remove this parameter from `dnsconfig.js` to prepare. - * * `meta` is a way to send additional parameters to the provider. It is optional and only certain providers use it. See the [individual provider docs](../../providers.md) for details. + * * `meta` is a way to send additional parameters to the provider. It is optional and only certain providers use it. See the [individual provider docs](../../service_providers/providers.md) for details. * * This function will return an opaque string that should be assigned to a variable name for use in [D](D.md) directives. * diff --git a/documentation/adding-new-rtypes.md b/documentation/adding-new-rtypes.md index 4f68e9452a..f4c14a6e95 100644 --- a/documentation/adding-new-rtypes.md +++ b/documentation/adding-new-rtypes.md @@ -79,9 +79,9 @@ popd func matrixData() *FeatureMatrix { const ( ... - DomainModifierCaa = "[`CAA`](functions/domain/CAA.md)" - + DomainModifierFoo = "[`FOO`](functions/domain/FOO.md)" - DomainModifierLoc = "[`LOC`](functions/domain/LOC.md)" + DomainModifierCaa = "[`CAA`](language_reference/domain_modifier_functions/CAA.md)" + + DomainModifierFoo = "[`FOO`](language_reference/domain_modifier_functions/FOO.md)" + DomainModifierLoc = "[`LOC`](language_reference/domain_modifier_functions/LOC.md)" ... ) matrix := &FeatureMatrix{ @@ -153,7 +153,7 @@ example we removed `providers.CanUseCAA` from the Add a function to `pkg/js/helpers.js` for the new record type. This is the JavaScript file that defines `dnsconfig.js`'s functions like -[`A()`](functions/domain/A.md) and [`MX()`](functions/domain/MX.md). Look at the definition of `A`, `MX` and `CAA` for good +[`A()`](language_reference/domain_modifier_functions/A.md) and [`MX()`](language_reference/domain_modifier_functions/MX.md). Look at the definition of `A`, `MX` and `CAA` for good examples to use as a base. Please add the function alphabetically with the others. Also, please run @@ -306,24 +306,24 @@ Add the new file `FOO.md` to the documentation table of contents [`documentation ... * Domain Modifiers ... - * [DnsProvider](functions/domain/DnsProvider.md) -+ * [FOO](functions/domain/FOO.md) - * [FRAME](functions/domain/FRAME.md) + * [DnsProvider](language_reference/domain_modifier_functions/DnsProvider.md) ++ * [FOO](language_reference/domain_modifier_functions/FOO.md) + * [FRAME](language_reference/domain_modifier_functions/FRAME.md) ... * Service Provider specific ... * ClouDNS - * [CLOUDNS_WR](functions/domain/CLOUDNS_WR.md) + * [CLOUDNS_WR](language_reference/domain_modifier_functions/service_provider_specific/ClouDNS/CLOUDNS_WR.md) + * ASDF -+ * [NINJA_RECORD](function/domain/FOO_NINJA.md) ++ * [NINJA_RECORD](language_reference/domain_modifier_functions/service_provider_specific/XYZ/FOO_NINJA.md) * NS1 - * [NS1_URLFWD](functions/domain/NS1_URLFWD.md) + * [NS1_URLFWD](language_reference/domain_modifier_functions/service_provider_specific/NS1/NS1_URLFWD.md) ... * Record Modifiers ... - * [DMARC_BUILDER](functions/record/DMARC_BUILDER.md) -+ * [FOO_HELPER](functions/record/FOO_HELPER.md) - * [SPF_BUILDER](functions/record/SPF_BUILDER.md) + * [DMARC_BUILDER](language_reference/record_modifier_functions/DMARC_BUILDER.md) ++ * [FOO_HELPER](language_reference/record_modifier_functions/FOO_HELPER.md) + * [SPF_BUILDER](language_reference/record_modifier_functions/SPF_BUILDER.md) ... ``` {% endcode %} diff --git a/documentation/bug-triage.md b/documentation/bug-triage.md index ee6b6679a5..83a55533de 100644 --- a/documentation/bug-triage.md +++ b/documentation/bug-triage.md @@ -2,7 +2,7 @@ If an issue is related to a particular provider, assign it to the person responsible for the provider, as listed in -[Providers](providers.md)'s "Maintainers of +[Providers](service_providers/providers.md)'s "Maintainers of contributed providers". Otherwise leave it unassigned until someone grabs it. @@ -27,7 +27,7 @@ priority: 1. Respond to the issue with the message below 1. Close the issue -The [Providers](providers.md) page is generated +The [Providers](service_providers/providers.md) page is generated automatically from all the issues tagged `provider-request`: 1. "Requested providers: state=closed, tagged `provider-request` diff --git a/documentation/byo-secrets.md b/documentation/byo-secrets.md index 84813dc1f2..377f6c8981 100644 --- a/documentation/byo-secrets.md +++ b/documentation/byo-secrets.md @@ -155,7 +155,7 @@ HEXONET_UID: test.user ``` {% hint style="info" %} -**NOTE**: The above credentials are [known to the public](providers/hexonet.md). +**NOTE**: The above credentials are [known to the public](service_providers/providers/hexonet.md). {% endhint %} # Caveats diff --git a/documentation/code-tricks.md b/documentation/code-tricks.md index 71432758d1..48a0419c46 100644 --- a/documentation/code-tricks.md +++ b/documentation/code-tricks.md @@ -4,9 +4,9 @@ Problem: It is difficult to get CAA and other records exactly right. Solution: Use a "builder" to construct it for you. -* [CAA Builder](functions/record/CAA_BUILDER.md) -* [DMARC Builder](functions/record/DMARC_BUILDER.md) -* [SPF Optimizer](functions/record/SPF_BUILDER.md) +* [CAA Builder](language_reference/record_modifier_functions/CAA_BUILDER.md) +* [DMARC Builder](language_reference/record_modifier_functions/DMARC_BUILDER.md) +* [SPF Optimizer](language_reference/record_modifier_functions/SPF_BUILDER.md) # Repeat records in many domains (macros) diff --git a/documentation/creds-json.md b/documentation/creds-json.md index 19f6e6ef7b..03b926f297 100644 --- a/documentation/creds-json.md +++ b/documentation/creds-json.md @@ -167,7 +167,7 @@ invalid. Perhaps you meant to specify a `-` on a command-line tool? The fix is to change the `TYPE` subkey entry in `creds.json` from `-` to a valid service provider identifier, as listed -in [the service provider list](providers.md). +in [the service provider list](service_providers/providers.md). ## Using a different file name diff --git a/documentation/examples.md b/documentation/examples.md index 0e5b1262a8..e88fda155a 100644 --- a/documentation/examples.md +++ b/documentation/examples.md @@ -49,7 +49,7 @@ D('example.com', REG, DnsProvider('R53'), {% endcode %} {% hint style="info" %} -**NOTE**: The [`IP()`](functions/global/IP.md) function doesn't currently support IPv6 (PRs welcome!). IPv6 addresses are strings. +**NOTE**: The [`IP()`](language_reference/top_level_functions/IP.md) function doesn't currently support IPv6 (PRs welcome!). IPv6 addresses are strings. {% endhint %} {% code title="dnsconfig.js" %} ```javascript diff --git a/documentation/getting-started.md b/documentation/getting-started.md index b8a783bfce..992e73d4da 100644 --- a/documentation/getting-started.md +++ b/documentation/getting-started.md @@ -99,7 +99,7 @@ D('example.com', REG_NONE, DnsProvider(DNS_BIND), ``` {% endcode %} -Modify this file to match your particular providers and domains. See [the DNSConfig docs](language_reference/JavaScript_DSL.md) and [the provider docs](providers.md) for more details. +Modify this file to match your particular providers and domains. See [the DNSConfig docs](language_reference/JavaScript_DSL.md) and [the provider docs](service_providers/providers.md) for more details. Create a file called `creds.json` for storing provider configurations (API tokens and other account information). For example, to use both name.com and Cloudflare, you would have: @@ -292,7 +292,7 @@ $TTL 300 ``` You can change the "DEFAULT_NOT_SET" text by following the documentation -for the [BIND provider](providers/bind.md) to set +for the [BIND provider](service_providers/providers/bind.md) to set the "master" and "mbox" settings. Try that now. @@ -303,7 +303,7 @@ a real domain (or a test domain if you have one). Set up the provider: Add the providers's definition to `dnsconfig.js` and list any credentials in `creds.json`. Each provider is different. -See [the provider docs](providers.md) for +See [the provider docs](service_providers/providers.md) for specifics. Edit the domain: Add the `D()` entry for the domain, or repurpose diff --git a/documentation/index.md b/documentation/index.md index bd14d61707..89f4bc8d86 100644 --- a/documentation/index.md +++ b/documentation/index.md @@ -4,21 +4,21 @@ # Try It -Want to jump right in? Follow our [quick start tutorial](getting-started.md) on a new domain or [migrate](migrating.md) an existing one. Read the [language spec](02_language_reference/JavaScript_DSL.md) for more info. +Want to jump right in? Follow our [quick start tutorial](getting-started.md) on a new domain or [migrate](migrating.md) an existing one. Read the [language spec](language_reference/JavaScript_DSL.md) for more info. # Use It -Take advantage of the advanced features. Use macros and variables for easier updates. Upload your zones to [multiple DNS providers](providers.md). +Take advantage of the advanced features. Use macros and variables for easier updates. Upload your zones to [multiple DNS providers](service_providers/providers.md). {% hint style="success" %} * Maintain your DNS data as a high-level DS, with macros, and variables for easier updates. * Super extensible! Plug-in architecture makes adding new DNS providers and Registrars easy! * Eliminate vendor lock-in. Switch DNS providers easily, any time, with full fidelity. * Reduce points of failure: Easily maintain dual DNS providers and easily drop one that is down. -* Supports 35+ [DNS Providers](providers.md) including [BIND](providers/bind.md), [AWS Route 53](providers/route53.md), [Google DNS](providers/gcloud.md), and [name.com](providers/namedotcom.md). +* Supports 35+ [DNS Providers](service_providers/providers.md) including [BIND](service_providers/providers/bind.md), [AWS Route 53](service_providers/providers/route53.md), [Google DNS](service_providers/providers/gcloud.md), and [name.com](service_providers/providers/namedotcom.md). * [Apply CI/CD principles](ci-cd-gitlab.md) to DNS: Unit-tests, system-tests, automated deployment. * All the benefits of Git (or any VCS) for your DNS zone data. View history. Accept PRs. -* Optimize DNS with [SPF optimizer](functions/record/SPF_BUILDER.md). Detect too many lookups. Flatten includes. +* Optimize DNS with [SPF optimizer](language_reference/record_modifier_functions/SPF_BUILDER.md). Detect too many lookups. Flatten includes. * Runs on Linux, Windows, Mac, or any operating system supported by Go. * Enable/disable Cloudflare proxying (the "orange cloud" button) directly from your DNSControl files. * [Assign an IP address to a constant](examples.md#variables-for-common-ip-addresses) and use the variable name throughout the configuration. Need to change the IP address globally? Just change the variable and "recompile". diff --git a/documentation/language_reference/domain_modifier_functions/SOA.md b/documentation/language_reference/domain_modifier_functions/SOA.md index 8a97400fae..ba596384f3 100644 --- a/documentation/language_reference/domain_modifier_functions/SOA.md +++ b/documentation/language_reference/domain_modifier_functions/SOA.md @@ -39,4 +39,4 @@ when you are making it easier for spammers how to find you. * Most providers automatically generate SOA records. They will ignore any `SOA()` statements. * The mbox field should not be set to a real email address unless you love spam and hate your privacy. -There is more info about `SOA` in the documentation for the [BIND provider](../../providers/bind.md). +There is more info about `SOA` in the documentation for the [BIND provider](../../service_providers/providers/bind.md). diff --git a/documentation/language_reference/top_level_functions/NewDnsProvider.md b/documentation/language_reference/top_level_functions/NewDnsProvider.md index 4c9f394842..63466754a8 100644 --- a/documentation/language_reference/top_level_functions/NewDnsProvider.md +++ b/documentation/language_reference/top_level_functions/NewDnsProvider.md @@ -16,10 +16,10 @@ A DSP stores a DNS zone's records and provides DNS service for the zone (i.e. answers on port 53 to queries related to the zone). * `name` must match the name of an entry in `creds.json`. -* `type` specifies a valid DNS provider type identifier listed on the [provider page](../../providers.md). +* `type` specifies a valid DNS provider type identifier listed on the [provider page](../../service_providers/providers.md). * Starting with [v3.16](../../v316.md), the type is optional. If it is absent, the `TYPE` field in `creds.json` is used instead. You can leave it out. (Thanks to JavaScript magic, you can leave it out even when there are more fields). * Starting with v4.0, specifying the type may be an error. Please add the `TYPE` field to `creds.json` and remove this parameter from `dnsconfig.js` to prepare. -* `meta` is a way to send additional parameters to the provider. It is optional and only certain providers use it. See the [individual provider docs](../../providers.md) for details. +* `meta` is a way to send additional parameters to the provider. It is optional and only certain providers use it. See the [individual provider docs](../../service_providers/providers.md) for details. This function will return an opaque string that should be assigned to a variable name for use in [D](D.md) directives. diff --git a/documentation/language_reference/top_level_functions/NewRegistrar.md b/documentation/language_reference/top_level_functions/NewRegistrar.md index 1f0a897036..320a4fe28f 100644 --- a/documentation/language_reference/top_level_functions/NewRegistrar.md +++ b/documentation/language_reference/top_level_functions/NewRegistrar.md @@ -16,10 +16,10 @@ A registrar maintains the domain's registration and delegation (i.e. the nameservers for the domain). DNSControl only manages the delegation. * `name` must match the name of an entry in `creds.json`. -* `type` specifies a valid DNS provider type identifier listed on the [provider page](../../providers.md). +* `type` specifies a valid DNS provider type identifier listed on the [provider page](../../service_providers/providers.md). * Starting with [v3.16](../../v316.md), the type is optional. If it is absent, the `TYPE` field in `creds.json` is used instead. You can leave it out. (Thanks to JavaScript magic, you can leave it out even when there are more fields). * Starting with v4.0, specifying the type may be an error. Please add the `TYPE` field to `creds.json` and remove this parameter from `dnsconfig.js` to prepare. -* `meta` is a way to send additional parameters to the provider. It is optional and only certain providers use it. See the [individual provider docs](../../providers.md) for details. +* `meta` is a way to send additional parameters to the provider. It is optional and only certain providers use it. See the [individual provider docs](../../service_providers/providers.md) for details. This function will return an opaque string that should be assigned to a variable name for use in [D](D.md) directives. diff --git a/documentation/nameservers.md b/documentation/nameservers.md index e7f2e1a57e..f5555063c3 100644 --- a/documentation/nameservers.md +++ b/documentation/nameservers.md @@ -248,7 +248,7 @@ a notified if the delegation diverges. Why? Sometimes you just want to know if something changes! -See the [DNS-over-HTTPS Provider](providers/dnsoverhttps.md) documentation for more info. +See the [DNS-over-HTTPS Provider](service_providers/providers/dnsoverhttps.md) documentation for more info. {% code title="dnsconfig.js" %} ```javascript diff --git a/documentation/writing-providers.md b/documentation/writing-providers.md index 1daed5365d..cc5ad1c0bb 100644 --- a/documentation/writing-providers.md +++ b/documentation/writing-providers.md @@ -8,7 +8,7 @@ and the system takes care of the rest. Please do note that if you submit a new provider you will be assigned bugs related to the provider in the future (unless you designate someone else as the maintainer). More details -[here](providers.md). +[here](service_providers/providers.md). ## Overview @@ -77,7 +77,7 @@ Registrar if needed. If you have any questions, please discuss them in the GitHub issue related to the request for this provider. Please let us know what was confusing so we can update this document with advice for future -authors (or even better, update [this document](https://github.com/StackExchange/dnscontrol/blob/master/documentation/writing-providers.md) +authors (or even better, update [this document](writing-providers.md) yourself.) @@ -204,7 +204,7 @@ an automated way to test for this bug. The manual steps are here in ## Step 9: Update docs * Edit [README.md](https://github.com/StackExchange/dnscontrol): Add the provider to the bullet list. -* Edit [documentation/providers.md](https://github.com/StackExchange/dnscontrol/blob/master/documentation/providers.md): Add the provider to the provider list. +* Edit [documentation/providers.md](service_providers/providers.md): Add the provider to the provider list. * Create `documentation/providers/PROVIDERNAME.md`: Use one of the other files in that directory as a base. * Edit [OWNERS](https://github.com/StackExchange/dnscontrol/blob/master/OWNERS): Add the directory name and your GitHub username. @@ -296,9 +296,9 @@ Here are some last-minute things to check before you submit your PR. 2. Make sure all appropriate documentation is current. (See [Step 8](#step-8-manual-tests)) 3. Check that dependencies are current (See [Step 13](#step-13-dependencies)) 4. Re-run the integration test one last time (See [Step 7](#step-7-integration-test)) -5. Re-read the [maintainer's responsibilities](providers.md) bullet list. By submitting a provider you agree to maintain it, respond to bugs, perioidically re-run the integration test to verify nothing has broken, and if we don't hear from you for 2 months we may disable the provider. +5. Re-read the [maintainer's responsibilities](service_providers/providers.md) bullet list. By submitting a provider you agree to maintain it, respond to bugs, perioidically re-run the integration test to verify nothing has broken, and if we don't hear from you for 2 months we may disable the provider. ## Step 16: After the PR is merged 1. Remove the "provider-request" label from the PR. -2. Verify that [documentation/providers.md](providers.md) no longer shows the provider as "requested" +2. Verify that [documentation/providers.md](service_providers/providers.md) no longer shows the provider as "requested"