Commit Graph

14 Commits

Author SHA1 Message Date
c67378ff25 Implement encrypted transaction caching for GoCardless adapter
- Reduces GoCardless API calls by up to 99% through intelligent caching of transaction data
- Secure AES-GCM encryption with PBKDF2 key derivation (200k iterations) for at-rest storage
- Automatic range merging and transaction deduplication to minimize storage and API usage
- Cache-first approach with automatic fetching of uncovered date ranges
- Comprehensive test suite with 30 unit tests covering all cache operations and edge cases
- Thread-safe implementation with in-memory caching and encrypted disk persistence
2025-11-22 15:16:39 +00:00
1dd251c379 Add input validation for transaction amounts and currencies
- Validate amounts are non-zero and within reasonable bounds (≤1B)
- Validate currency codes are 3 uppercase ASCII letters
- Apply validation to main and foreign amounts/currencies
- Add comprehensive tests for validation logic
- Maintain graceful error handling for invalid data
2025-11-22 15:04:04 +00:00
edacda0d01 Add JJ version control requirement to AGENTS.md 2025-11-22 15:04:04 +00:00
0b2549ddb4 Handle expired agreements and rewrite README
- Implement robust End User Agreement expiry detection and handling
- Add graceful error recovery for failed accounts
- Rewrite README.md to focus on user benefits
- Add documentation guidelines to AGENTS.md
2025-11-22 15:04:04 +00:00
aeb8e9bdcb Mask details in debug traces. 2025-11-22 15:04:04 +00:00
cd000061b4 Implemented debug logging to debug_logs/ 2025-11-22 15:04:04 +00:00
5eba24cb87 Add specs for debug logging. 2025-11-22 15:04:04 +00:00
45c0788a4b Differentiate between human and LLM debugging 2025-11-22 15:04:04 +00:00
9a5c6d0f68 Implement logic 2025-11-22 15:04:04 +00:00
ab81c729c7 Add high-level planning 2025-11-22 15:04:04 +00:00
7d9d3f4501 Re-add Firefly III and GoCardless specs 2025-11-22 15:03:48 +00:00
dfd1918723 Remove old stuff 2025-11-21 23:00:09 +01:00
80849a9eef Fix bug in official Gocardless API definition
The official Gocardless API definition indicates that transactions are
directly output to an array.

Instead, they are wrapped in a transactions key.

This made the code fail to retrieve transactions, because they could not
be correctly serialized.

This is now fixed in the API definition, and the API code is also
regenerated.

Signed-off-by: Jacob Kiers <code@kiers.eu>
2024-10-04 20:34:27 +02:00
f0b8df90b9 Initial commit
This is definitely not functional yet.

Signed-off-by: Jacob Kiers <code@kiers.eu>
2024-10-04 20:31:39 +02:00