forked from coolaj86/goldilocks.js
		
	# Conflicts: # API.md # bin/goldilocks.js # etc/goldilocks/goldilocks.example.yml # lib/admin/apis.js # lib/app.js # lib/worker.js
		
			
				
	
	
		
			130 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # 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:
 | |
| 
 | |
| * 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.
 | |
| 
 | |
| 
 | |
| ## Socks5 Proxy
 | |
| 
 | |
| ### Check Status
 | |
|   * **URL** `/api/goldilocks@daplie.com/socks5`
 | |
|   * **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
 | |
|   * **URL** `/api/goldilocks@daplie.com/socks5`
 | |
|   * **Method** `POST`
 | |
|   * **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` request
 |