Pull request 2326: more-md-lint

Merge in DNS/adguard-home from more-md-lint to master

Squashed commit of the following:

commit 39e7ea3b441ebf48c5b0d5c2b5b85620515bbea3
Author: Ainar Garipov <A.Garipov@AdGuard.COM>
Date:   Thu Dec 19 17:03:36 2024 +0300

    all: imp docs more

commit 7aa08036b239d7eb19f674a6c4bfaf1325ff4bff
Author: Ainar Garipov <A.Garipov@AdGuard.COM>
Date:   Thu Dec 19 16:08:13 2024 +0300

    all: add more docs to lint
This commit is contained in:
Ainar Garipov
2024-12-19 17:17:40 +03:00
parent 261c1599a5
commit 20e56b7171
8 changed files with 231 additions and 399 deletions

View File

@@ -55,9 +55,9 @@
### The new fields `"upstreams_cache_enabled"` and `"upstreams_cache_size"` in `Client` object
- The new field `"upstreams_cache_enabled"` in `GET /control/clients`, `GET /control/clients/find`, `POST /control/clients/add`, and `POST /control/clients/update` methods shows if client's DNS cache is enabled for the client. If not set AdGuard Home will use default value (false).
- The new field `"upstreams_cache_enabled"` in `GET /control/clients`, `GET /control/clients/find`, `POST /control/clients/add`, and `POST /control/clients/update` methods shows if clients DNS cache is enabled for the client. If not set AdGuard Home will use default value (false).
- The new field `"upstreams_cache_size"` in `GET /control/clients`, `GET /control/clients/find`, `POST /control/clients/add`, and `POST /control/clients/update` methods is the size of client's DNS cache in bytes.
- The new field `"upstreams_cache_size"` in `GET /control/clients`, `GET /control/clients/find`, `POST /control/clients/add`, and `POST /control/clients/update` methods is the size of clients DNS cache in bytes.
### The new field `"ratelimit_subnet_len_ipv4"` in `DNSConfig` object
@@ -218,7 +218,7 @@ The new field `blocked_services_schedule` has been added to JSON objects. It ha
- The `GET /control/stats_info` HTTP API; use the new `GET /control/stats/config` API instead.
**NOTE:** If `interval` was configured by editing configuration file or new HTTP API call `PUT /control/stats/config/update` and it's not equal to previous allowed enum values then it will be equal to `90` days for compatibility reasons.
**NOTE:** If `interval` was configured by editing configuration file or new HTTP API call `PUT /control/stats/config/update` and its not equal to previous allowed enum values then it will be equal to `90` days for compatibility reasons.
- The `POST /control/stats_config` HTTP API; use the new `PUT /control/stats/config/update` API instead.
@@ -244,7 +244,7 @@ These `control/stats/config/update` and `control/stats/config` APIs accept and r
- The `GET /control/querylog_info` HTTP API; use the new `GET /control/querylog/config` API instead.
**NOTE:** If `interval` was configured by editing configuration file or new HTTP API call `PUT /control/querylog/config/update` and it's not equal to previous allowed enum values then it will be equal to `90` days for compatibility reasons.
**NOTE:** If `interval` was configured by editing configuration file or new HTTP API call `PUT /control/querylog/config/update` and its not equal to previous allowed enum values then it will be equal to `90` days for compatibility reasons.
- The `POST /control/querylog_config` HTTP API; use the new `PUT /control/querylog/config/update` API instead.
@@ -501,7 +501,7 @@ Previously, the API accepted the name of the network interface as a plain-text s
- Value of `-1` is now used for rules generated from the operating system hosts files.
- Value of `-2` is now used for blocked services' rules.
- Value of `-2` is now used for blocked services rules.
- Value of `-3` is now used for rules generated by parental control web service.
@@ -511,7 +511,7 @@ Previously, the API accepted the name of the network interface as a plain-text s
### New possible value of `"name"` field in `QueryLogItemClient`
- The value of `"name"` field in `GET /control/querylog` method is never empty, either persistent client's name or runtime client's hostname.
- The value of `"name"` field in `GET /control/querylog` method is never empty, either persistent clients name or runtime clients hostname.
### Lists in `AccessList`
@@ -531,7 +531,7 @@ Previously, the API accepted the name of the network interface as a plain-text s
### New possible value of `"interval"` field in `QueryLogConfig`
- The value of `"interval"` field in `POST /control/querylog_config` and `GET /control/querylog_info` methods could now take the value of `0.25`. It's equal to 6 hours.
- The value of `"interval"` field in `POST /control/querylog_config` and `GET /control/querylog_info` methods could now take the value of `0.25`. Its equal to 6 hours.
- All the possible values of `"interval"` field are enumerated.
@@ -543,7 +543,7 @@ Previously, the API accepted the name of the network interface as a plain-text s
### The new field `"unicode_name"` in `DNSQuestion`
- The new optional field `"unicode_name"` is the Unicode representation of question's domain name. It is only presented if the original question's domain name is an IDN.
- The new optional field `"unicode_name"` is the Unicode representation of questions domain name. It is only presented if the original questions domain name is an IDN.
### Documentation fix of `DNSQuestion`
@@ -555,11 +555,11 @@ Previously, the API accepted the name of the network interface as a plain-text s
### `POST /control/dhcp/reset_leases`
- The new `POST /control/dhcp/reset_leases` HTTP API allows removing all leases from the DHCP server's database without erasing its configuration.
- The new `POST /control/dhcp/reset_leases` HTTP API allows removing all leases from the DHCP servers database without erasing its configuration.
### The parameter `"host"` in `GET /apple/*.mobileconfig` is now required
- The parameter `"host"` in `GET` requests for `/apple/doh.mobileconfig` and `/apple/doh.mobileconfig` is now required to prevent unexpected server name's value.
- The parameter `"host"` in `GET` requests for `/apple/doh.mobileconfig` and `/apple/doh.mobileconfig` is now required to prevent unexpected server names value.
### The new field `"default_local_ptr_upstreams"` in `GET /control/dns_info`
@@ -589,7 +589,7 @@ Previously, the API accepted the name of the network interface as a plain-text s
### New fields `"resolve_clients"` and `"local_ptr_upstreams"` in DNS configuration
- The new optional field `"resolve_clients"` of `DNSConfig` is used to turn resolving clients' addresses on and off.
- The new optional field `"resolve_clients"` of `DNSConfig` is used to turn resolving clients addresses on and off.
- The new optional field `"local_ptr_upstreams"` of `"DNSConfig"` contains the upstream servers for resolving addresses from locally-served networks. The empty `"local_ptr_resolvers"` states that AGH should use resolvers provided by the operating system.
@@ -615,7 +615,7 @@ Previously, the API accepted the name of the network interface as a plain-text s
### Multiple matched rules in `GET /filtering/check_host` and `GET /querylog`
- The properties `rule` and `filter_id` are now deprecated. API users should inspect the newly-added `rules` object array instead. For most rules, it's either empty or contains one object, which contains the same things as the old two properties did, but under more correct names:
- The properties `rule` and `filter_id` are now deprecated. API users should inspect the newly-added `rules` object array instead. For most rules, its either empty or contains one object, which contains the same things as the old two properties did, but under more correct names:
```js
{
@@ -678,7 +678,7 @@ Previously, the API accepted the name of the network interface as a plain-text s
- Added optional "offset" and "limit" parameters.
We are still using "older_than" approach in AdGuard Home UI, but we realize that it's easier to use offset/limit so here is this option now.
We are still using "older_than" approach in AdGuard Home UI, but we realize that its easier to use offset/limit so here is this option now.
## v0.102: API changes
@@ -914,9 +914,9 @@ Replaces the `POST /control/enable_protection` and `POST /control/disable_protec
### A note about web user authentication
If AdGuard Home's web user is password-protected, a web client must use authentication mechanism when sending requests to server. Basic access authentication is the most simple method - a client must pass `Authorization` HTTP header along with all requests:
If AdGuard Homes web user is password-protected, a web client must use authentication mechanism when sending requests to server. Basic access authentication is the most simple method - a client must pass `Authorization` HTTP header along with all requests:
```none
```http
Authorization: Basic BASE64_DATA
```

View File

@@ -1,35 +1,27 @@
# AdGuard Home OpenAPI
We are using
[OpenAPI specification](https://swagger.io/docs/specification/about/)
to generate AdGuard Home API specification.
We are using [OpenAPI specification](https://swagger.io/docs/specification/about/) to generate AdGuard Home API specification.
## How To Edit The API Spec
## How to edit the API spec
The easiest way would be to use
[Swagger Editor](http://editor.swagger.io/)
and just copy/paste the YAML file there.
The easiest way would be to use [Swagger Editor](http://editor.swagger.io/) and just copy/paste the YAML file there.
## How To Read The API Doc
## How to read the API doc
1. `yarn install`
2. `yarn start`
3. Open `http://localhost:4000/`
3. open `http://localhost:4000/`
## Changelog
[Here](CHANGELOG.md) we keep track of all non-compatible changes that are being
made.
[Here](CHANGELOG.md) we keep track of all non-compatible changes that are being made.
## Authentication
If AdGuard Home's web user is password-protected, a web client must use
authentication mechanism when sending requests to server. Basic access
authentication is the most simple method - a client must pass `Authorization`
HTTP header along with all requests:
If AdGuard Homes web user is password-protected, a web client must use authentication mechanism when sending requests to server. Basic access authentication is the most simple method: a client must pass `Authorization` HTTP header along with all requests:
```http
Authorization: Basic BASE64_DATA
```
Where BASE64_DATA is base64-encoded data for `username:password` string.
Where `BASE64_DATA` is base64-encoded data for `username:password` string.