| 
									
										
										
										
											2017-08-04 14:38:22 -06:00
										 |  |  | # API
 | 
					
						
							|  |  |  | 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: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-16 12:59:45 -06:00
										 |  |  | * localhost.alpha.daplie.me | 
					
						
							|  |  |  | * localhost.admin.daplie.me | 
					
						
							|  |  |  | * alpha.localhost.daplie.me | 
					
						
							|  |  |  | * admin.localhost.daplie.me | 
					
						
							|  |  |  | * localhost.daplie.invalid | 
					
						
							| 
									
										
										
										
											2017-08-04 14:38:22 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-09 18:30:18 -06:00
										 |  |  | All requests require an OAuth3 token in the request headers. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-16 12:59:45 -06:00
										 |  |  | ## 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. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-04 14:38:22 -06:00
										 |  |  | ## Socks5 Proxy
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ### Check Status
 | 
					
						
							| 
									
										
										
										
											2017-08-10 10:41:16 -06:00
										 |  |  |   * **URL** `/api/goldilocks@daplie.com/socks5` | 
					
						
							| 
									
										
										
										
											2017-08-04 14:38:22 -06:00
										 |  |  |   * **Method** `GET` | 
					
						
							|  |  |  |   * **Response**: The returned object will have up to two values inside | 
					
						
							|  |  |  |     * `running`: boolean value to indicate if the proxy is currently active | 
					
						
							|  |  |  |     * `port`: if the proxy is running this is the port it's running on | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ### Start Proxy
 | 
					
						
							| 
									
										
										
										
											2017-08-10 10:41:16 -06:00
										 |  |  |   * **URL** `/api/goldilocks@daplie.com/socks5` | 
					
						
							| 
									
										
										
										
											2017-08-04 14:38:22 -06:00
										 |  |  |   * **Method** `POST` | 
					
						
							| 
									
										
										
										
											2017-10-16 12:59:45 -06:00
										 |  |  |   * **Response**: Same response as for the `GET` request | 
					
						
							| 
									
										
										
										
											2017-08-04 14:38:22 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | ### Stop Proxy
 | 
					
						
							| 
									
										
										
										
											2017-08-10 10:41:16 -06:00
										 |  |  |   * **URL** `/api/goldilocks@daplie.com/socks5` | 
					
						
							| 
									
										
										
										
											2017-08-04 14:38:22 -06:00
										 |  |  |   * **Method** `DELETE` | 
					
						
							| 
									
										
										
										
											2017-10-16 12:59:45 -06:00
										 |  |  |   * **Response**: Same response as for the `GET` request |