forked from coolaj86/goldilocks.js
		
	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.
 | 
			
		||||
It must be accessed using one of the following domains as the Host header:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
admin.invalid
 | 
			
		||||
localhost.admin.daplie.me
 | 
			
		||||
```
 | 
			
		||||
* localhost.alpha.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.
 | 
			
		||||
 | 
			
		||||
## 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
 | 
			
		||||
 | 
			
		||||
### Check Status
 | 
			
		||||
@ -39,9 +139,9 @@ All requests require an OAuth3 token in the request headers.
 | 
			
		||||
### Start Proxy
 | 
			
		||||
  * **URL** `/api/goldilocks@daplie.com/socks5`
 | 
			
		||||
  * **Method** `POST`
 | 
			
		||||
  * **Response**: Same response as for the `GET` resquest
 | 
			
		||||
  * **Response**: Same response as for the `GET` request
 | 
			
		||||
 | 
			
		||||
### Stop Proxy
 | 
			
		||||
  * **URL** `/api/goldilocks@daplie.com/socks5`
 | 
			
		||||
  * **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()
 | 
			
		||||
    , 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)) {
 | 
			
		||||
      dom.modules.http.forEach(modLists.http.add, modLists.http);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user