hledger-web 1.32 → 1.32.1
raw patch · 5 files changed
+146/−143 lines, 5 filesdep ~hledgerdep ~hledger-libdep ~megaparsecPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: hledger, hledger-lib, megaparsec
API changes (from Hackage documentation)
Files
- CHANGES.md +4/−1
- hledger-web.1 +2/−2
- hledger-web.cabal +6/−6
- hledger-web.info +25/−25
- hledger-web.txt +109/−109
CHANGES.md view
@@ -21,8 +21,11 @@ User-visible changes in hledger-web. See also the hledger changelog. -# 1.32 2023-12-01+# 1.32.1 2023-12-07 +- Use hledger-1.32.1++# 1.32 2023-12-01 Features - The hledger-web app on the Sandstorm cloud platform has been updated to
hledger-web.1 view
@@ -1,5 +1,5 @@ -.TH "HLEDGER-WEB" "1" "December 2023" "hledger-web-1.32 " "hledger User Manuals"+.TH "HLEDGER-WEB" "1" "December 2023" "hledger-web-1.32.1 " "hledger User Manuals" @@ -12,7 +12,7 @@ .PD \f[CR]hledger web -- [--serve|--serve-api] [OPTS] [ARGS]\f[R] .SH DESCRIPTION-This manual is for hledger\[aq]s web interface, version 1.32.+This manual is for hledger\[aq]s web interface, version 1.32.1. See also the hledger manual for common concepts and file formats. .PP hledger is a robust, user-friendly, cross-platform set of programs for
hledger-web.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: hledger-web-version: 1.32+version: 1.32.1 synopsis: Web user interface for the hledger accounting system description: A simple web user interface for the hledger accounting system, providing a more modern UI than the command-line or terminal interfaces.@@ -151,7 +151,7 @@ hs-source-dirs: ./ ghc-options: -Wall -Wredundant-constraints -Wincomplete-record-updates -Wincomplete-uni-patterns- cpp-options: -DVERSION="1.32"+ cpp-options: -DVERSION="1.32.1" build-depends: Decimal >=0.5.1 , aeson >=1 && <2.3@@ -171,8 +171,8 @@ , extra >=1.6.3 , filepath , hjsmin- , hledger ==1.32.*- , hledger-lib ==1.32.*+ , hledger >=1.32.1 && <1.33+ , hledger-lib >=1.32.1 && <1.33 , hspec , http-client , http-conduit@@ -213,7 +213,7 @@ hs-source-dirs: app ghc-options: -Wall -Wredundant-constraints -Wincomplete-record-updates -Wincomplete-uni-patterns- cpp-options: -DVERSION="1.32"+ cpp-options: -DVERSION="1.32.1" build-depends: base >=4.14 && <4.19 , hledger-web@@ -233,7 +233,7 @@ hs-source-dirs: test ghc-options: -Wall -Wredundant-constraints -Wincomplete-record-updates -Wincomplete-uni-patterns- cpp-options: -DVERSION="1.32"+ cpp-options: -DVERSION="1.32.1" build-depends: base >=4.14 && <4.19 , hledger-web
hledger-web.info view
@@ -16,7 +16,7 @@ 'hledger-web [--serve|--serve-api] [OPTS] [ARGS]' 'hledger web -- [--serve|--serve-api] [OPTS] [ARGS]' - This manual is for hledger's web interface, version 1.32. See also+ This manual is for hledger's web interface, version 1.32.1. See also the hledger manual for common concepts and file formats. hledger is a robust, user-friendly, cross-platform set of programs@@ -643,30 +643,30 @@ Tag Table: Node: Top225-Node: OPTIONS2577-Ref: #options2682-Node: General help options5970-Ref: #general-help-options6120-Node: General input options6402-Ref: #general-input-options6588-Node: General reporting options7290-Ref: #general-reporting-options7455-Node: PERMISSIONS10845-Ref: #permissions10984-Node: EDITING UPLOADING DOWNLOADING12196-Ref: #editing-uploading-downloading12377-Node: RELOADING13211-Ref: #reloading13345-Node: JSON API13778-Ref: #json-api13893-Node: DEBUG OUTPUT19381-Ref: #debug-output19506-Node: Debug output19533-Ref: #debug-output-119634-Node: ENVIRONMENT20051-Ref: #environment20170-Node: BUGS20287-Ref: #bugs20371+Node: OPTIONS2579+Ref: #options2684+Node: General help options5972+Ref: #general-help-options6122+Node: General input options6404+Ref: #general-input-options6590+Node: General reporting options7292+Ref: #general-reporting-options7457+Node: PERMISSIONS10847+Ref: #permissions10986+Node: EDITING UPLOADING DOWNLOADING12198+Ref: #editing-uploading-downloading12379+Node: RELOADING13213+Ref: #reloading13347+Node: JSON API13780+Ref: #json-api13895+Node: DEBUG OUTPUT19383+Ref: #debug-output19508+Node: Debug output19535+Ref: #debug-output-119636+Node: ENVIRONMENT20053+Ref: #environment20172+Node: BUGS20289+Ref: #bugs20373 End Tag Table
hledger-web.txt view
@@ -9,41 +9,41 @@ hledger web -- [--serve|--serve-api] [OPTS] [ARGS] DESCRIPTION- This manual is for hledger's web interface, version 1.32. See also the- hledger manual for common concepts and file formats.+ This manual is for hledger's web interface, version 1.32.1. See also+ the hledger manual for common concepts and file formats. - hledger is a robust, user-friendly, cross-platform set of programs for- tracking money, time, or any other commodity, using double-entry ac-- counting and a simple, editable file format. hledger is inspired by- and largely compatible with ledger(1), and largely interconvertible+ hledger is a robust, user-friendly, cross-platform set of programs for+ tracking money, time, or any other commodity, using double-entry ac-+ counting and a simple, editable file format. hledger is inspired by+ and largely compatible with ledger(1), and largely interconvertible with beancount(1). - hledger-web is a simple web application for browsing and adding trans-- actions. It provides a more user-friendly UI than the hledger CLI or- hledger-ui TUI, showing more at once (accounts, the current account+ hledger-web is a simple web application for browsing and adding trans-+ actions. It provides a more user-friendly UI than the hledger CLI or+ hledger-ui TUI, showing more at once (accounts, the current account register, balance charts) and allowing history-aware data entry, inter- active searching, and bookmarking. - hledger-web also lets you share a journal with multiple users, or even- the public web. There is no access control, so if you need that you- should put it behind a suitable web proxy. As a small protection- against data loss when running an unprotected instance, it writes a+ hledger-web also lets you share a journal with multiple users, or even+ the public web. There is no access control, so if you need that you+ should put it behind a suitable web proxy. As a small protection+ against data loss when running an unprotected instance, it writes a numbered backup of the main journal file (only) on every edit. - Like hledger, it reads from (and appends to) a journal file specified- by the LEDGER_FILE environment variable (defaulting to- $HOME/.hledger.journal); or you can specify files with -f options. It- can also read timeclock files, timedot files, or any CSV/SSV/TSV file+ Like hledger, it reads from (and appends to) a journal file specified+ by the LEDGER_FILE environment variable (defaulting to+ $HOME/.hledger.journal); or you can specify files with -f options. It+ can also read timeclock files, timedot files, or any CSV/SSV/TSV file with a date field. (See hledger(1) -> Input for details.) hledger-web can be run in three modes: o Transient mode (the default): your default web browser will be opened- to show the app if possible, and the app exits automatically after- two minutes of inactivity (no requests received and no open browser+ to show the app if possible, and the app exits automatically after+ two minutes of inactivity (no requests received and no open browser windows viewing it). - o With --serve: the app runs without stopping, and without opening a+ o With --serve: the app runs without stopping, and without opening a browser. o With --serve-api: only the JSON API is served.@@ -53,7 +53,7 @@ OPTIONS 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+ 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. hledger-web provides the following options:@@ -62,7 +62,7 @@ serve and log requests, don't browse or auto-exit after timeout --serve-api- like --serve, but serve only the JSON web API, without the+ like --serve, but serve only the JSON web API, without the server-side web UI --host=IPADDR@@ -72,58 +72,58 @@ listen on this TCP port (default: 5000) --socket=SOCKETFILE- use a unix domain socket file to listen for requests instead of- a TCP socket. Implies --serve. It can only be used if the op-+ use a unix domain socket file to listen for requests instead of+ a TCP socket. Implies --serve. It can only be used if the op- erating system can provide this type of socket. --base-url=URL- set the base url (default: http://IPADDR:PORT). Note: affects- url generation but not route parsing. Can be useful if running+ set the base url (default: http://IPADDR:PORT). Note: affects+ url generation but not route parsing. Can be useful if running behind a reverse web proxy that does path rewriting. --file-url=URL set the static files url (default: BASEURL/static). hledger-web- normally serves static files itself, but if you wanted to serve- them from another server for efficiency, you would set the url+ normally serves static files itself, but if you wanted to serve+ them from another server for efficiency, you would set the url with this. --allow=view|add|edit- set the user's access level for changing data (default: add).- It also accepts sandstorm for use on that platform (reads per-+ set the user's access level for changing data (default: add).+ It also accepts sandstorm for use on that platform (reads per- missions from the X-Sandstorm-Permissions request header). - --test run hledger-web's tests and exit. hspec test runner args may+ --test run hledger-web's tests and exit. hspec test runner args may follow a --, eg: hledger-web --test -- --help - By default the server listens on IP address 127.0.0.1, accessible only- to local requests. You can use --host to change this, eg --host+ By default the server listens on IP address 127.0.0.1, accessible only+ to local requests. You can use --host to change this, eg --host 0.0.0.0 to listen on all configured addresses. - Similarly, use --port to set a TCP port other than 5000, eg if you are+ Similarly, use --port to set a TCP port other than 5000, eg if you are running multiple hledger-web instances. Both of these options are ignored when --socket is used. In this case,- it creates an AF_UNIX socket file at the supplied path and uses that- for communication. This is an alternative way of running multiple- hledger-web instances behind a reverse proxy that handles authentica-- tion for different users. The path can be derived in a predictable+ it creates an AF_UNIX socket file at the supplied path and uses that+ for communication. This is an alternative way of running multiple+ hledger-web instances behind a reverse proxy that handles authentica-+ tion for different users. The path can be derived in a predictable way, eg by using the username within the path. As an example, nginx as- reverse proxy can use the variable $remote_user to derive a path from- the username used in a HTTP basic authentication. The following- proxy_pass directive allows access to all hledger-web instances that+ reverse proxy can use the variable $remote_user to derive a path from+ the username used in a HTTP basic authentication. The following+ proxy_pass directive allows access to all hledger-web instances that created a socket in /tmp/hledger/: proxy_pass http://unix:/tmp/hledger/${remote_user}.socket; - You can use --base-url to change the protocol, hostname, port and path+ You can use --base-url to change the protocol, hostname, port and path that appear in hyperlinks, useful eg for integrating hledger-web within- a larger website. The default is http://HOST:PORT/ using the server's+ a larger website. The default is http://HOST:PORT/ using the server's configured host address and TCP port (or http://HOST if PORT is 80). - With --file-url you can set a different base url for static files, eg+ 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. - hledger-web also supports many of hledger's general options (and the+ hledger-web also supports many of hledger's general options (and the hledger manual's command line tips also apply here): General help options@@ -146,7 +146,7 @@ $LEDGER_FILE or $HOME/.hledger.journal) --rules-file=RULESFILE- Conversion rules file to use when reading CSV (default:+ Conversion rules file to use when reading CSV (default: FILE.rules) --separator=CHAR@@ -165,7 +165,7 @@ assignments) -s --strict- do extra error checking (check that all posted accounts are de-+ do extra error checking (check that all posted accounts are de- clared) General reporting options@@ -193,7 +193,7 @@ multiperiod/multicolumn report by year -p --period=PERIODEXP- set start date, end date, and/or reporting interval all at once+ set start date, end date, and/or reporting interval all at once using period expressions syntax --date2@@ -201,7 +201,7 @@ fects) --today=DATE- override today's date (affects relative smart dates, for+ override today's date (affects relative smart dates, for tests/examples) -U --unmarked@@ -220,21 +220,21 @@ hide/aggregate accounts or postings more than NUM levels deep -E --empty- show items with zero amount, normally hidden (and vice-versa in+ show items with zero amount, normally hidden (and vice-versa in hledger-ui/hledger-web) -B --cost convert amounts to their cost/selling amount at transaction time -V --market- convert amounts to their market value in default valuation com-+ convert amounts to their market value in default valuation com- modities -X --exchange=COMM convert amounts to their market value in commodity COMM --value- convert amounts to cost or market value, more flexibly than+ convert amounts to cost or market value, more flexibly than -B/-V/-X --infer-equity@@ -244,38 +244,38 @@ infer costs from conversion equity postings --infer-market-prices- use costs as additional market prices, as if they were P direc-+ use costs as additional market prices, as if they were P direc- tives --forecast- generate transactions from periodic rules, between the latest- recorded txn and 6 months from today, or during the specified- PERIOD (= is required). Auto posting rules will be applied to- these transactions as well. Also, in hledger-ui make future-+ generate transactions from periodic rules, between the latest+ recorded txn and 6 months from today, or during the specified+ PERIOD (= is required). Auto posting rules will be applied to+ these transactions as well. Also, in hledger-ui make future- dated transactions visible. - --auto generate extra postings by applying auto posting rules to all+ --auto generate extra postings by applying auto posting rules to all txns (not just forecast txns) --verbose-tags- add visible tags indicating transactions or postings which have+ add visible tags indicating transactions or postings which have been generated/modified --commodity-style- Override the commodity style in the output for the specified+ Override the commodity style in the output for the specified commodity. For example 'EUR1.000,00'. --color=WHEN (or --colour=WHEN)- Should color-supporting commands use ANSI color codes in text- output. 'auto' (default): whenever stdout seems to be a color-- supporting terminal. 'always' or 'yes': always, useful eg when- piping output into 'less -R'. 'never' or 'no': never. A+ Should color-supporting commands use ANSI color codes in text+ output. 'auto' (default): whenever stdout seems to be a color-+ supporting terminal. 'always' or 'yes': always, useful eg when+ piping output into 'less -R'. 'never' or 'no': never. A NO_COLOR environment variable overrides this. --pretty[=WHEN]- Show prettier output, e.g. using unicode box-drawing charac-- ters. Accepts 'yes' (the default) or 'no' ('y', 'n', 'always',- 'never' also work). If you provide an argument you must use+ Show prettier output, e.g. using unicode box-drawing charac-+ ters. Accepts 'yes' (the default) or 'no' ('y', 'n', 'always',+ 'never' also work). If you provide an argument you must use '=', e.g. '--pretty=yes'. When a reporting option appears more than once in the command line, the@@ -284,13 +284,13 @@ Some reporting options can also be written as query arguments. PERMISSIONS- By default, hledger-web allows anyone who can reach it to view the+ 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. You can restrict who can reach it by - o 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 ma-+ o 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 ma- chine. o putting it behind an authenticating proxy, using eg apache or nginx@@ -300,44 +300,44 @@ You can restrict what the users who reach it can do, by o using the --capabilities=CAP[,CAP..] flag when you start it, enabling- one or more of the following capabilities. The default value is+ one or more of the following capabilities. The default value is view,add: o view - allows viewing the journal file and all included files o add - allows adding new transactions to the main journal file - o manage - allows editing, uploading or downloading the main or in-+ o manage - allows editing, uploading or downloading the main or in- cluded files - o 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+ o 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, UPLOADING, DOWNLOADING- If you enable the manage capability mentioned above, you'll see a new- "spanner" button to the right of the search form. Clicking this will- let you edit, upload, or download the journal file or any files it in-+ If you enable the manage capability mentioned above, you'll see a new+ "spanner" button to the right of the search form. Clicking this will+ let you edit, upload, or download the journal file or any files it in- cludes. - Note, unlike any other hledger command, in this mode you (or any visi-+ Note, unlike any other hledger command, in this mode you (or any visi- tor) can alter or wipe the data files. - 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.) hledger-web is not aware of version control systems, cur-- rently; if you use one, you'll have to arrange to commit the changes+ 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.) hledger-web is not aware of version control systems, cur-+ rently; 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). - Changes which would leave the journal file(s) unparseable or non-valid- (eg with failing balance assertions) are prevented. (Probably. This+ Changes which would leave the journal file(s) unparseable or non-valid+ (eg with failing balance assertions) are prevented. (Probably. 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+ 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 un- til the file has been fixed. @@ -345,8 +345,8 @@ that both machine clocks are roughly in step.) JSON API- In addition to the web UI, hledger-web also serves a JSON API that can- be used to get data or add new transactions. If you want the JSON API+ In addition to the web UI, hledger-web also serves a JSON API that can+ be used to get data or add new transactions. If you want the JSON API only, you can use the --serve-api flag. Eg: $ hledger-web -f examples/sample.journal --serve-api@@ -363,7 +363,7 @@ /accounttransactions/ACCOUNTNAME Eg, all account names in the journal (similar to the accounts command).- (hledger-web's JSON does not include newlines, here we use python to+ (hledger-web's JSON does not include newlines, here we use python to prettify it): $ curl -s http://127.0.0.1:5000/accountnames | python -m json.tool@@ -404,25 +404,25 @@ "aprice": null, ... - Most of the JSON corresponds to hledger's data types; for details of- what the fields mean, see the Hledger.Data.Json haddock docs and click- on the various data types, eg Transaction. And for a higher level un-+ Most of the JSON corresponds to hledger's data types; for details of+ what the fields mean, see the Hledger.Data.Json haddock docs and click+ on the various data types, eg Transaction. And for a higher level un- derstanding, see the journal docs. In some cases there is outer JSON corresponding to a "Report" type. To- understand that, go to the Hledger.Web.Handler.MiscR haddock and look- at the source for the appropriate handler to see what it returns. Eg+ understand that, go to the Hledger.Web.Handler.MiscR haddock and look+ at the source for the appropriate handler to see what it returns. Eg for /accounttransactions it's getAccounttransactionsR, returning a "ac-- countTransactionsReport ...". Looking up the haddock for that we can- see that /accounttransactions returns an AccountTransactionsReport,- which consists of a report title and a list of AccountTransactionsRe-+ countTransactionsReport ...". Looking up the haddock for that we can+ see that /accounttransactions returns an AccountTransactionsReport,+ which consists of a report title and a list of AccountTransactionsRe- portItem (etc). - You can add a new transaction to the journal with a PUT request to- /add, if hledger-web was started with the add capability (enabled by+ You can add a new transaction to the journal with a PUT request to+ /add, if hledger-web was started with the add capability (enabled by default). The payload must be the full, exact JSON representation of a- hledger transaction (partial data won't do). You can get sample JSON- from hledger-web's /transactions or /accounttransactions, or you can+ hledger transaction (partial data won't do). You can get sample JSON+ from hledger-web's /transactions or /accounttransactions, or you can export it with hledger-lib, eg like so: .../hledger$ stack ghci hledger-lib@@ -518,28 +518,28 @@ "tstatus": "Unmarked" } - And here's how to test adding it with curl. This should add a new en-+ And here's how to test adding it with curl. This should add a new en- try to your journal: $ curl http://127.0.0.1:5000/add -X PUT -H 'Content-Type: application/json' --data-binary @txn.json DEBUG OUTPUT Debug output- You can add --debug[=N] to the command line to log debug output. N+ You can add --debug[=N] to the command line to log debug output. N ranges from 1 (least output, the default) to 9 (maximum output). Typi-- cally you would start with 1 and increase until you are seeing enough.- Debug output goes to stderr, interleaved with the requests logged on+ cally you would start with 1 and increase until you are seeing enough.+ Debug output goes to stderr, interleaved with the requests logged on stdout. To capture debug output in a log file instead, you can usually redirect stderr, eg: hledger-web --debug=3 2>hledger-web.log. ENVIRONMENT- LEDGER_FILE The main journal file to use when not specified with+ LEDGER_FILE The main journal file to use when not specified with -f/--file. Default: $HOME/.hledger.journal. BUGS We welcome bug reports in the hledger issue tracker (shortcut:- http://bugs.hledger.org), or on the #hledger chat or hledger mail list+ http://bugs.hledger.org), or on the #hledger chat or hledger mail list (https://hledger.org/support). Some known issues:@@ -564,4 +564,4 @@ SEE ALSO hledger(1), hledger-ui(1), hledger-web(1), ledger(1) -hledger-web-1.32 December 2023 HLEDGER-WEB(1)+hledger-web-1.32.1 December 2023 HLEDGER-WEB(1)