Skip to content

v0.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 14 Aug 17:30
· 9 commits to main since this release
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: ExecuteWorkflowUseCase + RollbackWorkflowUseCase (#163) by @ifsantana in #197
  • feat: ReconcileEntriesUseCase — time-window reconciliation sweep (#164) by @ifsantana in #198
  • feat: MCP tools — post_transaction, get_balance, list_entries, describe_account (#166) by @ifsantana in #199
  • feat: WorkflowPlan + WorkflowStep domain enhancement (#161) by @ifsantana in #201
  • feat: complete RollbackWorkflowService — EXECUTING status, compensating_for metadata, per-step ROLLED_BACK by @ifsantana in #202
  • feat: MCP tools — rollback_workflow, reconcile_batch, get_agent_audit_log (#167) by @ifsantana in #203
  • test: unit tests for agentic domain invariants (#168) by @ifsantana in #204
  • test: integration tests — ExecuteWorkflowUseCase + RollbackWorkflowUseCase (#169) by @ifsantana in #205
  • test: MCP server integration tests via ToolCallbackProvider (#170) by @ifsantana in #206
  • feat: wire idem-sdk-kotlin publishing to Maven Central (#206) by @ifsantana in #207
  • fix: separate GPG import from setup-java in publish-sdk job by @ifsantana in #208
  • fix: set release version from tag before publishing sdk-kotlin by @ifsantana in #209
  • fix: add flatten-maven-plugin to produce self-contained pom for Central by @ifsantana in #210
  • fix: upgrade central-publishing-maven-plugin 0.6.0 → 0.11.0 by @ifsantana in #211
  • fix: bump GitHub Actions to Node 24-compatible versions by @ifsantana in #212
  • feat: IVMS 101 data model — core value objects + DB schema + adapter (#171) by @ifsantana in #213
  • fix: Travel Rule compliance hardening — threshold currency, idempotency, RLS (#215) by @ifsantana in #216
  • feat: TravelRuleValidator — IVMS 101 pre-flight check on OnChainEntry (#172) by @ifsantana in #214
  • docs: sync domain-model.md with week of 2026-06-21 merges by @ifsantana in #219
  • feat: GET /api/v1/compliance/audit-export — LGPD audit export (#175) by @ifsantana in #217
  • feat: @PiiField annotation + LGPD data retention (#174) by @ifsantana in #218
  • feat: PolicyRepository — wire real policy rules into MCP (#200) by @ifsantana in #220
  • feat: settlements CRUD endpoints — register, list, get, cancel (#178) by @ifsantana in #221
  • chore: ktlint + Detekt static analysis in CI by @ifsantana in #223
  • chore: add CONTRIBUTING.md + DCO configuration by @ifsantana in #222
  • test: full-stack compliance integration coverage by @ifsantana in #225
  • chore: GraalVM native image configuration by @ifsantana in #226
  • fix: scope native-image compile to app module only in CI by @ifsantana in #227
  • feat: OpenAPI spec generation via springdoc-openapi-maven-plugin (#176) by @ifsantana in #229
  • chore: Docker Hub + Maven Central publishing pipelines (#184, #185) by @ifsantana in #228
  • fix: update Docker Hub namespace to id3mfin4nc3/idem by @ifsantana in #230
  • docs: sync domain-model.md with settlements CRUD endpoints (#221) by @ifsantana in #231
  • docs: correct stale MCP tool docs (#186) by @ifsantana in #232
  • feat(sdk): add account creation, reconciliation, and settlement lifecycle to IdemClient by @ifsantana in #235
  • fix(agentic): durable agent audit trail for denied/failed workflows + API-key filter resilience by @ifsantana in #236
  • ci: fix native-build artifact storage-quota failure by @ifsantana in #237
  • ci(release): cap retention on handoff artifacts to fix storage-quota failures by @ifsantana in #238
  • docs: end-to-end architecture overview with diagrams by @ifsantana in #240
  • ci: cut redundant work from all three workflows by @ifsantana in #244
  • test: share one Postgres per module + fix API-key prefix collision by @ifsantana in #246
  • ci(release): reuse the signed jar for JVM images; skip re-test at tag by @ifsantana in #247
  • docs: reflect ApiKeyRepository.findAllByPrefix in domain model by @ifsantana in #248
  • docs: link documentation site by @ifsantana in #249
  • docs: ship idem-ledger Claude Skill as MCP front door by @ifsantana in #251
  • fix: route Makefile recipes through Git Bash on Windows by @ifsantana in #254
  • chore: gitignore Claude Code tool state + remove stale plan docs by @ifsantana in #259
  • docs: clarify QuickNodeWebhookService checkpoint-advance comment by @ifsantana in #260
  • docs: document account creation in Quick Start by @ifsantana in #261
  • feat: per-token on-chain balance breakdown on GET /balance by @ifsantana in #262
  • fix: grant actions:read to release CI gate by @ifsantana in #263

Full Changelog: https://github.com/idem-finance/idem/commits/v0.1.0