Skip to content

Releases: idem-finance/idem

Release list

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 14 Aug 17:30
b70dcf1

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...
Read more