DOCS: [GitBook] Refactor structure to match URL paths and fix missing page links (#3613)

This commit is contained in:
Jeffrey Cafferata 2025-06-11 22:20:23 +02:00 committed by GitHub
parent 3ea7ea84c9
commit e5f4d97950
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
49 changed files with 117 additions and 114 deletions

View file

@ -93,7 +93,7 @@ func matrixData() *FeatureMatrix {
OfficialSupport = "Official Support" // vs. community supported
ProviderDNSProvider = "DNS Provider"
ProviderRegistrar = "Registrar"
ProviderThreadSafe = "[Concurrency Verified](../concurrency-verified.md)"
ProviderThreadSafe = "[Concurrency Verified](../advanced-features/concurrency-verified.md)"
DomainModifierAlias = "[`ALIAS`](../language-reference/domain-modifiers/ALIAS.md)"
DomainModifierCaa = "[`CAA`](../language-reference/domain-modifiers/CAA.md)"
DomainModifierDnssec = "[`AUTODNSSEC`](../language-reference/domain-modifiers/AUTODNSSEC_ON.md)"
@ -110,7 +110,7 @@ func matrixData() *FeatureMatrix {
DomainModifierDhcid = "[`DHCID`](../language-reference/domain-modifiers/DHCID.md)"
DomainModifierDname = "[`DNAME`](../language-reference/domain-modifiers/DNAME.md)"
DomainModifierDnskey = "[`DNSKEY`](../language-reference/domain-modifiers/DNSKEY.md)"
DualHost = "[dual host](../dual-host.md)"
DualHost = "[dual host](../advanced-features/dual-host.md)"
CreateDomains = "create-domains"
GetZones = "get-zones"
)

View file

@ -108,7 +108,8 @@ func generateFunctionTypes() (string, error) {
}
for _, t := range types {
if !t.IsDir() {
return "", errors.New("not a directory: " + join(srcRoot, t.Name()))
// Skip non-directories like js.md or why-the-dot.md
continue
}
tPath := join(srcRoot, t.Name())
funcNames, err := os.ReadDir(tPath)

View file

@ -1119,7 +1119,7 @@ declare function DefaultTTL(ttl: Duration): DomainModifier;
* Using a different number, ie: `DnsProvider("name",2)`, means "fetch all nameservers from this provider,
* but limit it to this many.
*
* See [this page](../../nameservers.md) for a detailed explanation of how DNSControl handles nameservers and NS records.
* See [this page](../../advanced-features/nameservers.md) for a detailed explanation of how DNSControl handles nameservers and NS records.
*
* If a domain (`D()`) does not include any `DnsProvider()` functions,
* the DNS records will not be modified. In fact, if you want to control
@ -1934,7 +1934,7 @@ declare function MX(name: string, priority: number, target: string, ...modifiers
* in the current zone and accepts a label. [`NS()`](NS.md) is for downward
* delegations. `NAMESERVER()` is for informing upstream delegations.
*
* For more information, refer to [this page](../../nameservers.md).
* For more information, refer to [this page](../../advanced-features/nameservers.md).
*
* ```javascript
* D("example.com", REG_MY_PROVIDER,
@ -2310,13 +2310,13 @@ declare function NS(name: string, target: string, ...modifiers: RecordModifier[]
*
* * `name` must match the name of an entry in `creds.json`.
* * `type` specifies a valid DNS provider type identifier listed on the [provider page](../../provider/index.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 [v3.16](../../release/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](../../provider/index.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.
*
* Prior to [v3.16](../../v316.md):
* Prior to [v3.16](../../release/v316.md):
*
* ```javascript
* var REG_MYNDC = NewRegistrar("mynamedotcom", "NAMEDOTCOM");
@ -2327,7 +2327,7 @@ declare function NS(name: string, target: string, ...modifiers: RecordModifier[]
* );
* ```
*
* In [v3.16](../../v316.md) and later:
* In [v3.16](../../release/v316.md) and later:
*
* ```javascript
* var REG_MYNDC = NewRegistrar("mynamedotcom");
@ -2349,13 +2349,13 @@ declare function NewDnsProvider(name: string, type?: string, meta?: object): str
*
* * `name` must match the name of an entry in `creds.json`.
* * `type` specifies a valid DNS provider type identifier listed on the [provider page](../../provider/index.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 [v3.16](../../release/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](../../provider/index.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.
*
* Prior to [v3.16](../../v316.md):
* Prior to [v3.16](../../release/v316.md):
*
* ```javascript
* var REG_MYNDC = NewRegistrar("mynamedotcom", "NAMEDOTCOM");
@ -2366,7 +2366,7 @@ declare function NewDnsProvider(name: string, type?: string, meta?: object): str
* );
* ```
*
* In [v3.16](../../v316.md) and later:
* In [v3.16](../../release/v316.md) and later:
*
* ```javascript
* var REG_MYNDC = NewRegistrar("mynamedotcom");
@ -2718,7 +2718,7 @@ declare function REV(address: string): string;
* v4 defaults to RFC 2317. In v5.0 the default will change to RFC 4183.
* `REVCOMPAT()` is provided for those that wish to retain the old behavior.
*
* For more information, see [Opinion #9](../../opinions.md#opinion-9-rfc-4183-is-better-than-rfc-2317).
* For more information, see [Opinion #9](../../advanced-features/opinions.md#opinion-9-rfc-4183-is-better-than-rfc-2317).
*
* # Transition plan
*

View file

@ -4,14 +4,14 @@
## Getting Started
* [Overview](getting-started.md)
* [Examples](examples.md)
* [Migrating zones to DNSControl](migrating.md)
* [TypeScript autocomplete and type checking](typescript.md)
* [Overview](getting-started/getting-started.md)
* [Examples](getting-started/examples.md)
* [Migrating zones to DNSControl](getting-started/migrating.md)
* [TypeScript autocomplete and type checking](getting-started/typescript.md)
## Language Reference
* [JavaScript DSL](js.md)
* [JavaScript DSL](language-reference/js.md)
* Top Level Functions
* [D](language-reference/top-level-functions/D.md)
* [DEFAULTS](language-reference/top-level-functions/DEFAULTS.md)
@ -97,7 +97,7 @@
* Amazon Route 53
* [R53_ZONE](language-reference/record-modifiers/R53_ZONE.md)
* [R53_EVALUATE_TARGET_HEALTH](language-reference/record-modifiers/R53\_EVALUATE\_TARGET\_HEALTH.md)
* [Why CNAME/MX/NS targets require a "dot"](why-the-dot.md)
* [Why CNAME/MX/NS targets require a "dot"](language-reference/why-the-dot.md)
## Provider
@ -158,43 +158,45 @@
## Commands
* [preview/push](preview-push.md)
* [check-creds](check-creds.md)
* [get-zones](get-zones.md)
* [get-certs](get-certs.md)
* [fmt](fmt.md)
* [creds.json](creds-json.md)
* [Global Flag](globalflags.md)
* [Disabling Colors](colors.md)
* [preview/push](commands/preview-push.md)
* [check-creds](commands/check-creds.md)
* [get-zones](commands/get-zones.md)
* [get-certs](commands/get-certs.md)
* [fmt](commands/fmt.md)
* [creds.json](commands/creds-json.md)
* [Global Flag](commands/globalflags.md)
* [Disabling Colors](commands/colors.md)
## Advanced features
* [CI/CD example for GitLab](ci-cd-gitlab.md)
* [CLI variables](cli-variables.md)
* [Nameservers and Delegations](nameservers.md)
* [Notifications](notifications.md)
* [Useful code tricks](code-tricks.md)
* [JSON Reports](json-reports.md)
* [Concurrency Verified](advanced-features/concurrency-verified.md)
* [CI/CD example for GitLab](advanced-features/ci-cd-gitlab.md)
* [CLI variables](advanced-features/cli-variables.md)
* [Nameservers and Delegations](advanced-features/nameservers.md)
* [Notifications](advanced-features/notifications.md)
* [Useful code tricks](advanced-features/code-tricks.md)
* [JSON Reports](advanced-features/json-reports.md)
* [Dual Host](advanced-features/dual-host.md)
## Developer info
* [Code Style Guide](styleguide-code.md)
* [Documentation Style Guide](styleguide-doc.md)
* [DNSControl is an opinionated system](opinions.md)
* [Writing new DNS providers](writing-providers.md)
* [Creating new DNS Resource Types (rtypes)](adding-new-rtypes.md)
* [Integration Tests](integration-tests.md)
* [Test a branch](test-a-branch.md)
* [Unit Testing DNS Data](unittests.md)
* [Bug Triage Process](bug-triage.md)
* [Bring-Your-Own-Secrets for automated testing](byo-secrets.md)
* [Debugging with dlv](debugging-with-dlv.md)
* [ALIAS Records](alias.md)
* [TXT record testing](testing-txt-records.md)
* [DNS records ordering](ordering.md)
* [Code Style Guide](advanced-features/styleguide-code.md)
* [Documentation Style Guide](advanced-features/styleguide-doc.md)
* [DNSControl is an opinionated system](advanced-features/opinions.md)
* [Writing new DNS providers](advanced-features/writing-providers.md)
* [Creating new DNS Resource Types (rtypes)](advanced-features/adding-new-rtypes.md)
* [Integration Tests](advanced-features/integration-tests.md)
* [Test a branch](advanced-features/test-a-branch.md)
* [Unit Testing DNS Data](advanced-features/unittests.md)
* [Bug Triage Process](advanced-features/bug-triage.md)
* [Bring-Your-Own-Secrets for automated testing](advanced-features/byo-secrets.md)
* [Debugging with dlv](advanced-features/debugging-with-dlv.md)
* [ALIAS Records](advanced-features/alias.md)
* [TXT record testing](advanced-features/testing-txt-records.md)
* [DNS records ordering](advanced-features/ordering.md)
## Release
* [How to build and ship a release](release-engineering.md)
* [Changelog v3.16.0](v316.md)
* [How to build and ship a release](release/release-engineering.md)
* [Changelog v3.16.0](release/v316.md)
* [GitHub releases](https://github.com/StackExchange/dnscontrol/releases/latest)

View file

@ -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()`](language-reference/domain-modifiers/A.md) and [`MX()`](language-reference/domain-modifiers/MX.md). Look at the definition of `A`, `MX` and `CAA` for good
[`A()`](../language-reference/domain-modifiers/A.md) and [`MX()`](../language-reference/domain-modifiers/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
@ -300,7 +300,7 @@ Add a new Markdown file to `documentation/language-reference/domain-modifiers`.
The rest of the file is the documentation. You can use Markdown syntax to format the text.
Add the new file `FOO.md` to the documentation table of contents [`documentation/SUMMARY.md`](SUMMARY.md#domain-modifiers), and/or to the [`Service Provider specific`](SUMMARY.md#service-provider-specific) section if you made a record specific to a provider, and to the [`Record Modifiers`](SUMMARY.md#record-modifiers) section if you created any `*_BUILDER` or `*_HELPER` or similar functions for the new record type:
Add the new file `FOO.md` to the documentation table of contents [`documentation/SUMMARY.md`](../SUMMARY.md#domain-modifiers), and/or to the [`Service Provider specific`](../SUMMARY.md#service-provider-specific) section if you made a record specific to a provider, and to the [`Record Modifiers`](../SUMMARY.md#record-modifiers) section if you created any `*_BUILDER` or `*_HELPER` or similar functions for the new record type:
{% code title="documentation/SUMMARY.md" %}
```diff

View file

@ -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](provider/index.md)'s "Maintainers of
[Providers](../provider/index.md)'s "Maintainers of
contributed providers".
Otherwise leave it unassigned until someone grabs it.
@ -26,7 +26,7 @@ priority:
1. Respond to the issue with the message below
1. Close the issue
The [Providers](provider/index.md) page is generated
The [Providers](../provider/index.md) page is generated
automatically from all the issues tagged `provider-request`:
1. "Requested providers: state=closed, tagged `provider-request`

View file

@ -1,6 +1,6 @@
# GitLab CI/CD example
Before discussing the GitLab CI/CD setup, let's assume you already have a working DNSControl setup. Aren't you there yet? Then first check out the '[Getting Started](getting-started.md)' section.
Before discussing the GitLab CI/CD setup, let's assume you already have a working DNSControl setup. Aren't you there yet? Then first check out the '[Getting Started](../getting-started/getting-started.md)' section.
## DNSControl - Demo setup
@ -59,9 +59,9 @@ hY/gnT/MmXXko3YAcI4eQL8=
_Example of variable `$TRANSIP_PRIVATE_KEY` contents._
![GitLab CI/CD variables](assets/ci-cd-gitlab/settings-ci-cd-variables.png)
![GitLab CI/CD variables](../assets/ci-cd-gitlab/settings-ci-cd-variables.png)
![Insert GitLab CI/CD variable TRANSIP_PRIVATE_KEY](assets/ci-cd-gitlab/settings-ci-cd-variables-insert.png)
![Insert GitLab CI/CD variable TRANSIP_PRIVATE_KEY](../assets/ci-cd-gitlab/settings-ci-cd-variables-insert.png)
## GitLab CI - DNSControl preview
@ -132,7 +132,7 @@ dnscontrol "3.20.0" ("8bb63be8f5ed996a7ae0a21091954fcab996621b") built 26 Aug 22
Done. 1 corrections.
```
![CI/CD job output for DNSControl preview](assets/ci-cd-gitlab/ci-cd-job-output-dnscontrol-preview.png)
![CI/CD job output for DNSControl preview](../assets/ci-cd-gitlab/ci-cd-job-output-dnscontrol-preview.png)
## GitLab CI - DNSControl push
@ -162,7 +162,7 @@ What does this (new) YAML configuration mean?
- The `dnscontrol push` is run within the GitLab CI [predefined stage](https://docs.gitlab.com/ee/ci/yaml/#stages) `deploy`.
- This only happens when you start a GitLab pipeline from the [GitLab web interface](https://gitlab.com/cafferata/dnscontrol/-/pipelines/new) for the default branch (e.g. `main`).
![Start new CI/CD pipeline from the GitLab web interface](assets/ci-cd-gitlab/ci-cd-pipelines-new.png)
![Start new CI/CD pipeline from the GitLab web interface](../assets/ci-cd-gitlab/ci-cd-pipelines-new.png)
When we start the new [GitLab pipeline](https://gitlab.com/cafferata/dnscontrol/-/pipelines/656368384) from the [GitLab web interface](https://gitlab.com/cafferata/dnscontrol/-/pipelines/new), we see the GitLab job [dnscontrol-push](https://gitlab.com/cafferata/dnscontrol/-/jobs/3115896199) which makes the changes within the DNS provider TransIP.
@ -183,7 +183,7 @@ SUCCESS!
Done. 1 corrections.
```
![CI/CD job output for DNSControl push](assets/ci-cd-gitlab/ci-cd-job-output-dnscontrol-push.png)
![CI/CD job output for DNSControl push](../assets/ci-cd-gitlab/ci-cd-job-output-dnscontrol-push.png)
## GitLab CI - Duplicate YAML configuration

View file

@ -4,10 +4,10 @@ Problem: It is difficult to get CAA and other records exactly right.
Solution: Use a "builder" to construct it for you.
* [CAA_BUILDER](language-reference/domain-modifiers/CAA_BUILDER.md)
* [DMARC_BUILDER](language-reference/domain-modifiers/DMARC_BUILDER.md)
* [M365_BUILDER](language-reference/domain-modifiers/M365_BUILDER.md)
* [SPF_BUILDER](language-reference/domain-modifiers/SPF_BUILDER.md)
* [CAA_BUILDER](../language-reference/domain-modifiers/CAA_BUILDER.md)
* [DMARC_BUILDER](../language-reference/domain-modifiers/DMARC_BUILDER.md)
* [M365_BUILDER](../language-reference/domain-modifiers/M365_BUILDER.md)
* [SPF_BUILDER](../language-reference/domain-modifiers/SPF_BUILDER.md)
# Trailing commas
@ -172,5 +172,5 @@ domain exists, who requested it, any associated ticket numbers, and so
on.
We also comment the individual parts of a record. Look at the [SPF
Optimizer](language-reference/domain-modifiers/SPF_BUILDER.md) example. Each part of
Optimizer](../language-reference/domain-modifiers/SPF_BUILDER.md) example. Each part of
the SPF record has a comment.

View file

@ -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](provider/dnsoverhttps.md) documentation for more info.
See the [DNS-over-HTTPS Provider](../provider/dnsoverhttps.md) documentation for more info.
{% code title="dnsconfig.js" %}
```javascript

View file

@ -24,7 +24,7 @@ Notifications are configured in the `creds.json` file, since they often contain
If you want to send a notification, add the `--notify` flag to the `dnscontrol preview` or `dnscontrol push` commands.
Below is an example where we add [the A record](language-reference/domain-modifiers/A.md) `foo` and display the notification output.
Below is an example where we add [the A record](../language-reference/domain-modifiers/A.md) `foo` and display the notification output.
{% code title="dnsconfig.js" %}
```diff

View file

@ -198,7 +198,7 @@ universally.
Originally DNSControl implemented RFC 2317.
In v5.0 we will adopt RFC 4183 as the default. A new function,
[REVCOMPAT()](language-reference/top-level-functions/REVCOMPAT.md), will be provided to enable backwards compatibility.
[REVCOMPAT()](../language-reference/top-level-functions/REVCOMPAT.md), will be provided to enable backwards compatibility.
v4.x users can use the function to adopt the new behavior early.
See [REVCOMPAT()](language-reference/top-level-functions/REVCOMPAT.md) for details.
See [REVCOMPAT()](../language-reference/top-level-functions/REVCOMPAT.md) for details.

View file

@ -36,7 +36,7 @@ Within the git repo, docs are grouped:
Files in the `documentation/language-reference/{record,domain,global}` subdirectories
have a header at the top that is used to populate other systems.
Here's an example from [`A`](language-reference/domain-modifiers/A.md)
Here's an example from [`A`](../language-reference/domain-modifiers/A.md)
```
---
@ -62,7 +62,7 @@ parameter_types:
When you submit a GitHub pull request, you can view the result in advance. This allows you to check the impact of changes.
![](assets/styleguide-doc/pull-request-preview.webp)
![](../assets/styleguide-doc/pull-request-preview.webp)
### How to access preview links
@ -126,7 +126,7 @@ D("example.com", REG_NONE, DnsProvider(DNS_BIND),
```
{% endcode %}
[Source code](markdown-examples/code/dnsconfig-code-example-with-filename.md?plain=1)
[Source code](../markdown-examples/code/dnsconfig-code-example-with-filename.md?plain=1)
Long example: (without filename)
@ -141,7 +141,7 @@ D("example.com", REG_NONE, DnsProvider(DNS_BIND),
```
{% endcode %}
[Source code](markdown-examples/code/dnsconfig-code-example-without-filename.md?plain=1)
[Source code](../markdown-examples/code/dnsconfig-code-example-without-filename.md?plain=1)
### Hint
@ -155,25 +155,25 @@ There are 4 different types of hints, and both inline content and formatting are
**Info hints** are great for showing general information, or providing tips and tricks.
{% endhint %}
[Source code](markdown-examples/hint/hint-info.md?plain=1)
[Source code](../markdown-examples/hint/hint-info.md?plain=1)
{% hint style="success" %}
**Success hints** are good for showing positive actions or achievements.
{% endhint %}
[Source code](markdown-examples/hint/hint-success.md?plain=1)
[Source code](../markdown-examples/hint/hint-success.md?plain=1)
{% hint style="warning" %}
**Warning hints** are good for showing important information or non-critical warnings.
{% endhint %}
[Source code](markdown-examples/hint/hint-warning.md?plain=1)
[Source code](../markdown-examples/hint/hint-warning.md?plain=1)
{% hint style="danger" %}
**Danger hints** are good for highlighting destructive actions or raising attention to critical information.
{% endhint %}
[Source code](markdown-examples/hint/hint-danger.md?plain=1)
[Source code](../markdown-examples/hint/hint-danger.md?plain=1)
{% hint style="info" %}
### This is a heading
@ -193,7 +193,7 @@ However, the first mention on a page should always
be a link. Others are at the authors digression.
```markdown
The [`PTR`](language-reference/domain-modifiers/PTR.md) feature is helpful in LANs.
The [`PTR`](../language-reference/domain-modifiers/PTR.md) feature is helpful in LANs.
```
#### Mentioning functions from the Source code

View file

@ -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](provider/index.md).
[here](../provider/index.md).
Please follow the [DNSControl Code Style Guide](styleguide-code.md) and the [DNSControl Documentation Style Guide](styleguide-doc.md).
@ -289,7 +289,7 @@ golint ./...
## Step 12: Dependencies
See [documentation/release-engineering.md](release-engineering.md)
See [documentation/release-engineering.md](../release/release-engineering.md)
for tips about managing modules and checking for outdated
dependencies.
@ -367,7 +367,7 @@ These are the things we'll be checking when you submit the PR. Please try to co
4. Verify you're using the most recent version of anything you import. (See [Step 12](#step-12-dependencies))
5. Re-run the [integration test](#step-7-integration-test) one last time.
* Post the results as a comment to your PR.
6. Re-read the [maintainer's responsibilities](provider/index.md#providers-with-contributor-support) bullet list. By submitting a provider you agree to maintain it, respond to bugs, periodically 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.
6. Re-read the [maintainer's responsibilities](../provider/index.md#providers-with-contributor-support) bullet list. By submitting a provider you agree to maintain it, respond to bugs, periodically 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 15: Submit a PR

View file

@ -18,7 +18,7 @@ ARGUMENTS:
provider: The name of the provider (second parameter to NewDnsProvider() in dnsconfig.js)
```
Starting in [v3.16](v316.md), "provider" is optional. If it is omitted (or the placeholder value `-` is used), the `TYPE` specified in `creds.json` will be used instead. A warning will be displayed with advice on how to remain compatible with v4.0.
Starting in [v3.16](../release/v316.md), "provider" is optional. If it is omitted (or the placeholder value `-` is used), the `TYPE` specified in `creds.json` will be used instead. A warning will be displayed with advice on how to remain compatible with v4.0.
Starting in v4.0, the "provider" argument is expected to go away.
@ -28,7 +28,7 @@ Starting in v4.0, the "provider" argument is expected to go away.
dnscontrol check-creds myr53 ROUTE53
```
Starting in [v3.16](v316.md):
Starting in [v3.16](../release/v316.md):
```shell
dnscontrol check-creds myr53

View file

@ -48,11 +48,11 @@ Here's a sample file:
The special subkey "TYPE" is used to indicate the provider type (NONE,
CLOUDFLAREAPI, GCLOUD, etc).
Prior to [v3.16](v316.md), the provider type is specified as the second argument
Prior to [v3.16](../release/v316.md), the provider type is specified as the second argument
to `NewRegistrar()` and `NewDnsProvider()` in `dnsconfig.js` or as a
command-line argument in tools such as `dnscontrol get-zones`.
Starting in [v3.16](v316.md), `NewRegistrar()`, and `NewDnsProvider()` no longer
Starting in [v3.16](../release/v316.md), `NewRegistrar()`, and `NewDnsProvider()` no longer
require the provider type to be specified. It may be specified for
backwards compatibility, but a warning will be generated with a
suggestion of how to upgrade to the 4.0 format. Likewise,
@ -132,7 +132,7 @@ Examples:
```
{% endcode %}
Starting with [v3.16](v316.md) use of an OLD format will trigger warnings with suggestions on how to adopt the NEW format.
Starting with [v3.16](../release/v316.md) use of an OLD format will trigger warnings with suggestions on how to adopt the NEW format.
Starting with v4.0 support for the OLD format may be reported as an error.
@ -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](provider/index.md).
in [the service provider list](../provider/index.md).
## Using a different file name

View file

@ -65,7 +65,7 @@ provider: The name of the provider (second parameter to NewDnsProvider() in dnsc
zone: One or more zones (domains) to download; or "all".
```
As of [v3.16](v316.md), `provider` can be `-` to indicate that the provider name is listed in `creds.json` in the `TYPE` field. Doing this will be backwards compatible with an (otherwise) breaking change due in v4.0.
As of [v3.16](../release/v316.md), `provider` can be `-` to indicate that the provider name is listed in `creds.json` in the `TYPE` field. Doing this will be backwards compatible with an (otherwise) breaking change due in v4.0.
As of v4.0 (BREAKING CHANGE), you must not specify `provider`. That value is found in the `TYPE` field of the credkey's `creds.json` file. For backwards compatibility, if the first `zone` is `-`, it will be skipped.
@ -99,7 +99,7 @@ dnscontrol get-zones --format=tsv bind BIND example.com
dnscontrol get-zones --format=djs --out=draft.js glcoud GCLOUD example.com
```
As of [v3.16](v316.md):
As of [v3.16](../release/v316.md):
```shell
# NOTE: When "-" appears as the 2nd argument, it is assumed that the

View file

@ -106,7 +106,7 @@ OPTIONS:
* `--report name`
* Write a machine-parseable report of
corrections to the file named `name`. If no name is specified, no
report is generated. See [JSON Reports](json-reports.md)
report is generated. See [JSON Reports](../advanced-features/json-reports.md)
## cmode

View file

@ -51,7 +51,7 @@ D("example.com", REG_MY_PROVIDER, DnsProvider(DSP_R53),
{% endcode %}
{% hint style="info" %}
**NOTE**: The [`IP()`](language-reference/top-level-functions/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
@ -210,4 +210,4 @@ D("example.com", REG_NONE, DnsProvider(DSP_R53_MAIN),
### More advanced examples
See the [Code Tricks](code-tricks.md) page.
See the [Code Tricks](../advanced-features/code-tricks.md) page.

View file

@ -102,7 +102,7 @@ D("example.com", REG_NONE, DnsProvider(DNS_BIND),
```
{% endcode %}
Modify this file to match your particular providers and domains. See [the DNSConfig docs](js.md) and [the provider docs](provider/index.md) for more details.
Modify this file to match your particular providers and domains. See [the DNSConfig docs](../language-reference/js.md) and [the provider docs](../provider/index.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:
@ -295,7 +295,7 @@ $TTL 300
```
You can change the "DEFAULT_NOT_SET" text by following the documentation
for the [BIND provider](provider/bind.md) to set
for the [BIND provider](../provider/bind.md) to set
the "master" and "mbox" settings. Try that now.
@ -306,7 +306,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](provider/index.md) for
See [the provider docs](../provider/index.md) for
specifics.
Edit the domain: Add the `D()` entry for the domain, or repurpose
@ -322,7 +322,7 @@ The [Migrating](migrating.md) doc has advice
about converting from other systems.
You can manually create the `D()` statements, or you can
generate them automatically using the
[dnscontrol get-zones](get-zones.md)
[dnscontrol get-zones](../commands/get-zones.md)
command to import the zone from (most) providers and output it as code
that can be added to `dnsconfig.js` and used with very little
modification.
@ -337,5 +337,5 @@ If you are going to use this in production, we highly recommend the following:
* Store the configuration files in Git.
* Encrypt the `creds.json` file before storing it in Git. Do NOT store
API keys or other credentials without encrypting them.
* Use a CI/CD tool like [GitLab](ci-cd-gitlab.md), Jenkins, CircleCI, [GitHub Actions](https://github.com/StackExchange/dnscontrol#via-github-actions-gha), etc. to automatically push DNS changes.
* Use a CI/CD tool like [GitLab](../advanced-features/ci-cd-gitlab.md), Jenkins, CircleCI, [GitHub Actions](https://github.com/StackExchange/dnscontrol#via-github-actions-gha), etc. to automatically push DNS changes.
* Join the DNSControl community. File [issues](https://github.com/StackExchange/dnscontrol/issues) and [PRs](https://github.com/StackExchange/dnscontrol/pulls).

View file

@ -38,7 +38,7 @@ hand, possibly with your text editor's search and replace functions.
However, where's the fun in that?
The `dnscontrol get-zones` subcommand
[documented here](get-zones.md)
[documented here](../commands/get-zones.md)
can automate 90% of the conversion for you. It reads BIND-style zonefiles,
or will use a providers API to gather the DNS records. It will then output
the records in a variety of formats, including as a `D()` statement
@ -57,7 +57,7 @@ dnscontrol get-zones --format=js --out=draft.js bind BIND example.com
This will read the file `zones/example.com.zone`. By default the system
uses directory `zones` and file suffix `.zone`. You can modify this default
behaviour by configuring `creds.json` for BIND as described [here](provider/bind.md).
behaviour by configuring `creds.json` for BIND as described [here](../provider/bind.md).
Add the contents of `draft.js` to `dnsconfig.js` and edit it as needed.

View file

@ -4,7 +4,7 @@
# 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](js.md) for more info.
Want to jump right in? Follow our [quick start tutorial](getting-started/getting-started.md) on a new domain or [migrate](getting-started/migrating.md) an existing one. Read the [language spec](language-reference/js.md) for more info.
# Use It
@ -16,13 +16,13 @@ Take advantage of the advanced features. Use macros and variables for easier upd
* 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](provider/index.md) including [BIND](provider/bind.md), [AWS Route 53](provider/route53.md), [Google DNS](provider/gcloud.md), and [name.com](provider/namedotcom.md).
* [Apply CI/CD principles](ci-cd-gitlab.md) to DNS: Unit-tests, system-tests, automated deployment.
* [Apply CI/CD principles](advanced-features/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](language-reference/domain-modifiers/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".
* Keep similar domains in sync with transforms, [macros](examples.md#macro-to-for-repeated-records), and variables.
* [Assign an IP address to a constant](getting-started/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".
* Keep similar domains in sync with transforms, [macros](getting-started/examples.md#macro-to-for-repeated-records), and variables.
{% endhint %}
# Get Involved

View file

@ -20,7 +20,7 @@ Using `0` for nsCount means "do not fetch nameservers from this domain, or give
Using a different number, ie: `DnsProvider("name",2)`, means "fetch all nameservers from this provider,
but limit it to this many.
See [this page](../../nameservers.md) for a detailed explanation of how DNSControl handles nameservers and NS records.
See [this page](../../advanced-features/nameservers.md) for a detailed explanation of how DNSControl handles nameservers and NS records.
If a domain (`D()`) does not include any `DnsProvider()` functions,
the DNS records will not be modified. In fact, if you want to control

View file

@ -18,7 +18,7 @@ This is different than the [`NS()`](NS.md) function, which inserts NS records
in the current zone and accepts a label. [`NS()`](NS.md) is for downward
delegations. `NAMESERVER()` is for informing upstream delegations.
For more information, refer to [this page](../../nameservers.md).
For more information, refer to [this page](../../advanced-features/nameservers.md).
{% code title="dnsconfig.js" %}
```javascript

View file

@ -17,13 +17,13 @@ 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](../../provider/index.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 [v3.16](../../release/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](../../provider/index.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.
Prior to [v3.16](../../v316.md):
Prior to [v3.16](../../release/v316.md):
{% code title="dnsconfig.js" %}
```javascript
@ -36,7 +36,7 @@ D("example.com", REG_MYNDC, DnsProvider(DNS_MYAWS),
```
{% endcode %}
In [v3.16](../../v316.md) and later:
In [v3.16](../../release/v316.md) and later:
{% code title="dnsconfig.js" %}
```javascript

View file

@ -17,13 +17,13 @@ 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](../../provider/index.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 [v3.16](../../release/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](../../provider/index.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.
Prior to [v3.16](../../v316.md):
Prior to [v3.16](../../release/v316.md):
{% code title="dnsconfig.js" %}
```javascript
@ -36,7 +36,7 @@ D("example.com", REG_MYNDC, DnsProvider(DNS_MYAWS),
```
{% endcode %}
In [v3.16](../../v316.md) and later:
In [v3.16](../../release/v316.md) and later:
{% code title="dnsconfig.js" %}
```javascript

View file

@ -33,7 +33,7 @@ error.
v4 defaults to RFC 2317. In v5.0 the default will change to RFC 4183.
`REVCOMPAT()` is provided for those that wish to retain the old behavior.
For more information, see [Opinion #9](../../opinions.md#opinion-9-rfc-4183-is-better-than-rfc-2317).
For more information, see [Opinion #9](../../advanced-features/opinions.md#opinion-9-rfc-4183-is-better-than-rfc-2317).
# Transition plan

View file

@ -74,8 +74,8 @@ If a feature is definitively not supported for whatever reason, we would also li
### Provider API <!--(table 2/6)-->
| Provider name | [Concurrency Verified](../concurrency-verified.md) | [dual host](../dual-host.md) | create-domains | get-zones |
| ------------- | -------------------------------------------------- | ---------------------------- | -------------- | --------- |
| Provider name | [Concurrency Verified](../advanced-features/concurrency-verified.md) | [dual host](../advanced-features/dual-host.md) | create-domains | get-zones |
| ------------- | -------------------------------------------------------------------- | ---------------------------------------------- | -------------- | --------- |
| [`AKAMAIEDGEDNS`](akamaiedgedns.md) | ❔ | ✅ | ✅ | ✅ |
| [`AUTODNS`](autodns.md) | ✅ | ❌ | ❌ | ✅ |
| [`AXFRDDNS`](axfrddns.md) | ✅ | ❌ | ❌ | ❌ |
@ -440,7 +440,7 @@ code to support this provider, we'd be glad to help in any way.
#### Q: Why are the above GitHub issues marked "closed"?
A: Following [the bug triage process](../bug-triage.md), the request
A: Following [the bug triage process](../advanced-features/bug-triage.md), the request
is closed once it is added to this list. If someone chooses to implement the
provider, they re-open the issue.
@ -453,5 +453,5 @@ DNSControl tries to make writing a provider as easy as possible. DNSControl
does most of the work for you, you only have to write code to authenticate,
download DNS records, and perform create/modify/delete operations on those
records. Please read the directions for [Writing new DNS
providers](../writing-providers.md). The DNS maintainers will gladly
providers](../advanced-features/writing-providers.md). The DNS maintainers will gladly
coach you through the process.