Elisiário Couto f0fee4fd82 fix: Implement proper GoCardless authentication and add dev features
Authentication Fixes:
- Implement proper async GoCardless token management in leggend service
- Add automatic token refresh and creation for expired/missing tokens
- Unify auth.json storage path between CLI and API (~/.config/leggen/)
- Fix 401 Unauthorized errors when accessing GoCardless API

Development Enhancements:
- Add --reload flag to leggend for automatic file watching and restart
- Add --host and --port options for flexible service binding
- Include both leggend/ and leggen/ directories in reload watching
- Improve development workflow with hot reloading

Configuration Consistency:
- Standardize config path to ~/.config/leggen/config.toml for both CLI and API
- Ensure auth.json is stored in same location as main config
- Add httpx dependency for async HTTP requests in leggend service

Verified working: leggen status command successfully authenticates
and retrieves bank/account data via leggend API service.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-09 19:39:11 +01:00
2024-02-18 20:51:50 +00:00
2025-02-23 23:32:21 +00:00
2024-02-18 20:51:50 +00:00
2024-02-18 20:51:50 +00:00
2024-02-18 20:51:50 +00:00
2024-02-18 20:16:10 +00:00

💲 leggen

An Open Banking CLI.

This tool aims to provide a simple way to connect to banks using the GoCardless Open Banking API.

Having a simple CLI tool to connect to banks and list transactions can be very useful for developers and companies that need to access bank data.

Having your bank data in a database, gives you the power to backup, analyze and create reports with your data.

🛠️ Technologies

📦 Storage

  • SQLite: for storing transactions, simple and easy to use
  • MongoDB: alternative store for transactions, good balance between performance and query capabilities

Scheduling

  • Ofelia: for scheduling regular syncs with the database when using Docker

📊 Visualization

  • NocoDB: for visualizing and querying transactions, a simple and easy to use interface for SQLite

Features

  • Connect to banks using GoCardless Open Banking API
  • List all connected banks and their statuses
  • List balances of all connected accounts
  • List transactions for all connected accounts
  • Sync all transactions with a SQLite and/or MongoDB database
  • Visualize and query transactions using NocoDB
  • Schedule regular syncs with the database using Ofelia
  • Send notifications to Discord and/or Telegram when transactions match certain filters

🚀 Installation and Configuration

In order to use leggen, you need to create a GoCardless account. GoCardless is a service that provides access to Open Banking APIs. You can create an account at https://gocardless.com/bank-account-data/.

After creating an account and getting your API keys, the best way is to use the compose file. Open the file and adapt it to your needs.

Example Configuration

Create a configuration file at with the following content:

[gocardless]
key = "your-api-key"
secret = "your-secret-key"
url = "https://bankaccountdata.gocardless.com/api/v2"

[database]
sqlite = true
mongodb = true

[database.mongodb]
uri = "mongodb://localhost:27017"

[notifications.discord]
webhook = "https://discord.com/api/webhooks/..."

[notifications.telegram]
# See gist for telegram instructions
# https://gist.github.com/nafiesl/4ad622f344cd1dc3bb1ecbe468ff9f8a
token = "12345:abcdefghijklmnopqrstuvxwyz"
chat-id = 12345

[filters.case-insensitive]
filter1 = "company-name"

Running Leggen with Docker

After adapting the compose file, run the following command:

$ docker compose up -d

The leggen container will exit, this is expected since you didn't connect any bank accounts yet.

Run the following command and follow the instructions:

$ docker compose run leggen bank add

To sync all transactions with the database, run the following command:

$ docker compose run leggen sync

👩‍🏫 Usage

$ leggen --help
Usage: leggen [OPTIONS] COMMAND [ARGS]...

  Leggen: An Open Banking CLI

Options:
  --version          Show the version and exit.
  -c, --config FILE  Path to TOML configuration file
                      [env var: LEGGEN_CONFIG_FILE;
                       default: ~/.config/leggen/config.toml]
  -h, --help         Show this message and exit.

Command Groups:
  bank  Manage banks connections

Commands:
  balances      List balances of all connected accounts
  status        List all connected banks and their status
  sync          Sync all transactions with database
  transactions  List transactions

⚠️ Caveats

  • This project is still in early development, breaking changes may occur.
Description
No description provided
Readme MIT 6.3 MiB
Languages
Python 50%
TypeScript 48.4%
JavaScript 0.5%
CSS 0.4%
HTML 0.3%
Other 0.4%