- Table of contents with anchor links
- Ansible deploy.yml: clones repo, copies private key, bootstraps store.json
via Ansible Vault variables, builds image, runs container; uses creates:
guard to preserve live requisitions on re-deploy
- AI-generated disclaimer (prominent, at the bottom)
- Full MIT licence text (not just the word "MIT")
- Improved prose and formatting throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Dockerfile: node:20-alpine, exposes 3456, STORE_PATH=/app/data/store.json.
docker-compose.yml: proxy service with ./data volume mount + inline comments
showing how to wire GOCARDLESS_BASE_URL into an existing actual-server compose.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Prompts for EB app_id and RSA private key path, validates the key with jose,
generates GC secret_id/secret_key, writes to data/store.json, and prints
the values to enter in Actual Budget's GoCardless settings.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Implements the full GoCardless Bank Account Data API surface that
actual-server expects:
POST /api/v2/token/new/ fake GC tokens backed by stored secret_id/key
POST /api/v2/token/refresh/
GET /api/v2/institutions/ proxies EB /aspsps, 1 h cache
POST /api/v2/agreements/enduser/ stored locally
GET /api/v2/agreements/enduser/:id/
POST /api/v2/requisitions/ calls EB /auth, returns OAuth link
GET /api/v2/requisitions/:id/ status CR→LN after callback
DELETE /api/v2/requisitions/:id/
GET /api/v2/accounts/:id/ metadata from store
GET /api/v2/accounts/:id/details/ proxies EB /accounts/:uid/details
GET /api/v2/accounts/:id/balances/ proxies EB /accounts/:uid/balances
GET /api/v2/accounts/:id/transactions/ proxies EB transactions, splits booked/pending
GET /callback OAuth callback: exchanges code, links requisition,
redirects back to actual-server
Balance type mapping: EB ISO 20022 (CLBD/ITBD/ITAV/FWAV…) → GC camelCase.
Transaction mapping: EB flat array with status field → GC {booked, pending}.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>