mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2025-10-24 21:24:38 +08:00
DOCS: [GitBook] Refactor structure to match URL paths and fix missing page links (#3613)
This commit is contained in:
parent
3ea7ea84c9
commit
e5f4d97950
49 changed files with 117 additions and 114 deletions
|
|
@ -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"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
18
commands/types/dnscontrol.d.ts
vendored
18
commands/types/dnscontrol.d.ts
vendored
|
|
@ -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
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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`
|
||||
|
|
@ -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 - DNSControl preview
|
||||
|
||||
|
|
@ -132,7 +132,7 @@ dnscontrol "3.20.0" ("8bb63be8f5ed996a7ae0a21091954fcab996621b") built 26 Aug 22
|
|||
Done. 1 corrections.
|
||||
```
|
||||
|
||||

|
||||

|
||||
|
||||
## 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`).
|
||||
|
||||

|
||||

|
||||
|
||||
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.
|
||||
```
|
||||
|
||||

|
||||

|
||||
|
||||
## GitLab CI - Duplicate YAML configuration
|
||||
|
||||
|
|
@ -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.
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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.
|
||||
|
|
@ -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.
|
||||
|
||||

|
||||

|
||||
|
||||
### 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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
@ -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.
|
||||
|
|
@ -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).
|
||||
|
|
@ -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.
|
||||
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue