updated the documentation for the config API
This commit is contained in:
parent
e15d4f830e
commit
72520679d8
112
API.md
112
API.md
|
@ -2,13 +2,113 @@
|
||||||
The API system is intended for use with Desktop and Mobile clients.
|
The API system is intended for use with Desktop and Mobile clients.
|
||||||
It must be accessed using one of the following domains as the Host header:
|
It must be accessed using one of the following domains as the Host header:
|
||||||
|
|
||||||
```
|
* localhost.alpha.daplie.me
|
||||||
admin.invalid
|
* localhost.admin.daplie.me
|
||||||
localhost.admin.daplie.me
|
* alpha.localhost.daplie.me
|
||||||
```
|
* admin.localhost.daplie.me
|
||||||
|
* localhost.daplie.invalid
|
||||||
|
|
||||||
All requests require an OAuth3 token in the request headers.
|
All requests require an OAuth3 token in the request headers.
|
||||||
|
|
||||||
|
## Config
|
||||||
|
|
||||||
|
### Get All Settings
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config`
|
||||||
|
* **Method** `GET`
|
||||||
|
* **Reponse**: The JSON representation of the current config. See the [README.md](/README.md)
|
||||||
|
for the structure of the config.
|
||||||
|
|
||||||
|
### Get Group Setting
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config/:group`
|
||||||
|
* **Method** `GET`
|
||||||
|
* **Reponse**: The sub-object of the config relevant to the group specified in
|
||||||
|
the url (ie http, tls, tcp, etc.)
|
||||||
|
|
||||||
|
### Get Group Module List
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config/:group/modules`
|
||||||
|
* **Method** `GET`
|
||||||
|
* **Reponse**: The list of modules relevant to the group specified in the url
|
||||||
|
(ie http, tls, tcp, etc.)
|
||||||
|
|
||||||
|
### Get Specific Module
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config/:group/modules/:modId`
|
||||||
|
* **Method** `GET`
|
||||||
|
* **Reponse**: The module with the specified module ID.
|
||||||
|
|
||||||
|
### Get Domain Group
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config/domains/:domId`
|
||||||
|
* **Method** `GET`
|
||||||
|
* **Reponse**: The domains specification with the specified domains ID.
|
||||||
|
|
||||||
|
### Get Domain Group Modules
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config/domains/:domId/modules`
|
||||||
|
* **Method** `GET`
|
||||||
|
* **Reponse**: An object containing all of the relevant modules for the group
|
||||||
|
of domains.
|
||||||
|
|
||||||
|
### Get Domain Group Module Category
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config/domains/:domId/modules/:group`
|
||||||
|
* **Method** `GET`
|
||||||
|
* **Reponse**: A list of the specific category of modules for the group of domains.
|
||||||
|
|
||||||
|
### Get Specific Domain Group Module
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config/domains/:domId/modules/:group/:modId`
|
||||||
|
* **Method** `GET`
|
||||||
|
* **Reponse**: The module with the specified module ID.
|
||||||
|
|
||||||
|
|
||||||
|
### Change Settings
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config`
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config/:group`
|
||||||
|
* **Method** `POST`
|
||||||
|
* **Body**: The changes to be applied on top of the current config. See the
|
||||||
|
[README.md](/README.md) for the settings. If modules or domains are specified
|
||||||
|
they are added to the current list.
|
||||||
|
* **Reponse**: The current config. If the group is specified in the URL it will
|
||||||
|
only be the config relevant to that group.
|
||||||
|
|
||||||
|
### Add Module
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config/:group/modules`
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config/domains/:domId/modules/:group`
|
||||||
|
* **Method** `POST`
|
||||||
|
* **Body**: The module to be added. Can also be provided an array of modules
|
||||||
|
to add multiple modules in the same request.
|
||||||
|
* **Reponse**: The current list of modules.
|
||||||
|
|
||||||
|
### Add Domain Group
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config/domains`
|
||||||
|
* **Method** `POST`
|
||||||
|
* **Body**: The domains names and modules for the new domain group(s).
|
||||||
|
* **Reponse**: The current list of domain groups.
|
||||||
|
|
||||||
|
|
||||||
|
### Edit Module
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config/:group/modules/:modId`
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config/domains/:domId/modules/:group/:modId`
|
||||||
|
* **Method** `PUT`
|
||||||
|
* **Body**: The new parameters for the module.
|
||||||
|
* **Reponse**: The editted module.
|
||||||
|
|
||||||
|
### Edit Domain Group
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config/domains/:domId`
|
||||||
|
* **Method** `PUT`
|
||||||
|
* **Body**: The new domains names for the domains group. The module list cannot
|
||||||
|
be editted through this route.
|
||||||
|
* **Reponse**: The editted domain group.
|
||||||
|
|
||||||
|
|
||||||
|
### Remove Module
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config/:group/modules/:modId`
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config/domains/:domId/modules/:group/:modId`
|
||||||
|
* **Method** `DELETE`
|
||||||
|
* **Reponse**: The list of modules.
|
||||||
|
|
||||||
|
### Remove Domain Group
|
||||||
|
* **URL** `/api/goldilocks@daplie.com/config/domains/:domId`
|
||||||
|
* **Method** `DELETE`
|
||||||
|
* **Reponse**: The list of domain groups.
|
||||||
|
|
||||||
|
|
||||||
## Tunnel
|
## Tunnel
|
||||||
|
|
||||||
### Check Status
|
### Check Status
|
||||||
|
@ -39,9 +139,9 @@ All requests require an OAuth3 token in the request headers.
|
||||||
### Start Proxy
|
### Start Proxy
|
||||||
* **URL** `/api/goldilocks@daplie.com/socks5`
|
* **URL** `/api/goldilocks@daplie.com/socks5`
|
||||||
* **Method** `POST`
|
* **Method** `POST`
|
||||||
* **Response**: Same response as for the `GET` resquest
|
* **Response**: Same response as for the `GET` request
|
||||||
|
|
||||||
### Stop Proxy
|
### Stop Proxy
|
||||||
* **URL** `/api/goldilocks@daplie.com/socks5`
|
* **URL** `/api/goldilocks@daplie.com/socks5`
|
||||||
* **Method** `DELETE`
|
* **Method** `DELETE`
|
||||||
* **Response**: Same response as for the `GET` resquest
|
* **Response**: Same response as for the `GET` request
|
||||||
|
|
|
@ -281,6 +281,8 @@ class DomainList extends IdList {
|
||||||
http: new ModuleList()
|
http: new ModuleList()
|
||||||
, tls: new ModuleList()
|
, tls: new ModuleList()
|
||||||
};
|
};
|
||||||
|
// We add these after instead of in the constructor to run the validation and manipulation
|
||||||
|
// in the ModList add function since these are all new modules.
|
||||||
if (dom.modules && Array.isArray(dom.modules.http)) {
|
if (dom.modules && Array.isArray(dom.modules.http)) {
|
||||||
dom.modules.http.forEach(modLists.http.add, modLists.http);
|
dom.modules.http.forEach(modLists.http.add, modLists.http);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue