web: document --capabilities/--capabilities-header, editing
[ci skip]
This commit is contained in:
		
							parent
							
								
									10b45c75aa
								
							
						
					
					
						commit
						34c43489f8
					
				| @ -54,13 +54,13 @@ webflags = | ||||
|   , flagReq | ||||
|       ["capabilities"] | ||||
|       (\s opts -> Right $ setopt "capabilities" s opts) | ||||
|       "CAP,CAP2" | ||||
|       "enable these capabilities - comma-separated, possible values are: view, add, manage (default: view,add)" | ||||
|       "CAP[,CAP..]" | ||||
|       "enable the view, add, and/or manage capabilities (default: view,add)" | ||||
|   , flagReq | ||||
|       ["capabilities-header"] | ||||
|       (\s opts -> Right $ setopt "capabilities-header" s opts) | ||||
|       "HEADER" | ||||
|       "read enabled capabilities from a HTTP header (e.g. X-Sandstorm-Permissions, disabled by default)" | ||||
|       "HTTPHEADER" | ||||
|       "read capabilities to enable from a HTTP header, like X-Sandstorm-Permissions (default: disabled)" | ||||
|   ] | ||||
| 
 | ||||
| webmode :: Mode [(String, String)] | ||||
|  | ||||
| @ -74,36 +74,63 @@ The default is `http://HOST:PORT/` using the server's configured host address an | ||||
| With `--file-url` you can set a different base url for static files, | ||||
| eg for better caching or cookie-less serving on high performance websites. | ||||
| 
 | ||||
| Note there is no built-in access control (aside from listening on 127.0.0.1 by default). | ||||
| So you will need to hide hledger-web behind an authenticating proxy (such as apache or nginx) | ||||
| if you want to restrict who can see and add entries to your journal. | ||||
| # PERMISSIONS | ||||
| 
 | ||||
| Command-line options and arguments may be used to set an initial | ||||
| filter on the data. This is not shown in the web UI, but it will be | ||||
| applied in addition to any search query entered there. | ||||
| By default, hledger-web allows anyone who can reach it to view the journal  | ||||
| and to add new transactions, but not to change existing data. | ||||
| 
 | ||||
| With journal and timeclock files (but not CSV files, currently) the | ||||
| web app detects changes made by other means and will show the new data | ||||
| on the next request. If a change makes the file unparseable, | ||||
| hledger-web will show an error until the file has been fixed. | ||||
| You can restrict who can reach it by | ||||
| 
 | ||||
| <!-- | ||||
| edit form | ||||
| Note: unlike any other hledger command, `web` can alter existing journal | ||||
| data, via the edit form.  A numbered backup of the file is saved on | ||||
| each edit, normally (ie if file permissions allow, disk is not full, etc.) | ||||
| Also, there is no built-in access control. So unless you run it behind an | ||||
| authenticating proxy, any visitor to your server will be able to see and | ||||
| overwrite the journal file (and included files.) | ||||
| hledger-web disallows edits which would leave the journal file not in | ||||
| valid [journal format](#journal). If the file becomes unparseable | ||||
| by other means, hledger-web will show an error until the file has been | ||||
| fixed. | ||||
| --> | ||||
| - setting the IP address it listens on (see `--host` above).  | ||||
|   By default it listens on 127.0.0.1, accessible to all users on the local machine.  | ||||
| - putting it behind an authenticating proxy, using eg apache or nginx | ||||
| - custom firewall rules | ||||
| 
 | ||||
| You can restrict what the users who reach it can do, by | ||||
| 
 | ||||
| - using the `--capabilities=CAP[,CAP..]` flag when you start it,  | ||||
|   enabling one or more of the following capabilities. The default value is `view,add`: | ||||
|   - `view`   - allows viewing the journal file and all included files | ||||
|   - `add`    - allows adding new transactions to the main journal file  | ||||
|   - `manage` - allows editing, uploading or downloading the main or included files  | ||||
| 
 | ||||
| - using the `--capabilities-header=HTTPHEADER` flag to specify a HTTP header | ||||
|   from which it will read capabilities to enable. hledger-web on Sandstorm | ||||
|   uses the X-Sandstorm-Permissions header to integrate with Sandstorm's permissions.  | ||||
|   This is disabled by default. | ||||
| 
 | ||||
| # EDITING | ||||
| 
 | ||||
| Note that if you enable the `manage` capability mentioned above,  | ||||
| hledger-web lets you alter or erase (by editing or uploading) the journal | ||||
| file and any files it includes. This is unlike any other hledger command.  | ||||
| 
 | ||||
| Normally whenever a file is changed in this way, hledger-web saves a numbered backup | ||||
| (assuming file permissions allow it, the disk is not full, etc.) | ||||
| It is not currently aware of version control systems; if you use one, | ||||
| you'll have to arrange to commit the changes yourself (eg with a cron job | ||||
| or a file watcher like entr). | ||||
| 
 | ||||
| Also normally, edits which would leave the journal file(s) unparseable | ||||
| or non-valid (eg with failing balance assertions) are prevented | ||||
| (this needs re-testing). | ||||
| 
 | ||||
| # RELOADING | ||||
| 
 | ||||
| hledger-web detects changes made to the files by other means (eg if you edit | ||||
| it directly, outside of hledger-web), and it will show the new data | ||||
| when you reload the page or navigate to a new page.  | ||||
| If a change makes a file unparseable, | ||||
| hledger-web will display an error message until the file has been fixed. | ||||
| 
 | ||||
| # OPTIONS | ||||
| 
 | ||||
| Note: if invoking hledger-web as a hledger subcommand, write `--` before options as shown above. | ||||
| Command-line options and arguments may be used to set an initial | ||||
| filter on the data. These filter options are not shown in the web UI,  | ||||
| but it will be applied in addition to any search query entered there. | ||||
| 
 | ||||
| Note: if invoking hledger-web as a hledger subcommand, write `--` before options,  | ||||
| as shown in the synopsis above. | ||||
| 
 | ||||
| `--serve` | ||||
| : serve and log requests, don't browse or auto-exit | ||||
| @ -123,6 +150,12 @@ You would change this when sharing over the network, or integrating within a lar | ||||
| hledger-web normally serves static files itself, but if you wanted to | ||||
| serve them from another server for efficiency, you would set the url with this. | ||||
| 
 | ||||
| `--capabilities=CAP[,CAP..]` | ||||
| : enable the view, add, and/or manage capabilities (default: view,add) | ||||
| 
 | ||||
| `--capabilities-header=HTTPHEADER` | ||||
| : read capabilities to enable from a HTTP header, like X-Sandstorm-Permissions (default: disabled) | ||||
| 
 | ||||
| hledger input options: | ||||
| 
 | ||||
| _inputoptions_ | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user