Commit Graph

13 Commits

Author SHA1 Message Date
49a975c43c 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-21 22:44:41 +01:00
9442d71e84 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-21 20:16:19 +01:00
d185ca36fd Add JJ version control requirement to AGENTS.md 2025-11-21 20:12:07 +01:00
74d362b412 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-21 19:30:54 +01:00
a4fcea1afe Mask details in debug traces. 2025-11-21 17:40:39 +01:00
cf5e6eee08 Implemented debug logging to debug_logs/ 2025-11-21 17:16:26 +01:00
f7e96bcf35 Add specs for debug logging. 2025-11-21 16:31:38 +01:00
6f293730ee Differentiate between human and LLM debugging 2025-11-21 16:30:55 +01:00
fcd59b7fc5 Implement logic 2025-11-21 14:32:23 +01:00
4b5dc6f59a Remove old stuff 2025-11-19 20:40:47 +00:00
6903ba6924 Add high-level planning 2025-11-19 20:40:14 +00: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