Releases: idem-finance/idem
Releases · idem-finance/idem
Release list
v0.1.0
What's Changed
- chore: refactor to Maven multi-module structure by @ifsantana in #21
- chore: update Docker Compose for full local dev stack by @ifsantana in #22
- chore: configure GitHub Actions CI pipeline by @ifsantana in #23
- feat: implement core value objects (#4) by @ifsantana in #24
- feat: implement MonetaryEntry sealed class (#5) by @ifsantana in #25
- feat: implement Account and JournalLine domain objects (#6) by @ifsantana in #26
- feat: implement Transaction aggregate with double-entry invariant (#7) by @ifsantana in #27
- feat: define Repository interfaces in core module (#8) by @ifsantana in #28
- feat: implement PostTransactionUseCase (#9) by @ifsantana in #29
- feat: implement QueryBalanceUseCase (#10) by @ifsantana in #30
- feat: Flyway migrations V1-V7 (#11) by @ifsantana in #31
- feat: implement PostgreSQL repository adapters (#12) by @ifsantana in #32
- feat: implement PostgresIdempotencyStore (#13) by @ifsantana in #33
- feat: POST /api/v1/transactions REST endpoint (#14) by @ifsantana in #34
- feat: GET /api/v1/accounts/{accountId}/balance REST endpoint (#15) by @ifsantana in #35
- test: verify application use case unit tests complete (#17) by @ifsantana in #37
- test: infrastructure integration tests — Audit and WebhookOutbox adapters (#18) by @ifsantana in #38
- chore: wire app module — application.yaml profiles and Spring Modulith boundary tests by @ifsantana in #39
- refactor: one class per file — split all multi-class .kt files (#59) by @ifsantana in #60
- feat: ApiKey entity + Flyway migration (api_keys table) by @ifsantana in #61
- feat: ApiKeyService — generate, validate, revoke (bcrypt + Redis cache) by @ifsantana in #62
- feat: ChainCheckpoint entity + repository (#46) by @ifsantana in #66
- feat: EvmChainReader + watched_addresses DB table (#47, #69) by @ifsantana in #67
- docs: document ApiKey, ValidatedApiKey, ApiScope, ChainCheckpoint entities by @ifsantana in #68
- feat: SolanaChainReader — QuickNode JSON-RPC polling for USDC/USDT SPL transfers (#48) by @ifsantana in #70
- docs: EVM/Alchemy chain reader architecture doc by @ifsantana in #71
- feat: TronChainReader — Tronscan REST polling for USDC/USDT TRC-20 transfers (#49) by @ifsantana in #78
- feat: AlchemyWebhookReceiver — POST /internal/webhooks/alchemy (EVM primary) (#73) by @ifsantana in #79
- feat: QuickNodeWebhookReceiver — primary Solana chain event source (#74) by @ifsantana in #80
- fix: disambiguate Solana idempotency key by accountIndex (#81) by @ifsantana in #82
- feat: BasicReconciliationService — PENDING -> SETTLED auto-matching (#75) by @ifsantana in #83
- feat: ChainReaderOrchestrator — central wiring for chain event sources (#76) by @ifsantana in #84
- feat: sender-address-aware settlement matching (reconciliation hardening) by @ifsantana in #86
- feat: redesign webhook_outbox retry state machine (#54) by @ifsantana in #90
- chore: add redis service to compose.yaml for local dev by @ifsantana in #92
- test: AlchemyWebhookReceiver + BasicReconciliationService integration tests (#77) by @ifsantana in #93
- fix: parse QuickNode Streams {data,metadata} envelope by @ifsantana in #96
- feat: send TRON-PRO-API-KEY header from TronChainReader by @ifsantana in #97
- feat: WebhookOutboxPoller -- scheduled HTTP dispatch with per-tenant retry (#55) by @ifsantana in #98
- fix: bound idem.webhook.max-attempts to RetrySchedule's supported range by @ifsantana in #101
- fix: QuickNode webhook HMAC validation uses nonce+timestamp+payload scheme by @ifsantana in #102
- feat: GET /api/v1/accounts/{id}/entries - paginated entry timeline (#52) by @ifsantana in #104
- feat: GET /api/v1/accounts/{id}/statement - account statement (#53) by @ifsantana in #105
- Port API key security layer onto main (#103) by @ifsantana in #113
- chore: scaffold idem-sdk-kotlin Maven module (#56) by @ifsantana in #114
- test: SDK integration tests against real server (#58) by @ifsantana in #116
- docs: sync domain-model.md with recent core entity changes by @ifsantana in #117
- feat: propagate X-Idem-Trace-Id for request correlation (#118) by @ifsantana in #119
- Feat/idem client 57 by @ifsantana in #120
- refactor: run chain reader recovery sweep off the main startup thread (#88) by @ifsantana in #121
- feat: dead-letter table and alerting for failed chain entry posts (#87) by @ifsantana in #122
- chore: add SECURITY.md with responsible disclosure policy (#111) by @ifsantana in #126
- chore: add ShedLock for multi-replica @scheduled coordination (#89) by @ifsantana in #124
- perf: batch getTransaction RPC calls in SolanaChainReader (#72) by @ifsantana in #125
- feat: anonymous opt-out telemetry ping service (#106) by @ifsantana in #128
- chore: attribution clause + telemetry docs (#112) by @ifsantana in #129
- feat: soft tenant nudge — log INFO when tenant count exceeds threshold (#107) by @ifsantana in #130
- refactor: rename AlchemyWebhookPort and QuickNodeWebhookPort to *UseCase by @ifsantana in #132
- chore: GPG signing setup for Maven artifacts (#108) by @ifsantana in #133
- chore: Docker image publishing + Cosign keyless signing (#109) by @ifsantana in #134
- fix: Dockerfile missing sdk-kotlin pom and src by @ifsantana in #135
- security: require ADMIN scope for /actuator/** endpoints (#123) by @ifsantana in #136
- security: fail fast on blank audit HMAC secret (#137) by @ifsantana in #141
- security: fail fast on blank webhook signing keys (#138) by @ifsantana in #142
- security: block SSRF via tenant webhook URL validation (#139) by @ifsantana in #143
- security: batch hardening -- audit ordering, SNAPSHOT dep, error disclosure, @Valid (#140) by @ifsantana in #144
- chore: permit Swagger UI and OpenAPI docs without API key (#151) by @ifsantana in #152
- docs: rewrite README to reflect actual implementation state by @ifsantana in #145
- feat: tenant bootstrap — Makefile, seed script, DevDataSeeder (#148) by @ifsantana in #153
- feat: API key management endpoints — POST/GET/DELETE /api/v1/api-keys (#146) by @ifsantana in #154
- feat: webhook config endpoints — PUT/GET /api/v1/tenant/webhook (#147) by @ifsantana in #155
- fix: expand GlobalExceptionHandler with domain errors and safe fallback (#150) by @ifsantana in #156
- feat: reconciliation batch endpoint — POST /api/v1/reconciliation/batch (#149) by @ifsantana in #157
- test: JaCoCo coverage for CreateAccountCommand + ListAccountsQuery (#190) by @ifsantana in #191
- fix: add testnet network mappings to Alchemy and QuickNode webhook services (#192) by @ifsantana in #193
- feat: scaffold MCP server module with Spring AI MCP starter (#165) by @ifsantana in #194
- docs: sync domain-model and reconciliation docs with recent merges by @ifsantana in #196
- feat: PolicyRule + PolicyGuard pre-flight evaluation (#159) by @ifsantana in #195
- feat: Execu...