Previously, the latest artifact list was requested unauthenticated using
`ADD "https://api.github.com/..." /tmp/artifacts.json`. While this works
locally, on GitHub’s servers it seems that the per-IP rate limit was
exceeded. There isn’t a way to get Docker to pass the `Authorization`
header that I know of, so this work has been moved to an external shell
script that pulls down the relevant data.
Helps with actualbudget/actual#919 by adding the `all` field wit both
pending and booked transactions to the output of
`getTransactionsWithBalance()` and, by extension, the
`/nordigen/transactions` endpoint.
I could alter the `getTransactions()` to return the `all` field as well
but I figured that keeping it such that it returns the output from
Nordigen API 1:1 might be better so I left it as is. If you don't agree,
let me know and I'll update this.
CodeQL keeps yelling at us about this… I’m not sure if the filter is
smart enough to use this rate limit middleware to remove the warnings,
but at least we will be setting a reasonable bound on attempts to crack
the server password.
Seems like we already added `tsc` to build the project, but we use the
wrong babel preset (Flow) instead of the specific TS one. This is only
used in testing to make Jest work (from what I can tell).
GitHub CI log:
```
[linux/arm/v6 base 6/8] RUN yarn workspaces focus --all --production
204.6 ➤ YN0007: │ bcrypt@npm:5.1.0 must be built because it never has been before or the last one failed
204.6 ➤ YN0007: │ better-sqlite3@npm:8.2.0 must be built because it never has been before or the last one failed
...
[linux/arm/v7 base 6/8] RUN yarn workspaces focus --all --production
203.8 ➤ YN0007: │ bcrypt@npm:5.1.0 must be built because it never has been before or the last one failed
203.8 ➤ YN0007: │ better-sqlite3@npm:8.2.0 must be built because it never has been before or the last one failed
```
It seems that both armv6 and armv7 have the same issues with `bcrypt`
and `better-sqlite3` not being built. These packages are required to
build from source, luckily QEMU use armv7l for compiling.
Tested and working on RPi Zero W.
---------
Co-authored-by: Jed Fox <git@jedfox.com>
Update all Docker Hub references to new `actualbudget` organization from
`jlongster` personal account.
We're officially an org now!
A bit of markdown/yaml auto-formatting snuck in, too.
Closes https://github.com/actualbudget/actual/issues/364
Corresponding update for the docs site in
https://github.com/actualbudget/docs/pull/144
Simultaneous to merging, we need to update our `DOCKER_HUB_*` GitHub
secrets in this repo.
---------
Co-authored-by: Jed Fox <git@jedfox.com>
Users in #99 report that Actual in Docker runs on armv7 platforms,
although a bit sluggish. I confirmed that the base images for Debian and
Alpine support the linux/arm/v7 target and have added them to the
platform list in the GitHub Actions workflow.
At least one user confirms it works with the bullseye default
`Dockerfile`, but before merging it would be great if someone can
confirm it works with the Dockerfile.alpine image:
```
git clone https://github.com/jamesmortensen/actual-server.git
cd actual-server
git checkout armv7-image
docker build -t actual-server -f Dockerfile.alpine .
docker run -p 5006:5006 actual-server
```
---------
Co-authored-by: Jed Fox <git@jedfox.com>
When working on something else, I noticed that `.test.js` files were not
running due to `jest.config.json` not including them. I went ahead and
re-enabled these tests to make sure that unit tests are actually being
run.
This changes the behavior of configuration loading when
ACTUAL_CONFIG_PATH env var is not specified. With this change, syntax
errors in config.json will now be reported if ACTUAL_CONFIG_PATH env var
is not specified and the app will not proceed. When the config.json file
is not present or cannot be read, the behavior remains the same.
Exposing the demo bank again in the get-banks endpoint.
Frontend implementation of the `showDemo` will come next. The demo bank
will only be available for DEV and PREVIEW builds.
Sometimes accounts have the same names and the same IBAN, but different
currencies (Paypal).
This should make the account names a bit more unique.. thus easier to
distinguish.
https://github.com/actualbudget/actual/issues/724#issuecomment-1464902166
Obviously the user can choose to use different names in `Actual`. They
are not forced to use this name.
Add a small endpoint that will be used to check the configuration status
of Nordigen. If it is not configured - we should not allow people to
proceed in the account-link flow.
When Nordigen accounts are linked 2x windows get opened: 1x (initial
tab) is polling for the status; the other window is for authenticating
with bank. Once the auth is done - customer is redirected back to app:
`/nordigen/link` page. At this point we can just close the tab.
https://github.com/actualbudget/actual/issues/724#issuecomment-1462853590
People have been having issues with this. I copied it from
`docker/stable-ubuntu.Dockerfile`. We should follow up on this to remove
the duplication at some point but this will help fix the problems people
are having now.
This _slightly_ changes the interface for configuring Nordigen, but IMO
it's safe to do because
1. the nordigen support is still experimental and subject to breaking
changes
2. we released 23.3.0 only an hour ago
Set a default balance calculation logic. This will allow us to integrate
with the majority of the Nordigen supported banks without needing to
manually implement each individual bank.
Frontend change: https://github.com/actualbudget/actual/pull/727
**Important**: some banks might break.. sadly I cannot test all of the
banks. But we should successfully cover ~80-90% of the supported banks
with these defaults. And if people notice that some specific bank is
broken - they can alwys report it to us and we can try and implement a
custom bank class for them.