Skip to content

Commit f2aa115

Browse files
committed
docs: clarify Actual auth and bank setup
1 parent 40bf1fb commit f2aa115

3 files changed

Lines changed: 57 additions & 2 deletions

File tree

README.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,30 @@ It is **always required**, regardless of how you configure banks or targets.
9898

9999
Nothing in this block changes when using `targets`, credit cards, or multi-account mappings.
100100

101+
`actual.init` is passed directly to `@actual-app/api`.
102+
103+
- Use `password` for the standard Actual server password flow.
104+
- Use `sessionToken` instead of `password` if you authenticate to Actual via a session token.
105+
- If your Actual server uses OpenID/OAuth, the provider credentials belong in the Actual server configuration, not in this importer's `config.json`.
106+
107+
Example with `sessionToken`:
108+
109+
```json
110+
{
111+
"actual": {
112+
"init": {
113+
"dataDir": "./data",
114+
"sessionToken": "your_actual_session_token",
115+
"serverURL": "https://your-actual-server.com"
116+
},
117+
"budget": {
118+
"syncId": "your_sync_id",
119+
"password": "your_budget_password"
120+
}
121+
}
122+
}
123+
```
124+
101125
---
102126

103127
### 2) `banks` section
@@ -110,6 +134,34 @@ The `banks` section defines:
110134
Each bank entry includes the credentials required by `israeli-bank-scrapers`
111135
(e.g. `userCode`, `username`, `password`, etc.).
112136

137+
### One Zero
138+
139+
For `oneZero`, `config.json` can use a long-term OTP token:
140+
141+
```json
142+
{
143+
"banks": {
144+
"oneZero": {
145+
"email": "you@example.com",
146+
"password": "your_one_zero_password",
147+
"otpLongTermToken": "your_long_term_token",
148+
"actualAccountId": "actual-account-id"
149+
}
150+
}
151+
}
152+
```
153+
154+
The importer uses a JSON config file, so the practical One Zero setup here is
155+
the `otpLongTermToken` flow rather than a runtime callback like
156+
`otpCodeRetriever`.
157+
158+
### Headless / 2FA notes
159+
160+
- `chrome-data` persists Chromium session data and helps avoid repeated OTP prompts after an interactive login.
161+
- `SHOW_BROWSER=true` is only for interactive debugging. It launches Chromium in the container process, but this project does not expose a built-in web UI or remote desktop for that browser.
162+
- On a headless host, the usual pattern is to keep `chrome-data` persistent and only bring up a graphical environment when you need to refresh a bank session manually.
163+
- The importer currently asks bank scrapers for the last 2 years of data.
164+
113165
---
114166

115167
### `targets` sub-section

config.schema.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -552,11 +552,14 @@
552552
"password": {
553553
"type": "string"
554554
},
555+
"sessionToken": {
556+
"type": "string"
557+
},
555558
"serverURL": {
556559
"type": "string"
557560
}
558561
},
559562
"type": "object"
560563
}
561564
}
562-
}
565+
}

src/config.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type {InitConfig} from '@actual-app/api/@types/loot-core/server/main';
2-
import type {ScraperCredentials, CompanyTypes} from 'israeli-bank-scrapers';
2+
import type {ScraperCredentials, CompanyTypes} from '@tomerh2001/israeli-bank-scrapers';
33

44
/**
55
* Configuration object for the Israeli Banks Actual Budget Importer.

0 commit comments

Comments
 (0)