Fixes#1034
Changes in this pull request:
- Update record view for managing records to _not_ display a warning next to records that are valid dotted hosts.
- Update the prepare portal script to do a force (needed for clean machine)
- Add queue coordinates for starting up the api locally using `reStart` - the coordinates were removed from `reference.conf` in a prior PR that looks to have broken starting up using `reStart` locally
- Added a unit test to double check we allow dotted TXT records in the API
It is not always desirable to use a TSIG key for interacting with DNS backends. This PR makes use of a TSIG key optional. A new `tsig-usage` configuration parameter is added for DNS backends to allow one to determine how/if TSIG keys are applied. Note: due to the nature of the configuration, the user must still specify SOME value for the key information; however, the new `tsig-usage` config parameter can choose when or if to apply it. The values are:
- `always` - always use the
- `never` - never use the tsig key for either update OR transfers
- `transfer` - use the tsig key for TRANSFER only, updates will not use any keys
- `update` - use the tsig key for UPDATES only, transfers will not use any keys
**Note: this does not yet apply to the UI or the API, changes there will be a future PR**
Tenant id is not uniformly used across all OIDC providers (such as keycloak).
Make tenant id in configuration and the corresponding OIDC flow check optional for the time being.
Need to overhaul the OIDC portal code which is well underway but not ready yet, so this is a temporary workaround.
Fixes#964
- Updated the `ZoneConnection` model to allow specifying the key algorithm.
- Added an `Algorithm` to the protobuf file, defaults to HMAC-MD5
- Updated JSON serialization to serdes the algorithm
- Updated the Portal to allow the user to specify the algorithm when connecting to a zone or managing a zone
Supported algorithms are:
```
case object HMAC_MD5 extends Algorithm("HMAC-MD5.SIG-ALG.REG.INT")
case object HMAC_SHA1 extends Algorithm("hmac-sha1.")
case object HMAC_SHA224 extends Algorithm("hmac-sha224.")
case object HMAC_SHA256 extends Algorithm("hmac-sha256")
case object HMAC_SHA384 extends Algorithm("hmac-sha384.")
case object HMAC_SHA512 extends Algorithm("hmac-sha512.")
```
**Note: needs some tests**
We used to rely on `tut` for docs, however it is deprecated to be replaced with mdoc.
Moved to an `mdoc` folder structure and updated all of the links (what a pain).
This is a rather big change. There are a few significant issues with the way that the API config is presently loaded:
1. We use effectively global variables throughout the system, which is a bad practice in general
2. We have inconsistent loading of configuration values, some used at boot up, some used elsewhere
In addition, we get sporadic build failures due to how these "global config" values are loaded, based on timing and parallelism that are impossible to reproduce.
This PR addresses these issues:
1. Create a `VinylDNSConfig` that loads all configuration in one place
2. Create custom `ConfigReader` implementations that read config values (ideally we would have used pureconfig from the start to automatically read sane config values but here we are)
3. Segment config into different case classes. The groupings are not totally arbitrary, but I did my best at logical groupings of settings
4. Inject configuration elements (either via Class constructors or function arguments) at the appropriate time.
Functionally, nothing has changed, other than putting some standards around config loading.
May fix#1010
Fixes#1018 .
Also fixes a configuration merge bug now that access-key and secret-key are optional fields, this is non breaking since no one has x/x for their key/secret
Addresses #1012
Was able to get a "real" public hosted zone connected. The `Fqdn.merge` was not working properly when merging record name and zone names when they matched.
Added a bunch of unit tests along with the fix.
This was tested against a "real" public hosted zone. Verified connect, load zone, add record, delete record.
Fixes#1012
Changes in this pull request:
- When available, ensure that the `zoneId` is passed when loading vinyldns record sets
- Use the `DelegationSet` on the hosted zone to _simulate_ NS records. NS records do not exist by default on private hosted zones