Compare commits

..
Author SHA1 Message Date
Sonali Likhitkar a1de1aab93 implementation of loan product creation
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
2026-09-01 11:13:33 +05:30
niteshandClaude Sonnet 5 eb1aa767f7 fix(deposits): enforce savings-only maturity transfers and fix duplicate GL posting on FD/RD closure
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Adds validation so Transfer-to-Savings can only target a real savings account,
with a proper user-facing message instead of the generic validation error.
Fixes three duplicate journal-entry bugs uncovered while testing FD/RD
maturity: the dormant-accounts job re-posting already-closed accounts
(escheat/setSubStatusInactive/setSubStatusDormant), and the maturity-closure
flow itself re-deriving accounting for a withdrawal that the account-transfer
service had already posted.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-20 11:04:23 +05:30
nitesh 8724c54d9b Merge branch 'dev' of https://git.lincpay.tech/CBSNexora/cbsnexora-backend into dev
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
# Conflicts:
#	fineract-provider/src/main/java/org/apache/fineract/portfolio/mobilelookup/service/MobileLookupServiceImpl.java
2026-08-19 10:50:25 +05:30
nitesh 5c0a482f49 feat(kyc): resolve DIP/MNRL demo verdicts locally, make the check toggleable
Every mobile-number lookup was calling out to a local mock HTTP service
on port 8090 that had to be started separately, so the check failed
with a connection error whenever that process wasn't running.

Ports the mock's full verdict table (suspected, disconnected,
suspected+disconnected, clean) into MobileLookupServiceImpl itself, so
the demo/test numbers resolve in-process with no HTTP call. Adds
fineract.mobile-lookup.enabled (default off) to skip the real DIP/MNRL
call entirely for local work; every number then resolves CLEAN and is
stamped LOOKUP_DISABLED_BY_CONFIG in the log so it's never mistaken
for a genuine pass. Must be turned back on before UAT/production.
2026-08-19 10:35:48 +05:30
nitesh 0e07e60328 feat(current-accounts): add document upload/list/download/delete endpoints
/v1/currentaccounts/{id}/documents had no handler at all -- the
account's own /v1/currentaccounts resource matches the request path
first and has no documents method, so it never fell through to the
generic /v1/{entityType}/{entityId}/documents resource that every
other entity type relies on. Current accounts got a 404 on every
Documents-tab request.

Delegates straight to the existing DocumentApiResource so current
accounts get identical behaviour to clients, loans, etc.
2026-08-19 10:35:35 +05:30
nitesh e227e8ae0f fix(savings): post GL entries for facility-charge collections at edit approval
Charges collected when a maker-checker Nominee/Digital-Feature edit is
approved deducted the account balance and appeared in the passbook,
but never posted a journal entry -- collectCharges() saved the charge
transaction directly and skipped the accounting bridge entirely, so
the GL never balanced against the subledger.

Also fixes an unrelated NPE this exposed: collectCharges() used
saveAll() instead of saveAllAndFlush(), so the new charge transaction
had no id yet when the journal-entry code tried to read it.
2026-08-19 10:35:18 +05:30
nitesh 231919b62b fix(savings): stop crediting accounts automatically on activation
Activation for Savings, RD, FD and Current accounts no longer books an
opening deposit or enforces a minimum opening balance -- accounts go
active at zero balance and a clerk deposits funds afterward as a
separate transaction, matching how these branches actually operate.

Fixed Deposit and Recurring Deposit have their own override of
activateWithBalance() that a prior fix to the shared SavingsAccount
base class missed, so they kept auto-depositing after Savings was
already fixed. Removing that auto-deposit exposed two follow-on bugs
in the FD/RD activation flow, now also fixed:
- the opening deposit's journal entries were posted twice (once by the
  deposit helper, once by the activation command's own posting call)
- FD/RD maturity amount was computed from the account's real (now
  empty) transaction history at activation and never recalculated once
  a deposit actually landed, so it showed no projected interest until
  the account was reloaded from a lucky code path
2026-08-19 10:34:54 +05:30
keshavandClaude Opus 5 9eac40bb5c feat: add database export API, welcome kit return tracking, and sanctions/mobile lookup updates
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 17:55:51 +05:30
niteshandClaude Sonnet 5 14b2585cf5 feat(loan-origination): add full backend persistence for the sanctioning pipeline
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Adds a lightweight loan-origination-pipeline module (application, stage history,
approvals, FI checks and documents) with server-side validation per stage
transition, so every field, upload and decision on the Loan Origination screen
survives a page refresh instead of living only in the browser.

Also fixes two content-store bugs found while wiring document uploads through
the generic Fineract document store: the CSV mime/extension whitelist rejected
bank-statement uploads outright, and the post-upload mime consistency check
rejected any CSV whose byte-content sniffs as text/plain (which is all of them,
since CSV has no distinguishing magic bytes).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-17 17:12:43 +05:30
Anshul Rathore a2fa8688ae Update client KYC and AML changes
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
2026-08-14 12:54:43 +05:30
keshav a8ca7dd948 feat: implement DIP/MNRL lookups and enhance Sanctions screening workflows
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
- Implement DIP/MNRL lookup logs table, filtering, and detail review under reports.
- Integrate DIP verification gating on client creation, allowing officers to record PROCEEDED/REJECTED decisions with reasons.
- Upgrade Sanctions verification dialog to support comparing Name, DOB, and Nationality particulars.
- Add Sanctions disposition recording (FALSE_POSITIVE / CONFIRMED_MATCH) awaiting Principal Officer approval.
- Add sanctions-alert-review-dialog for reviewers to assess and escalate/clear flagged names.
- Enforce strict screening reset logic on client name changes, preventing bypass of existing blocks.
- Update routes and shell menu navigation to include DIP/MNRL Lookups and Sanctions Logs.
2026-08-14 10:46:59 +05:30
niteshandClaude Sonnet 5 c8833367b9 feat(shares): route dividend cash claims through cashier token disbursement
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Cash claims now mirror the existing clerk-withdrawal token flow: clerk
submits with a token, manager approval posts the GL entry, and a cashier
redeems the token at Transaction Entry to record physical hand-over --
no direct manager-to-member cash handover, and no double-disbursement.

Also fixes GL accounting for the loan/savings legs: instead of reversing
the native command's own debit with a second manual entry pair (leaving
the fund-source account confusingly appearing twice), that debit leg is
now rewritten in place to Dividend Payable. Floors cash claims to whole
rupees since notes/coins can't represent paise, with backward-compatible
tolerance for claims submitted before the fix.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-12 10:17:35 +05:30
nitesh 94b0afff38 Merge branch 'dev' of https://git.lincpay.tech/CBSNexora/cbsnexora-backend into dev
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
# Conflicts:
#	fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml
2026-08-11 12:53:20 +05:30
niteshandClaude Sonnet 5 9dd4f8bedb feat(shares): real-profit driven dividends with GL-only liability model and member claim workflow
Reworks the share dividend lifecycle end to end:
- Dividend amount now auto-computed from real GL profit x officer-entered percentage
  instead of manual entry; adds a Dividend Paid report over the existing Dividend
  Payable ledger.
- Declaration posts a real GL entry (Dr Reserve for Dividend / Cr Dividend Payable);
  approval no longer credits any savings account up front -- every member's
  entitlement stays a pure "Dividend Payable" liability until claimed, resolved
  synchronously at approval time (no background job or per-member failure mode).
- New maker-checker Dividend Claim Request workflow: a clerk records how a member
  wants their unclaimed dividend split (overdue loan / savings credit / cash), a
  manager approves, which executes native repayment/deposit commands and replenishes
  whichever GL account they actually debited (not a hardcoded assumption) from the
  Dividend Payable liability.
- Unclaimed dividends carry a 3-year window (m_share_dividend_lock) after which a
  daily job forfeits them straight to profit; a Dividend Dashboard consolidates
  summary stats, every declaration's status, full lock history, and proactive
  loan-application for members with overdue EMIs.
- Fixes a native negative-share-days bug in ShareProductDividendAssembler and adds
  overlap-period validation so a product can't have two declarations covering the
  same days.
- Removes the now-unreachable failed/pending-payout tracking that the old
  per-member job-based model needed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-11 12:42:45 +05:30
keshav 1107610c08 add KYC document renewal alerts, Aadhaar/PAN exceptions, and AML recurring alerts UI; remove old journal AML marking
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
2026-08-11 11:34:54 +05:30
niteshandClaude Sonnet 5 2213308254 fix(shares): skip zero-value redeem transaction on account close
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Closing a share account that already has zero approved shares no
longer synthesizes a redeem transaction, so it stops posting a
meaningless ₹0.00/₹0.00 GL journal-entry pair. Save/note-capture on
close now happen unconditionally instead of being gated on a
transaction existing.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-06 20:10:57 +05:30
nitesh c568eb0abf feat(shares): close share account directly on withdrawal approval
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Replaces the auto-submit-closure-request behavior with an immediate
account close, in the same @Transactional approval action, when a
redemption brings a share account's holding to zero — no separate
"Share Closure Request" maker-checker step is needed since the
redemption amount itself already went through this same review.
Removes ClerkShareClosureRequestApiResource entirely (the migration
for m_clerk_share_closure_request is left in place as a harmless,
now-unused table, to avoid a Liquibase checksum churn).

Also fixes a genuine Postgres-incompatibility bug this uncovered in
validateNoActiveLoanOrGuaranteeBeforeClosure(): `is_active = 1`
doesn't type-check against a boolean column on Postgres ("operator
does not exist: boolean = integer"), which was silently aborting the
whole approval transaction (harmlessly, since it's @Transactional —
verified no partial state was ever left behind). Fixed to `is_active
= true`, added the missing `type_enum = 1` (customer-type guarantors
only, matching the existing Guarantor Check elsewhere in this
workflow), and widened both this and the active-loan check to the
same loan_status_id set (300, 303, 304, 700) used there too.
2026-08-06 19:29:44 +05:30
nitesh 1426be9531 fix: correct changeset ids after renumbering merged AML/family-member migrations
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Follow-up to the previous merge commit — the internal Liquibase
changeSet ids in the 9 renumbered files (0447-0455) still referenced
their old 0438-0446 numbers; the rename staged the files before the id
update was applied. Ids now match filenames as intended.
2026-08-06 16:50:39 +05:30
nitesh 541c6ab062 Merge branch 'demo' of https://git.lincpay.tech/CBSNexora/cbsnexora-backend into dev
Resolved two conflicts:
- changelog-tenant.xml: both branches independently added Liquibase
  parts numbered 0438-0446 (dev: Share Withdrawal/Closure governance +
  KYC exception fields; demo: AML rule tiers/branch seeding/email
  tracking/family-member children table). Renumbered demo's incoming
  set to 0447-0455 (files renamed + internal changeSet ids updated to
  match) so both feature sets keep their own migrations intact.
- 0434_seed_aml_transaction_rules.xml: same seed data on both sides,
  differing only in the disambiguating SQL predicate. Kept dev's
  `AND aml_check_status IS NOT NULL` (deterministically targets the
  intended m_client_risk_rule row, per the file's own comment) over
  demo's `LIMIT 1` (arbitrary, could pick the wrong row).

Also dropped two JVM crash-dump log files that got staged by mistake.
2026-08-06 16:49:15 +05:30
niteshandClaude Sonnet 5 66a6a4766f feat(shares): add Share Account Closure maker-checker workflow
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
New ClerkShareClosureRequestApiResource mirrors the withdrawal resource:
clerk submits a closure request only once a share account holds zero
shares; a /validate endpoint re-checks shares-held, account status, any
active loan/guarantee, and client KYC/AML compliance; approve() executes
the real native "close" command.

ClerkShareWithdrawalRequestApiResource.approve() now also auto-submits a
PENDING closure request (via the same table) whenever a redemption brings
the account's share holding to zero, reusing the withdrawal's own maker
identity — a manager still has to separately Validate and Approve it, so
the closure request is created automatically but never executed without
review.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-06 11:44:47 +05:30
Anshul Rathore b9aa29fb35 feat: commit latest changes on dev
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
2026-08-06 10:46:22 +05:30
nitesh 1a9adaec24 Merge branch 'dev' of https://git.lincpay.tech/CBSNexora/cbsnexora-backend into dev
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
2026-08-05 18:34:33 +05:30
niteshandClaude Sonnet 5 2da5a25e04 feat(shares): add compliance and loan/guarantor/tenure checks to validation
The /validate endpoint now re-checks live state that matters for a real
UCB share redemption: Client KYC verified, Risk Category not High, no open
AML alerts, and — since this bank supports loan-against-shares via
m_share_account.linked_loan_id — a Loan Check (no active loan secured by
these shares), Tenure Check (linked loan's term completed), and Guarantor
Check (client not guaranteeing someone else's active loan). Dropped the
redundant "status is PENDING" check and replaced raw status_enum codes
with human-readable labels throughout. getById() also now returns a
client compliance summary so the review screen can show it without
running the popup validation.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-05 18:33:12 +05:30
keshav baf30cff68 kyc exception at client creation time and some tds work
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
2026-08-05 17:27:56 +05:30
niteshandClaude Sonnet 5 f1d68d17fe feat(shares): add Share Withdrawal maker-checker workflow with GL settlement
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
New ClerkShareWithdrawalRequestApiResource backs a clerk-submits/manager-
approves flow for share redemption: on submit, validates and persists the
clerk-chosen settlement Payment Type (must be non-cash) plus a full audit
snapshot of the settlement row; on approve, executes the real "redeemshares"
command and, in the same transaction, credits the redemption value to the
share account's linked savings account using that stored payment type (with
a hardcoded-lookup fallback for pre-existing rows). Adds a /validate endpoint
that re-checks live account/GL state (not just the submit-time snapshot) so
a manager can verify before approving. Also exposes linked-savings-account
data on ShareAccount reads so the frontend can display/validate it.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-05 16:56:50 +05:30
Anshul Rathore 84f8aa2274 Merge branch 'demo' of https://git.lincpay.tech/CBSNexora/cbsnexora-backend into dev 2026-08-03 12:51:55 +05:30
keshav 7773a9e9c6 feat(aml): add API endpoints and services for manual journal entry referrals
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
2026-08-03 10:49:37 +05:30
keshav c890faee78 form 91/98 report, min max value update in AML rule and whihc rule apply day, week, month and some more updates
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
2026-08-02 11:45:54 +05:30
keshav abc7eb22a2 oss file updated, profitl loss as per the day month and also with date select
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
2026-08-01 11:54:30 +05:30
keshav d7d22382a5 Merge branch 'demo' of https://git.lincpay.tech/CBSNexora/cbsnexora-backend into uate
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2026-07-31 15:20:07 +05:30
keshav 8622dcaf90 static update
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
2026-07-31 15:11:23 +05:30
niteshandClaude Sonnet 5 7cdc25322e fix(aml): resolve ambiguous order_position subquery breaking tenant migration/startup
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
0434_seed_aml_transaction_rules.xml resolved source_client_risk_rule_id via
`SELECT id FROM m_client_risk_rule WHERE order_position = N`, assuming
order_position was unique. It isn't: 0430_seed_aml_compliance_rules.xml seeds
its own 221 rows with order_position 1-235, independently of the older
0428_add_client_risk_rules.xml rows, and several values collide (e.g. both
insert a row at order_position 10 and 30). Every affected subquery returned
more than one row, aborting the whole tenant's Liquibase run and app startup.

aml_check_status is populated only on 0430's rows (0428's predate that
column and are NULL there), so pairing it with order_position uniquely
targets the intended row without touching either seed changeset.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-31 14:27:08 +05:30
nitesh a4c3dbb6c4 Merge remote-tracking branch 'origin/dev' into uate
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
2026-07-31 13:58:55 +05:30
niteshandClaude Sonnet 5 dd8445de06 fix(accounting): resolve Sponsor DD Payable SBI GL account parent by gl_code, update default tenant DB password
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
The 0345 changelog hardcoded the "OTHER LIABILITY" parent row's numeric id
(22), which only matched the default tenant's auto-increment history and
broke the FK insert (and the whole Liquibase run / app startup) on tenants
seeded differently, e.g. saga. Now resolves parent_id via a SELECT on
gl_code='9' and marks the changeSet runOnChange so it safely re-validates
on tenants that already ran the old version.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-31 13:56:04 +05:30
nitesh 9345f2294c Merge remote-tracking branch 'origin/uate' into uate
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
2026-07-31 13:54:07 +05:30
niteshandClaude Sonnet 5 190cd92a85 fix(accounting): resolve Sponsor DD Payable SBI GL account parent by gl_code, update default tenant DB password
The 0345 changelog hardcoded the "OTHER LIABILITY" parent row's numeric id
(22), which only matched the default tenant's auto-increment history and
broke the FK insert (and the whole Liquibase run / app startup) on tenants
seeded differently, e.g. saga. Now resolves parent_id via a SELECT on
gl_code='9' and marks the changeSet runOnChange so it safely re-validates
on tenants that already ran the old version.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-31 13:53:27 +05:30
Anshul Rathore 81832b6bb7 feat: add Avro schema definitions for Fineract data entities and update configuration
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
2026-07-31 13:27:40 +05:30
Anshul Rathore 0bd5296519 chore: update JVM memory configuration and add local API integration scripts
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
2026-07-31 12:41:35 +05:30
Anshul Rathore 17e0dab435 Merge branch 'dev' of https://git.lincpay.tech/CBSNexora/cbsnexora-backend into dev 2026-07-31 12:41:22 +05:30
Anshul Rathore 67810bfaea Add Welcome Kit Dispatch feature and Share Account summary API 2026-07-31 11:51:57 +05:30
keshav 2022dc5241 kyc risk and AML & Compliance Checks automate on client creation
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
2026-07-31 11:02:31 +05:30
nitesh b1cfa996b4 feat(clients): fromDate/toDate submittedon_date range filter on GET /clients
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Backs the Client Approval tab's Today/Yesterday quick filters server-side.
offset/limit/displayName/orderBy/sortOrder/status already existed on this
endpoint; added fromDate/toDate (yyyy-MM-dd, inclusive) alongside them,
filtering on c.submittedon_date, following the same ::date-cast convention
already used by ClientPendingEditReadPlatformServiceImpl for the
equivalent pending-edits filter. Updated the one other caller
(SelfClientsApiResource) to pass null/null.
2026-07-30 10:33:48 +05:30
nitesh 02541eed6c feat(sanctions): expose the loaded list's data-currency date on every screening result
Screening only ever told a caller whether a name matched and when the
check ran — not which dated snapshot of the UN Security Council list it
ran against. Added SanctionsEntryRepository.findListLastLoadedOn()
(MAX(createdDate) over active entries) and threaded it through
SanctionsScreeningResult as listDataAsOf, so the frontend can show "List
Data As Of: <date>" alongside "Screened On".
2026-07-30 10:33:33 +05:30
niteshandClaude Sonnet 5 7c15fbb0c7 fix(documentmanagement): close leaked file handles causing Windows re-upload failures; add entity KYC document CodeValues
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
FileContentStoreService.upload() opened a FileOutputStream (write) and an
InputStream (post-upload MIME check) without closing either. Windows keeps
those handles open for the JVM's lifetime, so the next upsert-style
delete-then-recreate of the same file (e.g. client signature/photo
re-upload) failed with FileSystemException: "being used by another
process". Wrapped both in try-with-resources.

Also adds every distinct non-individual/constitution KYC document name
(HUF, Private/Public Ltd, LLP, Partnership, Trust, Society, Proprietorship,
Association, Govt/PSU, Cooperative) as a KYCIdProofType code value.
resolveDocumentTypeId() on the frontend matches the picked document name
against this list before creating a client_identifier; since these entity
document names had no corresponding code value, every non-individual
client's KYC document upload silently failed to persist.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-29 11:34:18 +05:30
nitesh 6e3f195de0 Merge remote-tracking branch 'origin/uate' into uate
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
2026-07-29 10:31:58 +05:30
niteshandClaude Sonnet 5 a65d801250 feat(clients): maker-checker for client creation and edits (backend)
- Client activation now requires a different user than the one who created the client
  (client.getCreatedBy() vs current user) — no bypass, including CHECKER_SUPER_USER, since a
  bypass would recreate the exact "role bypasses the hold" loophole this closes. Client creation
  itself is unaffected (the wizard needs a real client id immediately for photo/KYC/address/family
  follow-up uploads), only activation is gated.
- New maker-checker queue for Client edits, modelled on this codebase's existing
  m_share_account_pending_edit / chequebook patterns rather than Fineract's native
  command-approval engine (which any ALL_FUNCTIONS role bypasses unconditionally):
  - m_client_pending_edit (migrations 0429-0431): stores the maker's raw edit payload plus a
    point-in-time "before" snapshot (original_json, extracted from the frontend's _originalValues
    key) so the checker's diff stays accurate even after the edit is approved/rejected, when the
    live client no longer reflects the pre-edit state.
  - ClientEditWritePlatformService: submitEditForApproval() stages the edit (refusing a second
    submission while one's already pending, via a nullable-but-unique pending_lock_key);
    approveEdit() replays the payload through the existing updateClient() so all of Client's
    validation/change-detection runs unchanged, just deferred; rejectEdit() discards it. The maker
    can never approve/reject their own submission.
  - ClientEditApiResource: /clients/{id}/edit (submit), /clients/edit/pending (paginated +
    status/clientName/date-range filterable list, mirrors /chequebook/pending-requests),
    /clients/{id}/edit/approve, /clients/{id}/edit/reject. New permissions (migration 0430):
    SUBMITEDIT_CLIENT, APPROVEEDIT_CLIENT, REJECTEDIT_CLIENT, APPROVEEDIT_CLIENT_CHECKER (the
    last one surfaces pending edits in the generic Checker Inbox too).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-29 10:31:10 +05:30
keshav f45d5890ea CTR/STR report and Risk Category auto mark on bases of person occupation and anual salary enter
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
2026-07-29 10:22:27 +05:30
niteshandClaude Sonnet 5 3c58bb231f fix(clients): pwdCategoryOptions on edit template, minor-age threshold to 18, minor KYC identity-proof bypass
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
- ClientData.templateOnTop()/templateWithSavingAccountOptions() never copied pwdCategoryOptions
  from the template — the Disability Type dropdown was always empty on the edit-mode GET
  /clients/{id}?template=true call, even though create-time template() had it.
- Raise the minor-detection threshold in ClientKycApiResource from age <10 to <18 (legal
  definition), mirroring the frontend's own rule so the required-documents list served here
  stays consistent.
- ClientKycCommand.validateForInitiate() unconditionally required at least one of
  PAN/Aadhaar/GSTIN, with no awareness of the Birth Certificate/School ID document-type picker
  minors actually use — blocking "Save & Next" on the KYC tab for every minor client. Added a
  skipIdentityDocumentCheck flag, set from client.getIsMinor() at both call sites
  (initiateKyc/initiateKycInline).
- Added Birth Certificate and School ID Card as KYCIdProofType code values — they were already
  offered as document-type options for minors but never existed in the code-value list that
  saveKycDocProof() resolves against, so selecting either silently failed to save any
  identifier/document.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-28 15:51:08 +05:30
niteshandClaude Sonnet 5 aabda18b69 feat(clients): enforce Mother + Father/Caretaker family members on client activation
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
- Add CARETAKER as a new RELATIONSHIP code value (previously missing — a client with no
  father had no valid way to satisfy the rule below).
- Add ClientFamilyMembersWritePlatformService.validateFamilyRequirementsForActivation(),
  called from activateClient(): requires an active "Mother" family member, plus either
  "Father" or "Caretaker", for individual clients (non-individual entities are exempt).
- Two distinct exceptions (ClientFamilyMemberMotherRequiredException /
  ClientFamilyMemberFatherOrCaretakerRequiredException) so the two failure reasons surface
  as separate errors instead of one merged message, mirroring the frontend's separate banners.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-28 12:37:24 +05:30
nitesh 0e5671b706 Merge remote-tracking branch 'origin/uate' into uate
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
2026-07-28 10:55:05 +05:30
niteshandClaude Sonnet 5 67214ec0f8 fix(clients): stale signature bug, CKYC fixes, monthly turnover/annual income, senior citizen/PWD classification
- Add m_client.signature_id (single-slot pointer, mirrors image_id) plus
  ClientSignatureIdAdapter/EntitySignatureIdAdapter so re-uploading a signature updates the
  existing m_document row in place instead of leaving duplicate rows behind that readers picked
  inconsistently.
- Fix CkycBatchBuilderServiceImpl address-proof classification to read the client identifier's
  actual m_code (KYCAddressProofType vs KYCIdProofType) instead of a hardcoded string set that
  disagreed with the CKYC tab and silently dropped Aadhaar-as-address-proof identifiers.
- Organize the CKYC ZIP into per-artefact-type folders (PHOTO/SIGNATURE/ID_PROOF/ADDRESS_PROOF).
- Fix CkycBatchBuilderServiceImpl.createBatch() using the daily batch sequence number as the ZIP
  document's parent_entity_id instead of the real m_ckyc_batch.id, which 404'd on download
  whenever the two diverged (i.e. almost always).
- Add monthlyTurnover and annualIncome fields alongside the existing annualTurnover/monthlyIncome.
- Add isSeniorCitizen, isPwd, and pwdCategory (proper m_code_value-backed PwdCategory code, not a
  free-text column) to m_client, following the same pattern as occupation/religion/marital status.
- Add Diploma as its own Education Level (with diploma-specific DegreeQualification values) and
  Graduate as a level distinct from Undergraduate.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-28 10:50:16 +05:30
keshav 026d902199 minor change on client
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
2026-07-28 10:43:06 +05:30
nitesh bc30241950 Merge remote-tracking branch 'origin/uate' into dev
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
2026-07-27 14:24:16 +05:30
keshav f18b5d97d3 share certificate and share product maker checker
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
2026-07-27 14:14:05 +05:30
niteshandClaude Sonnet 5 14df914b9a feat(clients): dual-OTP verified contact changes with customer notification
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Mobile number and email address changes now require OTP verification on
both the old and new destination (staff-entered) before the update is
accepted, at both client creation and edit time — closing a gap where an
unverified wrong number/email could never be corrected later. Every
mobile/email/address change also emails the customer at their pre-change
address so an unauthorized change is never silent.

- New ClientContactOtpService (+Impl) mirrors the existing login OTP
  services, reusing OtpLog with a CLIENT_CONTACT_CHANGE purpose.
- New sibling API resources for edit (/clients/{id}/contact-verification/otp)
  and create (/clients/contact-verification/otp, no clientId yet).
- ClientWritePlatformServiceJpaRepositoryImpl / AddressWritePlatformServiceImpl
  gate the actual field change on verified OTPs and fire
  ClientChangeNotificationService afterwards; the notification recipient is
  always snapshotted before any mutation so a same-request mobile+email
  change can't accidentally alert the new (unverified-by-its-real-owner)
  address instead of the old one.
- ClientDataValidator validates OTP id format only (ignoreIfNull) —
  enforcement lives solely in the write-service's diff-gated calls, since
  edit-client always PUTs the full client object regardless of what changed.
- 0420 migration seeds 8 CLIENTKYC action permissions
  (GenerateAadhaarOtp/VerifyAadhaar/VerifyPan/VerifyCin/VerifyDin/
  VerifyGstin/UploadCkyc/CompleteRekyc) that were referenced by existing
  command handlers but never seeded, causing a 404 for every user including
  Super User.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-26 14:36:48 +05:30
niteshandClaude Sonnet 5 5dc175c5e1 feat(users): auto-enroll admin-chosen OTP channel as MFA factor at creation
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Admin now picks a mandatory OTP delivery method (Email/Mobile) when creating a
user. The channel is enrolled immediately as a verified m_user_mfa_factor row,
so the existing 2FA system (MfaFactorBackedTwoFactorServiceImpl + /twofactor)
challenges the user for OTP on their very first login - reusing the
already-built login-OTP infrastructure instead of a parallel flow.

Also adds a versioned, admin-manageable user-agreement (disclaimer) API
(/v1/useragreements) with per-user acceptance tracking, checked right after
every login, plus a Liquibase cleanup migration and a shared OTP-destination
masking utility extracted from the two existing login-OTP services.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-24 16:16:40 +05:30
nitesh cf60515bf6 Merge remote-tracking branch 'nexora/uate' into merge-uate-into-dev
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
# Conflicts:
#	.gitignore
#	fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml
#	fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/service/FacilityChargeAutoApplyService.java
2026-07-23 17:36:10 +05:30
niteshandClaude Sonnet 5 a098f8ba75 fix(chequebook): prevent cheque-leaf serial collisions across series at issuance time
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
The real root cause behind the leaf-serial collision bug: stock-lot
overlap checking was scoped to "within the same series only"
(ChequeStockLotRepository.countOverlappingInSeries), on the incorrect
assumption that two different cheque designs never share a numeric
range. A real bank allocates leaf serials from one bank-wide numbering
authority, so this is exactly what let two series end up with
overlapping ranges that, once both were issued to the same account,
produced an unresolvable serial collision (NpciInwardPushService's
drawer-account-number disambiguation can't help when every colliding
leaf belongs to the same account).

Widened the check to countOverlappingAnySeries — both the maker-submit
and checker-approval paths in ChequeBookWritePlatformServiceImpl now
reject a stock receipt whose range overlaps ANY existing lot, regardless
of series.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-23 17:24:17 +05:30
Jaanu423andClaude Sonnet 5 ab5666c0f4 feat(ctsclearing): signature-verification gate and full NPCI field capture for inward cheques
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Adds a manual signature-verification step to the inward CTS decision flow:
a new VERIFY_SIGNATURE command records the clerk's confirmation, and
InwardClearingItem.pass() now refuses to pass a cheque until signatureOk
is true — enforced server-side, not just a disabled UI button.

Fixes a real bug where ChequeLeaf.leafSerialNo collides across different
cheque books/series (by design — serials are only unique per stock lot),
which could resolve an inward item to the wrong account. NpciInwardPushService
now disambiguates using the drawer account number NPCI already sends
alongside the cheque number.

Also closes a completeness gap found by auditing the outward-CBS -> NPCI ->
inward-CBS pipeline: five fields NPCI sends on every instrument (drawer
account number, deposit account number, instrument type/description, drawee
bank name, per-check IQA breakdown) were read and discarded instead of
persisted — now saved via new columns and exposed on the read API.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-22 12:30:07 +05:30
keshav 84b1685873 Add customer search and sponsor DD reconciliation modules; stop tracking logs
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
Adds customersearch and sponsordd portfolio modules with associated
changelog parts, updates cashier deposit request handling, and stops
tracking fineract-provider/logs/.
2026-07-22 11:53:32 +05:30
Jaanu423andClaude Sonnet 5 b433edfdfe feat(clearing): add CTS/NACH clearing modules with real NPCI integration
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
- Inward/outward CTS clearing (capture, validate, settle, dishonour), positive pay,
  settlement/reconciliation, and NACH clearing modules
- Real, separate NPCI clearing-house integration: hybrid RSA+AES envelope crypto,
  bank self-registration, outward batch submission, and an inward push webhook
- Outward clearing is now session-batched: a 2-hourly scheduled job (plus the
  existing manual "Send Pending Batch" fallback) bundles CAPTURED cheques instead
  of sending them one at a time
- Batch-summary read APIs and date/text filters across inward batches, outward
  presentments, and outward batches

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-21 15:46:52 +05:30
Jaanu423andClaude Sonnet 5 383dfdc6e9 feat(chequebook): silent balance hold instead of activation-time charge
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
- Removed the "CHEQUE_BOOK" facility charge from account-activation
  auto-apply (both savings and current) — the per-leaf issuance charge is
  now the only cheque-book charge, applied at request/approval time only.
- Cheque book request now reserves the charge amount via a direct
  on-hold-funds field update instead of Fineract's native hold-amount
  command, so no "Amount on hold"/"Release Amount" transaction row is ever
  created — nothing shows in the passbook/transactions list, and the
  reservation is released the same way (silently) on approval (then
  charged) or rejection (returned), for both savings and current accounts.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-17 15:03:30 +05:30
Jaanu423andClaude Sonnet 5 5ed95c27e8 fix(chequebook,current-account): current-account transaction fixes for cheque-book charge
- CurrentAccountTransactionsApiResource.retrieveOne() was calling the savings
  read-service to fetch a single transaction, which always queries
  m_savings_account_transaction and can never find a current-account row —
  crashed with EmptyResultDataAccessException. Added a dedicated
  CurrentAccountReadPlatformService.retrieveOneTransaction() backed by
  m_current_account_transaction instead.
- CurrentAccountReadPlatformServiceImpl.buildTransactionType() (and the
  search-transactions endpoint) had no cases for hold (8) / release (9)
  transaction types, so they displayed as "Deposit"/"Other" instead of
  "Amount on hold"/"Release Amount".
- ChequeBookIssuanceChargeService.deductFromCurrent() never set
  runningBalanceDerived on the charge-deduction transaction, leaving the
  Balance column blank for that row in the transactions list.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-16 15:06:35 +05:30
Jaanu423andClaude Sonnet 5 fde670e644 feat(chequebook): per-leaf issuance charge with balance validation and fund hold
Requesting a cheque book now computes a per-leaf charge (reusing the existing
"Cheque Book Charge" facility mapping) and blocks the request at submit time if
the account can't absorb it without breaching its minimum required balance.

The charge amount is reserved via Fineract's native hold-amount mechanism when
the request is submitted, released and actually deducted (with GL posting) on
checker approval, or released back to the customer on rejection — so funds are
never left dangling on hold regardless of outcome.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-16 11:19:11 +05:30
Jaanu423andClaude Sonnet 5 3bb7fc8050 feat(chequebook): add RETURNED leaf status for dishonoured/bounced cheques
Adds a maker-checker-gated "return" command on cheque books that flags
presented-and-dishonoured leaves as terminal RETURNED (distinct from
STOP_PAYMENT/drawer-initiated and LOST/custody-failure), following the
same reason/actor/timestamp pattern already used for lost/cancelled/used
leaves on m_cheque_leaf.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 16:07:04 +05:30
Jaanu423 04d65d857f feat(chequebook): add cheque book module with Maker-Checker workflow
Adds cheque series, stock lot/transfer, cheque book issuance,
stop-payment/lost/cancel-leaf actions, and pending-request approval
APIs with Maker-Checker command handlers and liquibase changelogs.
2026-07-15 11:13:06 +05:30
keshav898966 b064ee6307 existing account saving and current add or remove nominee and digital & account features and also FE & RD nominee add or remove 2026-07-10 18:40:16 +05:30
Jaanu423andClaude Sonnet 4.6 9d09d9ebd4 fix(db): add missing m_saving_product_temp table causing 500 on product list APIs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-09 15:58:17 +05:30
Jaanu423andClaude Sonnet 4.6 eb88fb0813 fix(db): add missing m_savings_account columns causing 500 on savings list
introducer_required, share_linking_enabled, terminate_true were missing
from m_savings_account in fineract_saga. Applied directly to DB and
added 0368 catch-up migration with preConditions for idempotency.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-09 15:47:14 +05:30
Jaanu423andClaude Sonnet 4.6 f13a9c6bba merge(release): merge feature/minor-update into release/share-account-module
Combines election module + UAT catch-up migrations (0338-0367) with
minor-update changes: soft delete for tellers (0338), share linking
for current account (0339), terminate flag for savings/current (0340).
Resolved changelog conflict by appending minor-update entries after 0367.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-09 13:43:03 +05:30
Jaanu423andClaude Sonnet 4.6 0e076889e9 feat(db): idempotent catch-up migrations for UAT schema gaps (0358-0367)
Add 10 Liquibase catch-up changeSets covering m_client, m_client_kyc,
m_family_members, m_client_nominee, m_client_msme, m_rbi_feed_item,
m_savings_product, m_current_product, m_clerk_withdrawal_request,
m_daily_token_counter, and misc column additions (0207-0348 range).
All changeSets use preConditions (tableExists/columnExists) so they
MARK_RAN if already applied. Fixes PostgreSQL startup crash in 0360
by replacing MySQL-specific INFORMATION_SCHEMA sqlCheck with Liquibase-
native foreignKeyConstraintExists.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-09 13:35:41 +05:30
Jaanu423andClaude Sonnet 4.6 87b308b527 feat(election): Chairman/VC auto-resolution, member vote list on voting page
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-09 10:59:00 +05:30
Jaanu423andClaude Sonnet 4.6 934a51c9ee feat(election): dynamic designations from m_code, email-based voting, vote remark field
- DesignationService reads designation limits and mandatory flags from DirectorDesignation m_code_value
- DirectorAppointmentServiceImpl: replaced hardcoded DESIGNATION_LIMITS map with dynamic DB fetch
- CommitteeServiceImpl: replaced hardcoded Chairman/Vice Chairman check with dynamic mandatory designation query
- New GET /v1/election/directors/designations endpoint returns all active designations
- Email-based voting module: MeetingPublicVoteApiResource, MeetingVoteAdminApiResource, MeetingVoteService
- MeetingMemberVote: added remark (TEXT) column for member vote remarks
- AgendaVoteRequest: added remark field to carry voice/typed remarks per agenda item
- Liquibase migrations 0354 (vote/resolution tables), 0355 (DirectorDesignation code), 0356 (vote remark column)
- SecurityConfig: permit public voting endpoints without authentication

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-07 18:26:14 +05:30
keshav898966 9980310c9e table changes on Maker-Checker workflow for Products, with approval-based updates and product locking to prevent concurrent edits 2026-07-06 17:49:39 +05:30
Jaanu423andClaude Sonnet 4.6 cfcd24efad refactor(client): reformat ClientMapper.java
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-06 16:58:34 +05:30
Jaanu423andClaude Sonnet 4.6 73db4ee114 feat(election): relational agenda items, email redesign, and stale-cache fix
- Add CommitteeMeetingAgenda entity + repository for relational agenda storage
- Liquibase migration 0353: create m_election_committee_meeting_agenda table,
  drop old agenda TEXT column from m_election_committee_meeting
- Update CommitteeMeeting: replace String agenda with List<CommitteeMeetingAgenda>
  (EAGER, no cascade — writes handled explicitly via repository)
- Update CommitteeMeetingRepository: explicit JPQL with SELECT DISTINCT + LEFT JOIN
  FETCH to load agendaItems and prevent NonUniqueResultException on Optional returns
- Fix email sending stale agenda: inject EntityManager, call refresh() after
  agendaRepository.flush() so EclipseLink reloads the collection from DB
- Redesign buildMeetingInviteHtml: table-based email layout, icon+label+value rows,
  amber agenda section with numbered badges, compact two-column footer

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-06 16:53:32 +05:30
Jaanu423andClaude Sonnet 4.6 e72b9359c1 feat(election): committee meeting module — schedule, online/offline mode, soft delete, audit logging
- CommitteeMeeting entity, enums (ONLINE/OFFLINE mode, SCHEDULED/COMPLETED/CANCELLED status), repository with soft delete filter
- CommitteeMeetingService + Impl: schedule, update, patchStatus, soft delete, retrieveByCommittee
- CommitteeMeetingApiResource: REST endpoints at /v1/election/committee-meetings with full audit logging
- ElectionAuditAction: add SCHEDULE_MEETING, UPDATE_MEETING, CANCEL_MEETING, COMPLETE_MEETING, DELETE_MEETING + FAILED variants
- CommitteeService: expose getElectionIdForCommittee() for audit context
- Liquibase 0351: create m_election_committee_meeting table with is_deleted soft delete column
- Liquibase 0352: rename created_date/last_modified_date → created_on_utc/last_modified_on_utc to match EclipseLink base class mapping

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-06 10:16:20 +05:30
Jaanu423andClaude Sonnet 4.6 a1a31aff25 feat(election): comprehensive audit log fixes — committee logging, deduplicate service logs, fix director entity type
- Add audit logging for all 5 committee operations (create, update, dissolve, add/remove member)
- Add CREATE_COMMITTEE, UPDATE_COMMITTEE, DISSOLVE_COMMITTEE, ADD_COMMITTEE_MEMBER, REMOVE_COMMITTEE_MEMBER to ElectionAuditAction enum
- Fix double logging: remove all duplicate audit calls from ElectionWritePlatformServiceImpl (API resource logs are authoritative)
- Fix double logging in DirectorAppointmentServiceImpl (keep only autoExpireByTenure scheduler log)
- Fix entity type bug in DirectorAppointmentApiResource: "DIRECTOR" -> "DIRECTOR_APPOINTMENT" to match frontend filter

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-03 17:24:03 +05:30
Jaanu423andClaude Sonnet 4.6 2606427203 feat(election): committee management — CRUD, members, image, and director fix
- Add Committee entity, CommitteeMember, repositories, service, and REST API
- Liquibase migrations: 0349 committee tables, 0350 committee image column
- Committee supports profile image (base64 TEXT), name, description, status
- Current directors: fix EclipseLink native query (?1 positional param) and add
  fallback to most recent RESULT_DECLARED election when no active duration found
- DirectorAppointmentRepository: add findByElectionIdAndStatus (non-pageable)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-03 16:39:42 +05:30
keshav898966 b0bfa386ce implemented a Maker-Checker workflow for Products, with approval-based updates and product locking to prevent concurrent edits 2026-07-03 15:15:09 +05:30
Jaanu423andClaude Sonnet 4.6 00d3a2e333 feat(election): candidate modification lock, director member photo, and comprehensive audit logging
- ElectionConfig: add isCandidateModificationLocked() — blocks remove/update/symbol after voting starts
- ElectionWritePlatformServiceImpl: full audit logging on all 16 operations; failures logged in new transaction (REQUIRES_NEW) so they survive main tx rollback
- DirectorAppointmentData: add memberId field for client photo lookup
- DirectorAppointmentServiceImpl: batch-fetch candidate memberId via ElectionCandidateRepository; pass to response

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-03 13:44:49 +05:30
Jaanu423andClaude Sonnet 4.6 048a4ecfde feat(election): election duration blocking, director tenure auto-fill, audit logging, and scheduler
- Add durationYears to ElectionConfig with Liquibase migration (0348)
- Block new election creation when previous election duration is still active (PostgreSQL-compatible native query)
- Auto-override director tenureEndDate from election durationEndDate on appoint and update
- Add ElectionSchedulerConfiguration to enable @Scheduled support
- Fix JPQL EclipseLink enum compatibility in expireByTenureDate query
- Add full audit logging to DirectorAppointmentServiceImpl (appoint, update, remove, auto-expire)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-03 12:25:43 +05:30
Jaanu423andClaude Sonnet 4.6 7ce7353e7a feat(election): Board of Directors — director appointment management
- DirectorAppointment entity + Liquibase migration (0347)
- CRUD API: POST/GET/PUT/DELETE /v1/election/directors with @Valid Bean Validation
- GET /v1/election/directors/pending — WON candidates not yet appointed
- Duplicate prevention: existsByElectionIdAndCandidateId check on appoint
- Business validation: tenure end must be after start; tenure start cannot be before appointment date
- @Scheduled daily midnight job to auto-expire tenure-ended directors via bulk JPQL UPDATE
- Full audit logging for all director actions (success + failure) via ElectionAuditService
- PendingDirectorData DTO; DirectorAppointmentStatus enum (ACTIVE/RESIGNED/REMOVED/TENURE_ENDED)
- ElectionAuditAction: added APPOINT_DIRECTOR, UPDATE_DIRECTOR_APPOINTMENT, REMOVE_DIRECTOR_APPOINTMENT + FAILED variants
- ElectionResultRepository: findByResult(String) for pending director lookup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-02 12:50:04 +05:30
keshav898966 99c153830c pending account terminate feature develop 2026-07-01 17:25:04 +05:30
Jaanu423andClaude Sonnet 4.6 ba199d78e7 feat(election): date validations, overdue-only NDC/loan checks, audit log gaps fixed
- Added ElectionDateViolationException for proper 4xx on date violations
- createElection: validates date order (nominationStart <= nominationEnd <= electionDate <= resultDate)
- withdrawNomination/resubmitNomination: blocked after nominationEndDate
- closeNominations: requires today >= nominationEndDate
- openVoting/closeVoting: requires today >= electionDate
- declareResults: requires today >= resultDate (or electionDate if no resultDate)
- NDC hasNoDues: checks overdue EMIs only (total_overdue_derived), not outstanding balance
- Director/guarantor/family loan checks: overdue-based only — pass if no missed EMIs
- MemberHasOutstandingDuesException: proper AbstractPlatformDomainRuleException (was IllegalStateException → 500)
- Audit gaps fixed: RESUBMIT_NOMINATION_FAILED added to enum, try/catch added for resubmit,
  createElection, updateElection; saveManualVoteCounts catches all RuntimeException

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-01 16:50:08 +05:30
Jaanu423andClaude Sonnet 4.6 99cc972804 feat(election): comprehensive audit log — rich details for all actions
- Fixed VARCHAR(500) overflow: description column changed to TEXT (Liquibase 0346)
- Fixed CEO pre-check 500 error: fm.firstname/lastname column name fix
- Fixed audit log showing wrong PASS/FAIL for CEO pre-check
- Fixed approval action not showing step name/number (read PENDING step before action)
- submitNomination: details JSON with applicantName, memberId, postId, gender, caste
- runEligibilityCheck: details JSON with all 5 check results + remarks
- runCeoPreCheck: details JSON with all 7 individual check results + remarks
- processApprovalStep: details JSON with action, stepName, stepNumber, remarks, rejectionReason
- activateElection/closeNominations/openVoting/closeVoting/cancelElection: details with electionTitle + newStatus
- updateElection: full request JSON via ObjectMapper
- approveCandidate: details with nominationId + applicantName
- updateCandidate: details with symbolUpdated, profileUpdated, briefProfile
- uploadCandidateSymbol: details with filename + mimeType
- declareResults: winner summary JSON array [{post, winner, votes}]
- saveManualVoteCounts: return type changed void→String, details JSON array with candidate vote data
- Added Liquibase migrations: 0344, 0345 for manual vote count, 0346 for TEXT column

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-01 14:59:23 +05:30
Jaanu423andClaude Sonnet 4.6 99a89d5d81 feat(election): overall shareholder analysis API + analytics enhancements
- ElectionAnalyticsServiceImpl: fix SQL_FAMILY to count candidate's own family members who are active shareholders (candidate-specific, not system-wide)
- ElectionAnalyticsServiceImpl: SQL_SUB_CASTE now groups by m_client.lastname instead of sub_caste_cv_id
- ElectionAnalyticsServiceImpl: SQL_CANDIDATE_INFO fetches candidate client_id, lastname, religion for match highlighting
- ElectionAnalyticsServiceImpl: add getOverallShareholderAnalysis() — returns all demographic breakdowns with no candidate matching
- ElectionAnalyticsService: add getOverallShareholderAnalysis() interface method
- ElectionCandidateApiResource: add GET /{electionId}/shareholders/analysis endpoint

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 18:36:02 +05:30
Jaanu423andClaude Sonnet 4.6 388af0a6a3 feat(election): candidate voter analysis API — multi-dimension breakdown + sub-caste migration
- New ElectionAnalyticsServiceImpl with 14 SQL breakdown queries:
  gender, age, area, social category (caste), sub-caste, religion,
  occupation, share-holding, tenure, loan, education, marital status,
  monthly income, savings account depth
- Cross-dimension match: caste + area simultaneously (core voter base)
- Zero-count row injection for caste/gender/sub-caste when candidate's
  category has no shareholder matches in GROUP BY result
- Liquibase 0343: sub_caste_cv_id column on m_client with 33 pre-seeded
  sub-caste values across General / OBC / SC / ST categories
- Liquibase 0342: election post eligibility columns
- CandidateVoterAnalysisData DTO with education, marital, income,
  savings, activeSavingsHolders, crossMatchCount fields

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 11:54:01 +05:30
keshav898966 1bd41cff43 saving, currun, fd and rd account working and tested 2026-06-30 10:06:59 +05:30
Jaanu423andClaude Sonnet 4.6 34f84e1fc6 chore: remove tracked log files and ignore logs directory permanently
- Delete all fineract-provider/logs/*.log from version control
- Add fineract-provider/logs/ to .gitignore so runtime logs are
  never tracked again

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 13:06:54 +05:30
Jaanu423andClaude Sonnet 4.6 69513f25f3 feat(election): production-ready audit log with server-side filter + pagination
- Add m_election_audit_log table via Liquibase (0341)
- ElectionAuditLog entity, ElectionAuditAction enum (21 actions)
- ElectionAuditService: log() with double try-catch, getAuditLogPaged()
  with entityType/action/full-text filters, size cap at 100, page safety
- ElectionAuditLogRepository: findWithFilters() JPQL with optional params
- All 4 election API resources wired with audit calls (create/update/
  activate/nominations/voting/candidates/votes/results)
- GET /{electionId}/audit-log accepts ?entityType=&action=&search=&page=&size=

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 12:57:21 +05:30
Jaanu423andClaude Sonnet 4.6 3d30bdb788 feat(election): CBS ContentStore symbol upload, hasSymbol DTO, vote summary API
- ElectionCandidateData: replace String symbol with Boolean hasSymbol + add memberId
- ElectionCandidateApiResource: symbol upload/download via ContentStoreService
  (mimeType|storagePath format, backward-compatible with legacy base64 records)
- ElectionVotingApiResource: add GET /vote-summary endpoint (totalVotes, totalVoters,
  per-candidate breakdown) using ElectionVoteRepository queries
- ElectionVoteRepository: add countByElectionConfigId and voteSummaryByCandidate queries
- ElectionReadPlatformServiceImpl: map hasSymbol and memberId in candidate list response
- ElectionWritePlatformServiceImpl: set photoUrl from memberId on approveCandidate,
  delete old symbol file from ContentStore on removeCandidate

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 18:39:28 +05:30
Jaanu423andClaude Sonnet 4.6 ed139d6e68 feat(election): server-side pagination, family loan CEO pre-check, extended checks
- PagedResponse<T>: generic paginated wrapper with statusCounts and summary fields
- ElectionConfigRepository: pageable query + countGroupByStatus
- ElectionNominationRepository: pageable queries + count-by-status helpers
- ElectionCandidateRepository: pageable queries by election and post
- ElectionReadPlatformService: all list methods return PagedResponse with page/size params
- ElectionReadPlatformServiceImpl: add missing Pageable import; paginated impls with summary data
- API resources: @QueryParam page/size with @DefaultValue on all 3 list endpoints
- ElectionCeoPrecheck: add familyLoanCheckResult + familyLoanCheckRemarks (7th auto-check)
- ElectionCeoPreCheckServiceImpl: fix directorLoan check (overdue only); add family loan check covering manual members (unverifiable→FAIL) and linked CBS clients (overdue→FAIL)
- Liquibase 0338/0339: extended CEO pre-check columns + family loan check columns
- changelog-tenant.xml: include both new changesets

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 12:08:29 +05:30
keshav898966 db41c2b606 feat: add share linking enabled to current and savings accounts 2026-06-26 11:12:00 +05:30
Jaanu423andClaude Sonnet 4.6 fc80869d4b feat(guarantor): enrich guarantor accounts API with loan health and borrower details
- Add borrower name, savings account, guaranteed/released/remaining amounts, loan timeline, and overdue info to GuarantorAccountSummaryData
- Fix duplicate rows in GuarantorLoanAccountSummaryDataMapper by joining savings account via guarantor funding details instead of client ID
- Fix NPE in GuarantorDomainServiceImpl when loan product guarantee details are null

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 13:15:25 +05:30
keshav898966 8e55b6747c Merge branch 'feature/minor-update' after resolving conflict in logs 2026-06-24 12:50:35 +05:30
keshav898966 21878939b5 Merge branch 'feature/minor-update' of https://git.zeptic.in/CBSNexora/JAVA-Backend-CBS-MAIN into feature/minor-update 2026-06-24 12:47:53 +05:30
keshav898966 b5c9101fa4 feat: implement teller creation limit and soft delete with cashier check bypass 2026-06-24 12:47:03 +05:30
keshav898966 1ff3f9c0c9 shares account link to new saving account 2026-06-23 15:23:30 +05:30
Jaanu423andClaude Sonnet 4.6 1eba2c50ed fix(election): move additional permissions to new changeset to avoid Liquibase checksum error
The 5 missing permissions were added to the already-executed changeset
causing checksum mismatch on restart. Move them to a new changeset
0337_seed_election_permissions_v2 with a preCondition guard.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 11:13:39 +05:30
Jaanu423andClaude Sonnet 4.6 3367b7d935 fix(election): seed missing permissions in Liquibase migration 0337
Add 5 permissions that the write service enforces but were absent from
the DB seed: UPDATE_ELECTION, ELIGIBILITY_CHECK_ELECTION,
CEO_PRECHECK_ELECTION, APPROVE_ELECTION_NOMINATION,
APPROVE_ELECTION_CANDIDATE — without these, role assignments for those
operations would fail at runtime.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 10:48:46 +05:30
Jaanu423andClaude Sonnet 4.6 5899d2ca07 feat(election): add election module — config, nominations, candidates, voting, approval flow
- REST API resources: ElectionConfig, ElectionNomination, ElectionCandidate, ElectionVoting
- Domain entities, repositories, services (read + write) with maker-checker approval steps
- Eligibility checks, no-due-certificate, CEO pre-check services
- Liquibase migration 0337 creates all election module tables

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 17:39:43 +05:30
Jaanu423andClaude Sonnet 4.6 c1e23080fc fix(share-account+clerk): remove cashier collection validation, add NPE guards
ShareAccountWritePlatformServiceJpaRepositoryImpl:
- Remove m_share_cashier_collection validation from activateShareAccount() —
  cashier now enters GL directly via transaction entry workstation
- Mark all share account charges as paid on activation instead of posting
  duplicate GL (cashier already posted DR Cash -> CR Charges GL directly)
- Remove unused imports: java.sql.Date, EmptyResultDataAccessException, Collectors
- Update createShareAccount() comment to reflect new cashier GL flow

ClerkDisbursementRequestApiResource:
- Add null guard for clerk_id before cast in approve() — returns 500 with
  clear message if DB record is missing the field
- Add null/blank guard for credit_entries in approve() — returns 400 with
  clear message instead of NPE on gson.fromJson

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 18:46:17 +05:30
Jaanu423andClaude Sonnet 4.6 7354da8c1e feat(bank-transfer): add maker-checker support for bank transfers
- Added request_type column to m_clerk_disbursement_request via migration 0336
- submit() extracts requestType from body, stores in DB (defaults to DISBURSEMENT)
- approve() detects BANK_TRANSFER mode via request_type field:
    - DR entries: directDebitSavingsAccount / directDebitCurrentAccount
    - CR entries: directCreditSavingsAccount / directCreditCurrentAccount
    - GL: DR SavingsControl(per DR) / CR SavingsControl(per CR)
    - Audit INSERT into m_bank_transfer_log with unique BT voucher number
    - Existing disbursement/collection logic unchanged in else branch
- list(), myRequests(), loadRecord() all return request_type
- Migration 0335 (m_bank_transfer_log) also included

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 14:47:21 +05:30
Jaanu423andClaude Sonnet 4.6 bf5ce421df feat(clerk+gl): implement real CBS book transfer for savings and current account disbursements
- Replace Fineract cash deposit API with direct INSERT for both savings and current accounts
  → Zero CashVault entries created anywhere in DB for disbursements
- Savings: directCreditSavingsAccount now sets running_balance_derived and updates
  total_deposits_derived alongside account_balance_derived (parity with current account)
- Current: directCreditCurrentAccount — direct INSERT into m_current_account_transaction
  with running_balance_derived, total_deposits_derived update, and remarks audit field
- getCurrentControlGlId: looks up SAVINGS_CONTROL GL for current account products
  via acc_product_mapping (product_type=2, financial_account_type=2)
- directReverseCurrentCredit: compensation restores both account_balance_derived
  and total_deposits_derived on rollback
- GL: combined DR sourceGL / CR SavingsControl entry posted for both savings and
  current account credits; linkGlEntriesToSavingsAccounts sets entity_type_enum=2
  so ACCOUNT NO column shows in journal entries view
- Hide reversed=true GL entries from all GL views in JournalEntryReadPlatformServiceImpl

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 11:04:17 +05:30
Jaanu423andClaude Sonnet 4.6 d002fc0c9b feat(clerk): add collection flow backend — savings withdrawal + Cash@Vault GL offset
- ClerkDisbursementRequestApiResource: support collection mode (dbCr='Dr' entries); submit() separates DR/CR totals and validates balance; approve() detects mode, calls executeSavingsWithdrawal/executeCurrentAccountWithdrawal for DR entries, then posts GL offset via findCashVaultGlId(txnRefs, type_enum=1) → target GL
- ClerkWithdrawalRequestApiResource: minor updates
- DB migration: changelog-tenant.xml + 0333_rename_disbursed_to_withdrawn.xml

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 15:27:32 +05:30
Jaanu423andClaude Sonnet 4.6 a6eae3d6e8 feat(clerk): add GL disbursement maker-checker backend
- Add ClerkDisbursementRequestApiResource with submit/list/my/approve/reject endpoints
- Approve posts savings/current deposits then offsets DR source GL / CR Cash at Vault
- Add Liquibase migration for m_clerk_disbursement_request table (IF NOT EXISTS indexes)
- Add VoucherService constants TYPE_DISBURSEMENT and REF_CLERK_DISBURSEMENT_REQUEST

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 10:44:04 +05:30
Jaanu423andClaude Sonnet 4.6 3e1abaef03 fix(cashier): fix NumberFormatException on GL deposit approval and add GL maker-checker flow
- Use parseTxnIdToLong() for voucherService.linkSavingsTransaction() to
  handle hex GL txnId (e.g. "a2070e542bab") without NumberFormatException
- Add GL deposit maker-checker: submit stores gl_account_id, contra_gl_id,
  office_id, currency_code; approve routes to executeGlJournalEntry()
- Save denomination at submit time (cash physically received); update
  txn_id to real Fineract ID on approve, delete on reject
- Add Liquibase migration 0331 to add GL columns to m_cashier_deposit_request

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15 14:59:28 +05:30
Jaanu423andClaude Sonnet 4.6 40449ef0f7 fix(cashier+clerk): route CA deposits and withdrawals to current account commands
CashierDepositRequestApiResource:
- approve(): use isCurrentAccountById() to detect current accounts, route to
  executeCurrentAccountDeposit() instead of executeSavingsDeposit()
- Add executeCurrentAccountDeposit() using CommandWrapperBuilder.currentAccountDeposit()
- Add isCurrentAccountById() helper querying m_current_account table
- Add POST /{id}/reprocess endpoint to fix already-approved CA records that
  were wrongly posted to savings account

ClerkWithdrawalRequestApiResource:
- approve(): use isCurrentAccountById() to detect current accounts, route to
  executeCurrentAccountWithdrawal() instead of executeSavingsWithdrawal()
- Add executeCurrentAccountWithdrawal() using CommandWrapperBuilder.currentAccountWithdrawal()
- Add isCurrentAccountById() helper querying m_current_account table

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15 12:52:09 +05:30
Jaanu423andClaude Sonnet 4.6 33ea10689f feat(cashier+voucher): add cashier deposit maker-checker flow and central voucher system
- VoucherService: central voucher register with globally unique voucher numbers
- CashierDepositRequestApiResource: full submit/approve/reject/list flow
  - Cashier submits deposit request; balance credited only on manager approval
  - Self-approval blocked (maker cannot be checker)
  - Role guard: only manager/head-cashier/ALL_FUNCTIONS can approve/reject
  - Race condition guard: WHERE status='PENDING' on approve/reject UPDATE
  - Clean JSON error responses (no 500 stack traces) via apiError() helper
  - Denomination total validation at submit and approve
- ClerkWithdrawalRequestApiResource: refactored to use m_voucher
  - Voucher created at submit, linked to savings txn at approve
  - Same role guard and self-approval block as deposit flow
  - Disburse: denomination validation, null denoms for non-cash payments
- Migrations 0327-0330:
  - 0327: add voucher_no to m_clerk_withdrawal_request
  - 0328: add voucher_no to m_savings_account_transaction
  - 0329: create m_voucher central table (globally unique voucher_no)
  - 0330: create m_cashier_deposit_request table

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-12 10:53:47 +05:30
Jaanu423andClaude Sonnet 4.6 8d5b4d1ce9 feat(clerk-withdrawal): add maker-checker withdrawal disbursement API
- ClerkWithdrawalRequestApiResource: full CRUD for withdrawal requests
- Endpoints: submit, list, myRequests, getById, getByToken, approve, reject, disburse, update
- Token uniqueness validated per day (validateTokenUniqueToday)
- Cashier disburse: amount match, race condition guard (WHERE status=APPROVED)
- Disbursement denomination saved to m_savings_txn_denomination for vault position tracking
- Liquibase migrations: 0321-0326 (create table, tok_no, manager fields, disbursement fields, drop unused counter)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-11 16:00:57 +05:30
Jaanu423andClaude Sonnet 4.6 db94056144 feat(cashier): add server-side pagination and date ordering to GL entries endpoint
- Add offset/limit query params with defaults (limit=20, offset=0)
- Return totalFilteredRecords + pageItems response structure
- Compute totalDr/totalCr from all records (not just current page)
- Fix ordering: ORDER BY MAX(created_at) for correct chronological sort

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 15:53:49 +05:30
Jaanu423andClaude Sonnet 4.6 19639c9e02 feat(cashier): add GL denomination tracking, live GL balance, and enhanced closing report
- Add CashierGlDenominationApiResource: new POST /v1/cashier/gl-denomination endpoint
  to record denomination breakdown for GL journal entries in m_savings_txn_denomination
- Fix GL account real-time balance in GLAccountReadPlatformServiceImpl using live SUM query
- Add Liquibase migrations 0318/0319/0320: make savings_account_id and txn_id nullable,
  add payment_type column to m_savings_txn_denomination
- Add validCheckSum to 0317b changeset to resolve checksum mismatch on existing installs
- Enhance GL entries closing report SQL with date, time, teller, payment type, txn source

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 15:31:12 +05:30
Jaanu423andClaude Sonnet 4.6 53b6a94bf8 fix(cashier): fix GL account search SQL bug, running balance, and add CASHIER role permissions
- Fix searchParam SQL syntax: parameterized LIKE with %value% instead of literal %?%
- Fix organizationRunningBalance: correlated subquery for latest journal entry (ORDER BY id DESC LIMIT 1)
- Migration 0317: grant READ_GLACCOUNT, READ_LOAN, READ_SHAREACCOUNT to CASHIER role

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 11:17:32 +05:30
Jaanu423andClaude Sonnet 4.6 6d0c1fe7f6 feat(clerk): add clerk role with cashier teller workstation permissions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 18:27:04 +05:30
Jaanu423andClaude Sonnet 4.6 edaeb674d5 feat(cashier): fix current account transactions search and withdrawal validations
CurrentAccountTransactionsApiResource:
- Fixed: search endpoint now queries m_current_account_transaction
  instead of m_savings_account_transaction (wrong table)
- Added remarks column to search query (column exists in CA table)
- Charge Deduction (type=7) mapped in transactionType value
- Removed sat.remarks that caused 500 (column doesn't exist in savings table)

CurrentAccountTransactionWritePlatformServiceImpl:
- Added min required balance validation in withdrawal()
- Throws GeneralPlatformDomainRuleException when balance after withdrawal
  would fall below minRequiredBalance (if enforceMinRequiredBalance=true)

StandingInstructionReadPlatformServiceImpl:
- Fixed SQL WHERE clause: fromAccountType + fromAccount condition
  now correctly adds WHERE when fromAccountId is set

Liquibase 0315:
- Fix standing instruction permission code (trim trailing space on id=449)
- Grant READ permissions to CASHIER role for transaction entry screen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05 22:27:59 +05:30
Jaanu423andClaude Sonnet 4.6 2371ad98b1 feat(cashier): add role-based data filtering and pagination for teller workstation
- Add CashierRoleHelper service: detects CASHIER role via DB permission
  check, resolves cashier ID from staff/user linkage
- Role-based filtering on GET list endpoints (cashtransfer, cashsettlement,
  cashintercashier, cashexchange, cashreports): CASHIER sees only own data,
  ADMIN/HEAD sees all
- Pagination (offset/limit) added to all cashier list APIs returning
  standard Fineract Page format {totalFilteredRecords, pageItems}
- ShareCollectionApiResource: collect cash before account activation,
  post GL entries (Dr Cash Vault / Cr Share Sundry / Cr Income from Fees),
  mark charges paid to prevent duplicate GL on activation,
  GET status endpoint for collection check
- Migration 0315: grant READ_CLIENTKYC, READ_CLIENTNOMINEE, READ_ADDRESS,
  READ_FAMILYMEMBERS, READ_SAVINGSACCOUNT to CASHIER role

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-05 11:00:55 +05:30
Jaanu423andClaude Sonnet 4.6 9d944d0196 feat(share): add cashier share collection endpoint with GL posting and activation validation
- New POST /cashier/sharecollection endpoint: collects cash for share purchase,
  posts Dr Cash Vault / Cr Share Sundry / Cr Income GL entries, marks charges
  as paid and sets cashier_collected flag on the account
- GET /cashier/sharecollection/:id endpoint for collection status check
- Block share account activation if cashier has not collected cash first
  (validates m_share_cashier_collection record within last 30 days)
- Skip duplicate charge GL on activation when charge already collected upfront
- Suppress automatic GL posting at account submission time to prevent
  double entries; GL is now posted only via cashier collection endpoint
- Fix JdbcTemplate injection in ShareAccountWritePlatformServiceJpaRepositoryImpl
  via ShareAccountsConfiguration

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 13:22:33 +05:30
Jaanu423andClaude Sonnet 4.6 6e31ac9acd fix(savings): allow modifyApplication for rejected Savings/FD/RD accounts
SavingsAccount.modifyApplication() previously blocked modification unless
the account was in SUBMITTED_AND_PENDING_APPROVAL state. Extended to also
allow REJECTED state so bank users can amend and re-submit rejected applications.

When a rejected account is modified, status resets to
SUBMITTED_AND_PENDING_APPROVAL (rejectedOnDate and rejectedBy cleared)
so the account re-enters the approval workflow.

Applies to Savings, FD, and RD accounts (all extend SavingsAccount).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 14:55:39 +05:30
Jaanu423andClaude Sonnet 4.6 a051faba5d feat(accounts): backend fixes for Modify Application feature (Current/Savings/FD/RD)
Current Account:
- CurrentAccountReadPlatformServiceImpl: add retrieveJointHolders() and retrievePartners()
- CurrentAccountWritePlatformServiceImpl: full modifyApplication() - updates all CBS fields,
  joint holders, partners, nominees, facility config, dates, introducer
- Fix cbsAccountType save: parse string account type from 'accountType' JSON field

Nominees:
- ClientNomineeWritePlatformService: add replaceNomineesForAccount() for atomic replace
- Savings/FD/RD modifyApplication: replace nominees on modify

FD/RD Read (DepositAccountReadPlatformServiceImpl):
- Add isSeniorCitizen, seniorCitizenInterestRate to BASE SQL SELECT
- Add setCbsAccountFields() call in FD/RD mappers reading accountStatus, modeOfOperation,
  introducerClientId, guardianFields, linkedAccountId, isSeniorCitizen from ResultSet
- Fix retrieveOne() to also fetch joint holders from m_savings_account_joint_holders
- Use explicit LinkedHashMap in joint holder query (camelCase keys for Angular)

FD/RD Data Classes:
- FixedDepositAccountData: add accountStatus, modeOfOperation, introducerClientId,
  linkedAccountId, jointHolders, isSeniorCitizen, seniorCitizenInterestRate fields
- RecurringDepositAccountData: same fields added
- Fix all factory methods (withInterestChartAndRecurringDetails, withClosureTemplateDetails,
  withTemplateOptions, associationsAndTemplate) to call copyCbsFieldsFrom()
- Fix SavingsAccountReadPlatformServiceImpl joint holders: use camelCase keys

FD Calculator:
- FixedDepositAccountInterestCalculationServiceImpl: add calculateExact() with actual
  calendar-based calculation matching PostingPeriod engine (exact same as account creation)
- Add submittedOnDate, daysInYear, interestPostingPeriodInMonths optional params
- Support interestCompoundingPeriodInMonths=0 (daily compounding) in both validator and calc
- DepositsApiConstants: add submittedOnDate/dateFormat/locale/daysInYear to allowed params
- DepositAccountDataValidator: allow 0 (daily) in interestCompoundingPeriodInMonths

Misc:
- SavingsProductData: null-check in isCashBased/isAccrualBased methods (NPE fix)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 10:32:59 +05:30
Jaanu423andClaude Sonnet 4.6 7c4cf6260c feat(cashier): GL entries endpoint + remove vault-cashier GL postings
- GET /cashreports/gl-entries: returns voucher_no, ac_no, ac_name
  (customer name), dr (withdrawal), cr (deposit) for cashier transactions
  with optional cashierId/tellerId filter
- TellerWritePlatformServiceJpaImpl: removed ALLOCATE/SETTLE GL entries
- OrganisationTellerConfiguration: removed obsolete GL constructor args

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 10:47:22 +05:30
Jaanu423andClaude Sonnet 4.6 6bdcac7b77 feat(cashier): remove GL entries for vault-to-cashier transfers (Option A)
ALLOCATE (vault→cashier) and SETTLE (cashier→vault) no longer post
DR CASH_AT_TELLER / CR CASH_AT_MAINVAULT journal entries.

Rationale: Cash transfer between vault and teller drawer is an internal
physical movement — the denomination/amount is already tracked operationally
via m_cash_transfer and m_cash_settlement tables. A single Cash in Hand GL
(CASH_AT_MAINVAULT) covers all bank cash. GL entries now only occur on
actual customer deposit/withdrawal transactions (SAVINGS_REFERENCE ↔
SAVINGS_CONTROL), keeping the GL clean and RBI-compliant.

Removed unused imports and field injections:
  JournalEntryRepository, FinancialActivityAccountRepositoryWrapper,
  FinancialActivity, FinancialActivityAccount, GLAccount,
  JournalEntry, JournalEntryType

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-02 07:13:48 +05:30
Jaanu423andClaude Sonnet 4.6 8bf28a8033 fix(cashier): prevent duplicate cashier lookup crash + add missing migrations
- DenominationBreakdownWriter: add ORDER BY mc.id DESC LIMIT 1 to all cashier
  lookup queries so multiple cashier records per staff do not crash queryForObject
- CashReportApiResource: same LIMIT 1 fix for cashier-day-status and position endpoints
- 0311: fix m_client and m_savings_account NOT NULL columns (created_by, last_modified_by,
  created_on_utc, last_modified_on_utc, cif_number, is_lien_allowed, etc.)
- 0312: create CASHIER role if missing + grant all 34 cashier permissions (incl FD/RD)
- 0313: add missing m_cash_exchange columns (cashier_id, is_reversed, reversed_by,
  reversed_at, reverse_reason, customer_id_proof)
- 0314: unique constraint on m_cashiers.staff_id to prevent duplicate allocations
- application.properties: restore local postgres password after merge
- ExecuteOverdueAndCurrentStandingInstructionsTest: fix constructor call (5 args)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 18:23:31 +05:30
Jaanu423 d4262ebf6f Merge remote-tracking branch 'origin/feature/switch-integration-backend' into feature/account-charges 2026-06-01 13:23:22 +05:30
Jaanu423andClaude Sonnet 4.6 656a0b4f13 feat(cashier): add morning transfer validation & fix denomination SQL
- validateCashierHasMorningTransfer(): blocks all txns when no today's cash transfer in m_cash_transfer
- validatePreviousDayClosed(): blocks when previous business day unsettled
- Both validations called on deposit AND withdrawal in Savings, Current, FD, RD services
- cashier-day-status endpoint now returns morningTransferReceived field
- getCashierTotalCash SQL fixed: dm.denomination_value -> dm.denomination

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 13:15:52 +05:30
Aditya ae7017ca81 @
feat(fundtransfer+imps+mfa): fund transfer module, IMPS switch client, MFA log API

- Fund transfer: NEFT/RTGS/IMPS/internal strategies, limit resolution, bulk
  transfer, verification tokens, suspense GL, recall/approval flow, jobs
- IMPS CBS switch client with crypto (JWT/envelope) and transaction domain
- MFA log read API (audit of MFA events)
- Liquibase migrations 0300-0311 for fund transfer / IMPS tables, permissions,
  roles, and suspense account
- JobName, SecurityConfig, dependencies.gradle wiring

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@
2026-06-01 12:18:30 +05:30
Aditya 6413befe07 Merge self-hosted/feature/account-charges into feature/Backend-DSC-MFA 2026-06-01 12:14:49 +05:30
Jaanu423andClaude Sonnet 4.6 eae5b03d7e feat(cashier): denomination withdrawal validation, exchange detail fix, cash exchange in excess report
- Savings/Current/FD/RD withdrawal services: call validateWithdrawalStock() before
  validateBreakdown() to block withdrawal when cashier lacks the requested denomination
- CashExchangeApiResource: validate cashier denomination stock before giving to customer;
  fix saveAndFlush (EclipseLink does not flush on save() — getId() returned null causing
  exchange_id NOT NULL violation in m_cash_exchange_detail)
- CashReportApiResource excess(): include cash exchanges >= threshold in result,
  add type field (SAVINGS_TXN/EXCHANGE) and idProof for RBI/AML compliance;
  combined list sorted by amount DESC
- CashReportApiResource closing(): add denomination-wise exchange rows (already present)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-01 10:11:44 +05:30
Jaanu423andClaude Sonnet 4.6 49d64004cc feat(cashier): add cashier-morning balance endpoint and expose fromCashierId in settlement/transfer APIs
- GET /cashreports/cashier-morning: returns denomination-wise cash received by cashier from vault
  for a given date (only vault→cashier transfers, non-reversed)
- CashSettlementApiResource: include fromCashierId in list and detail responses
- CashTransferApiResource: include toCashierId in list and detail responses for traceability

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 08:55:09 +05:30
Jaanu423 ada24d7497 feat(cashier): implement expected balance for logged-in cashier, settlement checks, and reconciliation rules 2026-05-28 22:28:30 +05:30
Jaanu423andClaude Sonnet 4.6 b89e653bcb feat: cash management backend - transfer, settlement, inter-cashier, reconciliation + cashier /me position endpoint
OVERVIEW
--------
Added complete cash management backend covering the full cashier workflow:
vault transfers, inter-cashier transfers, end-of-day settlement, GL
reconciliation, and a new authenticated /me endpoint for cashier position
lookup without needing to pass a cashier ID.

NEW API ENDPOINT
----------------
GET /cashreports/cashier-position/me
- Auto-detects the authenticated user via PlatformSecurityContext
- Resolves appUser -> staff -> cashier via m_cashiers JOIN chain
- Accepts optional ?asOfDate=YYYY-MM-DD query param (defaults to today)
- Reuses existing buildPositionForCashier(cashierId, dateFilter) internally
- Returns: { cashierId, asOfDate, totalAmount, denominations[] }
- Non-cashier users get empty denominations array (no error thrown)
- Used by Angular UI to show opening/closing denomination panels

CASH TRANSFER (vault -> cashier)
---------------------------------
CashTransferApiResource.java   — REST endpoints (POST /cashtransfer, GET list/detail)
CashTransfer.java              — JPA entity (m_cash_transfer)
CashTransferDetail.java        — JPA entity (denomination breakdown, m_cash_transfer_detail)
CashTransferRepository.java    — Spring Data JPA repository
CashTransferDetailRepository.java

DB migrations:
  0014_cash_transfer.xml       — creates m_cash_transfer + m_cash_transfer_detail tables
  0015_cash_transfer_add_ids.xml — adds missing ID columns to transfer detail

CASH SETTLEMENT (end-of-day cashier close)
------------------------------------------
CashSettlementApiResource.java — REST endpoints (POST /cashsettlement, GET list/detail)
CashSettlement.java            — JPA entity (m_cash_settlement)
CashSettlementDetail.java      — JPA entity (denomination breakdown)
CashSettlementRepository.java
CashSettlementDetailRepository.java

DB migration:
  0016_cash_settlement.xml     — creates m_cash_settlement + m_cash_settlement_detail

INTER-CASHIER TRANSFER
-----------------------
CashInterCashierApiResource.java — REST endpoints (POST /cashintercashier, GET list/detail)
CashInterCashier.java            — JPA entity (m_cash_inter_cashier)
CashInterCashierDetail.java      — JPA entity (denomination breakdown)
CashInterCashierRepository.java
CashInterCashierDetailRepository.java

DB migration:
  0017_cash_inter_cashier.xml  — creates m_cash_inter_cashier + detail table

CASH RECONCILIATION
--------------------
CashReconciliationApiResource.java — REST endpoints (POST /cashreconciliation, GET list)
CashReconciliation.java            — JPA entity (m_cash_reconciliation)
CashReconciliationDetail.java      — JPA entity (denomination breakdown)
CashReconciliationRepository.java
CashReconciliationDetailRepository.java

DB migrations:
  0018_cash_reconciliation.xml — creates m_cash_reconciliation + detail table
  0019_cash_reversal_columns.xml — adds reversal tracking columns
  0020_cash_permissions.xml    — adds permissions for all cash management APIs

GL DISPATCH SERVICE
-------------------
GlDispatchService.java (portfolio/teller/service/)
- Shared service for posting GL journal entries for cash movements
- Used by settlement and reconciliation flows

CHANGELOG
---------
changelog-tenant.xml updated to include migrations 0014 through 0020.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 17:40:57 +05:30
Jaanu423andClaude Opus 4.7 9a30ede278 feat: denomination save+validation for all deposit types + cash exchange backend
- DenominationBreakdownWriter helper: validates breakdown total == amount and
  persists per-denomination rows; wired into current, FD and RD deposit flows
  (savings already had inline save) so all 4 deposit types now record the
  cash denomination breakdown.
- CIF on denomination rows now sourced from the client (getCifNumber) instead
  of the account external id.
- Allow denominationBreakdown param in the FD/RD transaction validator.
- Cash Exchange backend: m_cash_exchange + m_cash_exchange_detail tables,
  entities, repositories and JAX-RS API with received==given validation;
  registered the 0013 migration in changelog-tenant.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 18:36:00 +05:30
Jaanu423andClaude Opus 4.7 ee915e395a feat: Denomination Master backend - master, audit, soft delete, txn breakdown
- m_denomination_master CRUD API with duplicate (denomination+kind)
  validation, soft delete + restore, and a full audit trail
  (m_denomination_master_audit logs CREATE/UPDATE/ACTIVATE/DEACTIVATE/
  DELETE/RESTORE with snapshot, changes, user and timestamp)
- m_savings_txn_denomination: persist per-transaction cash denomination
  breakdown on savings deposit; allow denominationBreakdown request param
- Liquibase 0012_denomination_master registered in tenant changelog

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 11:16:52 +05:30
Jaanu423andClaude Sonnet 4.6 7d4f409202 feat: fix standing instructions GL accounting for current account transfers
- AccountTransfersWritePlatformServiceImpl:
  * Direct GL posting for current↔savings/current transfers:
    DR debit-side account GL (with correct account entity_id)
    CR credit-side account GL (with correct account entity_id)
  * Prefix current account txn_id with CA (not C) so
    JournalEntryReadPlatformServiceImpl joins m_current_account
    and shows correct current account number on GL entries
  * Suppress redundant savings deposit/withdrawal GL entries
    (skipAccountingPostings=true) when current account handles
    the full double-entry directly
  * Separate performCurrentWithdrawalForLoan for Current→Loan
    transfers (loan domain service handles the other GL leg)
  * Reuse existing AccountTransferDetails for SI recurring runs
    so transactions appear in list-account-transactions history

- SavingsAccountDomainService / SavingsAccountDomainServiceJpa:
  * New handleDeposit overload with skipAccountingPostings flag
  * handleWithdrawal respects SavingsTransactionBooleanValues
    .isSkipAccountingPostings() to suppress redundant GL entries

- SavingsTransactionBooleanValues:
  * Added skipAccountingPostings field + overloaded constructor

- AccountingProcessorHelper:
  * New createDirectTransferJournalEntriesForSavings() method
    creates DR and CR entries with separate productId/entityId
    so each GL line shows the correct account number

- JournalEntryReadPlatformServiceImpl:
  * Join both m_savings_account and m_current_account always
  * COALESCE(ca.account_no, sa.account_no) to resolve correct
    account number regardless of transaction_id prefix

- ExecuteStandingInstructionsTasklet:
  * Load existing AccountTransferDetails via repository so
    subsequent SI runs link to the same transfer detail record

- ExecuteStandingInstructionsConfig / AccountConfiguration:
  * Wire AccountTransferDetailRepository and
    AccountingProcessorHelper into the relevant beans

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 16:30:04 +05:30
Jaanu423andClaude Sonnet 4.6 2251fd2259 feat: current account standing instructions - full backend support
- StandingInstructionData: rename conflicting Lombok getters (getInstructionType,
  getRecurrenceType, getRecurrenceFrequency, getFromAccountType, getToAccountType,
  getTransferType) to domain enum methods so Jackson serializes EnumOptionData fields
  as {id, code, value} objects instead of plain strings
- AccountTransfersWritePlatformServiceImpl: add current account transfer support for
  all 4 missing cases (Current->Savings, Savings->Current, Current->Current,
  Current->Loan) with performCurrentWithdrawal/performCurrentDeposit helpers
- AccountConfiguration: wire CurrentAccountRepository and CurrentAccountTransactionRepository
  into AccountTransfersWritePlatformService bean
- StandingInstructionApiResource: fix getValue() type mismatch after getter rename
- ExecuteStandingInstructionsTasklet: update to use renamed enum accessor methods
- PortfolioAccountType: add CURRENT(3) type support
- DB migration: 0301_add_current_account_to_transfer_details.xml adds
  from_current_account_id and to_current_account_id columns to transfer details table

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 10:55:35 +05:30
AdityaandClaude Opus 4.7 45585ecc10 Fix family-member PUT 500; CORS POST 403; Hikari local password default
- ClientFamilyMembersWritePlatformServiceImpl#updateFamilyMember: guard
  maritalStatusId/genderId/professionId with != null instead of != 0 so a
  payload that omits these keys doesn't NPE when the boxed Long is unboxed.
- application.properties: fix the broken property name
  `fineract.security.cors.allowed-metho pas` -> `allowed-methods`. The typo
  left CORS allowed-methods empty, which made Spring reject every browser
  POST with "Invalid CORS request" 403 once the SPA sent an Origin header.
- application.properties: change the Hikari default password from 313863
  to root so the local devRun matches the tenant-DB default at line 49.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 13:07:24 +05:30
AdityaandClaude Opus 4.7 7dea88d30f Fix family-member PUT 500; CORS POST 403; Hikari local password default
- ClientFamilyMembersWritePlatformServiceImpl#updateFamilyMember: guard
  maritalStatusId/genderId/professionId with != null instead of != 0 so a
  payload that omits these keys doesn't NPE when the boxed Long is unboxed.
- application.properties: fix the broken property name
  `fineract.security.cors.allowed-metho pas` -> `allowed-methods`. The typo
  left CORS allowed-methods empty, which made Spring reject every browser
  POST with "Invalid CORS request" 403 once the SPA sent an Origin header.
- application.properties: change the Hikari default password from 313863
  to root so the local devRun matches the tenant-DB default at line 49.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 13:06:38 +05:30
Jaanu423 d32953ed76 Merge branch 'feature/account-charges' of https://git.zeptic.in/CBSNexora/JAVA-Backend-CBS-MAIN into feature/account-charges 2026-05-21 21:00:05 +05:30
Jaanu423andClaude Sonnet 4.6 ea2dfd789d feat: senior citizen interest rate fix for FD/RD accounts + CBS table renames
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Liquibase Only mode - PostgreSQL / test (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
- Apply senior citizen rate override in FixedDepositAccount and RecurringDepositAccount
  getEffectiveInterestRateAsFraction() so maturity is calculated at correct rate (e.g. 7.5%)
  instead of chart slab rate on every event: submit, activate, posting, pre-closure, maturity
- Override getEffectiveInterestRateAsFractionAccrual() in both FD/RD to keep accrual
  consistent with maturity calculation — independent of DB nominalAnnualInterestRate value
- Add isSeniorCitizen and seniorCitizenInterestRate fields to SavingsAccount entity with
  JPA mapping and accessor methods; updateNominalAnnualInterestRate() helper added
- Extend DepositsApiConstants whitelist and SavingsAccountAssembler.applyCbsFields()
  to read and persist senior citizen fields from API request as final override step
- Add DepositAccountAssembler early-stage rate override for senior citizen accounts
- Liquibase migration 2015: add is_senior_citizen and senior_citizen_interest_rate columns
  to m_savings_account table
- Liquibase migration 0300: rename fd_base_interest_rate tables to CBS naming convention
- Update CBS copyright header in FdBaseInterestRateEffective and FdBaseInterestRateSlabHistory

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 20:57:17 +05:30
AdityaandClaude Opus 4.7 5a98a89839 KYC: PAN entity-branch, defensive LincPay parse, family/nominee rules for non-individuals
PAN verify for non-individual clients was sending name="" + dob=null to LincPay because
the code path always read firstname/middlename/lastname (NULL on entities) and
client.dateOfBirth (also NULL on entities). LincPay then returned plain-text "Invalid
DOB format. Required format is dd/MM/yyyy", which Gson can't parse (MalformedJsonException
at line 1 col 10), surfacing as a useless 503. Now ClientKycWritePlatformServiceJpa-
RepositoryImpl.verifyPan branches on LegalForm:
  - PERSON  → name = firstname + middlename + lastname,    dob = client.dateOfBirth
  - ENTITY  → name = client.fullname,                       dob = clientNonPerson.dateOfRegistration
Injected ClientNonPersonRepositoryWrapper for the entity branch.

ClientNonPerson got two missing getters (getConstitution, getDateOfRegistration) needed
by the above plus the family/nominee rules below.

Defensive JSON parse in LincPayKycVerificationServiceImpl: parseJson now returns null
when the body doesn't even start with '{' or '[' (i.e. vendor sent plain text or HTML),
logs the literal body at WARN, and every verify method (PAN, GSTIN, Aadhaar OTP gen,
Aadhaar OTP verify, CIN, DIN) checks for null and returns
  "<X> verification failed — vendor returned non-JSON: <first 200 chars>"
So future vendor outages surface the actual response text instead of a MalformedJson-
Exception with no context.

Non-individual client rules:
- ClientFamilyMembersWritePlatformService: addFamilyMember / addClientFamilyMember /
  updateFamilyMember now refuse with PlatformApiDataValidationException when the client
  is an entity. Family members are an individual-only concept. Delete is intentionally
  unguarded so legacy rows can be cleaned up.
- ClientNomineeWritePlatformService: addNominee / updateNominee refuse for non-individual
  clients UNLESS the constitution normalises to PROPRIETORSHIP (matches both
  "PROPRIETOR SHIP" and "PROPRIETORSHIP"). Proprietorships are operationally individuals
  with a separate trade name, so they keep nominee support; companies / LLPs / trusts /
  societies / HUFs / partnerships don't carry a nomination concept. Delete unguarded.

Verified the LincPay endpoints directly:
  /validate-pan   AQRPV8345E + "Aditya Vyas" + 19/12/1988      → valid (individual)
  /validate-pan   AAMCG5406B + "GIZMOGLADE..." + 01/12/2025    → valid (company)
  /validate-pan   AAMCG5406B + ""             + ""             → "Invalid DOB format" plain text (the failing path)
  /validate-gstn  23AADCL9984A1ZH                              → 200 with full company data
  /validate-gstn  21AAMCG5406BIZ6                              → 400 "Invalid GSTIN pattern" (bad checksum, not our bug)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 18:46:34 +05:30
Aditya d5157ef701 Merge remote-tracking branch 'self-hosted/feature/account-charges' into feature/Backend-DSC-MFA 2026-05-21 16:15:28 +05:30
AdityaandClaude Opus 4.7 c6f130e116 Fix BadSqlGrammarException on GET /clients?status=pending — missing SELECT column
The second schema() builder used by the clients-list query had the JOIN
  left join m_client gc on gc.id = c.guardian_client_id
and the SELECT
  c.guardian_client_id as guardianClientId
but was missing
  gc.display_name as guardianClientDisplayName
which the RowMapper still reads (rs.getString("guardianClientDisplayName")).

Result: PSQLException "The column name guardianClientDisplayName was not found
in this ResultSet" → BadSqlGrammarException → 500 on any client-list pull.

The matching first builder (~line 327) had both columns correctly. Added the
missing SELECT line to keep the pair consistent.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 15:35:59 +05:30
Jaanu423andClaude Sonnet 4.6 9f627bde61 feat: accounts list — active-only filter, date range & as-on-date search (backend)
- SearchParameters: added fromDate, toDate, asOnDate (LocalDate) fields with hasX() helpers
- SavingsAccountsApiResource: added status, fromDate, toDate, asOnDate query params
- SavingsAccountReadPlatformServiceImpl: resolveStatusEnum(), date filters on activatedon_date, default ORDER BY id DESC
- CurrentAccountsApiResource + service: same filters on ca.status_enum and ca.activatedon_date
- DepositAccountReadPlatformService (interface): new retrieveAllPaged overload with date/status params
- DepositAccountReadPlatformServiceImpl: resolveStatusEnum(), date filters, default ORDER BY id DESC for FD/RD
- FixedDepositAccountsApiResource + RecurringDepositAccountsApiResource: pass new params to service

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 13:56:31 +05:30
Jaanu423andClaude Sonnet 4.6 ce0fb18eeb feat: implement full current account transaction write service
- New CurrentAccountTransactionWritePlatformService interface with deposit,
  withdrawal, holdAmount, releaseAmount, undoTransaction, reverseTransaction,
  and adjustTransaction operations
- New CurrentAccountTransactionWritePlatformServiceImpl using m_current_account
  tables directly (not m_savings_account), with GL journal entry posting
- Add holdAmount, releaseAmount, reversal factory methods to CurrentAccountTransaction
- Wire all 7 current account transaction command handlers to new write service
- Fix CurrentAccountTransactionsApiResource template SQL column: currency_multiplesof
- Fix account number search in SearchParameters

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 11:20:30 +05:30
Jaanu423andClaude Sonnet 4.6 b25d5a30d2 feat: FD/RD GL transaction prefixes + savingsAccountNo in journal entry API
- Use FD/RD transaction ID prefixes for Fixed/Recurring Deposit GL entries
  via ThreadLocal context set in Cash/AccrualBasedAccountingProcessorForSavings
- Add depositAccountType to SavingsDTO and pass from SavingsAccount bridge data
- Add savingsAccountNo field to JournalEntryData; populate via LEFT JOIN on
  m_savings_account (SB/FD/RD) and m_current_account (CA prefix) in read query
- Fix JournalEntryMapper MapStruct: ignore savingsAccountNo (SQL-populated)
- Fix JournalEntryRunningBalanceUpdateServiceImpl constructor call (27 params)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 18:26:15 +05:30
Aditya be26ba16c9 Merge remote-tracking branch 'self-hosted/feature/account-charges' into feature/Backend-DSC-MFA
# Conflicts:
#	fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml
2026-05-20 13:26:58 +05:30
AdityaandClaude Opus 4.7 8b4351013e Client uniqueness pre-save check + seed all Indian states & UTs
Pre-save validator (ClientWritePlatformServiceJpaRepositoryImpl.validateClientUniqueness)
rejects duplicate mobile / email / PAN / Aadhaar (masked) / GSTIN before saveAndFlush
and before the LincPay KYC API call. Avoids burning vendor credits on identity-duplicate
records and gives the UI a clean field-level 403 instead of waiting for the DB constraint.

Splits the new repository finders into "create" and "excluding-self" variants so a
nullable Long parameter never reaches PostgreSQL's parser (same bigint <> varchar trap
that broke the family-member POST earlier).

Also seeds the full set of 28 Indian States + 8 UTs as STATE code_values (migration
0297). Previously only MAHARASHTRA / MADHYA_PRADESH / DELHI existed and the names were
UPPER_SNAKE_CASE; the postal PIN-lookup service returns "Madhya Pradesh" so any state
other than Maharashtra/Delhi silently failed to resolve to m_address.state_province_id.
Renames the 3 existing rows in place (preserves their ids/FKs) and inserts the missing
33 with idempotent preConditions.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-20 12:31:54 +05:30
Nitesh YadavandClaude Sonnet 4.6 cc0ccbb461 feat: multi-nominee support, duplicate validation, and FD/RD required fields
Account Creation Enhancements:
- Added multi-nominee support for SB, CA, FD, RD accounts (nominees[] array)
- Backend: saveNomineesIfPresent() validates total share <= 100% before saving
- Added 'nominees' to parameter whitelists (SavingsAccountConstant, DepositsApiConstants)

Duplicate Validation Fixes:
- SB/FD/RD: Fixed duplicate externalId error handler to walk full exception cause
  chain (EclipseLink wraps PSQLException deep) — now matches constraint
  'm_savings_account_external_id_key' and returns proper 400 error
- CA: Added try-catch around both saveAndFlush calls for duplicate externalId
  (constraint: ca_unq_external_id) with throwIfDuplicateExternalId() helper
- CA: Added duplicate product check — blocks creating same product twice for client
- SB/FD/RD: Added JpaSystemException handling via getAllCauseMessages() helper

Current Account (CA) Improvements:
- CurrentAccount entity: added @UniqueConstraint for external_id (ca_unq_external_id)
- CurrentAccountRepository: added countActiveByClientAndProduct() JPQL query
- Liquibase 0298: unique constraint on m_current_account.external_id

FD/RD Required Field Validation (Backend):
- DepositAccountDataValidator: depositPeriod now required for RD (was FD-only)
- DepositAccountDataValidator: mandatoryRecommendedDepositAmount now notNull+positive for RD
- DepositAccountDataValidator: customerSegment now required (notBlank) for both FD and RD

Liquibase Migrations:
- 0297: fix unique nominee per account constraint
- 0298: unique external_id on m_current_account
- 2014: add is_mandatory column to m_savings_account_joint_holders

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 08:00:00 +05:30
Nitesh Yadav 9d67afec3e merege code feature/Backend-MFA-Product 2026-05-19 10:50:25 +05:30
Nitesh Yadav f93a08c6b3 updade code based on the accounting deatils search 2026-05-19 10:34:52 +05:30
AdityaandClaude Opus 4.7 026e5fb875 Fix family-member POST: null JPQL param caused bigint <> varchar SQL error
The relationship-uniqueness query used (:excludeId IS NULL OR fm.id <> :excludeId).
On create, excludeId is null and PostgreSQL parses the parameter as varchar before
the IS NULL branch can short-circuit, so adding a family member returned 403 with
"operator does not exist: bigint <> character varying". Split into two queries so
neither has a nullable Long parameter.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 09:40:14 +05:30
Nitesh Yadav 390bded7ef rd and fd account active code update 2026-05-18 15:16:25 +05:30
Nitesh Yadav d0c8be4ee9 charges add module add in the saving account and current account 2026-05-16 21:20:30 +05:30
Aditya 28fa6d9615 Merge feature/Backend-DSC-MFA into feature/merge_update_code
Brings TOTP / Google Authenticator MFA factor (device mapping at
/v1/mfa/totp/setup + /verify, login via existing twofactor pipeline),
DSC-2FA login UI fix, Individual-only filter on guardian/nominee/family
link pickers, Title Case normalization on client names, and migration
0296 unique nominee per account type.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

# Conflicts:
#	.claude/settings.local.json
#	fineract-provider/logs/fineract.log
2026-05-15 17:54:49 +05:30
AdityaandClaude Opus 4.7 45a041b023 Add Google Authenticator (TOTP) as MFA factor: device mapping + login
Backend:
- New dependency dev.samstevens.totp:totp:1.7.1 (bundles ZXing for QR PNG).
- TotpService: secret/QR/otpauth-URL/verify primitives. SHA1, 6 digits, 30s —
  the standard combo every consumer authenticator app accepts unconfigured.
  Issuer label is configurable via FINERACT_MFA_TOTP_ISSUER, defaults to
  "CBSnexora".
- Two-step device mapping driven by TotpEnrollmentService:
  * POST /v1/mfa/totp/setup  — generate secret, upsert m_user_mfa_factor row
    as factor_type=TOTP/verified=false, return {secret, qrDataUri, otpAuthUrl,
    issuer, factorId}. Refuses to overwrite an already-verified-and-active
    factor so an accidental click can't unbind the user's working device.
  * POST /v1/mfa/totp/verify — body {code}; verify against the stored secret
    and flip verified=true on success.
- Login wiring in MfaFactorBackedTwoFactorServiceImpl:
  * getDeliveryMethodsForUser surfaces verified TOTP factors as
    {name:"totp", target:"Google Authenticator"} so the picker offers it
    alongside SMS/EMAIL.
  * createNewOTPToken("totp") creates a no-op OTPRequest (no LincPay/SMTP
    round-trip) carrying the factor id in the token field so validate can
    look up the secret.
  * createAccessTokenFromOTP branches on channel — TOTP path verifies code
    vs factor.secret with totp library (sliding 1-step window) and mints
    a TFAccessToken with the same lifetime + extended-token logic as OTP.
  * Defence-in-depth: re-checks at validate time that the factor still
    belongs to the user, is verified, and not disabled.
- TwoFactorConstants.TOTP_DELIVERY_METHOD_NAME = "totp".
- SecurityConfig: /api/*/mfa/totp/** is fullyAuthenticated() (exempt from
  the TFA gate so users can enrol before they can satisfy 2FA).

UI changes pending (see chat): add a "Google Authenticator" tile on the
MFA Factors settings page that calls /setup → shows QR + secret → calls
/verify; extend two-factor-authentication.component.ts iconFor() and copy
for the new "totp" delivery method. Existing requestOTP / validateOTP
pipeline handles the login flow transparently.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 17:41:55 +05:30
Nitesh Yadav 4eeee03f24 fixed error nominee add error 2026-05-15 16:09:13 +05:30
Nitesh Yadav 001a79e35e merge code feature/Backend-DSC-MFA this branch date 15-05-2026 2026-05-15 13:08:15 +05:30
Nitesh Yadav 7e0fe99ea6 nominee facility added code update 2026-05-15 12:59:57 +05:30
AdityaandClaude Opus 4.7 6558ea6998 DSC-2FA login fix + Individual-only link pickers + Title Case names
- DSC-as-2FA login: UI's claimAndValidate() now calls a new
  AuthenticationService.applyTwoFactorToken(token, liveSeconds) instead of
  validateOTP(). The /v1/login/dsc/{rn}/claim response is already a minted
  TFAccessToken — POSTing it to /twofactor/validate fails because that path
  expects an in-memory OTPRequest. applyTwoFactorToken runs only the
  post-success bookkeeping (interceptor.setTwoFactorAccessToken, setCredentials,
  Authentication Success alert that drives router.navigate(['/']), and
  sessionStorage persist of {token, validFrom, validTo}). Fixes the
  OTPTokenInvalidException users hit after a successful DSC verify+claim.

- Individual-only filter for link-client pickers: ClientTextSearch gains a
  legalFormType field; SearchingClientRepository accepts an Integer legalForm
  value and adds cb.equal(r.get("legalForm"), ...) to the spec.
  ClientSearchService.parseLegalForm tolerates INDIVIDUAL/PERSON/1 and
  NON_INDIVIDUAL/ENTITY/2; unknown = no filter so a typo doesn't blank results.
  UI: clients.service.ts searchByText gains a 7th optional arg; six link
  pickers (guardian, nominee, family-member across create flow and post-create
  tabs) now pass 'INDIVIDUAL'. General client list and signatory picker are
  intentionally unchanged.

- Title-case client names on persistence: ClientWritePlatformServiceJpa
  RepositoryImpl now runs first/middle/last/full name fields through
  toTitleCase() on both create and update paths. "aditya kumar vyas",
  "ADITYA KUMAR VYAS", "Aditya Kumar Vyas" all persist as "Aditya Kumar Vyas".
  Whitespace-split title case; preserves hyphens/apostrophes inside words
  without re-capitalising after them so clerks verifying against ID documents
  see predictable output.

- Migration 0296: unique constraint to prevent duplicate nominee per account
  type (the underlying repository + service changes also persisted in this
  commit complete the enforcement path).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 11:50:04 +05:30
AdityaandClaude Opus 4.7 e1d7db9b7c DSC as first-class MFA factor + branded helper UI
- m_user_mfa_factor is now the single 2FA gate. DSC enroll callback writes a
  factor row (factor_type=DSC), revoke flips disabled_on when the last cert
  goes. AuthenticationApiResource and TwoFactorAuthenticationFilter drop the
  direct m_bank_user_dsc check so disabling from the UI actually stops the
  challenge at login.
- SecurityConfig exempts /api/*/dsc/** and /api/*/mfa/factors from the
  TWOFACTOR_AUTHENTICATED gate. Without this a user with a verified factor
  can't manage their own factors after they break the device.
- MfaFactorType gains a DSC enum value; SelfUserMfaFactorServiceImpl error
  message lists it.
- dsc-helper: CBSnexora-branded header (logo, title, subtitle, accent palette),
  8-column cert table (Holder Name, Alias, Organisation, DSC Type, Serial,
  Issuer, Valid From, Expires), LdapName-based DN parsing, sign+verify proof-
  of-possession that picks SHA256withRSA / SHA256withECDSA from the key's own
  algorithm (works on RSA, RSA Signing-only, EC), pattern-matched JNLP age
  check, dscType JNLP-arg override with KeyUsage fallback.
- generate-test-dsc.ps1 produces a realistic self-signed DSC with strong key
  protection so dev testing sees real CN/O values and a PIN prompt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 18:05:12 +05:30
Nitesh Yadav 167079c2d7 merege code feature/Backend-DSC-MFA branch 2026-05-12 12:48:43 +05:30
Nitesh Yadav 30bbd6d0af fixed error db migration and rd product edit error fixed 2026-05-12 11:32:13 +05:30
LincPay ac9eb24e43 Update fineract-provider/src/main/resources/application.properties 2026-05-12 11:20:34 +05:30
AdityaandClaude Opus 4.7 8284851f67 Add DSC-based MFA: enrollment, login factor, JWS helper, tenant-scoped serving
Backend:
- m_bank_user_dsc + m_dsc_challenge tables (Liquibase 0292/0293/0294)
- DSC enrollment flow: start → JNLP → JWS helper → callback → upsert
- DSC login factor: challenge → sign → verify → claim minted TFA token
- 2FA gate now also accepts an active DSC mapping (AuthenticationApiResource
  + TwoFactorAuthenticationFilter), defensively wrapped so a missing DSC table
  doesn't 500 the auth path
- TenantAwareBasicAuthenticationFilter exempts /api/v*/dsc/helper.jar and
  strips Authorization header for that path so JWS's raw GET works without
  the user seeing a browser Basic-auth prompt
- DSC helper JAR served at /api/v*/dsc/helper.jar from a configurable
  filesystem path (default ~/.cbsnexora/dsc-helper.jar)

Java helper JAR (dsc-helper/):
- Standalone Gradle subproject, Java 8 target, fat jar with Gson shaded in
- Cross-platform token picker (Windows Cert Store / ePass2003 / eToken /
  ProxKey / Other) — matches the JNLP arg contract emitted by the backend
- Sets Fineract-Platform-TenantId on its callback POST from the JNLP args
- JNLP age check now reads cbsnexora-dsc.jnlp (current name) AND
  SignTender.jnlp (legacy) — picks the youngest, never blocks if none exist

Inline KYC upsert in updateClient (mirror of the create-flow path):
- ClientKycWritePlatformService.upsertKycInline() — creates or merges KYC
  fields, bumps status to IN_PROGRESS on real changes; resets PAN verification
  on PAN edit of a verified record
- ClientWritePlatformServiceJpaRepositoryImpl.updateClient() handles the
  kyc:{} sub-object on PUT /clients/{id}, matching createClient

User uniqueness:
- m_appuser.email + m_appuser.mobile_no UNIQUE (Liquibase 0295)
- Pre-flight assertEmailAndMobileUnique() in create/update with self-exclusion
- handleDataIntegrityIssues maps the two new constraints to clean
  field-scoped error messages (race-condition safety net)

Email OTP subject line now: "Your OTP for Login - <AppName> (dd-MM-yy-HH:mm)"
where AppName comes from fineract.email.from-name (default "CBSnexora").

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 11:13:19 +05:30
Nitesh Yadav 6544ad3cbc update application properties file 2026-05-11 12:47:02 +05:30
LincPay a8aa941ed5 Update fineract-provider/src/main/resources/application.properties 2026-05-11 12:30:53 +05:30
Nitesh Yadav 6b65bdc8ce merge feature/update_code and feature/Backend-MFA-Product branch code 2026-05-11 10:44:57 +05:30
AdityaandClaude Opus 4.7 5e3212dc54 Add MFA backend: SMS/email OTP, factor management, OTP audit log
- Login 2FA via @Primary MfaFactorBackedTwoFactorServiceImpl (replaces legacy)
- LincPay SMS OTP and SMTP email OTP with auto-promote to m_user_mfa_factor
- Reusable EmailSenderService + EmailTemplateService (CBSnexora branding)
- Admin OTP audit viewer (GET /v1/otp-logs) with paging, search, masking
- Self-service MFA factor API at /v1/mfa/factors
- READ_OTP_LOG permission + OTP Log Auditor role + bankadmin direct grant
- JsonAuthenticationEntryPoint suppresses Basic-auth popup for SPA paths
- TwoFactorAuthenticationFilter grants TWOFACTOR_AUTHENTICATED when no challenge
- Soft-delete + audit columns + deletion audit + version on client tables
- CIF number generator (TTYYYYNNNNNN format)
- DocumentNotFoundExceptionMapper to silence noisy WARN logs on missing images
- Liquibase migrations 0278-0291 (MFA, OTP log, audit/soft-delete, role wiring)

Note: application.properties intentionally not committed — contains local DB
and Gmail App Password fallbacks. Set SPRING_MAIL_PASSWORD,
FINERACT_DEFAULT_TENANTDB_PWD, FINERACT_HIKARI_PASSWORD as env vars in prod.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 13:19:10 +05:30
Nitesh Yadav fbc6fcdcc1 rd and fd product and account code update 2026-05-08 15:55:22 +05:30
Nitesh Yadav 44878377d8 rd account and rd product code update 2026-05-08 13:09:07 +05:30
Nitesh Yadav f1535a40c8 fd account complete mddule 2026-05-07 17:19:34 +05:30
Nitesh Yadav 407d567175 update fd account 2026-05-07 10:56:29 +05:30
Nitesh Yadav 4735111a4f fd product releated update code 2026-05-05 15:18:35 +05:30
Nitesh Yadav 0bbf2faa3e fixed some error releated product code 2026-05-01 11:33:07 +05:30
Nitesh Yadav a5fc407cd5 feat: merge feature/merge-updates into feature/reports-products 2026-05-01 10:51:55 +05:30
Nitesh Yadav be220d8778 rd account save api update 2026-04-30 16:12:17 +05:30
Nitesh YadavandClaude Sonnet 4.6 045437fcb8 rd account: add CBS fields to validator whitelist, make mandatoryRecommendedDepositAmount optional
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 13:51:19 +05:30
Aditya c51a36b4e9 Merge remote-tracking branch 'self-hosted/feature/merge-updates' into feature/reports-products
# Conflicts:
#	fineract-provider/src/main/resources/db/changelog/tenant/changelog-tenant.xml
2026-04-29 19:23:21 +05:30
Nitesh Yadav 766f838c32 current account save api update 2026-04-29 18:09:25 +05:30
Nitesh Yadav 15fa25f463 current account save api update 2026-04-29 18:07:37 +05:30
Nitesh Yadav 2a9bd85ef2 current account saving account ,rd account code udpate 2026-04-29 15:30:36 +05:30
Nitesh Yadav a7965f8792 current account save api update 2026-04-29 15:18:45 +05:30
AdityaandClaude Opus 4.6 43b1e1da33 Add CKYC Reports & Dashboard API module
- GET /ckyc/reports/summary — KPI cards (total, gender split, missing PAN/Aadhaar, dup mobile)
- GET /ckyc/reports/state-distribution — donut chart by state
- GET /ckyc/reports/branch-distribution — top-N branches bar chart
- GET /ckyc/reports/upload-trend — daily upload line chart
- GET /ckyc/customers — paginated, filterable customer list
- GET /ckyc/customers/search — search by name/mobile/pan/cif (capped 50)
- GET /ckyc/customers/{cif} — customer detail with addresses
- GET /ckyc/customers/export — CSV/TXT (pipe-delimited CERSAI format)
- POST /ckyc/files — parse inbound CKYC .txt file
- GET /ckyc/files — list historical uploads
- POST /ckyc/files/generate — generate outbound submission file
- GET /ckyc/branches, /states, /codes/id-types — master data
- Migration 0259: performance indexes on m_client_kyc and m_client
- Postman collection with all endpoints

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 16:25:41 +05:30
Nitesh Yadav cbdcee690d saving account save api update 2026-04-28 14:59:55 +05:30
Nitesh Yadav dc4a720ae2 feat: update savings product backend changes 2026-04-28 13:12:27 +05:30
AdityaandClaude Opus 4.6 9fb43ad971 Add Education Level, Degree, Religion, Social Category & Income fields to Client module
- Migration 0256: EducationLevel & DegreeQualification codes with m_client FK columns
- Migration 0257: Religion & SocialCategory codes with m_client FK columns
- Migration 0258: agriculture_income & non_agriculture_income decimal columns on m_client
- Full API support: create, update, template options, and GET response for all new fields
- Postman collection for testing all new dropdowns

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-27 16:31:55 +05:30
Nitesh YadavandClaude Sonnet 4.6 72adbf6305 add accountTypeOptions and customerSegmentOptions to savings/current/RD account templates
- Added accountTypeOptions and customerSegmentOptions fields to SavingsAccountData and RecurringDepositAccountData
- Added CodeValueReadPlatformService to SavingsAccountTemplateReadPlatformServiceImpl, CurrentAccountTemplateReadPlatformServiceImpl, and DepositAccountReadPlatformServiceImpl to fetch options from code values
- Added options to SAVINGS_ACCOUNT_RESPONSE_DATA_PARAMETERS and RD response parameters
- Updated SavingsConfiguration bean factory methods to pass new CodeValueReadPlatformService dependency
- Added validCheckSum for modified Liquibase changeset 0272
- Fixed AccountNumberGeneratorTest constructor to include GLAccountRepository and SavingsProductRepository

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 15:39:58 +05:30
Nitesh Yadav 53ba465160 update code current account ,saving account and rd account 2026-04-27 11:12:33 +05:30
Nitesh Yadav 6ffcfff48e some changes only 2026-04-27 10:57:00 +05:30
Nitesh Yadav 159633f59a add gl mapping in the saving product,current product,rd product and also add genrate account no all three 2026-04-26 02:02:56 +05:30
Nitesh Yadav efb0511725 update account code current,saving and RD 2026-04-24 16:14:13 +05:30
Nitesh Yadav 0303c07ac4 saving , current and RD account code update 2026-04-23 11:20:35 +05:30
Nitesh Yadav 691a3fc471 saving , current and RD account code update 2026-04-22 18:15:46 +05:30
Nitesh Yadav 05c5adb034 update code saving product add on client 2026-04-21 17:30:57 +05:30
Nitesh Yadav 98dd941712 some update logic update on showing option 2026-04-21 13:19:19 +05:30
Nitesh Yadav 47af139443 merging code 2026-04-20 15:26:56 +05:30
Nitesh Yadav 304f694387 merging code 2026-04-20 14:51:57 +05:30
Nitesh Yadav 800e114a4d update RD Prodcut code 2026-04-20 12:51:35 +05:30
AdityaandClaude Opus 4.6 b4429d04b0 Add Client CKYC backend module with all source, migrations, and static resources
Includes CKYC batch processing, KYC proof types, non-CKYC client APIs,
ReKYC handler, SFTP upload service, and DB migrations (0250-0255).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 13:42:21 +05:30
Nitesh Yadav 2facd3744d update current product code and RD code 2026-04-15 20:34:12 +05:30
Nitesh Yadav d7821c7824 update saving product code 2026-04-13 13:26:33 +05:30
AdityaandClaude Opus 4.6 011239f399 Fix KYC update on verified records and client address duplication
- Allow KYC updates on VERIFIED records with mandatory remarks for audit trail;
  reset PAN verification when PAN number changes, moving status to IN_PROGRESS
- Fix client address duplicates: deactivate old addresses of same type on
  create/update, persist isActive flag (missing save), filter reads by is_active

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 15:00:37 +05:30
AdityaandClaude Opus 4.6 87e132f93d Add extended fields to ClientNonPersonDetails: authorizedSignatory, additionalInfo, dateOfRegistration
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 15:06:45 +05:30
AdityaandClaude Opus 4.6 90c21d40c1 Add CIF number, Occupation Category & Occupation fields to Client module
- Added mandatory unique CIF number (auto-generated as CIF+padded ID)
- Added Occupation Category dropdown (6 categories: Salaried, Business, Professional, Agriculture, Student, Others)
- Added Occupation dropdown (54 occupations mapped to categories)
- Both stored in m_code/m_code_value tables (same pattern as Gender)
- Visible in client create/update API and personal data view
- Includes Liquibase migrations 0227 & 0228
- Added Postman collection for User Management APIs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 18:51:26 +05:30
AdityaandClaude Opus 4.6 ba5365d4af Add all CBS custom modules: KYC, Sanctions, RBI Feed, OpenProject, Mobile Lookup, Charges, Avro schemas
Includes all prior work not yet committed on this branch:
- KYC module (LincPay eKYC: PAN, Aadhaar OTP, GSTIN verification)
- Sanctions screening (UN Security Council consolidated list)
- RBI Feed integration with scheduled jobs
- OpenProject API integration
- Mobile lookup service
- Charge module enhancements (current account support)
- Client family member nominee fields
- Avro schema updates
- Liquibase migrations 0216-0224
- Postman collections for OpenProject, RBI Feeds, Sanctions
- SQL seed scripts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 17:54:10 +05:30
AdityaandClaude Opus 4.6 78f37257a7 Add CFCFRMS (MHA/I4C) Bank API and Simulator module
CFCFRMS integration for cyber fraud complaint management:
- Bank-side: complaint CRUD, lien/freeze/resolve actions, escalation, audit trail, dashboard stats
- Simulator (I4C/MHA): push complaints, hold directives, bulk push, receive updates/escalations, account/transaction verification, bank performance metrics
- Domain: ComplaintTicket, ComplaintAuditLog, CfcfrmsSimulatorLog entities
- Liquibase 0226: 3 tables (MySQL+PostgreSQL), indexes, permissions
- Seed data: 13 realistic complaint tickets + 5 simulator log entries
- JAX-RS endpoints at /v1/cfcfrms/complaints/* and /v1/simulator/cfcfrms/*
- Full Swagger @Operation annotations

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 17:49:54 +05:30
AdityaandClaude Opus 4.6 6a464291d5 Add Current Account module mirroring Savings Account infrastructure
- CurrentAccount entity (@DiscriminatorValue 400) extending SavingsAccount
- 4 JAX-RS API resources: /v1/currentaccounts, /v1/currentproducts, transactions, charges
- 38 command handlers delegating to existing savings services
- ~35 CommandWrapperBuilder methods for current account commands
- DB migration 0225 with 67 permissions (CURRENTACCOUNT, CURRENTPRODUCT, CURRENTACCOUNTCHARGE)
- DepositsApiConstants and DepositAccountType enum updated for CURRENT_DEPOSIT

Reuses existing m_savings_account table (deposit_type_enum=400), GL accounting,
interest calculation, and all savings write/read services — no code duplication.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 18:16:36 +05:30
Peter KovacsandAdam Saghy 5d4f57912d FINERACT-2326: Fix buydown fee amounts missing from Transaction Summary Reports - E2E tests 2026-02-24 12:49:34 +00:00
Oleksii NovikovandAdam Saghy 7b545beb16 FINERACT-2326: Fix buydown fee amounts missing from Transaction Summary Reports 2026-02-24 12:49:34 +00:00
Adam Saghy a656dbde18 FINERACT-2421: Upgrade tomcat version 2026-02-23 17:53:25 +00:00
Attila BudaiandAdam Saghy 2047553366 FINERACT-2081: add api verification workflow 2026-02-23 15:43:14 +00:00
Adam Saghy 4a02c26059 FINERACT-2421: Fix flaky guarantor test 2026-02-23 13:16:54 +00:00
Soma SörösandAdam Saghy 93f5292bc3 FINERACT-2418: [REPORTING] Update "Transaction Summary Report" and "Trial Balance Report" with originator details 2026-02-23 10:52:23 +00:00
MarianaDmytrivBinariksandAdam Saghy 47710e161b FINERACT-2413: added e2e tests for re-amortization with equal interest split accruals handling 2026-02-23 10:10:38 +00:00
Soma SörösandAdam Saghy fb43706e6c FINERACT-2413: Re-amortization:- Accrual and Accrual Activity handling - Equal outstanding interest split 2026-02-23 10:10:38 +00:00
Soma SörösandAdam Saghy c7b4fc5404 FINERACT-2413: Re-amortization:- Accrual and Accrual Activity handling - Equal outstanding interest split e2e tests 2026-02-23 10:10:38 +00:00
yuwatidoraandAleksandar Vidakovic 701cfae60b FINERACT 2289: New command processing - Working Days
command base test fix
2026-02-20 21:39:41 +01:00
Adam Saghy ce3c9cc297 FINERACT-2421: Disable wrong guarantor test case temporarily 2026-02-20 12:54:55 +00:00
Ralph HopmanandAdam Saghy 76d108953b FINERACT-2498: Add GROUP as a Guarantor Type to Support Group Savings Accounts as Loan Collateral 2026-02-20 11:44:46 +00:00
Mend RenovateandAdam Saghy 55c51b140e FINERACT-2181: Update actions/setup-node digest to 49933ea 2026-02-20 11:31:22 +00:00
Aleksandar VidakovicandAdam Saghy 84fbb9d688 FINERACT-2421: fix breaking commmand persistence test 2026-02-20 10:51:59 +00:00
DeathGun44andAdam Saghy 045e3fe6ab FINERACT-2449: Replace unbounded SimpleAsyncTaskExecutor with ThreadPoolTaskExecutor 2026-02-20 09:22:35 +00:00
Jose Alberto HernandezandAdam Saghy 9c9c90d2af FINERACT-2421: Loan repayment transaction template with overpaid loan 2026-02-19 16:25:22 +00:00
Ralph HopmanandAdam Saghy 4467f91382 FINERACT-2496: Add Batch API Support for Creating Savings Account Charges 2026-02-19 11:33:27 +00:00
DeathGun44andAdam Saghy 3c2c60dee5 FINERACT-2495: Fix signed commits check to use PR head SHA instead of merge ref
Signed-off-by: DeathGun44 <krishnamewara841@gmail.com>
2026-02-19 11:32:45 +00:00
dependabot[bot]andAdam Saghy 57d2eba6e7 Bump actions/stale from 10.1.1 to 10.2.0
Bumps [actions/stale](https://github.com/actions/stale) from 10.1.1 to 10.2.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/997185467fa4f803885201cee163a9f38240193d...b5d41d4e1d5dceea10e7104786b73624c18a190f)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: 10.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-19 11:30:43 +00:00
Ralph HopmanandAdam Saghy 17c2febcac FINERACT-2492: AprCalculator produces incorrect annual interest rate when DaysInYearType is ACTUAL with WHOLE_TERM frequency 2026-02-19 11:30:28 +00:00
airajenaandAdam Saghy 41da36b1f4 FINERACT-2028: Add audit logging for manual scheduler job execution 2026-02-19 11:25:49 +00:00
airajenaandAdam Saghy 296cf902b9 FINERACT-1878: Separate profile image paths for staff and clients 2026-02-19 11:25:22 +00:00
Satish11012007andAdam Saghy 89487a8ace FINERACT-1266: Fix potential NPE in determineInterestPostingPeriods 2026-02-19 11:23:42 +00:00
Wilfred KigenyiandAdam Saghy c9a41794e8 FINERACT-2457: Share transaction chronological validation incorrectly blocks new transactions based on rejected/reversed transactions 2026-02-19 11:15:28 +00:00
Mend RenovateandAdam Saghy fcc3da2515 FINERACT-2181: Update postgres Docker tag to v18 2026-02-19 11:15:03 +00:00
DeathGun44andAdam Saghy ca3e980543 FINERACT-2003: Enforce password reset on first login
:wq
2026-02-19 11:14:17 +00:00
Mend RenovateandAdam Saghy 8b92beb473 FINERACT-2181: Update actions/checkout digest to 93cb6ef 2026-02-19 11:08:01 +00:00
dependabot[bot]andArnold Gálovics 6c54b4bca6 Bump gradle/actions from 5.0.0 to 5.0.1
Bumps [gradle/actions](https://github.com/gradle/actions) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](https://github.com/gradle/actions/compare/v5...v5.0.1)

---
updated-dependencies:
- dependency-name: gradle/actions
  dependency-version: 5.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-19 10:21:10 +01:00
Aleksandar VidakovicandAleksandar Vidakovic ae3e2a6343 FINERACT-2245: New command processing - mix taxonomy 2026-02-18 20:26:51 +01:00
Dhananjay BhagatandAdam Saghy fe98aa6a58 FINERACT-2489: Fix NPE for missing charts in Recurring Deposit Product 2026-02-18 16:18:51 +00:00
Rustam ZeinalovandAdam Saghy 85bd81b6ae FINERACT-2421: added e2e tests to validate issues with interest from overdue balance corrections on model 2026-02-18 16:15:19 +00:00
Oleksii NovikovandAdam Saghy e65257835b FINERACT-2421: Fix phantom interest from overdue balance corrections on model 2026-02-18 16:15:19 +00:00
Adam Monsen e2fa9e9762 FINERACT-2458: move DPG badge alongside others
It looked odd having the badge and text above the first H1 heading.

see also: https://github.com/apache/fineract/pull/5404
2026-02-18 07:41:00 -08:00
Ashhar Ahmad KhanandAdam Saghy a8ba79d19a FINERACT-2468: Fix datatable operations in PostgreSQL non-public schemas
Use current_schema instead of hardcoded 'public' in getTableIndexes()
and isTablePresent() methods to support multi-tenant PostgreSQL
deployments where datatables reside in tenant-specific schemas.

This fixes:
- GET /datatables returning 404 for new datatables
- Datatable save operations failing with 'Datatable not found'

Root cause: Index metadata queries were looking in 'public' schema
while table columns query correctly used current_schema, causing
inconsistent behavior in GenericDataServiceImpl.

Changes:
- PostgreSQLQueryService.getTableIndexes(): Use current_schema
- PostgreSQLQueryService.isTablePresent(): Use current_schema

Testing:
- All unit tests pass (93/93 in fineract-core)
- Manual PostgreSQL verification confirms fix works correctly
2026-02-18 15:38:50 +00:00
AmbikaandAdam Monsen 5cd6b718ed FINERACT-2458: Add DPG verified badge to main README 2026-02-18 07:28:56 -08:00
Adam Saghy 41cf451e13 FINERACT-2455: Add Working Capital Loan module 2026-02-18 15:19:56 +00:00
DeathGun44andAdam Saghy 2a2ce6e0a6 FINERACT-2116: Add validation integration tests for Credit Bureau Configuration APIs
Signed-off-by: DeathGun44 <krishnamewara841@gmail.com>
2026-02-18 15:19:39 +00:00
Aleksandar VidakovicandGitHub 3a842ecb9a FINERACT-2243: New command processing - payment type (#5506) 2026-02-18 08:19:29 -06:00
Oleksii NovikovandAdam Saghy 020754bad4 FINERACT-2421: Retry external asset owner creation in case of unique constraint violation 2026-02-18 12:11:02 +00:00
MarianaDmytrivBinariksandAdam Saghy da85c069b7 FINERACT-2421: e2e tests for pay-off with 2nd disbursement with downpayment 2026-02-18 11:01:35 +00:00
mariiaKraievskaandAdam Saghy 2634e54fdd FINERACT-2421: Pay-off amount incorrectly calculated if the loan has more than one downpayment 2026-02-18 11:01:35 +00:00
Attila BudaiandAdam Saghy 115063b89e FINERACT-2466: fix trial balance report
Signed-off-by: Attila Budai <budai.attila.istvan@gmail.com>
2026-02-18 10:17:17 +00:00
Víctor RomeroandAdam Saghy 9ebaf46b6a Restore mifos-fineract-client-publish.yml
Restore mifos-fineract-client-publish.yml it is used by another Mifos Community Projects
2026-02-18 10:17:17 +00:00
MarianaDmytrivBinariksandAdam Saghy 6f55ce1a4f FINERACT-2418: e2e test scenarios for disbursal and reage events with changed terms flag 2026-02-18 09:27:59 +00:00
Oleksii NovikovandAdam Saghy 1feb1d730f FINERACT-2418: Extend disbursal and reage events with changed terms flag 2026-02-18 09:27:59 +00:00
mariiaKraievskaandAdam Saghy 136a966fc3 FINERACT-2421: Fix undo repayment with linked chargeback error 2026-02-18 09:21:05 +00:00
Prakash M SandAdam Saghy 9ca717ffd2 Added empty Line after Class name to pass spotlessJavaCheck 2026-02-18 09:11:08 +00:00
Prakash M SandAdam Saghy b0ec0a667c Removed Trailing spaces in empty lines 2026-02-18 09:11:08 +00:00
Prakash M SandAdam Saghy 2c008e0e65 Aligned formatting with Spotless requirements 2026-02-18 09:11:08 +00:00
Prakash M SandAdam Saghy 8e376c097a Add unit test for SavingsHelper to handle null posting type 2026-02-18 09:11:08 +00:00
Prakash M SandAdam Saghy 2f17c20dfd Add null check for postingPeriodType in SavingsHelper 2026-02-18 09:11:08 +00:00
Abdelrahman MostafaandAdam Saghy 92f8b3d0d4 FINERACT-2491: Refactor SavingsEnumerations to use switch expression 2026-02-17 14:11:32 +00:00
airajenaandAleksandar Vidakovic e4e0082872 FINERACT-1956: Add Antora skeleton structure and consolidate contributor guides 2026-02-17 14:12:25 +01:00
Attila BudaiandArnold Gálovics 3e98cf791a FINERACT-2421: fix loan accrual posts after loan close 2026-02-17 13:31:09 +01:00
airajenaandAdam Saghy 2ee6f22713 FINERACT-2050: Fix client transfer loan status staying in TRANSFER_IN_PROGRESS 2026-02-17 12:06:12 +00:00
airajenaandAdam Saghy 7daf4b8a84 FINERACT-2005: Prohibit password re-use with configurable global setting 2026-02-17 11:57:28 +00:00
054d18b020 FINERACT-2461: Replace SQL string concatenation with parameterized queries
Fix ~30 SQL injection vulnerabilities across datatable services by
replacing string concatenation with JDBC parameterized queries (?).

Files changed:
- DatatableWriteServiceImpl: parameterized DELETE, INSERT, SELECT queries
- DatatableUtil: parameterized dataScopedSQL, office join conditions
- GenericDataService/Impl: added parameterized fillResultsetRowData overload
- DatatableReadServiceImpl: parameterized countDatatableEntries
- WriteSurveyServiceImpl: removed duplicate vulnerable getPermissionSql
- DepositAccountReadPlatformServiceImpl: added pagination validation

Tests added:
- DatatableUtilTest: 11 tests for parameterized dataScopedSQL and joins
- DatatableWriteServiceImplTest: 7 tests for parameterized CRUD queries
- DatatableReadServiceImplCountTest: 1 test for parameterized count query

Do good with AI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 11:51:55 +00:00
Rustam ZeinalovandAdam Saghy 87e328e9e7 FINERACT-2418: added e2e test covering loan origination feature 2026-02-17 11:12:52 +00:00
edk12564andAdam Saghy 588b831f8f FINERACT-176: fixed missing throw exception in Teller module
- Fixed missing throw exception for validation errors in Teller Module
- added unit tests to confirm changes to TellerCommandFromApiJsonDeserializer

ReportedBy: subramanyasn
2026-02-17 10:37:06 +00:00
Aleksandar VidakovicandAleksandar Vidakovic 2ff0c62f40 FINERACT-2246: New command processing - document management 2026-02-16 14:56:40 +01:00
Ralph HopmanandGitHub 8a61e30a45 FINERACT-2486: Fix guarantor endpoint returning savingsAccount.id=0 for group savings (#5482) 2026-02-14 16:16:06 -06:00
Ralph HopmanandGitHub 05662e64d5 FINERACT-2473: Add available balance to group accounts endpoint (#5468) 2026-02-14 16:15:34 -06:00
Dhananjay BhagatandGitHub 0ea65d820d FINERACT-2487: Add interestPostingPeriodType to mandatory fields in Recurring Deposit Product API docs (#5488) 2026-02-14 13:13:48 -06:00
Ralph HopmanandGitHub 8a795e83c7 FINERACT-2490: Add status field to StandingInstructionData serialization (#5493) 2026-02-14 13:05:54 -06:00
Ralph HopmanandGitHub 4bb5c02b19 FINERACT-2488: Fix duplicate results in /api/v2/clients/search (#5485) 2026-02-14 13:05:13 -06:00
Ralph HopmanandArnold Gálovics 176d510384 FINERACT-2483: Add Lombok usage guidelines to CONTRIBUTING.md 2026-02-14 13:37:33 +01:00
Ralph HopmanandArnold Gálovics 9a69cc4826 FINERACT-2482: On-hold transactions API returns empty results for group savings accounts 2026-02-14 13:36:24 +01:00
Adam SaghyandSoma Sörös 6269cbbb79 FINERACT-2421: Allow ProgressiveLoanInterestScheduleModel recalculation
Co-authored-by: Soma Sörös <soma.soros@dpc.hu>
2026-02-13 14:58:37 +01:00
saifulhuq01andAdam Saghy a8fb5e7826 FINERACT-2464: Refactor LoanScheduleAssembler logic extraction 2026-02-13 09:52:33 +01:00
Adam Saghy 01911c41c4 FINERACT-2421: Skip testcontainer tests if docker is not available 2026-02-12 23:03:59 +01:00
Jose Alberto HernandezandAleksandar Vidakovic 8d560a1f7c FINERACT-2332: SavingCOB infrastructure 2026-02-12 14:02:18 +01:00
Jose Alberto HernandezandAleksandar Vidakovic 356dd07ca0 FINERACT-1932: Fineract modularization - fineract-security 2026-02-12 14:01:38 +01:00
mariiaKraievskaandAdam Saghy f504281067 FINERACT-2465: Send a loan account business event during charge-off 2026-02-12 13:44:34 +01:00
Rustam ZeinalovandAdam Saghy badc2594dd FINERACT-2421: Updated e2e test covering External Asset Owner creation 2026-02-12 10:58:24 +01:00
Jose Alberto HernandezandAdam Saghy 955222ee82 FINERACT-2421: External Asset Owner create api 2026-02-12 10:58:24 +01:00
nidhiii128andAdam Saghy 6875645825 FINERACT-2474: Add Unit Tests for ClientReadPlatformServiceImpl 2026-02-11 12:26:11 +01:00
Aman MittalandAdam Saghy b009c4b184 FINERACT-2421: Refractor - remove ApiResponses annotations (Phase 8) 2026-02-11 12:03:36 +01:00
Aman MittalandAdam Saghy cfa87a0bb2 FINERACT-2421: Bump - org.assertj:assertj-core CVE-2026-24400 2026-02-11 12:02:35 +01:00
DeathGun44andAdam Saghy 76d4216f0a FINERACT-2472: Fix loanProductId NPE in Credit Bureau Mapping 2026-02-11 12:02:11 +01:00
Vladyslav SamchenkoandAdam Saghy 840f95c88f FINERACT-2015: Fix saving account with withdrawal fee 2026-02-11 12:01:03 +01:00
mariiaKraievskaandAdam Saghy 7faaf96246 FINERACT-2467: Add previous owner id to transaction summary report with asset owner 2026-02-11 11:59:31 +01:00
Aleksandar VidakovicandAleksandar Vidakovic 02fb166b5b FINERACT-2239: New command processing - resource notes 2026-02-11 00:15:27 +01:00
Jose Alberto HernandezandAdam Saghy 28f63cc20e FINERACT-2418: Loan Originator data with codevalues 2026-02-09 16:42:53 +01:00
Attila BudaiandAdam Saghy 99861ce93a FINERACT-2418: add originator during the loan application 2026-02-09 14:40:34 +01:00
SaifulhuqandGitHub f5951f1a7b FINERACT-2461: Refactor EmailReadPlatformServiceImpl to use Prepared Statements (#5417)
* FINERACT-2461: Refactor EmailReadPlatformServiceImpl to use Prepared Statements
* FINERACT-2461: Add unit tests for EmailReadPlatformServiceImpl
2026-02-06 10:39:40 +01:00
mariiaKraievskaandArnold Gálovics c57f44d3f0 FINERACT-2418: Add originators details to external business events 2026-02-06 09:37:36 +01:00
dependabot[bot]andArnold Gálovics 288038d7bb Bump actions/checkout from 4 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-06 09:34:58 +01:00
Adam SaghyandArnold Gálovics f6d013c68d FINERACT-2421: Run inline COB on newly created loans that are behind 2026-02-06 09:34:32 +01:00
Adam SaghyandArnold Gálovics 967e0ea306 FINERACT-2421: Generate better client names during testing 2026-02-06 09:34:00 +01:00
DeathGun44andAdam Monsen d61b5e65f9 FINERACT-2177: Add Git signed commits verification 2026-02-05 19:24:04 -08:00
MarianaDmytrivBinariksandAdam Saghy a98c1434ac FINERACT-2421: e2e test scenarios for adjust interest with MIR and CBR results in improper allocations 2026-02-05 16:01:05 +01:00
mariiaKraievskaandAdam Saghy 0904c4f530 FINERACT-2421: Add pastDueDate to loan summary and event - E2E test 2026-02-05 13:45:18 +01:00
Oleksii NovikovandAdam Saghy 41d859e68a FINERACT-2421: Add pastDueDate to loan summary and event 2026-02-05 13:45:18 +01:00
8d064ddf6c FINERACT-2452: New command processing - audit
Co-Authored-By: Adam Saghy <adam.saghy@dpc.hu>
Co-Authored-By: Yu Wati Nyi <nyi22y@mtholyoke.edu>
2026-02-05 12:55:05 +01:00
Jose Alberto HernandezandAdam Saghy 1d1876edfd FINERACT-2421: Disbursement charge amount incorrect calculation 2026-02-05 10:41:19 +01:00
Attila BudaiandAdam Saghy 2620c61afa FINERACT-2418: add originator global config 2026-02-05 10:39:41 +01:00
Attila BudaiandAdam Saghy ef12056e5d FINERACT-2418: add originatior association 2026-02-03 14:58:28 +01:00
Attila BudaiandAdam Saghy 3b5ea96f5e FINERACT-2418: add originatior loan mapping 2026-02-03 14:58:28 +01:00
Peter KovacsandAdam Saghy 3dbada34f7 FINERACT-2412: Full term tranche - charges and penalties handling - E2E tests 2026-02-03 14:58:13 +01:00
Attila BudaiandAdam Saghy 221f80699f FINERACT-2418: fetch loan originators by loan 2026-02-03 13:21:24 +01:00
MarianaDmytrivBinariksandAdam Saghy ca3508093a FINERACT-2412: e2e test scenarios for full term tranche with n+1 instalments 2026-02-03 13:12:22 +01:00
Soma SörösandAdam Saghy d2497a77fc FINERACT-2412: full term tranche - N+1 installment handling 2026-02-03 13:12:22 +01:00
MarianaDmytrivBinariksandAdam Saghy 7a7ed538e6 FINERACT-2412: e2e test scenarios get loan Api changes with active terms 2026-02-03 11:28:52 +01:00
Soma SörösandAdam Saghy 7bb4840d7a FINERACT-2412: full term tranche - get loan API changes & add to LoanAccountDataV1 (events) 2026-02-03 11:28:52 +01:00
MarianaDmytrivBinariksandAdam Saghy ff9d15dad8 FINERACT-2412: e2e test scenarios with accruals handling for re-amortization default behaviour 2026-02-03 10:56:53 +01:00
mariiaKraievskaandAdam Saghy 4a2f7de888 FINERACT-2413: Re-amortization:- Accrual and Accrual Activity handling - Default Handling 2026-02-03 10:56:53 +01:00
Aman MittalandAdam Saghy 1c90880b7a FINERACT-2421: Refractor - remove ApiResponses annotations (Phase 7) 2026-02-02 19:27:39 +01:00
Aman MittalandAdam Saghy 433959c280 FINERACT-2421: Bump - org.apache.tomcat.embed:tomcat-embed-core CVE-2025-61795 2026-02-02 19:26:03 +01:00
mariiaKraievskaandAdam Saghy 5f2f096878 FINERACT-2421: Re-aging at the same as 2nd disbursement date outcomes with incorrect repayment schedule 2026-02-02 19:21:26 +01:00
dependabot[bot]andAdam Saghy 58028951bd Bump actions/cache from 5.0.2 to 5.0.3
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.2 to 5.0.3.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/8b402f58fbc84540c8b491a91e594a4576fec3d7...cdf6c1fa76f9f475f3d7449005a359c84ca0f306)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 5.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-02 19:17:57 +01:00
dependabot[bot]andAdam Saghy a0389fec61 Bump gradle/actions from 5.0.0 to 5.0.1
Bumps [gradle/actions](https://github.com/gradle/actions) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](https://github.com/gradle/actions/compare/v5...v5.0.1)

---
updated-dependencies:
- dependency-name: gradle/actions
  dependency-version: 5.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-02 19:01:07 +01:00
saifulhuq01andAdam Saghy b107acb005 FINERACT-2459: Refactor SmsReadPlatformServiceImpl to use Prepared Statements 2026-02-02 18:59:51 +01:00
Rustam ZeinalovandAdam Saghy 007187111d FINERACT-2413: added e2e test for handling multiple re-amortization on the loan 2026-02-02 18:59:07 +01:00
Soma SörösandAdam Saghy 2ee19f9825 FINERACT-2413: Allow multiple Re-amortization on a loan account 2026-02-02 18:59:07 +01:00
Rustam ZeinalovandAdam Saghy 01d3049538 FINERACT-2456: added e2e test covering charge off calculation after repayment reversal with multiple merchant refunds and credit balance refund 2026-02-02 18:55:17 +01:00
Oleksii NovikovandAdam Saghy 3b0d053d52 FINERACT-2456: Fix charge off after repayment reversal with merchant refunds and credit balance refund 2026-02-02 18:55:17 +01:00
Peter KovacsandAdam Saghy 0a113fd42d FINERACT-2412: full term tranche- interest pause handling - E2E tests 2026-02-02 18:53:48 +01:00
Soma SörösandAdam Saghy 9884025bd9 FINERACT-2412: full term tranche- interest pause handling 2026-02-02 18:53:48 +01:00
Jose Alberto HernandezandAdam Saghy 7b322481b8 FINERACT-2421: Adjust interest with MIR and CBR results in improper allocations 2026-02-02 18:52:59 +01:00
Dhananjay BhagatandAdam Saghy cc372286fa FINERACT-1598: Remove unsupported recurringDepositFrequency fields from API docs 2026-02-02 18:44:05 +01:00
Adam Saghy 5408921091 FINERACT-2421: Fix flaky test case 2026-01-30 22:01:15 +01:00
Adam Saghy 0ed6b7f94c FINERACT-2421: Fix Trial Balance report 2026-01-30 11:39:03 +01:00
Adam Saghy 0fd0f977eb FINERACT-2421: Allow hyphens in query params of Batch API calls 2026-01-30 11:37:58 +01:00
mariiaKraievskaandArnold Gálovics 5831cb3afd FINERACT-2412: Delayed Schedule Captures Documentation 2026-01-28 17:02:17 +01:00
Attila BudaiandArnold Gálovics 82e6a237a6 FINERACT-2418: add origination api implementation 2026-01-28 17:01:57 +01:00
mariiaKraievskaandAdam Saghy ba978c591b FINERACT-2412: full term tranche - capitalized income handling 2026-01-28 14:31:06 +01:00
mariiaKraievskaandAdam Saghy 4c14715078 FINERACT-2412: full term tranche - payment holiday handling 2026-01-28 11:47:25 +01:00
MarianaDmytrivBinariksandAdam Saghy 1dfba8e30b FINERACT-2412: e2e test scenarios for full term tranche with charge-off transaction 2026-01-27 17:37:33 +01:00
mariiaKraievskaandAdam Saghy 0e7ab0d26f FINERACT-2412: full term tranche - contract termination handling 2026-01-27 16:28:21 +01:00
mariiaKraievskaandAdam Saghy 4ba9bdf4dd FINERACT-2412: full term tranche - re-amortization handling 2026-01-27 15:08:02 +01:00
Peter KovacsandAdam Saghy 6cc5323090 FINERACT-2421: Allow multiple interest rate schedule adjustments same date - E2E tests 2026-01-27 15:04:30 +01:00
Jose Alberto HernandezandAdam Saghy 532190a649 FINERACT-2421: Allow multiple interest rate schedule adjustments same date 2026-01-27 15:04:30 +01:00
MarianaDmytrivBinariksandAdam Saghy f40ce6d9f6 FINERACT-2412: e2e test scenarios for full term tranche with chargeback trn 2026-01-27 14:00:47 +01:00
mariiaKraievskaandAdam Saghy f3bda3aff5 FINERACT-2412: full term tranche - write-off handling 2026-01-27 12:10:02 +01:00
Rustam ZeinalovandAdam Saghy e31ee7a9f8 FINERACT-2412: Added e2e tests for validating handling of backdated monetary and reversal transactions for full term tranche loans 2026-01-27 11:00:54 +01:00
Adam Monsen 3b2a5bcb30 FINERACT-2448: standardize on release ready, improve releases section
I want us to standardize on being "release ready". That is, we agree to do our best to keep incomplete features off `develop` and to keep the build passing.

As part of this change I also want to update the [VERSIONS section in the README](https://github.com/apache/fineract/blob/d093a089c9c13051eb8922100e38e44a3933fd9c/README.md#versions) to more accurately reflect how we do releases today.
2026-01-26 10:13:55 -08:00
Aman MittalandAdam Saghy 6aafb308ea FINERACT-2421: Refractor - remove ApiResponses annotations (Phase 6) 2026-01-26 15:48:24 +01:00
DeathGun44andAdam Saghy c74e661281 FINERACT-2053: Fix Prometheus scraping config path and hostname 2026-01-26 15:44:41 +01:00
Aman MittalandAdam Saghy e2e36b105a FINERACT-2421: Bump mysql connector CVE-2025-30706 2026-01-26 15:29:43 +01:00
DeathGun44andAdam Saghy 9aea69fdf8 FINERACT-2450: Fix IndexOutOfBoundsException in GlobalConfigurationHelper 2026-01-26 15:28:11 +01:00
Shivd131andAdam Saghy 55f764d200 FINERACT-2438: Add Micrometer Observability to Reporting API 2026-01-26 15:08:44 +01:00
MarianaDmytrivBinariksandAdam Saghy 0729e41ff9 FINERACT-2412: e2e test scenario for full term tranche with buy down fee trn 2026-01-26 14:54:55 +01:00
oluexpert99andAdam Saghy e9dfc4a9b8 FINERACT-2446: Tax Group and Tax Component APIs return HTTP 500 when no record is found (empty result), instead of returning a proper HTTP 404 Not Found 2026-01-26 14:52:23 +01:00
oluexpert99andAdam Saghy 5ca75c94ec FINERACT-2446: Tax Group and Tax Component APIs return HTTP 500 when no record is found (empty result), instead of returning a proper HTTP 404 Not Found 2026-01-26 14:52:23 +01:00
ap200506andAdam Saghy f2630fb712 FINERACT-2447: Bulk Import processing result file not working on PostgreSQL 2026-01-26 14:50:21 +01:00
airajenaandAdam Saghy 52aaad9d25 FINERACT-2155: Allow annual charge payment after due date 2026-01-26 13:12:17 +01:00
Oleksii NovikovandAdam Saghy d093a089c9 FINERACT-2354: Fix charge-off after re-age 2026-01-23 18:20:43 +01:00
MarianaDmytrivBinariksandAdam Saghy c85f2ab4f4 FINERACT-2354: e2e tests for charge-off and contract termination trns after re-age 2026-01-23 18:20:43 +01:00
MarianaDmytrivBinariksandArnold Gálovics 23faa55326 FINERACT-2412: e2e test scenarios for full term tranche with re-aging trns 2026-01-23 17:17:42 +01:00
Adam SaghyandArnold Gálovics 4ebff33792 FINERACT-2421: No interest, no interest accrual calculation needed 2026-01-23 17:07:58 +01:00
mariiaKraievskaandAdam Saghy ddc82f1b68 FINERACT-2389: loan is not closed with outstanding amount during pay-off loan with reschedule trns 2026-01-23 16:11:11 +01:00
Attila BudaiandArnold Gálovics bf879064af FINERACT-2435: fix as of data api 2026-01-23 15:52:42 +01:00
dependabot[bot]andAdam Saghy 2b4de8e655 Bump actions/checkout from 6.0.1 to 6.0.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/8e8c483db84b4bee98b60c0593521ed34d9990e8...de0fac2e4500dabe0009e67214ff5f5447ce83dd)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-23 14:06:57 +01:00
Aman MittalandAdam Saghy 7eb1fdd97b FINERACT-2421: chore(deps): upgrade org.eclipse.jgit to 7.2.1 CVE-2025-4949 2026-01-23 14:01:13 +01:00
Rustam ZeinalovandAdam Saghy f7a90d8776 FINERACT-2421: added e2e test covering manual interest refund on closed loan generates exception 2026-01-23 14:00:49 +01:00
Jose Alberto HernandezandAdam Saghy fb96df64ab FINERACT-2421: Manual interest refund on closed loan generates exception 2026-01-23 14:00:49 +01:00
Aman-MittalandAdam Saghy 8b24325f84 FINERACT-2421: Refractor redundant and some deprecated code as per new Java 21 style (Phase 5) 2026-01-23 12:15:46 +01:00
KrishnaandGitHub 6f1d96fc2c FINERACT-2158: Add workflow to enforce PR title convention 2026-01-22 11:43:33 -08:00
Soma SörösandAdam Saghy 9ef9362acb FINERACT-2354: e2e tests for pay-off to close re-aged loan with charge outcomes with Active loan status 2026-01-22 16:03:58 +01:00
Soma SörösandAdam Saghy 641c6da1b9 FINERACT-2354: [BE] pay-off to close re-aged loan with charge outcomes with Active loan status 2026-01-22 16:03:58 +01:00
Adam Saghy 1d12c13c8e FINERACT-2418: add origination-api-skeleton 2026-01-21 13:13:04 +01:00
Attila BudaiandAdam Saghy 87cad91aa8 FINERACT-2418: add origination-api-skeleton 2026-01-21 13:13:04 +01:00
Rustam ZeinalovandAdam Saghy bffa04c3e6 FINERACT-2389: added e2e test validating incorrect repayment schedule amount calculations for 2nd disb, CI and other actions after re-amortization 2026-01-20 12:28:43 +01:00
mariiaKraievskaandAdam Saghy 5e6c88ee3a FINERACT-2389: incorrect repayment schedule amount calculations for 2nd disb, CI and other actions after re-amortization 2026-01-20 12:28:43 +01:00
Adam Saghy 0cb23ac5c5 FINERACT-2437: Decrease the number of compilation warnings 2026-01-20 11:35:33 +01:00
Rustam ZeinalovandAdam Saghy 70f76b84f3 FINERACT-2413: added e2e tests for validation of schedule handling after re-amortization default behavior 2026-01-20 09:42:23 +01:00
Oleksii NovikovandAdam Saghy 696013e650 FINERACT-2413: Schedule handling after re-amortization default behavior 2026-01-20 09:42:23 +01:00
MarianaDmytrivBinariksandAdam Saghy 61e84ff87e FINERACT-2354: e2e tests for re-aging with accruals for equal amortization 2026-01-19 19:29:21 +01:00
Soma SörösandAdam Saghy eecc54c224 FINERACT-2354: Re-aging - Accrual and Accrual Activity handling - Equal Amortization 2026-01-19 19:29:21 +01:00
airajenaandAdam Saghy 3a6f805d50 FINERACT-2164: Add Gradle SBOM (Software Bill of Materials) generator
- Add CycloneDX plugin for SBOM generation (version 3.1.0)
- Configure as optional task (not part of default build)
- Generate SBOM in CycloneDX format with license information
- Usage: ./gradlew :fineract-provider:cyclonedxDirectBom

Output: build/reports/cyclonedx-direct/bom.{json,xml}
2026-01-19 15:00:40 +01:00
MonicaandAdam Saghy 11d6eb9f2d FINERACT-2428: Fix 'acount' typo to 'account' in legacy docs 2026-01-19 14:51:14 +01:00
Attila BudaiandAdam Saghy f83ea7ea15 FINERACT-2418: create the loan origination module 2026-01-19 14:14:20 +01:00
mariiaKraievskaandAdam Saghy 2a064dcb09 FINERACT-2389: Loan reschedule with adjustedDueDate after re-age 2026-01-19 12:51:04 +01:00
Jose Alberto HernandezandAdam Saghy e9af3a8ac8 FINERACT-2421: Undo Last Disbursement failed after reaging 2026-01-19 12:38:31 +01:00
dependabot[bot]andArnold Gálovics 961682e80c Bump actions/cache from 5.0.1 to 5.0.2
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.1 to 5.0.2.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/9255dc7a253b0ccc959486e2bca901246202afeb...8b402f58fbc84540c8b491a91e594a4576fec3d7)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 5.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-19 11:31:20 +01:00
yvana-kengneandAdam Saghy 61d361f998 FINERACT-2055 Internal Server Error Encountered When Accessing Individual Collection Sheet Option 2026-01-16 22:18:22 +01:00
Kengne-yvanaandAdam Saghy 44b6b29dc5 FINERACT-2086: Fix ClassCastException in AccountAssociations and add unit tests
- Simplified conversion using Number.intValue() to handle Short and Integer types.
- Removed redundant null checks as per feedback.
- Added unit tests for type-safety verification.
2026-01-16 22:18:05 +01:00
Adam Saghy 0891adb267 FINERACT-2421: Rework code value handling in E2E 2026-01-16 17:59:14 +01:00
Adam Saghy 0f73ae1eb7 FINERACT-2421: Move E2E init data into runner 2026-01-16 10:37:26 +01:00
MonicaandAdam Saghy ea1609120f FINERACT-2423: Add preconditions to all changesets 2026-01-15 15:17:41 +01:00
MonicaandAdam Saghy cccb7d7726 FINERACT-2423: Remove redundant 0071 fix and keep safe 0072 migration 2026-01-15 15:17:41 +01:00
MonicaandAdam Saghy 6324489b96 Fix Liquibase changelog formatting and failing elements 2026-01-15 15:17:41 +01:00
Monica-CodingWorldandAdam Saghy 2efedf59e8 FINERACT-2423: Fix invalid Liquibase changelog filename with space
Apply spotless formatting

FINERACT-2423: Add Liquibase changeset to fix invalid 0072 filename

FINERACT-2423: Remove unnecessary whitespace in changelog-tenant.xml

FINERACT-2423: Add Apache license header to Liquibase changelog

FINERACT-2423: Add Apache license header to Liquibase changeset

Fix for FINERACT-2423: [Your fix description]

- Applied code formatting (spotlessApply)
- Passed SpotBugs checks
- Passed Checkstyle test checks
2026-01-15 15:17:41 +01:00
mariiaKraievskaandAdam Saghy db066fbcff FINERACT-2412: Full term tranche - undo last disbursement support 2026-01-15 14:18:46 +01:00
dependabot[bot]andAdam Saghy fa0ceab30b Bump actions/setup-node from 6.1.0 to 6.2.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/395ad3262231945c25e8478fd5baf05154b1d79f...6044e13b5dc448c55e2357c09f80417699197238)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-15 13:36:15 +01:00
Adam Saghy 633acf204b FINERACT-2421: Allow reage preview API via Batch API 2026-01-15 13:35:54 +01:00
Oleksii NovikovandAdam Saghy 1a2faa9c62 FINERACT-2413: Add re-amortization documentation 2026-01-15 13:33:52 +01:00
mariiaKraievskaandAdam Saghy 09645e6afb FINERACT-2412: Full term tranche - downpayment handling 2026-01-15 13:33:27 +01:00
Adam Saghy d413e2b4af FINERACT-2421: Make "Business date configuration" reliable 2026-01-15 10:21:00 +01:00
Attila BudaiandAdam Saghy 442290ef92 FINERACT-2354: handle reamortization error code 500 issue on same disbursement day 2026-01-15 10:17:43 +01:00
yvana-kengneandAdam Saghy 53ff74425c FINERACT-2430: Fix typo: rename 'acount' to 'account' 2026-01-15 10:16:50 +01:00
Peter KovacsandAdam Saghy e028a8b976 FINERACT-2421: [doc] Asset Externalization documentation 2026-01-15 10:13:06 +01:00
Shiv DeshpandeandAdam Saghy 8f2dbe476c Fix(FINERACT-2320): Return false instead of 403 when Loan COB job is disabled 2026-01-15 10:12:33 +01:00
airajenaandAdam Saghy 07d67493df FINERACT-1266: Fix NullPointerException in SavingsHelper.determineInterestPostingPeriods 2026-01-15 10:10:29 +01:00
airajenaandAdam Saghy d94050d476 FINERACT-2421: Add unit tests for SQLBuilder 2026-01-15 10:08:15 +01:00
Aira JenaandGitHub 3ba476fdc4 FINERACT-2421: Add unit tests for ExternalIdFactory (#5276)
* FINERACT-2421: Add unit tests for ExternalIdFactory

* FINERACT-2421: Fix ambiguous method reference in ExternalIdFactoryTest

Cast null to String to resolve ambiguous method call between
produce(String) and produce(List<String>) overloads.
2026-01-15 10:07:17 +01:00
mariiaKraievskaandAdam Saghy 32a642255d FINERACT-2412: Full term tranche - monetary transaction allocation 2026-01-15 09:55:13 +01:00
MarianaDmytrivBinariksandAdam Saghy b59abb3fbc FINERACT-2354: e2e tests for re-aging with accruals for default behaviour 2026-01-15 09:48:08 +01:00
mariiaKraievskaandAdam Saghy fcf1fb6126 FINERACT-2354: Re-aging:- Accrual and Accrual Activity handling - Default Handling 2026-01-15 09:48:08 +01:00
mariiaKraievskaandAdam Saghy 09031aa5a7 FINERACT-2412: Full term tranche - Schedule handling and Calculations 2026-01-13 18:06:12 +01:00
Rustam ZeinalovandAdam Saghy 3e197e367b FINERACT-2421: added e2e test for verifying reprocess Interest Refund txn amount if no txn was changed 2026-01-13 10:05:19 +01:00
Jose Alberto HernandezandAdam Saghy 6df78f64c0 FINERACT-2389: Reprocess Interest Refund txn amount if no txn was changed 2026-01-13 10:05:19 +01:00
dependabot[bot]andArnold Gálovics 0026aaf1a6 Bump actions/cache from 4.3.0 to 5.0.1
Bumps [actions/cache](https://github.com/actions/cache) from 4.3.0 to 5.0.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/0057852bfaa89a56745cba8c7296529d2fc39830...9255dc7a253b0ccc959486e2bca901246202afeb)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 5.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-13 08:53:13 +01:00
dependabot[bot]andArnold Gálovics e284d55e19 Bump actions/setup-java from 4 to 5
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4 to 5.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-13 08:51:56 +01:00
Adam Monsen 2032ceb9d9 Revert "exclude jquery-1.7.min.js from source release"
This reverts commit 7923d9e6cb.

See that commit's log message, and https://github.com/apache/tooling-trusted-releases/issues/427

TL;DR → ATR now ignores files ending in .min.js so we no longer need the explicit exclude for jquery-1.7.min.js
2026-01-12 08:00:46 -08:00
Adam Saghy a210834419 FINERACT-2421: Add Verify Liquibase Backward Compatibility check 2026-01-12 14:24:06 +01:00
mariiaKraievskaandAdam Saghy ae3a740070 FINERACT-2421: [doc] Pause delinquency user documentation 2026-01-12 14:09:56 +01:00
Wilfred KigenyiandAdam Saghy baaca2dd97 FINERACT-2432 2026-01-12 13:53:37 +01:00
airajenaandAdam Saghy eaf843a3ac FINERACT-2421: Fix GRETERTHAN typo in ConditionType enum 2026-01-12 13:50:40 +01:00
Víctor RomeroandAdam Saghy 646291339c Revert "FINERACT-2422: standardize use of aging vs. ageing (#5302)"
This reverts commit 174da7d862.
2026-01-09 16:12:31 +01:00
Víctor RomeroandAdam Saghy ed32c133cc Revert "[#FINERACT-2422] standardize use of aging vs. ageing (#5289)"
This reverts commit 61034e6041.
2026-01-09 16:12:22 +01:00
Adam Saghy f0692a8cf1 FINERACT-2421: Set back the XmX to 12g 2026-01-09 13:54:36 +01:00
MarianaDmytrivBinariksandAdam Saghy dff889be29 FINERACT-2790: e2e tests for re-amortization with equal interest split with diff trns afterwards 2026-01-08 22:47:03 +01:00
MonicaandAdam Saghy 591395f39c FINERACT-2429: Fix typo getCreditAcount to getCreditAccount in TaxComponent and SavingsAccountTransaction 2026-01-08 22:46:28 +01:00
Mend RenovateandAdam Saghy 0399007be0 FINERACT-2181: Update actions/cache digest to 0057852 2026-01-08 22:42:25 +01:00
Aman-MittalandAdam Saghy 9cc14e7fdb FINERACT-2421: fix(security): migrate request matchers to PathPatternRequestMatcher (no behavior change) 2026-01-08 22:38:40 +01:00
Aman-MittalandAdam Saghy d1e456ef43 FINERACT-2421: Refractor redundant and some deprecated code as per new Java 21 style (Phase 4) 2026-01-08 22:32:39 +01:00
Víctor RomeroandGitHub 174da7d862 FINERACT-2422: standardize use of aging vs. ageing (#5302) 2026-01-08 13:58:01 -06:00
Kengne-yvanaandGitHub 61034e6041 [#FINERACT-2422] standardize use of aging vs. ageing (#5289) 2026-01-08 10:43:21 -06:00
4c1016d239 FINERACT-2434: Add input validation to split-tests.sh script (#5296)
Co-authored-by: FarhanAlstonair <Farhan@github123>
2026-01-08 10:16:39 -06:00
Peter KovacsandAdam Saghy 9003034b34 FINERACT-2433/fix-interest-accrual-calculation - E2E test 2026-01-08 12:22:48 +01:00
Adam Saghy 8b3c8280de FINERACT-2433: Fix interest and accrual calculation in case of last installment payment 2026-01-08 12:22:48 +01:00
Rustam ZeinalovandAdam Saghy d42b4f7b6c FINERACT-2173: added e2e tests covering extended migration scenario with special transaction types and conditions 2026-01-08 12:21:40 +01:00
Rustam ZeinalovandAdam Saghy 97511ca2ff FINERACT-2174: added e2e tests covering extended migration scenario with fees/penalties 2026-01-08 11:36:16 +01:00
ap200506-sudoandGitHub e2842de23b FINERACT-2431: Fix typo in populateSharedAccountsWorkbook (#5293) 2026-01-07 09:48:31 -06:00
Adam Saghy 7ee0f7f4e4 FINERACT-2421: Improved Spring Batch context handling 2026-01-07 14:08:51 +01:00
Kengne-yvanaandGitHub 5c04216841 FINERACT-2426: Fix ChartOfAcountsConstants typo to ChartOfAccountsConstants (#5284) 2026-01-06 16:38:33 -06:00
MonicaandAdam Saghy e17303fcb9 FINERACT-2206: Fix date inconsistency in SavingsInterestPostingTest
Fixed startDate from dynamic current year to hardcoded 2025 in
testPostInterestNotZero() to maintain consistent 2025 timeline.
Resolves HTTP 400 error caused by date mismatches.
2026-01-03 19:49:44 +01:00
MonicaandAdam Saghy ab9f4fd40e FINERACT-2206: Fix typo in allowPartialPeriodInterestCalculation
Fixed misspelled 'allowPartialPeriodInterestCalcualtion' to
'allowPartialPeriodInterestCalculation' in REST API and code.
35 files updated as specified in JIRA.
2026-01-03 19:49:44 +01:00
Jose Alberto HernandezandAdam Saghy b7306f19d0 FINERACT-2425: Tax component and Tax Group refactoring 2026-01-03 01:56:47 +01:00
dependabot[bot]andArnold Gálovics cbf8a4f5ab Bump actions/checkout from 5.0.1 to 6.0.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.1 to 6.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/93cb6efe18208431cddfb8368fd83d5badbf9bfd...8e8c483db84b4bee98b60c0593521ed34d9990e8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-30 09:36:19 +01:00
dependabot[bot]andArnold Gálovics f6eb016c2d Bump actions/cache from 4.3.0 to 5.0.1
Bumps [actions/cache](https://github.com/actions/cache) from 4.3.0 to 5.0.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/0057852bfaa89a56745cba8c7296529d2fc39830...9255dc7a253b0ccc959486e2bca901246202afeb)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 5.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-30 09:36:06 +01:00
Mend RenovateandArnold Gálovics dfdb98e66b FINERACT-2181: Update actions/checkout digest to 93cb6ef 2025-12-29 22:24:00 +01:00
Mend RenovateandArnold Gálovics 88471bcd95 FINERACT-2181: Update actions/cache digest to 0057852 2025-12-29 22:23:46 +01:00
airajenaandArnold Gálovics 8134d7f6a0 FINERACT-2421: Simplify InputStream to String conversion using Java 11+ API 2025-12-29 10:36:05 +01:00
airajenaandArnold Gálovics b4fa48263b FINERACT-2421: Fix potential NullPointerException in CalendarCommandFromApiJsonDeserializer
The extractBooleanNamed method can return null when the JSON value is null
or missing. Using primitive boolean causes automatic unboxing which throws
NullPointerException.

Changes:
- CalendarCommandFromApiJsonDeserializer: Use Boolean wrapper instead of
  primitive boolean for 'repeating' field extraction
- CalendarCommandFromApiJsonDeserializer: Use Boolean.TRUE.equals() for
  null-safe boolean comparison
- CalendarCommand: Update field type and constructor parameter from
  boolean to Boolean to support null values

This addresses the FIXME comments on lines 156 and 298 in the original file.
2025-12-29 10:35:40 +01:00
dependabot[bot]andAdam Saghy e294ce88bf Bump actions/cache from 4.3.0 to 5.0.1
Bumps [actions/cache](https://github.com/actions/cache) from 4.3.0 to 5.0.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/0057852bfaa89a56745cba8c7296529d2fc39830...9255dc7a253b0ccc959486e2bca901246202afeb)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 5.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-26 19:29:02 +01:00
dependabot[bot]andAdam Saghy 2c712326bd Bump actions/checkout from 5.0.1 to 6.0.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.1 to 6.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/93cb6efe18208431cddfb8368fd83d5badbf9bfd...8e8c483db84b4bee98b60c0593521ed34d9990e8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-26 19:28:55 +01:00
MarianaDmytrivBinariksandAdam Saghy a738c268d7 FINERACT-2413: e2e tests for re-amortization forbidden for charged-ff or written-off loan 2025-12-26 19:28:23 +01:00
mariiaKraievskaandAdam Saghy d263fec31d FINERACT-2413: Re-amortization on charged-off, contract terminated & written-off loan 2025-12-26 19:28:23 +01:00
Aman-MittalandAdam Saghy 0ba1745443 FINERACT-2421: Refractor redundant and some deprecated code as per new Java 21 style (Phase 3) 2025-12-26 19:27:38 +01:00
Mend RenovateandAdam Saghy 7dac82a4fc FINERACT-2181: Update actions/checkout digest to 93cb6ef 2025-12-23 12:40:50 +01:00
Peter KovacsandArnold Gálovics cffa2a906d FINERACT-2181: Improve validation for reschedule fromDate parameter - E2E tests 2025-12-23 11:13:09 +01:00
Oleksii NovikovandArnold Gálovics 8610368a18 FINERACT-2181: Improve validation for reschedule fromDate parameter 2025-12-23 11:13:09 +01:00
MarianaDmytrivBinariksandArnold Gálovics 46f218fdc2 FINERACT-2354: e2e tests for re-amortization undo 2025-12-23 11:12:41 +01:00
Oleksii NovikovandArnold Gálovics 2858316c71 FINERACT-2413: Improve re-amortization undo validation 2025-12-23 11:12:41 +01:00
Adam SaghyandArnold Gálovics b457b2aa93 FINERACT-2421: Fix lombok annotations 2025-12-23 11:12:04 +01:00
Mend RenovateandArnold Gálovics 3363ee4f10 FINERACT-2181: Update actions/cache digest to 0057852 2025-12-23 11:11:37 +01:00
Adam MonsenandArnold Gálovics 15c2facf99 FINERACT-2424: post 1.14.0 release docs cleanup
* Go analog for step 15, automation was broken.
* Fix two admonitions: I meant to use `NOTE`. `INFO` is not a valid admonition in asciidoc, so it just shows up as text.
2025-12-23 11:11:09 +01:00
Adam Monsen d8b6649b32 Merge branch 'release/1.14.0' into develop
* release/1.14.0:
  update manual release instructions
  port steps 10 & 11 to the ATR
  docs: adapt artifact checks to new ATR tool
  improve svn release staging/release instructions
  exclude jquery-1.7.min.js from source release
  ignore .swp files when building src release
  add license to .mailmap
  add RAT excludes for ATR
  add license to scripts/*.sh
  fix both NOTICE files for ATR
  doc: remove errant config
  improve start release notes wording in step 3
2025-12-22 12:54:17 -08:00
Adam Monsen 9977fb3fcb update manual release instructions
Not gonna lie, I'm getting tired of maintaining this second source of truth. Hopefully my laziness, impatience, and hubris will tip the scales far enough to delete it.
2025-12-22 12:46:52 -08:00
Adam Monsen e1b0329748 port steps 10 & 11 to the ATR 2025-12-22 11:43:31 -08:00
Adam Monsen 30b25cdaa1 docs: adapt artifact checks to new ATR tool
We're already reaping rewards for using ATR (checks+voting+email support), and I want us to do both the old way AND the new way for now. I'll consider the old release process in "soft deprecation" as the ATR matures.
2025-12-22 11:02:32 -08:00
Adam Monsen f4aa11468d improve svn release staging/release instructions
All good. I tested these just now.

ATR so far does artifact checks & voting/email management.
Working with artifacts on the svn server is still our responsibility, for now.
2025-12-22 09:57:47 -08:00
Adam Monsen 7923d9e6cb exclude jquery-1.7.min.js from source release
This is to workaround an issue, UI misunderstanding, or PEBKAC with the ATR (ASF Trusted Releases) tool wherein I am unable to exclude the license header check for this file. jQuery (and its dependencies) can be used entirely under the MIT, see <https://jquery.com/license/>.

Once https://github.com/apache/tooling-trusted-releases/issues/312 ... is resolved we should be able to revert this workaround.

While this workaround is in place, consumers of apiLive.htm must:

1. put a copy of jquery-1.7.min.js next to apiLive.htm
2. change apiLive.htm to refer to jquery-1.7.min.js on a CDN

If someone needing apiLive.htm prefers the first option, they can grab a copy at https://code.jquery.com/jquery-1.7.min.js .
If they prefer the second option, they can pick a minified or unminified link listed at https://blog.jquery.com/2011/11/03/jquery-1-7-released/ and modify line 6 of apiLive.htm to refer to that instead, for example:

- <script type="text/javascript" src="jquery-1.7.min.js"></script>
+ <script type="text/javascript" src="https://code.jquery.com/jquery-1.7.min.js"></script>

There are other ways to deal with the license header check as well. For example: We could use 2nd option above (always), or finally/actually port away from apiLive.htm (it is in legacy-docs, after all).
2025-12-19 08:44:34 -08:00
Monica-CodingWorldandAdam Saghy 5f40037d6b docs: updated Java version requirement to Java 21 2025-12-19 10:05:27 +01:00
Monica-CodingWorldandAdam Saghy 7a773387d2 docs: update Java version requirement to Java 21 2025-12-19 10:05:27 +01:00
Monica-CodingWorldandAdam Saghy a12a1445de FINERACT-792: Improve developer environment setup and IntelliJ IDEA guidance 2025-12-19 10:05:27 +01:00
MarianaDmytrivBinariksandAdam Saghy c55cc5ce11 FINERACT-2354: e2e tests for re-age with equal amortization forbidden after write-off 2025-12-19 10:04:07 +01:00
Rustam ZeinalovandAdam Saghy 56b506b3f6 FINERACT-2354:added e2e test for validation of re-aging with various interest handling is forbidden on written-off loan 2025-12-19 10:04:07 +01:00
Adam Monsen 927f8dc589 ignore .swp files when building src release
just in case. I accidentally did this while working on the 1.14.0 release.
2025-12-18 14:38:32 -08:00
Adam Monsen 19305c6c60 add license to .mailmap
ATR was complaining
2025-12-18 14:37:59 -08:00
Adam Monsen 47ba127f23 add RAT excludes for ATR 2025-12-18 14:37:09 -08:00
Adam Monsen 86f6a8c9b8 add license to scripts/*.sh
conform rather than bypass RAT license check
2025-12-18 10:45:32 -08:00
Adam Monsen 2c4ed2e984 fix both NOTICE files for ATR
ATR (the ASF Trusted Releases tool) expects these to follow a very specific template. In this case I had to s/by/at/ and add a newline.

See: https://github.com/apache/tooling-trusted-releases/blob/52e202f2deae74d38bc60849736339b2ab919de8/atr/tasks/checks/license.py#L299
2025-12-18 10:27:14 -08:00
Adam Monsen ad2be8ad1c doc: remove errant config
similar to 45404bafba

All asciidoctor config must be in `fineract-doc/src/docs/en/config.adoc`.

In this case `:sectnums:` re-starts ToC section numbering partway through the ToC.
2025-12-18 09:33:39 -08:00
Adam Monsen 0f6f182193 improve start release notes wording in step 3 2025-12-18 09:15:11 -08:00
Adam Saghy 3996637ca4 FINERACT-2421: Upgrade dependencies 2025-12-18 15:37:10 +01:00
Adam SaghyandGitHub f6b2daf54c FINERACT-2421: Upgrade dependencies (#5244) 2025-12-18 14:14:02 +01:00
Dömötör D. LugosiandGitHub f94c0e7329 FINERACT-2421: Fix kubernetes minikube example configuration 2025-12-18 13:50:25 +01:00
Oleksii NovikovandAdam Saghy 630f41f11f FINERACT-2413: Re-amortization reverse replay handling 2025-12-18 12:37:52 +01:00
MarianaDmytrivBinariksandAdam Saghy e8e9fb139d FINERACT-2413: e2e tests for re-amortization reverse-replay handling 2025-12-18 12:37:52 +01:00
MarianaDmytrivBinariksandAdam Saghy 9e396b26a4 FINERACT-2354: e2e tests for re-age with equal amortization with reschedule 2025-12-18 12:37:14 +01:00
mariiaKraievskaandAdam Saghy 97b8bfa26f FINERACT-2354: Loan reschedule with extra terms after re-aging 2025-12-18 12:37:14 +01:00
Aman-MittalandAdam Saghy 4bfae0400c FINERACT-2326: Refractor redundant and some deprecated code as per new Java 21 style (Phase 2) 2025-12-17 08:51:47 +01:00
dependabot[bot]andAdam Saghy 695816f990 Bump actions/cache from 4.3.0 to 5.0.1
Bumps [actions/cache](https://github.com/actions/cache) from 4.3.0 to 5.0.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/0057852bfaa89a56745cba8c7296529d2fc39830...9255dc7a253b0ccc959486e2bca901246202afeb)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 5.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-16 12:46:09 +01:00
MarianaDmytrivBinariksandAdam Saghy dee325ec7f FINERACT2354: added e2e tests for re-aging with equal amortization with backdated interest pause 2025-12-16 12:43:01 +01:00
mariiaKraievskaandAdam Saghy 1a6975c930 FINERACT-2354: Re-aging: Repayment schedule handling in case of overlapping Interest pause 2025-12-16 12:43:01 +01:00
Rustam ZeinalovandAdam Saghy f8c5122921 added e2e tests for backdated re-aging with default behaviour 2025-12-16 12:38:36 +01:00
MarianaDmytrivBinariksandAdam Saghy 215fc28ead FINERACT2354: e2e tests for re-aging with default behaviour with backdated re-aging 2025-12-16 12:38:36 +01:00
mariiaKraievskaandAdam Saghy f070ff4f5d FINERACT-2354: Chargeback handling with backdated re-age - with default re-aging behaviour 2025-12-16 12:38:36 +01:00
Ahmed AdelandAdam Saghy 352ef6317c FINERACT-2326: Refactor trial balance processing to reduce cognitive complexity 2025-12-16 12:35:06 +01:00
dependabot[bot]andArnold Gálovics e5be162117 Bump actions/setup-node from 4.4.0 to 6.1.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.4.0 to 6.1.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/49933ea5288caeca8642d1e84afbd3f7d6820020...395ad3262231945c25e8478fd5baf05154b1d79f)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-16 09:00:58 +01:00
Mend RenovateandArnold Gálovics 7efbce7ee1 FINERACT-2181: Update actions/cache digest to 0057852 2025-12-15 15:58:00 +01:00
Mend RenovateandAdam Saghy 8ebb2e10dc FINERACT-2181: Update actions/setup-node digest to 49933ea 2025-12-15 13:33:15 +01:00
dependabot[bot]andAdam Saghy 8e2593b3f2 Bump actions/checkout from 5.0.1 to 6.0.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.1 to 6.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/93cb6efe18208431cddfb8368fd83d5badbf9bfd...8e8c483db84b4bee98b60c0593521ed34d9990e8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 09:48:17 +01:00
dependabot[bot]andAdam Saghy 6980a03c64 Bump actions/upload-artifact from 5.0.0 to 6.0.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/330a01c490aca151604b8cf639adc76d48f6c5d4...b7c566a772e6b6bfb58ed0dc250532a479d7789f)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 09:48:06 +01:00
dependabot[bot]andAdam Saghy efad92798e Bump actions/cache from 5.0.0 to 5.0.1
Bumps [actions/cache](https://github.com/actions/cache) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/a7833574556fa59680c1b7cb190c1735db73ebf0...9255dc7a253b0ccc959486e2bca901246202afeb)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 5.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 09:47:54 +01:00
MarianaDmytrivBinariksandAdam Saghy 9bcf30abac FINERACT-2354: e2e tests with equal amortization moved into separate feature file 2025-12-15 09:46:24 +01:00
Victor Romero 78bd68a017 FINERACT-2312: fix missing allowFullTermForTranche parameter for the Calculate the Loan Schedule 2025-12-12 20:45:07 -06:00
Mend RenovateandArnold Gálovics 36b22f2b6b FINERACT-2181: Update actions/checkout digest to 93cb6ef 2025-12-12 20:06:08 +01:00
Satvik MishraandArnold Gálovics d043f4cb61 FINERACT-2415: Refactor InlineLoanCOBExecutorServiceImpl to reduce duplication 2025-12-12 20:03:09 +01:00
Oleksii NovikovandArnold Gálovics 36d779eabf FINERACT-2398: Add handling for equal overdue interest split re-amortization 2025-12-12 20:02:06 +01:00
Peter KovacsandArnold Gálovics a229a55c49 FINERACT-2790: Re-amortization- Interest handling-Equal Overdue Interest Split - E2E tests 2025-12-12 20:02:06 +01:00
MarianaDmytrivBinariksandAdam Saghy 8e34003be9 FINERACT-2354: e2e tests for re-age preview with equal amortization 2025-12-12 14:54:48 +01:00
Soma SörösandAdam Saghy 77c1f33f5a FINERACT-2354: [BE] re-aging preview page outcomes with incorrect calculation for diff scenarios with interest bearing loans 2025-12-12 14:54:48 +01:00
dependabot[bot]andArnold Gálovics 85cc3d7132 Bump actions/cache from 4.3.0 to 5.0.0
Bumps [actions/cache](https://github.com/actions/cache) from 4.3.0 to 5.0.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/0057852bfaa89a56745cba8c7296529d2fc39830...a7833574556fa59680c1b7cb190c1735db73ebf0)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-12 13:49:18 +01:00
Adam Monsen a085f8c60b link to new vulnerabilities list 2025-12-11 13:50:23 -08:00
Adam Monsen 5468f7999d FINERACT-2416: improve PR template
I started editing this just to fix the link to the "Pull Requests" doc (it moved from README.md to CONTRIBUTING.md), but then I saw a few other places in need of service.

* use Markdown links for readability
* add link to pull request size limit wiki page re: code dumps
* remove link to PR 1284, it doesn't add anything here and takes the reader out of context
* add link to mailing list
* add link to testing docs
2025-12-11 13:44:50 -08:00
MarianaDmytrivBinariksandAdam Saghy ef8621b080 FINERACT-2354: e2e test scenario for re-age with equal amortization with interest pause 2025-12-11 17:09:38 +01:00
Adam Saghy c3ed5caab2 FINERACT-2389: EMI rounding handling 2025-12-11 17:08:57 +01:00
MarianaDmytrivBinariksandAdam Saghy 6d051f5a2f FINERACT-2354: e2e test scenario for disbursement amount less than one 2025-12-11 17:08:57 +01:00
Adam Saghy 767c66f245 FINERACT-2326: Fix external id generation during reinvest 2025-12-11 13:04:59 +01:00
Soma SörösandAdam Saghy 1d0100bfcf FINERACT-2354: e2e test scenarios for re-age with chargeback for last instalment strategy 2025-12-10 13:10:33 +01:00
Soma SörösandAdam Saghy fa5be3f5a5 FINERACT-2354: [BE] chargeback handling with backdated re-age for last adjustment strategy with equal amortization re-aging behaviour 2025-12-10 13:10:33 +01:00
Adam Saghy 1ad45759fd FINERACT-2354: Validation of Re-age amount during submission 2025-12-10 13:09:16 +01:00
mariiaKraievskaandGitHub 8644d66fc0 FINERACT-2326: Fix configuration options for CORS (#5210) 2025-12-09 06:52:34 -06:00
Attila BudaiandAdam Saghy a3fdfb920d FINERACT-2312: full term configuration added 2025-12-08 19:08:29 +01:00
Peter KovacsandAdam Saghy 035b90211c FINERACT-2398: Re-amortization:- Preview Schedule API during re-amortization - E2E tests 2025-12-08 14:33:07 +01:00
mariiaKraievskaandAdam Saghy ad90d98aa0 FINERACT-2398: Re-amortization:- Preview Schedule API during re-amortization 2025-12-08 14:33:07 +01:00
Peter KovacsandAdam Saghy c70edf65f8 FINERACT-2354: Schedule handling after re-age - points 4-5-6 2025-12-08 13:57:54 +01:00
Aman-MittalandAdam Saghy dce3c66def FINERACT-2326: Refractor redundant and some deprecated code as per new Java 21 style 2025-12-08 13:49:44 +01:00
Rustam ZeinalovandAdam Saghy 399789ba42 FINERACT-2354: added e2e tests verifying re-aging which changes the due dates and frequencies - Default Behavior, interestRecalculation=true 2025-12-08 11:56:27 +01:00
Rustam ZeinalovandAdam Saghy 3d8d122bb3 FINERACT-2398: added e2e test cases for validation of re-amortization:- Interest handling-Default behavior 2025-12-08 11:54:16 +01:00
mariiaKraievskaandAdam Saghy 3c4d8da1c8 FINERACT-2398: Re-amortization:- Interest handling-Default behavior 2025-12-08 11:54:16 +01:00
Adam Saghy 8391614330 FINERACT-2326: Add configuration options for CORS handling 2025-12-08 10:23:17 +01:00
dependabot[bot]andAdam Saghy df4f43091b Bump actions/setup-java from 5.0.0 to 5.1.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/dded0888837ed1f317902acf8a20df0ad188d165...f2beeb24e141e01a676f977032f5a29d81c9e27e)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: 5.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 10:22:14 +01:00
Soma SörösandAdam Saghy de0dabd548 FINERACT-2354: [doc] Re-aging functional description 2025-12-08 09:53:44 +01:00
Jose Alberto HernandezandAdam Saghy a58bdf49b6 FINERACT-2354: Validation of Re-age amount during submission 2025-12-08 09:53:03 +01:00
Adam Saghy 4c22e2a9fc FINERACT-2326: Force single-threaded execution of tenant database upgrades 2025-12-05 15:50:41 +01:00
Adam SaghyandArnold Gálovics 469dfa48be FINERACT-2326: Add extra valid checksum since Liquibase changed on how checksums calculated 2025-12-05 15:20:52 +01:00
dependabot[bot]andAdam Saghy 1162e15ae5 Bump actions/setup-node from 4.4.0 to 6.1.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.4.0 to 6.1.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/49933ea5288caeca8642d1e84afbd3f7d6820020...395ad3262231945c25e8478fd5baf05154b1d79f)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-03 12:41:22 +01:00
dependabot[bot]andAdam Saghy 73ac7011fd Bump actions/stale from 10.1.0 to 10.1.1
Bumps [actions/stale](https://github.com/actions/stale) from 10.1.0 to 10.1.1.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/5f858e3efba33a5ca4407a664cc011ad407f2008...997185467fa4f803885201cee163a9f38240193d)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: 10.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-03 12:41:14 +01:00
dependabot[bot]andAdam Saghy 2d17811a0a Bump actions/checkout from 5.0.1 to 6.0.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.1 to 6.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/93cb6efe18208431cddfb8368fd83d5badbf9bfd...8e8c483db84b4bee98b60c0593521ed34d9990e8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-03 12:41:06 +01:00
Adam Saghy f55b63432e FINERACT-2326: Not implemented exception handling 2025-12-03 12:40:55 +01:00
Oleksii NovikovandAdam Saghy c50ed19959 FINERACT-1981: Fix reschedule installment for progressive loans 2025-12-03 10:14:29 +01:00
MarianaDmytrivBinariksandAdam Saghy 9e32b3718d FINERACT-2354: e2e test scenarios with multidisburse and CI after re-aging 2025-12-03 09:48:15 +01:00
Siddharthan P SandAdam Saghy 3d3b2dad6f FINERACT-2316: Localize interest rate chart slab validation
- Add localized validation messages for overlap and gap errors in interest rate chart slabs
- Use DataValidatorBuilder with resource/parameter context for clean error codes
- Add unit tests for validation error codes and arguments
- Add German translations for validation messages
2025-12-03 09:44:09 +01:00
Adam SaghyandGitHub 270901b9a2 FINERACT-2326: Downgrade liquibase due to licensing concerns (#5190) 2025-12-02 13:34:48 -06:00
Mend RenovateandAdam Saghy 2a17485dbb FINERACT-2181: Update actions/setup-node digest to 49933ea 2025-12-02 10:15:49 +01:00
Mend RenovateandAdam Saghy c80b00b211 FINERACT-2181: Update actions/checkout digest to 93cb6ef 2025-12-02 10:15:30 +01:00
MarianaDmytrivBinariksandAdam Saghy 949fcc9e0e FINERACT-2389: e2e test scenarios with pay-off after contract termination 2025-12-01 19:12:22 +01:00
Jose Alberto HernandezandAdam Saghy a5a290debc FINERACT-2389: Pay-Off amount calculated after Contract Termination 2025-12-01 19:12:22 +01:00
Aman-MittalandAdam Saghy 00e9ac8320 FINERACT-2346: Refractor, Minor Sonar fixes and remove some deprecated code 2025-12-01 19:11:59 +01:00
Attila BudaiandAdam Saghy 73d8659390 FINERACT-2354: add reaging interest template data 2025-12-01 15:09:11 +01:00
Peter KovacsandAdam Saghy 25fd822b00 FINERACT-2354: Re-age - Excess payment handling - Default Behavior, interestRecalculation = true, without dueDate change - missing testRailIds added 2025-12-01 13:15:42 +01:00
Rustam ZeinalovandAdam Saghy f487e4f6c2 FINERACT-2354: Added e2e tests for partially paid installment - adjust to last edge case of re-aging 2025-12-01 13:15:42 +01:00
mariiaKraievskaandAdam Saghy b18912cc9d FINERACT-2354: Re-age - Excess payment handling - Default Behavior, interestRecalculation = true 2025-12-01 13:15:42 +01:00
MarianaDmytrivBinariksandAdam Saghy 2bde43ea83 FINERACT-2354: e2e test scenarios for reverse-replay re-aging with equal amortization 2025-11-26 12:28:33 +01:00
Ralph HopmanandArnold Gálovics a9d5307fe5 FINERACT-2411: Allow empty columns to be deleted from datatables 2025-11-26 11:45:53 +01:00
Mend RenovateandArnold Gálovics e5b6268123 FINERACT-2181: Update groovy monorepo to v5 2025-11-26 11:44:58 +01:00
Rustam ZeinalovandAdam Saghy 8f1589cb58 FINERACT-2354: Re-aging: EQUAL AMORTIZATION BEHAVIOUR - Reversal of Re-aging transaction - extra E2E tests 2025-11-26 11:30:55 +01:00
Adam Saghy f28382b70f FINERACT-2380: move retrofit client based test to feign 2025-11-26 10:47:29 +01:00
Attila BudaiandAdam Saghy 5d2a9c5390 FINERACT-2380: move retrofit client based test to feign 2025-11-26 10:47:29 +01:00
dependabot[bot]andAdam Saghy 6204cde27c Bump actions/checkout from 5.0.0 to 6.0.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/08c6903cd8c0fde910a37f88322edcfb5dd907a8...1af3b93b6815bc44a9784bd300feb67ff0d1eeb3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 13:04:35 +01:00
Mend RenovateandAdam Saghy 0d8ae9f4cf FINERACT-2181: Update dependency org.jruby:jruby-complete to v10 2025-11-25 13:04:03 +01:00
Peter KovacsandAdam Saghy 2595224ff1 FINERACT-2354: Re-aging: EQUAL AMORTIZATION BEHAVIOUR - Reversal of Re-aging transaction - E2E tests 2025-11-25 13:01:43 +01:00
Adam Saghy fdf3568081 FINERACT-2326: Update Transaction Summary report with txn classification details 2025-11-25 10:38:57 +01:00
MarianaDmytrivBinariksandAdam Saghy 5784cb7edb FINERACT-2354: e2e test scenarios for re-aging with payable and full interest handling options 2025-11-21 15:02:34 +01:00
Soma SörösandAdam Saghy 747121bbe2 FINERACT-2354: Re-aging: -Interest Handling Option: Equal amortization 2025-11-21 15:02:34 +01:00
Jose Alberto HernandezandAdam Saghy 47e8674fa0 FINERACT-2405: totalUnpaidPayableNotDueInterest resets to 0 on Charge-Off 2025-11-19 19:58:33 +01:00
Jose Alberto HernandezandAdam Saghy 2681ee3518 FINERACT-2389: Pay-Off amount incorrectly calculated when downpayment 2025-11-19 16:45:47 +01:00
Jose Alberto HernandezandAdam Saghy 60526f0ce9 FINERACT-2389: Negative amount is shown on repayment schedule 2025-11-18 14:28:20 +01:00
Akshat SoniandArnold Gálovics 9a16a26d5f FINERACT-2407: add precheck 2025-11-17 12:56:01 +01:00
Akshat SoniandArnold Gálovics ce813d877c FINERACT-2407: add permission READ_FAMILYMEMBERS id removed field=id 2025-11-17 12:56:01 +01:00
Akshat SoniandArnold Gálovics 7ed0f4d991 FINERACT-2407: add permission READ_FAMILYMEMBERS 2025-11-17 12:56:01 +01:00
Mend RenovateandArnold Gálovics 8711258875 FINERACT-2181: Update actions/stale action to v10 2025-11-17 12:54:48 +01:00
Mend RenovateandArnold Gálovics dfd00bf119 FINERACT-2181: Update ghcr.io/navikt/mock-oauth2-server Docker tag to v3 2025-11-17 12:54:11 +01:00
Mend RenovateandArnold Gálovics 0d1a542de1 FINERACT-2181: Update dependency org.yaml:snakeyaml to v2 2025-11-17 12:54:03 +01:00
Peter KovacsandArnold Gálovics 6f6a1d9ea2 FINERACT-1724: [doc] Downpayment user documentation 2025-11-17 08:36:53 +01:00
Adam Saghy da1f310d43 FINERACT-2326: Fix duplicate reverse replay of ‘Accrual Activity’ during reprocessing 2025-11-13 18:15:18 +01:00
Peter KovacsandAdam Saghy 1b3217be39 FINERACT-2326: Loan contract termination same disbursement date - E2E 2025-11-13 12:47:46 +01:00
Jose Alberto HernandezandAdam Saghy a0b31bbb25 FINERACT-2326: Loan contract termination same disbursement date 2025-11-13 12:47:46 +01:00
Rustam ZeinalovandAdam Saghy fdb9e5518c FINERACT-2354: Fourth step - Chargeback before re-age edge case for Interest bearing loans - updated e2e scenario tags 2025-11-13 12:46:26 +01:00
mariiaKraievskaandAdam Saghy 4c238801ac FINERACT-2354: Fourth step - Chargeback before re-age edge case for Interest bearing loans - Default Behavior, interestRecalculation = true, without dueDate change 2025-11-13 12:46:26 +01:00
MarianaDmytrivBinariksandAdam Saghy 0d737b21cd FINERACT-2354: e2e test scenarios for re-aging reverse-replay for default behaviour 2025-11-13 12:43:53 +01:00
mariiaKraievskaandAdam Saghy 5ca10eb1f9 FINERACT-2354: Re-aging: DEFAULT BEHAVIOUR - Reverse Replay handling, additional test case 2025-11-13 12:43:53 +01:00
Adam Saghy c79c076ee6 FINERACT-2354: In case full transaction reprocessing, we need to recalculate the schedule as well 2025-11-13 08:44:22 +01:00
Adam Saghy 051571003e FINERACT-2354: Work with DTOs instead of entities inside ProgressiveEMICalculator 2025-11-13 08:44:22 +01:00
Rustam ZeinalovandAdam Saghy 068e398f90 FINERACT-2354: Addding e2e tests covering - backdated re-age edge case for interest bearing loans 2025-11-13 08:44:22 +01:00
mariiaKraievskaandAdam Saghy 5a1c6edbef FINERACT-2354: Third step - backdated re-age edge case for Interest bearing loans - Default Behavior, interestRecalculation = true, without dueDate change 2025-11-13 08:44:22 +01:00
MarianaDmytrivBinariksandAdam Saghy 01ca515e8f FINERACT-2354: e2e test scenarios for re-aging preview 2025-11-11 12:04:51 +01:00
Oleksii NovikovandAdam Saghy 3efafa778e FINERACT-2354: Introduce reaging preview API 2025-11-11 12:04:51 +01:00
Mend RenovateandArnold Gálovics ed8e9d1376 FINERACT-2181: Update dependency org.liquibase.ext:liquibase-postgresql to v5 2025-11-11 10:03:34 +01:00
Mend RenovateandArnold Gálovics 4e71edda97 FINERACT-2181: Update dependency org.liquibase:liquibase-core to v5 2025-11-11 10:03:22 +01:00
Mend RenovateandArnold Gálovics d0e3dff93a FINERACT-2181: Update dependency io.github.bonigarcia:webdrivermanager to v6 2025-11-11 08:55:16 +01:00
Arnold GalovicsandArnold Gálovics fe4c970e05 FINERACT-2389: Fix for starting up in Liquibase only mode and pipeline to verify this to prevent breaking 2025-11-07 11:18:30 +01:00
Oleksii NovikovandAdam Saghy 9a83ca7787 FINERACT-2181: Add e2e test to verify repayment reversal after adding a fee charge with transaction reprocessing 2025-11-07 11:15:39 +01:00
Peter KovacsandAdam Saghy 0f4e68567f FINERACT-2354: Reversal of re-aging transaction - E2E tests 2025-11-07 10:23:26 +01:00
Peter KovacsandAdam Saghy 1b2801447b FINERACT-2354: Reversal of re-aging transaction - remove restriction of reversal if there was payment after or on that day 2025-11-07 10:23:26 +01:00
cucusenokandAdam Saghy 9320dd1bd7 FINEREACT-2404: Improved extensibility and cleanup 2025-11-07 10:19:40 +01:00
MarianaDmytrivBinariksandAdam Saghy d269cb983f FINERACT-2406: e2e test scenarios for flush mode while reprocessing 2025-11-06 21:12:58 +01:00
Adam Saghy ccf760c79d FINERACT-2406: Set COMMIT flush mode during transaction processing 2025-11-06 21:12:58 +01:00
Arnold GalovicsandArnold Gálovics 5079203d57 FINERACT-2389: Fix for rounding mode not being initialized whenever a new tenant is added to the system without a restart 2025-11-06 14:46:25 +01:00
MarianaDmytrivBinariksandAdam Saghy 63c220e5d2 FINERACT-2403: e2e test scenarios for last emi payment 2025-11-03 14:43:52 +01:00
Adam Saghy dc0162c09a FINERACT-2403: Fix incorrect EMI calculation of last installment 2025-11-03 14:43:52 +01:00
alburquerquerangelarturoandAdam Saghy 5c8d86cba5 FINERACT-2394:Fixed Deposits is creating double Interest Postings 2025-11-03 10:59:54 +01:00
Aman MittalandAdam Monsen 8c3c44b618 FINERACT-2402: Replace delimiter : with = in kafka-server.env 2025-10-31 13:52:18 -07:00
Adam SaghyandArnold Gálovics 774e164601 FINERACT-2389: Update Transaction Summary Report with Asset Owner report 2025-10-31 12:31:17 +01:00
MarianaDmytrivBinariksandAdam Saghy ba05687292 FINERACT-2401: e2e test scenarios interest pause biz events 2025-10-31 09:58:06 +01:00
Oleksii NovikovandAdam Saghy 1b4abd18a9 FINERACT-2401: Add business events for interest pause actions 2025-10-31 09:58:06 +01:00
5ea7c36804 FINERACT-2402: Replace the legacy Bitnami Kafka Docker image with the official Apache Kafka image. (#5131)
Co-authored-by: Aman Mittal <aman.mittal@cjdarcl.com>
2025-10-30 10:04:09 -06:00
mariiaKraievskaandAdam Saghy 67e823f926 FINERACT-2354: Second step - charge-off edge case of re-aging for Interest bearing loans - Default Behavior, interestRecalculation = true, without dueDate change 2025-10-29 13:30:38 +01:00
Andreas RøsdalandAdam Saghy 6386eb142b FINERACT-2389: Upgrade OpenPDF to v3 2025-10-29 12:38:18 +01:00
Jose Alberto HernandezandAdam Saghy a849e9bae3 FINERACT-2398: Re-amortization Interest Handling configuration 2025-10-29 12:13:05 +01:00
Peter KovacsandAdam Saghy 8a86759773 FINERACT-2389: Fix the handling of nullable field overrides - E2E tests 2025-10-29 11:26:16 +01:00
Oleksii NovikovandAdam Saghy adc4ee3545 FINERACT-2389: Fix the handling of nullable field overrides 2025-10-29 11:26:16 +01:00
Adam Saghy b32837e9b4 FINERACT-2390: Fix infinite loop issue 2025-10-28 09:25:47 +01:00
MarianaDmytrivBinariksandAdam Saghy 1596d09e54 FINERACT-2390: e2e test scenarios for infinite loop with MIR trn issue 2025-10-28 09:25:47 +01:00
dependabot[bot]andArnold Gálovics 331a762a38 Bump actions/upload-artifact from 4.6.2 to 5.0.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.2 to 5.0.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/ea165f8d65b6e75b540449e92b4886f43607fa02...330a01c490aca151604b8cf639adc76d48f6c5d4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-28 07:54:41 +01:00
mariiaKraievskaandAdam Saghy d21a1a98a2 FINERACT-2354: First step - basic implementation of re-aging for Interest bearing loans - Default Behavior, interestRecalculation = true, without dueDate change 2025-10-27 14:22:46 +01:00
Rustam ZeinalovandAdam Saghy 23c1b2b8af FINERACT-2354: added e2e tests for validation of re-aging for interest bearing products with interest calculation: default behavior 2025-10-27 14:22:46 +01:00
MarianaDmytrivBinariksandAdam Saghy e95e4da65e FINERACT-2385: e2e test scenarios for re-aging disallowed with zero amount 2025-10-27 10:45:14 +01:00
Oleksii NovikovandAdam Saghy 4ae6fd5694 FINERACT-2385: Zero amount reage transaction should not be allowed 2025-10-27 10:45:14 +01:00
MarianaDmytrivBinariksandAdam Saghy 54e85c748d FINERACT-2382: e2e test scenarios for flat cumulative multidisbursal loan 2025-10-27 10:14:46 +01:00
Jose Alberto HernandezandAdam Saghy 2269d616dc FINERACT-2382: Repayment schedule for Flat-Cumulative-Multi Disbursement 2025-10-27 10:14:46 +01:00
Adam SaghyandArnold Gálovics 567b12170b FINERACT-2389: Improve E2E test data initialization resilience 2025-10-24 08:52:24 +02:00
Adam Saghy 6532b8d522 FINERACT-2389: Automatically close loans at the end of test executions 2025-10-23 00:18:49 +02:00
Adam MonsenandGitHub 4ea19469cb FINERACT-2397: update release manager docs post-1.13.0 release (#5116)
* release step 6: emphasize "re-run the command above"
* release step 9: link to Database Setup in e2e or integration section (currently links to e2e since `cucumber.adoc` precedes `integration.adoc` in `fineract-doc/src/docs/en/chapters/testing/index.adoc`)
* release step 10: improve rc verify instructions in voting email, based on https://lists.apache.org/thread/jk2qzjxc89hd1c8xzvhtmlbbj1m8ktbl - thread: "release process improvement (was: 🗳️ 1.13.0 for release)"
* release step 15: use current mission statement from top-level readme in release announcement email
2025-10-22 08:44:22 -06:00
Peter KovacsandAdam Saghy d37b45251f FINERACT-2326: fix delinquency date calculation after pause - E2E test 2025-10-22 13:17:32 +02:00
Attila BudaiandAdam Saghy 13170dc551 FINERACT-2326: fix delinquent days & delinquency date after delinquency pause calculations 2025-10-22 13:17:32 +02:00
Attila BudaiandAdam Saghy 967dbed021 FINERACT-2380: feign related test fixes 2025-10-21 19:48:41 +02:00
Adam Saghy d6354ee408 FINERACT-2396: Fix retry issue during persisting CommandSource 2025-10-21 18:38:05 +02:00
Adam Monsen a561264f81 Merge branch 'release/1.13.0' into develop
* release/1.13.0:
  don't include actual email addresses
  save 1.13.0 vote result
  shorten/simplify gpg key sending commands
  update link to rc verification instructions
  fix typos in step 9 re: running the binary
  improve step 9 artifact verification gpg tips
  fix tarball explosion in release step 9 🧯
  cucumber.adoc: fix list continuations
  further improve release steps 6 and 9
  release step 6: fix sanity check example
  improve staging doc and commands in release step 8
  doc: remove errant config but keep :sectlinks:
  clean during artifact build release step 6
  FINERACT-2326: Do not remove external id if transaction got not replayed
  FINERACT-2326: Fix `Trial Balance Summary with asset owner` report
  FINERACT-2326: Loan point in time API now properly handles future dates
  improve release branch email template
  improve release process kickoff email template
2025-10-20 08:54:29 -07:00
Adam Monsen 826608f6cc don't include actual email addresses
might help voters avoid a bit of spam
2025-10-20 08:05:08 -07:00
Rustam ZeinalovandAdam Saghy 56b69d6fa0 FINERACT-2389: added e2e test to validate loan rescheduling on the first day of 1st repayment schedule 2025-10-20 15:46:37 +02:00
Adam Saghy d42ba45c9a FINERACT-2389: Fix related installment query 2025-10-20 15:46:37 +02:00
Adam Monsen ccfce92a3b save 1.13.0 vote result 2025-10-19 09:50:06 -07:00
Attila BudaiandAdam Saghy 553347b320 FINERACT-2380: create feign client 2025-10-17 14:25:39 +02:00
NickeshandAdam Saghy f193bbbdf1 FINERACT-2391: check for AppUser type before casting Authentication Principal 2025-10-15 15:02:25 +02:00
Jose Alberto HernandezandAdam Saghy b9e6f21e18 FINERACT-2354: Re-aging-for-interest-bearing-products 2025-10-15 11:38:10 +02:00
Aman-MittalandAdam Saghy c50113a868 FINERACT-2346: Minor SonarQube fixes 2025-10-15 10:05:25 +02:00
Peter KovacsandArnold Gálovics 3b62d562a2 FINERACT-2358: Advanced-accounting-rules-based-on-write-off-reason E2E tests 2025-10-15 09:52:16 +02:00
Jose Alberto HernandezandArnold Gálovics c518d8622a FINERACT-2358: Advanced accounting rules based on write-off reason 2025-10-14 20:26:24 +02:00
dependabot[bot]andArnold Gálovics bef931ca17 Bump actions/setup-node from 5.0.0 to 6.0.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/a0853c24544627f65ddf259abe73b1d18a591444...2028fbc5c25fe9cf00d9f06a71cc4710d4507903)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-14 20:18:49 +02:00
Felix van HoveandGitHub 1a2ab056e9 FINERACT-2383: Modernize and correct README page (#5076)
see

https://github.com/apache/fineract/pull/5076

https://issues.apache.org/jira/browse/FINERACT-2383

https://lists.apache.org/thread/6nctwb6g6krxxtcxr3q1blx2xb9w8h1s
2025-10-14 09:23:04 -07:00
dependabot[bot]andArnold Gálovics 54d7f8bae8 Bump gradle/actions from 4 to 5
Bumps [gradle/actions](https://github.com/gradle/actions) from 4 to 5.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](https://github.com/gradle/actions/compare/v4...v5)

---
updated-dependencies:
- dependency-name: gradle/actions
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-14 16:01:59 +02:00
Arnold GalovicsandArnold Gálovics 1bf71fb561 FINERACT-2326: Minor fix to generate IDs for saved interest transaction for loans 2025-10-14 12:27:35 +02:00
Mend RenovateandArnold Gálovics 09e0b97b22 FINERACT-2181: Update actions/setup-java action to v5 2025-10-14 12:27:22 +02:00
Mend RenovateandArnold Gálovics f366f441b4 FINERACT-2181: Update actions/setup-node digest to 49933ea 2025-10-14 12:27:12 +02:00
Adam Monsen 95e6cea504 shorten/simplify gpg key sending commands
also: change <3> to match text above, omitting otherwise helpful 0x hex designation prefix
2025-10-13 09:40:15 -07:00
Adam Monsen 1005b56d0f update link to rc verification instructions
Fineract Build & Cucumber tests (without E2E tests) / verify (main, build-core) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (main, cucumber) (push) Canceled after 0s
Fineract Build & Cucumber tests (without E2E tests) / verify (progressive-loan, build-progressive-loan) (push) Canceled after 0s
Fineract Docker Builds / build (false, docker-compose-postgresql.yml, postgresql) (push) Canceled after 0s
Fineract Docker Builds / build (true, docker-compose.yml, mariadb) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 1 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 10 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 2 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 3 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 4 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 5 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 6 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 7 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 8 of 10) (push) Canceled after 0s
Fineract E2E Tests / E2E Tests (Shard 9 of 10) (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MariaDB / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - MySQL / test (test-core-5) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-1) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-2) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-3) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-4) (push) Canceled after 0s
Fineract Cargo & Unit- & Integration tests - PostgreSQL / test (test-core-5) (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with ActiveMQ (push) Canceled after 0s
Fineract Messaging Smoke Tests / Smoke Test with Kafka (push) Canceled after 0s
2025-10-13 09:23:35 -07:00
Adam Monsen e8673d5ff3 fix typos in step 9 re: running the binary 2025-10-13 09:19:15 -07:00
Adam Monsen 5d478f5fbb improve step 9 artifact verification gpg tips 2025-10-13 09:14:22 -07:00
MarianaDmytrivBinariksandArnold Gálovics a58db39a74 FINERACT-2326: added e2e auto tests for accrual reversal logic issue 2025-10-13 15:24:21 +02:00
Adam Monsen 513fbe1833 fix tarball explosion in release step 9 🧯 2025-10-11 17:17:32 -07:00
Adam Monsen ee55b4ef75 cucumber.adoc: fix list continuations
Fixes:

```
> Task :fineract-doc:asciidoctorPdf
chapters/testing/cucumber.adoc: line 409: list item index: expected 1, got 3
chapters/testing/cucumber.adoc: line 411: list item index: expected 2, got 4
chapters/testing/cucumber.adoc: line 418: list item index: expected 1, got 5
```

See https://docs.asciidoctor.org/asciidoc/latest/lists/continuation/#list-continuation
2025-10-11 17:17:31 -07:00
Adam Monsen cce46de767 further improve release steps 6 and 9
Originally I thought I was causing issues by running `./gradlew clean` separate from `./gradlew srcDistTar binaryDistTar`. If I did (or so I thought), a `fineract-provider/build/classes/java/main/git.properties` file was _sometimes_ not generated (the `generateGitProperties` task failing, misbehaving, or not even running? was the file getting deleted? no idea).

Unsure of the cause, at least I understand that file is supposed to end up at `BOOT-INF/classes/git.properties` in `fineract-provider-VERSION.jar` in the binary release tarball. Its contents are displayed at the `/fineract-provider/actuator/info` endpoint. I think that's more or less how it works, but I did not spend enough time on this to be certain.

Now I think it wasn't at all related to how I was running our Gradle tasks, but rather some nasty behavior in gradle-git-properties:

* https://github.com/n0mer/gradle-git-properties/issues/233
* https://github.com/gradle/gradle/issues/34177

Yuck. 🤢
2025-10-11 17:17:03 -07:00
Adam Monsen 6052ae60b4 release step 6: fix sanity check example 2025-10-10 14:33:47 -07:00
Adam SaghyandArnold Gálovics 469489d408 FINERACT-2389: Update Transaction Summary with Asset Owner report 2025-10-10 19:32:21 +02:00
Adam Monsen 6f09c9425d improve staging doc and commands in release step 8 2025-10-09 10:58:08 -07:00
Adam Monsen 45404bafba doc: remove errant config but keep :sectlinks:
See 89e9cfcd7d

I think this was a typo. It's presumably changing the highlighter midstream and causing section numbering to start at the "Fineract Development Environment" chapter. But I really like `:sectlinks:` and I want to keep that! It's handy for sharing deep / sorta permanent links to specific sections (just click on any heading and copy the URL).
2025-10-09 10:29:07 -07:00
Adam Monsen 80c84af3a4 clean during artifact build release step 6
I think the `clean` task is important here, Felix and I were seeing
issues with jar filenames with incorrect version numbers. His work on
FINERACT-2341 may have fixed whatever was causing it, but let's
also/still do the `clean` before building release artifacts / candidates
just to be safe.
2025-10-09 10:29:00 -07:00
Adam Saghy 7791939860 FINERACT-2326: Do not remove external id if transaction got not replayed 2025-10-08 21:38:32 +02:00
Adam Saghy ebae20654a FINERACT-2326: Do not remove external id if transaction got not replayed 2025-10-08 21:33:04 +02:00
Adam Saghy 6066c0d97f FINERACT-2326: Fix Trial Balance Summary with asset owner report 2025-10-08 17:05:57 +02:00
Adam Saghy b692248a8a FINERACT-2326: Fix Trial Balance Summary with asset owner report 2025-10-08 17:05:02 +02:00
Arnold GalovicsandArnold Gálovics a950e4e36a FINERACT-2326: Loan point in time API now properly handles future dates 2025-10-08 10:31:21 +02:00
Arnold GalovicsandArnold Gálovics c9c9e9f835 FINERACT-2326: Loan point in time API now properly handles future dates 2025-10-08 10:29:59 +02:00
Mend RenovateandArnold Gálovics ccfe062649 FINERACT-2181: Update actions/checkout action to v5 2025-10-08 08:52:25 +02:00
Adam Monsen 288319b874 improve release branch email template
* fix typos
* simplify
* adapt to how I use this today, including explicit branch name
2025-10-07 11:17:42 -07:00
Adam Monsen c1d005d00e improve release process kickoff email template
this is shorter & sweeter
2025-10-07 10:12:24 -07:00
Adam Saghy 4838843b5c FINERACT-2326: Upgrade dependencies 2025-10-07 16:11:55 +02:00
Adam Saghy 3a59a72891 FINERACT-2326: Fix Trial Balance Summary with asset owner report 2025-10-07 16:11:49 +02:00
Víctor RomeroandAdam Saghy 0a0e3eb504 FINERACT-2326: Upgrade dependencies
FINERACT-2326: Upgrade dependencies - Postgresql
2025-10-07 13:58:44 +02:00
dependabot[bot]andArnold Gálovics 43b61ab715 Bump actions/stale from 10.0.0 to 10.1.0
Bumps [actions/stale](https://github.com/actions/stale) from 10.0.0 to 10.1.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/3a9db7e6a41a89f618792c92c0e97cc736e1b13f...5f858e3efba33a5ca4407a664cc011ad407f2008)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: 10.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 20:40:23 +02:00
kengneruphineandArnold Gálovics 8e3de2b72a FINERACT-2359: Wrong Days in Year configuration used for calculating interest 2025-10-06 20:00:27 +02:00
Adam SaghyandArnold Gálovics e0e4415727 FINERACT-2387: Fix zero amount reversed transaction creation issue 2025-10-06 19:59:19 +02:00
mariiaKraievskaandAdam Saghy 09bacb8827 FINERACT-2348: Accounting mismatch in case amortization and amortization adjustment occurs at the same time 2025-10-06 11:25:34 +02:00
Adam Saghy ceb9f0f783 FINERACT-2386: Update read query to support other products 2025-10-06 11:24:30 +02:00
Adam Saghy 334da61ed8 FINERACT-2348: Add missing indexes 2025-10-06 11:23:33 +02:00
Adam Saghy 89e9cfcd7d FINERACT-2386: Journal entry aggregation capabilities 2025-10-03 11:07:12 +02:00
Adam SaghyandArnold Gálovics 297fa8e707 FINERACT-2326: Close opened savings account after integration test execution 2025-10-02 20:57:25 +02:00
JohnAlvaandAdam Saghy 963f8550b8 FINERACT-2378: Failing integration test: org.apache.fineract.integrationtests.SchedulerJobsTestResults#testInterestTransferForSavings 2025-10-01 15:32:13 +02:00
sayhaedandAdam Saghy d782e65fc2 FINERACT-2376: Unable to re-invest maturity amount or principal for fixed deposit at closing 2025-10-01 15:31:25 +02:00
Attila BudaiandAdam Saghy cb7ead208f FINERACT-1724: Document integration and e2e testing in fineract 2025-10-01 12:14:57 +02:00
MarianaDmytrivBinariksandAdam Saghy 5a56ea50f3 FINERACT-2384: e2e tests for re-age trn before maturity date 2025-10-01 12:12:43 +02:00
Soma SörösandAdam Saghy d50906bef2 FINERACT-2384: Incorrect reage transaction date and repayment schedule 2025-10-01 12:12:43 +02:00
Soma SörösandAdam Saghy d6323be7dd FINERACT-2358: Allow to configure advanced accounting rules based on write-off reason 2025-10-01 10:29:03 +02:00
Peter KovacsandAdam Saghy 641f755193 FINERACT-2374: Advance Accounting rule for classification type - E2E tests 2025-09-30 12:27:45 +02:00
Jose Alberto HernandezandAdam Saghy cb70555485 FINERACT-2374: Advance Accounting rule for classification type 2025-09-30 12:27:45 +02:00
Adam Saghy 6d3e5fa150 FINERACT-2326: Update Kafka docker image for testing 2025-09-30 11:12:26 +02:00
Víctor RomeroandGitHub 1082067a6e Revert "FINERACT-2378: Failing integration test: org.apache.fineract.integrat…" (#5064)
This reverts commit 3b58f6af22.
2025-09-29 17:51:27 -06:00
Juan Pablo Alvarez HernandezandGitHub 3b58f6af22 FINERACT-2378: Failing integration test: org.apache.fineract.integrationtests.SchedulerJobsTestResults#testInterestTransferForSavings (#5059) 2025-09-29 17:50:40 -06:00
dependabot[bot]andArnold Gálovics c694b4a106 Bump actions/cache from 4.2.4 to 4.3.0
Bumps [actions/cache](https://github.com/actions/cache) from 4.2.4 to 4.3.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/0400d5f644dc74513175e3cd8d07132dd4860809...0057852bfaa89a56745cba8c7296529d2fc39830)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 4.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-29 08:31:21 +02:00
Adam SaghyandArnold Gálovics 8197e3c951 FINERACT-2326: Trigger manual sequential integration test run 2025-09-27 15:16:05 +02:00
MarianaDmytrivBinariksandAdam Saghy 9ab766387d FINERACT-2381: e2e tests for fixes with accruals calculation after reprocessing loan 2025-09-26 18:22:40 +02:00
Adam Saghy ef80634b4e FINERACT-2381: Fix Accrual Activity calculation 2025-09-26 18:22:40 +02:00
Ruphine KengneandGitHub e063081a82 FINERACT-2326: add test Fineract API requests to README 2025-09-25 08:48:18 -07:00
marta-jankovicsandGitHub f30aa368fd Merge pull request #5055 from adamsaghy/FINERACT-2326/e2e-tests-core-jar
Fineract 2326: e2e tests core jar
2025-09-25 13:29:10 +02:00
Adam Saghy 9c9ae2f6ce FINERACT-2326: Build jar for fineract-e2e-tests-core module 2025-09-25 11:37:39 +02:00
dependabot[bot]andArnold Gálovics 9015a81c4b Bump actions/setup-node from 4.4.0 to 5.0.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.4.0 to 5.0.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/49933ea5288caeca8642d1e84afbd3f7d6820020...a0853c24544627f65ddf259abe73b1d18a591444)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-25 08:19:43 +02:00
Adam Saghy 71af1cd35a FINERACT-2326: Run the integration tests sequentially on develop branch 2025-09-24 18:05:55 +02:00
MarianaDmytrivBinariksandAdam Saghy 38bdbc7943 FINERACT-2354: e2e tests for re-age trn with n+1 trns 2025-09-24 14:38:59 +02:00
Oleksii NovikovandAdam Saghy 5df6af6a23 FINERACT-2354: Merge re-aged installment with the next (N+1) installment if they overlap 2025-09-24 14:38:59 +02:00
Adam Saghy 054e4aee52 FINERACT-2326: Run the integration tests sequentially on develop branch 2025-09-23 15:30:03 +02:00
Adam SaghyandArnold Gálovics 84c90d6016 FINERACT-2326: Fix split-tests.sh script 2025-09-23 09:34:44 +02:00
Adam Saghy 7f07c0afce FINERACT-2326: Upgrade asciidoc dependencies 2025-09-18 20:55:01 +02:00
Adam Monsen d48eb161ea FINERACT-2377: upgrade Gradle to 8.14.3
9 didn't work
2025-09-18 11:23:12 -05:00
Adam SaghyandArnold Gálovics f52c94751e FINERACT-2326: Upgrade dependencies 2025-09-18 17:29:31 +02:00
Adam Saghy 0dd34ebaa6 Revert "FINERACT-2350: Fix DockerHub tags, use 'latest' for develop and version tags for release"
This reverts commit eaa9c858ed.
2025-09-18 09:35:05 +02:00
Adam Saghy 03b1b1bb12 Revert "FINERACT-2350: Fix Spotless formatting"
This reverts commit 2ea85ea37d.
2025-09-18 09:35:05 +02:00
tomasAscencioandGitHub a2c66e6c31 FINERACT-2353: openAPI definition does not expose required GET parameters (#5025) 2025-09-16 21:43:35 -06:00
Peter KovacsandAleksandar Vidakovic e1cfbb4d20 FINERACT-2326: Reprocessing loan internal api for testing purpose - E2E tests 2025-09-16 15:11:55 +02:00
Jose Alberto HernandezandAleksandar Vidakovic 000ebb4c1d FINERACT-2326: Reprocessing loan internal api for testing purpose 2025-09-16 15:11:55 +02:00
MarianaDmytrivBinariksandAleksandar Vidakovic 23080c5041 FINERACT-2354: e2e tests for N+1 installment with re-age trn 2025-09-16 10:54:00 +02:00
Oleksii NovikovandAleksandar Vidakovic 8bddd15113 FINERACT-2354: Handle N+1 installment together with re-aged installment correctly 2025-09-16 10:54:00 +02:00
Adam Saghy e02aaa9a1c FINERACT-2326: Upgrade dependencies 2025-09-15 16:43:53 -05:00
Rustam ZeinalovandAleksandar Vidakovic 3c3e2811ca FINERACT-2326: updated e2e test to verify loan status and outstanding balance 2025-09-15 17:40:25 +02:00
mariiaKraievskaandAleksandar Vidakovic c7f5743b12 FINERACT-2326: Repayment Reversal Failing After Full Repayment of Principal and Fee 2025-09-15 17:40:25 +02:00
Adam Saghy 627ccf603f FINERACT-2326: Upgrade dependencies 2025-09-12 10:32:13 -05:00
CsengeSótiandArnold Gálovics fa9c7b9364 FINERACT-1984: OAuth2.1 2025-09-12 14:58:37 +02:00
Arnold GalovicsandArnold Gálovics 0c0d8592bb FINERACT-2326: Fix for loading loan summaries for multiple loans 2025-09-10 21:21:32 +02:00
Akshat SoniandAdam Saghy 2ea85ea37d FINERACT-2350: Fix Spotless formatting 2025-09-10 19:44:19 +02:00
Akshat SoniandAdam Saghy eaa9c858ed FINERACT-2350: Fix DockerHub tags, use 'latest' for develop and version tags for release 2025-09-10 19:44:19 +02:00
mariiaKraievskaandAdam Saghy 8da0842f87 FINERACT-2348: Refactor Capitalized income / Buydown fee amortization allocation calculation 2025-09-10 12:30:38 +02:00
JohnAlvaandAdam Saghy 719cba74c2 FINERACT-2312: Post interest with adjustments for savings accounts 2025-09-10 10:16:29 +02:00
sayhaedandAdam Saghy 44e71bf171 FINERACT-2312: Reverse of Accruals to adjust late deposits 2025-09-10 10:14:15 +02:00
Adam Monsen 6aea428d87 clarify "builds" refers to GitHub 2025-09-09 08:40:44 -07:00
MarianaDmytrivBinariksandAdam Saghy 56d410d4f5 FINERACT-2308: e2e tests for multiple tranches at the same date 2025-09-09 15:32:13 +02:00
Attila BudaiandAdam Saghy 91c9c4e61f FINERACT-2308: fix duplicates for multiple tranches 2025-09-09 15:32:13 +02:00
MarianaDmytrivBinariksandAdam Saghy 467d82846d FINERACT-2354: e2e tests for re-age trn undo and again added at the same date 2025-09-09 12:12:22 +02:00
Oleksii NovikovandAdam Saghy 7ee1919ddb FINERACT-2354: Allow re-age today if the previous re-age was reversed 2025-09-09 12:12:22 +02:00
Arun KandAdam Saghy 5b1d72d15b FINERACT-821: Replace 500 by meaningful error when request requires configured S3 2025-09-08 23:12:54 +02:00
Felix van HoveandAdam Saghy 4838526a05 FINERACT-2341: Correct version calculation in gradle 2025-09-08 21:35:25 +02:00
dependabot[bot]andArnold Gálovics ddc476c407 Bump actions/stale from 9.1.0 to 10.0.0
Bumps [actions/stale](https://github.com/actions/stale) from 9.1.0 to 10.0.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/5bef64f19d7facfb25b37b414482c7164d639639...3a9db7e6a41a89f618792c92c0e97cc736e1b13f)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: 10.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 20:46:56 +02:00
mariiaKraievskaandAdam Saghy cd0ecfcda0 FINERACT-2348: Calculate and store Capitalized income / Buydown fee amortization allocation schedule 2025-09-08 14:00:06 +02:00
Arnold GalovicsandArnold Gálovics 9790f59e4a FINERACT-2326: Fix for NPE when account fund transfer happens 2025-09-06 12:20:31 +02:00
Adam Saghy 240a51eec1 FINERACT-2373: Fix backward compatibility issue of Loan COB 2025-09-05 18:36:19 +02:00
Adam SaghyandGitHub a81f4f8fe9 FINERACT-2326: CodeValue serialization enhancement (#5007) 2025-09-04 11:53:02 -06:00
budaidevandGitHub fdcb013e7a FINERACT-2326: documenting loan charge (#5009) 2025-09-04 11:48:58 -06:00
JohnAlvaandAdam Saghy fb8f2f7cb6 FINERACT-2312: Reverse of Accruals to adjust late deposits 2025-09-04 10:25:51 +02:00
Juan-Pablo-AlvarezandAdam Saghy a6fa1adc99 FINERACT-2312: Post interest with adjustments for savings accounts 2025-09-04 10:24:42 +02:00
MarianaDmytrivBinariksandAdam Saghy ef1e2e1095 FINERACT-2355: e2e tests for merchant issued refunds allocation with paid installments 2025-09-03 12:55:58 +02:00
Oleksii NovikovandAdam Saghy 33c74abeb7 FINERACT-2355: Fix charge off and loan charge for zero installments 2025-09-03 12:55:58 +02:00
Attila BudaiandAdam Saghy 7378aea0b2 FINERACT-2267: proper not null annotations. Remove jetbrains notnull, all services use non-null 2025-09-03 12:24:37 +02:00
Jose Alberto HernandezandAdam Saghy 65538495aa FINERACT-2347: Introduce classification field on loan transactions 2025-09-03 11:43:06 +02:00
Jose Alberto HernandezandArnold Gálovics 9ba17bf79a FINERACT-2326: Delinquent section in loan details using associations 2025-09-02 20:21:13 +02:00
Adam SaghyandArnold Gálovics 937bfe529c FINERACT-2326: Improve LoanTransactionData DTO structure 2025-09-02 20:20:33 +02:00
Rustam ZeinalovandAdam Saghy d06eb618d0 FINERACT-2356: added e2e tests for validation of accounting during write-off in case the loan was already charged-off 2025-09-01 13:43:43 +02:00
mariiaKraievskaandAdam Saghy b9564f806b FINERACT-2356: Fix incorrect accounting during write-off in case the loan was already charged-off 2025-09-01 13:43:43 +02:00
Attila BudaiandAdam Saghy 567e1c9800 FINERACT-2081: ESAPI.encoder().encodeForSQL is deprecated, so replaced the method with parameterized queries based solution with user input validation 2025-09-01 13:41:49 +02:00
MarianaDmytrivBinariksandAdam Saghy 917dd4d117 FINERACT-2326: added e2e auto tests for available over applied amount with disbursement amount calculation 2025-08-28 11:09:45 +02:00
mariiaKraievskaandAdam Saghy 2cba4430c7 FINERACT-2326: Add additional field which would return available disbursement amount with over applied amount 2025-08-28 11:09:45 +02:00
dependabot[bot]andArnold Gálovics 8bd9444689 Bump actions/checkout from 4.3.0 to 5.0.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.3.0 to 5.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/08eba0b27e820071cde6df949e0beb9ba4906955...08c6903cd8c0fde910a37f88322edcfb5dd907a8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-27 18:34:41 +02:00
dependabot[bot]andArnold Gálovics fd18235d9e Bump actions/setup-java from 4.7.1 to 5.0.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.7.1 to 5.0.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/c5195efecf7bdfc987ee8bae7a71cb8b11521c00...dded0888837ed1f317902acf8a20df0ad188d165)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-27 18:34:31 +02:00
Jose Alberto HernandezandAdam Saghy 7bf43970f2 FINERACT-2326: Swagger - Add capitalizedIncomeAdjustment as part Loan summary 2025-08-27 11:05:03 +02:00
Rustam ZeinalovandAdam Saghy f87f5207da FINERACT-2173: added e2e tests covering extended migration scenario with multidisbursal 2025-08-25 13:00:55 +02:00
Mend RenovateandArnold Gálovics a0dbbea7cf FINERACT-2181: Update actions/setup-java digest to c5195ef 2025-08-25 11:08:43 +02:00
Mend RenovateandArnold Gálovics 048b059f24 FINERACT-2181: Update actions/checkout digest to 08eba0b 2025-08-25 11:08:38 +02:00
Adam SaghyandArnold Gálovics 5d71ffd4ea FINERACT-2326: Use exact business date during savings account accrual tests 2025-08-25 09:28:12 +02:00
Arnold GalovicsandArnold Gálovics 9ef79f86a0 FINERACT-2326: Enhanced loan retrieval API to avoid some of the N+1 queries when loading summaries 2025-08-24 22:03:56 +02:00
Adam SaghyandArnold Gálovics 2a29b1ca0e FINERACT-2326: Deregister static mocks 2025-08-23 21:08:56 +02:00
Adam MonsenandArnold Gálovics 8f3ad9c092 FINERACT-2349: final 1.12.1 release doc updates
Tidy up docs post-1.12.1 release, alongside updates to https://cwiki.apache.org/confluence/display/FINERACT/
2025-08-21 18:16:53 +02:00
Arun KandArnold Gálovics fb911db8a9 FINERACT-2337 Fix docker publish for tags 2025-08-21 18:16:26 +02:00
dependabot[bot]andArnold Gálovics 9a138b2355 Bump actions/setup-java from 4.7.1 to 5.0.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.7.1 to 5.0.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/c5195efecf7bdfc987ee8bae7a71cb8b11521c00...dded0888837ed1f317902acf8a20df0ad188d165)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-21 18:15:49 +02:00
MarianaDmytrivBinariksandAdam Saghy 5b638c682b FINERACT-1926: added e2e tests for asset owner event changes with previous owner 2025-08-21 13:50:34 +02:00
Oleksii NovikovandAdam Saghy 4786139882 FINERACT-1926: Add previous owner to ExternalAssetOwnerTransfer 2025-08-21 13:50:34 +02:00
adam.magyariandAdam Saghy f1c28792f3 FINERACT-2326: Backdated loan charge-off accrual fix 2025-08-21 12:26:07 +02:00
MarianaDmytrivBinariksandAdam Saghy 4f27d5a225 FINERACT-2317: added e2e tests for update available disb amount validation with zero value 2025-08-21 11:35:23 +02:00
Oleksii NovikovandAdam Saghy 641dbe26d7 FINERACT-2317: Fix updating the available disbursed amount to zero after loan approval 2025-08-21 11:35:23 +02:00
Attila BudaiandAdam Saghy 8fe9dbc614 FINERACT-2327: when Interest Refund was created manually, we should only return the newly created Interest Refund transaction identifiers in the result. 2025-08-21 11:10:51 +02:00
MarianaDmytrivBinariksandAdam Saghy 6c875fa6c6 FINERACT-2330: added e2e tests for buy down fee for non-merchant 2025-08-21 10:23:09 +02:00
Jose Alberto HernandezandAdam Saghy 141f17ecfc FINERACT-2330: Buy-Down fees adjustment Acct for non merchant product 2025-08-21 10:23:09 +02:00
Soma SörösandAdam Saghy 14589e2600 FINERACT-1981: Progressive Loan schedule handling - Reschedule installment (Extend repayment period) 2025-08-21 10:22:07 +02:00
Rustam ZeinalovandAdam Saghy 47b55b5ee6 added e2e tests for validation of progressive Loan schedule handling - Reschedule installment (Extend repayment period) 2025-08-21 10:22:07 +02:00
Christopher Sayhaed Giron VegaandGitHub b349cf6831 FINERACT-2312: Accruals added for savings accounts (#4885) 2025-08-20 15:00:09 -06:00
04GomezandGitHub c936c19b85 FINERACT-2312: Adjustment to savings account products by adding a new accounting account interest receivables account. (#4876) 2025-08-20 09:54:18 -06:00
Peter KovacsandAdam Saghy 1e926669d3 FINERACT-1981: Reschedule loan with interest rate change from zero breaks repayment schedule and loan status to OVERPAID - E2E tests 2025-08-19 14:45:19 +02:00
Soma SörösandAdam Saghy 7285a958fe FINERACT-1981: Reschedule loan with interest rate change from zero breaks repayment schedule and loan status to OVERPAID 2025-08-19 14:45:19 +02:00
Oleksii NovikovandAdam Saghy b9a75cf9cc FINERACT-2279: Add contract termination documentation 2025-08-19 13:20:51 +02:00
mariiaKraievskaandAdam Saghy ace59352fa FINERACT-2233: Rework journal entry handling logic in Loan module 2025-08-19 13:19:40 +02:00
Adam Saghy 942ad0183c FINERACT-2326: Rework business date validation and dto handling 2025-08-19 13:18:40 +02:00
Adam Saghy f41d986b2a FINERACT-2326: Introduce FineractProgressiveLoanBeanConfiguration to allow conditionally register beans in fineract-progressive-loan module 2025-08-19 11:44:23 +02:00
Jose Alberto HernandezandAdam Saghy ea7a2589ca FINERACT-2232: DeferredIncomeApi as CapitalizedIncomeApi 2025-08-19 11:42:58 +02:00
Adam Saghy 77f7d9aab8 FINERACT-2326: Use Hibernate Validator 2025-08-18 19:07:34 +02:00
mariiaKraievskaandAdam Saghy 3fb9b94e47 FINERACT-2326: Fix UserLoanPermissionTest 2025-08-18 14:14:55 +02:00
Mend RenovateandArnold Gálovics 7214f55d58 FINERACT-2181: Update dependency com.puppycrawl.tools:checkstyle to v11 2025-08-18 08:28:26 +02:00
Mend RenovateandArnold Gálovics 0b66b4837f FINERACT-2181: Update dependency node to v22 2025-08-18 08:28:05 +02:00
Soma SörösandArnold Gálovics 18d6a7cf69 FINERACT-2326: Missing user permission for Capitalized Income and Buydown fee 2025-08-15 22:56:43 +02:00
Jose Alberto HernandezandArnold Gálovics 6bbc4bd3f3 FINERACT-2330: Buy-Down fees Accounting for non merchant product 2025-08-15 22:54:36 +02:00
Jose Alberto HernandezandArnold Gálovics 125c8b4db2 FINERACT-2326: Extract out external dependencies from Client and Group entity 2025-08-15 22:53:14 +02:00
dependabot[bot]andArnold Gálovics 37f31ecb14 Bump actions/checkout from 4.2.2 to 5.0.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.2 to 5.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/11bd71901bbe5b1630ceea73d27597364c9af683...08c6903cd8c0fde910a37f88322edcfb5dd907a8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-15 22:49:30 +02:00
Adam Saghy 0f53f7766a FINERACT-2326: Fix swagger generation 2025-08-15 14:55:21 +02:00
Adam SaghyandArnold Gálovics db5d8dd76f FINERACT-2326: Fix swagger generation 2025-08-15 13:41:55 +02:00
Adam Saghy bd89952e5c FINERACT-2326: Improve command query param regexp to allow hyphens 2025-08-15 13:03:39 +02:00
MarianaDmytrivBinariksandAdam Saghy 1e1787399a FINERACT-2343: added e2e tests for business date and currency validation 2025-08-14 15:35:26 +02:00
Oleksii NovikovandAdam Saghy 56f0b83d40 FINERACT-2343: Fix update currency api validation 2025-08-14 15:35:26 +02:00
Adam SaghyandArnold Gálovics 8e5113ddcd FINERACT-2326: Fix swagger generation 2025-08-14 09:54:16 +02:00
Oleksii NovikovandAdam Saghy ebb6b6c500 FINERACT-2324: Remove getLoanTransactions from accounting 2025-08-13 14:39:01 +02:00
Soma SörösandAdam Saghy 87c0a02402 FINERACT-2326: [DOC] Interest rate change documentation 2025-08-13 14:37:48 +02:00
Attila BudaiandAdam Saghy 2babdd3c64 FINERACT-2323: support the multiple legs for journal entries 2025-08-13 14:36:39 +02:00
Jose Alberto HernandezandAdam Saghy 33fae09afb FINERACT-2326: Charges with Tax group Id ignored 2025-08-13 13:58:21 +02:00
Jose Alberto HernandezandAdam Saghy c55cfe9d08 FINERACT-2326: Tax component and group issue serialization 2025-08-13 13:57:09 +02:00
adam.magyariandAdam Saghy 6b7df527de FINERACT-2338: Allow backdated interest change on progressive loans
- charge-off handling
- write-off handling
- closed loans
- external owner changes
2025-08-13 13:52:30 +02:00
Adam Saghy c2519c77c7 FINERACT-2326: Improve null-safety 2025-08-13 11:02:22 +02:00
adam.magyariandAdam Saghy 53d9790c8c FINERACT-2338: Allow backdated interest change on progressive loans - documentation 2025-08-11 15:09:56 +02:00
Attila BudaiandAdam Saghy 56c71f7fee FINERACT-2326: The journal entries should be ordered in explicit order 2025-08-11 15:06:47 +02:00
Adam MonsenandGitHub b9c2589247 FINERACT-2340: remove nonexistant project "fineract-api" (#4924) 2025-08-08 11:01:08 -06:00
b0ca0a24cc FINERACT-2314: IP tracking (#4825)
Co-authored-by: Juan Pablo Alvarez Hernandez <work_jpa@hotmailcom>
2025-08-08 10:58:19 -06:00
dependabot[bot]andArnold Gálovics 39050aa01f Bump actions/cache from 4.2.3 to 4.2.4
Bumps [actions/cache](https://github.com/actions/cache) from 4.2.3 to 4.2.4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/5a3ec84eff668545956fd18022155c47e93e2684...0400d5f644dc74513175e3cd8d07132dd4860809)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 4.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-08 17:02:30 +02:00
mark.vituskaandAdam Saghy 93ef69abb1 FINERACT-2317: Add documentation for approved amount modification endpoints 2025-08-08 09:57:31 +02:00
Adam Monsen 67272d1aea FINERACT-2336: improve asciidoc post-1.12.1 release
* update release notice years in NOTICE_RELEASE and NOTICE_SOURCE
* step 5
  * simplify mention of tests: "Ensure all tests pass for this commit both in CI and locally"
  * recommend GPG signing annotated release tag
* step 8: improve svn commands
  * This way is simpler and more efficient, especially with a bunch of release candidate dirs in the staging area.
* step 10: mention need to test rc before +1 vote -- See:
  * https://www.apache.org/legal/release-policy.html#release-approval
  * https://www.apache.org/legal/release-policy.html#approving-a-release
* step 12: only PMC members can upload releases
* step 13: simplify & explain "finalize branch" instructions
  * Document what worked for me for 1.12.1.
  * I didn't need to create the extra `merge-$VERSION` branch and do the recursive merge.
* document how asciidoctor upgrade is blocked
  * see "official docs - deps stuck" thread on fineract dev mailing list
  * https://lists.apache.org/thread/7mmsj13spb11vgz0z38fhwgzwtq03brr
  * can't upgrade to 4.x because of one of these:
    * https://github.com/asciidoctor/asciidoctorj-pdf/issues/25
    * https://github.com/jruby/jruby/issues/5573
    * https://github.com/asciidoctor/asciidoctorj-pdf/issues/16
* improve asciidoc config - opt for simplicity where the complexity adds nothing
  * compat-mode is off by default, no need for it here
  * default optimization should be fine
  * media should have been screen | print | prepress, just leave it as default instead
  * page size? I really don't think this is going to be printed much, just go with default
  * PDF version 1.8 is invalid, just use the default unless we someday have a good reason to pin this
  * reduce copyright years sources of truth
  * see also: https://docs.asciidoctor.org/pdf-converter/latest/asciidoc-attributes/
* remove unnecessary asciidoctorj 3.0.0 version string -- no need to pin this
* remove prompt character from Bash shell examples
  * it isn't properly syntax-highlighted and it looks confusing with line numbers (which we might want to add)
  * it isn't necessary
  * the prompt character ("%" in this case) is not typically included in shell code examples because it makes it harder to copy and paste shell code examples
  * $ is likely more common than % (at least on Debian/Ubuntu), but either way I'd say exclude it
* fix source code syntax labels - use "bash" only when it is actually Bash shell code
* persistence.adoc
  * fix broken enumerated list
    * resolves these warnings seen with, e.g.: `gradle --info doc`
    * `Jul 27, 2025 8:26:48 PM uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/parser.rb parse_list_item`
    * `WARNING: chapters/architecture/persistence.adoc: line 104: list item index: expected 1, got 2`
    * `Jul 27, 2025 8:26:48 PM uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/parser.rb parse_list`
    * `WARNING: chapters/architecture/persistence.adoc: line 110: list item index: expected 1, got 3`
  * fix wrapping (we use hardbreaks)
  * fix typo: `s/plane text/plain text/`
* switch to rouge syntax highlighter - it handles more source languages
* fix broken long shell code lines
* fix .avro file syntax highlighting (it's JSON)
* configuration-gpg.adoc
  * fix accidental block continuation
    * One little plus sign was making `= Email` appear verbatim in rendered output because it was interpreted as a list continuation.
    * See https://docs.asciidoctor.org/asciidoc/latest/lists/continuation/#list-continuation
  * recommend more secure keys
  * add a line continuation for an enumerated list
* architecture-overview.puml: remove this unused (likely a "Hello World") diagram
* release-schedule.puml: fix pluralization of days
  * purely aesthetic: doesn't affect chart rendering
* fix src/bin/binary tarball name typos
  * missed a few in e090da2a01
* fix release branch name
  * must match `release/{revnumber}`, per gitVersioning stanza in top level build.gradle
* harden.adoc: fix broken link to CISA
* fineract-doc/build.gradle
  * ensure HTML task has diagrams and images availble
2025-08-07 07:02:10 -07:00
Oleksii NovikovandAdam Saghy ebda7cee4b FINERACT-2311: Add buydown fees documentation 2025-08-07 14:52:47 +02:00
Pinchez25andAdam Saghy 52d3f32381 FINERACT-2218: Fix Type Mismatch in Survey Validation Query 2025-08-07 10:21:55 +02:00
Adam Monsen 0601bfca77 FINERACT-2339: squelch static weaving log messages
This quality of life patch reduces static weaving log message priority,
reducing the default gradle build output by about 60 lines.

example gradle run with these messages:

    > Configure project :custom
    ℹ Skipping static weaving configuration for non-Java project: custom

    > Configure project :fineract-accounting
    Configuring EclipseLink static weaving for fineract-accounting

    > Configure project :fineract-branch
    Configuring EclipseLink static weaving for fineract-branch
    ...
2025-08-06 09:33:03 -07:00
Oleksii NovikovandAdam Saghy 68474e250d FINERACT-2232: Add capitalize income documentation 2025-08-06 14:27:28 +02:00
Peter KovacsandAdam Saghy 9ed26cb236 FINERACT-2311: Buy Down fees - External business events - E2E tests 2025-08-06 13:53:04 +02:00
adam.magyariandAdam Saghy 6a198de0cc FINERACT-2311: Buy Down fees - External business events
- buy down fee reversal fix
- added more listeners for buy down fee amortization on closed loans
2025-08-06 13:53:04 +02:00
Soma SörösandAdam Saghy aa68f251d3 FINERACT-2311: Buy Down fees - External business events 2025-08-06 13:53:04 +02:00
MarianaDmytrivBinariksandAdam Saghy 9c37ef437d FINERACT-2322: added e2e test with next payment data check 2025-08-06 13:52:43 +02:00
Soma SörösandAdam Saghy 28043ce438 FINERACT-2322: Extend loan collection data with next due payment amount field 2025-08-06 13:52:43 +02:00
MarianaDmytrivBinariksandAdam Saghy 514a684281 FINERACT-2317: added e2e test for update available disbursement amount 2025-08-06 12:46:28 +02:00
mark.vituskaandAdam Saghy 1c82507707 FINERACT-2317: Add new endpoints to indirectly modify loan approved amount 2025-08-06 12:46:28 +02:00
Rustam ZeinalovandAdam Saghy 2cc0cda1a6 FINERACT-2317: added e2e test to verify inclusion of capitalized income and buy down fee in available disbursement calculation 2025-08-06 09:19:23 +02:00
Oleksii NovikovandAdam Saghy 25b440b842 FINERACT-2317: Include capitalized income and buy down fee in available disbursement calculation 2025-08-06 09:19:23 +02:00
Peter KovacsandAdam Saghy 9f53440543 FINERACT-1968: Progressive Loan schedule handling - interest handling (DECLINING BALANCE interest, Same as repayment period, Equal installments) - E2E tests 2025-08-05 13:49:41 +02:00
Soma SörösandAdam Saghy dfab66132b FINERACT-1968: Progressive Loan schedule handling - interest handling (DECLINING BALANCE interest, Same as repayment period, Equal installments) 2025-08-05 13:49:41 +02:00
MarianaDmytrivBinariksandAdam Saghy 8d829b1063 FINERACT-2338: added e2e test for backdated interest rate change 2025-08-05 13:48:39 +02:00
adam.magyariandAdam Saghy d82ffddecc FINERACT-2338: Allow backdated interest rate change on progressive loans 2025-08-05 13:48:39 +02:00
mariiaKraievskaandAdam Saghy 0daf42ec33 FINERACT-2124: Fix final income accrual calculation with multiple fee charges 2025-08-05 13:46:22 +02:00
Rustam ZeinalovandAdam Saghy 68f20c29e9 FINERACT-2326: added e2e tests for validation of ability to reschedule non-interest-bearing progressive loans to have interest 2025-08-04 14:03:00 +02:00
mark.vituskaandAdam Saghy 3428e33035 FINERACT-2326: Add the ability to reschedule non-interest-bearing progressive loans to have interest 2025-08-04 14:03:00 +02:00
MarianaDmytrivBinariksandArnold Gálovics 6a67e58a3a FINERACT-2232: added checkes for fetching deferred income data via external-id 2025-08-03 14:36:05 +02:00
Oleksii NovikovandArnold Gálovics 9740f95745 FINERACT-2232: Add fetching of Capitalized Income details by external id 2025-08-03 14:36:05 +02:00
MarianaDmytrivBinariksandAdam Saghy 7b7118dfba FINERACT-2308: added e2e tests for approved over applied amount for loan that expects tranches 2025-08-01 15:44:43 +02:00
mariiaKraievskaandAdam Saghy 68bfd7a3f8 FINERACT-2308: Allow approval / disbursal above loan applied amount for multidisbursal progressive loan that does expect tranches 2025-08-01 15:44:43 +02:00
Rustam ZeinalovandAdam Saghy cb4c66302a FINERACT-1968: added e2e test cases for progressive Loan schedule handling - interest handling (FLAT interest, Daily, Equal installments) 2025-08-01 15:31:49 +02:00
Soma SörösandAdam Saghy bbe3ead849 FINERACT-1968: Progressive Loan schedule handling - interest handling (FLAT interest, Daily, Equal installments) 2025-08-01 15:31:49 +02:00
Jose Alberto HernandezandAdam Saghy bd8b4fedf4 FINERACT-2326: Set precision of 6 for the audit fields of the datatables (mysql) 2025-08-01 11:14:03 +02:00
Attila BudaiandAdam Saghy 0762a012e5 FINERACT-2181: Fix the interest calculation for non active loan 2025-07-31 19:59:15 +02:00
MarianaDmytrivBinariksandAdam Saghy 3e2684c0d6 FINERACT-2311: added e2e tests for buy down fees fetch amortization details 2025-07-31 10:01:32 +02:00
Oleksii NovikovandAdam Saghy ca3f63badf FINERACT-2311: Add GET API for buy down fees related information 2025-07-31 10:01:32 +02:00
Jose Alberto HernandezandAdam Saghy 54f055d9c7 FINERACT-2326: Capitalized Income transaction template considering over applied amount when enabled 2025-07-31 09:59:50 +02:00
Rustam ZeinalovandAdam Saghy 59c98b7329 FINERACT-2311: added e2e tests for validation of buy down fees reversal of existing transaction 2025-07-30 18:43:55 +02:00
Jose Alberto HernandezandAdam Saghy e46a98065e FINERACT-2311: Buy Down fees - Reversal of existing transaction 2025-07-30 18:43:55 +02:00
Adam Saghy 0581c09273 FINERACT-2326: Set timeout for github actions 2025-07-30 16:38:08 +02:00
mark.vituskaandAdam Saghy 0728ffc2ad FINERACT-2326: add installment amount in multiples of handling to flat interest emi calculation 2025-07-30 13:17:05 +02:00
Pinchez25andArnold Gálovics 00d613175c FINERACT-2315: Fix SMS Status Reports Error 2025-07-29 22:25:37 +02:00
Jose Alberto HernandezandArnold Gálovics 7452ea2552 FINERACT-1932: Fineract modularization - fineract-cob 2025-07-29 21:46:39 +02:00
Adam Monsen e090da2a01 FINERACT-2335: don't rename release tarballs
Release tarballs are currently renamed (without changing the contents): apache-fineract-src-1.12.1.tar.gz becomes apache-fineract-1.12.1-src.tar.gz . The former matches the exploded directory name, the latter does not. The difference is subtle but meaningful... I strongly prefer the former because it's less surprising / more common, and easier to work with from scripts.

There's no functional difference, this should only impact aesthetics.

I did also shorten `binary` to `bin` so release artifact name lengths match.
2025-07-28 11:04:23 -07:00
Adam Saghy ab8bb930ec FINERACT-2333: Batch API - Support date format: from array to string 2025-07-28 19:06:48 +02:00
Adam Saghy 52be53778d FINERACT-2326: Locale Validator shall accept all valid language codes 2025-07-28 18:25:37 +02:00
Adam Saghy 271ac859bc FINERACT-2118: Make region as optional and remove hardcoded default value 2025-07-28 18:11:08 +02:00
adam.magyariandAdam Saghy 0698c4ada5 FINERACT-2311: Buy down fee adjustment - portion fix 2025-07-28 16:06:00 +02:00
Adam Saghy d80643a0f2 FINERACT-2326: EclipseLink sometimes fails if JPQL cache is not warm up but concurrent queries are executed 2025-07-28 16:04:36 +02:00
mark.vituskaandAdam Saghy 68b35024f6 FINERACT-2326: Fix payment allocation when current period is closed 2025-07-28 14:23:54 +02:00
Jose Alberto HernandezandAdam Saghy 70373eafef FINERACT-2311: Buy Down Fees template API changes 2025-07-28 14:09:58 +02:00
Naphlin AkenaandAdam Saghy dadc36b6b4 FINERACT-2118: Use S3 service accounts
Allow usage of S3 service accounts and support any S3 compatible storage
endpoints
2025-07-28 11:42:29 +02:00
Adam Monsen a8d23ee747 Merge branch 'release/1.12.1' into develop
* release/1.12.1:
  save 1.12.1 vote result
2025-07-27 15:45:27 -07:00
Adam Monsen 97aa931a59 save 1.12.1 vote result 2025-07-27 15:39:29 -07:00
mariiaKraievskaandAleksandar Vidakovic 45749d3edd FINERACT-2311: Buy Down fees Adjustment - Reversal of existing transaction 2025-07-25 12:57:51 +02:00
Rustam ZeinalovandAleksandar Vidakovic 0b5391169f FINERACT-2327: added e2e testing for validatoin of feature allow to create Interest Refund transaction manually 2025-07-23 11:32:30 +02:00
mariiaKraievskaandAleksandar Vidakovic c2e19bb68f FINERACT-2327: Allow to create Interest Refund transaction manually 2025-07-23 11:32:30 +02:00
Adam Saghy 59409550a7 FINERACT-2181: Money helper exception handling 2025-07-21 18:03:33 +02:00
Attila BudaiandAdam Saghy 27bf6d05d5 FINERACT-2181: Moneyhelper multitenant configuration fix, rework it to be a utility class 2025-07-21 18:03:33 +02:00
Rustam ZeinalovandAdam Saghy ecbefb04c4 FINERACT-2317: Added e2e tests covering support for modifying loan approved amounts with validation and history tracking 2025-07-21 17:13:51 +02:00
mark.vituskaandAdam Saghy 6d65f07924 FINERACT-2317: Add support for modifying loan approved amounts with validation and history tracking 2025-07-21 17:13:51 +02:00
Adam Saghy c84ba089f0 Revert "FINERACT-2181: Fix overdue balance updates in advanced payment schedu…"
This reverts commit 46e1bd0492.
2025-07-21 13:29:17 +02:00
Adam Saghy 81d6d2e54e FINERACT-2181: Batch Api - Add Interest pause API support 2025-07-21 12:26:03 +02:00
mark.vituskaandAdam Saghy 46e1bd0492 FINERACT-2181: Fix overdue balance updates in advanced payment schedule processing 2025-07-21 11:47:25 +02:00
adam.magyariandAdam Saghy de7f27f733 FINERACT-2181: Fix github actions not failing test runs on failed tests
- added validation for cumulative multidisburse loan applications for interest method
- test fixes
2025-07-19 21:22:10 +02:00
Jose Alberto HernandezandArnold Gálovics 84f7c9218f FINERACT-2232: Capitalized Income - Fetch amortization details 2025-07-18 22:08:01 +02:00
a7med3del1973andArnold Gálovics c0859f4fda FINERACT-2182: Group creation fails due to NullPointerException when random-account-number=enabled 2025-07-18 17:51:10 +02:00
Mend RenovateandArnold Gálovics a30a34bea8 FINERACT-2181: Update dependency org.hibernate.validator:hibernate-validator to v9 2025-07-18 17:24:30 +02:00
Rustam ZeinalovandAdam Saghy 0729eab430 FINERACT-2325: added e2e tests covering edge cases for disable automatic Interest Refund calculation feature 2025-07-17 16:31:48 +02:00
mariiaKraievskaandAdam Saghy aad7756bf5 FINERACT-2325: Disable automatic Interest Refund calculation 2025-07-17 16:31:48 +02:00
Jose Alberto HernandezandAdam Saghy e2f481f351 FINERACT-2181: Capitalized Income and Buy Down Fees accounting values are still displayed on loan product after feature disabled 2025-07-16 12:06:52 +02:00
Adam Saghy 9e15e459f0 FINERACT-2181: Remove suboptimal indexes 2025-07-15 10:53:26 +02:00
MarianaDmytrivBinariksandAdam Saghy 42ff9743dd FINERACT-2311: added e2e auto test scenarios for add buy down fee final amortization with pay off and charge-off 2025-07-15 10:46:55 +02:00
adam.magyariandAdam Saghy 880580f736 FINERACT-2311: Buy down fee - final amortization
- early repayment
- write off
- charge-off
2025-07-15 10:46:55 +02:00
Adam Saghy 35c51278f9 FINERACT-2181: Change execution order in 1029_add_installment_amount_in_multiples_of_to_loan.xml 2025-07-15 10:07:11 +02:00
Adam SaghyandArnold Gálovics bc4b3555f6 FINERACT-2181: Batch API - Fix read-only connection handling 2025-07-11 21:55:02 +02:00
Mend RenovateandArnold Gálovics 0752106742 FINERACT-2181: Pin dependencies 2025-07-11 10:06:14 +02:00
soticsengeandGitHub 93bfc6fb66 FINERACT-2321: Adding arrears days to loan/at-date api 2025-07-10 16:24:32 +02:00
Rustam ZeinalovandAdam Saghy 5a0115e6ec FINERACT-2319: added e2e test for verifying backdated repayment allocation respects payment order for future dated penalties 2025-07-10 15:03:43 +02:00
Adam Saghy 711aa7910e FINERACT-2181: Batch API - Add interest pause API 2025-07-10 14:02:47 +02:00
Oleksii NovikovandAdam Saghy fc93db16b5 FINERACT-2319: Add penalty-first payment allocation strategy for progressive loans with backdated repayment charge handling 2025-07-10 13:38:56 +02:00
mariiaKraievskaandAdam Saghy 68b2fcb7e1 FINERACT-1968: Added e2e test for validation of progressive Loan schedule handling - (FLAT interest, Same as repayment period, Equal installments) 2025-07-09 14:39:18 +02:00
Soma SörösandAdam Saghy 40f8b59ab4 FINERACT-1968: Progressive Loan schedule handling - interest handling (FLAT interest, Same as repayment period, Equal installments) 2025-07-09 14:39:18 +02:00
Rustam ZeinalovandAdam Saghy 3f359bb368 FINERACT-1981: added e2e test for validation of progressive Loan schedule handling 2025-07-08 23:22:50 +02:00
mariiaKraievskaandAdam Saghy d165a3feda FINERACT-1981: Progressive Loan schedule handling - Installment charges 2025-07-08 23:22:50 +02:00
MarianaDmytrivBinariksandAdam Saghy f76a65ed99 FINERACT-2311: added e2e auto test scenarios for add buy down fee adjustment trn 2025-07-08 22:47:53 +02:00
Jose Alberto HernandezandAdam Saghy 53108227ae FINERACT-2311: Add Buy Down Fees transaction support 2025-07-08 13:50:24 +02:00
adam.magyariandAdam Saghy b8d6dfa794 FINERACT-2311: Buy down fee - daily amortization 2025-07-08 12:38:02 +02:00
Jose Alberto HernandezandAdam Saghy 8a5300ef23 FINERACT-2311: Buy Down fee adjustment - Template API 2025-07-08 12:20:01 +02:00
Adam Saghy 095e0818e4 Revert "FINERACT-2304: Fix auditing of failed batch request while enclosing t…"
This reverts commit 96eb744592.
2025-07-08 09:17:33 +02:00
Oleksii NovikovandArnold Gálovics 96eb744592 FINERACT-2304: Fix auditing of failed batch request while enclosing transaction got enabled 2025-07-08 09:01:46 +02:00
a7med3del1973andArnold Gálovics c09f620324 FINEREACT-2181: Removed unnecessary explicit toString() calls 2025-07-08 08:58:55 +02:00
mark.vituskaandAdam Saghy df995bc932 FINERACT-2181: Fix for certain interest recalculation settings making prepay api and payment allocation inconsistent 2025-07-07 17:04:17 +02:00
MarianaDmytrivBinariksandAdam Saghy 01f850aecc FINERACT-2311: added e2e auto test scenarios for add buy down fees to loan 2025-07-07 17:03:47 +02:00
Attila BudaiandAdam Saghy b2bce4a45d FINERACT-2311: Add buydown fees adjustments 2025-07-07 15:29:27 +02:00
MarianaDmytrivBinariksandAdam Saghy c8b88c3664 FINERACT-2311: added e2e auto test scenarios for manual journal entries with asset externalization owner 2025-07-07 13:59:33 +02:00
Jose Alberto HernandezandAdam Saghy 0c1ca2baba FINERACT-2198: Extend Manual Journal entry to support Asset Externalization 2025-07-07 13:59:33 +02:00
mark.vituskaandAdam Saghy 4feee70a7a FINERACT-2311: Add buy down fee balance entity and db table, create balance on transaction 2025-07-04 14:23:28 +02:00
Rustam ZeinalovandAdam Saghy 71e763115e FINERACT-2181: add e2e test for validation of reschedule loan with interest rate change from / to zero 2025-07-04 14:11:49 +02:00
Jose Alberto HernandezandAdam Saghy bf040561ab FINERACT-2181: Not allow Reschedule loan with interest rate change from / to zero 2025-07-04 14:11:49 +02:00
Abhinav CillankiandAdam Saghy a591f26546 FINERACT-2318: add LoanApplicationModifiedBusinessEvent & LoanWithdrawnByApplicantBusinessEvent 2025-07-04 12:41:57 +02:00
Adam SaghyandArnold Gálovics 70eb2add0d FINERACT-2181: Use matrix jobs via Github Actions to improve performance 2025-07-02 10:01:37 +02:00
Adam SaghyandArnold Gálovics dc2101bc21 FINERACT-2181: Drop resource manipulation 2025-07-02 09:59:27 +02:00
Jose Alberto HernandezandAdam Saghy 570f44ac93 FINERACT-2181: Swagger enhancement for PostSavingsProductsRequest 2025-07-01 20:17:03 +02:00
MarianaDmytrivBinariksandAdam Saghy 072017c601 FINERACT-2181: added e2e auto test scenarios for loan accrual activity posing events 2025-07-01 20:16:50 +02:00
mariiaKraievskaandAdam Saghy f853898818 FINERACT-2181: New Loan Accrual Activity transactions publish LoanAdjustTransaction event during loan reopen 2025-07-01 20:16:50 +02:00
Rustam ZeinalovandAdam Saghy 1d24a8c244 FINERACT-2181: added e2e test validatin accrual entries added after after reseting Loan undo disbursement and running COB 2025-07-01 20:16:15 +02:00
Jose Alberto HernandezandAdam Saghy a8cb6806b0 FINERACT-2181: Reset Last Closed Business date after Loan undo disbursement 2025-07-01 20:16:15 +02:00
budaidevandAdam Saghy 98b7328508 FINERACT-2311: Add buydown fees to loan 2025-07-01 20:14:43 +02:00
Oleksii NovikovandAdam Saghy cb6a15c3d2 FINERACT-2234: Replace in-memory transaction loops with repository queries 2025-07-01 20:14:28 +02:00
Adam Saghy dd4ca4d3e2 FINERACT-2181: Remove processResource hack 2025-07-01 12:30:19 +02:00
viktorpavlenkoandAleksandar Vidakovic 4c3da5b06a FINERACT-2247: New command processing - Currency Management (org.apache.fineract.organisation.monetary) 2025-06-28 10:38:32 +02:00
viktorpavlenkoandAleksandar Vidakovic 0629bb2d48 FINERACT-2241: New command processing - Cache Management (org.apache.fineract.infrastructure.cache) 2025-06-27 12:49:37 +02:00
viktorpavlenkoandAleksandar Vidakovic ba06234f26 FINERACT-2242: New command processing - External Event Configuration (org.apache.fineract.infrastructure.event.external) 2025-06-26 15:37:53 +02:00
budaidevandAdam Saghy 86024b83cc FINERACT-2304: Making sure that in the publishHookErrorEvent or publishHookEvent does not throw any exception 2025-06-26 15:07:06 +02:00
MarianaDmytrivBinariksandAdam Saghy f09055199a FINERACT-2311: cover accounting config for buy down fees auto tests 2025-06-26 10:02:49 +02:00
adam.magyariandAdam Saghy d88f6a2f22 FINERACT-2311: Loan product - Buy down fees accounting configuration 2025-06-26 10:02:49 +02:00
viktorpavlenkoandAleksandar Vidakovic bb46397daa FINERACT-2238: New command processing - Business Date Management (org.apache.fineract.infrastructure.businessdate) 2025-06-26 00:49:05 +02:00
a7med3del1973andAdam Saghy d5958f36c7 FINERACT-2213: Client transfer from one branch to another leaves loans attached to the client in transfer.in.progress status instead of active 2025-06-24 15:20:08 +02:00
MarianaDmytrivBinariksandAdam Saghy 28fbaa920d FINERACT-2311: add tests for buy down fees on product level 2025-06-24 15:06:54 +02:00
Rustam ZeinalovandAdam Saghy dc3ead4f80 FINERACT-2311: Added e2e tests for validation of backend part of buy down fees 2025-06-24 15:06:54 +02:00
adam.magyariandAdam Saghy 1b1d6be956 FINERACT-2311: Loan product - Buy down fees configuration 2025-06-24 15:06:54 +02:00
Adam Saghy 29d1ed3cd4 FINERACT-2181: JIB docker build requires resources files to be merged with classes 2025-06-24 10:09:46 +02:00
mark.vituskaandAdam Saghy 9c872760e5 FINERACT-2181: add e2e test to cover capitalized income amortization adjustment case 2025-06-23 13:13:40 +02:00
Adam Saghy db28259b1a FINERACT-2181: Gradle task rework - Optimized weaving across all modules 2025-06-22 22:41:34 +02:00
MarianaDmytrivBinariksandAdam Saghy ee5290c92e FINERACT-2181: add tests for capitalized income validation with enabled over appiled amount setting 2025-06-22 22:35:36 +02:00
mariiaKraievskaandAdam Saghy e4ab6110ff FINERACT-2181: Fix validation for add capitalized income to loan transaction 2025-06-22 22:35:36 +02:00
Arnold GalovicsandArnold Gálovics a76c189a04 Revert "FINERACT-2181: Some tweaks in the gradle build to ensure correct task processing"
This reverts commit 6cb60f48
2025-06-20 21:53:28 +02:00
Arnold GalovicsandArnold Gálovics 1ebfad230c Revert "FINERACT-2181: Some tweaks in the gradle build to ensure correct task processing"
This reverts commit 11cecb0d45.
2025-06-20 21:53:28 +02:00
Arnold GalovicsandArnold Gálovics d46ab4e73e Revert "FINERACT-2181: Make 'staticWeaveJPA' gradle task cacheable"
This reverts commit dd2c29fb91.
2025-06-20 21:53:28 +02:00
Arnold GalovicsandArnold Gálovics 4b7335b724 Revert "FINERACT-2181: Add missing converters to persistence.xml"
This reverts commit 62bb1e6509.
2025-06-20 21:53:28 +02:00
mark.vituskaandArnold Gálovics 3829c4404f FINERACT-2181: ensure loan transactions are saved and linked to loan object consistently across business steps 2025-06-19 21:45:29 +02:00
Adam SaghyandArnold Gálovics 62bb1e6509 FINERACT-2181: Add missing converters to persistence.xml 2025-06-19 21:44:52 +02:00
Adam SaghyandArnold Gálovics b7513849c8 FINERACT-2181: Fix randomly failing COB catch up test 2025-06-19 21:44:34 +02:00
Arnold GalovicsandArnold Gálovics a158c930bc FINERACT-2181: Prepayment flow test fixes 2025-06-19 11:10:36 +02:00
CsengeSótiandArnold Gálovics cb82af119b FINERACT-2181: fix prepayment functionality when prepayment happens in the first month of loan 2025-06-19 11:10:36 +02:00
Adam SaghyandArnold Gálovics dd2c29fb91 FINERACT-2181: Make 'staticWeaveJPA' gradle task cacheable 2025-06-19 07:12:59 +02:00
mark.vituskaandAdam Saghy 5a7d2d42f9 FINERACT-2181: add e2e test to cover additional future unrecognized interest use-case 2025-06-18 22:56:33 +02:00
tamasszabo-dpcandAdam Saghy 5aa4afb87c FINERACT-2181: Added test cases to cover MIR scenarios where last installment principal got updated to null 2025-06-18 19:43:06 +02:00
Soma SörösandAdam Saghy 74d079bc3d FINERACT-2181: Prevent Infinite Loop on MIR when last installment principal got updated to null 2025-06-18 19:43:06 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
a21fe48c79 Bump gradle/actions from 4.4.0 to 4.4.1 (#4765)
Bumps [gradle/actions](https://github.com/gradle/actions) from 4.4.0 to 4.4.1.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](https://github.com/gradle/actions/compare/8379f6a1328ee0e06e2bb424dadb7b159856a326...ac638b010cf58a27ee6c972d7336334ccaf61c96)

---
updated-dependencies:
- dependency-name: gradle/actions
  dependency-version: 4.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-18 08:29:29 -06:00
Rustam ZeinalovandAdam Saghy 0319be4416 FINERACT-2279: added e2e for validation contract termination undo 2025-06-18 16:19:33 +02:00
mariiaKraievskaandAdam Saghy ee29ce23ac FINERACT-2279: Contract Termination - Undo 2025-06-18 16:19:33 +02:00
Adam SaghyandArnold Gálovics 11cecb0d45 FINERACT-2181: Some tweaks in the gradle build to ensure correct task processing 2025-06-18 15:54:00 +02:00
MarianaDmytrivBinariksandAdam Saghy e840db50fc FINERACT-2308: added e2e tests for allow approval disbursal over applied amount calculation 2025-06-18 15:15:28 +02:00
Jose Alberto HernandezandAdam Saghy bb29932658 FINERACT-2308: Allow approval and disbursal above loan applied amount with non multibursal loan product 2025-06-18 15:15:28 +02:00
mariiaKraievskaandAdam Saghy 38a5686df8 FINERACT-2181: Update outstandingBalance when the LoanInterestRecalculationCOBBusinessStep of COB job is executed 2025-06-18 12:23:24 +02:00
Rustam ZeinalovandAdam Saghy 2644981424 FINERACT-2181: Added e2e test covering case with lifting charge-off flag and charge-off date in case the charge-off transaction got reversed 2025-06-18 12:21:58 +02:00
Abhinav CillankiandAdam Saghy 159eff0ad4 FINERACT-2309: Emit external events on document upload and delete 2025-06-18 12:20:36 +02:00
mariiaKraievskaandAdam Saghy 496e37e3d4 FINERACT-2181: Accruals on accounts where charge adjustments and refunds are done on the same day causing duplicate journal entries 2025-06-18 12:14:20 +02:00
mark.vituskaandAdam Saghy 5649aa3ded FINERACT-2281: fix unrecognized interest handling when first period is unpaid 2025-06-18 10:53:30 +02:00
Adam Monsen 4d56a4f230 add gradle --refresh-dependencies band-aid
I'd love some expert eyes on this section and feedback on whether these kinds of extra clean-up procedures are often, sometimes, or rarely useful.
2025-06-16 15:23:26 -07:00
Adam Monsen f28d252f17 FINERACT-2310: collate and improve security documentation
* fix various typos, spacing, formatting issues
* fix links to legacy docs in API docs
* update keycloak oauth dev instructions
* update default oauth URL for latest Keycloak
* use consistent quoting in oauth docs (single quotes)
* use asciidoc auto-enumerated lists whenever possible
* migrate security topics from readme into asciidoc: oauth, 2FA, HTTPS
* move :hardbreaks: setting to config file so all config settings are in one place. (I think it's fine that `license.adoc` will use hardbreaks -- that's how the plain text version is formatted so it should look more familiar)
* add intro to security chapter
* migrate in Securing Fineract wiki content from https://cwiki.apache.org/confluence/display/FINERACT/Securing+Fineract
* just say "oauth" (not "oauth2") to conform terminology throughout docs -- OAuth 2.0 is just the latest version
* cross-ref HTTPS section from Securing Fineract
* reposition hardening options as tips
* see also: https://lists.apache.org/thread/81qdxttffp6wn23c48zvk93hc13373qv
* simplify/clarify example oauth curl requests
  * Testing just now and I didn't need --location.
  * Also I imagine folks will need --insecure with the self-signed default cert in dev.
* don't change default oauth URL
  * no surprises for existing deployments
  * clarifies the keycloak v26 example
2025-06-16 15:12:55 -07:00
budaidevandAdam Saghy 2c77f6a277 FINERACT-2304: Avoid retrying after the command succeed 2025-06-14 14:08:35 +02:00
Peter KovacsandAdam Saghy e77f783609 FINERACT-2232: Capitalized income and Caplitalized income adjustment in case of loan is overpaid - E2E 2025-06-14 14:04:27 +02:00
Jose Alberto HernandezandAdam Saghy 3b5b96a5f4 FINERACT-2232: Capitalized income and Caplitalized income adjustment in case of loan is overpaid 2025-06-14 14:04:27 +02:00
Peter KovacsandAdam Saghy 009d7b71a9 FINERACT-2232: Capitalized income - Business events - E2E 2025-06-13 18:01:14 +02:00
adam.magyariandAdam Saghy 6cd634cb2f FINERACT-2232: Capitalized income - Business events 2025-06-13 18:01:14 +02:00
Jose Alberto HernandezandAdam Saghy de580c2cef FINERACT-2232: Add missing fields on the Capitalized Income and Adjustment transactions 2025-06-12 23:47:49 +02:00
MarianaDmytrivBinariksandAdam Saghy c490e167b8 FINERACT-2232: added e2e automation tests for capitalized income amortization calculation 2025-06-12 23:42:12 +02:00
adam.magyariandAdam Saghy 76b9cde83c FINERACT-2232: Capitalized income - Amortization rework 2025-06-12 23:42:12 +02:00
Soma SörösandArnold Gálovics e811491da7 FINERACT-2304: Handle Stuck CommandProcessing Retries 2025-06-12 10:12:24 +02:00
Adam Saghy 7c656ecae8 FINERACT-2181: Using JUnit 5 for E2E 2025-06-11 20:44:21 +02:00
Adam Saghy c37e2daa86 FINERACT-2181: Enhance job execution polling in E2E tests 2025-06-10 17:54:51 +02:00
Adam Saghy 3cef64f3cf FINERACT-2181: Add missing indexes (with check and concurrently) 2025-06-10 14:27:05 +02:00
Oleksii NovikovandAdam Saghy 4d7a3efc13 FINERACT-2234: Improve accrual activity posting business step performance 2025-06-10 13:16:36 +02:00
Rustam ZeinalovandAdam Saghy 3ce44f836d FINERACT-2232: added e2e test for validation of capitalized income balance handling during reverse replay situations 2025-06-10 10:06:48 +02:00
mark.vituskaandAdam Saghy ad8fe13064 FINERACT-2232: fix capitalized income balance handling during reverse replay situations 2025-06-10 10:06:48 +02:00
Jose Alberto HernandezandArnold Gálovics 76a03ecdbf FINERACT-2232: Capitalized income and Caplitalized income adjustment in case of loan is overpaid 2025-06-06 18:43:31 +02:00
Soma SörösandArnold Gálovics 8edf49e689 FINERACT-2304: Fix SynchronousCommandProcessingService retry error handling around execute command 2025-06-06 18:42:53 +02:00
Adam Saghy 19b2a77127 FINERACT-2181: Fix integration test / unify getLoanRepaymentScheduleDetail() 2025-06-06 15:08:40 +02:00
Soma SörösandAdam Saghy caf42f733c FINERACT-2304: Create Configuration assembler and move resilience4j props into fineract namespace implement proper retry for SynchronousCommandProcessingService and BatchApiServiceImpl 2025-06-06 14:03:11 +02:00
Rustam ZeinalovandAdam Saghy a687227f33 INERACT-2211: added e2e test for validation of bug fix 2025-06-06 10:55:17 +02:00
budaidevandAdam Saghy 56e89ba544 FINERACT-2211: Second disbursement error fix 2025-06-06 10:55:17 +02:00
Jose Alberto HernandezandAdam Saghy 39a8d5c63e FINERACT-2181: Installment amount in multiples of should be inherited from loan product to loan level 2025-06-06 10:54:29 +02:00
RamsesCamacho1171andGitHub 95a8231b18 FINERACT-2202: Bulk import fix (#4735)
LGMT
2025-06-05 18:34:04 -06:00
tamasszabo-dpcandAdam Saghy 23f6a2ec62 FINERACT-2181: Added revert replay checks for transactions check 2025-06-05 14:59:27 +02:00
Oleksii NovikovandAdam Saghy dc1d6610a3 FINERACT-2181: Add Merchant Issued Refund reverse replayed with penalty charge test 2025-06-05 14:59:27 +02:00
Rustam ZeinalovandAdam Saghy dc267a2a1a FINERACT-2553: added e2e test covering case with backdated repayment covers remaining balance after charge-off 2025-06-05 14:58:20 +02:00
mariiaKraievskaandAdam Saghy 71a4d08849 FINERACT-2553: Fix repayment schedule during accelerate maturity date charge off/contract termination when full backdated repayment occurs after it 2025-06-05 14:58:20 +02:00
mdmytrivandAdam Saghy 57ef4a2771 FINERACT-2307: added e2e tests for disbursement with Capitalized Income amount calculation while approved over applied setting enabled 2025-06-05 14:57:00 +02:00
Adam Saghy 6e5c6c4913 FINERACT-2181: No need for explicit serialization 2025-06-04 21:24:21 +02:00
mark.vituskaandAdam Saghy 83905d627d FINERACT-2181: fix name collision in swagger resources 2025-06-04 21:24:21 +02:00
Adam Saghy f383ee7c17 FINERACT-2181: Remove command param lower casing 2025-06-04 21:23:59 +02:00
Adam Saghy 9e39ecb279 FINERACT-2181: Add datatable field to Loan request swagger 2025-06-04 21:23:51 +02:00
Adam Saghy a8f2fcd903 FINERACT-2181: Update Transaction summary with asset owner report 2025-06-04 21:23:28 +02:00
a7med3del1973andAdam Saghy 9e12e3b1cd FINERACT-2181: Refactor code quality 2025-06-03 10:47:39 +02:00
mdmytrivandAdam Saghy a308a96bed FINERACT-2232: added e2e automation tests for capitalized income reversal 2025-06-03 10:46:56 +02:00
tamasszabo-dpcandAdam Saghy 50851e8b21 FINERACT-2232: Added capitalized income adjustment reversal scenarios 2025-06-03 10:46:56 +02:00
adam.magyariandAdam Saghy 1556b8608f FINERACT-2232: Capitalized income - transaction reversal 2025-06-03 10:46:56 +02:00
mdmytrivandArnold Gálovics 5f223e527e FINERACT-2181: added e2e automation tests for disbursement with Capitalized income amount calculation fix 2025-06-02 21:24:31 +02:00
tamasszabo-dpcandArnold Gálovics 19270b7651 FINERACT-2152: Added test case to check the repayment schedule when interest pause added on the 1st day 2025-06-02 21:24:15 +02:00
Oleksii NovikovandArnold Gálovics 42f5de937d FINERACT-2152: Fix interest pause on the 1st day of the 1st period 2025-06-02 21:24:15 +02:00
mdmytrivandAdam Saghy c44972043e FINERACT-2232: added e2e automation tests for capitalized income validation with future date and COB run 2025-06-02 13:22:02 +02:00
adam.magyariandAdam Saghy 5281c7b17d FINERACT-2232: Validations and cob step fix
- Add validation for capitalized income transaction not being in the future
- CapitalizedIncomeAmortizationBusinessStep add filter against too early amortization
2025-06-02 13:22:02 +02:00
Adam SaghyandArnold Gálovics 1aff3fc9b6 FINERACT-2181: Add null safety to Money class 2025-06-02 09:31:38 +02:00
Adam SaghyandArnold Gálovics 0296bf80cf FINERACT-2181: Do not create zero amount Accrual at disbursement 2025-06-02 08:26:51 +02:00
Jose Alberto HernandezandAdam Saghy 060cdb5685 FINERACT-2181: Loan disbursement amount exceed loan principal amount when we have Capitalized Income 2025-06-01 18:05:03 +02:00
mark.vituskaandAdam Saghy 0d8d6671a1 FINERACT-2304: Add versioning to LoanTransaction entity 2025-06-01 18:04:00 +02:00
Oleksii NovikovandAdam Saghy f6f8c6f4a5 FINERACT-2274: Rework Accrual service 2025-06-01 18:03:22 +02:00
fa405f09fd FINERACT-2202: Bulk import fix (#4709)
Co-authored-by: Edder Lugo <edder.sanjuan@fintecheando.mx>
2025-05-30 18:47:09 -06:00
Adam Saghy 5e884d5f45 FINERACT-2279: Contract Termination - Schedule Handing & Reverse-replay 2025-05-31 00:22:00 +02:00
Adam Monsen c5275cbd34 FINERACT-2306: release doc fixes
* docs: link directly to FINERACT-873 and shorten it for brevity / clarity
* fineract plugin:
  * print email, don't send (WIP, but I might keep this... I prefer manually sending emails for now.)
  * support different release date and release branch date

I originally modified EmailService (disabling the actual email sending by just commenting it out) but I reverted that change per discussion with Ádám Sághy. You won't see this in the squashed final commit so I'm mentioning it here for posterity.

Ádám wrote:

> Is there a reason to remove the email sending?

I replied:

> Great question. I did think about this for a bit. I should have been more transparent about my intent. Allow me to explain.
>
> For the 1.12.0 release process I used the groovy code to generate email templates, but I wanted to edit the emails before sending so I disabled this line, and intentionally left it so, figuring I'd be the one using and [hopefully minimally] maintaining it for now.
>
> The Fineract (release) plugin appears to be more or less unmaintained for about 2 1/2 years now (save the semiautomated dependency updates). Looking at the code and history, I assumed I was the only one that would be using it now and in the near future. It also struck me how most everything it does is primarily to work around antiquated Apache release process steps that are not necessarily what we want for Fineract. Personally I think the Fineract release plugin should be simply replaced by a better release process.
>
> I think I'll add a comment there, and of course I welcome your feedback.
>
> Anyway yeah, my intent here was simply to do the simplest, safest, and most useful change here so I could keep this release plugin limping along until we improve the release process itself. No disrespect to @vidakovic and @vorburger and whomever else poured love into this code over the years. Perhaps the options for releasing Apache code have improved since then?
>
> Today we can of course do better (e.g. just let GitHub help us release with far fewer clicks/steps).
>
> Also I am not proposing we change the release process today or even soon. Maybe in a quarter or two I'll propose changes, if/when there seems to be political will around that.

Ádám replied:

> hmm... i am not particularly mind if you are reworking the release process, but i think having a "send" step which was meant to sending a mail but now the actual sending got commented out is misleading, no?

I replied:

> Yep, you're right. I think I'll just back out this change because I agree with you it's bad to just leave the send() call commented out without any other changes.
2025-05-30 09:12:44 -07:00
Soma SörösandAdam Saghy 21425f50c4 FINERACT-2275: Review whether reprocessing accruals are in fact needed or not after recalculated interest on loan 2025-05-29 17:35:33 +02:00
tamasszabo-dpcandAdam Saghy b867de889b FINERACT-2232: Added capitalized income scenarios to cover reverse replay logic 2025-05-29 16:19:29 +02:00
Rustam ZeinalovandAdam Saghy 7051fe94aa FINERACT-2232: Added e2e test covering capitalized income adjustment 2025-05-29 16:19:29 +02:00
adam.magyariandAdam Saghy 82eafad8dd FINERACT-2232: Capitalized income adjustment 2025-05-29 16:19:29 +02:00
Jose Alberto HernandezandAdam Saghy 94cc68ba7c FINERACT-2181: Fix Consult Loan repayment schedule with disbursement harge using amount plus interest 2025-05-29 15:08:50 +02:00
Rustam ZeinalovandAdam Saghy 9d6243442c FINERACT-1981: Updated e2e tests covering the feature 2025-05-29 15:01:23 +02:00
budaidevandAdam Saghy 6e77b0702a FINERACT-1981: Loan schedule handling of tranche disbursement charges 2025-05-29 15:01:23 +02:00
mark.vituskaandAdam Saghy 96d6099cc1 FINERACT-2304 - fix entity manager usage only through persistence context annotation 2025-05-29 13:52:49 +02:00
a7med3del1973andAdam Saghy d71c0bd204 FINERACT-2267: Use the proper not-null annotation in Fineract code base 2025-05-27 20:21:19 +02:00
Peter KovacsandAdam Saghy 8d7d8ca7ef FINERACT-2232: add income capitalization principal handling and repayment schedule calculations on loans - E2E tests 2025-05-27 18:35:39 +02:00
mark.vituskaandAdam Saghy aac62a92bb FINERACT-2232: add income capitalization principal handling and repayment schedule calculations on loans 2025-05-27 18:35:39 +02:00
mark.vituskaandAdam Saghy c89ec910d8 FINERACT-2181: fix api double values in loan definitions 2025-05-27 10:02:25 +02:00
Peter KovacsandAdam Saghy a40c0d4703 FINERACT-2232: add income capitalization principal handling and repayment schedule calculations on loans - E2E tests 2025-05-27 10:02:25 +02:00
mark.vituskaandAdam Saghy e5329f6fe3 FINERACT-2232: add income capitalization principal handling and repayment schedule calculations on loans 2025-05-27 10:02:25 +02:00
mariiaKraievskaandAdam Saghy 07839951b9 FINERACT-2278: Rework raiseBusinessEventForAccrualTransactions to not use loan.getLoanTransactions() 2025-05-26 16:24:56 +02:00
mariiaKraievskaandAdam Saghy 8b86229a3e FINERACT-2277: Deprecate findExistingReversedTransactionIds and fetch only the ids from database instead 2025-05-26 14:41:32 +02:00
mariiaKraievskaandAdam Saghy 13e4c8b55d FINERACT-2276: Deprecate findExistingTransactionIds and fetch only the ids from database instead 2025-05-26 11:40:10 +02:00
mariiaKraievskaandAdam Saghy 88105c3cac FINERACT-2273: Make sure the setters of Loan repayment installment entity balances maintain the scaling of 6 and set null in case the value is zero 2025-05-26 11:27:26 +02:00
Adam Saghy 6cb60f48fc FINERACT-2181: Some tweaks in the gradle build to ensure correct task processing 2025-05-25 22:12:22 +02:00
Adam Saghy 25ef93a30b FINERACT-2181: Add missing index for transaction_id field of acc_gl_journal_entry table 2025-05-25 19:18:21 +02:00
Adam Saghy b0a9bcb3ec FINERACT-2181: Use disruptor only if it is configured 2025-05-25 19:18:13 +02:00
mdmytrivandArnold Gálovics 1aa8395458 FINERACT-2281: added e2e automation tests for cases with accrual calculation on maturity date scenarios 2025-05-24 12:13:45 +02:00
mdmytrivandAdam Saghy d963c340ee FINERACT-2281: added e2e automation tests for cases with no interest activities are recognized for reversal repayment scenarios 2025-05-24 01:18:46 +02:00
Jose Alberto HernandezandAdam Saghy 544607a05a FINERACT-2232: Capitalized Incomce Adjustment template 2025-05-24 01:17:55 +02:00
Peter KovacsandAdam Saghy f6e24d420a FINERACT-2181: unSkip fixed scenarios - @TestRailId:C2795, @TestRailId:C2798 2025-05-23 09:43:43 +02:00
Soma SörösandAdam Saghy 98055682d3 FINERACT-2281: Interest Activities Not Posting For Loan With Repayment Reversal 2025-05-23 09:42:09 +02:00
Adam Saghy ecac6d2153 FINERACT-2181: Format enums 2025-05-22 17:13:49 +02:00
Oleksii NovikovandAdam Saghy 47d5330802 FINERACT-2080: Extract calculations from loan entity 2025-05-22 13:58:44 +02:00
Adam Saghy 18a55874ba FINERACT-2286: Make configurable the outstanding interest strategy during asset owner transfer 2025-05-22 13:27:36 +02:00
mark.vituskaandArnold Gálovics a3a5aabb7f FINERACT-2181: fix accrual calculation date condition 2025-05-22 11:41:19 +02:00
Adam Saghy 9c01540990 FINERACT-2181: Check whether loan got closed after the test 2025-05-22 10:37:57 +02:00
danielales2541andAdam Saghy 24145ae308 FINERACT-2202: Bulk import fix 2025-05-22 10:37:36 +02:00
mariiaKraievskaandAdam Saghy 5cd604df43 FINERACT-2272: Move fetching chargeback transactions out of foreach of delinquency calculation 2025-05-22 10:22:35 +02:00
Adam Saghy 91da34a8c6 FINERACT-2262: Fix cache resolution 2025-05-21 21:13:31 +02:00
Adam Saghy f8d9958ea7 FINERACT-2181: Fix audit filtering 2025-05-21 21:12:02 +02:00
Adam Saghy 15c968bc1b FINERACT-2181: Fix fully paid check on EmiModel 2025-05-21 17:16:02 +02:00
mariiaKraievskaandArnold Gálovics 4861ad19fd FINERACT-2232: Capitalized income - amortization in case of Charge-off event 2025-05-19 21:56:48 +02:00
dependabot[bot]andArnold Gálovics 39062ad1a1 Bump gradle/actions from 4.3.1 to 4.4.0
Bumps [gradle/actions](https://github.com/gradle/actions) from 4.3.1 to 4.4.0.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](https://github.com/gradle/actions/compare/06832c7b30a0129d7fb559bcc6e43d26f6374244...8379f6a1328ee0e06e2bb424dadb7b159856a326)

---
updated-dependencies:
- dependency-name: gradle/actions
  dependency-version: 4.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 19:40:00 +02:00
Adam Saghy 5f59091b70 FINERACT-2283: Self-service APIs are disabled by default 2025-05-16 23:18:02 +02:00
Adam Saghy c79de9bb7a FINERACT-2282: Support Client filtering by legal form 2025-05-16 19:36:48 +02:00
mariiaKraievskaandAdam Saghy ed42fb2410 FINERACT-2179: Advance Payment Allocation- Next-Last Option behaviour change 2025-05-16 15:51:16 +02:00
a7med3del1973andAdam Saghy 6d49d76e73 FINERACT-2181:improve code quality 2025-05-16 15:45:37 +02:00
Jose Alberto HernandezandAdam Saghy 62afd41182 FINERACT-2181: fix Charges using percentage calculation with min and max gap values 2025-05-16 15:44:37 +02:00
mdmytrivandAdam Saghy 793dcd8e8b FINERACT-2280: add e2e automation tests for scenarios with prevent interest pause for loan with interest rate zero 2025-05-16 14:25:06 +02:00
Soma SörösandAdam Saghy 9ab08ec428 FINERACT-2280: Interest pause breaks repayment schedule while loan is added with interest rate zero 2025-05-16 14:25:06 +02:00
Soma SörösandAdam Saghy cd03dc020e FINERACT-2220: Use stored ProgressiveLoanInterestScheduleModel for processLatestTransaction if applicable 2025-05-16 10:03:54 +02:00
mdmytrivandAdam Saghy 1fc2aae654 FINERACT-2181: add e2e automation tests while charge-off is added before charge and charge waive 2025-05-14 12:17:49 +02:00
mark.vituskaandAdam Saghy 8c34fe2122 FINERACT-2181: fix undo transaction on charges waiver not reversing changes on loan charge 2025-05-14 12:17:49 +02:00
Peter KovacsandAdam Saghy 34712d223a FINERACT-2232: Capitalized income - Daily amortization - E2E tests 2025-05-14 12:17:19 +02:00
adam.magyariandAdam Saghy ed4fba3ace FINERACT-2232: Capitalized income - Daily amortization 2025-05-14 12:17:19 +02:00
mariiaKraievskaandAdam Saghy e69378637d FINERACT-2232: Capitalized income - amortization in case of Preclose event 2025-05-13 15:09:37 +02:00
mdmytrivandAdam Saghy d1154c59ba FINERACT-2181: added e2e automation tests for expected tranches with disbursements fix 2025-05-13 09:39:42 +02:00
adam.magyariandAdam Saghy e7b6722e54 FINERACT-2181: Add missing swagger definition for addAndDeleteDisbursementDetail request 2025-05-13 09:39:42 +02:00
Adam Saghy 8488918b3b FINERACT-2181: Update dependencies 2025-05-12 10:37:28 +02:00
budaidevandAdam Saghy 788cd7aff7 FINERACT-2080: Extract complex loan actions out from Loan entity 2025-05-12 10:24:26 +02:00
Víctor RomeroandGitHub ec566b7166 FINERACT: 2181 Update build.gradle for publishing fineract-command 2025-05-10 10:48:28 -06:00
danielales2541andArnold Gálovics e70e00328a FINERACT-2202: Bulk import fix 2025-05-10 14:39:06 +02:00
Jose Alberto HernandezandArnold Gálovics 9026fb9546 FINERACT-2181: Fix Consult Loan repayment schedule with disbursement charge using interest 2025-05-10 14:35:29 +02:00
f2efad40a6 FINERACT-2202: Bulk import fix (#4650)
Co-authored-by: danielales2541 <danielalejandrolara573@gmail.com>
2025-05-09 12:07:27 -06:00
mariiaKraievskaandAdam Saghy fad9d3e4eb FINERACT-2210: Reverse the charge-off transaction if the amount balance becomes zero 2025-05-09 10:52:18 +02:00
Adam Saghy c39a79e9b1 FINERACT-2262: Fix cache resolution 2025-05-07 16:28:52 +02:00
Adam SaghyandArnold Gálovics 4a3455b1e2 FINERACT-2181: Add missing disallowInterestCalculationOnPastDue field to PutLoanProductsProductIdRequest swagger definition 2025-05-06 19:10:32 +02:00
adam.magyariandArnold Gálovics b93ad461b4 FINERACT-2181: Loan expect tranche fix 2025-05-06 11:05:42 +02:00
Adam Saghy c7c85cb038 FINERACT-2181: Add missing indexes 2025-05-05 15:57:31 +02:00
Víctor RomeroandGitHub 0465af7015 FINERACT-2181: Update EclipseLink
FINERACT-2181: Update EclipseLink
2025-05-03 17:28:40 -06:00
Adam Saghy aaf1351c4f FINERACT-2268: Fix GL account deletion logic 2025-04-30 14:04:12 +02:00
budaidevandAdam Saghy 354f1bdc93 FINERACT-2234: add interest recalc filter 2025-04-30 13:52:32 +02:00
Soma SörösandAdam Saghy 071592eceb FINERACT-2220: Use stored ProgressiveLoanInterestScheduleModel for Periodic Accrual Calculation 2025-04-30 13:29:29 +02:00
danielales2541andAdam Saghy 0563311251 FINERACT-2202: Bulk import fix 2025-04-30 10:43:37 +02:00
mdmytrivandAdam Saghy 642ea23e9e FINERACT-2232: e2e tests for capitalized income after disbursement 2025-04-30 10:23:55 +02:00
Adam Saghy 752dd4a10e FINERACT-2232: Capitalized income - Add Capitalized income to Loan 2025-04-30 10:23:55 +02:00
mariiaKraievskaandAdam Saghy e10542838e FINERACT-2232: Capitalized income - Add Capitalized income to Loan 2025-04-30 10:23:55 +02:00
Peter KovacsandAdam Saghy bb0bdb9670 FINERACT-2210: fix previously refunded interest calculation during interest refund - E2E test 2025-04-29 13:28:55 +02:00
mark.vituskaandAdam Saghy 931e920295 FINERACT-2210: fix previously refunded interest calculation during interest refund 2025-04-29 13:28:55 +02:00
Soma SörösandAdam Saghy 2d17fcd478 FINERACT-2220: Use stored ProgressiveLoanInterestScheduleModel for calculation 2025-04-29 13:12:51 +02:00
mdmytrivandAdam Saghy d7f321bc65 FINERACT-2264: added e2e tests for incorrect interest handling in case of early repayment in the middle of interest pause 2025-04-28 23:45:33 +02:00
Soma SörösandAdam Saghy 509cbd8b19 FINERACT-2264: Interest pause issue - Interest calculation start again in case of early repayment during interest period 2025-04-28 23:45:33 +02:00
Rustam ZeinalovandAdam Saghy bbf797fc34 FINERACT-2226: Added e2e tests for testing repayment reversal issue after charge off and MIR 2025-04-28 17:56:44 +02:00
mariiaKraievskaandAdam Saghy c8a641e474 FINERACT-2226: Fix repayment reversal issue after charge off and MIR 2025-04-28 17:56:44 +02:00
viktorpavlenkoandAdam Saghy db28fa1463 FINERACT-2169: Refactor account api controller; 2025-04-28 14:55:37 +02:00
adam.magyariandAdam Saghy 964017e666 FINERACT-2232: Capitalized income - amortization calc util 2025-04-28 14:53:40 +02:00
budaidevandAdam Saghy 6d3e19cf25 FINERACT-2234: add extra caches to frequent database queries during the interest recalculation 2025-04-28 14:51:11 +02:00
Peter KovacsandAdam Saghy efd17d5a3e FINERACT-2265: Progressive Loan - Interest Recalculation fails for - RecalculationRestFrequencyType SameAsRepaymentPeriod - E2E 2025-04-25 16:36:56 +02:00
Rustam ZeinalovandAdam Saghy c66dc9530d FINERACT-2173:updated existing and added new e2e tests covering basic migration scenario related to cob 2025-04-25 13:58:12 +02:00
adam.magyariandAdam Saghy d88f634197 FINERACT-2232: Capitalized income - income type config 2025-04-25 12:35:23 +02:00
adam.magyariandAdam Saghy 85fac1e1b0 FINERACT-2232: Capitalized income - accounting configuration 2025-04-25 12:35:23 +02:00
Adam MonsenandAdam Saghy 834e90dce0 FINERACT-2269: various small dev-focused improvements
remove unnecessary javadoc html5 option

html5 output is the default since at least Java 17

improve markdown formatting for PR template

fix casing, per GH recommendations

https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/creating-a-pull-request-template-for-your-repository recommends lowercase

document system default Java issues

reorder integration test hints importance-wise

make devRun the default

It's faster and more obviously useful for developers.

See https://lists.apache.org/thread/zxvtx9nqqbojvt0dd65tk8zd4xp6ot0t

mention gradle not re-running tests

remove Gitpod

per James, Ádám, and Victor, this is no longer used/supported

for setting up a local dev environment see the top-level README.md and https://fineract-academy.com
2025-04-24 14:31:54 +02:00
oleksandr.masliukandAdam Saghy 8eca8cbc8c FINERACT-2169: Refactor WorkingDaysApiResource - apply dto 2025-04-24 14:31:23 +02:00
viktorpavlenkoandAdam Saghy c069a6bf3c FINERACT-2169: Refactor staff api controller; 2025-04-24 14:02:27 +02:00
Oleksii NovikovandAdam Saghy e5a23406ca FINERACT-2080: Extract accountNumberRequiresAutoGeneration from loan entity 2025-04-24 11:55:36 +02:00
Jose Alberto HernandezandAdam Saghy 205b39ddf0 FINERACT-2232: Loan account capitalized income transaction template 2025-04-24 11:48:10 +02:00
mariiaKraievskaandAdam Saghy 13c99f98ab FINERACT-2210: Fix incorrect accounting of "buyback" for charged-off loan with fraud 2025-04-24 11:46:14 +02:00
viktorpavlenkoandAdam Saghy 30543fd72e FINERACT-2169: Refactor client address controller; 2025-04-24 11:45:13 +02:00
mark.vituskaandAdam Saghy 99f12d6091 FINERACT-2140: added hsts protocol support through system property 2025-04-23 12:22:45 +02:00
viktorpavlenkoandAdam Saghy a9fe523eae FINERACT-2169: Refactor collection sheet api; 2025-04-23 12:17:35 +02:00
viktorpavlenkoandAdam Saghy a72a919562 FINERACT-2169: Refactor group level api; 2025-04-23 12:15:02 +02:00
viktorpavlenkoandAdam Saghy 2ec05beea6 FINERACT-2169: Refactor interest rate chart slab api; 2025-04-23 11:24:47 +02:00
Oleksii NovikovandAdam Saghy 3687391148 FINERACT-2221: Add immediate charge accrual post maturity for progressive loans 2025-04-23 10:58:23 +02:00
viktorpavlenkoandAdam Saghy 241906e042 FINERACT-2169: Refactor client family member api; 2025-04-23 10:57:50 +02:00
oleksandr.masliukandAdam Saghy c0c7b45700 FINERACT-2169: Apply dto in ClientIdentifiersApiResource 2025-04-23 10:20:10 +02:00
Oleksii NovikovandAdam Saghy 64dddfca48 FINERACT-2080: Extract loanLifecycleStateMachine from Loan entity, refactor transition functionality 2025-04-23 10:12:53 +02:00
Marta JankovicsandAdam Saghy 79c006774e FINERACT-2185: User management improvement 2025-04-23 09:56:05 +02:00
Aleksandar VidakovicandAleksandar Vidakovic 8d83b5547c FINERACT-2169: New command processing infrastructure 2025-04-22 21:50:28 +02:00
CsengeSótiandArnold Gálovics fd45f43f36 FINERACT-2235: fix loan list assotiations flag for loans without summary 2025-04-22 21:22:04 +02:00
mdmytrivandArnold Gálovics e326ed4b8a FINERACT-2260: added e2e tests for incorrect interest handling in case of early repayment 2025-04-22 17:21:17 +02:00
adam.magyariandAdam Saghy 07e64da523 FINERACT-2232: Capitalized income config backend validation 2025-04-22 17:11:54 +02:00
mariiaKraievskaandAdam Saghy a11c567413 FINERACT-2210: Fix journal entries creation issue when amount is null 2025-04-22 17:10:54 +02:00
Soma SörösandAdam Saghy a1d51e1e34 FINERACT-2265: Progressive Loan - Interest Recalculation fails for - RecalculationRestFrequencyType SameAsRepaymentPeriod 2025-04-22 15:19:11 +02:00
Rustam ZeinalovandAdam Saghy 9660ca8f97 FINERACT-2173: added e2e tests covering basic migration scenario related to cob 2025-04-22 12:39:42 +02:00
adam.magyariandAdam Saghy 269c2b1f28 FINERACT-2232: Create LoanCapitalizedIncomeBalance entity and table 2025-04-22 12:34:01 +02:00
dependabot[bot]andAdam Saghy cbfd370844 Bump actions/setup-node from 4.3.0 to 4.4.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.3.0 to 4.4.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/cdca7365b2dadb8aad0a33bc7601856ffabcc48e...49933ea5288caeca8642d1e84afbd3f7d6820020)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 4.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 12:24:21 +02:00
Jose Alberto HernandezandAdam Saghy 5578d8bce5 FINERACT-2180: Allow use any Java distribution 2025-04-22 11:29:40 +02:00
danielales2541andAdam Saghy d15243fb31 FINERACT-2202: Bulk import fix 2025-04-22 10:55:45 +02:00
CsengeSótiandArnold Gálovics 1b9cb5c6d5 FINERACT-2236: add clientId filter to loans request 2025-04-17 17:41:47 +02:00
a7med3del1973andAdam Saghy 98894d1f21 FINERACT-2181: Refactor constants to follow naming convention 2025-04-17 15:01:17 +02:00
Victor RomeroandAdam Saghy 9f4f1d4f17 FINERACT-2094: Update to Java 21
modernize locale instantiations (fixes an error found by the modernizer plugin) - use Locale.of() instead of new Locale()

use recommended gradle toolchain syntax to specify Java class file format version see https://docs.gradle.org/current/userguide/java_plugin.html#toolchain_and_compatibility

mark html5 for later fix (it's the default)

use dummy byte arrays to work around mockito exception

```
org.mockito.exceptions.base.MockitoException:
Mockito cannot mock this class: class java.nio.ByteBuffer.

If you're not sure why you're getting this error, please open an issue on GitHub.

Java               : 21
JVM vendor name    : Ubuntu
JVM vendor version : 21.0.6+7-Ubuntu-122.04.1
JVM name           : OpenJDK 64-Bit Server VM
JVM version        : 21.0.6+7-Ubuntu-122.04.1
JVM info           : mixed mode, sharing
OS name            : Linux
OS version         : 5.15.0-136-generic

You are seeing this disclaimer because Mockito is configured to create inlined mocks.
You can learn about inline mocks and their limitations under item #39 of the Mockito class javadoc.

Underlying exception : org.mockito.exceptions.base.MockitoException: Unsupported settings with this type 'java.nio.ByteBuffer'
	at app//org.apache.fineract.infrastructure.event.external.jobs.SendAsynchronousEventsTaskletTest.givenBatchSize2WhenEventSendFailsThenExecutionStops(SendAsynchronousEventsTaskletTest.java:170)
	at java.base@21.0.6/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base@21.0.6/java.util.ArrayList.forEach(ArrayList.java:1596)
	at java.base@21.0.6/java.util.ArrayList.forEach(ArrayList.java:1596)
Caused by: org.mockito.exceptions.base.MockitoException: Unsupported settings with this type 'java.nio.ByteBuffer'
	at app//net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:168)
	at app//net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:399)
	at app//net.bytebuddy.TypeCache.findOrInsert(TypeCache.java:190)
	at app//net.bytebuddy.TypeCache$WithInlineExpunction.findOrInsert(TypeCache.java:410)
	... 4 more
```

see also: https://stackoverflow.com/questions/47046996/java-lang-unsupportedoperationexception-when-mocking-java-nio-bytebuffer-class

wrap byte arrays with ByteBuffer

fix:

```
/home/adamm/git/apache/fineract/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTaskletTest.java:148: error: incompatible types: byte[] cannot be converted to ByteBuffer
                "anidempotencyKey", "aSchema", "dummy".getBytes());
                                                               ^
/home/adamm/git/apache/fineract/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTaskletTest.java:170: error: incompatible types: byte[] cannot be converted to ByteBuffer
                "anidempotencyKey", "aSchema", "dummy".getBytes());
                                                               ^
/home/adamm/git/apache/fineract/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTaskletTest.java:189: error: incompatible types: byte[] cannot be converted to ByteBuffer
                "anidempotencyKey", "aSchema", "dummy".getBytes());
                                                               ^
/home/adamm/git/apache/fineract/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/jobs/SendAsynchronousEventsTaskletTest.java:210: error: incompatible types: byte[] cannot be converted to ByteBuffer
                "anidempotencyKey", "aSchema", "dummy".getBytes());
```

...and use StandardCharsets with getBytes
2025-04-17 15:01:00 +02:00
oleksandr.masliukandAdam Saghy 60bc3acaf1 FINERACT-2169: Apply dto into GuarantorsApiResource 2025-04-17 15:00:12 +02:00
CsengeSótiandArnold Gálovics 12617ea1df FINERACT-2235: add summary data to loans list api 2025-04-17 14:02:22 +02:00
Adam Saghy 6455311f6c FINERACT-2181: Use daily as recalculation rule in tests 2025-04-16 15:12:39 +02:00
Adam Saghy 1f76a8aeb2 FINERACT-2262: Improve cache handling and add customization option 2025-04-15 19:45:42 +02:00
adam.magyariandAdam Saghy cb8cbd2043 FINERACT-2232: Generalization of StringEnumOptionData enums 2025-04-15 19:45:25 +02:00
adam.magyariandAdam Saghy 7df7be2b16 FINERACT-2232: Progressive loan income capitalization config 2025-04-15 19:45:25 +02:00
Jose Alberto HernandezandAdam Saghy 6a65bc6592 FINERACT-2181: Add customData field to LoanAccountDelinquencyRangeBusinessEvent 2025-04-15 15:16:03 +02:00
Jose Alberto HernandezandAdam Saghy 2eca91eb98 FINERACT-2181: Add customData field to LoanRepaymentBusinessEvent 2025-04-15 15:15:45 +02:00
Jose Alberto HernandezandAdam Saghy 8ce76e1ad6 FINERACT-2181: Add customData field to LoanAdjustTransactionBusinessEvent 2025-04-15 15:15:21 +02:00
Jose Alberto HernandezandAdam Saghy 2143d35e29 FINERACT-2181: Add customData field to InvestorBusinessEvent 2025-04-15 15:14:45 +02:00
Rustam ZeinalovandAdam Saghy b9b5eb60d1 FINERACT-2181: test verifying no accrual activity created for approved loan 2025-04-15 10:54:38 +02:00
mariiaKraievskaandAdam Saghy 11912881af FINERACT-2234: Improve "Add periodic accrual entries" business step performance 2025-04-15 10:54:05 +02:00
Jose Alberto HernandezandAdam Saghy 4ebf768286 FINERACT-2181: Add customData field to LoanProductBusinessEvent 2025-04-14 23:08:13 +02:00
budaidevandAdam Saghy 035cfd087c FINERACT-2081: payment_types cache was missing which caused exception during the interest recalculation process with cache on 2025-04-14 20:33:21 +02:00
Abhinav CillankiandAdam Saghy bad50aaa4d FINERACT-2237: Fix GSIM account creation to generate single parent for multiple clients 2025-04-14 17:05:17 +02:00
mdmytrivandAdam Saghy 67cdb88f66 FINERACT-2181: added e2e tests interestRecognitionOnDisbursementDate flag 2025-04-14 16:21:12 +02:00
mariiaKraievskaandAdam Saghy 245b095195 FINERACT-2181: Fix the API to return interestRecognitionOnDisbursementDate in GetLoanProductsResponse 2025-04-14 16:21:12 +02:00
mark.vituskaandAdam Saghy f8d5bde921 FINERACT-2080: extracted json based workflows from Loan and other Loan related entities 2025-04-14 16:14:12 +02:00
Jose Alberto HernandezandAdam Saghy b4b2ef3701 FINERACT-2081: External service credential values masked 2025-04-14 16:05:21 +02:00
Mend RenovateandArnold Gálovics 07ea81e399 FINERACT-2181: Update bitnami/kafka Docker tag to v4 2025-04-12 09:46:12 +02:00
dependabot[bot]andArnold Gálovics e842ba6962 Bump actions/setup-java from 4.7.0 to 4.7.1
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.7.0 to 4.7.1.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/3a4f6e1af504cf6a31855fa899c6aa5355ba6c12...c5195efecf7bdfc987ee8bae7a71cb8b11521c00)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: 4.7.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-12 09:30:59 +02:00
Adam SaghyandArnold Gálovics 815421fd94 FINERACT-2181: No Accrual Activity for not active loans 2025-04-12 09:14:52 +02:00
Adam SaghyandArnold Gálovics d947183529 FINERACT-2260: Fix incorrect interest handling in case of early repayment 2025-04-12 09:12:08 +02:00
mariiaKraievskaandAdam Saghy 76a5ec89cc FINERACT-2181: Fix savings integration tests 2025-04-10 21:20:35 +02:00
danielales2541andAdam Saghy 055fd58ea1 FINERACT-2202: Bulk import fix 2025-04-10 15:20:51 +02:00
Arnold GalovicsandArnold Gálovics 872f97b6b6 FINERACT-2258: Fix for making the Post Interest for Savings job properly work in a multitenant environment
Fineract Docker build - MariaDB / build (push) Canceled after 0s
Fineract Docker build - PostgreSQL / build (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract ActiveMQ Smoke / build (push) Canceled after 0s
Fineract Build Progressive Loan Embeddable Jar & Test with a Sample Application / build (push) Canceled after 0s
Fineract Build & Test - MariaDB / build (push) Canceled after 0s
Fineract Build & Test - MySQL / build (push) Canceled after 0s
Fineract Build & Test - PostgreSQL / build (push) Canceled after 0s
Fineract Tests / build (push) Canceled after 0s
Fineract Kafka Smoke / build (push) Canceled after 0s
2025-04-10 11:01:48 +02:00
mark.vituskaandAdam Saghy 09879800e0 FINERACT-2181: modified id and id related fields in api objects to long datatype 2025-04-10 11:01:25 +02:00
viktorpavlenkoandAdam Saghy 3260f76ca7 FINERACT-2169: Refactor calendar controller and service; 2025-04-10 10:59:59 +02:00
Adam Saghy 64b453e9ab FINERACT-2181: Introduce Loop guard to avoid endless loops 2025-04-10 10:58:44 +02:00
Soma SörösandAdam Saghy 7f9a812048 FINERACT-2220: Make ProgressiveLoanInterestScheduleModel serializable and deserializable 2025-04-09 10:12:51 +02:00
Jose Alberto HernandezandAdam Saghy 8f6b8cbc47 FINERACT-2081: Add ChargeOffReasonOptions in the Loan Transaction Template swagger class 2025-04-08 17:02:22 +02:00
mdmytrivandAdam Saghy 5f4f7ef95f FINERACT-1981: added e2e tests for disbursement charge feature 2025-04-08 16:56:34 +02:00
adam.magyariandAdam Saghy 89f7fd257c FINERACT-1981: progressive loan disbursement charge fixes
- Update PutChargesChargeIdRequest swagger def
- undo disbursement fix
- non-tranche multidisburse fix
- disbursement transaction order fix
2025-04-08 16:56:34 +02:00
viktorpavlenkoandAdam Saghy 0769b41b26 FINERACT-2169: Refactor standing instruction api controller; 2025-04-08 16:39:15 +02:00
viktorpavlenkoandAdam Saghy 056a20f58e FINERACT-2169: Refactor standing instruction history api controller; 2025-04-08 16:38:11 +02:00
Oleksii NovikovandAdam Saghy 2ba7e28108 FINERACT-2080: Extract DTO mappers from loan entity 2025-04-07 13:13:35 +02:00
oleksandr.masliukandAdam Saghy b01dca3ecc FINERACT-2169: Apply dto in ProductMixApiResource 2025-04-07 12:58:32 +02:00
Adam MonsenandAdam Saghy efabd341df FINERACT-2231: remove links unhelpful in future releases
The Fineract dev list thread links were specific to the 1.11.0 release.
It wouldn't make sense to include them in future [VOTE] emails.
2025-04-07 12:56:54 +02:00
Adam MonsenandAdam Saghy 97dd2bbbde FINERACT-2230: improve test and doc building info in README
Update and add detail to doing the most common types of test runs on a developer workstation.

Add info on how to build asciidoc-based documentation.
2025-04-07 12:56:44 +02:00
Adam Saghy 10d281f9fa FINERACT-2211: Fix endless loop issue 2025-04-04 20:03:27 +02:00
Adam Saghy 4213f56a98 FINERACT-2181: Add customData field to LoanChargeBusinessEvent 2025-04-04 15:31:13 +02:00
Rustam ZeinalovandAdam Saghy 9bf365b62d FINERACT-2226: added e2e tests for validation of progressive loan charge-off reverse replay events fix 2025-04-04 14:29:30 +02:00
adam.magyariandAdam Saghy 49feaab3e5 FINERACT-2226: progressive loan charge-off reverse replay events fix 2025-04-04 14:29:30 +02:00
Adam Saghy eb7ec383f8 FINERACT-2190: Improve copyFrom of LoanRepaymentScheduleInstallment 2025-04-04 14:29:10 +02:00
Jose Alberto HernandezandAdam Saghy 52c41b1471 FINERACT-2190: Avoid recreation of loan repayment schedule periods 2025-04-04 14:29:10 +02:00
oleksandr.masliukandAdam Saghy b9cfa470ff FINERACT-2169: Apply dto in LoanCollateralManagementApiResource 2025-04-03 12:09:08 +02:00
Mend RenovateandAdam Saghy 4bbfe6a5f4 FINERACT-2181: Update dependency jakarta.annotation:jakarta.annotation-api to v3 2025-04-03 12:07:59 +02:00
Victor RomeroandAdam Saghy 692a6f0a63 Enable logging
FINERACT-2195 fix
2025-04-03 11:39:51 +02:00
budaidevandAdam Saghy 16e70527ea FINERACT-2080: separate LoanRepaymentScheduleTransactionProcessorFactory from loan 2025-04-03 10:50:50 +02:00
mdmytrivandAdam Saghy 741cdb1e42 FINERACT-2215: added e2e tests for charge-off handling reversed transactions 2025-04-02 13:24:19 +02:00
budaidevandAdam Saghy ba3aa80b7c FINERACT-2215: charge-off fix for reversed transactions 2025-04-02 13:24:19 +02:00
oleksandr.masliukandAdam Saghy a0a6d3aa14 FINERACT-2169: Apply dto in ClientCollateralManagementApiResource 2025-04-02 10:55:53 +02:00
Oleksii NovikovandAdam Saghy f3606bb2d1 FINERACT-2225: Save journal entries for accrual transaction created by charge adjustment 2025-04-01 14:23:55 +02:00
oleksandr.masliukandAdam Saghy 510b4853e7 FINERACT-2169: Apply dto in CollateralManagementApiResource 2025-04-01 10:02:47 +02:00
mariiaKraievskaandAdam Saghy 957666df18 FINERACT-2210: Incorrect accounting of reversed charge-off transaction. 2025-04-01 10:01:13 +02:00
oleksandr.masliukandAdam Saghy b7ba9bd570 FINERACT-2169: Apply dto in CollateralsApiResource 2025-04-01 10:01:00 +02:00
Adam Saghy 833f4a0d33 FINERACT-2228: Fix incorrect current balance calculation and unintentional transaction reversals 2025-04-01 08:50:14 +02:00
Peter MwangiandGitHub b7845166c4 FINERACT-2227: Fix triggered SMS messages error (#4511) 2025-03-31 20:43:30 -06:00
Adam Saghy 43bf94cd8f FINERACT-2229: Fix incorrect repayment schedule in case of Merchant issued refund 2025-03-31 17:11:15 +02:00
Abhinav CillankiandAdam Saghy be9e44fa44 FINERACT-2215: Exclude reversed transactions from hasMonetaryActivityAfter check 2025-03-31 14:17:52 +02:00
viktorpavlenkoandAdam Saghy 97515fcba9 FINERACT-2169: Refactor external assets owner api controller; 2025-03-31 11:23:47 +02:00
oleksandr.masliukandAdam Saghy 53c36ba4f8 FINERACT-2169: Apply dto in DelinquencyApiResource 2025-03-31 10:38:38 +02:00
Adam Saghy a313608cd3 FINERACT-2181: Use correct loan status conversion for Loan status change history 2025-03-28 21:26:07 +01:00
abudai-moveandAdam Saghy 65583a1661 FINERACT-2207: add both of the validCheckSum to make it work all of the dbs 2025-03-28 12:23:59 +01:00
abudai-moveandAdam Saghy c613d9c0fe FINERACT-2207: fix jdbc connection string in liquibase script
FINERACT-2207: add valid checksum
2025-03-28 12:23:59 +01:00
viktorpavlenkoandAdam Saghy 1b9459b7b4 FINERACT-2169: Refactor field configuration api controller; 2025-03-27 15:08:37 +01:00
Rustam ZeinalovandAdam Saghy 65b74ee87b FINERACT-2148: added e2e test covering charge-off after backdated repayment for cumulative loan 2025-03-27 15:05:14 +01:00
mariiaKraievskaandAdam Saghy acabf16003 FINERACT-2148: Cumulative Loan - accrual handling in case of charged-off loan 2025-03-27 15:05:14 +01:00
Adam Saghy 0fc1c3e20e FINERACT-2181: Upgrade Spring dependencies 2025-03-27 14:07:40 +01:00
viktorpavlenkoandAdam Saghy bb5078b5da FINERACT-2169: Refactor account transfer api controller; 2025-03-27 11:45:35 +01:00
Oleksii NovikovandAdam Saghy e584e26c39 FINERACT-2191: ThreadLocal context handling during job execution 2025-03-27 11:44:12 +01:00
Arnold GalovicsandArnold Gálovics 0f1d53cbdc FINERACT-2181: Fix for using the proper ChargeData object in LoanProduct APIs 2025-03-26 22:49:44 +01:00
Adam SaghyandArnold Gálovics 83039b498a FINERACT-2181: Downgrade postgres driver - performance issue with v42.7.5 2025-03-26 13:24:51 +01:00
Adam SaghyandArnold Gálovics 4792484336 FINERACT-2181: Downgrade postgres driver - performance issue with v42.7.5 2025-03-26 13:24:51 +01:00
Arnold GalovicsandArnold Gálovics 134b097a5e FINERACT-2181: Added threadlocal context reset during parallel accrual processing 2025-03-26 13:24:32 +01:00
dependabot[bot]andArnold Gálovics 961e6d1aa6 Bump gradle/actions from 4.3.0 to 4.3.1
Bumps [gradle/actions](https://github.com/gradle/actions) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](https://github.com/gradle/actions/compare/94baf225fe0a508e581a564467443d0e2379123b...06832c7b30a0129d7fb559bcc6e43d26f6374244)

---
updated-dependencies:
- dependency-name: gradle/actions
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-26 11:15:47 +01:00
Adam Saghy f47b2b3fc2 FINEREACT-2181: Ignore null values in customData field 2025-03-26 10:09:35 +01:00
oleksandr.masliukandAdam Saghy 79c08ed7c9 FINERACT-2169: Apply dto in SearchApiResource 2025-03-26 10:03:19 +01:00
oleksandr.masliukandAdam Saghy f73b352727 FINERACT-2169: refactoring FloatingRatesApiResource - update swagger docs 2025-03-26 10:01:45 +01:00
Arnold GalovicsandArnold Gálovics 7dd058b5f1 FINERACT-2181: Made Add Accrual Transactions job parallel on a loan-basis 2025-03-26 09:55:28 +01:00
Peter KovacsandAdam Saghy 82031f46d0 FINERACT-2181: allure report target directory changed 2025-03-25 15:02:20 +01:00
viktorpavlenkoandAdam Saghy b646ba6ca7 FINERACT-2169: Refactor loan COB catch up api controller; 2025-03-25 12:11:29 +01:00
viktorpavlenkoandAdam Saghy 20195464c9 FINERACT-2169: Refactor macker checkers api controller; 2025-03-25 12:10:27 +01:00
mariiaKraievskaandAdam Saghy 2d2cbb46b5 FINERACT-2181: Move the remaining transactions reprocessing logic out of the loan entity to ReprocessLoanTransactionsService. 2025-03-25 12:09:28 +01:00
Jose Alberto HernandezandAdam Saghy f3bb66f209 FINERACT-2197: Introduce a new type of ACTUAL during calculation of days in year, update 2025-03-24 19:30:44 +01:00
Adam MonsenandAdam Saghy 3f2079566c FINERACT-2219: capture v1.11.0 lessons learned in asciidoc and fineract release plugin
* don't bother making MD5 files, they aren't necessary
* step12 changed, stub it out and reference FINERACT-1817 for future improvements (looks like svn mv is not yet supported)
* use latest vote message template, based on https://lists.apache.org/thread/cs5t0ho39ktg2jxr74dqd7fg9nyfcz3k
* use more explicit form of `git push` to push release tag, see https://stackoverflow.com/questions/5195859/how-do-you-push-a-tag-to-a-remote-repository-using-git
* use consistent language re: tarball, file, artifact, release candidate
* fix some source listings that shouldn't be using macro expansion: this messes up URLs (hides scheme)
* fix asciidoc link to FINERACT-1229
* clean up copyright years: use variable properly and remove unnecessary extra copyright in preface (it appears directly above, in the license)
* de-indent URL in apache license -- this makes the link clickable in rendered HTML and PDF asciidoc outputs
2025-03-24 14:30:21 +01:00
Adam Saghy b2af4a635c FINERACT-2221: Fix - Interest not counted towards totalUnpaidPayableNotDueInterest after partial repayment 2025-03-24 14:23:00 +01:00
mariiaKraievskaandAdam Saghy 2251ee0da6 FINERACT-2181: Fix loan transactions filtering by type 2025-03-21 19:40:05 +01:00
viktorpavlenkoandAdam Saghy 8462c67f3c FINERACT-2169: Refactor job api controller; 2025-03-20 14:44:27 +01:00
viktorpavlenkoandAdam Saghy 3aa011b32e FINERACT-2169: Refactor loan account api controller; 2025-03-20 14:43:16 +01:00
mark.vituskaandAdam Saghy 993393b519 FINERACT-2080: use enums instead of integers in Loan, LoanProduct and LoanTransaction 2025-03-20 14:34:51 +01:00
dependabot[bot]andArnold Gálovics 8d2db7f80f Bump actions/upload-artifact from 4.6.1 to 4.6.2
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.1 to 4.6.2.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1...ea165f8d65b6e75b540449e92b4886f43607fa02)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-20 10:59:59 +01:00
viktorpavlenkoandAdam Saghy c2c157cfd7 FINERACT-2169: Refactor currencies api resource; 2025-03-19 17:40:20 +01:00
Hossam HatemandAdam Saghy 1cb5d7c371 FINERACT-2181: Improve AssertJ assertions in DefaultScheduledDateGeneratorTest 2025-03-19 17:39:01 +01:00
adam.magyariandAdam Saghy 2cfc0b2503 FINERACT-2203: LoanTransactionsApi add getLoanTransactions 2025-03-19 17:38:19 +01:00
Arnold GalovicsandAdam Saghy a8bbba0b24 FINERACT-2181: Generating the right ChargeData class for ChargesApi 2025-03-19 17:36:25 +01:00
Oleksii NovikovandAdam Saghy 1d569d9ecf FINERACT-2181: Split Datatable service 2025-03-19 17:25:48 +01:00
oleksandr.masliukandAdam Saghy 123899eac1 FINERACT-2169: Apply dto in MixTaxonomy api 2025-03-19 13:23:34 +01:00
Adam Saghy 35339a6a83 FINERACT-2181: CommandProcessingResult serialization optimisation 2025-03-19 12:44:52 +01:00
viktorpavlenkoandAdam Saghy ef47989656 FINERACT-2169: Refactor image api resource; 2025-03-19 12:27:05 +01:00
viktorpavlenkoandAdam Saghy ac8f62db51 FINERACT-2169: Refactor document management api and update swagger doc; 2025-03-19 12:26:37 +01:00
viktorpavlenkoandAdam Saghy a0ffaa1c0b FINERACT-2214: Remove pretty print parameter from api and serialization; 2025-03-19 12:23:29 +01:00
Adam MonsenandAdam Saghy 34cdf4d01f FINERACT-2216: add github project metadata
1. Link to project homepage at https://fineract.apache.org
2. Add some tags/labels/topics

See also:

* https://github.com/apache/infrastructure-asfyaml#repo_meta
* https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/classifying-your-repository-with-topics
2025-03-19 12:13:45 +01:00
viktorpavlenkoandAdam Saghy 84c101ab14 FINERACT-2169: Apply dto for external event config api; 2025-03-19 12:13:21 +01:00
a7med3del1973andAdam Saghy 9fe993342b FINERACT-2181: Refactor UpdateTrialBalanceDetailsConfig injection instead of Autowired 2025-03-19 12:12:37 +01:00
carlossortegaandAdam Saghy 9d53d1cb90 FINERACT-2202: Bulk import fix 2025-03-19 12:11:34 +01:00
oleksandr.masliukandAdam Saghy c9c01a50e2 FINERACT-2169: Apply DTO instead String json in FundsApiResource 2025-03-19 11:56:08 +01:00
mariiaKraievskaandAdam Saghy 04770133d0 FINERACT-2181: No subResourceExternalId in fee waiver response after charge-off 2025-03-19 11:53:57 +01:00
Adam SaghyandGitHub 2d03ebb179 FINERACT-2181: Upgrade Spring-boot version (#4477) 2025-03-18 23:57:56 -06:00
Víctor RomeroandGitHub 7dd2a8ba1e FINERACT-2181: Update non-major (#4471) 2025-03-18 15:12:18 -06:00
Victor RomeroandAdam Saghy eacfb92545 FINERACT-2181: Update non-major 2025-03-18 12:04:27 +01:00
mariiaKraievskaandAdam Saghy 22282ded00 FINERACT-2181: Rework "createMissingAccrualTransactionDuringChargeOffIfNeeded" to avoid flushing and triggering business event as part of Transaction processor 2025-03-18 12:03:27 +01:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
166c1981fb Bump actions/setup-node from 4.2.0 to 4.3.0 (#4467)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a...cdca7365b2dadb8aad0a33bc7601856ffabcc48e)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-17 18:29:22 -06:00
Arnold GalovicsandArnold Gálovics 03aded1105 FINERACT-2181: Minor enhancements for External Asset Owner Loan Product API 2025-03-17 10:55:08 +01:00
viktorpavlenkoandAdam Saghy e1aa632ccc FINERACT-2169: Apply dto for payment type api and upgrade swagger doc; 2025-03-14 18:17:41 +00:00
viktorpavlenkoandAdam Saghy 707fe3d0e5 FINERACT-2169: Apply dto in api and clean up unnecessary swagger; 2025-03-14 18:17:13 +00:00
viktorpavlenkoandAdam Saghy 2f5ae610d1 FINERACT-2169: Upgrade charge api to dto; 2025-03-14 18:13:39 +00:00
oleksandr.masliukandAdam Saghy b698d7247b FINERACT-2169: Apply DTO instead String json in NotesApiResource 2025-03-14 18:12:37 +00:00
Harsh-Srivastav123andAdam Saghy c236ee04ef FINERACT-2080: Refactoring Loan entity
FINERACT-2080: Refactoring Loan entity
2025-03-14 18:11:52 +00:00
viktorpavlenkoandAdam Saghy 35aa6e1f4f FINERACT-2169: Business date api refactor; 2025-03-14 18:10:48 +00:00
viktorpavlenkoandAdam Saghy 99f313e02c FINERACT-2169: Account rules api refactor; 2025-03-14 18:10:19 +00:00
viktorpavlenkoandAdam Saghy 056b3edaad FINERACT-2169: Provision entries api refactor; 2025-03-14 18:09:40 +00:00
viktorpavlenkoandAdam Saghy d96e78a4f7 FINERACT-2169: Audits API recourse refactor and clean up; 2025-03-14 18:08:59 +00:00
Adam SaghyandArnold Gálovics 1d72d4cfb8 FINERACT-1095: Remove last pieces of sqlSearch 2025-03-14 14:10:31 +01:00
mark.vituskaandAdam Saghy e44a60f327 FINERACT-2181: initial rounding-mode configuration 2025-03-14 13:05:30 +00:00
budaidevandAdam Saghy a86baeeef4 FINERACT-2181: removing the read_uncommited isolation 2025-03-14 13:04:06 +00:00
Soma SörösandAdam Saghy 3cf85e2977 FINERACT-2197: Introduce a new type of ACTUAL during calculation of days in year 2025-03-14 13:01:06 +00:00
Wilfred KigenyiandAdam Saghy 2ac1445dba Confirm existance of elements before accessing them 2025-03-14 12:59:35 +00:00
Oleksii NovikovandAdam Saghy 898a18c873 FINERACT-2081: Fix cumulative principal calculation 2025-03-14 12:57:40 +00:00
Jose Alberto HernandezandAdam Saghy e1d820756f FINERACT-2180: Trigger (internal) business event when new datatable entry was added 2025-03-14 09:46:28 +00:00
Arnold GalovicsandArnold Gálovics 3198b1b99e FINERACT-2208: Penalties are not recalculated after backdated transactions 2025-03-12 16:52:30 +01:00
Arnold GalovicsandArnold Gálovics 91f0662998 FINERACT-2212: Savings interest was sometimes posted to the wrong GL accounts 2025-03-12 16:43:51 +01:00
marta-jankovicsandGitHub 2cbca40efe FINERACT-2209: Add missing permissions
Merge pull request #4450 from openMF/feature/FINERACT-2209
2025-03-12 16:26:34 +01:00
Adam Saghy 4ea0acdcf1 FINERACT-2211: Fix-Incorrect LoanSchedule after Full Refund with LAST_INSTALLMENT rule on 12m interest bearing Term loan 2025-03-12 15:00:14 +00:00
Soma SörösandAdam Saghy a28b9332b9 FINERACT-2201: [Bug] - Negative numbers in case of progressive interest bearing loans - Reamortization 2025-03-12 12:33:42 +00:00
Marta Jankovics d61a1addd7 FINERACT-2209: Add missing permissions 2025-03-12 11:26:43 +01:00
oleksandr.masliukandAdam Saghy 1fb5e3da43 FINERACT-2169: Apply DTO instead String json in RateApiResource 2025-03-11 18:04:41 +00:00
viktorpavlenkoandAdam Saghy cc0c09df60 FINERACT-2169: Batches api refactor; 2025-03-11 18:03:43 +00:00
a7med3del1973andAdam Saghy 8371e162ba FINERACT-2181: Refactor ResultColumnHeaderData using Lombok and modern Java new features 2025-03-10 14:25:02 +00:00
Adam Saghy 0b2e0c33a7 FINERACT-2204: [TEST] - Fix accrual activity reversal logic: prevent duplicate reverse-replay, copy external ID correctly
Based on the work of @tamasszabo-dpc and @peter-kovacs-dpc
2025-03-09 20:48:32 +00:00
Oleksii NovikovandAdam Saghy d32ddc91df FINERACT-2204: Fix accrual activity reversal logic: prevent duplicate reverse-replay, copy external ID correctly 2025-03-09 20:48:32 +00:00
Adam Saghy 03bbad21e8 FINERACT-2181: Remove unnecessary long to int conversion 2025-03-07 21:07:42 +00:00
mark.vituskaandAdam Saghy 24cee73dc0 FINERACT-2181: modified inject-comment sql validation pattern to not match single dashes 2025-03-07 20:44:41 +00:00
Arnold GalovicsandArnold Gálovics 33e9f7f3db FINERACT-2141: Delayed settlement implementation for fineract loan investor module 2025-03-07 17:46:24 +01:00
Arnold GalovicsandArnold Gálovics 23887bdf1c FINERACT-2181: Tenant ID is included in the log messages 2025-03-06 22:00:52 +01:00
Arnold GalovicsandArnold Gálovics f48a3d0c08 FINERACT-2181: Tag published docker images with hash as well when built from develop 2025-03-06 19:41:13 +01:00
Arnold GalovicsandArnold Gálovics 7b45f3e4d5 FINERACT-2181: Liquibase migrations are stuck when multi-threaded migrations are enabled and one tenant migration fails 2025-03-06 19:36:34 +01:00
viktorpavlenkoandAdam Saghy f8e5d6c9fc FINERACT-2169: Provision category definition api refactor; 2025-03-05 22:39:49 +00:00
Rustam ZeinalovandAdam Saghy bd66037910 FINERACT-2174: add tests for validation of interestRecognitionOnDisbursementDate setting application under certain conditions 2025-03-05 22:37:58 +00:00
viktorpavlenkoandAdam Saghy 429374e530 FINERACT-2169: Financial activity account api refactor; 2025-03-05 14:50:18 +00:00
mark.vituskaandAdam Saghy 1921606ffc FINERACT-2181: fixed ConfigurationReadPlatformServiceImpl to handle not found cases, added tests 2025-03-05 14:06:39 +00:00
viktorpavlenkoandAdam Saghy a41891e776 FINERACT-2169: Glclosure account api refactor; 2025-03-04 20:27:44 +00:00
viktorpavlenkoandAdam Saghy d98f5b0d0e FINERACT-2169: GL account api refactor; 2025-03-04 20:26:58 +00:00
Hossam HatemandAdam Saghy e0c9da4514 FINERACT-2181: Improve DateFormat class code quality 2025-03-04 20:25:50 +00:00
viktorpavlenkoandAdam Saghy d61bbeb71a FINERACT-2169: Taxes api refactor; 2025-03-04 20:24:39 +00:00
Harsh-Srivastav123andAdam Saghy d826913753 This PR refactors the LoanStatus.fromInt method to replace the traditional switch-case statement with a modern switch expression, improving code readability and efficiency. 2025-03-04 20:23:11 +00:00
Harsh-Srivastav123andAdam Saghy 86832c927b This pull request addresses [FINERACT-2081](https://issues.apache.org/jira/browse/FINERACT-2081).
The `toString()` method in several Enum classes has been simplified. The previous implementation:
2025-03-04 20:22:43 +00:00
a7med3del1973andAdam Saghy ce5c4d36b4 FINERACT-2181: Reduce duplication and use static access for constants 2025-03-04 20:22:16 +00:00
oleksandr.masliukandAdam Saghy a0a0c15efa FINERACT-2169: Apply DTO instead String json in AdHocApiResource 2025-03-04 20:19:49 +00:00
mariiaKraievskaandAdam Saghy 6b5641f474 FINERACT-2148: Accrual handling in case of Charged-off loan and backdated transactions / reversals 2025-03-04 19:11:06 +00:00
Adam Saghy 9208ea2fe1 FINERACT-2200: Add "reversed" flag to LoanTransactionDataV1.avsc 2025-03-04 14:16:55 +00:00
tamasszabo-dpcandAdam Saghy 262f1d9e10 FINERACT-2179: Added use-cases to cover next/last installment payment allocation 2025-03-03 16:39:57 +01:00
Soma SörösandAdam Saghy b546a43ce9 FINERACT-2179: Introduce Next/Last in future allocation rule for progressive loans 2025-03-03 16:39:57 +01:00
mariiaKraievskaandAdam Saghy f0cc697c67 FINERACT-2333: Accrual handling in case of Charged-off loan 2025-03-03 16:30:46 +01:00
Hossam HatemandAdam Saghy 843b27926e FINERACT-2081: Replace switch statements with if statements for better readability 2025-02-28 16:20:21 +01:00
Oleksii NovikovandAdam Saghy 4c66151b47 FINERACT-1981: Charge-off on progressive loan when accounting is none 2025-02-28 16:18:51 +01:00
Adam Saghy 710ba39d9f FINERACT-2081: Add index on calendar instance table 2025-02-28 15:18:19 +01:00
Hossam HatemandAdam Saghy 142f63ca17 FINERACT-2081: Add assertions to BulkBusinessEventTest 2025-02-28 12:13:28 +01:00
Rustam ZeinalovandAdam Saghy e1165e813a FINERACT-1971: added test scenarios to cover repayment schedule with large charge amounts 2025-02-27 16:37:29 +01:00
Arnold GalovicsandArnold Gálovics c1ec3d7fc7 FINERACT-2194: Batch jobs arre failing in a multitenant environment 2025-02-27 16:25:18 +01:00
tamasszabo-dpcandAdam Saghy 08dc3b123f FINERACT-2148 - Fixed expected results for accruals before charge-off date 2025-02-27 15:11:08 +01:00
Oleksii NovikovandAdam Saghy 02c66b180e FINERACT-2148: Accrual handling in case of backdated Charged-off transaction 2025-02-27 15:11:08 +01:00
a7med3del1973andAdam Saghy 53c2cabf01 FINERACT-2081: Added some tests for LogParameterEscapeUtil 2025-02-27 10:31:56 +01:00
Hossam HatemandAdam Saghy 17d1aa580d FINERACT-2081: Fix code quality issues in Cashier domain class 2025-02-27 10:30:47 +01:00
oleksandr.masliukandAdam Saghy d9bb820cc6 FINERACT-2169: Replace String json to DTO in FloatingRatesApiResource - fixed 2025-02-27 10:28:47 +01:00
Rustam ZeinalovandAdam Saghy 7642530393 FINERACT-2081: Fix Accrual activity - reverse and replayed couple of times after backdated repayment 2025-02-27 10:27:33 +01:00
Adam Saghy 991a2c1af4 FINERACT-2181: Update Test annotation import
(org.junit.Test -> org.junit.jupiter.api.Test)
2025-02-26 22:17:59 +01:00
Rustam ZeinalovandAdam Saghy 786789c446 FINERACT-2081: Added tests for validation of batch api call with steps to charge off a loan 2025-02-26 16:53:38 +01:00
Hossam HatemandAdam Saghy 8c5606ea8e FINERACT-2081: fix sonar issues in EntityTables enum 2025-02-26 15:04:28 +01:00
Oleksii NovikovandAdam Saghy 2cf99818e6 FINERACT-2181: Introduce customData field for Loan and LoanTransaction business events 2025-02-26 14:27:31 +01:00
edcableandAdam Saghy ccf213aefe Update README.md
Fixed typo in header for Governance
2025-02-26 13:07:05 +01:00
viktorpavlenkoandAdam Saghy 191a35a940 FINERACT-2169: SMS API refactoring and clean up; 2025-02-26 12:55:02 +01:00
tamasszabo-dpcandAdam Saghy dcde04d506 FINERACT-2176 - Added use case to check interest portion for Charge-off when backdated full repayment happens on same period 2025-02-26 12:52:03 +01:00
adam.magyariandAdam Saghy a5e3a80683 FINERACT-2176: fix Interest portion is missing from Charge-off transaction 2025-02-26 12:52:03 +01:00
Soma SörösandAdam Saghy 3dd62803e6 FINERACT-2081: Fix ProgressiveEMICalculator caused infinite loop on AdvancedPaymentScheduleTransactionProcessor 2025-02-26 12:25:21 +01:00
Soma SörösandAdam Saghy a72d3ff423 FINERACT-2187: Fix totalUnpaidPayableNotDueInterest not correct, when there is early payment on the loan 2025-02-25 21:56:59 +01:00
Rustam ZeinalovandAdam Saghy 37f60ad8dc FINERACT-2174: Added tests for validation of calculation of fraction period in case if interestRecognitionFromDisbursementDate is set to true 2025-02-25 11:16:42 +01:00
adam.magyariandAdam Saghy 9310f0e1ea FINERACT-2181: make 'BusinessEventNotifierServiceImpl#isExternalEventConfiguredForPosting` overridable 2025-02-25 11:14:53 +01:00
adam.magyariandAdam Saghy e542ca6870 FINERACT-2081: fix tests event check to use latest relevant event 2025-02-25 11:11:26 +01:00
a7med3del1973andAdam Saghy 6821b50ed6 FINERACT-2081: Rename constants to follow naming convention and conflict
solved
2025-02-25 11:10:59 +01:00
dependabot[bot]andArnold Gálovics 8be31bd06b Bump actions/upload-artifact from 4.6.0 to 4.6.1
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.0 to 4.6.1.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08...4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-24 16:58:58 +01:00
Peter KovacsandAdam Saghy 2456f7fa71 FINERACT-2081: Adding TestrailIds, removing Skip tags 2025-02-24 14:27:35 +01:00
Hossam HatemandAdam Saghy 44ee19ec30 FINERACT-2081: Replace String concatenation with Text block and remove ApiResponses wrapper 2025-02-24 14:25:18 +01:00
Hossam HatemandAdam Saghy eac31a925f FINERACT-2081: Remove redundant toString() calls 2025-02-24 14:24:57 +01:00
a7med3del1973andAdam Saghy e001a9c048 FINERACT-2081: Remove unnecessary toString and change replaceAll method calls 2025-02-24 14:20:05 +01:00
Hossam HatemandAdam Saghy 6837043182 FINERACT-2081: Fixed GLAccountReadPlatformServiceImpl code quality issues 2025-02-24 14:18:06 +01:00
Hossam HatemandAdam Saghy 89ba32b982 FINERACT-2081: fixed GLAccountsApiResource by replace string concatenation and remove 'ApiResponses' wrapper 2025-02-24 14:11:36 +01:00
a7med3del1973andAdam Saghy aa8e1154ff FINERACT-2081: fixed ProvisioningEntriesApiResource by replace string concatenation and remove 'ApiResponses' wrapper 2025-02-24 14:10:41 +01:00
a7med3del1973andAdam Saghy f6c50bf1c5 FINERACT-2081: Define a constant instead of duplicating 2025-02-24 14:09:54 +01:00
a7med3del1973andAdam Saghy 84b25e0f1b FINERACT-2081: throw an UnsupportedOperationException for uncomplete implementation. 2025-02-24 14:09:28 +01:00
a7med3del1973andAdam Saghy 9a9a8ede93 FINERACT-2081: Refactor constructor injection 2025-02-24 13:14:24 +01:00
viktorpavlenkoandAdam Saghy af922fe933 FINERACT-2169: Accrual account api refactor; 2025-02-24 11:19:37 +01:00
viktorpavlenkoandAdam Saghy 8c2b7bd827 FINERACT-2169: Replace to String json to dto and clean up; 2025-02-24 11:02:24 +01:00
Adam Saghy 259eb75d81 FINERACT-2081: Fix Fineract writer hung infinte loop after merchant issued refund 2025-02-21 17:21:50 +01:00
Adam Saghy 5137fd65af FINERACT-2081: Charge-off optimalization 2025-02-21 14:09:23 +01:00
Adam Saghy e02420f998 FINERACT-1981: Fix interest calculation logic (rounding issues with sub interest periods) 2025-02-20 14:24:24 +01:00
Janos MeszarosandAdam Saghy b4b9d3ea71 FINERACT-1981: Fix calculation new way when applies multi disbursement 2025-02-20 14:24:24 +01:00
viktorpavlenkoandArnold Gálovics 81ed0260b1 FINERACT-2169: Refactor api to concrete types and add validation; 2025-02-19 23:10:12 +01:00
CsengeSótiandArnold Gálovics 1b0cc27eec FINERACT-2183: Expose Tomcat thread metrics via actuator 2025-02-19 17:26:27 +01:00
mdmytrivandAdam Saghy fd1c5f0b43 FINERACT-2268: added test scenarios to cover repayment schedule with large charge amounts 2025-02-19 15:00:51 +01:00
Adam Saghy 054f146d54 FINERACT-2081: Fix failing test 2025-02-19 00:16:57 +01:00
Oleksii NovikovandAdam Saghy b1384b9cce FINERACT-2081: Refactoring for reprocess transactions and regenerate repayment schedule invocations 2025-02-18 20:10:25 +01:00
mariiaKraievskaandAdam Saghy 6bb68051ce FINERACT-2327: Forbid accrual and accrual activity creation for closed, overpaid and cancelled loans 2025-02-18 17:56:37 +01:00
Arnold GalovicsandArnold Gálovics 0f1be3c913 FINERACT-2178: Ability to retrieve a loan's balance at a certain point in time in the past 2025-02-17 21:48:05 +01:00
Rustam ZeinalovandAdam Saghy 986dceea1c FINERACT-2286: Added tests for validation of interestRecognitionFromDisbursementDate setting to be taking into account by periodic accrual job 2025-02-17 15:05:06 +01:00
mdmytrivandAdam Saghy 2fce8e5be9 FINERACT-2310: added test scenarios for backdated loan with zero interest rate 2025-02-17 11:19:22 +01:00
Soma SörösandAdam Saghy ff21304cac FINERACT-2174: Calculate fraction period - In case interestRecognitionFromDisbursementDate is true, we need to include from date and exclude due date 2025-02-17 09:48:14 +01:00
mdmytrivandAdam Saghy 7dc5dc279b FINERACT-2162: Added automations tests for chargeback with interest bearing and interest recalculation enabled 2025-02-14 15:16:59 +01:00
Janos MeszarosandAdam Saghy cdbf0df571 FINERACT-2162: Chargeback implementation for progressive interest recalculation enabled loan. 2025-02-14 15:16:59 +01:00
Jose Alberto HernandezandAdam Saghy 22f7972f60 FINERACT-1971 Repayment schedule period - Incorrect values after charge with huge amount 2025-02-14 10:29:48 +01:00
tamasszabo-dpcandAdam Saghy d9414a6e7e FINERACT-2162: Added test case to cover accrual creation behavior in case of charback interest 2025-02-13 16:51:50 +01:00
adam.magyariandAdam Saghy 78c7abf05c FINERACT-2162: Progressive loan chargeback accrual handling 2025-02-13 16:51:50 +01:00
Peter KovacsandAdam Saghy f1e9afd3e3 FINERACT-2081: Adding additional E2E tests to improve test coverage - pt2: feature files 2025-02-13 16:40:06 +01:00
mariiaKraievskaandAdam Saghy cb0ad23f37 FINERACT-2290: Handling accelerate maturity date charge-off in case LAST_INSTALLMENT strategy 2025-02-13 13:20:39 +01:00
adam.magyariandAdam Saghy e2157501c0 FINERACT-2081: Allow loan charge-off via batch api 2025-02-13 09:51:58 +01:00
Adam Saghy 2ce1ece4ae FINERACT-2081: Fix to use locally built docker image 2025-02-12 19:35:17 +01:00
Peter KovacsandAdam Saghy 48a0630b47 FINERACT-2081: Adding additional E2E tests to improve test coverage - pt1: stepdef files 2025-02-12 12:00:20 +01:00
Andrii KulminskyiandAdam Saghy 4a0c52ea8b FINERACT-2081: Accrual not created for closed or overpaid loans 2025-02-11 16:28:24 +01:00
a7med3del1973andAdam Saghy 352d282d7c FINERACT-2081: Remove unnecessary toString method calls and fix typo 2025-02-11 15:06:47 +01:00
Adam Saghy b2bfca2556 FINERACT-2081: Github Actions workflow cleanup 2025-02-10 17:02:03 +01:00
Adam Saghy f4897508ed FINERACT-2081: Github Actions workflow cleanup 2025-02-10 12:53:40 +01:00
Adam Saghy 1a49af1897 FINERACT-2081: Fix sonarqube analysis 2025-02-10 12:53:02 +01:00
David Lemayian ✨andAdam Saghy 25bca18a8f FINERACT-2081: Update fineract.yml docker image ref 2025-02-10 11:36:47 +01:00
adam.magyariandAdam Saghy 9fa64eccf8 FINERACT-2081: EmbeddableProgressiveLoanScheduleGenerator add totalOutstandingLoanBalance field 2025-02-07 15:06:46 +01:00
Adam Saghy 486ecb18f2 FINERACT-2081: Fix "group" for ACME Fineract Event External Event 2025-02-06 20:13:04 +01:00
Adam Saghy d2b4b3858d FINERACT-2081: Update "Transaction summary report": Fix incorrect fees portion in case of repayment reversal 2025-02-06 16:23:05 +01:00
Adam Saghy 79c5fc1649 FINERACT-2081: Interest recalculation only for interest bearing loans 2025-02-06 14:11:06 +01:00
adam.magyariandAdam Saghy 493012bf8c FINERACT-2174: Enhance Apply periodic accrual job to take into consideration the interestRecognitionOnDisbursementDate field 2025-02-06 13:44:02 +01:00
Jose Alberto HernandezandAdam Saghy 3a5888ee4b FINERACT-2174: Allow for recognition of Interest on first day end of day - Introducing the flag 2025-02-05 19:52:44 +01:00
Oleksii NovikovandAdam Saghy 7d0474cc17 FINERACT-2162: Support chargeback for progressive loans with disabled interest recalculation and payment allocation 2025-02-05 14:55:15 +01:00
tamasszabo-dpcandArnold Gálovics 224e84a9c2 FINERACT-2162: Added use cases for chargeback in case no chargeback rule and recalculation disabled 2025-02-04 20:24:21 +01:00
adam.magyariandAdam Saghy 157a492bcc FINERACT-1981: fix progressive accruals on late repayment 2025-02-04 11:47:52 +01:00
Adam Saghy 0b9687d2aa FINERACT-2081: Fix end of month and partial interest calculation for 360/30 2025-02-03 16:29:55 +01:00
mariiaKraievskaandAdam Saghy 69317d62c8 FINERACT-2205: Add tests when charge is added after the charge off date and forbid backdated charge-off transactions in the middle of the monetary activity. 2025-02-03 16:29:45 +01:00
tamasszabo-dpcandAdam Saghy bc0293bfa1 FINERACT-2081: Added loan accrual activity test to check the case when undo happens on duedate repayment 2025-01-31 15:01:09 +01:00
Adam Saghy 894b6cbf6f FINERACT-2081: Integration test clean up - Remove Google truth dependency and Extract Fineract client out from IntegrationTest class 2025-01-31 15:00:45 +01:00
Oleksii NovikovandAdam Saghy de462082de FINERACT-2152: Interest pause and existing interest periods 2025-01-31 15:00:36 +01:00
Mend RenovateandPetri Tuomola 00d3158074 Update plugin org.sonarqube to v6 2025-01-31 21:27:39 +08:00
dependabot[bot]andPetri Tuomola 4e40925950 Bump actions/setup-java from 4.6.0 to 4.7.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.6.0 to 4.7.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/7a6d8a8234af8eb26422e24e3006232cccaa061b...3a4f6e1af504cf6a31855fa899c6aa5355ba6c12)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-31 21:26:37 +08:00
dependabot[bot]andPetri Tuomola c01553a7ca Bump gradle/actions from 4.2.2 to 4.3.0
Bumps [gradle/actions](https://github.com/gradle/actions) from 4.2.2 to 4.3.0.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](https://github.com/gradle/actions/compare/0bdd871935719febd78681f197cd39af5b6e16a6...94baf225fe0a508e581a564467443d0e2379123b)

---
updated-dependencies:
- dependency-name: gradle/actions
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-31 21:25:49 +08:00
Adam Saghy 26bc89ed59 FINERACT-2081: Update transaction summary report - Handling Accrual adjustment properly 2025-01-30 16:35:47 +01:00
Soma SörösandAdam Saghy 78cd5b106a FINERACT-2081: Fix Accrual Activity Reversal on Installment Due Date.
* Accrual Activity is not recalculated during reopen transaction recalculation
* integration tests cover reverse replay verification and extra use cases
2025-01-30 12:45:38 +01:00
Adam MonsenandGitHub 8b80f5a934 FINERACT-2170: improve asciidoc: clean URIs, more (#4271)
* disable broken fineract-client API asciidoc include
  * this has a side effect of removing ~1,200 pages from the PDF
* remove duplicated/outdated text, reduce sources of truth
  * link to current FAQ
  * introduction is all references now... it was way out of date and also needed formatting fixes
* unset `show-link-uri` to improve PDF rendering
* remove unnecessary/unused `.asciidoctorconfig` file
2025-01-29 12:41:34 -06:00
Soma SörösandArnold Gálovics 66f3de8702 FINERACT-2081: Fix Interest Payment Waiver reverse-replay transaction on transaction creation. 2025-01-29 17:34:40 +01:00
adam.magyariandAdam Saghy 6e8024a004 FINERACT-1981: fix progressive accruals on early repayment 2025-01-29 15:05:47 +01:00
Jose Alberto HernandezandAdam Saghy 15fcaed61f FINERACT-1971: Loan totalUnpaidPayableNotDueInterest field has wrong value after maturity 2025-01-29 10:16:30 +01:00
Andrii KulminskyiandAdam Saghy 093054b3db FINERACT-1981: Consolidated accrual activity created instead of individual ones 2025-01-29 10:13:12 +01:00
mariiaKraievskaandArnold Gálovics de1555f68f FINERACT-2205: Handling charges which belong to installments that got removed. 2025-01-27 21:27:33 +01:00
dependabot[bot]andArnold Gálovics df838cb113 Bump actions/setup-node from 4.1.0 to 4.2.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/39370e3970a6d050c480ffad4ff0ed4d3fdee5af...1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 21:26:57 +01:00
Oleksii NovikovandArnold Gálovics 69fed07e5c FINERACT-2152: Backdated and multiple interest pauses 2025-01-25 13:57:45 +01:00
Oleksii NovikovandAdam Saghy af37e07f31 FINERACT-2152: Interest pause during one period and between two periods 2025-01-24 09:58:02 +01:00
Adam Saghy a9d76ef3dd FINERACT-2165: Mark all the RestAssured solutions as deprecated in the integration tests module 2025-01-22 21:40:10 +01:00
Adam Saghy 6348140716 FINERACT-2081: Fix "resolve dependent variable" logic of Batch request resolver 2025-01-22 18:42:08 +01:00
Kristof JozsaandAdam Saghy 384a52bbaf FINERACT-2122: Add devRun gradle task, optimize build caching, fix deprecations 2025-01-22 17:03:24 +01:00
Clay JohnsonandAdam Saghy ddc8b1a0a7 [FINERACT-2168]: Publish build scans to develocity.apache.org 2025-01-22 10:17:43 +01:00
dependabot[bot]andArnold Gálovics 37174f7891 Bump actions/stale from 9.0.0 to 9.1.0
Bumps [actions/stale](https://github.com/actions/stale) from 9.0.0 to 9.1.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/28ca1036281a5e5922ead5184a1bbf96e5fc984e...5bef64f19d7facfb25b37b414482c7164d639639)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-21 20:03:22 +01:00
mariiaKraievskaandAdam Saghy 771b48b078 FINERACT-2235: Accelerate maturity to charge-off date when interest recalculation is disabled. 2025-01-21 17:21:10 +01:00
Andrii KulminskyiandAdam Saghy 9a8db7e82e FINERACT-2152: fix overlapping for update interest pause 2025-01-21 13:38:15 +01:00
adam.magyariandAdam Saghy 5729af5e76 FINERACT-1981: fix progressive installment reschedule 2025-01-21 13:35:48 +01:00
Jose Alberto HernandezandAdam Saghy 6ec0401820 FINERACT-2152: Fix Invalid Loan term variation type on Interest Pause case 2025-01-21 11:41:40 +01:00
mariiaKraievskaandAdam Saghy 75701daa09 FINERACT-2148: Accelerate maturity to charge-off date when a regular/backdated repayment or other monetary activity occurs before/after the charge-off date. 2025-01-21 10:44:47 +01:00
Janos MeszarosandAdam Saghy 8ab9c9ea9a FINERACT-1981: Fix interest calculation when applies multi disbursement 2025-01-20 13:39:09 +01:00
Soma SörösandAdam Saghy 6e6ac8ffd6 FINERACT-1971: Verify Lan Charge Adjustment Business event's content 2025-01-20 09:54:34 +01:00
Andrii KulminskyiandAdam Saghy 9258be777c FINERACT-1971: update and delete interest pause by external id 2025-01-20 09:53:02 +01:00
Andrii KulminskyiandAdam Saghy 001797b97a FINERACT-1971: external_id column of accrual activity transaction gets updated to null when an accrual activity is reversed 2025-01-20 09:33:11 +01:00
Kristof JozsaandGitHub 9325172aeb Merge pull request #4267 from janez89/bugfix/fix-date-bug-in-saving-account-test
Fix date bug in saving account test
2025-01-17 06:42:50 +01:00
Janos Meszaros fd765988a4 Fix date bug in saving account test 2025-01-16 21:41:46 +01:00
Janos MeszarosandArnold Gálovics d704852228 FINERACT-1981: Enhance EMI Adjustment 2025-01-15 13:30:39 +01:00
Marta JankovicsandAdam Saghy 6994bc687b PS-2245: Negative amount for Accrual Activity 2025-01-15 10:08:49 +00:00
Andrii KulminskyiandArnold Gálovics c22844d432 FINERACT-1971: Event sequence id int overflow 2025-01-14 18:56:27 +01:00
Soma SörösandAdam Saghy 2151b19e27 FINERACT-1971: Fix EMI Calculator: Last Unpaid Repayment Period Handling.
call calculateLastUnpaidRepaymentPeriodEMI recursively when emi would be less than already paid to adjust remaining emi correction for previous period.
Fixing AdvancedPaymentScheduleTransactionProcessor to handle division by installment count adjustment part in case of IN_ADVANCED payment
2025-01-14 13:24:02 +00:00
Arnold GalovicsandArnold Gálovics d2bdbf843a FINERACT-2081: Ability to assign settlement information to loan product when asset is externally owned 2025-01-14 13:55:46 +01:00
Adam Saghy 3481761e74 FINERACT-2081: Make MeterRegistry optional 2025-01-10 19:38:18 +01:00
Adam Saghy 62635a3473 FINERACT-2081: Make MeterRegistry optional 2025-01-10 16:39:09 +01:00
Soma SörösandAdam Saghy 100405a579 FINERACT-1971: Fix EMI Calculator: Last Unpaid Repayment Period Handling.
call calculateLastUnpaidRepaymentPeriodEMI recursively when emi would be less than zero to adjust remaining emi correction for previous period.
2025-01-10 13:53:07 +01:00
dependabot[bot]andArnold Gálovics cee5b43b71 Bump actions/upload-artifact from 4.5.0 to 4.6.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/6f51ac03b9356f520e9adb1b1b7802705f340c2b...65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-10 09:33:23 +01:00
Arnold GalovicsandArnold Gálovics da5dad27f3 FINERACT-2166: Expose tenant connection pool metrics 2025-01-10 09:31:04 +01:00
Adam Saghy 81883a18aa FINERACT-2081: Add missing index on GL annual summary table 2025-01-09 19:35:55 +01:00
Adam Saghy 9fc4e2f948 FINERACT-2152: Loan term variations audit fields 2025-01-09 16:58:17 +01:00
Adam Saghy 095b1a8ce0 FINERACT-2081: Transaction Summary Report with aggregated accrual & accrual adjustment 2025-01-09 16:57:54 +01:00
Andrii KulminskyiandAdam Saghy 8663c054a0 FINERACT-2152: API update and delete interest pause 2025-01-08 16:18:44 +01:00
Adam Saghy d2afd1aac7 FINERACT-1806: Fix mapping to handle multiple loan product configuration 2025-01-08 15:12:54 +01:00
Soma SörösandAdam Saghy afc09b5333 FINERACT-1971: Fix Accrual Activity reversal on Progressive interest bearing loans during loan reopening 2025-01-08 13:04:46 +01:00
Jose Alberto HernandezandAdam Saghy 4f1184f20b FINERACT-2148: Stop recalculating interest if the loan is charged-off 2025-01-08 12:07:23 +01:00
Adam Saghy e1d043bb2d FINERACT-1806: Advanced accounting - Charge-off reason 2025-01-07 19:40:45 +01:00
Oleksii NovikovandAdam Saghy b7e6f356da FINERACT-2148: Resolve rounding issue in interest period calculation 2025-01-07 19:40:32 +01:00
leksinomiandAdam Saghy 2fbdbe9df7 FINERACT-2148: Add 'Accelerate maturity' charge-off behaviour option 2025-01-07 18:21:24 +01:00
mariiaKraievskaandAdam Saghy dfc1d3ebad FINERACT-2148: Fix and add tests when interestRecalculation = false and zero interest charge-off behaviour 2025-01-06 09:42:19 +01:00
mariiaKraievskaandAdam Saghy faaf44d91a FINERACT-2148: Process monetary transaction after zero interest charge-off. 2025-01-01 15:52:57 +01:00
Adam Saghy 23850a1b73 FINERACT-2081: Fix Connection is not available, request timed out after 30000ms issue of "read-only" check 2024-12-22 18:06:28 +01:00
Andrii KulminskyiandAdam Saghy c2ec015e64 FINERACT-2152: API Create and retrieve interest pause 2024-12-19 22:24:02 +01:00
Adam Saghy e94e6c421a FINERACT-1806: Unify Charge-off reason mapping fields 2024-12-19 17:26:24 +01:00
Adam Saghy 8123276981 FINERACT-1806: Rework Product to GL account mapping and fix charge-off reason typos 2024-12-18 15:13:43 +01:00
adam.magyariandAdam Saghy 696be57c7c FINERACT-1806: fix ProductToGLAccountMapping 2024-12-18 15:13:43 +01:00
dependabot[bot]andArnold Gálovics d56e422a33 Bump actions/setup-java from 4.5.0 to 4.6.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/8df1039502a15bceb9433410b1a100fbe190c53b...7a6d8a8234af8eb26422e24e3006232cccaa061b)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-18 14:04:51 +01:00
dependabot[bot]andArnold Gálovics 61b65ee1d6 Bump actions/upload-artifact from 4.4.3 to 4.5.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.3 to 4.5.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882...6f51ac03b9356f520e9adb1b1b7802705f340c2b)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-18 14:04:46 +01:00
dependabot[bot]andArnold Gálovics a98fb07659 Bump gradle/actions from 4.2.1 to 4.2.2
Bumps [gradle/actions](https://github.com/gradle/actions) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](https://github.com/gradle/actions/compare/cc4fc85e6b35bafd578d5ffbc76a5518407e1af0...0bdd871935719febd78681f197cd39af5b6e16a6)

---
updated-dependencies:
- dependency-name: gradle/actions
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-18 14:04:38 +01:00
Adam Saghy d03973165d FINERACT-2081: Support read-only transactions via Batch API 2024-12-17 14:49:18 +01:00
Jose Alberto HernandezandAdam Saghy 8716751c88 FINERACT-1971: Fix boolean values used in Loan product charge-off reasons accounting mappings 2024-12-17 10:51:30 +01:00
leksinomiandAdam Saghy 3735aea598 FINERACT-2081: Refactor LoanSummaryWrapper 2024-12-16 18:20:14 +01:00
Adam Saghy 4f470606ff FINERACT-2081: Update Trial Balance Summary Report with Year end retaining 2024-12-16 16:14:10 +01:00
Oleksii NovikovandAdam Saghy 51433ffb66 FINERACT-2148: Update instalments interest with zero after charge off with interest recalculation enabled 2024-12-16 14:31:54 +01:00
Marta JankovicsandArnold Gálovics 136bb0009a FINERACT-2060: Progressive loan - final accrual calculation on closed loan 2024-12-13 16:48:07 +01:00
Michael VorburgerandArnold Gálovics c4cdd6f51a Fix broken "Badges" on README 2024-12-13 14:58:48 +01:00
Michael VorburgerandArnold Gálovics 3800ad5cbf Revert "Update plugin org.sonarqube to v6"
This reverts commit a9a7e77afc.
2024-12-13 10:00:53 +01:00
Adam Saghy 5667bc89be FINERACT-2081: Consider read-only all the transactions when the connection is read-only 2024-12-12 17:43:31 +01:00
Adam Saghy d57906d4fa FINERACT-2081: Refactor - Simplify LoanSchedulePeriodData.java class 2024-12-11 19:10:10 +01:00
Arnold GalovicsandArnold Gálovics 263866c03a FINERACT-2081: Avoid creating unnecessary connection pools 2024-12-11 17:26:07 +01:00
Janos MeszarosandAdam Saghy bb8480a03d FINERACT-1981: Embeddable Progressive Loan Schedule generator 2024-12-10 15:04:16 +01:00
adam.magyariandAdam Saghy d0006a2169 FINERACT-1971: update installment accrued portions on charge accrual 2024-12-10 15:04:01 +01:00
adam.magyariandArnold Gálovics bc2ef08e0c FINERACT-2148: Add test for charge-off accruals 2024-12-07 13:25:19 +01:00
adam.magyariandArnold Gálovics 56350673ad FINERACT-1981: fix post maturity charge removed by cob on progressive loan 2024-12-07 13:25:07 +01:00
Jose Alberto HernandezandArnold Gálovics 84f01e0687 FINERACT-2081: Remove skip tag E2E test case C2501 2024-12-07 13:23:49 +01:00
Adam Saghy 3490219577 FINERACT-2148: Backdated Charge-off with interest recalculation 2024-12-06 16:49:55 +01:00
Oleksii NovikovandAdam Saghy a2c01d25e5 FINERACT-2080: Move loan validation from entity to validator classes 2024-12-05 13:58:47 +01:00
Andrii KulminskyiandAdam Saghy 56ee2eaaff FINERACT-1806: Advanced Charge-off Expense Accounting - "Advanced Accounting Rule" takes priority 2024-12-04 17:43:51 +01:00
adam.magyariandArnold Gálovics 5c08afec5f FINERACT-1926: Additional indices to investor tables 2024-12-03 16:02:58 +01:00
Mend RenovateandArnold Gálovics af34f31463 Update postgres Docker tag to v17 2024-12-03 07:26:26 +01:00
Mend RenovateandArnold Gálovics a9a7e77afc Update plugin org.sonarqube to v6 2024-12-03 07:26:20 +01:00
Marta JankovicsandAdam Saghy 7bd1f510a3 FINERACT-1981: COB/Inline COB fails while creating accruals for a overpaid account 2024-12-02 15:34:39 +01:00
Adam Saghy f63df474f6 FINERACT-2154: Store "Pre-close interest calculation strategy" on loan level 2024-11-29 21:39:08 +01:00
Jose Alberto HernandezandAdam Saghy 8d12bc04e9 FINERACT-2081: Retrieving Loan Product details with invalid external-id results in 500 error 2024-11-29 19:36:20 +01:00
Marta JankovicsandAdam Saghy d57e72ec2f FINERACT-2060: Accrual reverse replay logic and Handling 2024-11-29 19:17:23 +01:00
Jose Alberto HernandezandAdam Saghy 8d25b0c765 FINERACT-1981: Reverse Interest Refund transaction not allowed directly with 403 error 2024-11-29 12:28:37 +01:00
adam.magyariandAdam Saghy ff5e993b16 FINERACT-2148: return loan charge off behaviour with loan details 2024-11-29 12:24:23 +01:00
Janos MeszarosandAdam Saghy 4cb849fa17 FINERACT-1981: Introduce Interest should not be calculated on past due principal amount 2024-11-29 11:59:18 +01:00
Kristof JozsaandGitHub 3858611190 Merge pull request #4194 from adamsaghy/update_logback_of_e2e_runner
FINERACT-2081: Update logger level for E2E tests
2024-11-28 17:07:40 +01:00
Adam Saghy 0a8ddd24e7 FINERACT-2081: Update logger level for E2E tests 2024-11-28 14:40:49 +01:00
Soma SörösandAdam Saghy f5d9a3a025 FINERACT-1981: Update Payable Interest Calculation For LoanSummaryData 2024-11-28 13:14:45 +01:00
leksinomiandAdam Saghy 32cc83fdbf FINERACT-2153: Enable immediate charge accrual creation post maturity 2024-11-27 17:49:42 +01:00
Jose Alberto HernandezandAdam Saghy 1ef9c0f4bb FINERACT-1981: Reverse Interest Refund transaction not allowed directly 2024-11-27 17:43:08 +01:00
Adam MonsenandAdam Saghy 4956bdd574 FINERACT-2149: disable liquibase phone home
At some point, Liquibase added an analytics/telemetry "phone home" to gather user data.

I get how companies and FOSS projects greatly benefit from knowing more about their users, but I think this should only be done with proper consent. I would not assume/expect any libraries to send analytics home. The default behavior of trackers like these should always be to *not* phone home without a user first consenting / opting in.

---

I'm not sure this is the right change, but it works (feedback welcome). My naïve test/check to know this works is visually inspecting the output of the log message I added in TenantDatabaseUpgradeService to see if `liquibase.analytics.enabled` is set, and to what. I'm happy to automate this, but it seemed unnecessary (again, feedback welcome).

We could also disable the phone home with an environment variable ( LIQUIBASE_ANALYTICS_ENABLED=false , see https://docs.liquibase.com/analytics/home.html ). I'm not sure where that should be set if we did. Likely several places (for build/dev/test/ci/qa/etc.).

I originally noticed the phone home because I block requests from my computer to 3rd party tracking/analytics services, and I was getting this error in my console:

    java.net.ConnectException: Connection refused at liquibase.analytics.LiquibaseAnalyticsListener

At first I misunderstood this as a database connection error, but it was really just liquibase throwing an error because it couldn't connect to its own analytics server.

If we were to create a configurable property, I think the ideal place to set the value would be in fineract-provider/src/main/resources/application.properties, (default to false, allow override) but our version of spring boot doesn't support it yet ( see https://github.com/spring-projects/spring-boot/issues/43067 ) so we'd have to add the usual scaffolding required for a Fineract setting. I'm not sure we want/need that, because I can't imagine anyone *wanting* to set the flag to `true`, and my naïve hardcoded global change is less code to maintain than providing a configurable setting. If there's demand to make it configurable later, we could of course do that (especially once it becomes easier to do so). I feel like how we let Liquibase behave is up to us, though. An under the hood / upstream decision we get to make.

See also:

* https://lists.apache.org/thread/5s7zjsxdcqk1qvjnc1wbhqqv66shpl54
* Analytics is enabled by default in OSS version · Issue #6503 · liquibase/liquibase · GitHub https://github.com/liquibase/liquibase/issues/6503
* Add a method for Spring Boot to configure the new analytics feature · Issue #6501 · liquibase/liquibase · GitHub https://github.com/liquibase/liquibase/issues/6501
2024-11-27 17:13:23 +01:00
Andrii KulminskyiandAdam Saghy bfae135b54 FINERACT-1806: fetch loan product details must return the chargeoffreason mapping 2024-11-27 15:37:38 +01:00
adam.magyariandAdam Saghy 479e71cdad FINERACT-2148: loan charge off behaviour configuration 2024-11-27 11:31:05 +01:00
Jose Alberto HernandezandAdam Saghy 240a6dffc8 FINERACT-2081: Enable inline COB execution for locked loans 2024-11-27 10:09:49 +01:00
Adam Saghy 2e89c40e6e FINERACT-2081: Refactor GL account balance calculation 2024-11-26 18:06:09 +01:00
Adam Saghy ccfb8c3c9c FINERACT-2081: Add "Interest Refund" transaction into r_enum_value table 2024-11-26 13:58:05 +01:00
Mend RenovateandArnold Gálovics 97ac413874 Update plugin net.ltgt.errorprone to v4 2024-11-26 12:02:01 +01:00
adam.magyariandArnold Gálovics dcb18d8f5e FINERACT-2081: async liquibase 2024-11-25 16:22:55 +01:00
adam.magyariandAdam Saghy 4e3bcbf970 FINERACT-2150: disbursement not allowed on charged-off loan 2024-11-25 15:13:23 +01:00
Adam Saghy 0c7ef324b9 FINERACT-2070: COB business step order 2024-11-24 17:30:32 +01:00
Janos MeszarosandAdam Saghy 34b165aa0e FINERACT-1981: Fix interest refund transaction with zero amount 2024-11-22 17:11:15 +01:00
Peter KovacsandAdam Saghy e95b3ff25c FINERACT-2070: E2E test synchronization 2024-11-22 2024-11-22 14:59:41 +01:00
Adam Saghy ebfc11c041 FINERACT-2081: Remove duplicate LoanTestLifecycleExtension annotations 2024-11-21 22:34:40 +01:00
Andrii KulminskyiandAdam Saghy 4ccb33a95e FINERACT-2113: Advanced Charge-off Expense Accounting - Add new "Advanced Accounting Rule" 2024-11-21 17:18:06 +01:00
Janos MeszarosandAdam Saghy 75fa740ff6 FINERACT-2114: Fix EMI adjustment when Interest Rate change has with Early Repayment Adjust Last case 2024-11-21 12:46:42 +01:00
adam.magyariandArnold Gálovics 425085f4eb FINERACT-2081: External event sending make mark as sent async 2024-11-20 20:17:01 +01:00
Adam MonsenandArnold Gálovics bb18aadb74 FINERACT-2147: fix extra swagger UI endpoint paths
I noticed an extra `v1/` while visiting https://localhost:8443/fineract-provider/swagger-ui/index.html

All fineract-provider (unit) tests passed.

I also manually tested out hitting a few /api/v1/ endpoints via the Swagger UI web page at the URL above and those worked as well.
2024-11-19 16:54:58 +01:00
dependabot[bot]andArnold Gálovics 89e9ea8a54 Bump gradle/actions from 4.2.0 to 4.2.1
Bumps [gradle/actions](https://github.com/gradle/actions) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](https://github.com/gradle/actions/compare/473878a77f1b98e2b5ac4af93489d1656a80a5ed...cc4fc85e6b35bafd578d5ffbc76a5518407e1af0)

---
updated-dependencies:
- dependency-name: gradle/actions
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-19 10:21:36 +01:00
Mend RenovateandArnold Gálovics a0d55d2f25 Update mysql Docker tag to v9 2024-11-18 18:25:40 +01:00
Mend RenovateandArnold Gálovics e305cb9b0a Update dependency ubuntu to v24 2024-11-18 18:25:31 +01:00
Mend RenovateandArnold Gálovics b39bc527ed Update non-major 2024-11-18 18:25:23 +01:00
Soma SörösandAdam Saghy c9dc87f62a FINERACT-1981: Fix Charge Creation After Maturity Date on Interest Bearing Progressive Loan 2024-11-18 15:04:35 +01:00
adam.magyariandAdam Saghy 6e86ac853a FINERACT-2081: External event sending enhance findBy query 2024-11-18 15:01:24 +01:00
Oleksii NovikovandAdam Saghy 628f27bf32 FINERACT-1806: Add charge-off reasons to loan product response 2024-11-14 15:10:42 +01:00
Soma SörösandAdam Saghy 6286d1f821 FINERACT-2107: Interest Refund - Transaction Amount Recalculation 2024-11-14 09:59:08 +01:00
Peter KovacsandAdam Saghy 4e8fc2c0a8 FINERACT-2070: E2E testcase migration - feature files - pt6 2024-11-13 16:20:18 +01:00
leksinomiandAdam Saghy 7408f10cb6 FINERACT-2107: Adjust event trigger on refund reversion 2024-11-13 11:45:38 +01:00
dependabot[bot]andArnold Gálovics a5acbd803a Bump gradle/actions from 4.1.0 to 4.2.0
Bumps [gradle/actions](https://github.com/gradle/actions) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](https://github.com/gradle/actions/compare/d156388eb19639ec20ade50009f3d199ce1e2808...473878a77f1b98e2b5ac4af93489d1656a80a5ed)

---
updated-dependencies:
- dependency-name: gradle/actions
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-13 09:37:42 +01:00
Arnold GalovicsandArnold Gálovics c2b36f834e Checkstyle fixes 2024-11-12 12:16:16 +01:00
Mend RenovateandArnold Gálovics b7467c1a62 Update non-major 2024-11-12 12:16:16 +01:00
Arnold GalovicsandArnold Gálovics 15ea6f5b93 Downgraded org.openapi.generator to 7.8.0 2024-11-11 16:33:45 +01:00
Mend RenovateandArnold Gálovics e367cbae29 Update all non-major dependencies 2024-11-11 16:33:45 +01:00
Adam Saghy 39da68820b FINERACT-2081: Fix inconsistent transaction processing order 2024-11-11 12:32:21 +01:00
leksinomiandArnold Gálovics 832b84f574 FINERACT-2081: Update password policy 2024-11-11 10:29:36 +01:00
Peter KovacsandAdam Saghy 975a176610 FINERACT-2070: E2E testcase migration - feature files - pt5 2024-11-10 22:06:14 +01:00
Peter KovacsandAdam Saghy ab1a634d17 FINERACT-2070: E2E testcase migration - feature files - pt3 2024-11-10 14:38:04 +01:00
Peter KovacsandAdam Saghy 6770352da8 FINERACT-2070: E2E testcase migration - feature files - pt1 2024-11-10 14:35:18 +01:00
Adam Saghy 64976f1eb4 FINERACT-2070: Update test configurations 2024-11-09 20:04:13 +01:00
Janos MeszarosandAdam Saghy 17a4392c26 FINERACT-2114: Align recalculated EMI after Interest Rate change 2024-11-08 23:13:27 +01:00
Oleksii NovikovandAdam Saghy 75ad6082d0 FINERACT-2107: update related relationship for interest refund transaction 2024-11-08 23:13:00 +01:00
Peter KovacsandAdam Saghy 87ad93216e FINERACT-2070: E2E testcase migration - feature files - pt4 2024-11-08 23:01:55 +01:00
Peter KovacsandAdam Saghy 637539a63b FINERACT-2070: E2E testcase migration - feature files - pt2 2024-11-08 11:40:58 +01:00
leksinomiandAdam Saghy 4013172ab0 FINERACT-2107: Allow interest rate change on fully paid installment for Progressive loans 2024-11-07 21:51:57 +01:00
Peter KovacsandAdam Saghy 6feb10a87e FINERACT-2070: e2e test framework update 2024-11-07 21:49:46 +01:00
Adam Saghy 492ec44cef FINERACT-1981: Prepayment calculation 2024-11-06 15:04:17 +01:00
Jose Alberto HernandezandAdam Saghy 474623b6e3 FINERACT-2081: Fix WholeTerm loan frequency saved on account level 2024-11-06 09:48:09 +01:00
Janos MeszarosandAdam Saghy 51b6dfa08e FINERACT-1981: Enhance EMI Calculator Daily Interest calculation 2024-11-06 09:46:36 +01:00
Wilfred KigenyiandAdam Saghy 0bc14ab7f3 FINERACT-2144: Fix DepositApiConstant names 2024-11-04 17:35:06 +01:00
Soma SörösandAdam Saghy 174f4178b7 FINERACT-2107: Interest Refund - Multiple Partial Repayment 2024-11-04 13:06:34 +01:00
Andrii KulminskyiandAdam Saghy 7288037614 FINERACT-1981: When paying down payment, that should not be reflected on the InterestModel 2024-11-04 12:38:09 +01:00
Wilfred KigenyiandArnold Gálovics d202145a88 rectify query for cashier-teller transactions 2024-10-31 08:59:22 +01:00
Kristof JozsaandGitHub 542cad793d Merge pull request #4136 from kjozsa/FINERACT-1981/last_installment_strategy
FINERACT-1981: revise last installment payment strategy
2024-10-30 17:46:23 +01:00
Adam SaghyandKristof Jozsa 3b2ba174e1 FINERACT-1981: revise last installment payment strategy 2024-10-30 16:26:23 +01:00
Marta JankovicsandAdam Saghy 9812f14ad7 FINERACT-2081: Code quality, eliminate duplicated methods, use utility 2024-10-30 15:54:48 +01:00
Soma SörösandAdam Saghy 001d586e30 FINERACT-2107: Interest Refund - Partial Repayment 2024-10-30 13:16:41 +01:00
adam.magyariandAdam Saghy 745dc80886 FINERACT-2107: Merchant issued refund linked to related interest refund
- on reversal reverse interest refund aswell
2024-10-30 13:16:29 +01:00
Adam MonsenandAdam Saghy b053c90009 bump MariaDB version
EOL for 11.2 is coming up in a few weeks, see: https://mariadb.org/about/#maintenance-policy

I upgraded my local MariaDB dev database to 11.4 and performed a few cursory GETs and PUTs via the Fineract API--just what I've learned to do so far. Nothing broke. I didn't run all the tests though.

I didn't see any obvious red flags in https://mariadb.com/kb/en/changes-improvements-in-mariadb-11-4/
2024-10-29 21:53:21 +01:00
Andrii KulminskyiandAdam Saghy f92290b355 FINERACT-1981: Pay-off does not consider the overdue installments 2024-10-29 21:53:07 +01:00
Janos MeszarosandAdam Saghy 94360c9f8a FINERACT-2114: Interest rate modification - Advanced payment allocation processor support 2024-10-29 12:24:23 +01:00
Adam SaghyandArnold Gálovics 3e64cc1536 FINERACT-2107: Fix transaction order 2024-10-29 08:23:11 +01:00
Jose Alberto HernandezandAdam Saghy 15e013b90e FINERACT-2081: Fix reversal of loan accruals when loan repayment got reversed 2024-10-28 19:17:36 +01:00
leksinomiandAdam Saghy f76cef768e FINERACT-2081: Handle unauthenticated requests in LoanCOBApiFilter 2024-10-28 12:04:36 +01:00
dependabot[bot]andArnold Gálovics 7b05432695 Bump actions/setup-java from 4.4.0 to 4.5.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.4.0 to 4.5.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/b36c23c0d998641eff861008f374ee103c25ac73...8df1039502a15bceb9433410b1a100fbe190c53b)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 14:44:26 +02:00
dependabot[bot]andArnold Gálovics 9c9aec985b Bump actions/setup-node from 4.0.4 to 4.1.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.4 to 4.1.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/0a44ba7841725637a19e28fa30b79a866c81b0a6...39370e3970a6d050c480ffad4ff0ed4d3fdee5af)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-25 14:44:22 +02:00
Adam Saghy e60ce9a401 FINERACT-1981: Generate loan schedule as dto 2024-10-25 14:35:29 +02:00
adam.magyariandAdam Saghy b23fe71864 FINERACT-1981: loan pay off test on disbursement date 2024-10-25 13:09:33 +02:00
Oleksii NovikovandAdam Saghy 8a2560fe2e FINERACT-1981: do not calculate interest for charge adjustment when the activities occur on the same day 2024-10-25 09:55:59 +02:00
Adam Saghy 4198b0bcf9 FINERACT-2107: Extract Merchant issued refund and Payout refund handling 2024-10-24 15:51:41 +02:00
Janos MeszarosandAdam Saghy 393f4398ac FINERACT-1981: Fix 2nd disburse on repayment due date results wrong EMI 2024-10-24 13:44:31 +02:00
adam.magyariandAdam Saghy 2469f22280 FINERACT-1981: Enable backdated Interest Payment Waiver on progressive loans 2024-10-24 11:34:22 +02:00
adam.magyariandAdam Saghy 256afa1e51 FINERACT-1876: Add missing fields into the LoanAccountDataV1 avro schema 2024-10-24 11:34:11 +02:00
dependabot[bot]andArnold Gálovics 0bca9897a6 Bump actions/checkout from 4.2.1 to 4.2.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871...11bd71901bbe5b1630ceea73d27597364c9af683)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-24 11:13:41 +02:00
Marta JankovicsandAdam Saghy 6a381df784 FINERACT-2081: fix integrationtest init 2024-10-22 18:46:21 +02:00
Andrii KulminskyiandAdam Saghy a9ecdf97a4 FINERACT-1981: Remove hardcoded MoneyHelper dependency during progressive loan 2024-10-22 18:45:28 +02:00
Marta JankovicsandAdam Saghy 806ee69798 FINERACT-2081: fix incorrect exception type 2024-10-21 18:42:06 +02:00
Mend RenovateandArnold Gálovics 4e46e19dfe Update dependency org.jetbrains.kotlin:kotlin-bom to v2 2024-10-21 17:41:41 +02:00
Soma SörösandAdam Saghy 5722891477 FINERACT-2107: Interest Refund - Allocation, Business Event & Full Repayment 2024-10-21 17:36:20 +02:00
Janos MeszarosandAdam Saghy 84d606552d FINERACT-1981: Fix Better EMI check in EMI Calculator 2024-10-21 17:34:44 +02:00
Arnold GalovicsandArnold Gálovics 482983f23d FINERACT-2142: Journal entries are created for accrual disbursement fees 2024-10-18 20:13:10 +02:00
Kristof JozsaandGitHub 66f5633ed8 Merge pull request #4106 from kjozsa/feature/FINERACT-1981-enable-backdated-repayment-for-progressive-loans
FINERACT-1981: Progressive loan enable backdated transactions
2024-10-18 10:42:04 +02:00
adam.magyariandKristof Jozsa e848160dd0 FINERACT-1981: Progressive loan enable backdated transactions 2024-10-18 09:13:26 +02:00
Janos MeszarosandAdam Saghy f94e293d1e FINERACT-1981: EMI Calculator performance optimization 2024-10-17 17:33:37 +02:00
Adam Saghy c8e6adba1e FINERACT-2081: Include Interest waiver and Interest refund transaction in Transaction summary with asset owner report 2024-10-16 14:55:35 +02:00
Janos MeszarosandAdam Saghy bb072709b5 FINERACT-1981: EMI calculator rework 2024-10-16 14:35:58 +02:00
Andrii KulminskyiandAdam Saghy d4190ede90 FINERACT-1981: separate library to generate loan schedule 2024-10-16 11:37:09 +02:00
Arnold GalovicsandArnold Gálovics b6ccb06159 Dep updates 2024-10-14 16:22:47 +02:00
Mend RenovateandArnold Gálovics 0a838e68aa Update all non-major dependencies 2024-10-14 16:22:47 +02:00
Mend RenovateandArnold Gálovics 5199ccd75a Update non-major 2024-10-14 11:44:08 +02:00
Henrique PaesandArnold Gálovics a5f1dc1227 FINERACT-1221 Fix Client SDK Broken Methods
FINERACT-1221 Fix Client SDK Broken Methods
2024-10-12 08:05:57 +02:00
Oleksii NovikovandArnold Gálovics 25866edfc9 FINERACT-2081: Add all loan term validations to loan details 2024-10-12 08:05:30 +02:00
dependabot[bot]andArnold Gálovics fe16b61c72 Bump actions/upload-artifact from 4.4.2 to 4.4.3
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.2 to 4.4.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/84480863f228bb9747b473957fcc9e309aa96097...b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-10 08:46:47 +02:00
Mend RenovateandArnold Gálovics 2ab0635fd1 Update non-major 2024-10-09 13:29:04 +02:00
dependabot[bot]andArnold Gálovics 45502e8c7e Bump actions/upload-artifact from 4.4.1 to 4.4.2
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.1 to 4.4.2.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/604373da6381bf24206979c74d06a550515601b9...84480863f228bb9747b473957fcc9e309aa96097)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-09 10:28:09 +02:00
Arnold GalovicsandArnold Gálovics e2b86788d2 Rolled back openAPI generator version 2024-10-08 20:59:53 +02:00
Mend RenovateandArnold Gálovics 900477e2aa Update all non-major dependencies 2024-10-08 20:59:53 +02:00
adam.magyariandArnold Gálovics 4462127295 FINERACT-1981: Fix progressive loan undo previous repayment 2024-10-08 18:21:31 +02:00
dependabot[bot]andArnold Gálovics c71a39bb18 Bump actions/upload-artifact from 4.4.0 to 4.4.1
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.0 to 4.4.1.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/50769540e7f4bd5e21e526ee35c689e35e0d6874...604373da6381bf24206979c74d06a550515601b9)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-08 11:24:40 +02:00
dependabot[bot]andArnold Gálovics f72788318c Bump actions/checkout from 4.2.0 to 4.2.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/d632683dd7b4114ad314bca15554477dd762a938...eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-08 11:24:35 +02:00
Mend RenovateandArnold Gálovics 7601bed493 Update dependency org.eclipse.jgit:org.eclipse.jgit.ssh.apache to v7 2024-10-07 16:29:14 +02:00
Adam Saghy a7965a7f9d FINERACT-1981: Fix loan transaction relationship 2024-10-05 09:06:13 +02:00
dependabot[bot]andArnold Gálovics 8aaad45be9 Bump actions/setup-java from 4.3.0 to 4.4.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.3.0 to 4.4.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/2dfa2011c5b2a0f1489bf9e433881c92c1631f88...b36c23c0d998641eff861008f374ee103c25ac73)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-04 18:02:02 +02:00
dependabot[bot]andArnold Gálovics a85f90b7f2 Bump actions/checkout from 4.1.7 to 4.2.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/692973e3d937129bcbf40652eb9f2f61becf3332...d632683dd7b4114ad314bca15554477dd762a938)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-10-04 18:01:57 +02:00
Arnold GalovicsandArnold Gálovics 33f666ccc3 FINERACT-2134: Missing charge paid by references and journal entries for disbursement occuring accruals 2024-10-02 15:30:07 +02:00
Adam Saghy 39d95f393b FINERACT-2081: Fetch configurations by name 2024-10-02 01:20:04 +02:00
adam.magyariandAdam Saghy 03d320e513 FINERACT-2081: Fix progressive loan schedule for non-yearly interest rates 2024-10-01 13:54:02 +02:00
Kristof JozsaandAdam Saghy 04ec56382a FINERACT-1981: interest recalculation fix for overdue cases 2024-09-30 19:41:42 +02:00
Kristof JozsaandGitHub a29aaf0d3c Merge pull request #4077 from fiter-distribution/FINERACT-2081/enhance_technical_documentation
Fineract 2081: Enhance technical documentation
2024-09-30 16:43:09 +02:00
Soma SörösandAdam Saghy 4a950ac476 FINERACT-1981: Interest recalculation - Late Repayment Test Cases 2024-09-30 15:05:48 +02:00
Napho 85acd3f4ab FINERACT-2081: Enhance technical documentation 2024-09-30 14:42:36 +03:00
Kristof JozsaandAdam Saghy d7c5947760 FINERACT-2081: downgrade Develocity for ge.apache.org compatibility 2024-09-26 10:32:09 +02:00
Andrii KulminskyiandAdam Saghy b68149c6cd FINERACT-2081: Skip loan processing if no overdue 2024-09-26 10:31:24 +02:00
Adam Saghy a655707e0a FINERACT-1968: Remove WIP tags from advanced-payment-allocation.adoc 2024-09-26 10:25:53 +02:00
Oleksii NovikovandAdam Saghy 837dc6da26 FINERACT-2081: Improve transaction summary with asset owner report 2024-09-25 16:42:46 +02:00
Kristof JozsaandGitHub 7ed0a825df Merge pull request #4042 from alberto-art3ch/enhancement/loan_account_mandatory_parameters
FINERACT-2081: Validation error in mandatory loan account parameters
2024-09-25 15:33:42 +02:00
Marta JankovicsandAdam Saghy 31c9079ad9 FINERACT-2081: Payments after loan charge - payment allocation 2024-09-25 10:31:08 +02:00
Jose Alberto Hernandez cc3a492d57 FINERACT-2081: Validation error in mandatory loan account parameters 2024-09-24 16:51:10 -05:00
dependabot[bot]andArnold Gálovics 2d0c8db993 Bump actions/setup-node from 4.0.3 to 4.0.4
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.3 to 4.0.4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/1e60f620b9541d16bece96c5465dc8ee9832be0b...0a44ba7841725637a19e28fa30b79a866c81b0a6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-20 13:40:20 +02:00
Kristof JozsaandAdam Saghy f30264ccfc FINERACT-2081: fix last installment marking on pay-off 2024-09-18 15:07:02 +02:00
Soma SörösandAdam Saghy 35c04c0141 FINERACT-1981: Interest recalculation - Recalculate Interest For Loan - Business step for COB - progressive loan 2024-09-18 15:04:18 +02:00
Andrii KulminskyiandAdam Saghy 7b058d6772 FINERACT-2067: NPE business date partition step COB 2024-09-18 13:32:36 +02:00
Kristof JozsaandAdam Saghy c511385946 FINERACT-1981: fix pay-off for TILL_REST_FREQUENCY_DATE 2024-09-18 09:33:00 +02:00
Arnold GalovicsandArnold Gálovics e0071715d2 Fixed caching request body 2024-09-17 18:39:49 +02:00
Mend RenovateandArnold Gálovics df1b6b3632 Update all non-major dependencies 2024-09-17 18:39:49 +02:00
adam.magyariandAdam Saghy 1cb9a36865 FINERACT-2114: show interest rate change in business events 2024-09-17 13:52:01 +02:00
Mend RenovateandArnold Gálovics 77b8eeef95 Update dependency com.google.errorprone:error_prone_core to v2.32.0 2024-09-17 12:21:26 +02:00
dependabot[bot]andAdam Saghy 4d8abe559e Bump gradle/actions from 4.0.1 to 4.1.0
Bumps [gradle/actions](https://github.com/gradle/actions) from 4.0.1 to 4.1.0.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](https://github.com/gradle/actions/compare/16bf8bc8fe830fa669c3c9f914d3eb147c629707...d156388eb19639ec20ade50009f3d199ce1e2808)

---
updated-dependencies:
- dependency-name: gradle/actions
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-13 23:31:13 +02:00
Janos MeszarosandAdam Saghy 49e9005109 FINERACT-1981: Pay-off schedule handling 2024-09-13 13:26:32 +02:00
Marta JankovicsandAdam Saghy e94ce7f1df FINERACT-2081: Payments after loan charge - COB accrual 2024-09-13 12:12:06 +02:00
Arnold GalovicsandArnold Gálovics 889fc8d2cb Explicitly defaulting to null containers for Java client code generation 2024-09-12 13:20:52 +02:00
Arnold GalovicsandArnold Gálovics b44269d9d9 Reverted spring upgrades 2024-09-12 13:20:52 +02:00
Mend RenovateandArnold Gálovics 3baf807942 Update all non-major dependencies 2024-09-12 13:20:52 +02:00
Janos MeszarosandAdam Saghy 0e08903811 FINERACT-2081: Fix backdated multi disbursement on Progressive Loan 2024-09-12 09:53:19 +02:00
Mend RenovateandArnold Gálovics b4a68ba502 Update non-major 2024-09-11 16:57:25 +02:00
Arnold GalovicsandArnold Gálovics 13413f19f3 Spotbugs adjustments 2024-09-11 15:27:03 +02:00
Mend RenovateandArnold Gálovics 3ab648c088 Update plugin com.github.spotbugs to v6 2024-09-11 15:27:03 +02:00
Janos MeszarosandAdam Saghy 5215e565f7 FINERACT-2114: Fix EMI Calculator get payment details 2024-09-11 14:13:22 +02:00
dependabot[bot]andArnold Gálovics 02296305cb Bump actions/setup-java from 4.2.2 to 4.3.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.2.2 to 4.3.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/6a0805fcefea3d4657a47ac4c165951e33482018...2dfa2011c5b2a0f1489bf9e433881c92c1631f88)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-10 09:42:45 +02:00
Mend RenovateandArnold Gálovics 9ce4c9f7ea Update gradle/wrapper-validation-action digest to f9c9c57 2024-09-09 09:32:46 +02:00
Jaswanth-Sriram-VeturiandAdam Saghy 8a28f1e39f FINERACT-2081: Fix update client identifier 2024-09-08 16:13:30 +01:00
dependabot[bot]andArnold Gálovics b86a24084b Bump actions/setup-java from 4.2.1 to 4.2.2
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.2.1 to 4.2.2.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/99b8673ff64fbf99d8d325f52d9a5bdedb8483e9...6a0805fcefea3d4657a47ac4c165951e33482018)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-06 09:37:37 +02:00
dependabot[bot]andArnold Gálovics 4b65f3815e Bump gradle/actions from 3.5.0 to 4.0.1
Bumps [gradle/actions](https://github.com/gradle/actions) from 3.5.0 to 4.0.1.
- [Release notes](https://github.com/gradle/actions/releases)
- [Commits](https://github.com/gradle/actions/compare/d9c87d481d55275bb5441eef3fe0e46805f9ef70...16bf8bc8fe830fa669c3c9f914d3eb147c629707)

---
updated-dependencies:
- dependency-name: gradle/actions
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-06 09:37:29 +02:00
dependabot[bot]andArnold Gálovics 21e9ef7e91 Bump actions/upload-artifact from 4.3.4 to 4.4.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.4 to 4.4.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/0b2256b8c012f0828dc542b3febcab082c67f72b...50769540e7f4bd5e21e526ee35c689e35e0d6874)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-06 09:37:20 +02:00
zeyad2003andAdam Saghy 367ff0fd96 FINERACT-2106: fix the misuse of ToApiJsonSerializer 2024-09-05 18:10:10 +01:00
Clay JohnsonandAdam Saghy 24c83b5f9f Enable local build cache to take advantage of cache from setup-gradle action 2024-09-05 12:01:30 +01:00
Clay JohnsonandAdam Saghy 112a3f23e9 Use setup-gradle action where Gradle builds occur 2024-09-05 12:01:30 +01:00
Clay JohnsonandAdam Saghy c2984228f6 Remove the gradle caching flag from the setup-java action 2024-09-05 12:01:30 +01:00
Clay JohnsonandAdam Saghy a87b8c6f9a Set project id to "fineract" 2024-09-05 12:01:13 +01:00
Clay JohnsonandAdam Saghy db6fe2c86f Migrate GitHub Actions to set the DEVELOCITY_ACCESS_KEY env var 2024-09-05 12:01:13 +01:00
Clay JohnsonandAdam Saghy 3057c3a519 Replace Gradle Enterprise Gradle Plugin with new Develocity Gradle Plugin 2024-09-05 12:01:13 +01:00
Clay JohnsonandAdam Saghy 911c6e4b33 Update Common Custom User Data Gradle Plugin to 2.0.2 2024-09-05 12:01:13 +01:00
Marta JankovicsandAdam Saghy 1ba689dba3 FINERACT-2081: org.eclipse.persistence version 4.0.2 2024-09-05 09:27:51 +01:00
Janos MeszarosandAdam Saghy 803a575b04 FINERACT-2114: EMI Calculator outstanding balance correction 2024-09-04 15:30:13 +01:00
kaibalya-fynarfinandGitHub a6e35170a7 FINERACT-2120: Add new global configuration - enable payment hub integration (#4043) 2024-09-04 12:54:01 +05:30
Marta JankovicsandAleksandar Vidakovic d5d7f7f5a0 FINERACT-2119: Address jobs by name - fix liquibase order for custom modules 2024-09-01 18:55:23 +02:00
Soma SörösandAdam Saghy 8b89aaf413 FINERACT-1981: Interest recalculation - Recalculate Interest For Loan - Business step for COB 2024-08-29 21:18:05 +02:00
Jose Alberto HernandezandAdam Saghy b4f5a3a175 FINERACT-2081: fix Loan product validation error messages with an extra period 2024-08-29 19:23:59 +02:00
Marta JankovicsandAdam Saghy 3aaa2ffe9c FINERACT-2119: Address jobs by name 2024-08-28 16:46:20 +02:00
Adam Saghy eef6a8da5e FINERACT-2081: Make Accrual posting business step optional 2024-08-28 16:42:37 +02:00
Jose Alberto HernandezandAdam Saghy 284022abba FINERACT-2081: fix NPE Loan product creation with null values in Interest rate or Number of repayments 2024-08-28 15:38:11 +02:00
Adam Saghy 6ca02686d2 FINERACT-2114: Reschedule validations enhancement 2024-08-26 13:18:10 +02:00
Dhruv SonagaraandGitHub 5384236220 FINERACT-2115: Create account transfers validation tests (#4011)
* FINERACT-2115 Create credit bureau and account transfers validation tests

* Added account trasnfer validation TCs and updated accot trasnfer helper class

* Updated the spotless changes

* Removed the unnescessary code and updated the account transfer validation tests

* Added the test cases for invalid date format for the account transfer test

* Updated the code according to the right response code for account transfer negative TC
2024-08-25 12:48:39 +05:30
Jose Alberto HernandezandAdam Saghy 4698764e07 FINERACT-2081: Loan account approval and disburse validation error code changed 2024-08-23 21:06:45 +02:00
Adam Saghy 3456e1eb81 FINERACT-2114: Reschedule validations enhancement 2024-08-23 14:25:48 +02:00
Janos MeszarosandAdam Saghy 1286b1e72f FINERACT-2114: Interest rate modification 2024-08-22 13:37:02 +02:00
Kristof JozsaandAdam Saghy 80f4627623 FINERACT-1981: pay-off transaction for progressive loans 2024-08-22 13:17:30 +02:00
Jose Alberto HernandezandAdam Saghy 5ebd3429c6 FINERACT-2107: Loan transaction Interest Refund GL Entries 2024-08-22 11:04:26 +02:00
Kristof JozsaandAdam Saghy 7304af57bc FINERACT-1981: pay-off transaction for progressive loans 2024-08-21 17:55:18 +02:00
Adam Saghy 721ceaa32c FINERACT-2081: Fix missing application.properties during build issue 2024-08-21 08:12:41 +02:00
Jose Alberto HernandezandAdam Saghy 04533f03c6 FINERACT-2117: Early and late payment - In advance payment strategy: Adjust last, unpaid period 2024-08-19 13:20:47 +02:00
Janos MeszarosandAdam Saghy 3e923bf483 FINERACT-2114: Interest rate modification, adjust reschedule validation 2024-08-16 15:04:20 +02:00
Adam Saghy 2a445a5862 FINERACT-2081: Rework Loan Account data 2024-08-15 13:19:01 +02:00
Kristof JozsaandAdam Saghy 22b10d933b FINERACT-2081: fix loan status on CBR reverse 2024-08-11 15:13:36 +02:00
Kristof JozsaandAdam Saghy c70007e30a FINERACT-2081: clear closed_on date on repayment reversal 2024-08-09 07:51:48 +02:00
Janos MeszarosandAdam Saghy 69dd19c74b FINERACT-1981: Repayment Schedule Interest Model with multi disbursement support, AdvPymnTxProcessor fix 2024-08-07 23:04:29 +02:00
Kristof JozsaandAdam Saghy 26388ea518 FINERACT-2081: loan validation code improvements 2024-08-07 11:18:34 +02:00
Soma SörösandAdam Saghy 81bf50d29e FINERACT-1694: Improve Testing of External Business Events 2024-08-07 09:57:42 +02:00
Kristof JozsaandAdam Saghy 23b50994cc FINERACT-2081: fix loan creation validations 2024-08-06 21:45:57 +02:00
Jose Alberto HernandezandAdam Saghy e967426db7 FINERACT-2081: Loan Unpaid Payable Interest fix to include amount paid 2024-08-05 12:00:10 +02:00
Kristof JozsaandAdam Saghy ec1c55d022 FINERACT-2081: fix disburse error scenario 2024-08-02 22:48:24 +02:00
Jose Alberto HernandezandAdam Saghy bd19f28cb6 FINERACT-2111: Performance issue on Retrieve Loan API - Transactions 2024-08-02 22:48:01 +02:00
Soma SörösandAdam Saghy 141e26fda7 FINERACT-1694: Upgrade External Business Event Handling 2024-08-02 14:50:26 +02:00
Jose Alberto HernandezandAdam Saghy 06edb4c7d9 FINERACT-2081: Loan account summary with Unpaid Payable Interest 2024-08-01 23:12:38 +02:00
Adam Saghy 526fb6b3a8 Revert "FINERACT-2081: Loan account summary with Unpaid Payable Interest"
This reverts commit 737455f52f.
2024-07-31 09:20:43 +02:00
Jose Alberto HernandezandAdam Saghy 737455f52f FINERACT-2081: Loan account summary with Unpaid Payable Interest 2024-07-31 09:19:09 +02:00
Adam Saghy 1db87b1e12 FINERACT-2081: Fix date handling of refund tests cases
Fineract Build & Test - MySQL / build (push) Canceled after 0s
Fineract Build & Test - PostgreSQL / build (push) Canceled after 0s
Fineract Docker build - MariaDB / build (push) Canceled after 0s
Fineract Docker build - PostgreSQL / build (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract Build & Test - MariaDB / build (push) Canceled after 0s
Fineract Tests / build (push) Canceled after 0s
Fineract ActiveMQ Smoke / build (push) Canceled after 0s
Fineract Kafka Smoke / build (push) Canceled after 0s
2024-07-29 18:10:38 +02:00
Jose Alberto HernandezandAdam Saghy 8d43565b09 FINERACT-2081: Loan account summary interest refund field 2024-07-29 09:49:11 +02:00
Soma SörösandAdam Saghy b1798a66df FINERACT-2104: Accrual Activity - Support final Accrual Activity transaction creation at the event of the loan got fully paid 2024-07-24 14:48:34 +02:00
Jose Alberto HernandezandAdam Saghy 602ad4e953 FINERACT-2109: Lib dependencies and versions between modules 2024-07-24 10:23:33 +02:00
Adam Saghy 8f6e575c8f FINERACT-2081: Transaction summary report fix 2024-07-24 10:02:05 +02:00
Jose Alberto HernandezandAdam Saghy be0ecbdce3 FINERACT-2081: Loan account data additional fields for summary 2024-07-24 09:58:40 +02:00
Adam Saghy a012f11825 FINERACT-2107: Interest refund configuration 2024-07-23 23:07:25 +02:00
zeyad2003andAdam Saghy 0959c8e401 FINERACT-1716: remove redundant boilerplate code within CommandSource class 2024-07-23 23:05:45 +02:00
Adam Saghy 39ddc87ec5 FINERACT-2081: Fix delinquency test 2024-07-23 23:01:28 +02:00
Jose Alberto HernandezandAdam Saghy 703ef90109 FINERACT-2081: Loan account data additional fields for summary 2024-07-19 15:09:39 +02:00
Adam Saghy e4c857d6fa FINERACT-2081: Add missing fields to Loan product swagger 2024-07-19 10:37:54 +02:00
Soma SörösandAdam Saghy 905a733f9e FINERACT-2104: Accrual Activity Posting Job 2024-07-18 12:57:38 +02:00
zeyad2003andAdam Saghy 38d994452d FINERACT-1717:eliminate boilerpalate getter methods within JsonCommand class 2024-07-18 11:25:38 +02:00
Jose Alberto HernandezandAdam Saghy b3b14ba929 FINERACT-2081: Update Loan data avro schemas with new delinquent fields 2024-07-18 10:33:41 +02:00
Jose Alberto HernandezandAdam Saghy eb06b40190 FINERACT-2081: Fix delinquent data swagger type 2024-07-17 11:28:05 +02:00
Kristof JozsaandAdam Saghy 6c4932bd64 FINERACT-2081: fix caching keys at codes cache eviction 2024-07-15 13:40:34 +02:00
Adam Saghy ea4d164096 FINERACT-2081: Make sure charge paid by association is updated 2024-07-15 13:38:59 +02:00
Jose Alberto HernandezandAdam Saghy 319f457874 FINERACT-2102: Loan Product DownPayment attributes overrided in the Loan 2024-07-15 10:33:11 +02:00
Soma SörösandAdam Saghy 9fceaf98b3 FINERACT-2104: Accrual Activity Reverse Replay Transaction 2024-07-15 10:31:28 +02:00
Janos MeszarosandAdam Saghy a4f077d675 FINERACT-1981: Provide more general EMI calculator interface 2024-07-12 13:09:46 +02:00
Kristof JozsaandAdam Saghy c9d1b81cc6 FINERACT-2090: restructure loan disbursements
more refactors
2024-07-12 11:43:49 +02:00
Jose Alberto HernandezandAdam Saghy 79f32d32a3 FINERACT-2081: Loan account data additional fields for summary and delinquency 2024-07-11 17:41:57 +02:00
SantatraandArnold Gálovics 4ac102f4e0 Fix broken link in README (FINERACT-2088) 2024-07-10 09:55:33 +02:00
dependabot[bot]andArnold Gálovics 8d14b18329 Bump gradle/wrapper-validation-action from 3.3.2 to 3.4.2
Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 3.3.2 to 3.4.2.
- [Release notes](https://github.com/gradle/wrapper-validation-action/releases)
- [Commits](https://github.com/gradle/wrapper-validation-action/compare/216d1ad2b3710bf005dc39237337b9673fd8fcd5...88425854a36845f9c881450d9660b5fd46bee142)

---
updated-dependencies:
- dependency-name: gradle/wrapper-validation-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-10 09:54:26 +02:00
dependabot[bot]andArnold Gálovics 090820da2d Bump actions/upload-artifact from 4.3.3 to 4.3.4
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.3 to 4.3.4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/65462800fd760344b1a7b4382951275a0abb4808...0b2256b8c012f0828dc542b3febcab082c67f72b)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-10 09:54:16 +02:00
dependabot[bot]andArnold Gálovics 976a69dfaf Bump actions/setup-node from 4.0.2 to 4.0.3
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.2 to 4.0.3.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/60edb5dd545a775178f52524783378180af0d1f8...1e60f620b9541d16bece96c5465dc8ee9832be0b)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-10 09:54:04 +02:00
Ruchi DhamankarandAdam Saghy 1b75c868ba FINERACT-2090: Accruals rework 2024-07-09 14:55:04 +02:00
Soma SörösandAdam Saghy 3f4bbf3e14 FINERACT-2104: Accrual Activity Posting for Loans 2024-07-09 11:32:31 +02:00
Adam Saghy 67440c47ab FINERACT-1981: Adjust EMI if needed 2024-07-08 20:33:16 +02:00
Jose Alberto HernandezandAdam Saghy 5093ca7363 FINERACT-2102: Loan Product enableDownPayment overrided in the Loan application 2024-07-08 10:29:02 +02:00
zeyad2003andAdam Saghy f5add87f2a FINERACT-2103: refactor boilerplate code under portfolio package using Lombok annotations. 2024-07-04 13:25:35 +02:00
zeyad2003andAdam Saghy 0358921d02 FINERACT-2103: refactor the boilerplate code for ChargeData class and its affiliate code 2024-07-04 10:21:20 +02:00
Janos MeszarosandAdam Saghy cfdfa6cd57 FINERACT-1981: EMI Calculation, Daily, Weekly, Monthly support plug to Repayment Schedule 2024-07-03 20:41:45 +02:00
Marta JankovicsandAdam Saghy 112787cf07 FINERACT-2099: Initial Liquibase got executed every execution 2024-07-03 18:09:13 +02:00
Jose Alberto HernandezandAdam Saghy f17a0965db FINERACT-2098: Currency data needed in loan transaction for UI 2024-07-03 09:54:28 +02:00
Marta JankovicsandAdam Saghy b482fbd447 FINERACT-2081: Support for string type primary keys - refactor existing enums 2024-06-26 17:08:24 +02:00
Marta JankovicsandAdam Saghy 009e9ded01 FINERACT-2095: Support for string type primary keys - enum options 2024-06-26 15:00:50 +02:00
Adam Saghy 33ecbc7130 FINERACT-2092: Fix adjust transactions handling 2024-06-26 13:15:57 +02:00
Janos MeszarosandAdam Saghy db8000b4f3 FINERACT-1981: EMI Calculation, Daily, Weekly, Monthly support plug to Repayment Schedule 2024-06-26 09:21:38 +02:00
Janos MeszarosandAdam Saghy 9f5044b358 FINERACT-2081: Fix wrong type in Swagger getLoanIdResponse type 2024-06-25 20:38:36 +02:00
Jose Alberto HernandezandAdam Saghy d7ee5d62aa FINERACT-2081: Upgrade Spring Batch to 5.1.2 version 2024-06-24 20:56:42 +02:00
Kristof JozsaandAdam Saghy fac4832723 FINERACT-2090: restructure loan approvals 2024-06-24 11:30:53 +02:00
Soma SörösandAdam Saghy 9152408c24 FINERACT-2082: New Transaction Type - Interest Payment Waiver 2024-06-21 11:40:21 +02:00
Ruchi DhamankarandAdam Saghy 1c53fe2136 FINERACT-2090: Restructure Withdraw Loan Application Logic 2024-06-20 14:58:39 +02:00
Jose Alberto HernandezandAdam Saghy 0292171f6f FINERACT-1932: Fineract modularization - fineract-tax 2024-06-17 23:06:07 +02:00
Ruchi DhamankarandAdam Saghy 35ff4363a8 FINERACT-2090: Improve Loan Application Reject logic 2024-06-17 20:46:53 +02:00
Jose Alberto HernandezandAdam Saghy edc7fff86f FINERACT-2096: Fix duplicate key value exception 2024-06-17 20:46:32 +02:00
Jose Alberto HernandezandAdam Saghy 3b603f5e80 FINERACT-1932: Fineract modularization - fineract-report 2024-06-17 17:55:22 +02:00
dependabot[bot]andArnold Gálovics a9cda96738 Bump actions/checkout from 4.1.2 to 4.1.7
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.2 to 4.1.7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4.1.2...692973e3d937129bcbf40652eb9f2f61becf3332)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-17 15:49:15 +02:00
Marta JankovicsandAdam Saghy f48f94c454 FINERACT-2091: Support for string type primary keys 2024-06-13 20:29:23 +02:00
Adam Saghy 111e28ed1b FINERACT-2081: Fix linked account validation 2024-06-12 17:23:24 +02:00
Adam Saghy bb022bd324 FINERACT-2081: Update README.md 2024-06-12 17:23:13 +02:00
Kristof JozsaandAdam Saghy c9f0799a06 FINERACT-2090: refactor and cleanup Loan entity 2024-06-12 16:29:50 +02:00
Ruchi DhamankarandAdam Saghy 369b809700 FINERACT-1971: Wrong GL entries on refund with reverse replay and charge off 2024-06-11 16:58:53 +02:00
Janos MeszarosandAdam Saghy f0deb111cb FINERACT-1981: EMI Calculation 2024-06-11 16:44:48 +02:00
Adam SaghyandArnold Gálovics d502dfa437 FINERACT-2081: Integration test configuration 2024-06-11 07:48:29 +02:00
Adam Saghy a6b69ec029 FINERACT-2081: Fix linked account validation 2024-06-10 20:07:38 +02:00
Jose Alberto HernandezandAdam Saghy 6f62699cb3 FINERACT-1932: Fineract modularization - fineract-loan 2024-06-10 20:06:21 +02:00
Marta JankovicsandAdam Saghy 655466785c FINERACT-1932: Fineract modularization - custom modules 2024-06-10 15:39:13 +02:00
Adam Saghy 92e291a9e4 FINERACT-2090: Restructure Loan creation and modification 2024-06-06 23:09:50 +02:00
Ruchi DhamankarandAdam Saghy a078cfd8c5 FINERACT-1971: Accrual for interest bearing loan with charge accrual based on submitted On Date fix 2024-06-06 14:08:02 +02:00
James DandGitHub 4bf93fdde7 scarf in asciidoc format 2024-06-04 16:58:51 -07:00
James DandGitHub 488db1076d Update introduction.adoc , remove 2024-06-02 17:30:34 -07:00
James DandGitHub 8e9eccf303 Update introduction.adoc , remove the error ? 2024-06-02 17:25:40 -07:00
James DandGitHub 25733b9ec6 Update introduction.adoc
remove ref to CN and added Scarf pixel
2024-06-02 17:10:55 -07:00
Víctor RomeroandGitHub be76613683 FINERACT-2089 Upgrade java dependencies/libraries (#3906) 2024-05-30 12:32:44 -06:00
Adam Saghy 1d607c7946 FINERACT-2081: Publish docker image only for develop branch and versioned tags 2024-05-29 21:52:31 +02:00
Soma SörösandAdam Saghy e0227885d7 FINERACT-2081: chargeback integration tests 2024-05-29 18:04:16 +02:00
Jose Alberto HernandezandAdam Saghy adcfc3c8ba FINERACT-1981: Function Value using simple interest for EMI calculation 2024-05-29 11:24:25 +02:00
Ruchi DhamankarandAdam Saghy 2092a9a911 FINERACT-2081: Chargeback reverse replay fails fix 2024-05-29 11:23:01 +02:00
James DandGitHub 620f60c650 Merge pull request #3887 from FintecheandoMX/develop
Github Action for DockerHub Publishing
2024-05-28 14:51:30 -07:00
Victor Romero e82f342d4b Github Action for DockerHub Publishing 2024-05-28 13:56:09 -06:00
Jose Alberto HernandezandAdam Saghy 885316690e FINERACT-1981: Rate factor using simple interest for EMI calculation 2024-05-28 12:16:00 +02:00
Ruchi DhamankarandAdam Saghy 53f4864980 FINERACT-1932: Fineract modularization Fineract progressive loan module 2024-05-24 14:35:34 +02:00
zeyad2003andAdam Saghy f59ae64222 FINERACT-2075: (chore) introduce lombok annotations to LoanProduct class.
- remove the redundant getters/setters methods from LoanProduct class.
- replace the non-standard methods with the convenient ones.
- modify other files that were depending on the old naming.
2024-05-23 15:01:02 +02:00
Jose Alberto HernandezandAdam Saghy d0e71ed7d6 FINERACT-2081: Remove Disable Schedule Extension For DownPayment unused code 2024-05-22 15:03:56 +02:00
Jose Alberto HernandezandAdam Saghy a3fb836b73 FINERACT-1932: Fineract modularization - fineract-charge 2024-05-21 22:53:36 +02:00
Jose Alberto HernandezandAdam Saghy e13a9cba01 FINERACT-2073: Client search v2 using Client Identifiers 2024-05-21 11:32:15 +02:00
Arnold GalovicsandArnold Gálovics 63ee58aabd FINERACT-2085: Implementation for decrypting database passwords with CLI tooling 2024-05-21 11:21:26 +02:00
Jose Alberto HernandezandAdam Saghy 55a67b1344 FINERACT-2082: Progressive loan schedule type should only support Advanced payment allocation strategy 2024-05-20 19:25:49 +02:00
Boris LitvinandAdam Saghy 1679ea9237 FINERACT-2078: Remove hardcoded use of RoundingMode outside of MoneyHelper 2024-05-17 17:03:01 +02:00
Jose Alberto HernandezandAdam Saghy abc7cec2ec FINERACT-1932: Fineract modularization - fineract-rates 2024-05-17 15:12:02 +02:00
Ruchi DhamankarandAdam Saghy 8b2c9da804 FINERACT-1971: Installment level delinquency for loan modification 2024-05-15 15:04:38 +02:00
dependabot[bot]andArnold Gálovics 582742d2ef Bump actions/checkout from 4.1.2 to 4.1.5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.2 to 4.1.5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/9bb56186c3b09b4f86b1c65136769dd318469633...44c2b7a8a4ea60a981eaca3cf939b5f4305c123b)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-14 16:53:51 +02:00
dependabot[bot]andArnold Gálovics f26377f9a0 Bump gradle/wrapper-validation-action from 2.1.2 to 3.3.2
Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 2.1.2 to 3.3.2.
- [Release notes](https://github.com/gradle/wrapper-validation-action/releases)
- [Commits](https://github.com/gradle/wrapper-validation-action/compare/b231772637bb498f11fdbc86052b6e8a8dc9fc92...216d1ad2b3710bf005dc39237337b9673fd8fcd5)

---
updated-dependencies:
- dependency-name: gradle/wrapper-validation-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-14 16:53:37 +02:00
dependabot[bot]andArnold Gálovics 9b1f9f3aec Bump actions/upload-artifact from 4.3.1 to 4.3.3
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.1 to 4.3.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/5d5d22a31266ced268874388b861e4b58bb5c2f3...65462800fd760344b1a7b4382951275a0abb4808)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-14 16:53:28 +02:00
Ruchi DhamankarandAdam Saghy b108ca92a6 FINERACT-1971: Enhance validation for installment level delinquency for loan product 2024-05-14 15:03:39 +02:00
Ruchi DhamankarandAdam Saghy bcf04b7e6f FINERACT-1971: Enhancing re-Amortization validation 2024-05-13 10:50:08 +02:00
Ruchi DhamankarandAdam Saghy 33a584bbcd FINERACT-1971: Override enableInstallmentLevelDelinquency loan application 2024-05-09 23:34:34 +02:00
Adam Saghy f6a35ce977 FINERACT-2070: Use generic product names 2024-05-09 23:34:21 +02:00
Ruchi DhamankarandAdam Saghy 5d0152c262 FINERACT-1971: Disable delinquency calculation for non active loans 2024-05-09 15:18:04 +02:00
Adam Saghy be655756a5 FINERACT-2070: Remove TestRailId annotations 2024-05-08 13:13:45 +02:00
Jose Alberto HernandezandAdam Saghy 849790ea46 FINERACT-1971: Down payment (auto) transaction using installment multiples of setting 2024-05-07 11:45:10 +02:00
James DandGitHub 7499859d39 Merge pull request #3880 from FintecheandoMX/develop 2024-05-03 23:46:59 -07:00
Víctor RomeroandGitHub 1c2bd33bc3 Rollback debug 2024-05-04 00:41:06 -06:00
Victor Romero 9cc76fe70a HU4 Return data 2024-05-04 00:20:36 -06:00
Adam Saghy 967a4d42c1 FINERACT-1958: Fix repayment schedule generation 2024-05-02 13:09:00 +02:00
Aleksandar VidakovicandAleksandar Vidakovic a022a51189 FINERACT-2076: SQL query optimization 2024-04-25 14:08:04 +02:00
Adam Saghy 039bca440b FINERACT-1971: Fix wrong due date calculation when loan got submitted 2024-04-23 20:45:51 +02:00
Jose Alberto HernandezandAdam Saghy 2b9e114c05 FINERACT-1932: Fineract modularization - fineract-document 2024-04-19 15:32:04 +02:00
Jose Alberto HernandezandAdam Saghy ce2f05ee78 FINERACT-1926: Fix No Such Element exception in Asset buyback 2024-04-19 10:45:46 +02:00
Adam Saghy 677761238d FINERACT-2066: Remove parallelization of external event status update 2024-04-17 18:17:03 +02:00
zeyad2003andAdam Saghy 457be1ad15 FINERACT-2075: (chore) refactor some classes under loanproduct package in loan module.
- Remove Getters, Setters, and constructors from `LoanProductMinMaxConstraints` & `LoanProductVariableInstallmentConfig`.
2024-04-16 18:09:16 +02:00
Adam Saghy 0761c39d16 FINERACT-1971: Fix marking external events sent in parallel 2024-04-16 18:07:39 +02:00
Adam Saghy 40a65eda15 FINERACT-1971: Fix final accrual in case of waived charge 2024-04-16 16:44:23 +02:00
Jose Alberto HernandezandAdam Saghy 99ba46386b FINERACT-1971: RepaymentOverDueBusinessEvent should not be sent when balance is 0 2024-04-15 11:27:54 +02:00
Jose Alberto HernandezandAdam Saghy 35bdbccd2e FINERACT-2065: Fix schedule handling with higher fixed length value than Loan term 2024-04-11 15:35:21 +02:00
zeyad2003andAdam Saghy 5ad63752c9 FINERACT-2056: (chore) introduce builder pattern and remove redundant methods & constructors.
- used @Getter & @Builder annotations on the above of GroupSavingsIndividualMonitoringAccountData.
- removed the getters and getInstance() methods from the implementation.
- change GSIMReadPlatformServiceImpl to make use of the new implementation.
2024-04-11 10:53:59 +02:00
Adam Saghy fe85677d65 FINERACT-1971: Fix loan cob parameter name 2024-04-10 14:51:45 +02:00
Adam Saghy a7ad33abff FINERACT-2042: Fix chargeback on overpaid loan 2024-04-10 14:51:38 +02:00
Jose Alberto HernandezandAdam Saghy d7a4e0e953 FINERACT-1932: Fineract modularization - fineract-branch 2024-04-09 20:25:24 +02:00
Udo BasseyandAdam Saghy cf65d81ccc FINERACT-2020:Added currency field to LoanAccountSummaryData, also added integration test and swagger documentation 2024-04-09 20:07:47 +02:00
Adam Saghy 4c503fff0d FINERACT-2060: Fix balance of reamortization at the event of reverse-replay 2024-04-08 16:52:13 +02:00
Adam Saghy 60b4a618af FINERACT-1926: Enhance performance of "Trial balance with Asset owner" report 2024-04-08 13:30:23 +02:00
Jose Alberto HernandezandAdam Saghy 127add41d6 Fix legacy integration test cases for specific holiday 2024-04-05 19:19:35 +02:00
Adam Saghy 749d6511ef FINERACT-1971: use KeyHolder instead of LASTVAL/LAST_INSERT_ID 2024-04-02 19:34:10 +02:00
Peter BagrijandAdam Saghy 5fa2295bd0 FINERACT-2057: JSON deserialization backward compatibility 2024-03-28 15:18:31 +01:00
dependabot[bot]andArnold Gálovics 444df1bbb4 Bump actions/checkout from 4.1.1 to 4.1.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/b4ffde65f46336ab88eb53be808477a3936bae11...9bb56186c3b09b4f86b1c65136769dd318469633)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-28 13:18:26 +01:00
taskain7 dfd2968c46 FINERACT-2072: Disburse without auto down payment 2024-03-28 12:36:18 +01:00
Mend RenovateandArnold Gálovics 6412d3d624 fix(deps): update non-major 2024-03-27 17:00:40 +01:00
Mend RenovateandArnold Gálovics ec7a7d9d7c chore(deps): update actions/checkout digest to b4ffde6 2024-03-27 16:59:21 +01:00
taskain7 aa267b7fc5 FINERACT-2071: Fixing journal entries on buyback 2024-03-27 14:26:13 +01:00
Peter BagrijandAdam Saghy d310d0dcbd FINERACT-1971: Fixing long running COB related tests 2024-03-27 12:55:35 +01:00
Jose Alberto HernandezandAdam Saghy b64b4b7105 FINERACT-2065: Schedule handling for fixed length configuration 2024-03-27 12:54:26 +01:00
Adam Saghy 6458094a5e FINERACT-2059: Support reverse-replay of Re-age transaction 2024-03-27 12:52:42 +01:00
zeyad2003andAdam Saghy ae6dde0224 FINERACT-1269: (fix) add a try-catch block to ensure that the json is deserialized successfully.
- Wrap the fromJson() method with try-catch block and throw proper exception.
- Add `publishHookEventHandlesInvalidJson()` method to test the invalid json is handled successfully.
2024-03-27 12:50:38 +01:00
Arnold GalovicsandArnold Gálovics ed5098b5a5 FINERACT-2070: Further test cases 2024-03-26 21:24:05 +01:00
Wilfred KigenyiandAdam Saghy 7c618a69d5 process current and previous standing instructions on loans 2024-03-26 12:44:04 +01:00
Arnold GalovicsandArnold Gálovics 5c54a9dbea FINERACT-2070: More test cases 2024-03-26 11:01:21 +01:00
goyalrocks007andAdam Saghy 86bd2763f0 Fineract-1964: Add functionality to calculate maturity amount before creating FD account 2024-03-26 09:57:17 +01:00
dependabot[bot]andArnold Gálovics 3753d89444 Bump actions/checkout from 4.1.1 to 4.1.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4.1.1...9bb56186c3b09b4f86b1c65136769dd318469633)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-26 08:12:59 +01:00
dependabot[bot]andArnold Gálovics 907f32308f Bump actions/setup-java from 4.1.0 to 4.2.1
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.1.0 to 4.2.1.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v4.1.0...99b8673ff64fbf99d8d325f52d9a5bdedb8483e9)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-26 08:12:53 +01:00
Adam Saghy 5f558c59c8 FINERACT-1981: Fix multi-disbursements on same day issue 2024-03-25 14:43:48 +01:00
Aleksandar VidakovicandArnold Gálovics 014144f614 FINERACT-2070: Integrate the new test framework into the public build pipeline 2024-03-25 14:02:37 +01:00
Peter BagrijandPeter Bagrij 0641fc6b99 FINERACT-1971: Fixing AggregateId of LoanOwnershipTransferBusinessEvent 2024-03-25 08:44:57 +01:00
dependabot[bot]andArnold Gálovics c36905e7b7 Bump actions/checkout from 4.1.1 to 4.1.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/b4ffde65f46336ab88eb53be808477a3936bae11...9bb56186c3b09b4f86b1c65136769dd318469633)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-23 18:16:58 +01:00
dependabot[bot]andArnold Gálovics c94f21059a Bump gradle/wrapper-validation-action
Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 63d15e7a1e697b1de6f3ba0507106f89100c8518 to b231772637bb498f11fdbc86052b6e8a8dc9fc92.
- [Release notes](https://github.com/gradle/wrapper-validation-action/releases)
- [Commits](https://github.com/gradle/wrapper-validation-action/compare/63d15e7a1e697b1de6f3ba0507106f89100c8518...b231772637bb498f11fdbc86052b6e8a8dc9fc92)

---
updated-dependencies:
- dependency-name: gradle/wrapper-validation-action
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-22 20:52:25 +01:00
Peter BagrijandAdam Saghy c404f474e9 FINERACT-1971: Fixing Loan COB error on startup when Loan COB is disabled 2024-03-22 12:16:40 +01:00
Peter BagrijandPeter Bagrij c34f2b4f59 FINERACT-2068: Loan Status Change History 2024-03-20 16:49:03 +01:00
zeyad2003andArnold Gálovics bb0c7eba7a FINERACT-1716: Reduce boilerplate code by using @Getter annotation in CommandWrapper class. 2024-03-20 12:37:07 +01:00
Arnold GalovicsandArnold Gálovics 5e75c7f3ed FINERACT-2059: Loan ReAging validations 2024-03-20 12:36:59 +01:00
Adam Saghy aac6f7cd21 FINERACT-1971: Fix loan balance for additional (N+1) installment 2024-03-19 22:11:26 +01:00
Adam SaghyandArnold Gálovics e66da3eaba FINERACT-2059: Re-aging repayment schedule handling 2024-03-19 17:02:08 +01:00
Mend RenovateandArnold Gálovics 52f614df59 chore(deps): update actions/checkout digest to b4ffde6 2024-03-19 13:54:31 +01:00
zeyad2003andPeter Bagrij 6b94192ac6 FINERACT-2067: (doc) fix some typos in fineract-doc module. 2024-03-19 13:42:45 +01:00
Adam Saghy d955bc26cb FINERACT-2059: Re-aging repayment schedule handling 2024-03-19 10:30:18 +01:00
dependabot[bot]andPeter Bagrij 314758abb5 Bump actions/setup-java from 4.2.0 to 4.2.1
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/5896cecc08fd8a1fbdfaf517e29b571164b031f7...99b8673ff64fbf99d8d325f52d9a5bdedb8483e9)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 13:43:49 +01:00
Adam SaghyandArnold Gálovics 40970e830b FINERACT-1971: Conditional renaming: Credited Principal renamed back to credits amount 2024-03-14 08:18:22 +01:00
dependabot[bot]andArnold Gálovics b2b950477c Bump actions/setup-java from 4.1.0 to 4.2.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/9704b39bf258b59bc04b50fa2dd55e9ed76b47a8...5896cecc08fd8a1fbdfaf517e29b571164b031f7)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-14 08:17:46 +01:00
taskain7 174b239c10 FINERACT-2066: Send async event job tuning 2024-03-14 06:32:45 +01:00
Peter BagrijandPeter Bagrij b2685ce9cf FINERACT-2065: Fixed length loan configuration 2024-03-13 18:59:42 +01:00
Adam Saghy 76ad2a2bc9 FINERACT-1971: Fix changed report checksum error 2024-03-13 17:07:50 +01:00
dependabot[bot]andArnold Gálovics 019f471b36 Bump actions/checkout from 4.1.1 to 4.1.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.1 to 4.1.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/b4ffde65f46336ab88eb53be808477a3936bae11...9bb56186c3b09b4f86b1c65136769dd318469633)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-13 14:37:58 +01:00
taskain7 dce264c169 FINERACT-2060: re-amortization 2024-03-13 14:15:14 +01:00
Arnold Galovicsandtaskain7 f05be57c50 FINERACT-2060: Validation rules for loan reamortization 2024-03-12 21:09:01 +01:00
Peter BagrijandPeter Bagrij c857527389 FINERACT-1971: Adding missing assertion for overpayment portion 2024-03-12 10:29:42 +01:00
Peter BagrijandAdam Saghy 26061067d7 FINERACT-1971: Credited Principal renamed back to credits amount. 2024-03-11 13:40:57 +01:00
Peter BagrijandPeter Bagrij 99f89b2d8a FINERACT-2042: chargeback with chargeoff 2024-03-08 17:10:07 +01:00
Arnold GalovicsandArnold Gálovics 18697f7cd6 FINERACT-1971: Properly calculating past due amounts when raising a delinquency range change event 2024-03-08 16:20:11 +01:00
Adam Saghyandtaskain7 5ce69c19fe FINERACT-2024: Fix Overpayment portion miscalculated in CBR reverse-replay 2024-03-08 06:04:07 +01:00
zeyad2003andPeter Bagrij 698e2ce8c3 chore: add lombok implementation to ReportParameterJoinData
- Remove all getter methods, and the args constructor from the class.
- Add the @Getter & @AllArgsConstructor annotations.
- Check no issues happened in ReadReportingServiceImpl class.
2024-03-07 13:17:08 +01:00
Peter BagrijandPeter Bagrij 697449e7e7 FINERACT-2042 Chargeback with credit allocation, accounting 2024-03-07 11:34:48 +01:00
Arnold Galovicsandtaskain7 5f9845f86a FINERACT-1971: Triggering a loan level event during reamortization and reaging 2024-03-04 14:05:40 +01:00
Adam Saghy 8803c554f5 FINERACT-1981: Fix Disbursement on overpaid loan (Cumulative) 2024-03-04 11:13:11 +01:00
Adam Saghy ce255916df FINERACT-1960: Fix savings product validation 2024-03-04 10:50:07 +01:00
taskain7andAdam Saghy 49b3c014ef FINERACT-2058: loan can be marked as fraud in any status 2024-03-01 12:06:43 +01:00
pushkalandAdam Saghy ef1bcda368 Introduce Lombok to savings module: interoperation package (FINERACT-2056)
Introduce Lombok to savings module: interoperation package (FINERACT-2056)
2024-03-01 11:54:37 +01:00
Jose Alberto HernandezandAdam Saghy fc0fee1e6a FINERACT-1971: Delinquency evaluation should be happen only for Active loans in COB 2024-02-29 17:36:20 +01:00
Adam Saghy 84afccc1f7 FINERACT-1981: Fix status change after Disbursement 2024-02-29 16:36:02 +01:00
taskain7 996c292411 FINERACT-2042: charge-off journal entries if loan is fraud 2024-02-29 01:18:27 +01:00
Adam Saghy 65b1c45a5f FINERACT-1981: Fix down-payment handling on overpaid loan (Advanced payment allocation loan) 2024-02-28 15:53:14 +01:00
dependabot[bot]andArnold Gálovics cd6258bd91 Bump actions/setup-java from 4.0.0 to 4.1.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/387ac29b308b003ca37ba93a6cab5eb57c8f5f93...9704b39bf258b59bc04b50fa2dd55e9ed76b47a8)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-28 13:55:21 +01:00
Peter BagrijandPeter Bagrij 4bc6755514 FINERACT-2042 Handling overpayment of chargeback with credit allocations 2024-02-28 10:09:11 +01:00
Adam Saghy 5be1001fd5 FINERACT-1981: Fix down-payment handling on overpaid loan (Advanced payment allocation loan) 2024-02-27 13:50:42 +01:00
Arnold GalovicsandArnold Gálovics 4a11f0ca29 FINERACT-1971: Added reamortization foundational work 2024-02-27 08:15:26 +01:00
Jose Alberto HernandezandAdam Saghy 6ee881b89a FINERACT-1960: GL account mappings to use Savings product with Accrual accounting 2024-02-26 15:25:28 +01:00
Adam Saghy 051b37c4b3 FINERACT-1971: Enhanced error logging: Optimistic lock exception handling + log most specific exception 2024-02-22 16:09:56 +01:00
Mend RenovateandArnold Gálovics 72c7bffe35 Update actions/upload-artifact action to v4 2024-02-22 15:42:44 +01:00
goyalrocks007andAdam Saghy 3a3b95491d FINERACT-1477: Change the logging level for InsufficientAccountBalanceException in batch job 2024-02-21 11:02:53 +01:00
Arnold GalovicsandArnold Gálovics 4d4502fbe0 FINERACT-1971: Loan re-aging foundational implementation 2024-02-20 15:43:49 +01:00
Mend RenovateandArnold Gálovics 0d06e2bb2c Update actions/upload-artifact digest to a8a3f3a 2024-02-20 10:03:18 +01:00
Mend RenovateandArnold Gálovics 96e3fca5d0 Update non-major 2024-02-20 10:03:09 +01:00
Adam Saghy 6910051674 FINERACT-1981: Fix principal due during disbursement on overpaid loan 2024-02-20 09:47:12 +01:00
Mend RenovateandArnold Gálovics 03a83b46c8 Update dependency com.github.librepdf:openpdf to v2 2024-02-20 08:29:02 +01:00
Adam SaghyandArnold Gálovics 8e991e1a36 FINERACT-1971: Payment type is not mandatory 2024-02-20 08:28:46 +01:00
Adam SaghyandArnold Gálovics 23e00ffec9 FINERACT-1971: Enhanced error logging - Attach stacktrace 2024-02-20 08:28:27 +01:00
Adam Saghyandtaskain7 d06b0562f1 FINERACT-1971: Include downpayment as last repayment in Collection data 2024-02-14 14:01:24 +01:00
Arnold GalovicsandArnold Gálovics 1d2fc73715 FINERACT-1971: Internal server error fix for handling batch API hard locked loan 2024-02-14 11:42:20 +01:00
dependabot[bot]andArnold Gálovics d112ee4b26 Bump actions/upload-artifact from 3.1.3 to 4.3.1
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.3 to 4.3.1.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/a8a3f3ad30e3422c9c7b888a15615d19a852ae32...5d5d22a31266ced268874388b861e4b58bb5c2f3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-13 12:55:15 +01:00
Adam Saghy adea7be214 FINERACT-1981: Fix principal due during disbursement on overpaid loan 2024-02-13 12:50:42 +01:00
Peter BagrijandPeter Bagrij 10c314e5d9 FINERACT-2042 Reverse Replay of Credit Allocation 2024-02-13 12:32:46 +01:00
Adam SaghyandArnold Gálovics 6c953dbc87 FINERACT-1971: Add downpayment to transaction summary report 2024-02-13 09:45:21 +01:00
Adam SaghyandArnold Gálovics 127898e2fa FINERACT-1981: Fix principal due during disbursement on overpaid loan 2024-02-13 09:44:59 +01:00
dependabot[bot]andArnold Gálovics fcb824378e Bump actions/setup-node from 4.0.1 to 4.0.2
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.1 to 4.0.2.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8...60edb5dd545a775178f52524783378180af0d1f8)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-13 09:43:34 +01:00
dependabot[bot]andArnold Gálovics f59a3a3ede Bump gradle/wrapper-validation-action
Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 83cf5fdbbf627c8da6fec32f28db58967a3136ac to 63d15e7a1e697b1de6f3ba0507106f89100c8518.
- [Release notes](https://github.com/gradle/wrapper-validation-action/releases)
- [Commits](https://github.com/gradle/wrapper-validation-action/compare/83cf5fdbbf627c8da6fec32f28db58967a3136ac...63d15e7a1e697b1de6f3ba0507106f89100c8518)

---
updated-dependencies:
- dependency-name: gradle/wrapper-validation-action
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-13 09:43:22 +01:00
Mariappan SivakumarandAdam Saghy afd262cfb6 FINERACT-2035: Client Trend For Day Scale is not work Due to BadSqlGrammar Error 2024-02-13 09:23:57 +01:00
Mariappan SivakumarandAdam Saghy 5577365858 FINERACT-2054: BadSqlGrammar Error in Loans Awaiting Disbursal Summary Report
This error is thrown because of Office/Branch( ounder.name) is not mentioned in the Group by clause
2024-02-13 09:23:29 +01:00
Peter BagrijandPeter Bagrij c504996c1d FINERACT-2042 Credit Allocation for Principal and Interest components 2024-02-12 12:26:27 +01:00
taskain7andAdam Saghy 717eb69425 FINERACT-2040: CBR GL accounts match with Charge off GL accounts if loan is not overpaid 2024-02-08 14:10:30 +01:00
Adam Saghy 181ec08f90 FINERACT-1972: Use default date for snapshot event + measure capability 2024-02-08 13:33:32 +01:00
Mend RenovateandArnold Gálovics e7fad88a06 Update actions/upload-artifact digest to a8a3f3a 2024-02-06 16:00:40 +01:00
Mend RenovateandArnold Gálovics 628e5aa561 Update all non-major dependencies 2024-02-06 16:00:31 +01:00
Arnold GalovicsandArnold Gálovics 770719e8ec FINERACT-1971: Handling inline COB execution before batch API execution outside of the batch transaction 2024-02-06 16:00:17 +01:00
Adam Saghy 99352c66b2 FINERACT-1981: Disbursement on overpaid loan 2024-02-06 13:20:01 +01:00
Mend RenovateandArnold Gálovics 8a67b5af65 Update dependency com.puppycrawl.tools:checkstyle to v10.13.0 2024-02-06 10:18:48 +01:00
dependabot[bot]andArnold Gálovics c78f2063a3 Bump actions/upload-artifact from 4.3.0 to 4.3.1
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.3.0 to 4.3.1.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/26f96dfa697d77e81fd5907df203aa23a56210a8...5d5d22a31266ced268874388b861e4b58bb5c2f3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-06 10:18:32 +01:00
dependabot[bot]andArnold Gálovics 3952ef9d34 Bump gradle/wrapper-validation-action
Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 342dbebe7272035434f9baccc29a816ec6dd2c7b to 83cf5fdbbf627c8da6fec32f28db58967a3136ac.
- [Release notes](https://github.com/gradle/wrapper-validation-action/releases)
- [Commits](https://github.com/gradle/wrapper-validation-action/compare/342dbebe7272035434f9baccc29a816ec6dd2c7b...83cf5fdbbf627c8da6fec32f28db58967a3136ac)

---
updated-dependencies:
- dependency-name: gradle/wrapper-validation-action
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 17:41:59 +01:00
Jose Alberto HernandezandAdam Saghy f3710cda92 FINERACT-1932: Fineract modularization - fineract-accounting 2024-02-01 23:51:50 +01:00
taskain7andAdam Saghy 129748e30d FINERACT-2040: CBR GL accounts match with Chargeoff GL accounts only after reversal 2024-02-01 10:53:08 +01:00
Peter BagrijandPeter Bagrij cca520125b FINERACT-2042 Configurable CreditAllocations for Loan Product 2024-01-31 09:25:23 +01:00
Jose Alberto HernandezandAdam Saghy 02cf6749af FINERACT-1932: Fineract modularization - fineract-savings 2024-01-29 14:14:31 +01:00
Jose Alberto HernandezandAdam Saghy 1f00bb6d33 FINERACT-1971: Fix Delinquency bucket error upon Loan product editing 2024-01-29 09:23:42 +01:00
Ruchi DhamankarandAdam Saghy f7a056204c FINERACT-1971: Auto down payment disbursement to savings not affecting linked account 2024-01-26 14:12:02 +01:00
Peter BagrijandPeter Bagrij b01ccc4619 FINERACT-2042 Configurable Allocation Rules for Chargeback Transaction. PR 1 of 3 - Persistence Layer 2024-01-25 20:22:58 +01:00
taskain7 a77ece75f8 FINERACT-1971: remove disableScheduleExtensionForDownPayment 2024-01-25 10:33:25 +01:00
Peter BagrijandArnold Gálovics 8aa56aad58 FINERACT-1971 Fixing CORS config 2024-01-25 08:06:30 +01:00
Ruchi DhamankarandPeter Bagrij 1a29266d86 FINERACT-2044: Fix spring boot loader PropertyLauncher class not found error 2024-01-24 17:45:49 +01:00
dependabot[bot]andArnold Gálovics 4357eb2167 Bump actions/upload-artifact from 4.2.0 to 4.3.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/694cdabd8bdb0f10b2cea11669e1bf5453eed0a6...26f96dfa697d77e81fd5907df203aa23a56210a8)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-24 10:49:58 +01:00
Arnold GalovicsandArnold Gálovics 3c238b9b8f FINERACT-1971: Added installment level delinquency data to LoanAccountDataV1/CollectionDataV1 avro schema 2024-01-24 08:27:34 +01:00
dependabot[bot]andArnold Gálovics 5194f205a5 Bump actions/upload-artifact from 3.1.3 to 4.2.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.3 to 4.2.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/a8a3f3ad30e3422c9c7b888a15615d19a852ae32...694cdabd8bdb0f10b2cea11669e1bf5453eed0a6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-23 15:30:54 +01:00
Peter BagrijandPeter Bagrij 8b379695d7 FINERACT-1972 Custom Snapshot Event Triggered by COB 2024-01-22 15:29:21 +01:00
Mend RenovateandArnold Gálovics 4cb8946bc1 Update actions/upload-artifact digest to a8a3f3a 2024-01-22 13:41:59 +01:00
Mend RenovateandArnold Gálovics e5ea0b812f Update non-major 2024-01-22 11:43:21 +01:00
Mend RenovateandArnold Gálovics 937f922b19 Update all non-major dependencies 2024-01-22 11:43:09 +01:00
dependabot[bot]andArnold Gálovics c372aebec4 Bump actions/upload-artifact from 4.0.0 to 4.2.0
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.0.0 to 4.2.0.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/c7d193f32edcb7bfad88892161225aeda64e9392...694cdabd8bdb0f10b2cea11669e1bf5453eed0a6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 11:37:44 +01:00
Ruchi DhamankarandAdam Saghy 2b1fe03e76 FINERACT-2042: Chargeback for down payment transaction 2024-01-22 09:47:27 +01:00
Adam SaghyandArnold Gálovics e00279bd29 FINERACT-1971: Error log when exception happened during batch execution 2024-01-22 09:42:25 +01:00
Adam Saghy d56cf85dcd FINERACT-1968: Fix overpayment calculation 2024-01-19 14:31:20 +01:00
Jose Alberto HernandezandAdam Saghy e169b5cd61 FINERACT-1971: Delinquency evaluation should be happen only for Active Loans 2024-01-18 14:07:19 +01:00
taskain7andAdam Saghy 189b94bd19 FINERACT-2041: totalRepaymentAmount includes down payment transactions 2024-01-18 13:56:50 +01:00
Ruchi DhamankarandAdam Saghy 89c3dc34f1 FINERACT-1971: N plus one installment loan reschedule 2024-01-18 13:55:02 +01:00
Arnold Galovicsandtaskain7 7d7669f570 FINERACT-1971: Transaction summary report fix + handling journal entries for chargeback scenarios 2024-01-18 11:57:38 +01:00
Arnold GalovicsandArnold Gálovics 51028fdbd0 Liquibase compatibility fix 2024-01-18 11:23:51 +01:00
Mend RenovateandArnold Gálovics 9a7a425696 Update all non-major dependencies 2024-01-18 11:23:51 +01:00
taskain7andAdam Saghy 583d73e7c9 FINERACT-2040: CBR journal entries when loan is charged off fix 2024-01-18 09:42:01 +01:00
Arnold GalovicsandArnold Gálovics cbe8f029e2 FINERACT-1971: Fix for not properly resolving delinquency range data for loan in case there's an installment delinquency 2024-01-18 08:28:43 +01:00
Aleksandar VidakovicandAleksandar Vidakovic ef465562b5 FINERACT-1874: Minor fix release build 2024-01-17 17:26:04 +01:00
taskain7andAdam Saghy 1148f5f974 FINERACT-1971: saving account annual fee test fix 2024-01-17 16:33:33 +01:00
Ruchi DhamankarandAdam Saghy 0672996678 FINERACT-1971: Fix next payment due date loan delinquent detail 2024-01-12 15:57:06 +01:00
Jose Alberto HernandezandAdam Saghy e3a771aa71 FINERACT-1981: Advanced payment allocation validation between Loan product and Loan account 2024-01-12 15:41:36 +01:00
Marta JankovicsandAdam Saghy fec768c192 FINERACT-2039: GET Savings API swagger fix 2024-01-11 14:43:19 +01:00
jmartaandAdam Saghy 16eac933d6 FINERACT-1977: 4-eye-principle, maker-checker permission 2024-01-11 11:46:32 +01:00
Arnold GalovicsandArnold Gálovics 2fe1b0e7d3 FINERACT-1971: Fix for allowing null default values for LoanAccountDeliquencyRangeDataV1 avro schema for installment level delinquency info 2024-01-09 15:42:39 +01:00
Rajkumar-SelvarajandAleksandar Vidakovic 5d96e8cc32 FINERACT-2034 : Fixed Handle Null Loan Cycle Counter in Loan Product Assignment for Borrow Cycle Enabled Products 2024-01-08 06:59:08 +01:00
Aleksandar VidakovicandAleksandar Vidakovic 478fb55b0f FINERACT-2036: Fix code quality 2024-01-07 19:11:13 +01:00
Aleksandar VidakovicandAleksandar Vidakovic 314929e692 FINERACT-2012: Fineract resource settings 2024-01-06 18:59:27 +01:00
Aleksandar VidakovicandAleksandar Vidakovic aec6cbe31f FINERACT-1893: Run reports fix 2024-01-06 18:58:38 +01:00
Aleksandar VidakovicandAleksandar Vidakovic e4944c44d6 FINERACT-2009: Upgrade latest framework libs 2024-01-06 14:13:33 +01:00
Arnold GalovicsandAdam Saghy 1f3bb34e13 FINERACT-1971: Swagger fixes 2024-01-05 11:21:30 +01:00
2vinodhkumarandAdam Saghy 50eefd2ee5 FINERACT-2031: Fix reschedule to next repayment date. Schedule should shift all the remaining installments to next repayment date as per the loan frequency.
FINERACT-2031: Fix reschedule to next repayment date. Schedule should shift all the remaining installments to next repayment date as per the loan frequency.

FINERACT-2031: Fix reschedule to next repayment date. Schedule should shift all the remaining installments to next repayment date as per the loan frequency.

FINERACT-2031: Fix reschedule to next repayment date. Schedule should shift all the remaining installments to next repayment date as per the loan frequency.

FINERACT-2031: Fix reschedule to next repayment date. Schedule should shift all the remaining installments to next repayment date as per the loan frequency.
2024-01-04 14:18:07 +01:00
jmartaandAdam Saghy e27a0bb53f FINERACT-2000: Clean-up retryable error codes 2024-01-03 12:08:07 +01:00
Adam SaghyandArnold Gálovics 2f38d284df FINERACT-1968: Fix when multiple disbursement happens on the 1st day of the loan 2024-01-03 10:39:38 +01:00
Ruchi DhamankarandAdam Saghy d3b626558f FINERACT-1971:Installment Delinquency value with delinquency pause 2023-12-31 12:43:41 +01:00
mariiaKraievskaandAdam Saghy 89750eeb2e FINERACT-2017: Improve test apply holidays to loans job 2023-12-31 11:54:46 +01:00
Adam Saghy 7da6d57c45 FINERACT-2017: Mark holiday was processed 2023-12-19 17:29:44 +01:00
mariiaKraievskaandAdam Saghy 8d6528408d FINERACT-2017: Fix apply holidays to loans job 2023-12-19 15:49:56 +01:00
Jose Alberto HernandezandAdam Saghy aff009c400 FINERTACT-1724: Advanced payment allocation fixes for Loan Schedule 2023-12-19 11:24:48 +01:00
Adam Saghy 834cfb6e27 Revert "FINERACT-1932: Fineract modularization - fineract-savings"
This reverts commit b9314d0b1e.
2023-12-15 18:48:44 +01:00
taskain7andAdam Saghy f981ffe519 FINERACT-1971: Loan transaction processing strategy validation fix 2023-12-15 14:02:50 +01:00
Jose Alberto HernandezandAdam Saghy b9314d0b1e FINERACT-1932: Fineract modularization - fineract-savings 2023-12-15 12:07:34 +01:00
Ruchi DhamankarandAdam Saghy 5edd18aec2 FINERACT-1992: Backdated delinquency pause events 2023-12-15 11:01:54 +01:00
mariiaKraievskaandAdam Saghy cd2f2f8102 FINERACT-1805: Fix getting details of a share transactions 2023-12-14 21:25:04 +01:00
Adam Saghy cba759533d FINERACT-1724: Set system user when a job got restarted by stuck job listener 2023-12-14 21:23:17 +01:00
Jose Alberto HernandezandAdam Saghy 4e877451c3 FINERACT-1724: Loan product delinquency bucket should not be mandatory 2023-12-14 14:39:00 +01:00
Ruchi DhamankarandAdam Saghy 6526e101a1 FINERACT-1992: Backdated delinquency pause 2023-12-13 10:36:36 +01:00
Adam Saghy da2cdd8bfd FINERACT-2026: Fix job run history 2023-12-13 10:23:43 +01:00
taskain7 7a417b058b FINERACT-1971: Delinquency pause validation bug fixes 2023-12-12 13:54:58 +01:00
Peter BagrijandAdam Saghy fb492b8172 FINERACT-1724 Improve cashier data validator 2023-12-11 10:38:53 +01:00
Peter BagrijandAdam Saghy 6dbab1737e FINERACT-1971 Improve Request Validation 2023-12-11 10:37:20 +01:00
Ruchi DhamankarandAdam Saghy 31a7e3644d FINERACT-1968: Adding Installment percentage fee Adv Payment allocation 2023-12-08 14:00:37 +01:00
Adam Saghy ae77d29be2 FINERACT-1958: Fix down-payment for loan reschedule and for interest bearing loans 2023-12-08 10:10:02 +01:00
Ruchi DhamankarandAdam Saghy 5b8f15ca95 FINERACT-1968:Advanced Payment allocation reprocessing transaction reverse replay 2023-12-07 16:21:10 +01:00
Peter BagrijandPeter Bagrij 5a8a2b9e35 FINERACT-2025 SQL Query Improvement 2023-12-07 10:17:35 +01:00
taskain7 cb40f230b1 [FINERACT-1992] Delinquency calculation with pause 2023-12-05 16:21:33 +01:00
taskain7 977fb20171 [FINERACT-1971] Create delinquency action permission 2023-12-05 09:57:15 +01:00
Arnold GalovicsandArnold Gálovics 646d7738c2 FINERACT-1971: Fix when waived N+1 installment's obligationsMet and obligationsMetOnDate is not or wrongly set 2023-12-04 14:09:10 +01:00
Peter BagrijandAdam Saghy 8505145fde FINERACT-1971 Credit balance refund for future date shall be rejected 2023-11-30 16:27:52 +01:00
Peter BagrijandAdam Saghy 5e5511f70a FINERACT-1724 Fix compilation issue after auto rebase 2023-11-30 14:38:39 +01:00
Adam Saghy ea68edce2d FINERACT-1981: Order disbursements and repayment periods properly 2023-11-30 12:42:44 +01:00
Peter BagrijandAdam Saghy b08fd9b573 FINERACT-1992 Fixing consecutive pause periods 2023-11-30 11:47:01 +01:00
Ruchi DhamankarandAdam Saghy 570b67b18e FINERACT-1992: Multi Delinquency event for installment range change 2023-11-30 10:39:23 +01:00
Peter BagrijandAdam Saghy 9129fb89a3 FINERACT-1968 Waive loan charges with advanced payment allocations 2023-11-30 10:38:52 +01:00
Arnold GalovicsandArnold Gálovics 35171c0823 FINERACT-1971: Marking the fallback method as public so it works properly with Resilience4J 2023-11-28 17:17:14 +01:00
Arnold GalovicsandArnold Gálovics 3b46332443 Code fixes for new checkstyle rules 2023-11-25 20:29:37 +01:00
Mend RenovateandArnold Gálovics 52acaf75f5 Update non-major 2023-11-25 20:29:37 +01:00
Arnold GalovicsandArnold Gálovics e3f7eadf53 Downgraded Liquibase since there's a bug where the database encryption task runs twice 2023-11-25 18:01:25 +01:00
Arnold GalovicsandArnold Gálovics 028a002426 Downgraded spotbugs 2023-11-25 18:01:25 +01:00
Mend RenovateandArnold Gálovics 47ff783be9 Update all non-major dependencies 2023-11-25 18:01:25 +01:00
Adam Saghy 054903a952 FINERACT-1968: Enhanced charge handling 2023-11-23 19:21:43 +01:00
Ruchi DhamankarandAdam Saghy 48300cd19d FINERACT-1992: Multi delinquency implication on events 2023-11-23 10:30:19 +01:00
Arnold GalovicsandArnold Gálovics f089f01116 Switched over to plain activemq client instead of the intermediary jakarta one 2023-11-22 19:51:44 +01:00
Mend RenovateandArnold Gálovics 5c97289341 Update dependency org.apache.activemq:activemq-client-jakarta to v6 2023-11-22 19:51:44 +01:00
Peter BagrijandAdam Saghy 677a499fab FINERACT-1724 Fix running the unit and cucumber tests locally 2023-11-22 15:15:28 +01:00
Peter BagrijandAdam Saghy bef6595032 FINERACT-1992 Emit LoanAccountDelinquencyPauseChangedBusinessEvent 2023-11-22 15:15:00 +01:00
Arnold GalovicsandAdam Saghy 967960d6c2 FINERACT-1971: Transaction Summary Report with Asset Owner does not
report overpaid amount
2023-11-21 16:01:38 +01:00
Peter BagrijandAdam Saghy 06a56d106d FINERACT-1992 Improve validation errors. 2023-11-21 10:34:45 +01:00
jmartaandAdam Saghy ee79c58e15 FINERACT-1909: Retry feature for commands - deadlock 2023-11-20 19:49:47 +01:00
Mend RenovateandArnold Gálovics 3acb2b3c50 Update dependency software.amazon.msk:aws-msk-iam-auth to v2 2023-11-20 13:55:50 +01:00
jmartaandAdam Saghy 4f2400ca3e FINERACT-2011: Savings Account - transaction order is incorrectly mixed after certain activities 2023-11-20 11:50:31 +01:00
Adam Saghy d0341e69cb FINERACT-1968: Fix rounding issue 2023-11-20 10:11:55 +01:00
Adam Saghy a95b6c7d1b FINERACT-1968: Credit balance refund 2023-11-20 09:30:39 +01:00
Peter BagrijandArnold Gálovics 03154f3101 FINERACT-1724 fix flaky testCatchUpInLockedInstanceLastCOBDateIsNotNull test 2023-11-20 09:16:49 +01:00
Peter BagrijandAdam Saghy c65a763c7f FINERACT-1992 Installment level delinquency is exposed to the loan api. 2023-11-17 15:43:21 +01:00
Peter BagrijandAdam Saghy 42d4198641 FINERACT-1992 Delinquency Pause API Changes 2023-11-14 19:33:57 +01:00
taskain7andAdam Saghy 71f9f57ba0 [FINERACT-1968] horizontal processing for refund for active loans transaction 2023-11-14 15:28:35 +01:00
Arnold GalovicsandArnold Gálovics 35243ee709 FINERACT-1971: Fix for not using installmentInMultiplesOf parameter in case of flat interest for loans 2023-11-14 14:00:25 +01:00
Adam Saghy 1eab93c8f3 FINERACT-1968: Support horizontal and vertical installment processing 2023-11-13 11:56:02 +01:00
taskain7andAdam Saghy 3799835414 [FINERACT-1968] Refund for active loan transaction 2023-11-10 14:19:28 +01:00
Adam Saghy 7a9bc6defe FINERACT-1971: Retry if original request is still under processing 2023-11-10 14:17:48 +01:00
Aleksandar VidakovicandAleksandar Vidakovic e2cf138437 FINERACT-1484: Micrometer Monitoring 2023-11-09 13:58:42 +01:00
Ruchi DhamankarandAdam Saghy 5c77242005 FINERACT-1958: downpayment periods for disbursements on same day 2023-11-08 18:07:07 +01:00
Arnold GalovicsandArnold Gálovics f4eee46a43 FINERACT-1971: Tiny refactoring to be able to customize down payment logic in disbursement 2023-11-08 17:16:35 +01:00
Arnold GalovicsandArnold Gálovics f681ee9ca5 FINERACT-1971: Fix for infinite recursive loop in CalendarUtils when tenant and system TZ is different 2023-11-08 14:35:25 +01:00
Arnold GalovicsandArnold Gálovics 9efe4f7ed5 FINERACT-1971: Added default values for LoanAccountLockApi for paging parameters 2023-11-08 13:26:57 +01:00
Peter BagrijandArnold Gálovics 8f3b114028 FINERACT-1724 fix eom tests 2023-11-08 09:11:07 +01:00
Adam Saghy 983f3d2da0 FINERACT-1981: Reschedule loan with new repayment date (Progressive loan schedule) 2023-11-07 16:48:10 +01:00
Peter BagrijandAleksandar Vidakovic 436877d94b FINERACT-1724 ActiveMQ is upgraded 2023-11-07 08:46:41 +01:00
Aleksandar VidakovicandAleksandar Vidakovic 2b4c932ddd FINERACT-1999: Publish snapshot versions without signing 2023-11-05 11:14:56 +01:00
Adam Saghy f5aa8d22e8 FINERACT-1724: Move product account mapping packages to core 2023-11-03 16:56:40 +01:00
jmartaandAdam Saghy a42f46957d FINERACT-1909: Retry feature for commands - no wrap for retryable exceptions 2023-11-03 16:56:23 +01:00
Ruchi DhamankarandAdam Saghy 224dbdc040 FINERACT-1968: Advanced payment allocation Write-off 2023-11-03 14:51:03 +01:00
Mohamed Magdi-AbdelmonemandAleksandar Vidakovic dc3b94d117 FINERACT-1932: Add starter Configuration class for portfolio.savings module 2023-10-31 18:55:40 +01:00
Adam Saghy 30ad4f50fa FINERACT-1981: Update (loan product request) swagger with loan schedule type 2023-10-31 17:23:34 +01:00
Adam Saghy ea55ddac13 FINERACT-1968: Fix repayment schedule reprocessing for N+1 situations 2023-10-31 17:21:08 +01:00
taskain7andArnold Gálovics 3bda17a4f1 [FINERACT-1968] unit tests for charge payment 2023-10-31 15:36:23 +01:00
Ruchi DhamankarandArnold Gálovics 3bb90a8987 FINERACT-1992: Paused delinquency actions persistence 2023-10-31 13:48:14 +01:00
5ebeca0f2d FINERACT-1971: Swagger classes primary keys fix (#3545)
FINERACT-1971 Swagger adjustments

---------

Co-authored-by: Arnold Galovics <galovicsarnold@gmail.com>
2023-10-31 13:18:05 +01:00
jmartaandAdam Saghy 03e71a29ff FINERACT-1996: Reporting should support query that includes json path for DB field in Postgres 2023-10-31 11:13:23 +01:00
taskain7andAdam Saghy 24cb62443e [FINERACT-1968] charge payment adv.paym.alloc.strategy 2023-10-31 11:03:12 +01:00
Adam SaghyandArnold Gálovics 5d62cfef04 FINERACT-1968: Adv.paym.disbursement 2023-10-31 08:15:50 +01:00
Adam SaghyandArnold Gálovics 2ea23be9a4 FINERACT-1981: Progressive loan schedule handling 2023-10-31 08:15:50 +01:00
Peter BagrijandAdam Saghy 71d2e51051 FINERACT-1971: Fixing obligation met on date when adding charge after maturity 2023-10-30 19:07:51 +01:00
Peter BagrijandArnold Gálovics 9b2c24289c FINERACT-1971: Fixing Loan repayment re-schedule with down payment. 2023-10-30 16:00:52 +01:00
Mohamed Magdi-AbdelmonemandAleksandar Vidakovic 0b1ca2dced FINERACT-1932: Add custom Configuration class for shareproduct services 2023-10-30 10:58:05 +01:00
Mend RenovateandArnold Gálovics ecca18d0f7 Update actions/setup-node action to v4 2023-10-30 10:55:45 +01:00
Mohamed Magdi-AbdelmonemandArnold Gálovics 245c00bd59 FINERACT-1932: Add starter Configuration class for portfolio.interestratechart module 2023-10-30 10:54:21 +01:00
Mohamed Magdi-AbdelmonemandAleksandar Vidakovic 0abb60c922 FINERACT-1932: Add starter Configuration class for portfolio.group module 2023-10-28 02:11:50 +02:00
Peter BagrijandAdam Saghy 937098c4ee FINERACT-1905 Loan Charge Reverse Replay with Advanced Payment Allocation 2023-10-27 22:10:14 +02:00
Mohamed Magdi-AbdelmonemandAleksandar Vidakovic c5932ec7a5 FINERACT-1932: Add starter Configuration class for portfolio.fund module 2023-10-27 17:37:13 +02:00
Mohamed Magdi-AbdelmonemandAleksandar Vidakovic 0d3f0372cd FINERACT-1932: Add starter Configuration class for self-shareaccounts module 2023-10-27 17:33:39 +02:00
Mohamed Magdi-AbdelmonemandAleksandar Vidakovic f11808eba7 FINERACT-1932: Add custom Configuration class for shareaccounts services 2023-10-27 17:32:28 +02:00
Mohamed Magdi-AbdelmonemandAleksandar Vidakovic 311eb875b3 FINERACT-1932: Add custom Configuration class for self-pockets module 2023-10-27 16:05:25 +02:00
Mohamed Magdi-AbdelmonemandAleksandar Vidakovic 19bd4fcb29 FINERACT-1932: Add custom Configuration class for self-client module 2023-10-27 16:03:01 +02:00
Sinha, AbhinavandAleksandar Vidakovic e75e758e71 Add custom Configuration class for notification module (FINERACT-1932) 2023-10-27 15:56:39 +02:00
Ruchi DhamankarandAdam Saghy 8cea837a5b FINERACT-1992-FINERACT-Installment-level-delinquency-calculation 2023-10-27 14:31:59 +02:00
Peter BagrijandAdam Saghy 585d200c67 FINERACT-1724
- Improve Kafka and ActiveMQ smoke-tests. It is enough to run one single testcase.
2023-10-27 14:13:08 +02:00
Sinha, AbhinavandAleksandar Vidakovic 2af06b96da Add custom Configuration class for adhocquery module (FINERACT-1932) 2023-10-27 13:32:02 +02:00
Sinha, AbhinavandAleksandar Vidakovic ff8a186b5c Add custom Configuration class for organisation/monetary module (FINERACT-1932) 2023-10-26 20:03:52 +02:00
Sinha, AbhinavandAleksandar Vidakovic 01e7dcf4ce Add custom Configuration class for organisation/provisioning module (FINERACT-1932) 2023-10-26 20:03:30 +02:00
Sinha, AbhinavandAleksandar Vidakovic 62811ad60b Add custom Configuration class for collateralmanagement module (FINERACT-1932) 2023-10-26 16:34:49 +02:00
Sinha, AbhinavandAleksandar Vidakovic 54ca135c3f Add custom Configuration class for organisation/holiday module (FINERACT-1932) 2023-10-26 16:31:58 +02:00
Sinha, AbhinavandAleksandar Vidakovic 1ef600ed73 Add custom Configuration class for accounting/accrual module (FINERACT-1932) 2023-10-26 15:29:42 +02:00
Sinha, AbhinavandAleksandar Vidakovic bf9352ed7e Add custom Configuration class for accounting/journalentry module (FINERACT-1932) 2023-10-26 15:27:06 +02:00
Sinha, AbhinavandAleksandar Vidakovic 6aa45f73ea Add custom Configuration class for accounting/provisioning module (FINERACT-1932) 2023-10-26 15:26:06 +02:00
Sinha, AbhinavandAleksandar Vidakovic a779abaf7d Add custom Configuration class for accounting/rule module (FINERACT-1932) 2023-10-26 15:25:20 +02:00
Sinha, AbhinavandAleksandar Vidakovic 1c652ba0a6 Add custom Configuration class for commands module (FINERACT-1932) 2023-10-26 15:20:53 +02:00
Sinha, AbhinavandAleksandar Vidakovic 93b8ab8678 Add custom Configuration class for organisation/office module (FINERACT-1932) 2023-10-26 15:14:43 +02:00
Sinha, AbhinavandAleksandar Vidakovic 9535bc0ec5 Add custom Configuration class for organisation/staff module (FINERACT-1932) 2023-10-26 15:12:45 +02:00
Sinha, AbhinavandAleksandar Vidakovic 66341db853 Add custom Configuration class for organisation/teller module (FINERACT-1932) 2023-10-26 15:11:44 +02:00
Sinha, AbhinavandAleksandar Vidakovic 9f3ebfbc31 Add custom Configuration class for organisation/workingdays module (FINERACT-1932) 2023-10-26 15:09:54 +02:00
Sinha, AbhinavandAleksandar Vidakovic 8710b1cff0 Add custom Configuration class for interoperation module (FINERACT-1932) 2023-10-26 15:09:01 +02:00
Sinha, AbhinavandAleksandar Vidakovic 9aa1c14b70 Add custom Configuration class for mix module (FINERACT-1932) 2023-10-26 15:07:23 +02:00
Arnold GalovicsandArnold Gálovics c13742f704 FINERACT-1971: Flaky test improvement on BatchAPI 2023-10-26 11:22:00 +02:00
jmartaandAdam Saghy e602fa6b3c FINERACT-1983: Date handling improvements - general 2023-10-25 22:41:23 +02:00
jmartaandAdam Saghy 71afd6dead FINERACT-1955: Timezone handling of Savings account 2023-10-24 16:00:57 +02:00
Peter BagrijandArnold Gálovics 6cb8ae0ed3 FINERACT-1724
- fix bootstrap server config
2023-10-24 13:07:14 +02:00
Peter BagrijandArnold Gálovics 5ab2b19ae4 FINERACT-1724
- Fix starter config by returning the most specific type.
2023-10-24 13:06:58 +02:00
Peter BagrijandArnold Gálovics f72f578d4b FINERACT-1724
- Fixing the order of disbursement and downpayment transactions
2023-10-24 13:06:49 +02:00
Peter BagrijandArnold Gálovics 7370dfdc73 FINERACT-1724
- Fixing fragile givenEventsForPurgeWhenTaskExecutionThenEventsPurgeForDaysCriteria failed here: https://github.com/apache/fineract/actions/runs/6576359375/job/17865569282
2023-10-24 13:06:39 +02:00
Mend RenovateandArnold Gálovics f946e35d6e Update actions/checkout digest to b4ffde6 2023-10-24 13:06:30 +02:00
Mend RenovateandArnold Gálovics 733ee7588b Update dependency org.apache.bval:org.apache.bval.bundle to v3 2023-10-24 13:06:24 +02:00
dependabot[bot]andArnold Gálovics 6ab6167746 Bump actions/setup-node from 3.8.1 to 4.0.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.8.1 to 4.0.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d...8f152de45cc393bb48ce5d89d36b731f54556e65)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-24 11:09:49 +02:00
Adam Saghy 83c505e1d1 FINERACT-1971: Update sonar plugin 2023-10-20 15:52:05 +02:00
jmartaandAdam Saghy fadfcd68e2 FINERACT-1929: Allow the length of client name to be 160 chars 2023-10-19 18:27:44 +02:00
jmartaandAdam Saghy e87dd888d2 FINERACT-1978: Delete data table does not delete references 2023-10-19 16:48:36 +02:00
jmartaandAdam Saghy 21978cc4e1 FINERACT-1971: Minor bug-fixes 2023-10-19 14:18:20 +02:00
Peter Bagrijandtaskain7 f79891b084 FINERACT-1724
- Add support for M1/M2 or other ARM64. Docker image will be based on AMR64 images, for the rest of the architectures it falls back to amd64.
2023-10-19 12:17:33 +02:00
Jose Alberto HernandezandAdam Saghy 73b77b9414 FINERACT-1992: Multi-dlnqcy - Configuration of Installment level delinquency 2023-10-18 09:27:52 +02:00
Mend RenovateandArnold Gálovics e0d087320a Update plugin com.adarshr.test-logger to v4 2023-10-16 21:52:10 +02:00
taskain7andGitHub 389a1f15b2 FINERACT-1971: Downpayment repayment undo (#3512)
[FINERACT-1971] Downpayment repayment undo
2023-10-16 14:11:06 +02:00
taskain7andArnold Gálovics 4bb9c40cdc [FINERACT-1971] don't send event if the installment is paid 2023-10-16 13:31:42 +02:00
taskain7 c0d0b565cb [FINERACT-1971] LoanRepaymentDueBusinessEvent shouldn't be sent if the loan is not disbursed or the outstanding balance is greater than 0 2023-10-14 11:11:45 +02:00
dependabot[bot]andArnold Gálovics 67bea02deb Bump actions/setup-java from 3.12.0 to 3.13.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3.12.0 to 3.13.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/cd89f46ac9d01407894225f350157564c9c7cee2...0ab4596768b603586c0de567f2430c30f5b0d2b0)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-13 13:34:24 +02:00
Ruchi DhamankarandArnold Gálovics 8b1a1c0d40 FINERACT-1992-Installment-level-delinquency-calculation-db 2023-10-12 09:30:54 +02:00
Mohamed Magdi-AbdelmonemandArnold Gálovics 4d3c40dc50 FINERACT-1932: Add stater configuration class for portfolio.loanaccount module services 2023-10-11 08:15:48 +02:00
Mohamed Magdi-AbdelmonemandArnold Gálovics 3aac1339e9 FINERACT-1932: Add stater configuration class for portfolio.loadproduct module services 2023-10-11 08:14:07 +02:00
Mohamed Magdi-AbdelmonemandArnold Gálovics e4af9b30ea FINERACT-1932: Add stater configuration class for template module services 2023-10-11 08:13:49 +02:00
Mohamed Magdi-AbdelmonemandArnold Gálovics 0c1997aa9a FINERACT-1932: Add stater configuration class for spm module services 2023-10-11 08:13:34 +02:00
Mend RenovateandArnold Gálovics 1173658520 Update actions/setup-java digest to cd89f46 2023-10-11 08:13:03 +02:00
taskain7andArnold Gálovics 4a77dafc5a [FINERACT-1971] LoanRepaymentDueBusinessEvent shouldn't be sent if the loan is not disbursed or the outstanding balance is greater than 0 2023-10-11 08:12:33 +02:00
Jose Alberto HernandezandArnold Gálovics 2bd4c24a50 FINERACT-1968: Add Advanced Payment Alloc Data in Loan Product 2023-10-11 08:11:36 +02:00
Ruchi DhamankarandArnold Gálovics d2fe39362c FINERACT-1968-Advanced-Payment-Allocation-Charge-Off 2023-10-09 14:20:15 +02:00
taskain7 06b56437b1 [FINERACT-1968] Adv. Pay. All. CBR test 2023-10-07 01:08:51 +02:00
Ruchi DhamankarandArnold Gálovics 231a178d1e FINERACT-1724-Loan-Product-Update 2023-10-06 14:10:57 +02:00
Mohamed Magdi-AbdelmonemandArnold Gálovics 69c3d575b7 FINERACT-1932: Add stater configuration class for provider.paymenttype services 2023-10-05 08:30:49 +02:00
Mohamed Magdi-AbdelmonemandArnold Gálovics f47053ef30 FINERACT-1932: Add stater configuration class for provider.paymentdetail services 2023-10-05 08:30:38 +02:00
Adam SaghyandArnold Gálovics c89e7c3f46 FINERACT-1971: Adding charge on a closed loan after maturity date should create an N+1 installment 2023-10-05 08:22:09 +02:00
Peter BagrijandArnold Gálovics be7c419b24 FINERACT-1971
- fix undo last disbursal with auto down payment enabled and repayment between the two disbursements
2023-10-04 13:54:54 +02:00
jmartaandArnold Gálovics 80bcb27b0a FINERACT-1921: BatchAPI - status code mismatch 2023-10-03 12:37:22 +02:00
Sinha, AbhinavandArnold Gálovics 666c097ec8 Add custom Configuration class for collectionsheet module (FINERACT-1932) 2023-10-02 15:15:57 +02:00
Mohamed MagdyandArnold Gálovics ad63024b4f Add custom AutoConfiguration class for transfer service (FINERACT-1932) 2023-10-02 15:15:45 +02:00
Mohamed MagdyandArnold Gálovics 34fc1a2cc5 Add custom AutoConfiguration class for tax service (FINERACT-1932) 2023-10-02 15:15:35 +02:00
Mohamed Magdi-AbdelmonemandArnold Gálovics 2272174c24 FINERACT-1932: Add custom Configuration class for self-account module 2023-10-02 15:15:27 +02:00
Mohamed Magdi-AbdelmonemandArnold Gálovics c422d2611e FINERACT-1932: Add starter configuration class for portfolio.rate module 2023-10-02 15:14:53 +02:00
Sinha, AbhinavandArnold Gálovics e41d7635e0 Add custom Configuration class for floatingrates module (FINERACT-1932) 2023-10-02 15:14:33 +02:00
Mohamed Magdi-AbdelmonemandArnold Gálovics 01e68e34ce FINERACT-1932: Add starter configuration class for portfolio.repaymentwithpostdatedchecks module 2023-10-02 15:14:22 +02:00
Mend RenovateandArnold Gálovics 4bcf465ac0 Update postgres Docker tag to v16 2023-10-02 15:14:09 +02:00
Mend RenovateandArnold Gálovics de13be60e6 Update ghcr.io/navikt/mock-oauth2-server Docker tag to v2 2023-10-02 15:14:02 +02:00
Mend RenovateandArnold Gálovics 43ceac2ea3 Update gradle/wrapper-validation-action digest to 342dbeb 2023-10-02 15:13:54 +02:00
Mend RenovateandArnold Gálovics 9a591b6216 Pin dependencies 2023-10-02 15:13:42 +02:00
dependabot[bot]andArnold Gálovics 9e2ce141ad Bump actions/setup-java from 3.12.0 to 3.13.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3.12.0 to 3.13.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/cd89f46ac9d01407894225f350157564c9c7cee2...0ab4596768b603586c0de567f2430c30f5b0d2b0)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-02 15:13:35 +02:00
Ruchi DhamankarandAdam Saghy 7e893eac78 FINERACT-1958-Loan-repayment-calculation 2023-09-29 17:32:26 +02:00
mariiaKraievskaandAdam Saghy 480b9542ed FINERACT-1938: Fix calculating running balance after release amount in batch request 2023-09-29 17:31:38 +02:00
Adam Saghy 88d2f44cb4 FINERACT-1958: Business events for down payment installments 2023-09-29 13:08:05 +02:00
taskain7andAdam Saghy 1b31d932ca [FINERACT-1958] Business events for down payment installments 2023-09-29 13:08:05 +02:00
Ruchi DhamankarandAdam Saghy 98b7c2948a FINERACT-1958-Rework-Down-Payment-Overlapping-Installment 2023-09-28 18:13:52 +02:00
jmartaandAdam Saghy f7f41d3e3c FINERACT-1971: Minor bug-fixes and enhancements 2023-09-28 18:11:29 +02:00
Peter BagrijandArnold Gálovics 3f088e9c2a FINERACT-1971
- GetSavingsAccountsSummary accountBalance and availableBalance should be BigDecimal
2023-09-28 15:09:08 +02:00
jmartaandAdam Saghy 32da7db35d FINERACT-1927: Incorrect exception info in BatchAPI response 2023-09-27 19:13:26 +02:00
Peter BagrijandAdam Saghy f452ce2cad FINERACT-1968
- integration tests added for validating chargeback support.
2023-09-26 11:05:54 +02:00
Adam Saghy fecc3913a8 FINERACT-1958: Rework down-payment calculation 2023-09-22 11:33:22 +02:00
Adam Saghy 0927c8e1d9 FINERACT-1971: Align dates and dateformat in tests 2023-09-21 18:43:17 +02:00
Adam Saghy 710e6145be FINERACT-1971: Bugfix for transaction summary report for Asset owners 2023-09-21 11:36:25 +02:00
Kristof JozsaandAleksandar Vidakovic 3fe997e472 FINERACT-1979: Better versioning plugin for Gradle builds 2023-09-19 16:30:13 +02:00
Ruchi DhamankarandAdam Saghy aefb7d0edb FINERACT-1958-disbursement-period-order-backdated-disbursement 2023-09-18 15:20:21 +02:00
jmartaandAdam Saghy 1f107b4e81 FINERACT-1931: Savings Account with overdraft - cannot deposit after negative balance 2023-09-18 15:19:57 +02:00
jmartaandAdam Saghy ad3e518291 FINERACT-1976: Payment type permissions not working 2023-09-18 12:22:51 +02:00
Ruchi DhamankarandAdam Saghy 8b19879f12 FINERACT-1971-Loan-Product-modify-PUT-api-error-fix 2023-09-18 10:51:19 +02:00
Adam Saghy 8eecb866c8 FINERACT-1975: BatchAPI - JSON handler cannot handle null (fix) 2023-09-15 08:01:01 +02:00
Adam Saghy f7d41b58b3 FINERACT-1724: Fix pagination 2023-09-14 17:28:46 +02:00
Peter BagrijandAdam Saghy 95475509de FINERACT-1971
- validation added for the case when advanced repayment strategy is used with empty or missing allocation rules.
2023-09-14 14:11:20 +02:00
Ruchi DhamankarandAdam Saghy f89147ed3c FINERACT-1958-backdated-disbursement 2023-09-14 14:08:51 +02:00
abraham.menyhartandAdam Saghy 781f3ae78c FINERACT-1760: savings account externalId support 2023-09-13 17:08:30 +02:00
Peter BagrijandAdam Saghy 6d3357e740 FINERACT-1958
- reverse handling of disbursement with down payment
2023-09-11 16:29:08 +02:00
Mend RenovateandArnold Gálovics 3a092590e9 Update actions/checkout action to v4 2023-09-11 16:22:47 +02:00
dependabot[bot]andArnold Gálovics acd891e6f2 Bump actions/upload-artifact from 3.1.2 to 3.1.3
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/0b7f8abb1508181956e8e162db84b466c27e18ce...a8a3f3ad30e3422c9c7b888a15615d19a852ae32)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-11 15:06:20 +02:00
Sinha, AbhinavandArnold Gálovics 3de1be6252 Add custom Configuration class for meeting service (FINERACT-1932) 2023-09-11 14:49:06 +02:00
Mohamed Magdi-AbdelmonemandArnold Gálovics 00cab57a9b FINERACT-1932: Add custom Configuration class for search module 2023-09-11 14:45:12 +02:00
Sinha, AbhinavandArnold Gálovics 21af639abc Add custom Configuration class for delinquency module (FINERACT-1932) 2023-09-11 14:45:01 +02:00
Mohamed Magdi-AbdelmonemandArnold Gálovics e4e9d008f2 FINERACT-1932: Add custom Configuration class for self-loanaccount module 2023-09-11 14:44:05 +02:00
Mohamed Magdi-AbdelmonemandArnold Gálovics ed4c85a5c8 FINERACT-1932: Add custom Configuration class for self-registration module 2023-09-11 14:43:39 +02:00
Mohamed Magdi-AbdelmonemandArnold Gálovics 5b0ed43054 FINERACT-1932: Add custom Configuration class for self-savings module 2023-09-11 14:43:04 +02:00
Mend RenovateandArnold Gálovics bbb9a05cba Update actions/checkout digest to f43a0e5 2023-09-11 14:28:49 +02:00
Ruchi DhamankarandAdam Saghy 233cb5af57 FINERACT-1958-Configuration-extending-schedule-with-downpayment 2023-09-11 10:48:29 +02:00
Adam Saghy 4b02527561 FINERACT-1968: Enhance Loan product template with advanced payment allocation 2023-09-08 14:45:44 +02:00
dependabot[bot]andArnold Gálovics c04f435b1a Bump actions/checkout from 3.6.0 to 4.0.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.6.0 to 4.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/f43a0e5ff2bd294095638e18286ca9a3d1956744...3df4ab11eba7bda6032a0b82a6bb43b11571feac)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-06 09:01:52 +02:00
Adam Saghy 6d938995a0 FINERACT-1968: Advanced payment allocation - Default allocation 2023-09-05 17:14:32 +02:00
taskain7andAdam Saghy 26eca0fccd [FINERACT-1958] Tests for delinquency bucket on down payment installment 2023-09-05 09:43:52 +02:00
taskain7andAdam Saghy 3fd0557f7a [FINERACT-1958] Tests for interest not applied on down payment installment 2023-09-04 23:16:57 +02:00
Arnold GalovicsandArnold Gálovics c1ef701908 FINERACT-1724: Made inline loan COB reader and processor job scoped to avoid state sharing 2023-09-04 15:50:35 +02:00
Adam Saghy 0eb2a44ff3 FINERACT-1724: Fix wrong datepattern in integration test 2023-09-04 14:03:34 +02:00
Jose Alberto HernandezandAdam Saghy 4a2aeff350 FINERACT-1926: Asset Externalization on Fineract 2023-09-01 13:54:23 +02:00
jmartaandAdam Saghy 6a90ce3f10 FINERACT-1969 SQL Injection exception thrown even if no insecure string is in the input 2023-08-31 17:31:16 +02:00
jmartaandAdam Saghy 28e9a62137 FINERACT-1911: Assign Data Table to Transaction - validation 2023-08-31 13:49:10 +02:00
Sinha, AbhinavandArnold Gálovics 6910759985 Add custom Configuration class for useradministration service (FINERACT-1932) 2023-08-30 14:28:11 +02:00
Janos HaberandArnold Gálovics f829eaa9d6 FINERACT-1760: Get office by external id
- [x] Add new resource to update
- [x] Integration test
2023-08-30 14:27:39 +02:00
Adam Saghy 59c5ad4500 FINERACT-1724: Refactor loan repayment transaction processor 2023-08-30 13:48:26 +02:00
Adam Saghy e2e10d2008 FINERACT-1968: Advanced payment allocation strategy for Loan 2023-08-30 13:47:30 +02:00
Sinha, AbhinavandArnold Gálovics 349103015f Add custom Configuration class for Account module (FINERACT-1932) 2023-08-30 11:26:27 +02:00
Sinha, AbhinavandArnold Gálovics 5348477afb Add custom Configuration class for calendar module (FINERACT-1932) 2023-08-30 11:26:20 +02:00
Sinha, AbhinavandArnold Gálovics 367896ccf2 Add custom Configuration class for charge module (FINERACT-1932) 2023-08-30 11:26:13 +02:00
Sinha, AbhinavandArnold Gálovics 6ff1966562 Add custom Configuration class for collateral module (FINERACT-1932) 2023-08-30 11:26:04 +02:00
Arnold GalovicsandAdam Saghy 435f75b6c0 FINERACT-1724: Fix for closing the AWS credentials provider unnecessarily upon startup 2023-08-30 11:13:14 +02:00
Janos HaberandArnold Gálovics 63d6cb38ab FINERACT-1760: Update office by external id
- [x] Add new resource to update
- [x] Integration test
2023-08-30 09:50:56 +02:00
Mend RenovateandArnold Gálovics adcdd1a224 Update actions/checkout digest to f43a0e5 2023-08-30 09:50:24 +02:00
taskain7andArnold Gálovics c9e9a5f546 [FINERACT-1965] Dateformat validation error message with the original dateformat 2023-08-30 09:50:03 +02:00
Ruchi DhamankarandAdam Saghy e7013309ca FINERACT-1958-Overlapping-installment-payment-allocation 2023-08-29 14:08:08 +02:00
Adam SaghyandArnold Gálovics 001ad2fa1f FINERACT-1839: Fix N+1 installment due date 2023-08-29 14:05:13 +02:00
jmartaandAdam Saghy f1e70111b4 FINERACT-1910 Support Pagination, sorting and filtering for Datatable 2023-08-28 16:58:06 +02:00
taskain7 498e81a734 [FINERACT-1958] Charge cannot be added to down payment installment 2023-08-28 14:00:46 +02:00
Adam Saghyandtaskain7 0c3863471b FINERACT-1839: Fix N+1 installment due date 2023-08-28 11:20:00 +02:00
Víctor RomeroandGitHub 33ff4f5492 Publish library projects required for plugins (#3403) 2023-08-26 23:20:14 -06:00
Arnold GalovicsandArnold Gálovics b6b33fd67b FINERACT-1724: Added CORS support for Actuator endpoints 2023-08-25 13:27:34 +02:00
jmartaandAdam Saghy e20e715488 FINERACT-1943 Transaction and datatable GET queries 2023-08-25 10:56:16 +02:00
jmartaandAdam Saghy ee31ff0ed8 FINERACT-1911: Alter datatable - column update, delete fix 2023-08-25 10:56:09 +02:00
Adam SaghyandArnold Gálovics 2f4705952b FINERACT-1968: Advance payment allocation - ASCII doc 2023-08-23 12:54:59 +02:00
abraham.menyhartandArnold Gálovics 3210a09375 FINERACT-1724: Fix batch api response code 2023-08-23 12:33:02 +02:00
taskain7 3885104767 [FINERACT-1958] Repayment schedule recalculation fix for multidisburse down payment 2023-08-23 10:36:55 +02:00
Ruchi DhamankarandArnold Gálovics bfa6a6605b FINERACT-1958-loan-downpayment-transaction-permission-enum-values 2023-08-23 10:13:00 +02:00
Adam Saghy 2ccf7bd727 FINERACT-1926: Add index 2023-08-22 15:48:28 +02:00
Adam Saghy 128d45889b FINERACT-1926: Add constraints 2023-08-22 15:22:41 +02:00
Ruchi DhamankarandAdam Saghy 3c6fc1e47b FINERACT-1958-Loan-Product-repayment-start-date-configuration 2023-08-22 12:28:36 +02:00
taskain7andAdam Saghy b1cde8a809 [FINERACT-1958] Repayment schedule for down payment 2023-08-22 11:06:43 +02:00
Peter BagrijandAdam Saghy d481ba61de FINERACT-1724
- GPG Service initialization is moved to step7 of the release script. This should reduce the build time and removes noise during normal (non release) builds.
2023-08-22 10:50:54 +02:00
Mend RenovateandArnold Gálovics 91751ebf4d Update actions/setup-node digest to 5e21ff4 2023-08-21 17:13:58 +02:00
Peter BagrijandAdam Saghy 42a4485aeb FINERACT-1724 Fixing enum formatting 2023-08-18 18:30:40 +02:00
Peter BagrijandAdam Saghy 0802860835 FINERACT-1968
- API - Advanced payment allocation strategy configuration on Loan product
2023-08-18 17:34:19 +02:00
abraham.menyhartandAdam Saghy 03c1379205 FINERACT-1724: Fix all typos in transaction summary report with owner 2023-08-18 17:34:07 +02:00
jmartaandAdam Saghy c7300fd526 FINERACT-1911: Support timestamp type 2023-08-18 16:50:31 +02:00
Ruchi DhamankarandAdam Saghy a4f9b167f2 FINERACT-1958-Down-Payment-transaction-type 2023-08-18 15:09:33 +02:00
taskain7 baa447196e [FINERACT-1958] Repayment schedule for down payment 2023-08-18 14:51:54 +02:00
jmartaandAdam Saghy b616a96fc9 FINERACT-1911: Assign Data Table to Transaction - general 2023-08-17 09:25:51 +02:00
Adam SaghyandArnold Gálovics 2275f9c301 FINERACT-1926: Enrich with external owner Loan transaction adjust business event 2023-08-17 08:41:45 +02:00
Janos HaberandAdam Saghy 3a31ee9600 FINERACT-1724: Add indexes to assets and jobs
- [x] Add `loan_id` as indexed field on the `m_external_asset_owner_transfer`
- [x] Add `job_execution_id` as indexed field on the `batch_job_execution_params` table
2023-08-15 14:17:00 +02:00
dependabot[bot]andArnold Gálovics 5679723187 Bump actions/setup-node from 3.7.0 to 3.8.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.7.0 to 3.8.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/e33196f7422957bea03ed53f6fbb155025ffc7b8...bea5baf987ba7aa777a8a0b4ace377a21c45c381)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-15 08:51:20 +02:00
Ruchi DhamankarandArnold Gálovics ef2c446761 FINERACT-1958-Autopayment-downpayment 2023-08-15 08:33:12 +02:00
abraham.menyhartandArnold Gálovics 7c0c525cd5 FINERACT-1724: Wrong status (error) code retrieved when invalid request was provided to Batch API 2023-08-15 08:32:24 +02:00
Peter BagrijandArnold Gálovics a45ff9a3e0 FINERACT-1724
- fixes the JPA exception which is raised when a message was redelivered and earlier all the loans got closed for that given partition.
2023-08-15 08:30:49 +02:00
Mend RenovateandArnold Gálovics f12430752f Update dependency ubuntu to v22 2023-08-14 10:13:56 +02:00
Janos HaberandAdam Saghy 07122fd10a FINERACT-1968: Advanced repayment allocation strategy - data model
- [x] m_loan_product_payment_allocation_rule table created
- [x] m_loan_payment_allocation_rule table created
- [x] LoanProductPaymentAllocationRule entity
- [x] LoanPaymentAllocationRule entity
- [x] List of enum converter to String converter to use `AllocationType` list
2023-08-11 14:58:56 +02:00
abraham.menyhartandAdam Saghy d6c10e8303 FINERACT-1724: Sonar fixes
Fineract Docker build - MariaDB / build (push) Canceled after 0s
Fineract Docker build - PostgreSQL / build (push) Canceled after 0s
Fineract Kafka Smoke / build (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract Build & Test - MariaDB / build (push) Canceled after 0s
Fineract Build & Test - MySQL / build (push) Canceled after 0s
Fineract Build & Test - PostgreSQL / build (push) Canceled after 0s
Fineract ActiveMQ Smoke / build (push) Canceled after 0s
2023-08-10 12:56:45 +02:00
abraham.menyhartandAdam Saghy 33c1aa7874 FINERACT-1724: Creating accrual entry should not be done by native queries 2023-08-10 12:55:31 +02:00
taskain7 b27653c055 [FINERACT-1965] Change date resolvement from SMART to STRICT 2023-08-09 00:08:26 +02:00
taskain7 38872a036f [FINERACT-1724] Transaction Summary With Asset Owner report typo fix 2023-08-08 13:23:08 +02:00
Adam Saghy d8882ac471 Revert "FINERACT-1905: Same day repayment + charge handling improvement"
This reverts commit 15838e5406

Except LoanCharge and liquibase changes. Those are unrelated. not causing any issues, and better to leave them for compatibility
2023-08-07 21:17:21 +02:00
taskain7 e29714a728 [FINERACT-1724] Transaction Summary With Asset Owner report typo fix 2023-08-07 16:56:54 +02:00
Ruchi DhamankarandAdam Saghy 315f62d8dc FINERACT-1958-Configuration-down-payment 2023-08-07 15:27:00 +02:00
taskain7 7559e90ce2 [FINERACT-1678] Configuration for enabling/disabling Loan COB 2023-08-07 14:32:39 +02:00
MkkorandAdam Saghy a04c8da659 FINERACT-1943 Fix submitted on date references 2023-08-07 13:42:54 +02:00
jmartaandAdam Saghy 5b3d088f7b FINERACT-1939: Hold Amount - should be debit 2023-08-07 13:42:30 +02:00
Peter BagrijandAdam Saghy 53ebbc6c46 FINERACT-1724
- kafka revision is also pinned.
2023-08-07 11:48:20 +02:00
Peter BagrijandArnold Gálovics 477b2fd091 FINERACT-1724
- setting the timezone for the unit test
2023-08-04 15:02:15 +02:00
Adam Saghy 15838e5406 FINERACT-1905: Same day repayment + charge handling improvement 2023-08-03 21:53:09 +02:00
Peter BagrijandAdam Saghy cd463168c1 FINERACT-1724
- activemq is pinned to 5.15.9-alpine
2023-08-03 11:52:20 +02:00
Peter KovacsandAdam Saghy 38f537ea8a FINERACT-1724 Loan account lock API fix 2023-08-02 23:44:57 +02:00
Janos HaberandAdam Saghy dbe71b8f7e FINERACT-1724: Fix Multi Disburse internal server error
- [x] Fix wrong mapping
- [x] Add empty hashmap for initialization
2023-08-02 15:57:06 +02:00
Adam Saghy 3869c19296 Revert "FINERACT-1905: Same day repayment + charge handling improvement"
This reverts commit c50fc832c1.
2023-08-01 17:12:05 +02:00
Adam Saghy c50fc832c1 FINERACT-1905: Same day repayment + charge handling improvement 2023-08-01 17:09:04 +02:00
Adam Saghy f640c790c3 FINERACT-1724: Fix update last cob date of loan update query 2023-08-01 14:07:50 +02:00
jmartaandAdam Saghy 987d414ac6 FINERACT-1724: fix sql injection pattern check 2023-08-01 14:05:31 +02:00
Adam Saghy 70b14e601e FINERACT-1724: Fix date handling of testRecurringDepositAccountWithClosureTypeTransferToSavings_WITH_HOLD_TAX 2023-08-01 12:59:24 +02:00
Peter BagrijandAdam Saghy a9b73aa9f6 FINERACT-1724
- Fixing broken kafka config
 - kafka image is pinned to 3.3.2
2023-08-01 10:10:13 +02:00
Peter BagrijandArnold Gálovics 7741340ef3 FINERACT-1724
- Supress error messages related to invalid maven pom model version in old eclipse artifacts.
2023-07-28 15:14:58 +02:00
Peter BagrijandAdam Saghy 3e193975ef FINERACT-1724
- no need to create a new loan product for each loan
 - unused variables removed.
2023-07-27 17:14:42 +02:00
woony-kimandAdam Saghy aaddb3141c FINERACT-1724: Refactoring SQLInjectionValidator 2023-07-27 15:22:19 +02:00
Janos HaberandAdam Saghy ea172db712 FINERACT-1954: Waive null pointer and due date fix
- [x] Fix Waive due date handle
- [x] Fix null pointer exception
- [x] Integration test
2023-07-27 13:37:43 +02:00
MkkorandAdam Saghy fe5d7cccee FINERACT-1943 Add SubmittedOnDate to Savings Transaction 2023-07-26 13:51:36 +02:00
Ruchi DhamankarandAdam Saghy dd8e0cf6e4 FINERACT-1724-Snooze-fee-due-date-payment-due-new-fee-failure 2023-07-26 11:01:37 +02:00
Adam Saghy 2e69071f35 FINERACT-1806: Fix sql syntax 2023-07-25 22:30:31 +02:00
Peter BagrijandArnold Gálovics 900d0c2827 FINERACT-1678
- ThreadPoolTaskExecutor task executor is added to COB workers which allows concurrent processing of chunks.
2023-07-25 18:52:23 +02:00
Adam SaghyandArnold Gálovics fc9525f966 FINERACT-1926: Asset externalization of non-active loans 2023-07-25 14:53:58 +02:00
Adam Saghy d11ca18cb2 FINERACT-1946: Change the loan transaction ordering 2023-07-25 14:46:08 +02:00
dependabot[bot]andArnold Gálovics b66a0a012f Bump actions/setup-java from 3.11.0 to 3.12.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3.11.0 to 3.12.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/5ffc13f4174014e2d4d4572b3d74c3fa61aeb2c2...cd89f46ac9d01407894225f350157564c9c7cee2)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-25 11:55:02 +02:00
Peter BagrijandArnold Gálovics c5aeae62d8 FINERACT-1824
- Documentation update for Kafka Support
 - Adding docker-compose-postgresql-kafka-msk.yml
 - application.properties ENV var fixed
2023-07-25 07:45:22 +02:00
abraham.menyhartandAdam Saghy 61915bbcc4 FINERACT-1724: Asset externalization of non-active loans 2023-07-24 20:29:08 +02:00
Arnold GalovicsandArnold Gálovics 7c80bf2ffc FINERACT-1724: Client search API fix when external ID is null 2023-07-24 15:55:43 +02:00
Arnold GalovicsandArnold Gálovics 81a41e7b7e FINERACT-1724: Compilation error fix 2023-07-24 10:41:50 +02:00
Peter KovacsandArnold Gálovics ddc3ce83f0 FINERACT-1724 LoansApiResourceSwagger fix 2023-07-24 10:41:50 +02:00
Peter BagrijandArnold Gálovics 32945c6573 FINERACT-1824
- Kafka support for remote batch jobs: cob
 - Kafka support for external events
2023-07-24 09:48:31 +02:00
Yash SanchetiandArnold Gálovics 866136ed31 FINERACT-1724 Migrate logging to SLF4J 2023-07-24 09:29:28 +02:00
Mend RenovateandArnold Gálovics 1aa881ee71 Update ghcr.io/navikt/mock-oauth2-server Docker tag to v1 2023-07-24 09:27:59 +02:00
dependabot[bot]andArnold Gálovics 9bc33043f3 Bump gradle/wrapper-validation-action
Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 064a97fb0b4cef86a65f09898c572382f3af10e0 to 56b90f209b02bf6d1deae490e9ef18b21a389cd4.
- [Release notes](https://github.com/gradle/wrapper-validation-action/releases)
- [Commits](https://github.com/gradle/wrapper-validation-action/compare/064a97fb0b4cef86a65f09898c572382f3af10e0...56b90f209b02bf6d1deae490e9ef18b21a389cd4)

---
updated-dependencies:
- dependency-name: gradle/wrapper-validation-action
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-24 08:51:33 +02:00
taskain7andArnold Gálovics 8fa1c4571a [FINERACT-1760] Client transaction by transaction external ID 2023-07-24 08:27:07 +02:00
MkkorandAdam Saghy a439952476 FINERACT-1911 Disable UnnecessaryDefaultInEnumSwitch 2023-07-21 13:20:05 +02:00
MkkorandAdam Saghy 9dc417efb1 FINERACT-1911 Assign datatable to Savings transaction 2023-07-21 13:20:05 +02:00
Peter BagrijandArnold Gálovics 572aa4d3bf FINERACT-1724
- pin localstack version
2023-07-21 11:01:19 +02:00
Jose Alberto HernandezandAdam Saghy 332da52730 FINERACT-1754: Fix Search API 2023-07-20 17:17:46 +02:00
taskain7andAdam Saghy 88635972eb [FINERACT-1953] Matured on date fix 2023-07-18 17:24:56 +02:00
Ruchi DhamankarandAdam Saghy d40c023a0d FINERACT-1724-Duplicate-repayment-schedule-on-second-disbursement 2023-07-17 21:36:44 +02:00
Adam Saghy 0a9657b774 FINERACT-1806: Stop recognizing income after charge-off 2023-07-17 21:35:44 +02:00
Peter KovacsandAdam Saghy 948af9ab2b FINERACT-1724 swagger fix 2023-07-17 11:25:07 +02:00
taskain7andAdam Saghy be935cd55b [FINERACT-1760] Loan product external id 2023-07-13 19:57:28 +02:00
Adam Saghy d65de7a8e9 FINERACT-1926: Add external id validation for buyback and sale 2023-07-11 17:08:04 +02:00
abraham.menyhartandAdam Saghy 1ef6b9d739 FINERACT-1724: Add index to m_loan_transaction_relation 2023-07-11 12:36:15 +02:00
taskain7andAdam Saghy 8dcb711e44 [FINERACT-1760] Client transactions APIs with external client ID 2023-07-11 11:30:51 +02:00
Peter BagrijandAdam Saghy 2afd9d35e7 FINERACT-1724
- Error handler is springified, exception mappers are retrieved as spring beans
 - backward compatibility is maintained
2023-07-10 16:56:12 +02:00
abraham.menyhartandAdam Saghy 749a77efac FINERACT-1724: Improve CoB performance by indices 2023-07-10 15:55:51 +02:00
Arnold GalovicsandArnold Gálovics 9c3393394e Changed mariadb healthcheck 2023-07-07 23:03:45 +02:00
Mend RenovateandArnold Gálovics b146b582aa Update mariadb Docker tag to v11 2023-07-07 23:03:45 +02:00
Arnold GalovicsandArnold Gálovics f412ee7529 Integration test fix 2023-07-07 23:03:32 +02:00
Mend RenovateandArnold Gálovics 191734461b Update non-major 2023-07-07 23:03:32 +02:00
Janos HaberandAdam Saghy 23486d7742 FINERACT-1926: COB Effective date fix
- [x] Add effectiveTo filter to decide which transaction is not cancelled or already closed
- [x] Integration test
- [x] Database change log for UQ key status + externalTransferId
2023-07-07 16:27:24 +02:00
taskain7 273787d249 [FINERACT-1678] LoanCOBFilterHelper call service instead of repository 2023-07-07 13:01:28 +02:00
Ruchi Dhamankarandtaskain7 c6008d60f8 FINERACT-1926-unnecessary-account-snapshot-event-denied-transfer 2023-07-06 22:29:57 +02:00
taskain7andAdam Saghy bffc61eb39 [FINERACT-1825] fixing integration tests failing on specific dates 2023-07-06 15:19:19 +02:00
Adam Saghy 43639bf0a3 FINERACT-1905: Distribution logic fix 2023-07-06 15:09:55 +02:00
Peter BagrijandArnold Gálovics b691ec4b1d FINERACT-1724 read timeout for fineract client is added. 2023-07-06 12:13:23 +02:00
dependabot[bot]andArnold Gálovics 09f4c049ab Bump actions/setup-node from 3.6.0 to 3.7.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c...e33196f7422957bea03ed53f6fbb155025ffc7b8)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-06 12:12:56 +02:00
abraham.menyhartandAdam Saghy 28747fecd1 FINERACT-1724: Approval limit calculation modification 2023-07-05 16:19:21 +02:00
Peter BagrijandAdam Saghy 1cb1372e68 FINERACT-1924
3 node configuration (1 manager, 2 workers) with activeMQ is added.
2023-07-05 16:19:11 +02:00
Arnold GalovicsandArnold Gálovics 232a954093 Fixes for dep upgrades 2023-07-05 15:54:41 +02:00
Arnold GalovicsandArnold Gálovics 7e61256a7b Excluded FastDoubleParser-NOTICE file from classpath check 2023-07-05 15:54:41 +02:00
Arnold GalovicsandArnold Gálovics eb6c5f90a3 Downgrade a few swagger deps and guava 2023-07-05 15:54:41 +02:00
Mend RenovateandArnold Gálovics a023a4e912 Update all non-major dependencies 2023-07-05 15:54:41 +02:00
Janos HaberandAdam Saghy 812a2825ee FINERACT-1926: Remove unnecessary cancel event
- [x] Remove events
2023-07-05 09:32:19 +02:00
Peter BagrijandArnold Gálovics 46cde14149 FINERACT-1724 - Code quality checks are optimized.
- the presense of license check is performed under the check gradle task which is implicitly executed when build task is called.
- errorProne plugin is enabled when build or check task is called.

As a result of the above execution time for unit tests from IDE is faster while the quality checks are still enforced.
2023-07-04 15:17:32 +02:00
Ruchi DhamankarandArnold Gálovics 9571a51025 FINERACT-1724-reversal-date-not-included-in-events 2023-07-03 14:49:40 +02:00
Peter BagrijandArnold Gálovics 479a52013d FINERACT-1678
- COB Partitioning tasks creates fully balanced id ranges where the number of the loans between the min max are matching with the defined pageSize.
2023-07-03 10:32:46 +02:00
dependabot[bot]andArnold Gálovics 1d8ee9acce Bump gradle/wrapper-validation-action
Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from ccb4328a959376b642e027874838f60f8e596de3 to 064a97fb0b4cef86a65f09898c572382f3af10e0.
- [Release notes](https://github.com/gradle/wrapper-validation-action/releases)
- [Commits](https://github.com/gradle/wrapper-validation-action/compare/ccb4328a959376b642e027874838f60f8e596de3...064a97fb0b4cef86a65f09898c572382f3af10e0)

---
updated-dependencies:
- dependency-name: gradle/wrapper-validation-action
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-03 08:37:13 +02:00
Janos HaberandAdam Saghy 4c7c3544d2 FINERACT-1724: Fineract Idempotency status null fix
- [x] Return 500 when the idempotency status is inconsistent in the database
- [x] Unit test for the mapper to avoid NullPointerException
2023-06-30 13:33:57 +02:00
Adam Saghy 69a2ba0109 FINERACT-1724: Upgrade sonarqube plugin 2023-06-29 19:39:03 +02:00
taskain7 a119296a0e [FINERACT-1926] transaction summary report fixes 2023-06-28 19:47:03 +02:00
taskain7 e03decb84f [FINERACT-1926] transaction summary report fixes 2023-06-28 13:21:41 +02:00
Janos HaberandArnold Gálovics a90506c7e0 FINERACT-1926: Fineract Asset Externalization - Cancel
- [x] Latest transfer id fetching fix
2023-06-27 16:02:42 +02:00
abraham.menyhartandArnold Gálovics 852f7f80c9 FINERACT-1724: Liquibase script : trial balance summary report with asset owner 2023-06-27 14:12:22 +02:00
abraham.menyhartandArnold Gálovics 573b4bb998 FINERACT-1724: Loan product creation - duplicate short name fix 2023-06-27 13:30:02 +02:00
Peter BagrijandArnold Gálovics 0109d24934 FINERACT-1724 overrides default statusListener with NopStatusListener so jansi related missing class exception will not be shown. (The exception is irrelevant because intellij and windows terminal can already handle ansi color codes) 2023-06-27 13:05:46 +02:00
Ruchi DhamankarandArnold Gálovics 227f5746e5 FINERACT-1806-undo-charge-off-reverse-external-id-support 2023-06-26 12:56:24 +02:00
Peter BagrijandArnold Gálovics e6e08814ec FINERACT-1724 restore default build log level. 2023-06-26 12:18:12 +02:00
Janos HaberandAdam Saghy 0079780e30 FINERACT-1926: Fineract Asset Externalization - Cancel
- [x] Cancel API
- [x] Event raised on cancel
- [x] Integration test for cancel
2023-06-23 14:09:29 +02:00
Adam Saghy 90c10a5ade FINERACT-1806: Reverse-replay logic for Charge-off transaction 2023-06-23 08:46:52 +02:00
Arnold GalovicsandAdam Saghy df39965483 FINERACT-1724: Fixed avro schema to use primitive long instead of Object for LoanOwnershipTransferDataV1 2023-06-22 21:26:54 +02:00
Ruchi DhamankarandAdam Saghy d704d3d027 FINERACT-1724-COB-hardlocked-loans-and-inline-cob-issue 2023-06-22 10:21:43 +02:00
Ruchi DhamankarandArnold Gálovics 03fd2ac7ce FINERACT-1942-api-graceful-shutdown 2023-06-21 14:44:00 +02:00
Arnold GalovicsandArnold Gálovics cf9d102e19 FINERACT-1724: Internal server error when transaction related errors happen in batch executions 2023-06-21 10:17:48 +02:00
Renovate BotandArnold Gálovics 3b4b5e9109 Update dependency jakarta.servlet:jakarta.servlet-api to v6 2023-06-19 16:24:50 +02:00
Adam SaghyandArnold Gálovics d5686ed45a FINERACT-1926: Fix request validation 2023-06-16 20:58:38 +02:00
Adam Saghy 58d4cb6a8d FINERACT-1926: Remove unnecessary changes field from response 2023-06-16 16:31:30 +02:00
Adam SaghyandArnold Gálovics c398c5affa FINERACT-1724: Do not include NULL fields in response 2023-06-16 09:12:45 +02:00
Arnold GalovicsandArnold Gálovics 4211b9e8ea FINERACT-1724: Avoiding stackoverflowerror with GH builds 2023-06-15 11:37:55 +02:00
Adam Saghy eacf28192a FINERACT-1926: Fix wrong type of transfer in cancellation event + fix NPE 2023-06-14 21:10:24 +02:00
taskain7andAdam Saghy 78d9a0201e [FINERACT-1941] change task executors to threadpool task executor 2023-06-14 15:06:29 +02:00
Ruchi DhamankarandArnold Gálovics 6f677a3dd1 FINERACT-1806-Post-ChargeOff-Scenarios-1 2023-06-14 10:30:21 +02:00
MkkorandArnold Gálovics 5d011077e7 FINERACT-1912 Refactored Implementation of Savings Account Transaction Search
FINERACT-1912 Refactored Implementation of Savings Account Transaction Search

FINERACT-1912 Refactored Implementation of Savings Account Transaction Search

FINERACT-1912 Savings Account Transaction Advanced Search Support

FINERACT-1912 Savings Account Transaction Advanced Search Support

Support Pagination, Sorting and Filtering By transaction Type, Transaction Date and Amount

Supported Filtering for Amount and Date,
GTE, LTE, GT, LT
Supported Multiple Transaction Types Filtering
2023-06-13 16:37:42 +02:00
Peter BagrijandArnold Gálovics 25d7a9228a FINERACT-1926: Fineract Asset Externalization new asset events
- [x] Add LoanOwnershipTransferBusinessEvent
- [x] Add LoanAccountSnapshotBusinessEvent
- [x] Move packages to the right packages
- [X] Implement LoanOwnershipTransferBusinessEvent serializer
- [x] Call cancel/buyback/sale event
- [x] Unit tests
2023-06-13 15:28:51 +02:00
Janos HaberandAdam Saghy d37c0e1de2 FINERACT-1926: Fineract Asset Externalization - event
- [x] Unit test for external asset propagation
2023-06-13 10:58:52 +02:00
Adam Saghy 7cb4b6957b FINERACT-1724: Add missing Params annotations 2023-06-12 15:01:10 +02:00
Adam Saghy db4a4b2b83 FINERACT-1926: External owner accounting - fix (error handling) 2023-06-12 13:56:41 +02:00
abraham.menyhartandAdam Saghy a770597dc0 FINERACT-1926: Fineract Asset Externalization events - fix for LoanTransactionData events 2023-06-12 12:10:21 +02:00
Adam Saghy 062675e76f FINERACT-1724: Remove auto retry (due to bug) 2023-06-12 12:09:44 +02:00
Adam SaghyandArnold Gálovics 582f36ad34 FINERACT-1926: External owner accounting 2023-06-12 11:24:31 +02:00
dependabot[bot]andArnold Gálovics 437b8e9cae Bump actions/checkout from 3.5.2 to 3.5.3
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/8e5e7e5ab8b370d6c329ec480221332ada57f0ab...c85c95e3d7251135ab7dc9ce3241c5835cc595a9)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 09:32:25 +02:00
abraham.menyhartandAdam Saghy 81e3e2200b FINERACT-1724: Accrual transactions - external id fix 2023-06-09 11:28:39 +02:00
Arnold GalovicsandArnold Gálovics 47aceb923d FINERACT-1724: Added retry to build & test github workflow steps 2023-06-09 10:08:22 +02:00
Arnold GalovicsandArnold Gálovics 971179ce6d FINERACT-1724: Ignore fineract-client dependencies for renovate upgrades since they are on specific versions for a reason 2023-06-09 10:08:22 +02:00
taskain7andAdam Saghy 244febbb2c [FINERACT-1937] refactor isCatchUpRunning SQL 2023-06-09 09:27:50 +02:00
taskain7andArnold Gálovics 22a3ca4fd8 [FINERACT-1724] currency data in LoanAccountDataV1 2023-06-09 08:22:04 +02:00
Arnold GalovicsandArnold Gálovics c1a8fe867b Switched generating fineract-client from YAML to JSON to avoid SnakeYAML random dependency issues 2023-06-08 14:42:18 +02:00
Arnold GalovicsandArnold Gálovics b5c85f1ac3 Added classpath exclusion on doubleparser package in jackson 2023-06-08 14:42:18 +02:00
Renovate BotandArnold Gálovics 0323f62edf Update all non-major dependencies 2023-06-08 14:42:18 +02:00
Peter BagrijandAdam Saghy 14a78412b7 FINERACT-1926 improve integration test readability 2023-06-08 07:51:21 +02:00
Adam Saghy 2e534d7ba5 FINERACT-1926: Fix sale error handling 2023-06-07 22:09:46 +02:00
Adam SaghyandArnold Gálovics af062d1ac5 FINERACT-1926: Fix buyback effective date to 2023-06-07 17:26:10 +02:00
Arnold Galovicsandtaskain7 20c9c688ba FINERACT-1724: OpenAPI generator SnakeYaml dependency conflict fix 2023-06-07 17:14:59 +02:00
Peter BagrijandArnold Gálovics 79c7138f3f FINERACT-1724 Disable fail fast for integration tests 2023-06-07 14:38:42 +02:00
Adam Saghy 3cec111964 FINERACT-1926: Lift loan status validation for buyback 2023-06-07 12:13:30 +02:00
Clay JohnsonandAleksandar Vidakovic 66b3618ea4 Publish Build Scans to https://ge.apache.org 2023-06-07 11:19:45 +02:00
Peter BagrijandAdam Saghy 6172b62456 FINERACT-1926 AssetOwnerTransferDetails added 2023-06-06 17:50:49 +02:00
Arnold GalovicsandArnold Gálovics ebd1ea2696 FINERACT-1724: EclipseLink 4.0.0 renovate restriction due to a bug 2023-06-06 16:28:02 +02:00
Arnold GalovicsandArnold Gálovics a8af5f60f7 FINERACT-1724: Removed unused instancemode-tests folder 2023-06-06 16:28:02 +02:00
Janos HaberandAdam Saghy 99470c0cf8 FINERACT-1926: Fineract Asset Externalization events
- [x] Change events
- [x] Create data enricher
- [x] Core changes
- [x] Remove AbstractBusinessEventSerializer
- [x] BusinessEventSerializer.toAvroDto added and change the event serializers
2023-06-06 15:20:42 +02:00
Arnold GalovicsandAdam Saghy e4754b299b FINERACT-1724: Removed restrictions from renovate.json and upgraded spotless plugin 2023-06-06 14:10:21 +02:00
abraham.menyhartandAdam Saghy 500e7720b7 FINERACT-1724: Datatables query API fix - invalid tablename 2023-06-06 14:09:29 +02:00
Arnold GalovicsandArnold Gálovics d87d483665 FINERACT-1724: Web security adjustments 2023-06-06 11:45:08 +02:00
Arnold GalovicsandArnold Gálovics c437c5a48b FINERACT-1724: Backward compatibility fix for MariaDB on sequence vs table incrementers + SQL grammar fix for Loan COB catchup 2023-06-06 11:45:08 +02:00
Arnold GalovicsandArnold Gálovics 76f6df746f FINERACT-1724: Swagger UI upgrade 2023-06-06 11:45:08 +02:00
Arnold GalovicsandArnold Gálovics 8176b6ec81 FINERACT-1724: Tomcat adjustments for the cargo test running 2023-06-06 11:45:08 +02:00
Arnold GalovicsandArnold Gálovics 7f2a81b828 FINERACT-1724: Spring Batch 5 upgrade liquibase fix 2023-06-06 11:45:08 +02:00
Arnold GalovicsandArnold Gálovics 119ac6d592 FINERACT-1724: Documentation fix not to refer spring.factories anymore 2023-06-06 11:45:08 +02:00
Arnold GalovicsandArnold Gálovics f8654a51bd FINERACT-1724: Spotbugs fix 2023-06-06 11:45:08 +02:00
Arnold GalovicsandArnold Gálovics 2b9928bc7e FINERACT-1724: Further fixes for the cucumber tests 2023-06-06 11:45:08 +02:00
Arnold GalovicsandArnold Gálovics e865d31dd9 FINERACT-1724: Excluding Spring autoconfiguration import file from license checking 2023-06-06 11:45:08 +02:00
Arnold GalovicsandArnold Gálovics 5a0407fb3e FINERACT-1724: Formatting & minor fixes 2023-06-06 11:45:08 +02:00
Arnold GalovicsandArnold Gálovics aa249cc16f FINERACT-1724: Further fixes 2023-06-06 11:45:08 +02:00
Arnold GalovicsandArnold Gálovics a7d5f834d5 FINERACT-1724: EclipseLink upgrade fixes + Spring Security chain fixes 2023-06-06 11:45:08 +02:00
Arnold GalovicsandArnold Gálovics abb5d4abb5 FINERACT-1724: Further upgrades 2023-06-06 11:45:08 +02:00
Arnold GalovicsandArnold Gálovics bc4b707646 FINERACT-1724: Jakarta namespace introduction + relevant upgrades + EclipseLink 4 upgrade along with Spring Boot 3 2023-06-06 11:45:08 +02:00
Arnold GalovicsandArnold Gálovics 84abf365c8 FINERACT-1724: Spring Boot upgrade to 3.x 2023-06-06 11:45:08 +02:00
taskain7 94a552bbde [FINERACT-1936] fixing SQL queries that was failing on Maria DB 2023-06-05 23:25:37 +02:00
Adam SaghyandArnold Gálovics 9698b6d5b3 FINERACT-1926: Asset externalisation logic enhancements and bugfixes 2023-06-05 11:13:38 +02:00
Jose Alberto HernandezandAdam Saghy b1af8a3f83 FINERACT-1724: Arrears configuration at loan creation is not considered correctly 2023-06-05 09:40:45 +02:00
taskain7andAdam Saghy dabe78d5dc [FINERACT-1926] Fix settlement date type in swagger response 2023-06-02 15:33:57 +02:00
taskain7andArnold Gálovics a7d539a531 [FINERACT-1926] Fix settlement date type in swagger 2023-06-02 10:45:15 +02:00
taskain7andArnold Gálovics 9fe7927d7e [FINERACT-1724] trigger arrears aging on LoanBalanceChangedBusinessEvent 2023-06-02 08:30:32 +02:00
taskain7andArnold Gálovics 60cb0cbe11 [FINERACT-1926] Fix Internal Server Error on non existing loan 2023-06-01 08:19:32 +02:00
taskain7andArnold Gálovics 6a68d3b134 [FINERACT-1926] Fix request swagger 2023-06-01 08:18:45 +02:00
Janos HaberandAdam Saghy f43e13a0ee FINERACT-1926: Fineract Asset Externalization - GET Pagination
- [x] Added Pagination to response
- [x] Added limit and offset to the request
2023-05-31 17:15:59 +02:00
taskain7andAdam Saghy d76e6aef3d [FINERACT-1926] Fix request body parameter names 2023-05-31 13:35:11 +02:00
abraham.menyhartandAdam Saghy 31f41558fc FINERACT-1724: Datatables query API fix - invalid query filter 2023-05-31 11:20:22 +02:00
Adam Saghy d639b20af1 FINERACT-1926: Asset transfer to external owner COB business step 2023-05-31 08:42:58 +02:00
Jose Alberto HernandezandAdam Saghy b4cdb58fbe FINERACT-1724: Negative numbers in delinquentDays field 2023-05-30 20:23:39 +02:00
taskain7andAdam Saghy edff4a410e [FINERACT-1724] Fix disabled integration tests 2023-05-30 20:19:58 +02:00
Ruchi DhamankarandAdam Saghy 7c300942d8 FINERACT-1678-loan-cob-drop-softlocking-use-lastclosedbusinessdate-tests 2023-05-30 10:00:42 +02:00
Ruchi DhamankarandAdam Saghy e9bc0fe8c2 FINERACT-1678-loan-cob-drop-softlocking-use-lastclosedbusinessdate 2023-05-26 12:48:44 +02:00
taskain7andAdam Saghy 005af94291 [FINERACT-1926] loan transfer validation error fix 2023-05-26 09:23:57 +02:00
Adam Saghy 2e3b96df19 FINERACT-1932: Add loan module (WIP) 2023-05-25 17:57:28 +02:00
taskain7andAdam Saghy 105b4ed154 [FINERACT-1926] POST API for asset externalization fixes 2023-05-25 14:12:53 +02:00
taskain7andAdam Saghy 045f0ec121 [FINERACT-1926] POST API for asset externalization 2023-05-24 11:26:54 +02:00
Arnold GalovicsandArnold Gálovics fd27401de4 FINERACT-1724: Final touches for Client V2 search API 2023-05-24 09:58:59 +02:00
Arnold GalovicsandArnold Gálovics 68c6053bd7 FINERACT-1724: Client search V2 API 2023-05-23 13:41:30 +02:00
Ruchi DhamankarandAdam Saghy c18fead7f3 FINERACT-1905-Charge-submitted-date-Accrual-entry-reverse-issue 2023-05-22 11:32:39 +02:00
Janos HaberandAdam Saghy f045752d7d FINERACT-1926: Fineract Asset Externalization models
- [x] JPA Model changes
- [x] External Asset Owner Platform services
- [x] External Asset Owner Swagger
- [x] Core changes
2023-05-19 12:41:21 +02:00
Adam Saghy f647d10a01 FINERACT-1724: Enhance global configuration request swagger 2023-05-19 12:08:42 +02:00
Michael Vorburger ⛑️andArnold Gálovics 5d3bd3a3d7 docs: Fix client.adoc link on fineract-client/README.md 2023-05-18 15:22:19 +02:00
Janos HaberandArnold Gálovics debc8e94a4 FINERACT-1926: Fineract Asset Externalization models
- [x] JPA model changes
2023-05-17 19:47:30 +02:00
Arnold GalovicsandArnold Gálovics 9fee79ecde FINERACT-1926: Minor fixes with module static weaving 2023-05-16 21:43:54 +02:00
Janos HaberandArnold Gálovics da1aa9e5a8 Fineract Asset Externalization models
- [x] Liquibase database model
- [x] JPA model
- [x] API endpoint without implementation
- [x] API endpoint requirements
  - [x] Json Serialization and Deserialization and dependencies
  - [x] New Authentication check interface to the core level
  - [x] CommandWrapperBuilder and dependencies
2023-05-16 21:43:54 +02:00
taskain7 6e69e66b86 [FINERACT-1906] Add disbursement charge to accrual transactions 2023-05-16 14:04:54 +02:00
Ruchi DhamankarandArnold Gálovics aaa94007ee FINERACT-1905-Charges-Accrual-entries-on-created-date 2023-05-16 11:53:32 +02:00
Arnold GalovicsandArnold Gálovics 216b39ce0c FINERACT-1724: Added default ordering by id for search queries 2023-05-15 20:54:49 +02:00
Janos HaberandArnold Gálovics 240039f979 - [x] Create fineract-core module - used to common cross module classes and interfaces
- [x] Create fineract-investor module for build
- [x] modify tenant liquibase loader to using module based liquibase processing
- [x] sample liquibase into the fineract-investor module
- [x] Move NewCommandSourceHandler and dependencies to the fineract-core
2023-05-15 16:02:59 +02:00
Arnold GalovicsandArnold Gálovics 037f7f264f FINERACT-1724: Preparation for versioned APIs 2023-05-15 13:19:06 +02:00
Michael Vorburger ⛑️andArnold Gálovics 190d995628 docs: Fix GitHub links on client.adoc 2023-05-15 08:18:47 +02:00
Arnold GalovicsandArnold Gálovics 5b6f334379 FINERACT-1724: Limiting query result for search API to prevent OOMs and support for loanId parameter for retrieving loan reschedule requests 2023-05-10 21:47:17 +02:00
Janos HaberandArnold Gálovics 0f1559cc7a - [x] Fix Batch API internal error 2023-05-10 10:58:07 +02:00
Janos HaberandArnold Gálovics ac1aeea12d - [x] Move from JobParameter to CustomJobParameter
- [x] Improve CustomJobParameterResolver to raise custom exception and work with StepExecution
- [x] Improve tests
2023-05-10 10:49:04 +02:00
Adam SaghyandArnold Gálovics 0458643d8f FINERACT-1724: Periodic accrual fix for charge on disbursement date 2023-05-10 07:51:39 +02:00
Adam SaghyandArnold Gálovics 70c93484f4 FINERACT-1678: Add retry limit to COB 2023-05-10 07:51:10 +02:00
Adam SaghyandArnold Gálovics b86a70397f FINERACT-1724: Enhance LoanCatchUpIntegrationTest 2023-05-10 07:50:22 +02:00
Ruchi DhamankarandAdam Saghy d15fc994e3 FINERACT-1724-Accrual-reversal-multiple-disbursement 2023-05-09 22:00:05 +02:00
Arnold GalovicsandAdam Saghy 7f5b87694b FINERACT-1724: Ability to override tenant datasource min/max configuration from env variables 2023-05-08 19:17:57 +02:00
Adam SaghyandArnold Gálovics f24c9f8084 FINERACT-1724: Enhance external event datetime precision 2023-05-08 12:54:30 +02:00
Adam Saghy 0e6f5eab9d Revert "FINERACT-1724: Fix entity reload logic of COB"
This reverts commit 5fe708a90f.
2023-05-03 19:52:03 +02:00
Adam Saghy cf94eb8d81 FINERACT-1925: New repayment schedule 2023-05-03 15:12:53 +02:00
Ruchi DhamankarandAdam Saghy c7e777c37c FINERACT-1706-Allow-Chargeback-on-payment-type-transactions 2023-05-03 13:41:44 +02:00
Janos HaberandAdam Saghy 5238e29449 FINERACT-1724 - BatchTransaction fix
- [x] Handle `enclosingTransaction=false` flag correctly.
2023-05-03 13:40:38 +02:00
Adam Saghy 629d2da7f9 FINERACT-1724: Fee's are not included in total balance amount, when we have multiple disbursements on first day 2023-05-03 10:27:25 +02:00
Ruchi DhamankarandArnold Gálovics a29f95414e FINERACT-1923-Add-db-indices-loan-table 2023-04-27 20:47:00 +02:00
logoutdhavalandGitHub eaad5fdf0c FINERACT-1920:Create Interoperation Loan Repayment API (#3119) 2023-04-27 15:14:32 +05:30
Ruchi DhamankarandArnold Gálovics 57a1cb2f8c FINERACT-1761-Repayment-due-event-configuration-at-product-level 2023-04-27 08:34:37 +02:00
Adam Saghy 5fe708a90f FINERACT-1724: Fix entity reload logic of COB 2023-04-26 20:38:49 +02:00
Jose Alberto HernandezandAdam Saghy 6f2b0198a2 FINERACT-1757: Uppercase letters in the datatable name is failing on postgres 2023-04-26 17:56:00 +02:00
Janos Haberandtaskain7 5f713be7ec FINERACT-1724 - Fraud set error when status is 100 or 200. 2023-04-26 14:12:12 +02:00
Janos Haberandtaskain7 88ab3dedbb FINERACT-1724 - Loan CatchUp fix
- [x] Update null loan cob date when hard lock
- [x] Update hard lock to soft lock
- [x] Ignore null loan cob date when catch up
2023-04-26 14:11:25 +02:00
David KariukiandAdam Saghy 0cd3ac1cb0 docs: Capitalize headings
Capitalize headings and add line breaks to improve on readability.
2023-04-24 16:20:15 +02:00
Arnold GalovicsandArnold Gálovics 636b33196b FINERACT-1724: More batch support for datatables APIs 2023-04-24 14:28:50 +02:00
Ruchi DhamankarandArnold Gálovics d2082fe2cb FINERACT-1724-Regular-loan-cob-job-having-catch-up-true-catchup-api 2023-04-24 14:15:19 +02:00
Janos HaberandAdam Saghy 1d86a8f0cb FINERACT-1724 - Remove Restriction from faurd mark 2023-04-22 23:26:45 +02:00
Adam SaghyandArnold Gálovics cefcb53424 FINERACT-1724: Add final accrual when loan is overpaid 2023-04-21 14:20:03 +02:00
Adam Saghy 0e3ad8f73b FINERACT-1724: Upgrade liquibase and set proper liquibase logging 2023-04-19 23:15:57 +02:00
Janos HaberandAdam Saghy 4166ce477a FINERACT-1921
- [x] - Rewrite error handling
2023-04-19 21:47:34 +02:00
Adam SaghyandArnold Gálovics 542971053e FINERACT-1724: Increase schema RO password length 2023-04-19 14:07:53 +02:00
taskain7andAdam Saghy 82231101c8 [FINERACT-1922] Skip business date job when business date is not enabled 2023-04-19 12:21:15 +02:00
Adam Saghy e4c26e7e5c FINERACT-1724: Downgrade liquibase due to invalid behaviour 2023-04-18 23:36:36 +02:00
Adam Saghy 4aa4e77d7a FINERACT-1724: Set prefetch message count to 1 for COB 2023-04-17 23:43:47 +02:00
Adam Saghy 748b775051 FINERACT-1724: Use services instead of repositories in COB 2023-04-17 17:50:44 +02:00
Arnold GalovicsandArnold Gálovics 234583c8e1 Modernizer configuration to disable forcing the Optional.orElseThrow construct 2023-04-17 10:56:45 +02:00
Renovate BotandArnold Gálovics 09632c0c41 chore(deps): update all non-major dependencies 2023-04-17 10:56:45 +02:00
Arnold GalovicsandArnold Gálovics f985e0101b Dependency fixes 2023-04-15 21:40:49 +02:00
Renovate BotandArnold Gálovics bbcfc5f3f3 chore(deps): update all non-major dependencies 2023-04-15 21:40:49 +02:00
Ruchi DhamankarandArnold Gálovics c18e506832 FINERACT-1913-Initializing-db-connection-pool-at-startup 2023-04-15 10:40:52 +02:00
Adam SaghyandArnold Gálovics d570e359ae FINERACT-1724: Fix error code for Batch API 2023-04-15 10:29:42 +02:00
Adam SaghyandArnold Gálovics 54ff12f824 FINERACT-1678: Fix applying soft locks on loans during COB 2023-04-15 08:10:33 +02:00
Arnold GalovicsandArnold Gálovics c62fb30c7a FINERACT-1724: Using externalizable retrieval service for Loan COB so custom modules can override the input for it 2023-04-14 13:32:53 +02:00
dependabot[bot]andArnold Gálovics 08ecacd52d chore(deps): bump actions/checkout from 3.5.1 to 3.5.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.1 to 3.5.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/83b7061638ee4956cf7545a6f7efe594e5ad0247...8e5e7e5ab8b370d6c329ec480221332ada57f0ab)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-14 11:07:03 +02:00
Arnold GalovicsandArnold Gálovics f643d3c2f9 Revert "FINERACT-1724-Regular-loan-cob-job-having-catch-up-true"
This reverts commit 63fa315f15.
2023-04-13 16:48:19 +02:00
Arnold GalovicsandArnold Gálovics 158d7c9726 FINERACT-1724: Loading the entire loan with relationships in case of loan cob 2023-04-13 15:27:09 +02:00
Adam SaghyandArnold Gálovics 573a0dd1f6 FINERACT-1724: Fix swagger of loan reschedule api 2023-04-13 13:31:58 +02:00
taskain7andAdam Saghy 6eba33758b [FINERACT-1678] Exclude loan IDs from execution context 2023-04-13 10:36:19 +02:00
dependabot[bot]andArnold Gálovics fbd0bb91c0 chore(deps): bump actions/checkout from 3.5.0 to 3.5.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.0 to 3.5.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/8f4b7f84864484a7bf31766abe9204da3cbe65b3...83b7061638ee4956cf7545a6f7efe594e5ad0247)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-13 09:33:09 +02:00
Adam Saghy fb6e78fa2b FINERACT-1724: Improve reliability of integration tests 2023-04-12 17:43:14 +02:00
taskain7andAdam Saghy ace0786024 [FINERACT-1678] Exclude loan IDs from execution context 2023-04-12 15:03:12 +02:00
Ruchi DhamankarandAdam Saghy 63fa315f15 FINERACT-1724-Regular-loan-cob-job-having-catch-up-true 2023-04-12 14:53:54 +02:00
Mohit SinhaandGitHub 3c7c6dfd1d FINERACT-1919: Fix monthly loan schedule due dates to maximize accord… (#3109)
* FINERACT-1919: Fix monthly loan schedule due dates to maximize according to seed date and number of days in the month
2023-04-12 15:56:22 +05:30
Jose Alberto HernandezandArnold Gálovics 3b6c652c31 FINERACT-1724: Applying delinquency range by COB job is not working properly 2023-04-11 09:07:43 +02:00
Mohit SinhaandGitHub d803228d07 Merge pull request #3111 from balancehero-neal/FINERACT-1780
FINERACT-1780: Introduce Lombok to workingdays module
2023-04-11 12:13:33 +05:30
neal.lee 1d6a95f7ef FINERACT-1780: Introduce Lombok to workingdays module 2023-04-11 09:02:55 +09:00
Adam Saghy 185551c572 FINERACT-1724: Fix integration test order 2023-04-07 07:31:23 +02:00
Adam Saghy 3999b761b6 FINERACT-1734: Loan installment rescheduled event 2023-04-06 22:14:45 +02:00
Adam Saghy 638ebf5bc4 FINERACT-1724: Fix in advance amount on repayment schedule 2023-04-06 15:49:00 +02:00
Ruchi DhamankarandAdam Saghy b555b35845 FINERACT-1724-Last-repayment-amount-date-closed-overpaid-loans 2023-04-05 22:58:20 +02:00
Arnold Galovicsandtaskain7 8a51abda78 FINERACT-1724: Added nullcheck for batch API for enhanced reliability 2023-04-05 16:44:44 +02:00
taskain7andAdam Saghy 3184b16372 [FINERACT-1888] Chargeback acoounting fix 2023-04-05 12:56:04 +02:00
Arnold GalovicsandArnold Gálovics df03ef9576 FINERACT-1724: Support for async sending of external events + tests for ExternalEvent 2023-04-04 11:01:01 +02:00
Arnold GalovicsandAdam Saghy 6bdd6b1ace FINERACT-1724: Fixed storing the aggregate root ID for external events 2023-04-03 18:13:45 +02:00
Adam Saghy 94105f26e6 FINERACT-1724: Improvements for datatables and reporting 2023-04-03 18:13:29 +02:00
Sinha, AbhinavandAdam Saghy 2778381288 Fix typos in README.md (FINERACT-1914) 2023-04-03 17:29:55 +02:00
Janos HaberandAdam Saghy 3789abdb29 FINERACT-1724 - Initial schema read only property support
- [x] New read only properties and environment variables
- [x] Run only when read only password, read only username and schema name is null
- [x] Update and encrypt the password
- [x] Doc properties update
2023-04-03 16:45:43 +02:00
Arnold GalovicsandArnold Gálovics 9e9dab196e FINERACT-1724: Sampling enhancements 2023-04-03 12:03:47 +02:00
Adam Saghy 6fda3d3fb3 FINERACT-1905: Fix for new repayment strategy 2023-03-31 19:47:38 +02:00
Adam Saghy e7268997bc FINERACT-1678: Improvements around locking 2023-03-31 12:17:04 +02:00
Jose Alberto HernandezandAdam Saghy 5a18f00e2b FINERACT-1724: Fix Delinquency and Chargeback Integration Test 2023-03-31 12:16:53 +02:00
Jose Alberto HernandezandAdam Saghy b96e2417ed FINERACT-1853: Fix accounting transaction summary report 2023-03-31 10:51:07 +02:00
Adam SaghyandArnold Gálovics c8d7f9397b FINERACT-1724: Improvements around maker-checker check 2023-03-31 09:14:40 +02:00
Arnold GalovicsandArnold Gálovics 883761bd80 FINERACT-1724: Sampling support for performance measurements 2023-03-30 21:43:00 +02:00
Renovate BotandArnold Gálovics 0db4610367 fix(deps): update dependency com.puppycrawl.tools:checkstyle to v10.9.3 2023-03-28 17:51:16 +02:00
Vic RomeroandArnold Gálovics fda35f22dd Add dependency management fix for publishing 2023-03-28 17:33:08 +02:00
dependabot[bot]andArnold Gálovics ff55cea103 chore(deps): bump actions/setup-java from 3.10.0 to 3.11.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3.10.0 to 3.11.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/3f07048e3d294f56e9b90ac5ea2c6f74e9ad0f98...5ffc13f4174014e2d4d4572b3d74c3fa61aeb2c2)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-28 17:23:34 +02:00
Arnold GalovicsandArnold Gálovics da8cd2ca9d FINERACT-1724: Abstracting out Loan ID set retrieval for Loan COB
catch-up and inline Loan COB
2023-03-28 16:55:51 +02:00
Arnold GalovicsandArnold Gálovics dbfedf5cfd FINERACT-1724: Optimizing the account locking for Loan COB 2023-03-28 14:45:04 +02:00
Arnold GalovicsandArnold Gálovics f0d2e9326d FINERACT-1724: Closing JMS sessions explicitly to avoid memory leaking for multi external event producer 2023-03-28 12:32:33 +02:00
Janos HaberandAdam Saghy ae8ad4b689 FINERACT-1724 - Transaction handling fix
- [x] Fix Fetch new transaction
2023-03-28 00:34:22 +02:00
Janos HaberandAdam Saghy 92838e5fff FINERACT-1724 - Transaction handling fix
[x] - Remove requires new transaction from NewCommandSourceHandler
[x] - Rewrite batch processing
[x] - Fix Idempotency transaction handling
[x] - Fix Batch enclosingTransaction handling
2023-03-27 20:18:29 +02:00
Arnold GalovicsandAdam Saghy eb91d44c90 FINERACT-1724: JSON logging support 2023-03-27 16:03:39 +02:00
Adam SaghyandArnold Gálovics 24bc7bb5fb FINERACT-1905: New repayment strategy 2023-03-27 14:12:34 +02:00
Renovate BotandArnold Gálovics da810378f3 chore(deps): update actions/stale action to v8 2023-03-27 11:49:28 +02:00
Ruchi DhamankarandAdam Saghy 94d4877eda FINERACT-1890-LoanAccrualTransaction-created-event 2023-03-27 10:19:20 +02:00
Adam SaghyandArnold Gálovics 1eab0fe1bd FINERACT-1724: Show reverted charge-off transactions 2023-03-27 08:57:57 +02:00
Jose Alberto HernandezandAdam Saghy b40e700cc6 FINERACT-1724: Loans API get loan details/delinquent data wrong 2023-03-24 18:15:39 +01:00
dependabot[bot]andArnold Gálovics 36c5d103d7 chore(deps): bump actions/checkout from 3.4.0 to 3.5.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/24cb9080177205b6e8c946b17badbe402adc938f...8f4b7f84864484a7bf31766abe9204da3cbe65b3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-24 13:23:30 +01:00
0c6e230189 FINERACT-1853: Fix accounting transaction summary report (#3069)
Co-authored-by: Jose Alberto Hernandez <alberto@MacBook-Pro.local>
2023-03-23 11:19:43 -06:00
Adam SaghyandArnold Gálovics d21110f7b2 FINERACT-1724: Put user notification feature behind feature toggle 2023-03-23 09:42:52 +01:00
dependabot[bot]andArnold Gálovics 3a176f4cbf chore(deps): bump actions/stale from 7.0.0 to 8.0.0
Bumps [actions/stale](https://github.com/actions/stale) from 7.0.0 to 8.0.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/6f05e4244c9a0b2ed3401882b05d701dd0a7289b...1160a2240286f5da8ec72b1c0816ce2481aabf84)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-23 09:38:06 +01:00
Ruchi DhamankarandAdam Saghy 6c12b76425 FINERACT-1724-Add-fee-paid-off-loan-with-refund 2023-03-22 11:16:38 +01:00
Jose Alberto HernandezandAdam Saghy e46ec2c984 FINERACT-1853: Fix general accounting reports reconciliation 2023-03-21 12:01:28 +01:00
Arnold GalovicsandArnold Gálovics 53018a14c8 FINERACT-1724: Refactored datatable index and unique constraint handling + creating an index on fk columns for multirow datatables 2023-03-21 11:14:35 +01:00
dependabot[bot]andArnold Gálovics 66c3abcefb chore(deps): bump actions/checkout from 3.3.0 to 3.4.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/ac593985615ec2ede58e132d2e21d2b1cbd6127c...24cb9080177205b6e8c946b17badbe402adc938f)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-19 22:05:07 +01:00
Janos HaberandArnold Gálovics 8418a23e4b FINERACT-1724 Read only tenant password encryption migration
- [x] ReadOnly tenant password encryption migration script
- [x] Documentation
- [x] Encryption password generator
2023-03-19 22:04:46 +01:00
Arnold GalovicsandArnold Gálovics e41726edfd FINERACT-1724: LoanProduct API swagger enhancements 2023-03-17 18:12:20 +01:00
taskain7andAdam Saghy bc882348df [FINERACT-1678] Set a limit to the request body list size on Inline Loan COB API 2023-03-17 10:43:58 +01:00
taskain7andArnold Gálovics 4e52bd3a02 [FINERACT-1678] all Loan COB steps are completed if there is no loan to be processed 2023-03-17 10:18:58 +01:00
Arnold GalovicsandArnold Gálovics 3b337c96ee FINERACT-1724: Making sure that the cache is empty upon starting a transaction for default cache configurations 2023-03-16 18:02:51 +01:00
taskain7andAdam Saghy 41651a6cbb [FINERACT-1724] revert removed loan repository query 2023-03-16 12:59:53 +01:00
Ruchi DhamankarandAleksandar Vidakovic 8f8fd4a172 FINERACT-1889-partial-chargeback-principal-allocation 2023-03-16 11:06:29 +01:00
Arnold GalovicsandAleksandar Vidakovic 48f7e31567 FINERACT-1724: Swagger fixes 2023-03-15 07:52:57 +01:00
taskain7andAleksandar Vidakovic 071cdae69b [FINERACT-1724] making partition for big parameter lists 2023-03-14 18:12:42 +01:00
Ruchi DhamankarandArnold Gálovics ca5c7d8747 FINERACT-1694-External-events-date-unit-change-to-milliseconds 2023-03-14 14:07:50 +01:00
Arnold GalovicsandArnold Gálovics e9e31a8190 FINERACT-1724: Making global configuration caching transaction bound 2023-03-14 13:42:51 +01:00
Janos HaberandAleksandar Vidakovic 651052c44b FINERACT-1724 - Batch step execute fix
- [x] Flush JPA data to JDBC access
2023-03-14 10:47:21 +01:00
Renovate BotandAleksandar Vidakovic 362602d3bb fix(deps): update dependency com.puppycrawl.tools:checkstyle to v10.8.1 2023-03-14 09:22:12 +01:00
meghnabajoriaandAleksandar Vidakovic fe50763549 Introduce Lombok to teller module (FINERACT-1779) 2023-03-13 18:08:27 +01:00
Adam SaghyandArnold Gálovics cd9439fbbf FINERACT-1724: Fix disbursement date validation message 2023-03-13 17:38:32 +01:00
Jose Alberto HernandezandAdam Saghy 4b5a795327 FINERACT-1801: Configuration for Arrears and Delinquency Display 2023-03-13 16:40:52 +01:00
Ruchi DhamankarandAdam Saghy 55e7f5e48c FINERACT-1596-Swagger-changes-Goodwill-Credit-Accounting 2023-03-13 13:17:23 +01:00
Adam Saghy 5ced30b864 FINERACT-1724: Create accrual entry for specific due date charge even on disbursement date 2023-03-13 11:19:45 +01:00
taskain7andAdam Saghy 9baf053d0b [FINERACT-1751] Add savings account transaction request to Batch API 2023-03-13 10:10:30 +01:00
Ruchi DhamankarandAdam Saghy ceb22456ca FINERACT-1596-Accounting-treatment-changes-goodwill-credit 2023-03-10 22:57:41 +01:00
Janos HaberandAdam Saghy 8d636fab2b FINERACT-1724 - Reschedule Loan fix
- [x] Reschedule loan COB API filter fix
- [x] Unit test for filter
2023-03-09 21:30:04 +01:00
Adam SaghyandArnold Gálovics 0928fb5136 FINERACT-1806: Charge-off validation 2023-03-09 20:05:26 +01:00
Arnold GalovicsandArnold Gálovics 83de7652e6 FINERACT-1724: Extra logging and measurements for Loan COB business steps + minor fixes here and there 2023-03-09 16:16:05 +01:00
Adam Saghy 36f907906d FINERACT-1678: Inline COB filter fix 2023-03-09 15:08:49 +01:00
Jose Alberto HernandezandAdam Saghy 18811e57b3 FINERACT-1724: Delinquency classification tests were failing 2023-03-08 15:43:18 +01:00
Janos HaberandArnold Gálovics 367550007c FINERACT-1724 - Optimistic locking fix
- [x] ReloadService for lead entities
- [x] ReloaderService iterating over ReloadService and try to find and reload the entity
- [x] Fix COBBusinessStepServiceImpl to reload the entity before business step
2023-03-08 14:27:48 +01:00
Renovate BotandArnold Gálovics baa71f6484 chore(deps): update gradle/wrapper-validation-action digest to ccb4328 2023-03-06 22:38:57 +01:00
taskain7 0031f35abf [FINERACT-1904] loanChargePaidByList fix 2023-03-03 08:49:10 +01:00
Janos HaberandArnold Gálovics 3297707817 FINERACT-1831 - Encrypted tenant passwords
- [x] Encrypt tenant passwords
- [x] Update integration tests
- [x] Check application database use encrypted passwords
- [x] One time migration for the existing password
2023-03-02 22:24:31 +01:00
Adam Saghy f1c89ac914 FINERACT-1678: Enable Scheduler API usage for batch manager only 2023-03-02 19:26:05 +01:00
Janos Haberandtaskain7 8090c614ed FINERACT-1724 Loan COB Api Filter external id fix
- [x] UUID az external id to test non-numeric id
- [x] Unit test
2023-03-02 18:58:57 +01:00
taskain7andAdam Saghy 29dd1e730c [FINERACT-1678] Exception fix if every loan fail during COB 2023-03-02 15:44:23 +01:00
Adam Saghy 3853111628 FINERACT-1724: Temporarily disable failing tests 2023-03-02 13:21:54 +01:00
Adam SaghyandArnold Gálovics ee72978a49 FINERACT-1840: Fee income is not realised if the loan got fully repaid 2023-03-01 14:08:29 +01:00
Adam SaghyandArnold Gálovics c1570049ed FINERACT-1724: Make tests more resilient 2023-03-01 14:07:38 +01:00
Arnold GalovicsandArnold Gálovics 71c11aba3c Fixing down the openapi generator version to 6.2.1 2023-02-27 13:19:01 +01:00
Renovate BotandArnold Gálovics 231f609789 chore(deps): update all non-major dependencies 2023-02-27 13:19:01 +01:00
Ruchi DhamankarandArnold Gálovics d131055c5a FINERACT-1759-Datatable-extension-Share-products 2023-02-27 13:18:48 +01:00
Arnold GalovicsandArnold Gálovics 6fd67b19dd FINERACT-1724: Swagger adjustments 2023-02-27 12:59:49 +01:00
Renovate BotandArnold Gálovics 54a5e5926d fix(deps): update dependency com.puppycrawl.tools:checkstyle to v10.8.0 2023-02-27 12:02:50 +01:00
Arnold GalovicsandArnold Gálovics 766d988e16 OpenAPI generator set to 6.2.1 2023-02-24 16:20:58 +01:00
Arnold GalovicsandArnold Gálovics 3860e0eda1 Added exclusion for some bouncycastle dependencies 2023-02-24 16:20:58 +01:00
Renovate BotandArnold Gálovics f2c98f9e95 chore(deps): update all non-major dependencies 2023-02-24 16:20:58 +01:00
Arnold GalovicsandArnold Gálovics 1220f2f4a9 FINERACT-1724: Added extra logging for traceability 2023-02-24 14:03:56 +01:00
Adam SaghyandArnold Gálovics 9b8a16a76b FINERACT-1724: Add recalculationCompoundingFrequencyInterval and recalculationCompoundingFrequencyOnDayType fields 2023-02-23 17:30:59 +01:00
dependabot[bot]andArnold Gálovics 6d6c4dd508 chore(deps): bump gradle/wrapper-validation-action
Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 6a97dac3d42665fcfd8ab72cb79024cd5dfd007d to 9c75b4d3d1e1ab9cf779938de55702cde22cd29f.
- [Release notes](https://github.com/gradle/wrapper-validation-action/releases)
- [Commits](https://github.com/gradle/wrapper-validation-action/compare/6a97dac3d42665fcfd8ab72cb79024cd5dfd007d...9c75b4d3d1e1ab9cf779938de55702cde22cd29f)

---
updated-dependencies:
- dependency-name: gradle/wrapper-validation-action
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-23 17:28:17 +01:00
Janos HaberandArnold Gálovics 764f3de203 FINERACT-1883 - New loan repayment parameter
- [x] New loan repayment parameter
- [x] Integration test
2023-02-23 15:11:16 +01:00
Ruchi DhamankarandAdam Saghy 670e0d55a3 FINERACT-1901-NPE-Reject-Loan-Api-Business-Event 2023-02-23 11:18:22 +01:00
Adam Saghy 77da04fa7d FINERACT-1806: Charge-off validation 2023-02-23 10:22:10 +01:00
Jose Alberto HernandezandAdam Saghy f000de5364 FINERACT-1707: Transaction Summary Report changes 2023-02-22 13:58:25 +01:00
taskain7andArnold Gálovics e10781f580 [FINERACT-1900] Swagger schema inconsistency for update role permissions 2023-02-21 16:09:40 +01:00
Aleksandar VidakovicandAleksandar Vidakovic d27d9f343d FINERACT-1894: Template request fix 2023-02-21 07:27:52 +01:00
Aleksandar VidakovicandAleksandar Vidakovic 34e8b046a2 FINERACT-1892: Paging fix 2023-02-21 07:25:45 +01:00
Adam Saghy 8135846093 FINERACT-1724: Add recalculationRestFrequencyInterval field to swagger 2023-02-20 12:57:30 +01:00
Ruchi DhamankarandArnold Gálovics 6cf37b7749 FINERACT-1678-Restrict-COB-catchup-api-for-batch-managers 2023-02-20 11:39:01 +01:00
Janos HaberandArnold Gálovics 89deb6d3b8 FINERACT-1891 - Overdue calculation fix
- [x] Arrears event not called fix
- [x] Integration test
2023-02-20 10:15:18 +01:00
Renovate BotandArnold Gálovics 5a1c3babcc chore(deps): update plugin org.sonarqube to v4 2023-02-20 10:10:03 +01:00
dependabot[bot]andArnold Gálovics d3feb8a6bc chore(deps): bump gradle/wrapper-validation-action
Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from dabb1b52d35733fde278c288e4781d4336d4c29c to 6a97dac3d42665fcfd8ab72cb79024cd5dfd007d.
- [Release notes](https://github.com/gradle/wrapper-validation-action/releases)
- [Commits](https://github.com/gradle/wrapper-validation-action/compare/dabb1b52d35733fde278c288e4781d4336d4c29c...6a97dac3d42665fcfd8ab72cb79024cd5dfd007d)

---
updated-dependencies:
- dependency-name: gradle/wrapper-validation-action
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-20 10:09:31 +01:00
Arnold GalovicsandArnold Gálovics 6c86e15eb7 FINERACT-1724: Ability to run Fineract in Liquibase only mode for scaled environments 2023-02-17 16:31:16 +01:00
Arnold Galovicsandtaskain7 f927dd4ff9 FINERACT-1724: Added Add periodic accrual as a Loan COB business step 2023-02-17 14:58:40 +01:00
taskain7andArnold Gálovics 3744ad54ee [FINERACT-1884] write API calls on loan makes Inline COB and catches up the loan to the current COB business date 2023-02-17 13:09:26 +01:00
Ruchi DhamankarandAdam Saghy 187889539f FINERACT-1806-Fix-Charge-off-transaction-id-null-for-events 2023-02-15 15:20:35 +01:00
Arnold GalovicsandArnold Gálovics 0338479212 FINERACT-1724: Added delinquentDate to Delinquency Range Changed events 2023-02-14 17:38:13 +01:00
Ruchi DhamankarandArnold Gálovics 201295814b FINERACT-1806-Swagger-Fix-Accounting-treatments-for-Charge-off-loan-accounts 2023-02-14 14:34:34 +01:00
Ruchi DhamankarandAdam Saghy dad0c70c80 FINERACT-1888-Full-Chargeback-For-Overpaid-Loan 2023-02-14 10:03:01 +01:00
Janos HaberandAdam Saghy 0d7c93177a FINERACT-1885 - Fix Actual Maturity when Loan reopen
- [x] Fix actual maturity date
- [x] Added to actual maturity date to the timeline too
- [x] Integration test
2023-02-13 23:43:11 +01:00
Adam Saghy 521aec47ea FINERACT-1724: Fix reverse-replayed transactions order 2023-02-13 14:09:21 +01:00
Ruchi DhamankarandAdam Saghy 4a78901b7c FINERACT-1806-Accounting-treatments-for-Charge-off-loan-accounts 2023-02-13 10:47:45 +01:00
dependabot[bot]andArnold Gálovics 0df3aa82cf chore(deps): bump actions/setup-java from 3.9.0 to 3.10.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3.9.0 to 3.10.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/1df8dbefe2a8cbc99770194893dd902763bee34b...3f07048e3d294f56e9b90ac5ea2c6f74e9ad0f98)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 09:04:11 +01:00
Renovate BotandArnold Gálovics 992212a62f chore(deps): update gradle/wrapper-validation-action digest to dabb1b5 2023-02-13 09:03:31 +01:00
taskain7andArnold Gálovics 84649193fb [FINERACT-1884] fix last loan transaction 2023-02-10 12:13:47 +01:00
Adam Saghy 8bd96f55e0 FINERACT-1724: Fix journal entry order 2023-02-09 12:10:33 +01:00
taskain7 70dd1582bc [FINERACT-1678] fix get odlest cob closed loan query 2023-02-09 10:09:23 +01:00
Arnold GalovicsandArnold Gálovics 0e96b71f0e FINERACT-1724: Fixed Generate Loss Loan provisioning job + enhanced the stuck job listener to be smarter 2023-02-08 20:21:23 +01:00
Adam Saghy 8c12fbed37 FINERACT-1724: Fix journal entry swagger 2023-02-08 16:45:53 +01:00
taskain7andArnold Gálovics f5687750ff [FINERACT-1678] COB business step order fix 2023-02-08 09:21:50 +01:00
Janos HaberandArnold Gálovics f8eacbba88 FINERACT-1724 Loan COB Api Filter fix
- [x] Loan COB Api Filter fix for urls
- [x] Unit test
2023-02-07 20:25:45 +01:00
Adam Saghy 51203b173f FINERACT-1694: Fix missing payment details data for events 2023-02-07 18:07:34 +01:00
Adam Saghy 3f2feceea1 FINERACT-1839: Minor fix for Chargeback transaction relation reprocessing 2023-02-07 16:43:03 +01:00
Adam Saghy e456aa6c65 FINERACT-1840: Minor fix to avoid business logic collision 2023-02-07 14:41:21 +01:00
Arnold GalovicsandArnold Gálovics 395b7057cf FINERACT-1724: Batch worker JMS message acknowledgement support 2023-02-07 11:38:41 +01:00
Janos HaberandAdam Saghy 3d885495e2 FINERACT-1839 Accounting for CBR Reversal
- [x] Accrual and Cash Processor support
- [x] Integration test
- [x] Sonarlint code smell fix
2023-02-07 10:21:50 +01:00
taskain7andArnold Gálovics f8162a90eb [FINERACT-1880] Fix for parameter value field type mismatch in JobParameter 2023-02-06 21:48:08 +01:00
taskain7andArnold Gálovics abcaa52ef7 [FINERACT-1678] Integration test for Inline COB on write API calls when the loan account is soft locked 2023-02-06 20:22:34 +01:00
Janos HaberandArnold Gálovics d8fd8088b0 FINERACT-1707 - S3 export and dependent service
- [x] S3 export function
- [x] list all available export type services
- [x] refactor export service
- [x] unit test for export name generator
- [x] s3 integration test
- [x] localstack integration for testing
2023-02-06 19:53:00 +01:00
Adam SaghyandArnold Gálovics e08675ed54 FINERACT-1694: Add submittedOnDate and externalLoanId to LoanChargeData event 2023-02-06 10:20:11 +01:00
Renovate BotandArnold Gálovics 3f800ab3ad fix(deps): update dependency com.puppycrawl.tools:checkstyle to v10.7.0 2023-02-06 10:19:13 +01:00
Adam SaghyandArnold Gálovics 0a2db35f8d FINERACT-1839: Reversal on the loan account after CBR / Chargeback 2023-02-03 13:26:13 +01:00
Arnold GalovicsandArnold Gálovics d7acfc1e5d Renovate adjustments 2023-02-03 12:38:20 +01:00
Ruchi DhamankarandArnold Gálovics 38b46f4125 FINERACT-1855-Arrears-aging-job-as-business-step 2023-02-03 12:32:54 +01:00
Jose Alberto HernandezandAdam Saghy 95ec9eaa37 FINERACT-1840: Fee income is not realised if the loan got fully repaid 2023-02-03 11:29:11 +01:00
Arnold GalovicsandArnold Gálovics 3a2f25980f FINERACT-1724: Swagger fixes 2023-02-02 16:47:13 +01:00
Adam Saghy 073ad2a431 FINERACT-1865: Fix transaction persistence issues during reverse-replay 2023-01-31 17:26:33 +01:00
Jose Alberto HernandezandAdam Saghy 226a4321fb FINERACT-1854: Undo last disbursal function deletes all disbursals on the last date 2023-01-31 16:43:03 +01:00
Adam Saghy 25622aa6a7 FINERACT-1724: Fix grammar in error message 2023-01-31 16:19:46 +01:00
Adam SaghyandArnold Gálovics 06f5d3cbdd FINERACT-1724: Disable failing test 2023-01-31 13:49:27 +01:00
taskain7andArnold Gálovics 5a19995e35 [FINERACT-1678] Internal API for placing lock on loan account 2023-01-30 17:37:38 +01:00
Adam SaghyandArnold Gálovics c1def37088 FINERACT-1724: Test enhancement 2023-01-30 17:33:10 +01:00
Arnold GalovicsandArnold Gálovics 18126f2a78 FINERACT-1724: Swagger fixes for Loan application 2023-01-30 13:57:30 +01:00
Renovate BotandArnold Gálovics e60044c124 fix(deps): update dependency mysql:mysql-connector-java to v8.0.32 2023-01-30 07:45:52 +01:00
Renovate BotandArnold Gálovics 5919669256 chore(deps): update all non-major dependencies 2023-01-30 07:45:41 +01:00
dependabot[bot]andArnold Gálovics 9d8421e48e chore(deps): bump gradle/wrapper-validation-action
Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 9aa31f26bc8e536d1faf4b332bb8365350743a18 to 6c561573985cd8bd4d64efcfe270d51682d210e2.
- [Release notes](https://github.com/gradle/wrapper-validation-action/releases)
- [Commits](https://github.com/gradle/wrapper-validation-action/compare/9aa31f26bc8e536d1faf4b332bb8365350743a18...6c561573985cd8bd4d64efcfe270d51682d210e2)

---
updated-dependencies:
- dependency-name: gradle/wrapper-validation-action
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-27 14:00:53 +01:00
Adam Saghy 2cdf33881d FINERACT-1689: Fix job mismatched logic 2023-01-27 09:52:41 +01:00
Janos HaberandArnold Gálovics 1808e921ba Revert "FINERACT-1724 - Replayed bulk transaction fix [x] - Remove bulk transaction from ReplayedTransactionBusinessEventService [x] - Create Aspect and custom annotation for CommandHandler and Tasklet bulk events [x] - Add @BulkEventSupport annotation where ReplayedTransactionBusinessEventService was used [x] - Test class for Aspect call failure handling"
This reverts commit 1b2c09ea
2023-01-25 16:54:12 +01:00
Arnold GalovicsandArnold Gálovics 507556f202 FINERACT-1724: Swagger fixes for LoansApiResource 2023-01-25 15:37:15 +01:00
Arnold Gálovics a85845ba52 Revert "FINERACT-1840: Fee income is not realised if the loan got fully repaid (#2902)"
This reverts commit f3d7c042a4.
2023-01-25 13:48:42 +01:00
Arnold Gálovics 5872e14086 Revert "Fix to use only loan transaction type 2 in getLastRepaymentTransaction"
This reverts commit e1e3ba2c10.
2023-01-25 13:37:54 +01:00
Adam SaghyandArnold Gálovics b5b33b1b95 FINERACT-1678: FineractContext had wrong dates when a cron job got triggered (test) 2023-01-25 12:26:33 +01:00
Adam Saghy 1733eacf3a FINERACT-1865: Decrease optimistic lock exception probability 2023-01-25 12:22:27 +01:00
Arnold GalovicsandArnold Gálovics cd0cec0229 FINERACT-1724: Fixed unncessary fineract-provider publication since it
fails the overall publication with the following error:
Invalid publication 'mavenJava': POM file is invalid. Check any
modifications you have made to the POM file.
2023-01-25 10:49:32 +01:00
Adam Saghy 784ae1aabe FINERACT-1678: FineractContext had wrong dates when a cron job got triggered 2023-01-24 15:39:34 +01:00
Jose Alberto Hernandezandtaskain7 e1e3ba2c10 Fix to use only loan transaction type 2 in getLastRepaymentTransaction 2023-01-24 14:01:06 +01:00
Renovate BotandArnold Gálovics 36d916e8a7 Update non-major 2023-01-23 12:41:00 +01:00
Renovate BotandArnold Gálovics 9291810eea Update all non-major dependencies 2023-01-23 11:43:33 +01:00
Renovate BotandArnold Gálovics 1d45d37c66 Update gradle/wrapper-validation-action digest to 9aa31f2 2023-01-23 10:31:31 +01:00
d0ec63d150 Update dashboard table reports for postgresql (#2907)
Co-authored-by: Jose Alberto Hernandez <alberto@MacBook-Pro.local>
2023-01-22 16:42:01 -06:00
f3d7c042a4 FINERACT-1840: Fee income is not realised if the loan got fully repaid (#2902)
Co-authored-by: Jose Alberto Hernandez <alberto@MacBook-Pro.local>
2023-01-21 23:25:28 -06:00
4479196c3e Update dashboard table reports (#2905)
Co-authored-by: Jose Alberto Hernandez <alberto@MacBook-Pro.local>
2023-01-21 23:25:13 -06:00
679d297ad5 Fix to update the client externalId (#2906)
Co-authored-by: Jose Alberto Hernandez <alberto@MacBook-Pro.local>
2023-01-21 23:24:35 -06:00
Arnold GalovicsandArnold Gálovics 5a89c19d0a FINERACT-1724: Added JMS connection pooling to the external event producer 2023-01-20 15:34:45 +01:00
taskain7andArnold Gálovics 760102e3bb [FINERACT-1678] Inline Loan COB for Batch API 2023-01-20 15:11:46 +01:00
taskain7andArnold Gálovics ef153c2b69 [FINERACT-1859] Avro schema for LoanAccountsStayedLockedBusinessEvent 2023-01-20 14:47:22 +01:00
Janos HaberandArnold Gálovics e82c0cac52 FINERACT-1707 - Export refactor
[x] Refactor Datatable export
[x] Fix CSV exceptions
2023-01-19 15:45:48 +01:00
Janos HaberandArnold Gálovics 1b2c09eae5 FINERACT-1724 - Replayed bulk transaction fix
[x] - Remove bulk transaction from ReplayedTransactionBusinessEventService
[x] - Create Aspect and custom annotation for CommandHandler and Tasklet bulk events
[x] - Add @BulkEventSupport annotation where ReplayedTransactionBusinessEventService was used
[x] - Test class for Aspect call failure handling
2023-01-19 14:37:09 +01:00
Jose Alberto HernandezandAdam Saghy 6d3cac8c02 FINERACT-1847: Removing Edit function from Goodwill Credit or Payout Refund or Merchant Issued Refund transactions on API level 2023-01-19 14:06:23 +01:00
Arnold GalovicsandArnold Gálovics 66e4ac6194 FINERACT-1724: Removed accidental closing of JMS connection upon startup 2023-01-19 13:14:53 +01:00
Arnold GalovicsandArnold Gálovics 7d28646c7d FINERACT-1724: Implemented support for multiple parallel JMS producers for external events 2023-01-19 10:34:11 +01:00
Ruchi DhamankarandArnold Gálovics 54aae1c0a3 FINERACT-1844-Loan-Chargeback-Transaction-event-data-fix 2023-01-18 17:00:59 +01:00
taskain7andArnold Gálovics 220d9fe1e4 [FINERACT-1678] Loan COB Catch Up 2023-01-18 16:09:26 +01:00
Jose Alberto HernandezandArnold Gálovics 21013749f4 FINERACT-1853: General accounting summary table reports 2023-01-18 16:08:24 +01:00
Janos HaberandArnold Gálovics 1a0d81dbb0 FINERACT-1707 - S3 upgrade
[x] Upgrade S3 dependencies and libraries without code modifications
2023-01-18 15:56:42 +01:00
taskain7andArnold Gálovics 1138b969e5 [FINERACT-1863] Swagger schema fix for PutExternalEventConfigurationsRequest() and PutGlobalConfigurationsRequest() 2023-01-18 12:58:43 +01:00
Adam SaghyandArnold Gálovics f574ea7659 FINERACT-1724: Fix loan status change bug at the event of transaction replay 2023-01-17 18:48:18 +01:00
Adam SaghyandArnold Gálovics 105071ad9b FINERACT-1724: Add Charge-off transaction into r_enum_value table 2023-01-17 18:48:05 +01:00
Adam SaghyandArnold Gálovics b24cdb4a65 FINERACT-1806: Trigger event when charge-off happens 2023-01-17 15:27:21 +01:00
Ruchi DhamankarandArnold Gálovics e4106bd11d FINERACT-1694-External-event-producer-batch-size-configuration 2023-01-17 13:34:04 +01:00
Renovate BotandArnold Gálovics 6626343858 chore(deps): update all non-major dependencies 2023-01-17 13:33:45 +01:00
Adam SaghyandArnold Gálovics 1b1bbb0db4 FINERACT-1724: Fix id type of LoanAccountDataV1 2023-01-17 12:30:48 +01:00
taskain7andArnold Gálovics 20d96d9542 [FINERACT-1852] Swagger schema inconsistency for Business Step Config APIs 2023-01-17 11:55:28 +01:00
taskain7andArnold Gálovics 4a250b7a56 [FINERACT-1859] Missing configuration for LoanAccountsStayedLockedBusinessEvent 2023-01-17 09:41:51 +01:00
Jose Alberto HernandezandAdam Saghy 09a91bba01 FINERACT-1856: Fix to update datatable entry is failing after column added lately 2023-01-17 09:15:45 +01:00
Renovate BotandArnold Gálovics 894ff15aec chore(deps): update dependency org.mockito:mockito-bom to v5 2023-01-16 15:12:13 +01:00
Víctor RomeroandGitHub adb7409323 FINERACT-1848 Add support for plugins (#2872) 2023-01-15 20:23:02 -06:00
Ruchi DhamankarandArnold Gálovics 52129b03f3 FINERACT-1734-Loan-Repayment-Due-Overdue-Separate-Business-Events 2023-01-12 12:01:03 +01:00
Arnold GalovicsandArnold Gálovics 49abe22b29 FINERACT-1724: Added ExternalEventConfigurationApi to FineractClient 2023-01-11 21:25:03 +01:00
Wilfred KigenyiandArnold Gálovics e23eeafeaa FINERACT-1851 2023-01-11 12:13:48 +01:00
Ruchi DhamankarandArnold Gálovics 7683e638db FINERACT-1818-Credit-Refund-Payout-Not-Getting-Created-Test 2023-01-11 12:13:29 +01:00
Ruchi DhamankarandArnold Gálovics 24ff5e8691 FINERACT-1734-LoanBalanceChanged-Business-Event-Chargeback 2023-01-11 12:12:47 +01:00
Janos HaberandArnold Gálovics dde36f391c FINERACT-1734 - Loan Account Delinquency Changed event definition
[x] Fix Charge data because not fetched the content
2023-01-11 12:00:57 +01:00
Renovate BotandArnold Gálovics 018aca3ba4 fix(deps): update non-major 2023-01-10 14:12:48 +01:00
Ruchi Dhamankarandtaskain7 145adaa9fe FINERACT-1818-Credit-Refund-Payout-Not-Getting-Created 2023-01-10 05:11:56 -08:00
Arnold GalovicsandArnold Gálovics 61ca7bb0e0 FINERACT-1724: Added the possibility to use username and password for JMS for remote jobs + the ability to disable remote jobs completely for non-batch instances 2023-01-10 12:43:55 +01:00
taskain7 8e597e46f7 [FINERACT-1842] Wrong entityId is returned upon disbursing a loan 2023-01-10 00:56:50 -08:00
Jose Alberto HernandezandArnold Gálovics dafd4c3436 FINERACT-1785: Specified due date charges/fees cannot be applied on disbursement date 2023-01-09 23:39:56 +01:00
Renovate BotandArnold Gálovics ab51b2a4cc chore(deps): update all non-major dependencies 2023-01-09 23:38:50 +01:00
dependabot[bot]andArnold Gálovics a73ce8c562 chore(deps): bump actions/upload-artifact from 3.1.1 to 3.1.2
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/83fd05a356d7e2593de66fc9913b3002723633cb...0b7f8abb1508181956e8e162db84b466c27e18ce)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-09 19:04:30 +01:00
34680f664b FINERACT-1846: Translate Flyway migrations to Liquibase for version 1… (#2847)
* FINERACT-1846: Translate Flyway migrations to Liquibase for version 1.4 to 1.6

* FINERACT-1846: Translate Flyway migrations to Liquibase for version 1.4 to 1.6

Co-authored-by: Jose Alberto Hernandez <alberto@MacBook-Pro.local>
2023-01-06 14:20:15 -06:00
a25acf0abd Fix to use notes in Savings Accounts (#2857)
Co-authored-by: Jose Alberto Hernandez <alberto@MacBook-Pro.local>
2023-01-06 14:17:35 -06:00
Arnold GalovicsandArnold Gálovics 0e391edf47 FINERACT-1724: Extended the event framework sinks to be ActiveMQ topics as well in addition to ActiveMQ queues 2023-01-06 16:17:12 +01:00
Arnold Galovicsandtaskain7 24eb9242a9 FINERACT-1724: Swagger enhancements 2023-01-06 05:27:20 -08:00
Adam SaghyandArnold Gálovics c7504680b7 FINERACT-1806: Charge-off API 2023-01-06 13:42:54 +01:00
dependabot[bot]andArnold Gálovics bd052acab0 chore(deps): bump actions/setup-node from 3.5.1 to 3.6.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.5.1 to 3.6.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/8c91899e586c5b171469028077307d293428b516...64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-06 10:49:06 +01:00
dependabot[bot]andArnold Gálovics 941093df95 chore(deps): bump actions/checkout from 3.2.0 to 3.3.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/755da8c3cf115ac066823e79a1e1788f8940201b...ac593985615ec2ede58e132d2e21d2b1cbd6127c)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-06 10:48:59 +01:00
Ruchi Dhamankarandtaskain7 4269e3e8f1 FINERACT-1678-Config-Bulk-Event-Loan-COB 2023-01-05 06:14:24 -08:00
Renovate BotandArnold Gálovics a62d0578d5 chore(deps): update all non-major dependencies 2023-01-02 11:58:52 +01:00
Ruchi DhamankarandArnold Gálovics 64fdc39264 FINERACT-1818-LoanAccount-Avro-data-addition-Charges-Delinquent-data 2022-12-30 17:34:40 +01:00
Jose Alberto HernandezandArnold Gálovics db480f4213 FINERACT-1841 Fix Duplicated journal entries when a chargeback happens 2022-12-30 09:05:59 +01:00
Arnold GalovicsandArnold Gálovics 77ee43acb8 Fixed purge external events job 2022-12-29 12:38:16 +01:00
Arnold GalovicsandArnold Gálovics 7a9e696ac8 Removed vavr related code 2022-12-29 12:38:16 +01:00
Renovate BotandArnold Gálovics 797ba293c0 chore(deps): update dependency io.github.resilience4j:resilience4j-spring-boot2 to v2 2022-12-29 12:38:16 +01:00
Jose Alberto HernandezandArnold Gálovics fd3ad81f81 FINERACT-1837: DelinquencyBucketsIntegrationTest performance 2022-12-28 19:13:15 +01:00
Arnold GalovicsandArnold Gálovics 33610f52e3 Added GRANT ALL to public schema for GH Actions build 2022-12-28 17:13:46 +01:00
Renovate BotandArnold Gálovics 0b9c591bf0 chore(deps): update postgres docker tag to v15 2022-12-28 17:13:46 +01:00
Ruchi DhamankarandArnold Gálovics c260b045b8 FINERACT-1818-Additions-to-LoanAccount-Avro-data 2022-12-28 16:14:06 +01:00
Arnold GalovicsandArnold Gálovics fb1dbb078f Downgraded Tomcat to 9.0.69 2022-12-28 16:13:55 +01:00
Renovate BotandArnold Gálovics 91feba92d8 fix(deps): update non-major 2022-12-28 16:13:55 +01:00
Renovate BotandArnold Gálovics ad20e88792 chore(deps): update actions/stale action to v7 2022-12-27 15:50:39 +01:00
Renovate BotandArnold Gálovics 6510544478 chore(deps): update plugin org.barfuin.gradle.taskinfo to v2 2022-12-27 10:44:22 +01:00
Renovate BotandArnold Gálovics f568762f70 chore(deps): update actions/stale digest to 5ebf00e 2022-12-27 10:43:53 +01:00
Renovate BotandArnold Gálovics 67ad1546ca chore(deps): update all non-major dependencies 2022-12-27 10:43:47 +01:00
Ruchi DhamankarandArnold Gálovics 03e17c2d23 FINERACT-1734-Charge-Paid-By-List-Loan-Transaction-Events 2022-12-27 10:43:16 +01:00
Ruchi DhamankarandArnold Gálovics d3dcc760e2 FINERACT-1734-Create-Custom-Business-Event 2022-12-23 12:16:33 +01:00
Ruchi DhamankarandArnold Gálovics 0f41eb2c42 FINERACT-1734-LoanRepaymentDue-Event-Enhancements 2022-12-22 12:56:16 +01:00
Arnold GalovicsandArnold Gálovics f49a0b8e95 Downgraded tomcat to 9.0.69 for tests 2022-12-22 12:56:05 +01:00
Renovate BotandArnold Gálovics 90e829ae76 fix(deps): update non-major 2022-12-22 12:56:05 +01:00
Arnold GalovicsandArnold Gálovics 62cefcdc8b Disabling automatic Spring 6 upgrade for renovate 2022-12-21 19:46:45 +01:00
Arnold GalovicsandArnold Gálovics 77ee567c76 Explicit version numbers for slf4j packages in renovate.json to ensure no automatic upgrades. Note: SLF4J and Logback cannot be upgraded until Spring 6 is integrated 2022-12-21 19:46:45 +01:00
dependabot[bot]andArnold Gálovics e60e66b5ac chore(deps): bump actions/stale from 6.0.1 to 7.0.0
Bumps [actions/stale](https://github.com/actions/stale) from 6.0.1 to 7.0.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/5ebf00ea0e4c1561e9b43a292ed34424fb1d4578...6f05e4244c9a0b2ed3401882b05d701dd0a7289b)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-21 14:00:52 +01:00
Janos HaberandArnold Gálovics 4c341a16e3 FINERACT-1744 - Idempotency documentation 2022-12-21 09:08:26 +01:00
Arnold GalovicsandArnold Gálovics 8ab206aa4a FINERACT-1724: Loan Charge API support for batch APIs and a couple of other batch API enhancements 2022-12-19 22:46:36 +01:00
Renovate BotandArnold Gálovics cb39a23467 chore(deps): update plugin net.ltgt.errorprone to v3 2022-12-19 16:34:12 +01:00
Renovate BotandArnold Gálovics 6741b0e273 chore(deps): update all non-major dependencies 2022-12-19 16:15:03 +01:00
Jose Alberto HernandezandArnold Gálovics c4d065fc7c FINERACT-1838: Loan account external events with repayment schedule 2022-12-19 16:09:33 +01:00
Jose Alberto HernandezandArnold Gálovics 9fba52abbb FINERACT-1785: Waive loan charge with same disbursement date 2022-12-19 16:01:53 +01:00
Janos HaberandArnold Gálovics adcd76154e FINERACT-1734 - Loan Account Delinquency Changed event definition
Extend current Loan Account Delinquency range change event.
2022-12-19 15:48:40 +01:00
Jose Alberto HernandezandArnold Gálovics 833dddb551 FINERACT-1760: Client by External Id 2022-12-19 14:58:23 +01:00
Adam SaghyandArnold Gálovics cef826af8f FINERACT-1724: Performance improvement of SchedulerJobsTestResults (for integration tests) 2022-12-16 22:30:47 +01:00
Ruchi DhamankarandArnold Gálovics d80aa77c02 FINERACT-1734-LoanRepaymentDue-Event-Enhancements-1 2022-12-16 18:12:16 +01:00
Adam Saghy 1405b28d71 FINERACT-1724: Performance improvement of global configuration helper (for integration tests) 2022-12-16 16:41:55 +01:00
Adam SaghyandArnold Gálovics 70f2783508 FINERACT-1724: Fix NPE issues + Incorrect arguments to mysqld_stmt_bulk_execute 2022-12-16 14:20:52 +01:00
Aleksandar VidakovicandArnold Gálovics 4d5dce0309 FINERACT-1834: Remove dependency on configuration service from content repository factory 2022-12-15 23:20:23 +01:00
Adam SaghyandArnold Gálovics 69c25c282b FINERACT-1734: Trigger LoanBalanceChangedBusinessEvent for charges 2022-12-15 23:19:01 +01:00
Renovate BotandArnold Gálovics 53f2d9ad2e chore(deps): update all non-major dependencies 2022-12-15 16:11:50 +01:00
Adam Saghy 2532c58cbc FINERACT-1760: Enhanced external id support for loan 2022-12-15 14:25:47 +01:00
Ruchi DhamankarandArnold Gálovics 8457b31c0f FINERACT-1829-Store-Overpaid-Date-for-Loan 2022-12-15 14:10:44 +01:00
dependabot[bot]andArnold Gálovics 41440e4ca4 chore(deps): bump actions/setup-java from 3.8.0 to 3.9.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3.8.0 to 3.9.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/c3ac5dd0ed8db40fedb61c32fbe677e6b355e94c...1df8dbefe2a8cbc99770194893dd902763bee34b)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-15 12:02:34 +01:00
Arnold GalovicsandArnold Gálovics fcfa8ada5f Force Gradle version to be equal or under 7.5.1 for renovate 2022-12-14 14:11:45 +01:00
Janos HaberandArnold Gálovics 995b1ea021 FINERACT-1744
- [x] Batch api support for idempotency
- [x] BatchFilter for generic batch filtering
- [x] LoanCOBApiFilter extend with BatchFilter support
- [x] FineractRequestContextHolder generic context holder with batch and http request supports
2022-12-14 13:06:20 +01:00
Ruchi DhamankarandArnold Gálovics be958b9aef FINERACT-1818-New-Parameter-Loan-Api 2022-12-14 12:35:55 +01:00
Janos HaberandArnold Gálovics 9f43ec235a FINERACT-1724
- [x] Swagger `Changes` class name collision.
2022-12-13 17:15:47 +01:00
Jose Alberto HernandezandArnold Gálovics a987956cbc FINERACT-1785: Allow to add charge (penalty) with same disbursement date 2022-12-13 14:13:41 +01:00
dependabot[bot]andArnold Gálovics e938104b84 chore(deps): bump actions/checkout from 3.1.0 to 3.2.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8...755da8c3cf115ac066823e79a1e1788f8940201b)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-13 11:34:49 +01:00
Ruchi DhamankarandArnold Gálovics 59871353fb FINERACT-1760-Index-or-Unique-column-creation-datatables 2022-12-12 16:01:33 +01:00
Renovate BotandArnold Gálovics bd392a6209 chore(deps): update actions/stale action to v6 2022-12-12 10:23:00 +01:00
Adam SaghyandArnold Gálovics 91e5e570ec FINERACT-1724: Fix delinquency tags swagger response type 2022-12-09 17:13:27 +01:00
Jose Alberto HernandezandArnold Gálovics 8f253a0d36 FINERACT-1707: Update r_enum_value table with new transaction_types values 2022-12-09 13:27:44 +01:00
Adam SaghyandArnold Gálovics 9999e08de2 FINERACT-1760: Batch API for datatable query update 2022-12-07 22:46:16 +01:00
Jose Alberto HernandezandArnold Gálovics 7dfbc2534d FINERACT-1827: Last installment is not closed if there is a chargeback transaction 2022-12-06 21:17:24 +01:00
Arnold GalovicsandArnold Gálovics 7bcea6676c Modernizr fixes 2022-12-06 18:09:28 +01:00
Arnold GalovicsandArnold Gálovics dfa0e98ea7 Downgrade Gradle from 7.6 to 7.5.1 2022-12-06 18:09:28 +01:00
Renovate BotandArnold Gálovics f0a9304c8e chore(deps): update all non-major dependencies 2022-12-06 18:09:28 +01:00
Adam Saghy 79b6b8d2ad FINERACT-1828: Fix datatable audit time handling 2022-12-06 16:00:26 +01:00
Jose Alberto HernandezandArnold Gálovics 804bdc28b9 Create client with datatable subentity type 2022-12-06 14:03:29 +01:00
Ruchi DhamankarandArnold Gálovics 29b900cccd FINERACT-1818-Loan-Retrieve-Api-data-addition
Fineract Build & Test - MySQL / build (push) Canceled after 0s
Fineract Build & Test - PostgreSQL / build (push) Canceled after 0s
Fineract Docker build - MariaDB / build (push) Canceled after 0s
Fineract Docker build - PostgreSQL / build (push) Canceled after 0s
Fineract Documentation build / build (push) Canceled after 0s
Fineract Build & Test - MariaDB / build (push) Canceled after 0s
2022-12-06 13:52:48 +01:00
dependabot[bot]andArnold Gálovics 5478435567 chore(deps): bump actions/setup-java
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 19eeec562b37d29a1ad055b7de9c280bd0906d8d to c3ac5dd0ed8db40fedb61c32fbe677e6b355e94c.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/19eeec562b37d29a1ad055b7de9c280bd0906d8d...c3ac5dd0ed8db40fedb61c32fbe677e6b355e94c)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-06 13:52:20 +01:00
Adam Saghy e5f4cc8199 FINERACT-1825: Fix end of month handling 2022-12-05 14:56:40 +01:00
Adam SaghyandArnold Gálovics a708251c65 FINERACT-1760: Fix reversal external id handling 2022-12-05 14:13:08 +01:00
Renovate BotandArnold Gálovics 4ba40c2418 chore(deps): update actions/setup-java digest to 19eeec5 2022-12-05 13:03:08 +01:00
Adam SaghyandArnold Gálovics 0162ffe1ea FINERACT-1760: Fix error handling for loan charge details 2022-12-01 22:51:19 +01:00
taskain7andArnold Gálovics de0910f337 [FINERACT-1678] Resilient manager instance 2022-11-30 14:02:53 +01:00
Arnold GalovicsandArnold Gálovics 0b7a484cff FINERACT-1724: Minor cleanup 2022-11-30 11:35:02 +01:00
Adam Saghy e95eba3e8a FINERACT-1760: Fix error handling 2022-11-30 11:13:21 +01:00
Janos HaberandArnold Gálovics 8c7e417c5d FINERACT-1744
- [x] Purge Processed Commands Jobs
- [x] Refactor CommandProcessingResultType to CommandProcessingStatus
2022-11-30 09:55:59 +01:00
Arnold GalovicsandArnold Gálovics 0c63bf2f27 FINERACT-1724: Fixed fineract-client generation to handle non-required request bodies in APIs 2022-11-30 08:58:41 +01:00
taskain7andArnold Gálovics 47108e0ac9 [FINERACT-1678] Fix Inline COB execution 2022-11-30 08:52:36 +01:00
Ruchi DhamankarandArnold Gálovics 53b474b461 FINERACT-1760-Link-Transaction-Reverse-Replay 2022-11-29 14:03:57 +01:00
taskain7andArnold Gálovics b7f88d1196 [FINERACT-1678] Fix Job API with empty request body 2022-11-29 12:55:06 +01:00
Ruchi DhamankarandArnold Gálovics 856c47398d FINERACT-1734-Repayment-Due-Events-Payload-Extension 2022-11-29 10:33:32 +01:00
Adam SaghyandArnold Gálovics 4c597b61fb FINERACT-1760: Raise transaction replayed business event 2022-11-29 10:04:22 +01:00
Arnold GalovicsandArnold Gálovics bbd1ca75a1 Reverted gradle version upgrade from 7.6 to 7.5.1 2022-11-28 23:27:28 +01:00
Renovate BotandArnold Gálovics f40b532c6a chore(deps): update all non-major dependencies 2022-11-28 23:27:28 +01:00
Adam Saghy 82641f6357 FINERACT-1822: Fix Undo waive loan charge API response inconsistency 2022-11-28 21:26:19 +01:00
Jose Alberto HernandezandArnold Gálovics 66aab8d157 Fix Delinquency Classification for scenario 2022-11-28 20:03:09 +01:00
Arnold GalovicsandArnold Gálovics 418675b800 Making duplicate classpath scanning test result more understandable and a few reorganizations for MariaDB and PostgreSQL deps 2022-11-28 16:56:05 +01:00
Renovate BotandArnold Gálovics 6e7e4221ba fix(deps): update non-major 2022-11-28 16:56:05 +01:00
taskain7andArnold Gálovics ca51084e86 [FINERACT-1678] Introducing Last COB Business Date for loans 2022-11-28 15:27:07 +01:00
Janos HaberandArnold Gálovics 6f7f55a227 FINERACT-1724
- [x] eliminate sonar security hotspots
- [x] eliminate sonar bugs
2022-11-28 15:26:49 +01:00
Janos HaberandArnold Gálovics 5210bf7412 FINERACT-1744 - Idempotency support
- [x] Idempotency write move to filters
- [x] Idempotency integration test with success and failure
- [x] Added response status code to database
- [x] SynchronousCommandProcessingService not generate the command, just marked to the filter
- [x] IdempotencyStoreFilter store the command request if available.
- [x] Removed JpaExceptionHandler.java
2022-11-28 12:04:03 +01:00
Adam SaghyandArnold Gálovics 25c0b6a08d FINERACT-1760: Enhanced external id support for loan charges 2022-11-28 12:02:00 +01:00
Vic RomeroandArnold Gálovics 2f4dcbdd6c FINERACT-1820: Update for Authentication in Legacy Docs 2022-11-27 20:25:05 +01:00
Adam Saghy a370875ce8 FINERACT-1760: Enhanced external id support for loan transactions 2022-11-26 14:39:36 +01:00
Janos HaberandArnold Gálovics 3f0872d1ec FINERACT-1724
- [x] eliminate sonar security hotspots
2022-11-25 10:58:59 +01:00
Adam Saghy 5079059405 FINERACT-1760: Enhanced external id support for loan transactions 2022-11-24 23:08:09 +01:00
Jose Alberto HernandezandAdam Saghy 838d05f987 Fix for GL entries for Credit Balance Refund transaction 2022-11-24 22:21:46 +01:00
Arnold GalovicsandArnold Gálovics 1899b517b4 FINERACT-1724: Batch API support for Loan chargeback and fineract client adjustments 2022-11-24 19:08:21 +01:00
Jose Alberto HernandezandArnold Gálovics 729316e4a0 Fix datatable put call with resource id 2022-11-24 15:41:22 +01:00
Ruchi DhamankarandArnold Gálovics a1a6435283 FINERACT-1678--Extending-jobs-with-module-system-documentation 2022-11-24 12:40:12 +01:00
Aleksandar VidakovicandAleksandar Vidakovic 5338263bd8 FINERACT-1794: Address improvement in file upload APIs 2022-11-23 20:28:50 +01:00
Ruchi DhamankarandArnold Gálovics c1df5e73a2 FINERACT-1678-Extending-jobs-with-module-system 2022-11-23 15:51:00 +01:00
Arnold GalovicsandArnold Gálovics 4b290663d3 FINERACT-1724: Minor cleanup around client transaction services 2022-11-23 13:17:15 +01:00
Janos HaberandArnold Gálovics d5b4546886 FINERACT-1724
- [x] Refactoring ThitsaWorksCreditBureauIntegrationWritePlatformServiceImpl
- [x] Fix NPE and test added to ThitsaWorksCreditBureauIntegrationWritePlatformServiceImplTest
2022-11-21 13:54:55 +01:00
Jose Alberto HernandezandAdam Saghy 4f9f71da9b Fix Loan Delinquency Classification after Repayment 2022-11-21 13:49:45 +01:00
Aleksandar VidakovicandAleksandar Vidakovic 36a81580be FINERACT-1807: Extension point - data service 2022-11-18 18:45:05 +01:00
Arnold GalovicsandArnold Gálovics fe12ed3635 FINERACT-1724: Swagger fix for loan transaction API 2022-11-18 17:10:34 +01:00
Jose Alberto HernandezandAdam Saghy 4e3e078d7f Fix chargeback transaction amount zero 2022-11-17 22:32:30 +01:00
Ruchi DhamankarandArnold Gálovics 1331073679 FINERACT-1734-Repayment-due-event 2022-11-17 14:13:13 +01:00
Janos HaberandArnold Gálovics 6ba5d7d5c4 Fix credit bureau organisation result processing in the test case.
FINERACT-1724
[x] Unit test for ThitsaWorksCreditBureauIntegrationWritePlatformServiceImpl
[x] Integration test for CreditBureau with WireMock
[x] Fix enum key case sensitivity on postgres
[x] Fix update key typo
[x] Add missing credit bureau organization fix for test cases
2022-11-16 14:04:36 +01:00
b0c1andArnold Gálovics 0155db70b7 Fix possible null 2022-11-16 07:08:50 +01:00
Renovate BotandArnold Gálovics b132c2bcbe chore(deps): update all non-major dependencies 2022-11-14 16:33:58 +01:00
Renovate BotandArnold Gálovics 02dd75a271 fix(deps): update non-major 2022-11-14 16:05:02 +01:00
taskain7andArnold Gálovics c9a4aab466 [FINERACT-1678] Loan COB - skip non-owned locked loan accounts 2022-11-14 11:18:56 +01:00
Ruchi DhamankarandArnold Gálovics 1cf37341d5 FINERACT-1734-Deliquency-range-event 2022-11-10 16:38:51 +01:00
Adam Saghy cb1d1d0d5d FINERACT-1761: New Charge Adjustment transaction 2022-11-10 09:36:10 +01:00
taskain7andArnold Gálovics 48bbc9b266 [FINERACT-1678] LoanCOBApiFIlter throws NPE when user is not authenticated 2022-11-08 15:55:09 +01:00
taskain7andArnold Gálovics 3951e69ad7 [FINERACT-1678] Introducing synchronous COB execution for loan account changing APIs 2022-11-08 14:46:51 +01:00
dependabot[bot]andArnold Gálovics 70a0a3e2e9 chore(deps): bump gradle/wrapper-validation-action
Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 9aa31f26bc8e536d1faf4b332bb8365350743a18 to 1.0.5. This release includes the previously tagged commit.
- [Release notes](https://github.com/gradle/wrapper-validation-action/releases)
- [Commits](https://github.com/gradle/wrapper-validation-action/compare/9aa31f26bc8e536d1faf4b332bb8365350743a18...55e685c48d84285a5b0418cd094606e199cca3b6)

---
updated-dependencies:
- dependency-name: gradle/wrapper-validation-action
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-08 10:32:37 +01:00
Aleksandar VidakovicandAleksandar Vidakovic 744abd1364 FINERACT-1795: Improve resilience of command processing service 2022-11-07 21:35:43 +01:00
Arnold GalovicsandArnold Gálovics aa7747c5ce FINERACT-1724: Added loan external ID into transaction events 2022-11-07 17:49:40 +01:00
Renovate BotandArnold Gálovics 24efd6da1c chore(deps): update all non-major dependencies 2022-11-07 13:39:53 +01:00
Renovate BotandArnold Gálovics 29d14a7e43 chore(deps): update gradle/wrapper-validation-action digest to 9aa31f2 2022-11-07 12:20:43 +01:00
Arnold GalovicsandArnold Gálovics a7d737b215 FINERACT-1724: Refactoring the business event serializers for better extensability 2022-11-07 11:16:18 +01:00
Arnold GalovicsandArnold Gálovics d2a12c3cfc FINERACT-1724: Added loanId to LoanTransactionData and extended the respective Avro schema 2022-11-03 15:40:08 +01:00
Arnold GalovicsandArnold Gálovics 532bc507b6 FINERACT-1724: Swagger enhancements + Batch API enhancements 2022-11-03 15:40:01 +01:00
Ruchi DhamankarandArnold Gálovics 6c72ee49d8 FINERACT-1734-Repayment-due-event 2022-11-03 11:50:47 +01:00
Arnold GalovicsandArnold Gálovics 11e22f6117 FINERACT-1724: Making the LoanNotFoundException backward compatible again 2022-11-03 10:52:23 +01:00
Jose Alberto HernandezandArnold Gálovics 90f1eccd4b Delinquency classification including Chargeback transactions 2022-11-02 15:37:39 +01:00
taskain7andArnold Gálovics cce7902054 [FINERACT-1678] Bypass LoanAccount Write Protection 2022-11-02 11:57:31 +01:00
Jose Alberto HernandezandArnold Gálovics ee3019603c Fix no enum constant http methods 2022-11-02 10:42:51 +01:00
Aleksandar VidakovicandAleksandar Vidakovic fc895fce05 FINERACT-1783: Customizeable LoanRepaymentScheduleTransactionProcessor 2022-11-01 14:08:02 +01:00
Vic RomeroandAleksandar Vidakovic f2756b25bb FINERACT-1791 2022-10-29 11:53:45 +02:00
Ruchi DhamankarandArnold Gálovics 1c944dd830 FINERACT-1694-Validating-event-configuration 2022-10-28 17:48:59 +02:00
taskain7andArnold Gálovics 7be193dd0b [FINERACT-1678] Reject write API calls for hard-locked loan accounts 2022-10-28 14:04:46 +02:00
Adam SaghyandArnold Gálovics e76adfbe56 FINERACT-1787: Fineract using wrong business date due to lack of resetting the ActionContext 2022-10-27 15:39:23 +02:00
Zoltan NebliandArnold Gálovics a293dee55c FINERACT-1744 add idempotency key storing for http requests 2022-10-27 10:37:51 +02:00
Arnold GalovicsandArnold Gálovics 3898e2b836 FINERACT-1724: Batch API enhancements 2022-10-26 19:10:41 +02:00
Ruchi DhamankarandArnold Gálovics 8e0273bfc0 FINERACT-1694-Event-Configuration-Apis 2022-10-26 14:44:16 +02:00
Adam SaghyandArnold Gálovics 2543e6f6a3 FINERACT-1784: Support undo waive charge for specific due date charges 2022-10-26 13:55:54 +02:00
Jose Alberto HernandezandArnold Gálovics 8954de5ded Allow to add charge with same disbursement date 2022-10-26 13:55:41 +02:00
Jose Alberto HernandezandArnold Gálovics 7c6e85be10 Send error code to 403 in Loan Fraud on error 2022-10-26 12:11:08 +02:00
Arnold GalovicsandArnold Gálovics 6cb741a7a2 FINERACT-1724: Swagger fix for Inline Job execution 2022-10-25 18:32:04 +02:00
dependabot[bot]andArnold Gálovics 1ccb67fd9e chore(deps): bump gradle/wrapper-validation-action from 1.0.4 to 1.0.5
Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 1.0.4 to 1.0.5.
- [Release notes](https://github.com/gradle/wrapper-validation-action/releases)
- [Commits](https://github.com/gradle/wrapper-validation-action/compare/e6e38bacfdf1a337459f332974bb2327a31aaf4b...55e685c48d84285a5b0418cd094606e199cca3b6)

---
updated-dependencies:
- dependency-name: gradle/wrapper-validation-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-25 12:43:09 +02:00
Jose Alberto HernandezandArnold Gálovics ce4c1dd137 Fix Loan Transaction Chargeback outstanding 2022-10-24 16:32:55 +02:00
dependabot[bot]andArnold Gálovics 134b6248a1 chore(deps): bump actions/upload-artifact from 3.1.0 to 3.1.1
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/3cea5372237819ed00197afe530f5a7ea3e805c8...83fd05a356d7e2593de66fc9913b3002723633cb)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-24 14:05:13 +02:00
Arnold GalovicsandArnold Gálovics 27c50305f0 FINERACT-1724: Making sure that Loan account status change business events are only triggered when an actual change happens 2022-10-24 11:08:55 +02:00
Renovate BotandArnold Gálovics ba55407c5a chore(deps): update all non-major dependencies 2022-10-24 11:02:54 +02:00
Jose Alberto HernandezandArnold Gálovics b2482c9226 Setting Fraud flag for a loan account 2022-10-21 20:26:21 +02:00
Aleksandar VidakovicandAleksandar Vidakovic 0049a9e3f9 FINERACT-1758: Improve custom module example (fix) 2022-10-21 19:01:35 +02:00
Arnold GalovicsandArnold Gálovics 81d9e4a961 FINERACT-1694: Extending MessageV1 and BulkMessageV1 with businessDate + fixing bulk event handling for publication + mapstruct mapper fixes to be more strict 2022-10-21 11:43:27 +02:00
Arnold GalovicsandArnold Gálovics d1f3ffe490 FINERACT-1724-9: Fixing the retrieval of loan charge details with including the loanId as well 2022-10-21 11:21:21 +02:00
Arnold GalovicsandArnold Gálovics 3cd4db8209 FINERACT-1724: Ability to customize the EntityManagerFactory from custom
modules
2022-10-20 06:39:29 +02:00
Adam SaghyandArnold Gálovics f496e2ff0e FINERACT-1782: Improve code quality - Member of Spring components should be injected 2022-10-19 13:19:40 +02:00
Zoltan NebliandArnold Gálovics f3aeef2f45 FINERACT-1744 add idempotency key to command_source table 2022-10-19 12:53:22 +02:00
dependabot[bot]andArnold Gálovics dae12cdd46 chore(deps): bump actions/setup-java from 3.5.1 to 3.6.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3.5.1 to 3.6.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/a18c333f3f14249953dab3e186e5e21bf3390f1d...de1bb2b0c5634f0fc4438d7aa9944e68f9bf86cc)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-19 11:37:08 +02:00
taskain7andArnold Gálovics ebe87433e7 [FINERACT-1678] Inline COB API 2022-10-18 19:14:38 +02:00
Jose Alberto HernandezandArnold Gálovics 22bcccb17b Loan summary with principal adjustments 2022-10-17 18:51:03 +02:00
Ruchi DhamankarandArnold Gálovics c9d5742836 FINERACT-1694-Event-Configuration-Database-Storage 2022-10-17 15:15:52 +02:00
Hemant GuptaandArnold Gálovics 55b1baeacb refactor: add lombok to sms module 2022-10-17 12:18:02 +02:00
Ruchi DhamankarandArnold Gálovics 04e07890a4 FINERACT-1694-ActiveMQ-failover-transport-support 2022-10-17 12:17:39 +02:00
Hemant GuptaandArnold Gálovics 3d332f0840 refactor: add lombok to mix module 2022-10-15 13:22:59 +02:00
Zoltan NebliandArnold Gálovics ad2f2862cb FINERACT-1747 add datatable query api 2022-10-15 09:02:17 +02:00
Hemant GuptaandArnold Gálovics f26b7bc576 refactor: add lombok to survey module 2022-10-15 09:02:01 +02:00
Hemant GuptaandArnold Gálovics 6ea6cb4cb1 refactor: add lombok to security module 2022-10-15 08:22:58 +02:00
Hemant GuptaandArnold Gálovics b45baa12b0 refactor: add lombok to holiday module 2022-10-15 08:10:05 +02:00
Aleksandar VidakovicandAleksandar Vidakovic ba765f9b7a FINERACT-1758: Improve custom module example 2022-10-14 18:57:36 +02:00
Arnold GalovicsandArnold Gálovics 388612b1ae FINERACT-1724
Added batch support for the Get Charge by Id call.
Added externalId field to PostLoansLoanIdChargesRequest.
Added submittedOnDate column to m_loan_charge table.
Updated logic to return new submittedOnDate field in GetLoansLoanIdChargesChargeIdResponse.
2022-10-14 17:57:29 +02:00
Adam SaghyandArnold Gálovics b33e3ac892 FINERACT-1773: Allow 'specific due date charges' to be applied after the maturity date 2022-10-14 17:45:29 +02:00
dependabot[bot]andArnold Gálovics 12e548ad82 chore(deps): bump actions/setup-node from 3.5.0 to 3.5.1
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.5.0 to 3.5.1.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/969bd2663942d722d85b6a8626225850c2f7be4b...8c91899e586c5b171469028077307d293428b516)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-14 10:51:00 +02:00
Hemant GuptaandArnold Gálovics 8b5a0262de refactor: add lombok to provisioning module 2022-10-13 20:44:12 +02:00
Hemant GuptaandArnold Gálovics b4cd3cf54f refactor: add lombok codes module 2022-10-13 13:02:49 +02:00
Hemant GuptaandArnold Gálovics 0f2850fff5 refactor: add lombok to notification module 2022-10-13 10:50:52 +02:00
Hemant GuptaandArnold Gálovics 5b935eb1ff refactor: add lombok to hooks module 2022-10-13 10:42:09 +02:00
Hemant GuptaandArnold Gálovics 5d1d20e577 refactor: add lombok to gcm module 2022-10-13 10:40:07 +02:00
Jose Alberto HernandezandAleksandar Vidakovic ae71df17df Charge back Loan Transaction updates repayment schedule 2022-10-12 21:08:09 +02:00
Hemant GuptaandArnold Gálovics 6d2447e327 refactor: add lombok to reportmailingjob module 2022-10-12 12:55:28 +02:00
Hemant GuptaandArnold Gálovics 8862f1f824 refactor: add lombok to entityaccess module 2022-10-12 12:32:38 +02:00
Hemant GuptaandArnold Gálovics bc289bcb4d refactor: add lombok to jobs module 2022-10-12 12:23:29 +02:00
Arnold GalovicsandArnold Gálovics 592ed92e87 FINERACT-1724: Swagger fixes for PostLoansLoanIdTransactionsTransactionIdRequest 2022-10-11 17:08:42 +02:00
Ruchi DhamankarandArnold Gálovics 0ae8445f07 FINERACT-1694-Regular-Event-Purging 2022-10-11 14:42:31 +02:00
Aleksandar Vidakovic 93481bde6f PS-15: Revert 2022-10-10 16:38:48 +02:00
Aleksandar Vidakovic f79c132ea8 PS-15: Synchronize the openmf develop branch with upstream 2022-10-10 16:32:47 +02:00
Wilfred KigenyiandGitHub 75b6f61e5d FINERACT-1724: Correct descriptions and summary on DELETE and PUT (#2458)
FINERACT-1724: Correct descriptions and summary on DELETE and PUT
2022-10-10 16:07:19 +02:00
Hemant GuptaandArnold Gálovics 9b039ff136 refactor: add lombok to emailcampaigns module 2022-10-10 16:00:59 +02:00
logoutdhavalandArnold Gálovics ba1d0ce66c FINERACT-1748: Loan prepayment issue after advance payment 2022-10-10 15:56:50 +02:00
Tapasweni PathakandArnold Gálovics 47c9b93d27 Refine documentation for migration of database from MySQL to PostgreSQL including the migration from Flyway to Liquibase for database migration scripts 2022-10-10 14:54:54 +02:00
logoutdhavalandArnold Gálovics 17e5eae7a3 FINERACT-1755:withdrawal fee is not considered for interest calculation 2022-10-10 14:51:56 +02:00
Arnold GalovicsandAleksandar Vidakovic 37205bef39 FINERACT-1724: Enhancements on batch API support for adjusting a loan transaction 2022-10-10 14:25:01 +02:00
Renovate BotandArnold Gálovics 9ad0124757 fix(deps): update non-major 2022-10-10 13:43:44 +02:00
Renovate BotandArnold Gálovics 303619e983 chore(deps): update all non-major dependencies 2022-10-10 11:42:37 +02:00
dependabot[bot]andArnold Gálovics 87535f7786 chore(deps): bump actions/stale from 5.2.0 to 6.0.1
Bumps [actions/stale](https://github.com/actions/stale) from 5.2.0 to 6.0.1.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/99b6c709598e2b0d0841cd037aaf1ba07a4410bd...5ebf00ea0e4c1561e9b43a292ed34424fb1d4578)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-10 11:34:31 +02:00
dependabot[bot]andArnold Gálovics c3485ffb82 chore(deps): bump actions/setup-node from 3.4.1 to 3.5.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.4.1 to 3.5.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/2fddd8803e2f5c9604345a0b591c3020ee971a93...969bd2663942d722d85b6a8626225850c2f7be4b)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-10 11:22:35 +02:00
dependabot[bot]andArnold Gálovics d429370875 chore(deps): bump actions/checkout from 3.0.2 to 3.1.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.2 to 3.1.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/2541b1294d2704b0964813337f33b291d3f8596b...93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-10 10:30:45 +02:00
Ruchi DhamankarandAleksandar Vidakovic a61e2d9659 FINERACT-1694-TenantIdentifier-ExternalEvents 2022-10-07 15:38:55 +02:00
Renovate BotandPetri Tuomola a2878cd1ed chore(deps): update all non-major dependencies 2022-10-05 10:52:07 +08:00
Renovate BotandPetri Tuomola 7e0fe7d386 chore(deps): update actions/stale digest to 99b6c70 2022-10-05 10:51:19 +08:00
Renovate BotandPetri Tuomola 4b529357f4 chore(deps): update actions/setup-java digest to a18c333 2022-10-05 10:50:37 +08:00
Davies Tobi AlexandPetri Tuomola e21331bcc1 Externalising OAuth Server URL
Externalising the OAuth JWT URI for instances whereby the port and hostname will be different to what is currently configured, especially if you are using docker and you wish to use container names rather than IP or `localhost`
2022-10-05 10:50:00 +08:00
taskain7andAleksandar Vidakovic 24fc4f1939 [FINERACT-1678] Loan accounts stayed locked business event 2022-10-04 20:43:16 +02:00
taskain7andAleksandar Vidakovic f4979d2c9b [FINERACT-1678] business step configuration fix 2022-10-04 09:48:12 +02:00
Ruchi DhamankarandAleksandar Vidakovic 44cab78cbb FINERACT-1694-Asynchronous-Message-OutChannel-Rename 2022-10-03 22:35:16 +02:00
Jose Alberto HernandezandAleksandar Vidakovic 40b6eb50f6 Chargeback Loan Transaction 2022-09-30 21:22:23 +02:00
Ruchi DhamankarandAleksandar Vidakovic 5bd804ada8 FINERACT-1694 Categorization for Events 2022-09-30 09:13:10 +02:00
Adam SaghyandAleksandar Vidakovic af63dbc9fa FINERACT-1754: Turn off unnecessary logging 2022-09-28 00:06:52 +02:00
d4517f4a4d Remove disbursement details in undo loan disbursal action (#2609)
Co-authored-by: Jose Alberto Hernandez <alberto@MacBook-Pro.local>
2022-09-27 13:15:59 -05:00
Ruchi DhamankarandAleksandar Vidakovic ee0184c0a5 FINERACT-1694 JMS ActiveMQ downstream channel integration for events 2022-09-27 17:06:29 +02:00
Arnold GalovicsandArnold Gálovics 18ebb3be6c FINERACT-1724: Swagger enhancements for posting a new savings transaction 2022-09-23 13:15:00 +02:00
Jose Alberto HernandezandArnold Gálovics 1521b9dcf6 Fix loan repayment schedule with multidisburse 2022-09-22 10:58:23 +02:00
Arnold GalovicsandArnold Gálovics c8a084cb97 FINERACT-1724: Swagger fixes here and there 2022-09-22 09:46:27 +02:00
Arnold GalovicsandArnold Gálovics 69f535731f FINERACT-1734: Added a new DisbursalTransactionBusinessEvent for disbursement txes 2022-09-22 09:46:11 +02:00
Arnold GalovicsandArnold Gálovics 0f4d232897 FINERACT-1724: Swagger fixes for updating a loan application 2022-09-21 14:55:50 +02:00
Hemant GuptaandArnold Gálovics c761b40279 refactor: add lombok to adhocquery module 2022-09-19 13:27:32 +02:00
Jose Alberto HernandezandArnold Gálovics 33d781f5fb Loan Delinquency Tags with Loan charges 2022-09-19 13:23:02 +02:00
Hemant GuptaandArnold Gálovics f86841646b refactor: add lombok to Creditbureau module 2022-09-19 11:53:57 +02:00
Ruchi DhamankarandArnold Gálovics e9ae88d057 FINERACT-1694 Send Asynchronous Events 2022-09-16 18:36:52 +02:00
Jose Alberto HernandezandArnold Gálovics 744d38c588 Manage scheduler and cob jobs 2022-09-16 17:26:19 +02:00
Arnold GalovicsandArnold Gálovics 6bd21e71be FINERACT-1734: Added a separate Loan business event for every monetary activity 2022-09-16 15:22:59 +02:00
Jose Alberto HernandezandArnold Gálovics a313bced0a Add disallowExpectedDisbursements flag in Loan account response 2022-09-15 11:05:25 +02:00
Arnold GalovicsandArnold Gálovics 714a881be2 Keeping Logback on version 1.2.11 intentionally since it's not
compatible with Spring Boot 2.x but only 3.x in the future.

More details here:
- http://mailman.qos.ch/pipermail/logback-user/2022-September/005235.html
- https://github.com/spring-projects/spring-boot/issues/12649
2022-09-14 14:08:12 +02:00
Renovate BotandArnold Gálovics 131ecefd2a chore(deps): update all non-major dependencies 2022-09-14 14:08:12 +02:00
Adam SaghyandArnold Gálovics 44db1d7b94 FINERACT-1678: Soft-lock Loan COB relevant loan accounts upon startup 2022-09-13 16:47:12 +02:00
Hemant GuptaandArnold Gálovics f258aa258c refactor: add lombok to configuration module 2022-09-13 14:54:54 +02:00
Hemant GuptaandArnold Gálovics e67b859ea1 refactor: add lombok to cache module 2022-09-13 14:46:19 +02:00
Hemant GuptaandArnold Gálovics cce97aaf1a refactor: add lombok to businessdate module 2022-09-13 14:44:44 +02:00
Hemant GuptaandArnold Gálovics 41e6edcfa2 refactor: add lombok to batch module 2022-09-13 14:31:53 +02:00
Arnold GalovicsandArnold Gálovics b5b189d610 FINERACT-1744: Tiny refactorings as a preparation for idempotency implementation 2022-09-13 13:40:24 +02:00
Renovate BotandArnold Gálovics 622e32e737 fix(deps): update non-major 2022-09-12 16:41:41 +02:00
Arnold GalovicsandArnold Gálovics 7558b09def FINERACT-1694: Bulk event support 2022-09-12 14:45:34 +02:00
Arnold GalovicsandArnold Gálovics a0749ffe19 Batch API read optimization + minor changes 2022-09-11 16:56:12 +02:00
Arnold GalovicsandArnold Gálovics 130d9c0c3d FINERACT-1734: New business events and refactorings 2022-09-11 16:56:03 +02:00
Arnold GalovicsandArnold Gálovics d06c3655af FINERACT-1734: Loan status can and only be set using the State Machine 2022-09-09 16:44:18 +02:00
Arnold GalovicsandArnold Gálovics d003326e48 FINERACT-1734: Refactoring around Loan status changes as a preparation to emit Loan Status change business events 2022-09-09 13:13:37 +02:00
dependabot[bot]andArnold Gálovics 8bb2e9230c chore(deps): bump actions/setup-java from 3.4.1 to 3.5.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3.4.1 to 3.5.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/2c7a4878f5d120bd643426d54ae1209b29cc01a3...d854b6da19cdadd9a010605529e522c2393ebd38)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-09 10:03:28 +02:00
Adam SaghyandArnold Gálovics 2d73c25226 FINERACT-1678: Lock under processing loan accounts 2022-09-09 10:00:01 +02:00
Arnold GalovicsandArnold Gálovics fa169bb5d4 FINERACT-1694: Documentation for Reliable event framework 2022-09-08 22:04:30 +02:00
Jose Alberto HernandezandArnold Gálovics 17454d0e20 Delinquency classification as a Loan COB business step 2022-09-07 16:30:22 +02:00
Jose Alberto HernandezandArnold Gálovics f26e14ae07 Delinquency classification as a Loan COB business step 2022-09-07 16:30:22 +02:00
Arnold GalovicsandArnold Gálovics 90896a6467 FINERACT-1694: Storing event schema along with external events 2022-09-07 14:45:51 +02:00
72e78df0fc FINERACT-1728:Issue with interest posting fix (#2574)
Co-authored-by: Dhaval Maniyar <dhavalmaniyar@Dhavals-MacBook-Pro.local>
2022-09-07 15:51:42 +05:30
Arnold GalovicsandArnold Gálovics 34aefd5d72 FINERACT-1694: Added tests for MonthDay Avro conversion 2022-09-06 14:09:07 +02:00
Arnold GalovicsandArnold Gálovics 4f312f33f6 FINERACT-1694: Making Avro mapping to fail at compile time for unmapped properties 2022-09-06 13:05:22 +02:00
Jose Alberto HernandezandArnold Gálovics 3f1743a3d4 Real time Loan Delinquency Classification 2022-09-06 12:13:45 +02:00
Arnold GalovicsandArnold Gálovics 17b36a0919 FINERACT-1694: Reworked bulk external events 2022-09-04 18:23:55 +02:00
Jose Alberto HernandezandArnold Gálovics 0980aa8abf Loan Delinquency Classification job 2022-09-03 15:24:01 +02:00
Arnold GalovicsandArnold Gálovics 24a199458f FINERACT-1723: Swagger fixes 2022-09-03 15:23:39 +02:00
Arnold GalovicsandArnold Gálovics 1f1cbfe074 FINERACT-1694-5: Reorganizing business event packages next to external events 2022-09-02 22:20:16 +02:00
Arnold GalovicsandArnold Gálovics f46abaf9e2 FINERACT-1694: External event storage integration 2022-09-02 10:03:09 +02:00
Arnold GalovicsandArnold Gálovics 5a9ddab671 FINERACT-1694: Storing external events fixes 2022-09-02 10:03:09 +02:00
Arnold GalovicsandArnold Gálovics 699f61a9e1 FINERACT-1694: Storing events upon raising 2022-09-02 10:03:09 +02:00
Adam SaghyandArnold Gálovics a04aa45368 FINERACT-1693: Fix null handling of datatables 2022-09-02 08:50:25 +02:00
Hemant GuptaandAleksandar Vidakovic 354d41d2eb refactor: add lombok to rule module 2022-09-02 03:16:19 +02:00
Arnold GalovicsandAleksandar Vidakovic b8e34936d2 Fix for handling Loan rescheduling in batch APIs 2022-09-02 03:14:23 +02:00
Arnold GalovicsandArnold Gálovics 3c3f9011b2 FINERACT-1694: LoanChargeDataV1 Avro schema fixes 2022-09-01 14:59:56 +02:00
Arnold GalovicsandArnold Gálovics fc875047e6 FINERACT-1694: Avro schema adjustments 2022-09-01 08:36:35 +02:00
Dhaval ManiyarandArnold Gálovics 698681278b FINERACT-1695:Accounting report not able to fetch the data in table format 2022-08-30 20:51:40 +02:00
Arnold GalovicsandAleksandar Vidakovic c131e94cb4 FINERACT-1694: Added more Avro schemas 2022-08-30 14:39:12 +02:00
Arnold GalovicsandAleksandar Vidakovic f620a469e8 FINERACT-1694: Fixed Deposit event Avro schemas 2022-08-30 14:39:12 +02:00
Arnold GalovicsandAleksandar Vidakovic b327e710f7 FINERACT-1694: Additional schemas 2022-08-30 14:39:12 +02:00
Arnold GalovicsandAleksandar Vidakovic 264022be4d FINERACT-1694: Avro schemas project + code generation + some initial Avro Schemas 2022-08-30 14:39:12 +02:00
Adam SaghyandArnold Gálovics 4808bb3489 FINERACT-1678: Fix Apply Penalty to overdue loan COB job 2022-08-30 14:11:48 +02:00
Hemant GuptaandArnold Gálovics aa12de397d refactor: add lombok to provisioning module 2022-08-30 13:15:17 +02:00
Aleksandar VidakovicandGitHub 2c4f6e4c61 Merge pull request #2548 from apache/merge-1.8.0
Merge 1.8.0
2022-08-30 11:47:32 +02:00
Hemant GuptaandArnold Gálovics 78c541e992 refactor: add lombok to producttoaccountmapping module 2022-08-29 11:10:29 +02:00
Aleksandar Vidakovic 97bd1ecbe6 Fineract 1.8.0 release 2022-08-28 12:09:53 +02:00
Adam SaghyandArnold Gálovics 950f6489fe FINERACT-1678: Performance improvement of Apply Charge to Overdue Loans COB Business Step 2022-08-26 14:43:32 +02:00
taskain7andArnold Gálovics 5bf9e1a288 [FINERACT-1678] Retrieving locked loan accounts via API 2022-08-26 11:27:09 +02:00
taskain7andArnold Gálovics 81b56fafa0 [FINERACT-1678] Loan COB Partitioner strategy fix 2022-08-26 11:26:23 +02:00
taskain7andArnold Gálovics 48c353fb8f Database storage for events 2022-08-26 11:24:51 +02:00
taskain7andArnold Gálovics 831c5a8eef [FINERACT-1678] COB Execution context fix 2022-08-25 15:45:14 +02:00
2479dd1289 Error with withdraw/deposit transactions after initiating hold transaction (#2540)
Co-authored-by: Dhaval Maniyar <dhavalmaniyar@Dhavals-MacBook-Pro.local>
2022-08-25 18:04:22 +05:30
taskain7andArnold Gálovics 5dd199f34d [FINERACT-1678] Add ActiveMQ configuration 2022-08-24 16:39:05 +02:00
Adam SaghyandArnold Gálovics 5919882a65 FINERACT-1704: Code cleanup - Journal entries 2022-08-23 16:25:19 +02:00
taskain7andArnold Gálovics 0bbd825a46 [FINERACT-1678] API for Business Step configuration fix 2022-08-23 11:57:16 +02:00
rrpawar96andArnold Gálovics d75835170a FINERACT-1330: Pay Charge & withdrawals is violating Overdraft conditions on current and past Transactions 2022-08-23 11:00:10 +02:00
dependabot[bot]andArnold Gálovics ed80540a95 chore(deps): bump gradle/wrapper-validation-action
Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 859c33240bd026ce8d5f711f5adcc65c2f8eafc1 to 1.0.4. This release includes the previously tagged commit.
- [Release notes](https://github.com/gradle/wrapper-validation-action/releases)
- [Commits](https://github.com/gradle/wrapper-validation-action/compare/859c33240bd026ce8d5f711f5adcc65c2f8eafc1...e6e38bacfdf1a337459f332974bb2327a31aaf4b)

---
updated-dependencies:
- dependency-name: gradle/wrapper-validation-action
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-23 10:41:51 +02:00
Adam SaghyandArnold Gálovics 23f672adbc FINERACT-1706: Accounting for Chargeback 2022-08-23 10:02:14 +02:00
Dhaval ManiyarandArnold Gálovics b8ebc3967e FINERACT-1695: Accounting report not able to fetch the data in table format 2022-08-23 09:29:24 +02:00
Jose Alberto HernandezandArnold Gálovics b0c4f3dddd Fix Loan Product swagger 2022-08-23 09:27:16 +02:00
Arnold GalovicsandArnold Gálovics e0236efa00 Added refund support for Batch API 2022-08-22 16:18:39 +02:00
Hemant GuptaandArnold Gálovics f86a7c726f refactor: add lombok to GLAccount module 2022-08-22 14:45:56 +02:00
taskain7andArnold Gálovics 340516c1a3 [FINERACT-1678] Spring Batch JMS support 2022-08-22 14:04:58 +02:00
taskain7andArnold Gálovics 02c19c963e [FINERACT-1678] Job execution listeners 2022-08-22 13:36:53 +02:00
taskain7andArnold Gálovics 675dda2b42 [FINERACT-1678] API for job business step configuration 2022-08-22 13:36:38 +02:00
Aleksandar Vidakovic 27489a6850 Prepare release 1.8.0 2022-08-22 12:30:41 +02:00
Adam SaghyandArnold Gálovics 7a2af51e6c Code cleanup - loan product 2022-08-22 11:55:54 +02:00
Jose Alberto HernandezandArnold Gálovics 8b3975f8d7 Loan Delinquency Classification job 2022-08-22 11:52:40 +02:00
Dhaval ManiyarandAleksandar Vidakovic 9000b6e826 FINERACT-1646-backdated-transaction-available-balance-fix 2022-08-22 11:42:52 +02:00
Renovate BotandArnold Gálovics 0af87a8766 chore(deps): update gradle/wrapper-validation-action digest to 859c332 2022-08-22 11:05:13 +02:00
Renovate BotandArnold Gálovics 9addbbbd7f chore(deps): update all non-major dependencies 2022-08-22 11:05:04 +02:00
ManojandGitHub 998b3ff289 delete-duplicate-migration (#2531) 2022-08-22 12:19:04 +05:30
Aleksandar Vidakovic 9cabd179d1 FINERACT-1696: Update README with instructions concerning Mysql UTC behavior 2022-08-22 04:32:35 +02:00
Aleksandar VidakovicandAleksandar Vidakovic 3959a34922 FINERACT-1696: Update README with instructions concerning Mysql UTC behavior 2022-08-22 04:27:14 +02:00
Dhaval ManiyarandAleksandar Vidakovic 7fe34c3d7d FINERACT-1668: Adding Configuration for reversal transaction 2022-08-20 14:07:47 +02:00
Dhaval ManiyarandAleksandar Vidakovic c3b462919f FINERACT-1646-backdated-transaction-available-balance-fix 2022-08-20 12:52:00 +02:00
Dhaval ManiyarandAleksandar Vidakovic c21ea4e1d3 FINERACT-1646-backdated-transaction-available-balance-fix 2022-08-20 12:49:20 +02:00
edc734c946 FINERACT-1668: Adding Configuration for reversal transaction (#2454)
Co-authored-by: Dhaval Maniyar <dhavalmaniyar@Dhavals-MacBook-Pro.local>
2022-08-20 12:22:16 +02:00
erprinceandArnold Gálovics c9be0a2816 FINERACT-1677 fix 2022-08-19 18:38:51 +02:00
Adam SaghyandArnold Gálovics d2e56edba6 FINERACT-1692: Allow disbursement transaction when the loan is fully paid/overpaid 2022-08-19 18:26:03 +02:00
taskain7andArnold Gálovics 9d8b2d38c5 [FINERACT-1678] Store loan account locks 2022-08-19 18:23:01 +02:00
Adam SaghyandArnold Gálovics 1cbafec07e FINERACT-1693: Fix null handling of datatables 2022-08-19 09:31:52 +02:00
Jose Alberto HernandezandArnold Gálovics 6f86982346 Fix Loan Product swagger 2022-08-19 09:30:54 +02:00
dependabot[bot]andArnold Gálovics 0b7517a1ea chore(deps): bump gradle/wrapper-validation-action
Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 859c33240bd026ce8d5f711f5adcc65c2f8eafc1 to 1.0.4. This release includes the previously tagged commit.
- [Release notes](https://github.com/gradle/wrapper-validation-action/releases)
- [Commits](https://github.com/gradle/wrapper-validation-action/compare/859c33240bd026ce8d5f711f5adcc65c2f8eafc1...e6e38bacfdf1a337459f332974bb2327a31aaf4b)

---
updated-dependencies:
- dependency-name: gradle/wrapper-validation-action
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-19 09:29:57 +02:00
taskain7andArnold Gálovics 8184b11c29 [FINERACT-1678] execution order for Loan COB 2022-08-18 13:55:21 +02:00
Francis MwangiandArnold Gálovics f821841a80 [FINERACT-1690] Improve gitpod integrations 2022-08-17 18:54:14 +02:00
Jose Alberto HernandezandArnold Gálovics 80401586e6 Loan transaction reversal data extension 2022-08-17 17:02:37 +02:00
Renovate BotandArnold Gálovics 163b9b1b8a fix(deps): update non-major 2022-08-17 16:33:16 +02:00
Arnold GalovicsandArnold Gálovics a1591e9873 Swagger fixes for Loan refunds 2022-08-17 15:14:15 +02:00
Arnold GalovicsandAleksandar Vidakovic 51782cb642 Dependency fixes for compatibility 2022-08-17 10:53:45 +02:00
Renovate BotandAleksandar Vidakovic 25bd387b14 fix(deps): update dependency org.glassfish.jersey.media:jersey-media-multipart to v3 2022-08-17 10:53:45 +02:00
Jose Alberto HernandezandArnold Gálovics 30e11910f3 Update fineract client for Loan delinquency 2022-08-17 08:37:45 +02:00
taskain7andArnold Gálovics 8a1f134881 [FINERACT-1678] Loan COB job skeleton 2022-08-17 08:37:00 +02:00
Arnold GalovicsandAleksandar Vidakovic f06d9f670c ScheduleStopListener threading fix 2022-08-16 18:48:54 +02:00
Adam SaghyandArnold Gálovics 8e4c4d7c5c Rework datatable entry handling + added additional tests 2022-08-15 21:24:40 +02:00
Renovate BotandArnold Gálovics f50f5700b5 fix(deps): update dependency org.mariadb.jdbc:mariadb-java-client to v3 2022-08-15 14:59:03 +02:00
Adam SaghyandArnold Gálovics fff090166c Add missing maxOutstandingLoanBalance field to swagger 2022-08-15 14:54:10 +02:00
Renovate BotandArnold Gálovics 29f2070bc6 chore(deps): update all non-major dependencies docker tags 2022-08-15 11:37:12 +02:00
Adam SaghyandArnold Gálovics 629b9f6d7c FINERACT-1670: Rework command source to store dates in UTC 2022-08-12 09:55:30 +02:00
Adam SaghyandArnold Gálovics d5ca6baab3 FINERACt-1670: Fix fetching datetime in native queries 2022-08-11 19:22:52 +02:00
bd404e8c7b Fix to accept Loan Charge amounts using locales (#2393)
Co-authored-by: Jose Alberto Hernandez <alberto@MacBook-Pro.local>
2022-08-10 13:31:19 -05:00
13d587a951 Allow disbursementDataArray empty instead of null (#2499)
Co-authored-by: Jose Alberto Hernandez <alberto@MacBook-Pro.local>
2022-08-10 12:28:16 -05:00
Adam SaghyandAleksandar Vidakovic eea635e90a Spotless apply 2022-08-09 10:42:21 +02:00
Adam SaghyandAleksandar Vidakovic 656ecdef9f FINERACT-1670: Add auditable fields to Calendar 2022-08-09 10:42:21 +02:00
Adam SaghyandAleksandar Vidakovic e47e2cd1e3 FINERACT-1670: Add auditable fields to Note 2022-08-09 10:42:21 +02:00
Adam SaghyandAleksandar Vidakovic 4029464e32 FINERACT-1670: Add auditable fields to Loan Repayment Schedule installment and history 2022-08-09 10:42:21 +02:00
Adam SaghyandAleksandar Vidakovic cad37ed956 FINERACT-1670: Add some missing indexes 2022-08-09 10:42:21 +02:00
Adam SaghyandAleksandar Vidakovic 6e189fcc89 FINERACT-1670: Add auditable fields to Client identifier 2022-08-09 10:42:21 +02:00
Adam SaghyandAleksandar Vidakovic 5df284aad1 FINERACT-1670: Add auditable fields to Business date 2022-08-09 10:42:21 +02:00
taskain7andAleksandar Vidakovic 47d5a85f17 [FINERACT-1678] configuration validation for COBs 2022-08-09 09:30:37 +02:00
9e949887b9 Delinquency buckets management for Loans (#2442)
Co-authored-by: Jose Alberto Hernandez <alberto@MacBook-Pro.local>
2022-08-08 14:16:09 -05:00
Adam SaghyandAleksandar Vidakovic f78a596878 FINERACT-1681: Fix filtering 2022-08-08 16:50:10 +02:00
John WoodlockandAleksandar Vidakovic 4034f4ae19 FINERACT-1675 New Paid loanCharge Refund Transaction 2022-08-08 11:45:05 +02:00
Adam SaghyandAleksandar Vidakovic 6f39c8ffed FINERACT-1682: Fix job key refresh logic for inactive schedulers 2022-08-08 11:43:33 +02:00
Adam SaghyandArnold Gálovics 7b55951a3a FINERACT-1681: Filter Journal entry by submitted on date 2022-08-05 13:54:05 +02:00
4685e96c81 FINERACT-1668: Adding Configuration for reversal transaction (#2454)
Co-authored-by: Dhaval Maniyar <dhavalmaniyar@Dhavals-MacBook-Pro.local>
2022-08-05 16:36:40 +05:30
Jose Alberto HernandezandArnold Gálovics e15459c659 Datatables datetime fields management 2022-08-04 15:56:59 +02:00
Adam SaghyandArnold Gálovics 865b9efc6e FINERACT-1670: Add UTC auditable fields and submitted on date to Journal Entry 2022-08-04 14:27:18 +02:00
Adam SaghyandArnold Gálovics 77ca3a2ce0 Fix race condition of CustomAuditingHandler's DateTimeProvider 2022-08-04 14:24:38 +02:00
Adam SaghyandArnold Gálovics 79180506b6 Fix OffsetDateTime fetch from DB 2022-08-04 14:23:59 +02:00
Adam SaghyandArnold Gálovics 69083de949 Fix floating rate and floating rate period native queries 2022-08-04 14:23:59 +02:00
Aleksandar Vidakovic 251b125f83 FINERACT-1679: Merge changes from release 1.7.0 2022-08-03 20:50:34 +02:00
Jose Alberto HernandezandArnold Gálovics cabb79c992 Allow accounting mappings for fund source asset or liability 2022-08-02 13:25:02 +02:00
Arnold GalovicsandArnold Gálovics c46864c8c9 Fix for scheduled Spring Batch jobs 2022-08-02 12:01:07 +02:00
Renovate BotandArnold Gálovics 5dab0127d8 chore(deps): pin actions/upload-artifact action to 3cea537 2022-08-01 21:30:11 +02:00
Renovate BotandArnold Gálovics 7f703a3ee9 fix(deps): update non-major 2022-08-01 18:41:53 +02:00
Adam SaghyandArnold Gálovics 65c6b18ed1 Fix inconsistenant Date and Date time handling 2022-08-01 15:47:47 +02:00
Adam SaghyandArnold Gálovics 7fb61d028e Fix transaction cannot be in future check 2022-08-01 07:25:13 +02:00
Adam SaghyandArnold Gálovics a73c593eb8 Fix transaction cannot be in future check 2022-08-01 07:25:13 +02:00
Adam SaghyandAleksandar Vidakovic 6a0928eb95 Rework custom auditing handler 2022-07-31 03:50:42 +02:00
Arnold GalovicsandArnold Gálovics 87204d5a8a Added reschedule loans api resource to Fineract Client and batch; minor swagger polishing 2022-07-29 20:36:58 +02:00
taskain7andArnold Gálovics b21cdf59b1 [FINERACT-1676] fixing saving dormant account job 2022-07-29 15:15:25 +02:00
Jose Alberto HernandezandArnold Gálovics 81601645a4 Fix Product Mix queries using group by 2022-07-29 10:15:13 +02:00
Arnold GalovicsandArnold Gálovics dc5abeacb9 Added archiving test results and server logs on GitHub workflows 2022-07-28 20:08:25 +02:00
taskain7andArnold Gálovics 16ab491120 [FINERACT-1669] Store business step configuration 2022-07-28 15:24:46 +02:00
taskain7andArnold Gálovics ff9181cc47 [FINERACT-1667] Introducing Spring Batch as job runner engine 2022-07-28 12:45:01 +02:00
dependabot[bot]andArnold Gálovics d03044c48b chore(deps): bump actions/stale from 5.1.0 to 5.1.1
Bumps [actions/stale](https://github.com/actions/stale) from 5.1.0 to 5.1.1.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/532554b8a8498a0e006fbcde824b048728c4178f...9c1b1c6e115ca2af09755448e0dbba24e5061cc8)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-28 11:07:53 +02:00
logoutdhavalandGitHub a80f589ad4 fineract-1646 and fineract-1638 combined fix (#2457)
authored-by: Dhaval Maniyar <dhavalmaniyar@Dhavals-MacBook-Pro.local>
2022-07-28 14:00:15 +05:30
dependabot[bot]andArnold Gálovics 0b334b563e chore(deps): bump actions/stale from 5.0.0 to 5.1.0
Bumps [actions/stale](https://github.com/actions/stale) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/3cc123766321e9f15a6676375c154ccffb12a358...532554b8a8498a0e006fbcde824b048728c4178f)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-26 11:06:28 +02:00
Adam SaghyandArnold Gálovics 700038020e Apply fixes (based on review) 2022-07-26 09:56:30 +02:00
Adam SaghyandArnold Gálovics 25823a9377 Fix some tests 2022-07-26 09:56:30 +02:00
Adam SaghyandArnold Gálovics 35cc1fc0d6 Refactor Loan Transaction to support auditable fields 2022-07-26 09:56:30 +02:00
Adam SaghyandArnold Gálovics 176c5700d0 Refactor Loan to support auditable fields 2022-07-26 09:56:30 +02:00
Adam SaghyandArnold Gálovics d8f483ab45 Refactor Client to support auditable fields 2022-07-26 09:56:30 +02:00
Adam SaghyandArnold Gálovics b8f8217148 Add CustomAuditHandler for supporting OffsetDateTime and store in UTC 2022-07-26 09:56:30 +02:00
Hemant GuptaandArnold Gálovics da920b1824 refactor: add lombok to closure module 2022-07-25 15:39:25 +02:00
Hemant GuptaandArnold Gálovics d6f8ef8b74 fix: final class error 2022-07-25 11:31:07 +02:00
Hemant GuptaandArnold Gálovics 4dada53f8d refactor: add lombok to FinancialActivityAccount module 2022-07-25 11:31:07 +02:00
Wilfred KigenyiandArnold Gálovics a555fe63bc Fix applyAdditionalShares
Use saveAndFlush instead of save on ShareAccountRepository
2022-07-25 08:44:29 +02:00
Renovate BotandArnold Gálovics 0187dc5e5c fix(deps): update dependency org.apache.tomcat:tomcat to v9.0.65 2022-07-25 08:43:55 +02:00
Renovate BotandArnold Gálovics fb15fe1806 chore(deps): update actions/stale digest to 3cc1237 2022-07-25 07:52:09 +02:00
Adam SaghyandArnold Gálovics ba75f7b93b Fix general ledger report 2022-07-24 21:43:30 +02:00
d388a3aa35 fix for 1665 and 1666 (#2441)
Co-authored-by: Dhaval Maniyar <dhavalmaniyar@Dhavals-MacBook-Pro.local>
2022-07-24 01:19:54 +05:30
019cdab434 Fineract-1646 (#2440)
* FINERACT 1646

* updated the order of import

Co-authored-by: Manoj <56669674+fynmanoj@users.noreply.github.com>
2022-07-23 01:07:42 +05:30
Adam SaghyandArnold Gálovics a236d7e910 Fix job mismatched logic 2022-07-21 18:21:32 +02:00
Adam SaghyandArnold Gálovics 2290886e8d Activation date cannot be earlier than the submitted on date 2022-07-18 11:01:01 +02:00
Renovate BotandArnold Gálovics 801497fa23 chore(deps): update all non-major dependencies 2022-07-18 11:00:47 +02:00
dependabot[bot]andArnold Gálovics 8ca0650b92 chore(deps): bump actions/stale from 5.0.0 to 5.1.0
Bumps [actions/stale](https://github.com/actions/stale) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/3cc123766321e9f15a6676375c154ccffb12a358...532554b8a8498a0e006fbcde824b048728c4178f)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-18 10:13:59 +02:00
rrpawar96andArnold Gálovics e4e5fc0ceb FINERACT-1658:GroupFilter_In_Center 2022-07-17 18:41:19 +02:00
Arnold GalovicsandArnold Gálovics c2d5a735d6 Fineract client builder tenant and username/password are made optional 2022-07-15 18:13:02 +02:00
dependabot[bot]andArnold Gálovics b87d915dbc chore(deps): bump actions/setup-node from 3.4.0 to 3.4.1
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/5b949b50c3461bbcd5a540b150c368278160234a...2fddd8803e2f5c9604345a0b591c3020ee971a93)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-15 14:40:54 +02:00
Adam SaghyandArnold Gálovics 81be863739 Quick code cleaning for client and loan: around the native queries 2022-07-15 13:15:19 +02:00
Arnold GalovicsandArnold Gálovics 8c023e74a8 Batch API extensions and a couple of OpenAPI fixes + minor datatable fixes 2022-07-13 21:50:42 +02:00
Arnold GalovicsandArnold Gálovics 4f832f9481 Correlation ID support implementation 2022-07-13 21:29:55 +02:00
Vic RomeroandArnold Gálovics 8a55d5807a FINERACT-1656 Correlation ID propagation and configuration 2022-07-13 21:29:55 +02:00
Adam SaghyandArnold Gálovics 1db8ef46fc Date to LocalDate (scheduler excluded due to quartz) 2022-07-13 12:16:07 +02:00
dependabot[bot]andArnold Gálovics f7e21f8db1 chore(deps): bump actions/setup-java from 3.4.0 to 3.4.1
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/16cca5479d7c6b6843f6a6515640ba33c6501543...2c7a4878f5d120bd643426d54ae1209b29cc01a3)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-12 11:09:09 +02:00
dependabot[bot]andArnold Gálovics 8b08542083 chore(deps): bump actions/setup-node from 3.3.0 to 3.4.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/eeb10cff27034e7acf239c5d29f62154018672fd...5b949b50c3461bbcd5a540b150c368278160234a)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-12 11:08:59 +02:00
rrpawar96andArnold Gálovics 308ede861c FINERACT-1402:PaymentTypeMandatory 2022-07-11 17:54:29 +02:00
Adam SaghyandArnold Gálovics a765cb00f1 Fix typo in error messages in Loan 2022-07-11 17:53:54 +02:00
Adam SaghyandArnold Gálovics 7ce19d703b Date to LocalDate - Client 2022-07-11 13:22:09 +02:00
Adam SaghyandArnold Gálovics ef96d5cc50 Date to LocalDate - part 1 2022-07-11 11:22:47 +02:00
Jose Alberto HernandezandArnold Gálovics adaac89583 Fix makerchecker inbox list group by error 2022-07-11 10:09:28 +02:00
Jose Alberto HernandezandArnold Gálovics 4ebe645c58 Charts data is mandatory for creating a fixed deposit product 2022-07-11 10:07:59 +02:00
Renovate BotandArnold Gálovics 4fdee75beb chore(deps): update all non-major dependencies 2022-07-11 10:06:22 +02:00
ManojandGitHub d1c77a5e46 Merge pull request #2396 from logoutdhaval/fineract-1652
fineract-1652: Account Balance and Transaction running balance is wrong
2022-07-10 23:19:24 +05:30
Dhaval Maniyar e4eb8afdf4 fineract-1652: Account Balance and Transaction running balance is wrong 2022-07-10 18:29:02 +05:30
John WoodlockandArnold Gálovics 16aafdf95b FINERACT-1657 Allow schedule approved/submitted multi non-tranche loans 2022-07-08 14:45:10 +02:00
John WoodlockandArnold Gálovics 0487bece0b FINERACT-1661 Allow merchant_issued and payout refunds when fullyPaid/Overpaid 2022-07-08 14:44:45 +02:00
Adam SaghyandArnold Gálovics 2bb92ae539 Business date response swagger fix 2022-07-08 14:37:06 +02:00
Arnold GalovicsandArnold Gálovics e50a329756 Business step implementation and interface for Loan COB 2022-07-07 20:50:50 +02:00
peter-kovacs-dpcandGitHub fe8868b509 Scheduler jobs API rename (#2409)
SchedulerJobApiResource tag renamed to scheduler jobs
2022-07-07 19:09:58 +02:00
Adam SaghyandArnold Gálovics b30d5c5a16 Loan transaction date handling enhancement + Make Loan transaction auditable 2022-07-07 15:56:43 +02:00
Adam SaghyandArnold Gálovics ad4fa563de Auditor fix - Detached Auditor entity was not persisted during cascade persisting 2022-07-07 13:56:34 +02:00
ManojandGitHub 83dcc4413b Merge pull request #2404 from logoutdhaval/pentaho-to-table-branch
FINERACT-1541: Pentaho reports converted to table format
2022-07-06 13:42:47 +05:30
logoutdhaval e90dd49c81 FINERACT-1541: Pentaho reports converted to table format 2022-07-05 14:34:28 +05:30
Adam SaghyandArnold Gálovics b44a2f2b14 Business date - part 3: Fix reports 2022-07-04 17:35:53 +02:00
Jose Alberto HernandezandArnold Gálovics 357062a186 Loan externalId unique validation 2022-07-04 15:55:05 +02:00
Jose Alberto HernandezandArnold Gálovics 2d07e8c867 Fix for JPA getById method deprecation 2022-07-04 09:28:32 +02:00
Renovate BotandArnold Gálovics 2e0fe6aa90 chore(deps): update all non-major dependencies 2022-07-03 22:12:17 +02:00
Jose Alberto HernandezandArnold Gálovics b9e30e2e82 Fix for Fixed Deposit Integration Test 2022-07-03 21:34:34 +02:00
Arnold GalovicsandArnold Gálovics ac17e993b6 Build fix 2022-07-01 16:56:56 +02:00
peter-kovacs-dpcandGitHub c5b12c489c swagger schema extended (#2397)
swagger schema extended
2022-07-01 16:43:17 +02:00
Arnold GalovicsandArnold Gálovics 0bbcc72513 Renovate fixes for upcoming dep upgrade 2022-07-01 10:30:02 +02:00
Adam SaghyandArnold Gálovics 05dc8f9380 Error logging enhancement - log handled exceptions on WARN level 2022-07-01 08:46:15 +02:00
Jose Alberto HernandezandArnold Gálovics 9c8239a9b1 Implement integration tests for Accounting rules 2022-06-29 15:57:16 +02:00
Adam SaghyandGitHub 632a08a5ce Business date - part 2 (#2384)
Business date - part 2
2022-06-29 15:56:31 +02:00
Adam SaghyandGitHub 63a3f56dd1 Business date part 1 fix (#2391)
* Business date - part 1 - Fix swagger
2022-06-29 13:09:46 +02:00
Adam SaghyandArnold Gálovics 1de7b23c9a Business date - part 1 - Fix swagger 2022-06-29 11:25:45 +02:00
Arnold GalovicsandAleksandar Vidakovic 62689eb674 OpenAPI fix for loans 2022-06-28 19:19:27 +02:00
Arnold GalovicsandAleksandar Vidakovic 94924432a9 Fixing loan approval open api definition 2022-06-28 16:18:36 +02:00
taskain7andArnold Gálovics ffb9147770 New Instance type: Batch Manager 2022-06-28 15:32:17 +02:00
Arnold GalovicsandAleksandar Vidakovic 67850e3889 Fixing loan approval open api definition 2022-06-28 14:45:36 +02:00
ManojandGitHub 0d5bace36e Merge pull request #2382 from logoutdhaval/fineract-1649
Fineract-1649: Error for Journal entry table
2022-06-28 13:59:23 +05:30
Dhaval Maniyar 5524949741 Fineract-1649: Error for Journal entry table 2022-06-27 21:42:28 +05:30
Jose Alberto HernandezandArnold Gálovics 55949bf8b0 Unstable integration test due different timezones 2022-06-27 09:27:07 +02:00
ManojandGitHub 7e680729fc Merge pull request #2379 from logoutdhaval/fineract-1645
FINERACT-1645:Invalid Balance after Interest posting with withdrawal fee
2022-06-25 14:40:53 +05:30
ManojandGitHub 74e43ab623 Merge pull request #2372 from logoutdhaval/fineract-1642
FINERACT-1642: Bulk reversal of related Transactions
2022-06-24 21:58:01 +05:30
Dhaval Maniyar 44e1e44785 FINERACT-1645:Invalid Balance after Interest posting with withdrawal fee 2022-06-24 18:51:32 +05:30
Dhaval Maniyar ff2e6cf4af FINERACT-1642:Bulk reversal of related Transactions 2022-06-24 16:29:31 +05:30
Arnold GalovicsandArnold Gálovics f98681ffdd Putting back support for pre business events 2022-06-23 17:59:57 +02:00
ManojandGitHub 3f02b7d7b5 Merge pull request #2374 from logoutdhaval/fineract-1644
FINERACT:1644:Max Heap Space should be Configurable for Docker Image
2022-06-23 19:49:39 +05:30
Arnold GalovicsandArnold Gálovics cd38262152 Refactored business events 2022-06-23 13:04:43 +02:00
Jose Alberto HernandezandArnold Gálovics ddc6a76689 Integration tests for auditing and loan templating 2022-06-22 14:46:48 +02:00
Jose Alberto HernandezandArnold Gálovics 470ff9a745 Specify query parameters for LoanTransactionsApi retrieveTransaction 2022-06-22 14:43:58 +02:00
Jose Alberto HernandezandArnold Gálovics fb0556c20e Specify query parameters for LoansApi retrieveLoan 2022-06-22 14:41:52 +02:00
taskain7andArnold Gálovics ba1fddbc51 [FINERACT-1628] remove update loan paidin advance job and table 2022-06-22 11:25:09 +02:00
Jose Alberto HernandezandArnold Gálovics fb473ad8d4 Specify query parameter for DatatablesApi getDatatableManyEntry 2022-06-22 11:24:08 +02:00
dependabot[bot]andArnold Gálovics 1fb15fa4b6 chore(deps): bump actions/setup-java from 3.3.0 to 3.4.0
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/860f60056505705214d223b91ed7a30f173f6142...16cca5479d7c6b6843f6a6515640ba33c6501543)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-22 11:23:17 +02:00
Arnold GalovicsandArnold Gálovics 23b56fef67 Fixing submittedOnDate as a String in openAPI definition for PostLoansRequest 2022-06-22 10:58:17 +02:00
Dhaval Maniyar e3a256cb51 FINERACT:1644:Max Heap Space should be Configurable for Docker Image 2022-06-21 17:08:28 +05:30
John WoodlockandArnold Gálovics 149279c1fc FINERACT-1643 Catch external_id duplicates for loan transactions 2022-06-20 17:11:17 +02:00
Michael Vorburger ⛑️ 15fff1fb3a Delete fineract.dev.yaml (for now, may be restored again later)
Due to https://github.com/vorburger/www.fineract.dev/issues/15, which I still haven't sorted out yet, this action, despite been green on https://github.com/apache/fineract/actions/workflows/fineract.dev.yaml, currently actually does NOT update https://www.fineract.dev anymore. The only thing this has been doing for the past 6 months is it keeps sending me GCP notification about GCB failures... ;-) Let's therefore remove this? I'll propose reverting this removal when / if I get around to fixing https://github.com/vorburger/www.fineract.dev/issues/15.
2022-06-17 16:58:01 +02:00
ManojandGitHub 2a79a7ed28 Merge pull request #2353 from logoutdhaval/fineract-1634
FINERACT-1634: Invalid balance after withdrawal correction
2022-06-17 15:42:06 +05:30
percyashuandArnold Gálovics 645994f870 FINERACT-1483: Optional value should accessed and throw exception if null 2022-06-16 09:20:18 +02:00
Arnold GalovicsandArnold Gálovics 68fcddf7a7 Fix for Gradle logging on asciidoc and swagger generation 2022-06-16 09:19:06 +02:00
Adam SaghyandArnold Gálovics 3196de0e4d Business date doc 2022-06-15 16:42:55 +02:00
Adam SaghyandArnold Gálovics 38e5edc939 Business date - doc 2022-06-15 16:42:55 +02:00
Dhaval ManiyarandArnold Gálovics 8fc99a8146 FINERACT-1641: Invalid Date of transaction after reversal correction 2022-06-15 15:48:41 +02:00
Arnold GalovicsandArnold Gálovics 78280aab98 Allow headers to be passed for generated fineract client APIs 2022-06-15 11:37:48 +02:00
Adam SaghyandGitHub 4465e632f1 Business date part 1 (#2362)
Business date implementation - part 1
2022-06-14 19:05:52 +02:00
Jose Alberto HernandezandArnold Gálovics a38fc32315 Disable receiving events for batch-only instances 2022-06-14 09:47:44 +02:00
Arnold GalovicsandArnold Gálovics 79375a8b91 Renovate adjustments 2022-06-14 09:15:29 +02:00
Arnold GalovicsandArnold Gálovics e9df96e387 Readonly connection support 2022-06-14 09:15:12 +02:00
Jose Alberto HernandezandArnold Gálovics 2a7d8b9496 Fineract with ReadOnly tenant database connection 2022-06-14 09:15:12 +02:00
Renovate BotandArnold Gálovics 7cd9ff879a chore(deps): pin dependencies 2022-06-13 18:32:32 +02:00
Renovate BotandArnold Gálovics fe500be8ca chore(deps): update dependency jakarta.activation:jakarta.activation-api to v2 2022-06-13 18:27:19 +02:00
Renovate BotandArnold Gálovics 6a4b17a80f chore(deps): update plugin org.openapi.generator to v6 2022-06-13 18:15:29 +02:00
Jose Alberto HernandezandArnold Gálovics 2b122a17ea Fix for reading multirow datatable entry reads non-belonging entry 2022-06-13 18:13:23 +02:00
Dhaval Maniyar 49e67a01c8 FINERACT-1634: Invalid balance after withdrawal correction 2022-06-13 20:39:35 +05:30
Adam SaghyandArnold Gálovics 8e37f93baf Remove FK of job_run_history table 2022-06-08 14:35:56 +02:00
Arnold GalovicsandArnold Gálovics ef2d42fe32 Instance type filter polishing and tests 2022-06-06 13:59:11 +02:00
temi-roandGitHub 367321d76d Fix NullPointerException at Base64$Encoder in ImagesApiResource (FINERACT-1224) 2022-06-03 17:50:37 +02:00
Jose HernandezandArnold Gálovics ebf0e8b539 Filter for instances read, write, batch 2022-06-02 21:39:13 +02:00
Jose Alberto HernandezandArnold Gálovics ee1f988be6 Enable/Disable Messaging in Read Only instance mode 2022-05-31 21:52:50 +02:00
Arnold GalovicsandArnold Gálovics 89a4db47cc Reorganizing business events 2022-05-31 21:51:57 +02:00
taskain7andArnold Gálovics e7b2d6dff5 remove unused jobs 2022-05-31 21:49:39 +02:00
John WoodlockandArnold Gálovics a5bfa43dad FINERACT-1557 (approval removing installment charges) 2022-05-30 10:58:19 +02:00
Manoj VMandArnold Gálovics 264cc3a299 FINERACT-1553-fix-boolean-premitive-to-handle-null 2022-05-27 13:33:11 +02:00
ManojandGitHub 18a44d7613 Merge pull request #2336 from logoutdhaval/fineract-1613
FINERACT-1613:Savings Interest Posting Job
2022-05-27 15:39:32 +05:30
Arnold GalovicsandAleksandar Vidakovic 2e8f018132 Static weaving classpath is tuned to conform with the system dependent path separator 2022-05-27 12:01:53 +02:00
logoutdhaval f576c3f07f FINERACT-1613:Savings Interest Posting Job 2022-05-27 13:39:25 +05:30
Jose Alberto HernandezandArnold Gálovics e277c85c69 Fix in accounting rule system_defined 2022-05-26 22:11:00 +02:00
Jose Alberto HernandezandArnold Gálovics 5942488bde Fix for queries using postgres 2022-05-26 12:01:27 +02:00
NaveenandAleksandar Vidakovic 69a900492c chore: renovate bot setting to pin actions to a full length commit SHA
- https://docs.renovatebot.com/modules/manager/github-actions/#additional-information

- Pinned actions by SHA https://github.com/ossf/scorecard/blob/main/docs/checks.md#pinned-dependencies

>Pin actions to a full length commit SHA

>Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release.
> Pinning to a particular SHA helps mitigate the risk of a bad actor adding a backdoor to the action's repository,
> as they would need to generate a SHA-1 collision for a valid Git object payload.

- https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-third-party-actions
- https://github.com/renovatebot/.github/blob/b0c3aa85ef2bb242580f20b02b380ca532b4ce17/default.json#L13
2022-05-20 19:31:21 +02:00
Jose Alberto HernandezandArnold Gálovics 64bfe33766 Datatable integration test 2022-05-20 15:01:14 +02:00
Arnold GalovicsandArnold Gálovics 6849f45bb8 Deleting the topics module since its incomplete and additional cleanups 2022-05-19 18:39:44 +02:00
Arnold GalovicsandAleksandar Vidakovic 073b1b04b6 Cleanup around Hooks and Hook templates 2022-05-17 23:58:12 +02:00
Arnold GalovicsandArnold Gálovics 2bb6445b4b Spring Batch documentation + Loan COB 2022-05-17 15:57:03 +02:00
John WoodlockandArnold Gálovics e999959829 FINERACT-1596 Goodwill Accounting Changes 2022-05-16 18:57:55 +02:00
John WoodlockandArnold Gálovics c1a3b98edd Update: Cater for loans with no schedule at disburse time 2022-05-16 18:56:25 +02:00
John WoodlockandArnold Gálovics 66621dcc81 FINERACT-1618 Cater for loans with no schedule at disburse time 2022-05-12 13:14:19 +02:00
Arnold GalovicsandArnold Gálovics 77fd4ff4c1 Fine tuning the batch APIs and minor adjustments 2022-05-12 11:04:01 +02:00
taskain7andArnold Gálovics a89fe53937 FINERACT-1471: AsciiDoc extension for read/write/batch separation 2022-05-12 10:08:03 +02:00
Aleksandar Vidakovic b42423b941 Last minute release plugin fixes 2022-05-11 16:38:29 +02:00
Aleksandar Vidakovic 555240c094 FINERACT-1607: Improve documentation on Cucumber usage 2022-05-11 14:12:41 +02:00
Aleksandar VidakovicandAleksandar Vidakovic 235dfa8738 FINERACT-1607: Improve documentation on Cucumber usage 2022-05-11 14:07:07 +02:00
ManojandGitHub 3827417a6f Merge pull request #2322 from apurbraj/develop
Post Interest for Savings Job Fix
2022-05-10 22:47:31 +05:30
apurbraj a97a3d0402 FINERACT-1603- Post Interest Job Fix 2022-05-10 21:20:35 +05:30
Aleksandar Vidakovic 6111e69329 FINERACT-1608: Add introduction to Asciidoc 2022-05-10 12:24:40 +02:00
Aleksandar VidakovicandAleksandar Vidakovic b0a261cbd5 FINERACT-1608: Add introduction to Asciidoc 2022-05-10 12:12:57 +02:00
John WoodlockandAleksandar Vidakovic 7f11d815d9 FINERACT-1557 enable previous disabled refundByCash accounting tests 2022-05-09 17:52:01 +02:00
John WoodlockandArnold Gálovics a3ab06593f FINERACT-1557 enable previous disabled refundByCash accounting tests 2022-05-09 15:55:25 +02:00
taskain7andArnold Gálovics 665bd0f6fb FINERACT-1483: fix Sonar vulnerabilities with Minor severity 2022-05-09 14:42:22 +02:00
Aleksandar VidakovicandAleksandar Vidakovic 9696a7e905 FINERACT-1615: Fix jakarta mail related dependency issue 2022-05-06 17:07:11 +02:00
Arnold GalovicsandArnold Gálovics 9d4d848df5 Fixes to support MySQL 8 due to specific reserved keywords 2022-05-06 09:38:26 +02:00
Aleksandar VidakovicandAleksandar Vidakovic 6aa668a5f5 FINERACT-1470-2: Build issues 2022-05-06 08:46:24 +02:00
Aleksandar VidakovicandAleksandar Vidakovic decedc52f8 FINERACT-1470-fix: Fix Sonar configuration 2022-05-04 15:33:56 +02:00
John WoodlockandAleksandar Vidakovic c2be3d9b4b FINERACT-1596 New Merchant Issued and Payout Refunds and Goodwill Credit Transactions 2022-05-04 15:13:30 +02:00
Aleksandar VidakovicandAleksandar Vidakovic 40eb547a5c FINERACT-1470: Fineract release plugin 2022-05-04 15:11:53 +02:00
Arnold GalovicsandArnold Gálovics b185937962 Sonar test 2022-05-02 14:32:20 +02:00
Aleksandar VidakovicandArnold Gálovics 4bef3ba6b8 FINERACT-1528: Replace copy and pasted Swagger UI with Springdoc 2022-05-02 14:30:49 +02:00
John WoodlockandArnold Gálovics 3bc160c33c FINERACT-1604 fIX - Loan Account Details page not working 2022-04-29 15:21:38 +02:00
John WoodlockandAleksandar Vidakovic a33c8f9439 FINERACT-1573 Credit Balance Refund - cater for cash accounting 2022-04-28 12:16:22 +02:00
Aleksandar VidakovicandAleksandar Vidakovic 38ff5dada3 FINERACT-1594: Create setenv.sh file for Tomcat installations 2022-04-28 05:55:18 +02:00
taskain7andArnold Gálovics 136ef55519 FINERACT-1483: fix //NOSONAR positions 2022-04-27 16:18:47 +02:00
taskain7andArnold Gálovics 56d14a1d69 FINERACT-1571: Allow Liquibase data migration for write instances only 2022-04-27 16:18:29 +02:00
Jose HernandezandArnold Gálovics e3e4dbeb8a Backward compatibility with CodeLookUp 2022-04-26 19:09:05 +02:00
Manoj VMandArnold Gálovics 6d4e731ff9 FINERACT-1449-Loan-advance-payment-issue-fix 2022-04-26 15:37:03 +02:00
Arnold GalovicsandArnold Gálovics 9d212ba471 FINERACT-1593: Bugfixes for Client Address creation 2022-04-26 13:48:23 +02:00
John WoodlockandArnold Gálovics df5718ad04 FINERACT-1573 swagger updates 2022-04-25 16:39:36 +02:00
Renovate BotandPetri Tuomola 9cc7f0e637 chore(deps): update all non-major dependencies 2022-04-23 17:06:06 +08:00
Petri TuomolaandAleksandar Vidakovic a9feedbdf0 Moving SonarCloud to GitHub Actions 2022-04-23 09:36:04 +02:00
Jose HernandezandArnold Gálovics 6fcf8ad861 Fix for supporting numeric postgres data type in datatables 2022-04-22 08:39:45 +02:00
naveensrinivasanandAleksandar Vidakovic e088e4d70d chore: Set permissions for GitHub actions
Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.

- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions

https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

[Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)

Signed-off-by: naveensrinivasan <172697+naveensrinivasan@users.noreply.github.com>
2022-04-21 13:46:58 +02:00
taskain7andArnold Gálovics 5980487d89 FINERACT-1571: introducing environment variables for read/write/batch separation 2022-04-20 13:16:41 +02:00
John WoodlockandArnold Gálovics d1168833cc Credit Balance Refund loan transaction 2022-04-19 10:04:16 +02:00
Jose HernandezandAleksandar Vidakovic 3d3e8c4083 Fixes integration tests
FINERACT-1557: Fixes for integration tests

FINERACT-1557: Fixes for integration tests

Fixes integration tests
2022-04-14 00:37:55 +02:00
taskain7andArnold Gálovics eb11c32ee3 FINERACT-1483: fix Sonar Security Hotspots 2022-04-11 17:44:05 +02:00
Arnold GalovicsandArnold Gálovics ce6a1fcafd Fixed a lot of up-to-date Gradle checks to speed up integration test running 2022-04-09 13:24:12 +02:00
Arnold GalovicsandArnold Gálovics ab80cc0477 Lombok refactoring continued 2022-04-09 13:23:57 +02:00
Arnold GalovicsandArnold Gálovics ddd97f274e Sonarqube quickfix 2022-04-09 12:55:36 +02:00
Arnold GalovicsandArnold Gálovics bb514443ce Lombok introduction 2022-04-08 16:00:53 +02:00
Arnold GalovicsandAleksandar Vidakovic e009158d7d Copy & remove only persistence.xml during static weaving instead of full META-INF 2022-04-08 14:08:08 +02:00
taskain7andArnold Gálovics f22807b944 FINERACT-1483: fixing Sonar vulnerabilities with Blocker and Critical severity 2022-04-07 11:10:38 +02:00
Arnold GalovicsandAleksandar Vidakovic 44e6d369e5 FINERACT-1562: Excluding persistence.xml from being picked up by Spring 2022-04-07 06:05:09 +02:00
ManojandGitHub 61536332a3 Merge pull request #2215 from logoutdhaval/fineract-1553
FINERACT-1553: Lien configured at product level
2022-04-06 19:15:03 +05:30
logoutdhaval 52063fc354 FINERACT-1553: Lien added 2022-04-06 16:48:45 +05:30
Vic RomeroandAleksandar Vidakovic 4648a96a35 Configuring SonarQube using only the sonarqube.yml file
Configuring SonarQube using only the sonarqube.yml file

Configuring SonarQube using only the sonarqube.yml file

Configuring SonarQube using only the sonarqube.yml file

Configuring SonarQube using only the sonarqube.yml file

Configuring SonarQube using only the sonarqube.yml file

Configuring SonarQube using only the sonarqube.yml file

Configuring SonarQube using only the sonarqube.yml file

Changes have been done for making the GitHub actions flexible to push changes to the upstream Apache Fineract
2022-04-05 17:15:01 +02:00
Aleksandar VidakovicandAleksandar Vidakovic cb87c9f550 Use 'renovate' for aggregated dependency upgrades (update) 2022-04-05 17:11:39 +02:00
Aleksandar VidakovicandAleksandar Vidakovic 35c835f4b5 Use 'renovate' for aggregated dependency upgrades 2022-04-05 15:52:44 +02:00
dependabot[bot]andAleksandar Vidakovic f17ef1e9a9 chore(deps): bump swagger-core from 1.6.5 to 1.6.6
Bumps [swagger-core](https://github.com/swagger-api/swagger-core) from 1.6.5 to 1.6.6.
- [Release notes](https://github.com/swagger-api/swagger-core/releases)
- [Commits](https://github.com/swagger-api/swagger-core/compare/v1.6.5...v1.6.6)

---
updated-dependencies:
- dependency-name: io.swagger:swagger-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-05 14:54:59 +02:00
Renovate BotandAleksandar Vidakovic 25431a5e53 chore(deps): update dependency io.swagger.core.v3:swagger-annotations to v2.2.0 2022-04-05 14:52:59 +02:00
Renovate BotandAleksandar Vidakovic 03920c8448 chore(deps): update dependency io.swagger:swagger-annotations to v1.6.6 2022-04-05 14:52:25 +02:00
rrpawar96andArnold Gálovics 9329b99185 FINERACT-130:AccountHold 2022-04-04 15:50:54 +02:00
Renovate BotandAleksandar Vidakovic e65d896c38 chore(deps): update dependency com.icegreen:greenmail-junit5 to v1.6.8 2022-04-03 21:24:07 +02:00
Renovate BotandAleksandar Vidakovic 8721b00b2a chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v5.13.1 2022-04-02 22:00:04 +02:00
Renovate BotandAleksandar Vidakovic 079158f4b0 chore(deps): update dependency org.jetbrains.kotlin:kotlin-bom to v1.6.20 2022-04-02 08:45:14 +02:00
dependabot[bot]andAleksandar Vidakovic 2682a349cb chore(deps): bump spring-framework-bom from 5.3.17 to 5.3.18
Bumps [spring-framework-bom](https://github.com/spring-projects/spring-framework) from 5.3.17 to 5.3.18.
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.17...v5.3.18)

---
updated-dependencies:
- dependency-name: org.springframework:spring-framework-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-02 08:40:41 +02:00
Renovate BotandPetri Tuomola 80b6721bd5 chore(deps): update dependency gradle to v7.4.2 2022-04-02 14:04:10 +08:00
Renovate BotandPetri Tuomola 23610b4a8a chore(deps): update spring boot to v2.6.6 2022-04-02 14:03:19 +08:00
Renovate BotandPetri Tuomola d2e6446df1 chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.12.191 2022-04-02 14:02:57 +08:00
Renovate BotandPetri Tuomola a6c555b690 chore(deps): update dependency org.apache.tomcat:tomcat to v9.0.62 2022-04-02 14:02:30 +08:00
Renovate BotandPetri Tuomola 841b57a834 chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v4.10.3 2022-04-02 14:02:05 +08:00
dependabot[bot]andAleksandar Vidakovic 250aee65c8 chore(deps): bump aws-java-sdk-s3 from 1.12.188 to 1.12.189
Bumps [aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.188 to 1.12.189.
- [Release notes](https://github.com/aws/aws-sdk-java/releases)
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.188...1.12.189)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-31 11:03:04 +02:00
Arnold GalovicsandAleksandar Vidakovic d67dbece35 PostgreSQL Docker permission fix on non-Windows machines 2022-03-31 11:00:13 +02:00
Aleksandar VidakovicandAleksandar Vidakovic cf177a0bd4 FINERACT-1552: Upgrade fineract-client to OpenAPI generator 5.4.0 2022-03-31 10:53:03 +02:00
Aleksandar VidakovicandAleksandar Vidakovic 5389276bc7 FINERACT-1555: Upgrade libraries 2022-03-30 17:22:44 +02:00
ManojandGitHub bc0b5c00bb FINERACT-1450-fix (#2177) 2022-03-28 22:41:36 +05:30
Renovate BotandPetri Tuomola 35d0c4fbce chore(deps): update dependency io.github.classgraph:classgraph to v4.8.143 2022-03-28 22:22:02 +08:00
Aleksandar VidakovicandAleksandar Vidakovic a20d586c84 FINERACT-1550: Fix repetitive JdbcTemplate/RoutingDataSource injection 2022-03-27 08:00:10 +02:00
Aleksandar VidakovicandAleksandar Vidakovic 863d70c081 FINERACT-1529: Update dependencies 2022-03-27 07:59:29 +02:00
Aleksandar VidakovicandArnold Gálovics da03d73704 FINERACT-1547: Cleanup unnecessary credit bureau dependency in infrastructure core 2022-03-26 10:06:08 +01:00
Aleksandar VidakovicandAleksandar Vidakovic 83eb0842dc FINERACT-1532: Create an example for pluggability 2022-03-25 08:56:59 +01:00
dependabot[bot]andPetri Tuomola 2ebde6d080 chore(deps): bump aws-java-sdk-s3 from 1.12.182 to 1.12.185
Bumps [aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.182 to 1.12.185.
- [Release notes](https://github.com/aws/aws-sdk-java/releases)
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.182...1.12.185)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-25 14:16:17 +08:00
dependabot[bot]andPetri Tuomola 800495f64e chore(deps): bump swagger-ui-dist from 4.6.2 to 4.9.0
Bumps [swagger-ui-dist](https://github.com/swagger-api/swagger-ui) from 4.6.2 to 4.9.0.
- [Release notes](https://github.com/swagger-api/swagger-ui/releases)
- [Commits](https://github.com/swagger-api/swagger-ui/compare/v4.6.2...v4.9.0)

---
updated-dependencies:
- dependency-name: org.webjars.npm:swagger-ui-dist
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-25 14:15:46 +08:00
John WoodlockandAleksandar Vidakovic b0e37c24eb Allow externalId to be provided when creating loan charges 2022-03-24 15:28:12 +01:00
dependabot[bot]andAleksandar Vidakovic b387a92b13 chore(deps): bump aws-java-sdk-s3 from 1.12.181 to 1.12.182
Bumps [aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.181 to 1.12.182.
- [Release notes](https://github.com/aws/aws-sdk-java/releases)
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.181...1.12.182)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-22 13:50:46 +01:00
taskain7andAleksandar Vidakovic bd48a93e24 FINERACT-1483: fix Sonar bugs with Blocker and Critical severity 2022-03-22 13:49:47 +01:00
Arnold GalovicsandAleksandar Vidakovic 2d2192ca17 FINERACT-1508: Liquibase test extension for Cucumber + Windows path shortening enabled for Cucumber 2022-03-21 15:09:39 +01:00
Aleksandar VidakovicandAleksandar Vidakovic 17f521604d Fix transitive dependency issues introduced by Mock Server upgrade 2022-03-21 13:04:57 +01:00
Aleksandar VidakovicandArnold Gálovics 5232656a6e FINERACT-1508: Add Cucumber test suppport 2022-03-18 09:23:15 +01:00
Arnold GalovicsandAleksandar Vidakovic 56824802b3 FINERACT-849: Keep EclipseLink on the same version with Dependabot 2022-03-18 09:14:01 +01:00
dependabot[bot]andAleksandar Vidakovic 173f603f64 chore(deps): bump liquibase-core from 4.8.0 to 4.9.0
Bumps [liquibase-core](https://github.com/liquibase/liquibase) from 4.8.0 to 4.9.0.
- [Release notes](https://github.com/liquibase/liquibase/releases)
- [Changelog](https://github.com/liquibase/liquibase/blob/master/changelog.txt)
- [Commits](https://github.com/liquibase/liquibase/compare/v4.8.0...v4.9.0)

---
updated-dependencies:
- dependency-name: org.liquibase:liquibase-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-18 09:12:51 +01:00
Renovate BotandAwasum Yannick e9d97a6f9b chore(deps): update dependency org.springframework:spring-framework-bom to v5.3.17 2022-03-17 17:45:27 +01:00
dependabot[bot]andAleksandar Vidakovic b544068fe4 chore(deps): bump aws-java-sdk-s3 from 1.12.179 to 1.12.180
Bumps [aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.179 to 1.12.180.
- [Release notes](https://github.com/aws/aws-sdk-java/releases)
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.179...1.12.180)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-17 10:40:13 +01:00
Renovate BotandAleksandar Vidakovic d883a5aa9c chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v5.13.0 2022-03-17 10:39:43 +01:00
Arnold GalovicsandAleksandar Vidakovic 7b3ab9bd24 FINERACT-849: Minor fixes + docs for EclipseLink/PostgreSQL support
Fineract Docker build for PostgreSQL / build (push) Canceled after 0s
Fineract Docker build / build (push) Canceled after 0s
Fineract Gradle build - basicauth - PostgreSQL / build (push) Canceled after 0s
Fineract Gradle build - basicauth / build (push) Canceled after 0s
Fineract Sonarqube / build (push) Canceled after 0s
2022-03-16 18:06:46 +01:00
John WoodlockandAleksandar Vidakovic e4e4782972 Allow Reschedule feature for multi-disbursal loans w/o expected details 2022-03-16 15:45:22 +01:00
dependabot[bot]andAleksandar Vidakovic 33112308a3 chore(deps): bump aws-java-sdk-s3 from 1.12.177 to 1.12.179
Bumps [aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.177 to 1.12.179.
- [Release notes](https://github.com/aws/aws-sdk-java/releases)
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.177...1.12.179)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-16 11:05:24 +01:00
Renovate BotandAleksandar Vidakovic 085532ca97 chore(deps): update dependency org.apache.tomcat:tomcat to v9.0.60 2022-03-16 11:04:54 +01:00
John WoodlockandAleksandar Vidakovic bd8dab1946 Allow multi-disbursements without setting up expected tranche details (api/fix) 2022-03-14 16:30:11 +01:00
dependabot[bot]andAleksandar Vidakovic 7209e70da1 chore(deps): bump aws-java-sdk-s3 from 1.12.176 to 1.12.177
Bumps [aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.176 to 1.12.177.
- [Release notes](https://github.com/aws/aws-sdk-java/releases)
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.176...1.12.177)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-14 10:15:51 +01:00
Aleksandar VidakovicandAleksandar Vidakovic 99e8525729 FINERACT-1526: Upgrade dependencies 2022-03-11 16:55:30 +01:00
Renovate BotandAleksandar Vidakovic 71c4cef5d0 chore(deps): update dependency jakarta.ws.rs:jakarta.ws.rs-api to v3 2022-03-11 01:01:36 +01:00
Renovate BotandAleksandar Vidakovic 4583f9b89f chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v4.6.2 2022-03-11 01:00:29 +01:00
John WoodlockandAleksandar Vidakovic add67b966d Repayment schedule issue to add Multi Disbursement on same day 2022-03-11 00:57:58 +01:00
Renovate BotandPetri Tuomola 2e66d4628a chore(deps): update dependency org.eclipse.persistence:eclipselink to v3 2022-03-10 20:18:40 +08:00
John-WoodlockandGitHub a25d07df20 Allow multi-disbursements without setting up expected tranche details (#2129) 2022-03-10 10:37:35 +01:00
Renovate BotandAleksandar Vidakovic 91a8c948d1 chore(deps): update dependency gradle to v7.4.1 2022-03-10 09:43:26 +01:00
dependabot[bot]andAleksandar Vidakovic 4115bdf2e7 chore(deps): bump aws-java-sdk-s3 from 1.12.174 to 1.12.175
Bumps [aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.174 to 1.12.175.
- [Release notes](https://github.com/aws/aws-sdk-java/releases)
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.174...1.12.175)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-10 09:42:23 +01:00
Arnold GalovicsandAleksandar Vidakovic d5c611564f FINERACT-849: Switch to EclipseLink 2022-03-10 09:33:01 +01:00
dependabot[bot]andPetri Tuomola 7f8148e166 chore(deps): bump aws-java-sdk-s3 from 1.12.173 to 1.12.174
Bumps [aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.173 to 1.12.174.
- [Release notes](https://github.com/aws/aws-sdk-java/releases)
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.173...1.12.174)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-09 14:50:17 +08:00
dependabot[bot]andAleksandar Vidakovic 0a9f8e015d chore(deps): bump aws-java-sdk-s3 from 1.12.172 to 1.12.173
Bumps [aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.172 to 1.12.173.
- [Release notes](https://github.com/aws/aws-sdk-java/releases)
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.172...1.12.173)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-08 09:07:08 +01:00
Renovate BotandAleksandar Vidakovic e1ea21fbb1 chore(deps): update dependency com.github.spotbugs:spotbugs-annotations to v4.6.0 2022-03-08 09:05:59 +01:00
Renovate BotandAleksandar Vidakovic 7f19251ebf chore(deps): update dependency postgres to v14 2022-03-07 10:58:10 +01:00
dependabot[bot]andAleksandar Vidakovic 9e73d0def0 chore(deps): bump mariadb-java-client from 2.7.5 to 3.0.3
Bumps [mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) from 2.7.5 to 3.0.3.
- [Release notes](https://github.com/mariadb-corporation/mariadb-connector-j/releases)
- [Changelog](https://github.com/mariadb-corporation/mariadb-connector-j/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mariadb-corporation/mariadb-connector-j/compare/2.7.5...3.0.3)

---
updated-dependencies:
- dependency-name: org.mariadb.jdbc:mariadb-java-client
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 10:56:10 +01:00
Renovate BotandPetri Tuomola b6a8515b78 chore(deps): update plugin com.google.cloud.tools.jib to v3.2.0 2022-03-07 06:30:06 +08:00
Renovate BotandPetri Tuomola c355a47863 chore(deps): update plugin com.gorylenko.gradle-git-properties to v2.4.0 2022-03-07 06:29:34 +08:00
Renovate BotandPetri Tuomola 85937c5779 chore(deps): update actions/setup-java action to v3 2022-03-07 06:29:03 +08:00
Renovate BotandAleksandar Vidakovic 166952839c chore(deps): update plugin com.github.jk1.dependency-license-report to v2.1 2022-03-06 18:43:55 +01:00
Renovate BotandAleksandar Vidakovic 6a290e8338 chore(deps): update plugin com.adarshr.test-logger to v3.2.0 2022-03-06 18:43:28 +01:00
Renovate BotandAleksandar Vidakovic 5d0f2d4cb0 chore(deps): update dependency org.webjars:webjars-locator-core to v0.50 2022-03-06 18:08:51 +01:00
Renovate BotandAleksandar Vidakovic c52cb044c2 chore(deps): update dependency postgres to v13.6 2022-03-06 18:08:22 +01:00
Renovate BotandPetri Tuomola d4c978fa11 chore(deps): update dependency org.postgresql:postgresql to v42.3.3 2022-03-06 20:33:48 +08:00
Renovate BotandAleksandar Vidakovic a5e109bc80 chore(deps): update dependency com.google.guava:guava to v31.1-jre 2022-03-06 10:54:11 +01:00
Renovate BotandAleksandar Vidakovic 1c6028694d chore(deps): update dependency com.puppycrawl.tools:checkstyle to v9.3 2022-03-06 10:53:34 +01:00
Renovate BotandAleksandar Vidakovic 4d3081951d chore(deps): update dependency mariadb to v10.8 2022-03-06 10:53:06 +01:00
Renovate BotandAleksandar Vidakovic cd9ae593c9 chore(deps): update dependency org.liquibase:liquibase-core to v4.8.0 2022-03-06 10:52:33 +01:00
Renovate BotandPetri Tuomola f58e58d604 chore(deps): update dependency com.github.sevntu-checkstyle:sevntu-checks to v1.41.0 2022-03-06 15:29:21 +08:00
Renovate BotandAleksandar Vidakovic d6dda2b8d4 chore(deps): update spring boot to v2.6.4 2022-03-06 03:44:21 +01:00
Renovate BotandAleksandar Vidakovic 0da8c211ac chore(deps): update plugin io.swagger.core.v3.swagger-gradle-plugin to v2.1.13 2022-03-06 03:44:04 +01:00
Renovate BotandAleksandar Vidakovic 5f22aeb28a chore(deps): update plugin com.github.andygoossens.modernizer to v1.6.2 2022-03-06 03:43:45 +01:00
Renovate BotandAleksandar Vidakovic 9d126123ef chore(deps): update okhttpversion to v4.9.3 2022-03-06 03:10:06 +01:00
Renovate BotandAleksandar Vidakovic 4bb93fe457 chore(deps): update dependency org.mnode.ical4j:ical4j to v3.1.3 2022-03-06 00:52:57 +01:00
Renovate BotandAleksandar Vidakovic c2c492b46d chore(deps): update dependency org.mariadb.jdbc:mariadb-java-client to v2.7.5 2022-03-06 00:52:19 +01:00
Renovate BotandAleksandar Vidakovic 3fb7f77a59 chore(deps): update dependency org.glassfish.jaxb:jaxb-runtime to v2.3.6 2022-03-05 23:59:00 +01:00
Renovate BotandAleksandar Vidakovic 02a6fea767 chore(deps): update dependency org.ehcache:ehcache to v3.9.9 2022-03-05 23:58:32 +01:00
fdd6227254 Minor: Name PostgreSQL instead of MariaDB in build-postgresql.yml (#2059)
Co-authored-by: Aleksandar Vidakovic <vidakovic@users.noreply.github.com>
2022-03-05 23:20:50 +01:00
Renovate BotandAleksandar Vidakovic b5e5453341 chore(deps): update dependency org.apache.tomcat:tomcat to v9.0.59 2022-03-05 23:19:44 +01:00
Renovate BotandAleksandar Vidakovic d79f52f0c7 chore(deps): update dependency org.apache.openjpa:openjpa to v3.2.1 2022-03-05 23:19:30 +01:00
Renovate BotandAleksandar Vidakovic ef3641cabe chore(deps): update dependency org.apache.activemq:activemq-broker to v5.16.4 2022-03-05 21:20:57 +01:00
Renovate BotandAleksandar Vidakovic bb4c5051ba chore(deps): update dependency io.swagger:swagger-core to v1.6.5 2022-03-05 21:20:29 +01:00
Michael Vorburger ⛑️andAleksandar Vidakovic 8cf38f27a0 Add link to fineract-doc/src/docs/en/deployment.adoc#https to /README.md#ssl-configuration
Follow up to #2023.
2022-03-05 19:44:18 +01:00
dependabot[bot]andAleksandar Vidakovic 1afc588bf6 Bump aws-java-sdk-s3 from 1.12.100 to 1.12.172
Bumps [aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.100 to 1.12.172.
- [Release notes](https://github.com/aws/aws-sdk-java/releases)
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.100...1.12.172)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-05 19:22:16 +01:00
dependabot[bot]andAleksandar Vidakovic f9b0e2b2b0 Bump awaitility from 4.1.1 to 4.2.0
Bumps [awaitility](https://github.com/awaitility/awaitility) from 4.1.1 to 4.2.0.
- [Release notes](https://github.com/awaitility/awaitility/releases)
- [Changelog](https://github.com/awaitility/awaitility/blob/master/changelog.txt)
- [Commits](https://github.com/awaitility/awaitility/compare/awaitility-4.1.1...awaitility-4.2.0)

---
updated-dependencies:
- dependency-name: org.awaitility:awaitility
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-05 18:39:10 +01:00
dependabot[bot]andAleksandar Vidakovic 9ea8a4f9c7 Bump swagger-ui-dist from 4.0.1 to 4.6.1
Bumps [swagger-ui-dist](https://github.com/swagger-api/swagger-ui) from 4.0.1 to 4.6.1.
- [Release notes](https://github.com/swagger-api/swagger-ui/releases)
- [Commits](https://github.com/swagger-api/swagger-ui/compare/v4.0.1...v4.6.1)

---
updated-dependencies:
- dependency-name: org.webjars.npm:swagger-ui-dist
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-05 18:38:34 +01:00
dependabot[bot]andAleksandar Vidakovic 30c7162ea4 Bump json-path from 2.6.0 to 2.7.0
Bumps [json-path](https://github.com/jayway/JsonPath) from 2.6.0 to 2.7.0.
- [Release notes](https://github.com/jayway/JsonPath/releases)
- [Changelog](https://github.com/json-path/JsonPath/blob/master/changelog.md)
- [Commits](https://github.com/jayway/JsonPath/compare/json-path-2.6.0...json-path-2.7.0)

---
updated-dependencies:
- dependency-name: com.jayway.jsonpath:json-path
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-05 18:38:03 +01:00
Renovate BotandAleksandar Vidakovic 2cecfb09c7 chore(deps): update dependency io.swagger.core.v3:swagger-annotations to v2.1.13 2022-03-05 18:37:38 +01:00
Renovate BotandAleksandar Vidakovic 2172d14659 chore(deps): update dependency io.swagger:swagger-annotations to v1.6.5 2022-03-05 18:37:13 +01:00
dependabot[bot]andAleksandar Vidakovic 30e6d55de0 Bump com.github.spotbugs from 5.0.3 to 5.0.6
Bumps com.github.spotbugs from 5.0.3 to 5.0.6.

---
updated-dependencies:
- dependency-name: com.github.spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-05 18:36:47 +01:00
dependabot[bot]andAleksandar Vidakovic af846fb397 Bump actions/stale from 3 to 5
Bumps [actions/stale](https://github.com/actions/stale) from 3 to 5.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v3...v5)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-05 18:21:55 +01:00
Renovate BotandAleksandar Vidakovic bc54579657 chore(deps): update gradle/wrapper-validation-action commit hash to 859c332 2022-03-05 18:13:00 +01:00
dependabot[bot]andAleksandar Vidakovic 18fb7bdd56 Bump com.diffplug.spotless from 6.1.0 to 6.3.0
Bumps com.diffplug.spotless from 6.1.0 to 6.3.0.

---
updated-dependencies:
- dependency-name: com.diffplug.spotless
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-05 18:12:11 +01:00
dependabot[bot]andAleksandar Vidakovic 2bfbc6b84f Bump io.rest-assured dependency set from 4.3.0 to 4.5.1
Bumps `io.rest-assured` dependency set from 4.3.0 to 4.5.1.

Updates `rest-assured` from 4.3.0 to 4.5.1
- [Release notes](https://github.com/rest-assured/rest-assured/releases)
- [Changelog](https://github.com/rest-assured/rest-assured/blob/master/changelog.txt)
- [Commits](https://github.com/rest-assured/rest-assured/compare/rest-assured-4.3.0...rest-assured-4.5.1)

Updates `json-path` from 4.3.0 to 4.5.1
- [Release notes](https://github.com/rest-assured/rest-assured/releases)
- [Changelog](https://github.com/rest-assured/rest-assured/blob/master/changelog.txt)
- [Commits](https://github.com/rest-assured/rest-assured/compare/rest-assured-4.3.0...rest-assured-4.5.1)

Updates `xml-path` from 4.3.0 to 4.5.1
- [Release notes](https://github.com/rest-assured/rest-assured/releases)
- [Changelog](https://github.com/rest-assured/rest-assured/blob/master/changelog.txt)
- [Commits](https://github.com/rest-assured/rest-assured/compare/rest-assured-4.3.0...rest-assured-4.5.1)

---
updated-dependencies:
- dependency-name: io.rest-assured:rest-assured
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: io.rest-assured:json-path
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: io.rest-assured:xml-path
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-05 18:08:31 +01:00
dependabot[bot]andAleksandar Vidakovic 51c9b97216 Bump gson from 2.8.9 to 2.9.0
Bumps [gson](https://github.com/google/gson) from 2.8.9 to 2.9.0.
- [Release notes](https://github.com/google/gson/releases)
- [Changelog](https://github.com/google/gson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/google/gson/compare/gson-parent-2.8.9...gson-parent-2.9.0)

---
updated-dependencies:
- dependency-name: com.google.code.gson:gson
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-05 18:07:45 +01:00
dependabot[bot]andAleksandar Vidakovic 0e2812d70a Bump gradle-cargo-plugin from 2.8.0 to 2.9.0
Bumps gradle-cargo-plugin from 2.8.0 to 2.9.0.

---
updated-dependencies:
- dependency-name: com.bmuschko:gradle-cargo-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-05 18:07:19 +01:00
dependabot[bot]andAleksandar Vidakovic 1fca00e12d Bump postgresql from 42.1.4 to 42.3.3
Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.1.4 to 42.3.3.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.1.4...REL42.3.3)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-05 18:06:46 +01:00
dependabot[bot]andAleksandar Vidakovic 721256aca9 Bump tika-core from 2.1.0 to 2.3.0
Bumps [tika-core](https://github.com/apache/tika) from 2.1.0 to 2.3.0.
- [Release notes](https://github.com/apache/tika/releases)
- [Changelog](https://github.com/apache/tika/blob/main/CHANGES.txt)
- [Commits](https://github.com/apache/tika/compare/2.1.0...2.3.0)

---
updated-dependencies:
- dependency-name: org.apache.tika:tika-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-05 18:06:08 +01:00
Renovate BotandAleksandar Vidakovic 265928b7c4 chore(deps): update dependency com.github.spotbugs:spotbugs-annotations to v4.5.3 2022-03-05 18:05:25 +01:00
Renovate BotandAleksandar Vidakovic e7ee6d16fe chore(deps): update dependency com.github.librepdf:openpdf to v1.3.27 2022-03-05 18:04:50 +01:00
Renovate BotandAleksandar Vidakovic 9dbdf90371 chore(deps): update dependency com.icegreen:greenmail-junit5 to v1.6.7 2022-03-05 18:04:21 +01:00
Renovate BotandAleksandar Vidakovic a6c5a06d38 chore(deps): update dependency io.github.classgraph:classgraph to v4.8.141 2022-03-05 18:03:48 +01:00
Renovate BotandMichael Vorburger ⛑️ a3bfff96ee chore(deps): update dependency com.google.cloud.sql:mysql-socket-factory-connector-j-8 to v1.4.4 2022-03-05 16:25:51 +01:00
dependabot[bot]andMichael Vorburger ⛑️ ede24fc1d7 Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-05 13:45:09 +01:00
Michael Vorburger ⛑️andGitHub ae40152a1d Fix invalid dependabot.yml (FINERACT-1453) 2022-03-05 13:12:49 +01:00
Michael Vorburger ⛑️ ebd761634a Create initial dependabot.yml (FINERACT-1453)
see https://issues.apache.org/jira/browse/FINERACT-1453
2022-03-05 13:10:09 +01:00
John WoodlockandAleksandar Vidakovic de64de876c FINERACT-1515 Allow multi-disbursements without setting up expected tranche details 2022-03-03 19:09:09 +01:00
Aleksandar VidakovicandPetri Tuomola 2bb8ae2f16 Set release version pattern 2022-02-26 19:09:46 +08:00
Arnold GalovicsandAleksandar Vidakovic 62a5602cbd FINERACT-1512: Fixed no SSL configuration setup 2022-02-25 15:34:23 +01:00
Arnold GalovicsandAleksandar Vidakovic a5672fbe25 FINERACT-1498: Cleaning up Flyway files 2022-02-24 09:55:53 +01:00
Arnold GalovicsandAleksandar Vidakovic aa24599244 FINERACT-984-7: Explicit ordering fix for moving ResultSets 2022-02-23 20:55:13 +01:00
Arnold GalovicsandAleksandar Vidakovic 0c01e0c844 FINERACT-984-7: Update twofactor and oauth tests with postgresql connection 2022-02-23 18:45:10 +01:00
Arnold GalovicsandAleksandar Vidakovic 11b0a91aa7 FINERACT-984-7: Extend GitHub Action pipeline for PostgreSQL 2022-02-23 18:45:10 +01:00
ManojandAleksandar Vidakovic 8eec00b50f FINERACT-1510-reversal-transaction-posting-pg-migration 2022-02-23 11:28:23 +01:00
ManojandGitHub d7d9a831ec FINERACT-1510-reversal-transaction-posting (#2046) 2022-02-23 00:01:16 +05:30
Arnold GalovicsandAleksandar Vidakovic 8389106a58 FINERACT-984-6: PostgreSQL support 2022-02-22 18:03:09 +01:00
Arnold GalovicsandAleksandar Vidakovic 34729186d7 FINERACT-984-5: More database independence 2022-02-21 20:11:05 +01:00
rrpawar96andAleksandar Vidakovic a2be1eb985 FINERACT-1500:SavingsHoldAccountLien 2022-02-21 19:34:01 +01:00
Arnold GalovicsandAleksandar Vidakovic 4a5919a4a7 FINERACT-984-4: More database independence 2022-02-21 19:11:27 +01:00
Arnold GalovicsandAleksandar Vidakovic 16207ef952 FINERACT-984: More MySQL independence in native queries 2022-02-21 18:31:18 +01:00
Arnold GalovicsandAleksandar Vidakovic 088df46a49 FINERACT-984: Query changes for database independence 2022-02-21 17:33:35 +01:00
Aleksandar VidakovicandAleksandar Vidakovic 431d3b37bb FINERACT-1509: Gradle wrapper missing in source distribution 2022-02-21 09:16:36 +01:00
Aleksandar VidakovicandAleksandar Vidakovic b96cae37ed FINERACT-1490: SSL configuration based on application.properties 2022-02-21 00:02:03 +01:00
Arnold GalovicsandAleksandar Vidakovic 45264ea209 FINERACT-984: Test improvements to not rely on database storage ordering and some database independent query implementations 2022-02-20 23:24:50 +01:00
rrpawar96andAleksandar Vidakovic 72fd2fe134 FINERACT-1503:FixStaffModule 2022-02-20 20:00:25 +01:00
Arnold GalovicsandAleksandar Vidakovic 45bed0a05a FINERACT-1498: Switching from Flyway to Liqubase migrations 2022-02-19 22:55:32 +01:00
NC23370_Sandeep_Kumar_SoniandPetri Tuomola 746c589a6e FINERACT-1502 To support Webhooks with all paths instead of only absolute path 2022-02-19 17:47:01 +08:00
Aleksandar VidakovicandPetri Tuomola 73723aca66 FINERACT-1506: Add WAR artifact to release distribution again 2022-02-19 17:46:44 +08:00
Aleksandar VidakovicandPetri Tuomola 07a8aa1650 FINERACT-1507: Last minor dependency updates before release 2022-02-19 17:45:50 +08:00
Arnold GalovicsandPetri Tuomola d6aba7e9d2 FINERACT-1497: Proper file URI scheme for swagger file generation 2022-02-19 10:12:13 +08:00
ManojandGitHub f1c38fb515 FINERACT-1443-fix-typo-in-description (#2036) 2022-02-19 02:21:22 +05:30
ManojandGitHub 7c235c583b FINERACT-1443-loan-interest-recover-policy-fix-when-interest-more-than-EMI (#2033) 2022-02-18 23:52:51 +05:30
ManojandAleksandar Vidakovic fbdceea384 FINERACT-1499-DB-connection-exception-fix-for-bootRun 2022-02-11 18:28:14 +01:00
1a9ab19606 FINERACT-1495-interesest-posting-performance-improvement (#2027)
* Convert JPA to JDBC

* FINERACT-1495-interesest-posting-performance-improvement

Co-authored-by: BLasan <benuraab@gmail.com>
2022-02-10 19:28:33 +05:30
Aleksandar VidakovicandAleksandar Vidakovic c66415dbfd FINERACT-1492: Hikari configuration based on application properties 2022-02-07 16:38:39 +01:00
Arnold GalovicsandAleksandar Vidakovic 1f6ff8ccad FINERACT-1496: Formatting change
FINERACT-1496: Lazy relationship loading for Loan and it's corresponding LoanCollateralManagement entities and removed unnecessary data loads from ApplicationCurrency.
2022-02-07 15:40:43 +01:00
Aleksandar VidakovicandPetri Tuomola 6f4c75f83a FINERACT-1489: Faster Tomcat connector configuration 2022-01-17 19:31:18 +08:00
francisguchieandAleksandar Vidakovic 3d1897203a ran the spotless plug in 2022-01-09 00:51:38 +01:00
francisguchieandAleksandar Vidakovic 349c5b910b FINERACT-1460 update SZL and add SSP 2022-01-09 00:51:38 +01:00
Aleksandar VidakovicandPetri Tuomola 2ce901329c Fix version info 2022-01-09 06:18:44 +08:00
Petri TuomolaandPetri Tuomola 34d11adbe6 FINERACT-1480: Fixing Swagger UI in Docker image 2022-01-07 22:15:03 +08:00
Michael Vorburger ⛑️andGitHub 045f4beb27 Fix link to FineractClientDemo.java in documentation 2022-01-07 13:26:22 +01:00
Michael Vorburger ⛑️andGitHub 83ebb8f0a4 Add a fineract-client/README.md, with link to fineract-doc/src/docs/en/05_client.adoc
Related to https://github.com/openMF/fineract-client/issues/29.
2022-01-07 13:19:55 +01:00
rrpawar96andPetri Tuomola 515440e239 FINERACT-1432:ClientDocumentsDropDown 2022-01-06 14:45:36 +08:00
Petri TuomolaandPetri Tuomola 4d879eddc4 FINERACT-1480: Fix Swagger UI broken by incremental build 2022-01-06 12:49:10 +08:00
Petri TuomolaandPetri Tuomola ab6323e474 Reordering actions in fineract.dev workflow 2022-01-06 06:37:11 +08:00
rrpawar96andPetri Tuomola 4a4048561e FINERACT-1375:ClientPersonEntity 2022-01-06 06:29:29 +08:00
Petri TuomolaandGitHub 83c83e1dd7 Update fineract.dev.yaml 2022-01-05 07:20:37 +08:00
Petri TuomolaandGitHub 30eb068061 Reverting changes to fineract.dev deployment script 2022-01-05 07:16:46 +08:00
Petri TuomolaandPetri Tuomola 1398234c2c Reordering actions in fineract.dev workflow 2022-01-03 22:00:33 +08:00
Aleksandar VidakovicandPetri Tuomola c81fc7f0f4 Upgrade to JDK 17 2022-01-03 21:04:53 +08:00
Petri TuomolaandAleksandar Vidakovic 84598709d1 Fixing deployment to Fineract.dev 2022-01-03 05:01:18 +01:00
Aleksandar VidakovicandPetri Tuomola 907f932abe Simplify build for different auth strategies 2022-01-03 06:15:04 +08:00
Aleksandar VidakovicandPetri Tuomola c691c11699 Introduce automatic Git tag based version management in Gradle build 2022-01-02 21:26:09 +08:00
Petri TuomolaandAleksandar Vidakovic 46ff275d07 FINERACT-1198: Fixing incremental build for Gradle 2022-01-02 13:00:27 +01:00
Aleksandar VidakovicandPetri Tuomola 6e052e536b Replace command line Docker image build with Gradle Jib plugin 2022-01-02 14:15:34 +08:00
Aleksandar VidakovicandPetri Tuomola b2dbbe66de Create separate sub-module for WAR build 2022-01-02 09:20:47 +08:00
Aleksandar VidakovicandPetri Tuomola c91113b15a Fix JVM compiler args for build speed 2022-01-02 09:18:20 +08:00
Petri TuomolaandPetri Tuomola b86cb82de8 FINERACT-1464: Downgrade Docker image to JDK 11 2021-12-31 15:53:53 +08:00
rrpawar96andPetri Tuomola 3f1df7780c FINERACT-1393:RandomAccountNumber 2021-12-31 15:53:22 +08:00
Petri TuomolaandMichael Vorburger ⛑️ ccff5d8ad2 FINERACT-1457: Change Kubernetes set-up to use MariaDB 2021-12-30 11:41:54 +01:00
Petri TuomolaandMichael Vorburger ⛑️ 5efbd04173 FINERACT-1452: Disallow changing of password of specific users 2021-12-29 22:47:42 +01:00
Michael VorburgerandPetri Tuomola bf2b8296e9 Make entrypoint.sh respect FINERACT_DEFAULT_TENANTDB* (fixes FINERACT-1454) 2021-12-29 06:04:23 +08:00
Petri TuomolaandAleksandar Vidakovic c74bfed1fe FINERACT-1012: Upgrading OAuth support to Spring Security 5.6 2021-12-28 03:08:27 +01:00
rrpawar96andPetri Tuomola b6a9a2791d FINERACT-1391:AccountNumberPrefixPreference 2021-12-25 20:57:26 +08:00
Victor RomeroandPetri Tuomola 03a8a9858d FINERACT-982 - Completely ditch use of Drizzle JDBC Driver after all 2021-12-24 12:23:56 +08:00
Petri TuomolaandMichael Vorburger ⛑️ 7b4fcb9549 FINERACT-1089: Fixing 'Operation not allowed for a result set of type ResultSet.TYPE_FORWARD_ONLY' 2021-12-23 18:20:28 +01:00
Vic RomeroandPetri Tuomola b53fae870e Adding UI to K8s deployment (FINERACT-1419) 2021-12-23 22:25:22 +08:00
ManojandPetri Tuomola eade76ab25 FINERACT-1450 -fix-for-skipping-instalment 2021-12-18 09:50:39 +08:00
Petri TuomolaandMichael Vorburger ⛑️ 5dbde0f2ed Integration tests for twofactor 2021-12-12 09:37:34 +01:00
Petri TuomolaandMichael Vorburger ⛑️ a58debcb2e Implementing automatic inclusion of licenses 2021-12-10 18:06:50 +01:00
Victor RomeroandPetri Tuomola 291edd7a3f Disabling SonarQube HotSpot, because Fineract API Rest is creating services that are used by non-browser clients
Disabling SonarQube HotSpot, because Fineract API Rest is creating services that are used by non-browser clients with spotlessApply
2021-12-07 19:14:36 +08:00
Petri TuomolaandPetri Tuomola 6eb728455f FINERACT-1448: Fix sending emails 2021-12-04 08:33:44 +08:00
sheminantoandPetri Tuomola d1bbf57d9a FINERACT-1447 : Fix - Overdraft interest calculated is wrong 2021-11-30 02:55:15 +08:00
Petri TuomolaandAleksandar Vidakovic b845fe277b Changing logging level for findbugs 2021-11-28 18:10:07 +01:00
rrpawar96andPetri Tuomola 8dc5789607 FINERACT-1053:Client-AccountNumber-Length 2021-11-26 23:40:55 +08:00
Petri TuomolaandPetri Tuomola 70e3b4e0db Only use Travis for SonarQube 2021-11-26 23:39:01 +08:00
Victor RomeroandAleksandar Vidakovic f8a0a8d5cd Upgrade JDK 11 LTS to JDK 17 LTS (FINERACT-1406) 2021-11-26 03:58:06 +01:00
Victor RomeroandAleksandar Vidakovic 97bcd0926c Upgrade JDK 11 LTS to JDK 17 LTS (FINERACT-1406) 2021-11-26 03:58:06 +01:00
Benura AbeywardenaandGitHub 48e6a41b98 Feat: Filter Transactions from last interest posting date (#1933) 2021-11-25 01:59:53 +05:30
PetriandAleksandar Vidakovic d82560d7b3 Upgrade to Spring Boot 2.6.0 2021-11-24 16:26:51 +01:00
Petri TuomolaandPetri Tuomola aacb28b131 Fixing CORS issue 2021-11-24 18:53:33 +08:00
Petri TuomolaandAleksandar Vidakovic 2b57bf379e FINERACT-1433: Switch to Java based config for Spring 2021-11-21 04:21:10 +01:00
rrpawar96andPetri Tuomola 2513ee4837 FINERACT-1390:WithdrawChargesPerPaymentType 2021-11-20 06:18:27 +08:00
ManojandPetri Tuomola cf309b1f8f FINERACT-1413 : charge-payment-narration 2021-11-19 14:52:45 +08:00
ManojandGitHub c243a96548 FINERACT-1442 : Multi-threading-for-savings-interest-posting-job (#1971) 2021-11-18 23:13:55 +05:30
ankita10randGitHub f2fd8a7bcc updating account mapping to payment types in edit savings product screen (#1970) 2021-11-16 21:30:31 +05:30
Petri TuomolaandAleksandar Vidakovic 3313bd03f0 FINERACT-1435: Fix running the Spring Boot JAR after Jersey 2 upgrade 2021-11-13 09:35:52 +01:00
rrpawar96andPetri Tuomola 4a4cbf11be FINERACT-1374:Withdrawal-Fee-Scheme 2021-11-13 14:19:44 +08:00
ManojandPetri Tuomola 7ff3f38243 FINERACT-1440 : Enable Daily Interest Posting for Savings 2021-11-13 11:08:02 +08:00
ManojandPetri Tuomola 868820ba23 FINERACT-1414 : change-premitive-type-to-handle-null 2021-11-08 18:55:40 +08:00
ManojandPetri Tuomola eed1535c12 FINERACT-1410: Fix feature broken by PR1960 2021-11-08 18:47:15 +08:00
Petri TuomolaandPetri Tuomola d8d383e054 Upgrading errorprone to 2.10 2021-11-06 18:28:21 +08:00
danishjamal104andPetri Tuomola b89763ce05 Mustache template added to modify the generated code (FINERACT-1356) 2021-11-06 14:21:30 +08:00
Petri TuomolaandPetri Tuomola 48b54c8010 Fix readme formatting 2021-11-06 10:36:23 +08:00
Petri TuomolaandPetri Tuomola fee3d73426 Fix test broken by PR1917 2021-11-06 10:13:25 +08:00
Petri TuomolaandGitHub 9700ed4411 Update badge to point to GitHub build and add SonarCloud badge 2021-11-06 10:11:11 +08:00
Renovate BotandPetri Tuomola 180f73a7d0 chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v4.0.1 2021-11-06 09:59:33 +08:00
Shreyas S KumarandGitHub a716dbb6f9 FINERACT-1429:FD Interest Transfer on a backdated account (#1956) 2021-11-05 12:34:16 +05:30
Petri TuomolaandPetri Tuomola 0d2f102c5a FINERACT-1428: Introduce GitHub Actions as CI 2021-11-05 13:14:26 +08:00
Petri TuomolaandPetri Tuomola b3bccc82a5 FINERACT-1428: Introduce GitHub Actions as CI 2021-11-05 12:24:57 +08:00
Renovate BotandPetri Tuomola 6770783b80 chore(deps): update dependency org.glassfish.jersey.media:jersey-media-multipart to v2.35 2021-11-05 07:52:21 +08:00
Petri TuomolaandGitHub 3a03dc6b5a Roll back build.yml
Needs to be tried out somehow first in a separate branch
2021-11-04 14:50:34 +08:00
Petri TuomolaandAleksandar Vidakovic 344e4fe21a FINERACT-1421: Fixing Eclipse build/debug 2021-11-04 07:47:04 +01:00
Petri TuomolaandAleksandar Vidakovic d3400888fa FINERACT-1418: Upgrade to Jersey 2 2021-11-04 07:43:46 +01:00
Petri TuomolaandGitHub 4bcae92a3d FINERACT-1428: Introduce GitHub Actions as CI 2021-11-04 14:32:52 +08:00
Renovate BotandPetri Tuomola acfcd3fa0c chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v4 2021-11-04 06:37:56 +08:00
Thomas KerinandPetri Tuomola f1375a8525 FINERACT-1427: Extend liveness probe delay (90 -> 180)
I was getting restarts
2021-11-03 22:54:15 +08:00
phongnguyen-epayandPetri Tuomola 6c26179bca Use relative path for the swagger UI API server 2021-11-03 22:40:39 +08:00
BLasanandPetri Tuomola 790b2cfbf8 Fix: Loan Collateral for multi disbursement 2021-11-03 22:39:28 +08:00
Renovate BotandPetri Tuomola ef6aba9e51 chore(deps): update dependency com.google.cloud.sql:mysql-socket-factory-connector-j-8 to v1.4.0 2021-11-03 16:45:31 +08:00
Renovate BotandPetri Tuomola 13c52504c5 chore(deps): update plugin com.adarshr.test-logger to v3.1.0 2021-11-03 08:01:51 +08:00
Renovate BotandPetri Tuomola 9bc43d9ce5 chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.12.100 2021-11-02 14:13:31 +08:00
Renovate BotandPetri Tuomola b0a69c96a7 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v9.1 2021-11-01 21:31:51 +08:00
Renovate BotandPetri Tuomola 506e2494c0 chore(deps): update dependency com.google.code.gson:gson to v2.8.9 2021-10-30 10:47:42 +08:00
ankita10randGitHub e942527efe FINERACT-1411 Allow charges type saving to map to all types of Ledgers (#1935) 2021-10-29 16:35:02 +05:30
Renovate BotandPetri Tuomola 32d2b2fbb9 chore(deps): update dependency io.github.classgraph:classgraph to v4.8.129 2021-10-28 16:34:03 +08:00
Renovate BotandPetri Tuomola 4385be8220 chore(deps): update plugin com.diffplug.spotless to v5.17.1 2021-10-27 20:07:19 +08:00
Renovate BotandPetri Tuomola f43a1a07f9 chore(deps): update dependency org.awaitility:awaitility to v4.1.1 2021-10-26 22:42:03 +08:00
Victor RomeroandPetri Tuomola a6eef163a9 Make sure that using this pseudorandom number generator is safe (FINERACT-1415) 2021-10-26 12:28:33 +08:00
Victor RomeroandPetri Tuomola e6b64858e9 Enhace SonarQube analysis (FINERACT-1409) 2021-10-26 12:28:33 +08:00
Victor RomeroandPetri Tuomola 0de257fd44 Use of Azul Zulu JDK 11 LTS (FINERACT-1416) 2021-10-26 11:13:03 +08:00
sheminantoandPetri Tuomola 38c2cfe7a0 FINERACT-1414 :Added subEntityType in global search result 2021-10-24 15:28:45 +08:00
Renovate BotandAwasum Yannick f2d180e6ab chore(deps): update dependency org.mnode.ical4j:ical4j to v3.1.1 2021-10-23 16:49:53 +01:00
Víctor RomeroandGitHub eb129460ca Adding travis_wait variable to SonarQube analysis (FINERACT-1409) (#1922)
* https://issues.apache.org/jira/browse/FINERACT-1415 fix

* https://issues.apache.org/jira/browse/FINERACT-1415 fix

* Fix LF

* Reverting the direct fix of the Jacoco Reports

* Adding travis_wait variable to SonarQube analysis (FINERACT-1409)
2021-10-21 19:52:19 -05:00
ankita10randGitHub c6b7546218 Fineract-1410 Allow Payment types to map to all types of Ledgers (#1917) 2021-10-21 16:35:37 +05:30
Renovate BotandPetri Tuomola 574d00bc5d chore(deps): update dependency org.springframework:spring-framework-bom to v5.3.12 2021-10-21 18:05:21 +08:00
Víctor RomeroandGitHub 64e7dd79d9 Revert of the Jacoco Reports (FINERACT-1415) (#1919)
* https://issues.apache.org/jira/browse/FINERACT-1415 fix

* https://issues.apache.org/jira/browse/FINERACT-1415 fix

* Fix LF

* Reverting the direct fix of the Jacoco Reports
2021-10-20 21:58:47 -05:00
Victor Romero 5d8cb926e5 Revert "https://issues.apache.org/jira/browse/FINERACT-1415 fix (#1908)"
This reverts commit 5246850b84.
2021-10-20 17:11:52 -05:00
Victor Romero 1f7947e067 FINERACT-1409 Adding Code Coverage support 2021-10-20 14:54:20 -05:00
Víctor RomeroandGitHub 5246850b84 https://issues.apache.org/jira/browse/FINERACT-1415 fix (#1908)
* https://issues.apache.org/jira/browse/FINERACT-1415 fix

* https://issues.apache.org/jira/browse/FINERACT-1415 fix

* Fix LF
2021-10-20 10:39:31 -05:00
Renovate BotandPetri Tuomola 400d03482b chore(deps): update dependency com.google.guava:guava to v31 2021-10-20 21:31:20 +08:00
Renovate BotandPetri Tuomola 19e449ba96 chore(deps): update plugin com.diffplug.spotless to v5.17.0 2021-10-20 20:03:17 +08:00
Renovate BotandPetri Tuomola c9304f0063 chore(deps): update plugin org.barfuin.gradle.taskinfo to v1.3.1 2021-10-20 19:18:38 +08:00
Renovate BotandPetri Tuomola fe28ce9214 chore(deps): update plugin io.swagger.core.v3.swagger-gradle-plugin to v2.1.11 2021-10-20 19:18:29 +08:00
Renovate BotandPetri Tuomola 0ba4b2a794 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.4.2 2021-10-20 16:14:46 +08:00
Renovate BotandPetri Tuomola d0d338030c chore(deps): update dependency com.google.cloud.sql:mysql-socket-factory-connector-j-8 to v1.3.4 2021-10-20 16:14:25 +08:00
Renovate BotandPetri Tuomola ccee9458b5 chore(deps): update dependency io.swagger:swagger-annotations to v1.6.3 2021-10-20 16:14:11 +08:00
Renovate BotandPetri Tuomola d039e141a3 chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.52.5 2021-10-20 16:13:53 +08:00
Renovate BotandPetri Tuomola 29a5ebda48 chore(deps): update okhttpversion to v4.9.2 2021-10-20 16:13:24 +08:00
Renovate BotandPetri Tuomola d1e3a86aef chore(deps): update dependency io.swagger.core.v3:swagger-annotations to v2.1.11 2021-10-20 14:28:28 +08:00
Renovate BotandPetri Tuomola b4658533ad chore(deps): update dependency com.github.spotbugs:spotbugs-annotations to v4.4.2 2021-10-20 14:27:38 +08:00
Renovate BotandPetri Tuomola 727767a503 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v9.0.1 2021-10-20 14:27:22 +08:00
Renovate BotandPetri Tuomola f6ec2a1411 chore(deps): update dependency io.github.classgraph:classgraph to v4.8.128 2021-10-20 14:27:09 +08:00
Renovate BotandPetri Tuomola 98c4cd08d4 chore(deps): update dependency org.junit:junit-bom to v5.8.1 2021-10-20 14:26:54 +08:00
Renovate BotandPetri Tuomola 3c7333986f chore(deps): update dependency io.swagger:swagger-core to v1.6.3 2021-10-20 14:26:24 +08:00
Renovate BotandPetri Tuomola a4d5bc7a8e chore(deps): update dependency org.apache.tomcat:tomcat to v9.0.54 2021-10-20 14:26:10 +08:00
Renovate BotandPetri Tuomola f520c2e62c chore(deps): update dependency org.ehcache:ehcache to v3.9.7 2021-10-20 14:25:57 +08:00
Renovate BotandPetri Tuomola 2deabc7dcc chore(deps): update dependency org.springframework:spring-framework-bom to v5.3.11 2021-10-20 14:25:37 +08:00
Petri Tuomola 50367f36d8 Revert "FINERACT-1410 :Allow Payment types to map to all types of Ledgers (#1894)"
This reverts commit 32fae2b127.
2021-10-20 11:22:21 +08:00
Víctor RomeroandGitHub 9ba63ef7f7 Support for SonarQube Analysis on ASF's SonarCloud (#1893)
* Support for SonarQube Analysis https://issues.apache.org/jira/browse/FINERACT-1409

* Fix the addons entry

* Fix LF
2021-10-19 13:46:38 -05:00
ankita10randGitHub 32fae2b127 FINERACT-1410 :Allow Payment types to map to all types of Ledgers (#1894) 2021-10-19 19:23:53 +05:30
Víctor RomeroandGitHub dfd69f39e9 Upgrade JaCoco version to 0.8.7 for supporting JDK 17
Executing Squash and merge 
JaCoco v 0.8.7 has now JDK 17 LTS support https://github.com/jacoco/jacoco/releases and it small fix is related to continue working on this PR https://issues.apache.org/jira/browse/FINERACT-1406
2021-10-17 13:52:52 -05:00
Benura AbeywardenaandGitHub e4b270c0f5 Feat: Node aware job scheduler (#1886) 2021-10-14 16:24:21 +05:30
ankita10randGitHub 346279caf9 FINERACT-1400 Bulkimport to import opening balances for Ledgers (#1890) 2021-10-13 21:42:34 +05:30
Shreyas S KumarandGitHub 8f444bed5c Made loan collateral optional while creating loan account-FINERACT-1405 (#1889) 2021-10-11 19:38:07 +05:30
ManojandGitHub 72640bac6a [FINERACT-1348] -balloon-payment-fixed-principal-percentage (#1702) 2021-10-11 17:32:56 +05:30
Ankita RanjanandPetri Tuomola 899a0363c2 FINERACT-1399 Tag as non-mandatory field in Chart Of Accounts bulk upload 2021-10-09 11:53:34 +08:00
xurrorandPetri Tuomola 0b51ab2429 FINERACT-1396: Bulk Import Feature 2021-10-09 09:03:44 +08:00
Sidney WasibaniandPetri Tuomola d2521886ba Change the deduplication logic used in loan loss provisioning (FINERACT-1404) 2021-10-09 09:00:11 +08:00
rrpawar96andPetri Tuomola bcdf9df136 mutiple-withdraw-charges-fineract-1386 2021-10-09 08:02:31 +08:00
ManojandGitHub d0cadc6ac9 [FINERACT-1401]-double-posting-on-closing-fixed-deposit (#1885) 2021-10-02 21:38:35 +05:30
Audrey NdumandNasser Kaze 56240f71d1 Feature: Net Disbursal Amount 2021-09-23 18:23:07 +01:00
percy ashuandPetri Tuomola 4aff4242b5 Fix error in calculation for actualDepositPeriod 2021-09-22 20:06:37 +08:00
AdonayandPetri Tuomola 8146a7399c FINERACT-1273: Triggered emails
Basically send an email when a client does an action: for now when a loan is approved, rejected and when a repayment is done. More triggers should be added in the future
2021-09-22 09:43:25 +08:00
BLasanandPetri Tuomola 07f395ef7f Feat: Repayment With Post Dated Checks 2021-09-21 21:34:58 +08:00
francisguchieandPetri Tuomola f0d4f5e332 add starttls and factory 2021-09-21 21:26:54 +08:00
xurrorandPetri Tuomola 5c68e8b4a5 Holiday rescheduling feature 2021-09-21 21:16:27 +08:00
Vishal MoorthyandPetri Tuomola 3c5b16df44 NPE at AddressWritePlatformServiceImpl.addNewClientAddress(). 2021-09-21 20:53:48 +08:00
Renovate BotandPetri Tuomola 0c5a9a75c7 chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.52.3 2021-09-21 19:55:48 +08:00
Renovate BotandPetri Tuomola 1c55bbb1b0 chore(deps): update plugin com.diffplug.spotless to v5.15.1 2021-09-21 19:55:23 +08:00
Renovate BotandPetri Tuomola fdfb7eb7ad chore(deps): update dependency org.springframework:spring-framework-bom to v5.3.10 2021-09-17 07:24:32 +08:00
Renovate BotandPetri Tuomola 35fc000875 chore(deps): update dependency gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin to v4.7.5 2021-09-15 20:07:25 +08:00
Renovate BotandPetri Tuomola 3f88059d7b chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.52.2 2021-09-15 20:06:55 +08:00
Petri TuomolaandAleksandar Vidakovic b74501b43b Upgrading to Gradle 7.2 2021-09-13 07:24:39 +02:00
Renovate BotandPetri Tuomola ad17b5bcb1 chore(deps): update plugin com.gorylenko.gradle-git-properties to v2.3.1 2021-09-13 08:02:39 +08:00
Renovate BotandPetri Tuomola 82e032fe1f chore(deps): update dependency com.google.errorprone:error_prone_core to v2.9.0 2021-09-13 07:02:00 +08:00
Renovate BotandPetri Tuomola e92b62f2ab chore(deps): update dependency org.junit:junit-bom to v5.8.0 2021-09-13 05:42:44 +08:00
BLasanandPetri Tuomola eade79f73c Add: Integration Test for Undoing Waive Charge 2021-09-12 21:35:56 +08:00
Danish JamalandPetri Tuomola a23844b621 datatable field added in client swagger resource (FINERACT-1363) 2021-09-12 15:04:56 +08:00
Danish JamalandPetri Tuomola cbe728641a SavingsAccountTransactionsApi api service added in client (FINERACT-1383) 2021-09-12 15:01:59 +08:00
Petri TuomolaandPetri Tuomola 81e5c4d814 Upgrading Spotbugs to 4.4.1 2021-09-12 07:16:22 +08:00
Michael VorburgerandPetri Tuomola 60a4d71dd0 Fix CI/CD to https://www.fineract.dev which was broken
See https://github.com/vorburger/www.fineract.dev/issues/6
2021-09-11 22:47:27 +08:00
Michael VorburgerandPetri Tuomola f2b60a19f9 Revert "Disable broken fineract.dev.yaml "
This reverts commit 4522b71dfd.

See https://github.com/vorburger/www.fineract.dev/issues/6
2021-09-11 22:47:27 +08:00
Petri TuomolaandGitHub 9762a4134d Fix builds failing as no output from integration test for more than 10 minutes 2021-09-11 22:44:20 +08:00
Renovate BotandPetri Tuomola 5532f840db chore(deps): update dependency org.apache.tika:tika-core to v2 2021-09-11 20:56:39 +08:00
Petri TuomolaandGitHub 1013c6d3f6 Changing Travis logging level to quiet 2021-09-11 19:46:01 +08:00
Renovate BotandPetri Tuomola 363c4bde15 chore(deps): update dependency gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin to v4.7.4 2021-09-11 19:32:29 +08:00
Renovate BotandPetri Tuomola 226c1c8407 chore(deps): update plugin org.zeroturnaround.gradle.jrebel to v1.1.11 2021-09-11 19:17:26 +08:00
Renovate BotandPetri Tuomola 1bc4177348 chore(deps): update dependency com.github.spotbugs:spotbugs-annotations to v4.4.1 2021-09-11 18:24:47 +08:00
Renovate BotandPetri Tuomola 0fa680c629 chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.52.1 2021-09-11 18:24:29 +08:00
Renovate BotandPetri Tuomola cc9b68c7c0 chore(deps): update dependency org.springframework.boot:spring-boot-starter-mail to v2.5.4 2021-09-11 18:24:08 +08:00
Renovate BotandPetri Tuomola 4ff3d6d7a0 chore(deps): update dependency org.apache.tomcat:tomcat to v9.0.53 2021-09-11 16:21:56 +08:00
Renovate BotandPetri Tuomola cfd568acac chore(deps): update spring boot to v2.5.4 2021-09-11 16:20:35 +08:00
Petri TuomolaandGitHub 4522b71dfd Disable broken fineract.dev.yaml
The workflow to push to fineract.dev.yaml has been broken for a few months, and sends a failure emails for each merge. Issue reported to @vorburger. Disabling this to reduce spam until Michael has had some spare time to check what's wrong. Once fixed, let's re-enable this great feature.
2021-09-10 06:21:26 +08:00
Renovate BotandPetri Tuomola f9ecd8dc20 chore(deps): update dependency org.webjars:webjars-locator-core to v0.48 2021-09-10 06:14:28 +08:00
Renovate BotandPetri Tuomola 47a3c3e2df chore(deps): update dependency com.google.cloud.sql:mysql-socket-factory-connector-j-8 to v1.3.3 2021-09-10 06:14:08 +08:00
Renovate BotandPetri Tuomola ebfed4b432 chore(deps): update dependency io.github.classgraph:classgraph to v4.8.116 2021-09-10 06:13:43 +08:00
Renovate BotandAwasum Yannick 7fa3356771 chore(deps): update dependency org.flywaydb:flyway-core to v7.15.0 2021-09-07 17:59:49 +01:00
ManojandGitHub b8c6efa25b Tenant & Server - Different Timezone fix T-1 (FINERACT-1394) (#1857) 2021-09-07 19:10:11 +05:30
Danish JamalandPetri Tuomola 37b0715206 field name issue fixed FINERACT(1382) 2021-09-06 06:22:05 +08:00
Danish JamalandPetri Tuomola bd203b4e59 description field renamed to value (FINERACT-1381) 2021-09-05 21:49:04 +08:00
Danish JamalandPetri Tuomola 2bba201098 missing fields added in GetSavingsTimeline class (FINERACT-1380) 2021-09-05 21:48:27 +08:00
Danish JamalandPetri Tuomola db04976f4f PostAuthenticationRequest schema added for auth body payload (FINERACT-1369) 2021-09-05 21:46:10 +08:00
Danish JamalandPetri Tuomola f2eedd1766 type accountingMappingOptions field changed to GetSavingsProductsAccountingMappingOptions (FINERACT-1378) 2021-09-05 21:44:46 +08:00
Danish JamalandPetri Tuomola 048801458b field renamed in various places of SavingsProductsApiResourceSwagger (FINERACT-1376) 2021-09-05 21:44:22 +08:00
Danish JamalandPetri Tuomola 3bcac21f57 swagger resource fixed for creating datatable & entries (FINERACT-1365) 2021-09-05 21:44:07 +08:00
Danish JamalandPetri Tuomola b6ec24fa30 missing field added in GetSavingsProductsPaymentTypeOptions (FINERACT-1377) 2021-09-05 21:42:21 +08:00
Danish JamalandPetri Tuomola 96188aeb34 Search response resource fixed (FINERACT-1370) 2021-09-05 21:38:43 +08:00
Danish JamalandPetri Tuomola eab24341d1 Fixed swagger resource for activating client (FINERACT-1366) 2021-09-05 21:36:13 +08:00
Danish JamalandPetri Tuomola a38659f22d api response changed to JsonArray for {datatable}/{apptableId} (FINERACT-1373) 2021-09-05 21:34:59 +08:00
Danish JamalandPetri Tuomola c46e228ad8 invalid field name fixed in GetDataTablesResponse (FINERACT-1372) 2021-09-05 21:32:56 +08:00
Danish JamalandPetri Tuomola 65689474ce missing field added in ResultsetColumnHeaderData (FINERACT-1385) 2021-09-05 21:32:15 +08:00
Renovate BotandPetri Tuomola 39edc80251 chore(deps): update dependency org.flywaydb:flyway-core to v7.14.1 2021-09-05 21:29:34 +08:00
Renovate BotandPetri Tuomola de40ea11c6 chore(deps): update plugin com.diffplug.spotless to v5.15.0 2021-09-05 21:29:09 +08:00
Manthan SurkarandGitHub 83aec2fafb Merge pull request #1853 from renovate-bot/renovate/com.puppycrawl.tools-checkstyle-9.x
chore(deps): update dependency com.puppycrawl.tools:checkstyle to v9
2021-09-03 19:55:27 +05:30
Manthan SurkarandGitHub 8d6f6eecd2 Merge pull request #1854 from renovate-bot/renovate/aws-java-sdk-monorepo
chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.12.61
2021-09-03 19:55:12 +05:30
Manthan SurkarandGitHub fc0dff93a1 Merge pull request #1770 from BLasan/collateral-module
Feat: Collateral module
2021-09-03 19:54:00 +05:30
Renovate Bot 2220f14b9c chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.12.61 2021-09-02 22:02:52 +00:00
Renovate Bot 8e0c927654 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v9 2021-08-31 13:17:06 +00:00
BLasan 141108ec87 Feat: Collateral Module 2021-08-31 15:51:21 +05:30
Renovate BotandPetri Tuomola 138a306988 chore(deps): update okhttpversion to v4.9.1 2021-08-30 21:10:53 +08:00
Danish JamalandPetri Tuomola 373024b3ab missing field added in ClientsApiResourceSwagger (FINERACT-1387) 2021-08-28 19:37:02 +08:00
Danish JamalandPetri Tuomola 0e935ba16a groups list and accountNo field data type fixed in swagger resource (FINERACT-1364) 2021-08-28 19:33:53 +08:00
Renovate BotandPetri Tuomola 867be429fb chore(deps): update dependency io.github.classgraph:classgraph to v4.8.115 2021-08-28 19:12:10 +08:00
Manthan SurkarandGitHub 1114557fc3 Merge pull request #1772 from BLasan/undoWaiveCharge
Feat: Undo waive charge
2021-08-28 15:22:36 +05:30
ebouvardandPetri Tuomola 9ad6694021 Block transfer between different currencies (FINERACT-1355) 2021-08-28 15:20:31 +08:00
Renovate BotandPetri Tuomola 4e1ec64c6b chore(deps): update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.14.3 2021-08-28 15:18:57 +08:00
Renovate BotandPetri Tuomola 61f6183959 chore(deps): update dependency com.github.spotbugs:spotbugs-annotations to v4.4.0 2021-08-28 15:18:07 +08:00
Renovate BotandPetri Tuomola 09d5aa48ef chore(deps): update dependency gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin to v4.7.3 2021-08-28 15:17:47 +08:00
Renovate BotandPetri Tuomola 39db578281 chore(deps): update dependency gradle to v6.9.1 2021-08-28 15:17:27 +08:00
Renovate BotandPetri Tuomola a54fc25adb chore(deps): update dependency com.google.code.gson:gson to v2.8.8 2021-08-28 15:16:38 +08:00
Renovate BotandPetri Tuomola 44f5b244b0 chore(deps): update dependency org.mnode.ical4j:ical4j to v3.1.0 2021-08-28 15:16:18 +08:00
Renovate BotandPetri Tuomola 5d862cb8d0 chore(deps): update dependency org.ehcache:ehcache to v3.9.6 2021-08-28 15:15:53 +08:00
Renovate BotandAwasum Yannick e56f07221a chore(deps): update dependency org.apache.activemq:activemq-broker to v5.16.3 2021-08-18 11:00:09 +01:00
BLasan 16cc4ca11f Remove unwanted comments 2021-08-16 13:10:17 +05:30
Petri TuomolaandGitHub ffae7d44ae Update fineract.dev.yaml 2021-08-11 10:15:33 +08:00
Petri TuomolaandGitHub d5debd0eda Fixing fineract.dev build 2021-08-11 10:13:36 +08:00
Petri TuomolaandGitHub cbb4253e8e Fixing broken workflow for fineract.dev 2021-08-11 10:10:28 +08:00
Petri TuomolaandGitHub 10231bf111 Fixing broken fineract.dev workflow
Setup-gcloud moved by google to a new repository
2021-08-11 09:45:48 +08:00
Renovate BotandPetri Tuomola b9233773d7 chore(deps): update dependency gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin to v4.7.2 2021-08-11 09:37:46 +08:00
Renovate BotandPetri Tuomola 3e6ae6f703 chore(deps): update dependency commons-io:commons-io to v2.11.0 2021-08-11 09:37:24 +08:00
Renovate BotandPetri Tuomola e97eb0e8c1 chore(deps): update dependency com.google.cloud.sql:mysql-socket-factory-connector-j-8 to v1.3.2 2021-08-11 09:36:56 +08:00
Renovate BotandPetri Tuomola fdcb6b26cf chore(deps): update dependency org.springframework:spring-framework-bom to v5.3.9 2021-08-11 09:35:22 +08:00
Renovate BotandPetri Tuomola ed1c8bf441 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v8.45.1 2021-08-11 09:34:23 +08:00
Renovate BotandPetri Tuomola cdbd4e7bef chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.52.0 2021-08-11 09:33:57 +08:00
Renovate BotandPetri Tuomola 09e379f553 chore(deps): update dependency org.ehcache:ehcache to v3.9.5 2021-08-11 09:33:36 +08:00
Renovate BotandPetri Tuomola f79d9e0c61 chore(deps): update dependency org.glassfish.jaxb:jaxb-runtime to v2.3.5 2021-08-11 09:33:13 +08:00
Renovate BotandAwasum Yannick 29be79aac5 chore(deps): update dependency org.apache.tomcat:tomcat to v9.0.52 2021-08-09 22:48:55 +01:00
edcableandGitHub fcd1013dd9 Update README.md 2021-08-06 20:10:52 -07:00
Renovate BotandAwasum Yannick 80d9250616 chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.12.40 2021-08-05 23:30:50 +01:00
ManojandGitHub 2250ee1e21 FINERACT-1277-Message-Gateway-webhook (#1801) 2021-08-03 18:52:38 +05:30
BLasan c3d8d3cb7e Remove unwanted comments 2021-08-02 09:06:55 +05:30
Manthan SurkarandGitHub 99f640b04d Merge pull request #1800 from renovate-bot/renovate/org.mnode.ical4j-ical4j-3.x
chore(deps): update dependency org.mnode.ical4j:ical4j to v3.0.29
2021-07-26 13:34:48 +05:30
Renovate Bot c48cc694dd chore(deps): update dependency org.mnode.ical4j:ical4j to v3.0.29 2021-07-24 08:20:13 +00:00
BLasan 31860f0960 Remove commented codes 2021-07-11 22:23:31 +05:30
Renovate BotandPetri Tuomola 97aa1078ca chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.12.19 2021-07-08 12:29:41 +08:00
Renovate BotandPetri Tuomola e49cd57617 chore(deps): update dependency io.github.classgraph:classgraph to v4.8.110 2021-07-08 12:29:20 +08:00
Renovate BotandPetri Tuomola 17479a1d36 chore(deps): update dependency com.github.spotbugs:spotbugs-annotations to v4.3.0 2021-07-08 12:28:55 +08:00
Renovate BotandPetri Tuomola 2b68d2e98d chore(deps): update dependency org.apache.tomcat:tomcat to v9.0.50 2021-07-08 12:28:29 +08:00
Renovate BotandPetri Tuomola 6aa4037bca chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.51.1 2021-07-08 12:27:56 +08:00
Renovate BotandPetri Tuomola c2688d29ae chore(deps): update dependency org.mnode.ical4j:ical4j to v3.0.28 2021-07-08 12:27:33 +08:00
Renovate BotandPetri Tuomola 668ecf85bb chore(deps): update dependency org.apache.tika:tika-core to v1.27 2021-07-08 12:26:39 +08:00
Renovate BotandPetri Tuomola fb7cc1abe4 chore(deps): update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.14.1 2021-07-08 12:26:12 +08:00
Manthan SurkarandGitHub ec46aa91e4 Merge pull request #1745 from BLasan/issue-1031
Fix: Advanced Account Rule for Fees under Accrual Periodic type (Fineract-1031)
2021-07-03 22:04:02 +05:30
Petri TuomolaandGitHub 1adf01fbf0 Delete rebase.yml
Deleting rebase action for now, as this is not allowed in Apache owned repositories
2021-07-01 12:29:39 +08:00
Renovate BotandPetri Tuomola bed71369dc chore(deps): update dependency com.github.sevntu-checkstyle:sevntu-checks to v1.40.0 2021-07-01 12:27:03 +08:00
Renovate BotandPetri Tuomola 1fa9f8cdc9 chore(deps): update dependency io.swagger.core.v3.swagger-gradle-plugin:io.swagger.core.v3.swagger-gradle-plugin.gradle.plugin to v2.1.10 2021-07-01 12:26:40 +08:00
Petri TuomolaandGitHub 51601e9049 Fixing automatic rebase 2021-06-30 11:19:30 +08:00
Renovate BotandPetri Tuomola 7fbda99864 chore(deps): update dependency org.mnode.ical4j:ical4j to v3.0.27 2021-06-30 11:10:59 +08:00
Renovate BotandPetri Tuomola 66cd5487a9 chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.51.0 2021-06-30 11:10:30 +08:00
Renovate BotandPetri Tuomola 175b98c10d chore(deps): update dependency com.puppycrawl.tools:checkstyle to v8.44 2021-06-30 11:09:46 +08:00
Renovate BotandPetri Tuomola b71be0eb6d chore(deps): update dependency io.swagger.core.v3:swagger-annotations to v2.1.10 2021-06-30 11:09:20 +08:00
Renovate BotandPetri Tuomola 8b201990c8 chore(deps): update dependency net.ltgt.errorprone:net.ltgt.errorprone.gradle.plugin to v2.0.2 2021-06-30 11:08:55 +08:00
BLasan a2c937b164 Fix: Fee Charge Amount Issue 2021-06-28 03:12:27 +05:30
BLasan 3170051660 Refine: Sending changes on update 2021-06-23 23:43:05 +05:30
BLasan 0f175edb37 Fix: Mysql Syntax Issue 2021-06-19 14:38:18 +05:30
BLasan 8b428d347a Add: Swagger Annotations for Undoing Transaction API 2021-06-19 14:16:26 +05:30
BLasan 88df504390 Add: Entity Permission 2021-06-18 20:55:52 +05:30
BLasan 6d08fa5661 Feat: Add undo waive charge 2021-06-18 20:55:30 +05:30
Renovate BotandPetri Tuomola ca7b9d2f1e chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.50.0 2021-06-18 13:55:51 +08:00
Renovate BotandPetri Tuomola c83c2f9f91 chore(deps): update dependency commons-io:commons-io to v2.10.0 2021-06-18 08:41:05 +08:00
Renovate BotandPetri Tuomola aed757450b chore(deps): update dependency io.github.classgraph:classgraph to v4.8.108 2021-06-18 08:40:46 +08:00
Renovate BotandPetri Tuomola d341b24423 chore(deps): update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.14.0 2021-06-18 08:40:21 +08:00
Renovate BotandPetri Tuomola b7d378add5 chore(deps): update dependency org.apache.tomcat:tomcat to v9.0.48 2021-06-18 08:39:59 +08:00
Manthan SurkarandGitHub a1cdd50462 Merge pull request #1763 from renovate-bot/renovate/spring-core
chore(deps): update dependency org.springframework:spring-framework-bom to v5.3.8
2021-06-09 16:26:01 +05:30
Renovate Bot 479a6236a8 chore(deps): update dependency org.springframework:spring-framework-bom to v5.3.8 2021-06-09 08:30:35 +00:00
Renovate BotandPetri Tuomola c52387ad22 chore(deps): update dependency io.github.classgraph:classgraph to v4.8.107 2021-06-04 20:54:21 +08:00
Renovate BotandPetri Tuomola 656884df51 chore(deps): update dependency com.google.code.gson:gson to v2.8.7 2021-06-04 20:53:57 +08:00
Renovate BotandPetri Tuomola cf63f54fc0 chore(deps): update dependency com.google.cloud.sql:mysql-socket-factory-connector-j-8 to v1.3.0 2021-06-04 15:04:55 +08:00
Renovate BotandPetri Tuomola 6ff6cabda4 chore(deps): update dependency com.jayway.jsonpath:json-path to v2.6.0 2021-06-04 15:03:49 +08:00
Renovate BotandPetri Tuomola 78b07d90fb chore(deps): update dependency org.webjars:webjars-locator-core to v0.47 2021-06-04 15:03:21 +08:00
BLasan 768404035b Remove: unwanted comments 2021-06-01 23:47:34 +05:30
Manthan SurkarandGitHub 51bedce1d0 Merge pull request #1741 from renovate-bot/renovate/com.google.truth.extensions-truth-java8-extension-1.x
chore(deps): update dependency com.google.truth.extensions:truth-java8-extension to v1.1.3
2021-06-01 19:43:29 +05:30
Renovate Bot 33b8d76a03 chore(deps): update dependency com.google.truth.extensions:truth-java8-extension to v1.1.3 2021-06-01 07:16:05 +00:00
Renovate BotandPetri Tuomola fd5546c775 chore(deps): update dependency com.google.truth:truth to v1.1.3 2021-06-01 15:10:36 +08:00
Renovate BotandPetri Tuomola 480a46fa67 chore(deps): update dependency commons-io:commons-io to v2.9.0 2021-06-01 15:10:13 +08:00
Renovate BotandPetri Tuomola 69b7968128 chore(deps): update dependency com.github.spullara.mustache.java:compiler to v0.9.10 2021-06-01 15:08:33 +08:00
Renovate BotandPetri Tuomola 9b31df0d3a chore(deps): update dependency com.puppycrawl.tools:checkstyle to v8.43 2021-06-01 15:08:06 +08:00
Renovate BotandPetri Tuomola defa5c2c9c chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.11.1030 2021-06-01 15:07:44 +08:00
BLasan 2cae552126 Fix: Integration test - loanWithChargesOfTypeAmountPercentageAndPeriodicAccrualAccountingEnabled 2021-05-30 16:24:10 +05:30
Manthan SurkarandGitHub b3da975eb6 Merge pull request #1746 from renovate-bot/renovate/io.github.classgraph-classgraph-4.x
chore(deps): update dependency io.github.classgraph:classgraph to v4.8.106
2021-05-29 22:16:29 +05:30
Manthan SurkarandGitHub e4d41029e0 Merge pull request #1735 from BLasan/issue-1314
Fix: Client Family Member editing issue (FINERACT-1314)
2021-05-29 22:13:07 +05:30
Renovate Bot 6f3772688f chore(deps): update dependency io.github.classgraph:classgraph to v4.8.106 2021-05-28 21:30:14 +00:00
BLasan bee14387f4 Fix: Advanced Account Rule for Fees under Accrual Periodic type (Fineract-1031) 2021-05-28 22:52:08 +05:30
Manthan SurkarandGitHub 46a4048386 Merge pull request #1739 from renovate-bot/renovate/org.webjars.npm-swagger-ui-dist-3.x
chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.49.0
2021-05-24 01:04:44 +05:30
Manthan SurkarandGitHub af2310a484 Merge pull request #1736 from renovate-bot/renovate/org.ehcache-ehcache-3.x
chore(deps): update dependency org.ehcache:ehcache to v3.9.4
2021-05-24 01:04:23 +05:30
Renovate Bot e587133278 chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.49.0 2021-05-23 04:02:22 +00:00
Renovate Bot d2c19aa61b chore(deps): update dependency org.ehcache:ehcache to v3.9.4 2021-05-20 20:22:03 +00:00
BLasan c8fc04a16d Fix: Client Family Member editing issue (FINERACT-1314) 2021-05-20 12:55:28 +05:30
Petri TuomolaandPetri Tuomola f87b66d4e1 FINERACT-1345: Fixing support for parameterType reports 2021-05-16 15:57:02 +08:00
Renovate BotandPetri Tuomola bd177bd206 chore(deps): update dependency org.glassfish.jaxb:jaxb-runtime to v2.3.4 2021-05-16 09:39:30 +08:00
Renovate BotandPetri Tuomola 8810f97350 chore(deps): update dependency org.ehcache:ehcache to v3.9.3 2021-05-16 06:34:24 +08:00
Renovate BotandPetri Tuomola ca331da060 chore(deps): update dependency org.apache.openjpa:openjpa to v3.2.0 2021-05-16 06:33:32 +08:00
Renovate BotandPetri Tuomola 98c4ae9bd5 chore(deps): update dependency org.junit:junit-bom to v5.7.2 2021-05-16 06:30:26 +08:00
Renovate BotandPetri Tuomola a17c3462cb chore(deps): update dependency org.springframework:spring-framework-bom to v5.3.7 2021-05-14 08:27:25 +08:00
Renovate BotandPetri Tuomola bfac0f7c7c chore(deps): update dependency org.apache.tomcat:tomcat to v9.0.46 2021-05-14 08:26:34 +08:00
Renovate BotandPetri Tuomola 8baffc1508 chore(deps): update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.12.5 2021-05-14 08:26:05 +08:00
Renovate BotandPetri Tuomola 788725a7a9 chore(deps): update dependency gradle to v6.9 2021-05-08 18:17:17 +08:00
Renovate BotandPetri Tuomola d3cbb11cac chore(deps): update dependency org.awaitility:awaitility to v4.1.0 2021-05-08 18:16:32 +08:00
Renovate BotandPetri Tuomola 8d742ed412 chore(deps): update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.12.4 2021-05-05 09:28:49 +08:00
Renovate BotandPetri Tuomola c5a9a7dadb chore(deps): update dependency com.google.cloud.sql:mysql-socket-factory-connector-j-8 to v1.2.3 2021-05-05 09:28:26 +08:00
Renovate BotandPetri Tuomola 443b08e94a chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.48.0 2021-05-05 09:28:01 +08:00
Renovate BotandPetri Tuomola 8c5bf09556 chore(deps): update dependency io.github.classgraph:classgraph to v4.8.105 2021-05-05 09:27:37 +08:00
Renovate BotandPetri Tuomola a7254f7792 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v8.42 2021-05-05 08:18:23 +08:00
Renovate BotandPetri Tuomola 538fd744cf chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.11.1011 2021-05-05 08:17:57 +08:00
Renovate BotandPetri Tuomola 4a181d7030 chore(deps): update dependency com.github.librepdf:openpdf to v1.3.26 2021-05-05 08:17:34 +08:00
Renovate BotandYemdjih Kaze Nasser 6e80e34643 chore(deps): update dependency gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin to v4.7.1 2021-04-29 19:35:22 +01:00
Renovate BotandYemdjih Kaze Nasser 809ac802de chore(deps): update dependency org.apache.activemq:activemq-broker to v5.16.2 2021-04-29 19:35:03 +01:00
BLasanandYemdjih Kaze Nasser 153204bad7 Fix email sending using smtp (FINERACT-1070) 2021-04-29 19:33:48 +01:00
Renovate BotandYemdjih Kaze Nasser 2725d239dc chore(deps): update dependency io.swagger.core.v3.swagger-gradle-plugin:io.swagger.core.v3.swagger-gradle-plugin.gradle.plugin to v2.1.9 2021-04-25 04:42:51 +01:00
Renovate BotandYemdjih Kaze Nasser fcd362c7a8 chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.47.1 2021-04-25 04:42:04 +01:00
Renovate BotandYemdjih Kaze Nasser 66197701b0 chore(deps): update dependency io.swagger.core.v3:swagger-annotations to v2.1.8 2021-04-25 04:40:59 +01:00
Renovate BotandYemdjih Kaze Nasser 90eb1520b5 chore(deps): update dependency com.github.spotbugs:spotbugs-annotations to v4.2.3 2021-04-25 04:39:21 +01:00
Joseph MakaraandPetri Tuomola fb14a38ed6 Return clients just for self service API call (FINERACT-1340) 2021-04-15 22:00:29 +08:00
Joseph MakaraandPetri Tuomola 870bab22fc Add client IDs for selfservice user in auth credentials (FINERACT-1340) 2021-04-15 22:00:29 +08:00
Joseph MakaraandPetri Tuomola c9f843d0d7 Add client IDs for selfservice user in auth credentials (FINERACT-1340) 2021-04-15 22:00:29 +08:00
Renovate BotandYemdjih Kaze Nasser 619419dd35 chore(deps): update dependency com.google.errorprone:error_prone_core to v2.6.0 2021-04-15 04:38:33 +01:00
Manthan SurkarandGitHub b5912afa24 Merge pull request #1698 from renovate-bot/renovate/com.diffplug.spotless-com.diffplug.spotless.gradle.plugin-5.x
Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.12.1
2021-04-15 04:14:19 +05:30
Manthan SurkarandGitHub b525baa5b6 Merge pull request #1699 from renovate-bot/renovate/spring-core
Update dependency org.springframework:spring-framework-bom to v5.3.6
2021-04-15 04:13:52 +05:30
Renovate Bot 8111fc99dc Update dependency org.springframework:spring-framework-bom to v5.3.6 2021-04-13 11:55:33 +00:00
Renovate Bot 2aba3c00bb Update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.12.1 2021-04-13 05:43:12 +00:00
Joseph MakaraandPetri Tuomola 134ea4d837 Use prepared statements instead of string concatenated SQL everywhere (FINERACT-854) 2021-04-13 06:10:51 +08:00
Joseph MakaraandPetri Tuomola d3ef3b8f70 Code review changes (FINERACT-854) 2021-04-13 06:10:51 +08:00
Joseph MakaraandPetri Tuomola b3d00252f5 Fix some reporting issues including SQLi vulnerabilities (FINERACT-854) 2021-04-13 06:10:51 +08:00
Joseph MakaraandPetri Tuomola 63e427333e Fix Duplicate entry whilst issue (FINERACT-854) 2021-04-13 06:10:51 +08:00
Joseph MakaraandPetri Tuomola 678bc3a5f3 Fix Tenant SQLi (FINERACT-854) 2021-04-13 06:10:51 +08:00
Joseph MakaraandPetri Tuomola adb8caf002 Use prepared statements instead of string concatenated SQL everywhere - WIP (FINERACT-854) 2021-04-13 06:10:51 +08:00
Joseph MakaraandPetri Tuomola 237c0c1293 Use prepared statements instead of string concatenated SQL everywhere - WIP (FINERACT-854) 2021-04-13 06:10:51 +08:00
Joseph MakaraandPetri Tuomola 859ce5af62 Use prepared statements instead of string concatenated SQL everywhere - WIP (FINERACT-854) 2021-04-13 06:10:51 +08:00
Joseph MakaraandPetri Tuomola f96fc7df39 Fix format (FINERACT-854) 2021-04-13 06:10:51 +08:00
Joseph MakaraandPetri Tuomola 5919d38f69 Use prepared statements instead of string concatenated SQL everywhere - WIP (FINERACT-854) 2021-04-13 06:10:51 +08:00
Joseph MakaraandPetri Tuomola 43e038e5a6 FINERACT-854 Use prepared statements instead of string concatenated SQL everywhere PART 1 2021-04-13 06:10:51 +08:00
Renovate BotandPetri Tuomola 82d79100e5 chore(deps): update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.12.0 2021-04-12 05:16:21 +08:00
Renovate BotandPetri Tuomola 4775a0b063 chore(deps): update dependency org.mnode.ical4j:ical4j to v3.0.25 2021-04-12 05:15:56 +08:00
Renovate BotandPetri Tuomola 9a7f2fc848 chore(deps): update dependency org.springframework.security.oauth:spring-security-oauth2 to v2.5.1.release 2021-04-10 09:36:48 +08:00
Renovate BotandAwasum Yannick 5ee5cbb9e0 chore(deps): update dependency com.google.cloud.sql:mysql-socket-factory-connector-j-8 to v1.2.2 2021-04-09 19:52:11 +01:00
Renovate BotandAwasum Yannick 821bc602bf chore(deps): update dependency org.apache.tomcat:tomcat to v9.0.45 2021-04-09 19:51:34 +01:00
Renovate BotandAwasum Yannick f0459b7cbf chore(deps): update dependency org.mnode.ical4j:ical4j to v3.0.24 2021-04-09 19:50:39 +01:00
Manthan SurkarandGitHub ce4879bce9 Merge pull request #1682 from renovate-bot/renovate/aws-java-sdk-monorepo
chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.11.993
2021-04-07 05:36:05 +05:30
Renovate Bot 0f136a151a chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.11.993 2021-04-06 22:04:15 +00:00
Manthan SurkarandGitHub 0a39ed575e Merge pull request #1683 from renovate-bot/renovate/com.github.sevntu-checkstyle-sevntu-checks-1.x
chore(deps): update dependency com.github.sevntu-checkstyle:sevntu-checks to v1.39.0
2021-04-03 01:53:00 +05:30
Renovate Bot e4ecc9386b chore(deps): update dependency com.github.sevntu-checkstyle:sevntu-checks to v1.39.0 2021-04-02 17:36:51 +00:00
Renovate BotandYemdjih Kaze Nasser 94ac2ebf82 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v8.41.1 2021-03-31 08:36:11 +01:00
Renovate BotandYemdjih Kaze Nasser 59b41d0617 chore(deps): update dependency org.apache.tika:tika-core to v1.26 2021-03-31 08:19:37 +01:00
Manthan SurkarandGitHub 6337205928 Merge pull request #1675 from renovate-bot/renovate/io.github.classgraph-classgraph-4.x
chore(deps): update dependency io.github.classgraph:classgraph to v4.8.104
2021-03-27 12:20:56 +05:30
Manthan SurkarandGitHub 83539e1d0f Merge pull request #1672 from renovate-bot/renovate/net.ltgt.errorprone-net.ltgt.errorprone.gradle.plugin-2.x
chore(deps): update dependency net.ltgt.errorprone:net.ltgt.errorprone.gradle.plugin to v2
2021-03-27 12:17:38 +05:30
Manthan SurkarandGitHub 037ef73e8c Merge pull request #1673 from renovate-bot/renovate/org.webjars.npm-swagger-ui-dist-3.x
chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.45.1
2021-03-27 12:16:47 +05:30
Manthan SurkarandGitHub 3127f4c3ce Merge pull request #1677 from renovate-bot/renovate/com.diffplug.spotless-com.diffplug.spotless.gradle.plugin-5.x
chore(deps): update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.11.1
2021-03-27 12:15:47 +05:30
Renovate Bot 07b5b05ce3 chore(deps): update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.11.1 2021-03-27 00:16:17 +00:00
Renovate Bot 2f12872f51 chore(deps): update dependency net.ltgt.errorprone:net.ltgt.errorprone.gradle.plugin to v2 2021-03-26 11:08:32 +00:00
Renovate Bot 45cc9892d2 chore(deps): update dependency io.github.classgraph:classgraph to v4.8.104 2021-03-26 11:08:04 +00:00
ManojandGitHub fc289c94e3 FINERACT-1316-fix-for-advance-payment-with-int-recalculation (#1676) 2021-03-25 15:26:50 +05:30
Renovate Bot c7451596bf chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.45.1 2021-03-22 17:08:56 +00:00
Manthan SurkarandGitHub cf7d38adbc Merge pull request #1669 from renovate-bot/renovate/com.google.guava-guava-30.x
chore(deps): update dependency com.google.guava:guava to v30.1.1-jre
2021-03-21 17:28:22 +05:30
Renovate Bot d7d625a45f chore(deps): update dependency com.google.guava:guava to v30.1.1-jre 2021-03-19 18:47:53 +00:00
Avik GangulyandGitHub 9bf0cbdb91 Encoding and Engine Agnostic Credit Bureau Migration Script (#1668) 2021-03-19 17:04:00 +05:30
Renovate BotandAleksandar Vidakovic 6ac6657a01 chore(deps): update dependency org.springframework:spring-framework-bom to v5.3.5 2021-03-16 13:54:33 +01:00
francisguchieandMichael Vorburger ⛑️ fac033508a rename sql file V365 to V366 2021-03-14 16:55:00 +01:00
francisguchieandMichael Vorburger ⛑️ e7123e5636 remove leading and trailing spaces in report names 2021-03-14 16:55:00 +01:00
Renovate BotandAleksandar Vidakovic 4567cddde5 chore(deps): update dependency org.mnode.ical4j:ical4j to v3.0.22 2021-03-14 15:06:19 +01:00
Michael VorburgerandAleksandar Vidakovic 684357c063 Add Integration Test for reportCategoryList (FINERACT-1306) 2021-03-14 15:05:45 +01:00
Michael VorburgerandAleksandar Vidakovic aaaae3acc0 make FineractClient expose the OkHttp client 2021-03-14 15:05:45 +01:00
francisguchieandAleksandar Vidakovic fa2e6bd4de change retrieveReportList to 117 (FINERACT-1306) 2021-03-14 15:05:45 +01:00
Michael VorburgerandAleksandar Vidakovic 4b7e0c73ff rename V155_1__add_stretchy_reports.sql to V365__reportCategoryList-FINERACT-1306.sql 2021-03-14 15:05:45 +01:00
rrpawar96andAleksandar Vidakovic 92279a771e added-stretchy-reports SQL (FINERACT-1306) 2021-03-14 15:05:45 +01:00
Renovate BotandMichael Vorburger ⛑️ 32a7abeed2 chore(deps): update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.11.0 2021-03-13 20:03:19 +01:00
Renovate BotandMichael Vorburger ⛑️ 5267f27f3f chore(deps): update dependency org.apache.tomcat:tomcat to v9.0.44 2021-03-13 16:20:49 +01:00
Michael VorburgerandAleksandar Vidakovic 9a21ac21db Document new plugins feature (FINERACT-1177) 2021-03-09 03:07:52 +01:00
Aleksandar VidakovicandMichael Vorburger ⛑️ 3aab75db2d FINERACT-1177: Add feature to include external libraries 2021-03-08 22:37:53 +01:00
BLasanandMichael Vorburger ⛑️ d4a2bd143c Add resource limits & requests to fineract server deployment (FINERACT-1324)
Fix httpGet port issue
2021-03-08 22:11:15 +01:00
Renovate BotandMichael Vorburger ⛑️ 00714b9d33 chore(deps): update dependency gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin to v4.7.0 2021-03-08 21:45:21 +01:00
Renovate BotandPetri Tuomola d540cfcb13 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.2.2 2021-03-05 05:57:35 +08:00
Renovate BotandPetri Tuomola 1dfb10a662 chore(deps): update dependency com.github.spotbugs:spotbugs-annotations to v4.2.2 2021-03-05 05:57:16 +08:00
BLasanandYemdjih Kaze Nasser a52a3cc738 Add readiness & liveness probes to fineract-server deployment (FINERACT-1296) 2021-03-04 06:20:43 +01:00
Renovate BotandAleksandar Vidakovic 83ec9bf5ca chore(deps): update dependency com.puppycrawl.tools:checkstyle to v8.41 2021-02-28 20:28:39 +01:00
BLasanandYemdjih Kaze Nasser c42e9f4b58 Remove Tag annotation for ImageAPIResource 2021-02-26 11:31:07 +01:00
BLasanandYemdjih Kaze Nasser f30114892f Add missing Tag annotations for APIs (FINERACT-1222) 2021-02-26 11:31:07 +01:00
Renovate BotandAleksandar Vidakovic ac86e14f3e chore(deps): update dependency org.ehcache:ehcache to v3.9.2 2021-02-25 15:33:12 +01:00
Renovate BotandYemdjih Kaze Nasser 9b060a9919 chore(deps): update dependency org.asciidoctor.jvm.gems:org.asciidoctor.jvm.gems.gradle.plugin to v3.3.2 2021-02-25 05:41:44 +01:00
Renovate BotandYemdjih Kaze Nasser e21a778220 chore(deps): update dependency org.asciidoctor.jvm.epub:org.asciidoctor.jvm.epub.gradle.plugin to v3.3.2 2021-02-25 05:41:17 +01:00
Renovate BotandYemdjih Kaze Nasser 4bf966295b chore(deps): update dependency org.asciidoctor.jvm.convert:org.asciidoctor.jvm.convert.gradle.plugin to v3.3.2 2021-02-25 05:41:01 +01:00
Renovate BotandYemdjih Kaze Nasser 307a0f863a chore(deps): update dependency gradle to v6.8.3 2021-02-25 05:39:42 +01:00
Renovate BotandPetri Tuomola 228c98a24f chore(deps): update dependency org.asciidoctor.jvm.pdf:org.asciidoctor.jvm.pdf.gradle.plugin to v3.3.2 2021-02-22 13:29:31 +08:00
Renovate BotandPetri Tuomola d0c0094947 chore(deps): update dependency org.asciidoctor.jvm.revealjs:org.asciidoctor.jvm.revealjs.gradle.plugin to v3.3.2 2021-02-22 13:29:17 +08:00
Renovate BotandPetri Tuomola c9c6e3358a chore(deps): update dependency gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin to v4.6.2 2021-02-22 13:29:01 +08:00
Renovate BotandPetri Tuomola dc9c94709c chore(deps): update dependency io.swagger.core.v3.swagger-gradle-plugin:io.swagger.core.v3.swagger-gradle-plugin.gradle.plugin to v2.1.7 2021-02-20 06:01:23 +08:00
Renovate BotandPetri Tuomola 69080219fd chore(deps): update dependency gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin to v4.6.1 2021-02-20 06:01:08 +08:00
Renovate BotandPetri Tuomola 159b631826 chore(deps): update dependency org.ehcache:ehcache to v3.9.1 2021-02-20 06:00:48 +08:00
Renovate BotandPetri Tuomola 1c56b62244 chore(deps): update dependency io.swagger.core.v3:swagger-annotations to v2.1.7 2021-02-19 13:04:34 +08:00
Renovate BotandPetri Tuomola 298c76e6c2 chore(deps): update dependency com.google.cloud.sql:mysql-socket-factory-connector-j-8 to v1.2.1 2021-02-18 12:24:59 +08:00
Renovate BotandPetri Tuomola 87fbfc4f84 chore(deps): update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.10.2 2021-02-17 20:19:09 +08:00
Petri TuomolaandAleksandar Vidakovic 35a9a3072b Upgrading AsciiDoctor to 3.3.1 2021-02-17 01:52:46 +01:00
Renovate BotandPetri Tuomola 336276461e chore(deps): update dependency org.springframework:spring-framework-bom to v5.3.4 2021-02-17 06:41:45 +08:00
Renovate BotandAwasum Yannick eec48c2ee4 chore(deps): update dependency com.github.librepdf:openpdf to v1.3.25 2021-02-15 07:48:49 +01:00
Renovate BotandPetri Tuomola 42247de157 chore(deps): update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.10.1 2021-02-14 12:54:33 +08:00
Renovate BotandPetri Tuomola 38c109e0fd chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.43.0 2021-02-14 07:27:23 +08:00
David YahalomiandMichael Vorburger ⛑️ b0c45da472 Add days in year at loan level #FINERACT-1302 2021-02-07 22:43:19 +01:00
Michael Vorburger c927915443 centralize Google Truth versions instead of repeating them 2021-02-07 22:33:18 +01:00
Renovate BotandMichael Vorburger ⛑️ b267ba2115 chore(deps): update dependency org.junit:junit-bom to v5.7.1 2021-02-07 22:33:09 +01:00
Michael Vorburger 92cefe2f16 remove redundant JUnit versions (these are already 'inherited' from the BOM) 2021-02-07 21:50:15 +01:00
Apurv GuptaandMichael Vorburger ⛑️ f7815bac6c Fix: Readme for Instructions to run using Docker on Windows 2021-02-07 14:49:37 +01:00
Michael Vorburger 069dae0355 Log only WARN & ERR but not INFO anymore (re. FINERACT-1168) 2021-02-07 14:47:01 +01:00
Renovate BotandMichael Vorburger ⛑️ 47711a1ae8 chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.42.0 2021-02-07 14:07:20 +01:00
Renovate BotandMichael Vorburger ⛑️ 9ada63f4f4 chore(deps): update dependency gradle to v6.8.2 2021-02-07 14:06:40 +01:00
Renovate BotandAwasum Yannick 39355ed47b chore(deps): update dependency com.puppycrawl.tools:checkstyle to v8.40 2021-02-05 21:16:56 +01:00
Renovate BotandAwasum Yannick 5b56787ef3 chore(deps): update dependency com.google.truth:truth to v1.1.2 2021-02-05 13:40:35 +01:00
Zoltan NebliandMichael Vorburger ⛑️ 022d661877 FINERACT-1311: fix nullpointer at savingsAccount closedOnDate 2021-02-05 11:18:14 +01:00
Renovate BotandAwasum Yannick 03c6202a21 chore(deps): update dependency org.apache.tomcat:tomcat to v9.0.43 2021-02-05 09:46:19 +01:00
Renovate BotandAwasum Yannick 866caa0bf4 chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.11.949 2021-02-05 09:03:59 +01:00
Renovate BotandAwasum Yannick fb5bd1ce60 chore(deps): update dependency com.github.spotbugs:spotbugs-annotations to v4.2.1 2021-02-05 09:03:27 +01:00
Renovate BotandAwasum Yannick fbf68d9a6e chore(deps): update dependency com.github.spotbugs:spotbugs to v4.2.1 2021-02-05 09:02:49 +01:00
BLasanandYemdjih Kaze Nasser 94a795dad4 Add resource limits & requests for mysql deployment (FINERACT-1301) 2021-01-27 16:05:24 +01:00
BLasanandYemdjih Kaze Nasser 4ee1cf7210 Add ReadinessProbe for mysql container (FINERACT-1292) 2021-01-27 16:03:50 +01:00
WhiteSource RenovateandGitHub 06c022f072 chore(deps): update dependency com.google.truth.extensions:truth-java8-extension to v1.1.2 (#1592) 2021-01-24 01:27:57 +01:00
Rahul PawarandGitHub 7c6c7c1e71 upload-CreditReport (#1567 for FINERACT-1285) 2021-01-24 01:26:37 +01:00
BLasanandMichael Vorburger ⛑️ 1f5d240ddb Add init-container to check MYSQL server deployment (FINERACT-1300)
Validate Gradle Wrapper / Validation (push) Canceled after 0s
2021-01-23 17:01:23 +01:00
Renovate BotandMichael Vorburger ⛑️ 8aa416671c chore(deps): update dependency com.google.truth:truth to v1.1.1 2021-01-23 16:18:24 +01:00
BLasanandMichael Vorburger ⛑️ 9ffadb248d Fix MySQL Access Denied Issue (FINERACT-1294) 2021-01-23 15:49:22 +01:00
Michael Vorburger f63e9d42b4 Remove ErrorProne JdkObsolete exclusion (FINERACT-1075) 2021-01-23 15:12:08 +01:00
Michael Vorburger 8bff783c5d Upgrade ErrorProne from 2.4.0 to 2.5.1 (FINERACT-1297) 2021-01-23 15:11:40 +01:00
Michael Vorburger 6be352fc74 Fix OperatorWrap violation required by Checkstyle 8.38 to 8.39 upgrade 2021-01-23 15:06:33 +01:00
Renovate BotandMichael Vorburger ⛑️ 9e7a0fb6ea chore(deps): update dependency com.puppycrawl.tools:checkstyle to v8.39 2021-01-23 15:06:33 +01:00
Michael Vorburger c67959b60c remove un-used class Tenant 2021-01-23 15:06:14 +01:00
Renovate BotandMichael Vorburger ⛑️ 2859ab1ba5 chore(deps): update dependency com.google.truth.extensions:truth-java8-extension to v1.1.1 2021-01-23 15:05:50 +01:00
Renovate BotandMichael Vorburger ⛑️ d4f90a7223 chore(deps): update dependency gradle to v6.8.1 2021-01-23 15:05:42 +01:00
Renovate BotandMichael Vorburger ⛑️ fc0f8c0257 chore(deps): update dependency org.apache.activemq:activemq-broker to v5.16.1 2021-01-21 21:23:06 +01:00
Avik GangulyandGitHub 505c351cd6 FIN-1290 (#1586) 2021-01-21 05:07:18 +05:30
Wandji CollinsandMichael Vorburger ⛑️ ce825c912d FINERACT-1157:UnsupportedOperationException at InteropServiceImpl 2021-01-17 22:42:12 +01:00
Wandji CollinsandMichael Vorburger ⛑️ e43be716ae FINERACT-1157:UnsupportedOperationException at InteropServiceImpl 2021-01-17 22:42:12 +01:00
Michael Vorburger 8c52097094 clean up (mechanical) SchedulerJobsTestResults (re. FINERACT-924; but not fixing that) 2021-01-17 13:08:57 +01:00
Renovate BotandMichael Vorburger ⛑️ c543e78988 chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.40.0 2021-01-17 12:41:48 +01:00
BLasanandMichael Vorburger ⛑️ ff48bfab79 Fix volume mounting issue in MySQL image (FINERACT-1294) 2021-01-17 11:26:46 +01:00
Renovate BotandMichael Vorburger ⛑️ ff52192f66 chore(deps): update dependency com.github.spotbugs:spotbugs to v4.2.0 2021-01-17 10:56:15 +01:00
Michael Vorburger 8d16c8d8c3 use @TestMethodOrder(MethodName.class) in SchedulerJobsTestResults (re. FINERACT-1293, but doesn't help) 2021-01-17 10:42:18 +01:00
Michael Vorburger 12b15cdf2b Improve assertion in SchedulerJobsTestResults (FINERACT-924) 2021-01-17 10:33:45 +01:00
Renovate BotandMichael Vorburger ⛑️ cfd0e95c47 chore(deps): update dependency io.spring.dependency-management:io.spring.dependency-management.gradle.plugin to v1.0.11.release 2021-01-15 19:26:49 +01:00
BLasanandYemdjih Kaze Nasser 2ec4803252 Fix kubernetes startup & shutdown commands issue (FINERACT-1288) 2021-01-14 21:26:08 +01:00
Renovate BotandMichael Vorburger ⛑️ 8622888052 chore(deps): update dependency org.springframework:spring-framework-bom to v5.3.3 2021-01-12 20:04:32 +01:00
David YahalomiandPetri Tuomola d4aa01cf4b Avoid NullPointerException on calc schedule for floating rate (FINERACT-1286) 2021-01-12 05:39:06 +08:00
Renovate BotandPetri Tuomola ac0ea12467 chore(deps): update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.9.0 2021-01-11 06:51:01 +08:00
Renovate BotandPetri Tuomola 800bd10ceb chore(deps): update dependency com.amazonaws:aws-java-sdk-s3 to v1.11.934 2021-01-11 06:50:27 +08:00
Renovate BotandPetri Tuomola cde770a675 chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.39.0 2021-01-11 06:34:39 +08:00
Renovate BotandPetri Tuomola 7f8f3fa8ca chore(deps): update dependency gradle to v6.8 2021-01-11 06:34:07 +08:00
Michael VorburgerandPetri Tuomola 65f54a719a Accept maturityAmount that is in FixedDepositTest (FINERACT-887) 2021-01-10 22:00:17 +08:00
Cedric KhinandMichael Vorburger ⛑️ 30d04ce34e Add an interop release transfer command handler (FINERACT-1281) 2021-01-10 14:28:19 +01:00
rrpawar96andMichael Vorburger ⛑️ db32e569d5 CreditBureau-Integration-Api-documentation 2021-01-04 18:42:13 +01:00
rrpawar96andMichael Vorburger ⛑️ 85e3c4dcb2 Credit_Bureau_Phase3 (FINERACT-734) 2021-01-04 18:42:13 +01:00
Renovate BotandMichael Vorburger ⛑️ b6127368ca chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.38.0 2020-12-30 15:23:32 +01:00
Renovate BotandAwasum Yannick 3a922fd2ce chore(deps): update dependency com.google.guava:guava to v30.1-jre 2020-12-30 12:41:13 +01:00
Renovate BotandAwasum Yannick 695c4954c6 chore(deps): update dependency com.github.librepdf:openpdf to v1.3.24 2020-12-30 12:40:01 +01:00
Renovate BotandAwasum Yannick 2707250ba4 chore(deps): update dependency com.bmuschko:gradle-cargo-plugin to v2.8.0 2020-12-30 12:39:48 +01:00
Renovate BotandAwasum Yannick d0aad4c7f8 chore(deps): update dependency org.springframework:spring-framework-bom to v5.3.2 2020-12-30 11:37:16 +01:00
Renovate BotandAwasum Yannick fd02796c4b chore(deps): update dependency org.mnode.ical4j:ical4j to v3.0.21 2020-12-30 09:31:39 +01:00
Manthan SurkarandGitHub 828f07078f Merge pull request #1546 from vorburger/FINERACT-1070_error.msg.user.email.invalid
Improve error logging for failed user creation (FINERACT-1070)
2020-12-14 01:52:28 +05:30
Michael Vorburger ⛑️andAleksandar Vidakovic 6abbaafd80 Minor performance optimization to Gradle build in Dockerfile 2020-12-13 13:27:25 +01:00
Michael Vorburger 2b4ee620d1 Improve error logging for failed user creation (FINERACT-1070) 2020-12-13 12:54:25 +01:00
Manthan SurkarandGitHub 7e1d6da4e2 Merge pull request #1539 from renovate-bot/renovate/io.swagger.core.v3.swagger-gradle-plugin-io.swagger.core.v3.swagger-gradle-plugin.gradle.plugin-2.x
chore(deps): update dependency io.swagger.core.v3.swagger-gradle-plugin:io.swagger.core.v3.swagger-gradle-plugin.gradle.plugin to v2.1.6
2020-12-13 04:08:51 +05:30
Manthan SurkarandGitHub d45eb1bf81 Merge pull request #1542 from renovate-bot/renovate/com.jayway.jsonpath-json-path-2.x
chore(deps): update dependency com.jayway.jsonpath:json-path to v2.5.0
2020-12-13 04:06:50 +05:30
Manthan SurkarandGitHub fc1e864d10 Merge pull request #1543 from renovate-bot/renovate/org.apache.tomcat-tomcat-9.x
chore(deps): update dependency org.apache.tomcat:tomcat to v9.0.41
2020-12-13 04:06:27 +05:30
Manthan SurkarandGitHub 98d2857ac1 Merge pull request #1541 from apache/FINERACT-1070_take-two
Better fix for SMTP Server Port (FINERACT-1070)
2020-12-13 03:43:16 +05:30
Renovate Bot c2f375925d chore(deps): update dependency org.apache.tomcat:tomcat to v9.0.41 2020-12-12 21:43:23 +00:00
Renovate Bot f9d52677bb chore(deps): update dependency com.jayway.jsonpath:json-path to v2.5.0 2020-12-12 21:43:13 +00:00
Manthan SurkarandGitHub 16bd18c538 Merge pull request #1540 from renovate-bot/renovate/io.swagger.core.v3-swagger-annotations-2.x
chore(deps): update dependency io.swagger.core.v3:swagger-annotations to v2.1.6
2020-12-13 03:08:38 +05:30
Michael Vorburger d189fe8385 Better fix for SMTP Server Port (FINERACT-1070) 2020-12-11 23:37:05 +01:00
Renovate Bot 2f1b6d1c36 chore(deps): update dependency io.swagger.core.v3:swagger-annotations to v2.1.6 2020-12-10 13:55:55 +00:00
Renovate Bot fb3a56d7c9 chore(deps): update dependency io.swagger.core.v3.swagger-gradle-plugin:io.swagger.core.v3.swagger-gradle-plugin.gradle.plugin to v2.1.6 2020-12-10 13:55:47 +00:00
Michael Vorburger eabb7b0809 Fix missing SMTP Server Port in GmailBackedPlatformEmailService (FINERACT-1070) 2020-12-03 16:14:39 +01:00
Renovate BotandPetri Tuomola fafb992a9b chore(deps): update dependency org.springframework:spring-framework-bom to v5.3.1 2020-12-02 19:46:34 +08:00
Renovate BotandPetri Tuomola 3433a62ec8 chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.37.2 2020-12-02 19:46:06 +08:00
Renovate BotandPetri Tuomola 18ee9b313b chore(deps): update dependency com.puppycrawl.tools:checkstyle to v8.38 2020-12-02 15:28:37 +08:00
Renovate BotandPetri Tuomola 04d255aa01 chore(deps): update dependency org.apache.tika:tika-core to v1.25 2020-12-02 15:28:01 +08:00
Renovate BotandMichael Vorburger ⛑️ 80e498188e chore(deps): update dependency org.asciidoctor.jvm.pdf:org.asciidoctor.jvm.pdf.gradle.plugin to v3.3.0 2020-12-02 07:36:03 +01:00
Renovate BotandMichael Vorburger ⛑️ b47ce359f9 chore(deps): update dependency org.asciidoctor.jvm.revealjs:org.asciidoctor.jvm.revealjs.gradle.plugin to v3.3.0 2020-12-02 07:35:57 +01:00
Renovate BotandMichael Vorburger ⛑️ 535571d127 chore(deps): update dependency org.mock-server:mockserver-junit-jupiter to v5.11.2 2020-12-02 07:35:49 +01:00
rrpawar96andMichael Vorburger ⛑️ 16dec03968 fix-creditBureau-configuration (FINERACT-1169) 2020-12-02 07:28:13 +01:00
Renovate BotandPetri Tuomola c5b01e12c0 chore(deps): update dependency org.asciidoctor.jvm.gems:org.asciidoctor.jvm.gems.gradle.plugin to v3.3.0 2020-11-29 15:10:10 +08:00
Renovate BotandPetri Tuomola f3e45bc456 chore(deps): update dependency org.asciidoctor.jvm.convert:org.asciidoctor.jvm.convert.gradle.plugin to v3.3.0 2020-11-29 14:25:39 +08:00
Renovate BotandPetri Tuomola 95f4443455 chore(deps): update dependency org.asciidoctor.jvm.epub:org.asciidoctor.jvm.epub.gradle.plugin to v3.3.0 2020-11-29 14:25:19 +08:00
Renovate BotandPetri Tuomola 1bd2612647 chore(deps): update dependency org.apache.bval:org.apache.bval.bundle to v2.0.5 2020-11-29 12:34:11 +08:00
Renovate BotandPetri Tuomola 842bc05d44 chore(deps): update dependency org.apache.tomcat:tomcat to v9.0.40 2020-11-29 12:33:29 +08:00
Renovate BotandPetri Tuomola 6fe2fc650b chore(deps): update dependency gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin to v4.6.0 2020-11-29 09:47:04 +08:00
Renovate BotandPetri Tuomola 4729445043 chore(deps): update dependency io.gsonfire:gson-fire to v1.8.5 2020-11-29 09:46:36 +08:00
Renovate BotandPetri Tuomola fe03ae9d8a chore(deps): update dependency com.github.spotbugs:spotbugs-annotations to v4.2.0 2020-11-29 06:29:09 +08:00
Renovate BotandPetri Tuomola 9072de71b1 chore(deps): update dependency com.google.cloud.sql:mysql-socket-factory-connector-j-8 to v1.2.0 2020-11-29 06:28:35 +08:00
Renovate BotandPetri Tuomola d1e4bf7a38 chore(deps): update dependency gradle to v6.7.1 2020-11-29 06:26:36 +08:00
Renovate BotandAwasum Yannick d7e3f9659a chore(deps): update dependency com.github.sevntu-checkstyle:sevntu-checks to v1.38.0 2020-11-28 21:55:02 +01:00
Renovate BotandAwasum Yannick 37ca5bd831 chore(deps): update dependency com.github.librepdf:openpdf to v1.3.23 2020-11-28 21:54:39 +01:00
Michael Vorburger ⛑️andAwasum Yannick 4cda858851 chore: Switch GitHub rebase action checkout@master to @v2
Using a fixed version here is more stable (otherwise future changes in actions/checkout@v3 could theoretically break this for us), and in line with https://github.com/cirrus-actions/rebase/commit/51854755db80c104a3f4be4b617988933209b5a1, which I've stumbled upon from #1509. This is also consistent with our other GitHub actions.
2020-11-28 21:49:25 +01:00
Renovate BotandMichael Vorburger ⛑️ 34a044ac3b chore(deps): update cirrus-actions/rebase action to v1.4 2020-11-28 18:30:24 +01:00
Renovate BotandMichael Vorburger ⛑️ 2387b57727 chore(deps): update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.8.2 2020-11-28 18:26:24 +01:00
Michael VorburgerandAwasum Yannick a399dcb162 docs: HTTPS how-to (FINERACT-1262) 2020-11-28 17:37:23 +01:00
Yemdjih Kaze NasserandAwasum Yannick 161d518455 FINERACT-27 - Extend holiday period to 30 days 2020-11-28 17:33:33 +01:00
Yemdjih Kaze NasserandPetri Tuomola 6a55a80c7d FINERACT-1198 - Revert spotlessApply and use only spotlessCheck 2020-11-26 16:09:37 +08:00
Michael VorburgerandPetri Tuomola b96061613b Improve error handling if reporting service implementation is missing [FINERACT-1173] 2020-11-26 06:13:15 +08:00
Michael VorburgerandAleksandar Vidakovic a3ab467278 Fix flaky GET {entity}/{entityId}/images Content-Type bug (FINERACT-1265) 2020-11-21 18:40:54 +01:00
Michael VorburgerandAleksandar Vidakovic 834d8550fb Add missing ReportsTest Swagger IT (see FINERACT-1173 & FINERACT-1263) 2020-11-21 14:20:49 +01:00
Vincent FUCHSandMichael Vorburger ⛑️ b29558062c Remove hard coded Mockito versions : they are managed by Spring already, so no need to define them ourselves and create potential conflicts. 2020-11-21 11:39:19 +01:00
Michael VorburgerandPercy Enoabane 6c853a6cc7 ContentRepository.fetchImage() FileData not ImageData (FINERACT-1201)
This is more consistent with fetchFile(), and allows to re-use code.
2020-11-19 10:25:32 +01:00
Michael VorburgerandPercy Enoabane 3e1444a6e4 Remove unused fileName and resourceId from ContentRepository deleteFile() & deleteImage() (FINERACT-1201) 2020-11-19 10:25:32 +01:00
Michael VorburgerandAleksandar Vidakovic bf0c7e240f docs: Fix broken build 2020-11-19 02:37:46 +01:00
Yemdjih Kaze NasserandMichael Vorburger ⛑️ bef01a19a2 Update test execution in readme 2020-11-18 22:22:48 +01:00
Vincent FuchsandMichael Vorburger ⛑️ a9020d7136 Align Spring Boot versions to 2.3.5 2020-11-18 21:33:36 +01:00
ManojandGitHub 169b01d72b FINERACT-1241-elastic-web-hook-update (#1488) 2020-11-10 03:44:27 +05:30
Michael VorburgerandAleksandar Vidakovic ef3e2e3c92 Fix Bulk Import failing for office names containing hyphens (FINERACT-1256) 2020-11-07 22:29:49 +01:00
Michael VorburgerandAleksandar Vidakovic 73e330a58e Move all SDK client tests into integrationtests (FINERACT-1209)
And run the against localhost instead of https://fineract.dev
2020-11-07 22:29:49 +01:00
Percy EnoabaneandGitHub 6f2fdaefdf Merge pull request #1496 from apache/vorburger-rm-modernizer-joda
Remove Joda exclusion from Modernizer (FINERACT-826)
2020-11-07 10:59:33 +01:00
Percy EnoabaneandGitHub 56fc5476a6 Merge pull request #1497 from apache/vorburger-JavaTimeDefaultTimeZone
Enable JavaTimeDefaultTimeZone rule in ErrorProne (FINERACT-1112)
2020-11-07 10:55:33 +01:00
Michael Vorburger ⛑️andGitHub 525bcbd4e5 Enable JavaTimeDefaultTimeZone rule in ErrorProne (FINERACT-1112) 2020-11-07 02:27:04 +01:00
Michael Vorburger ⛑️andGitHub f81d0c6c10 Remove Joda exclusion from Modernizer 2020-11-07 02:21:59 +01:00
Michael VorburgerandPetri Tuomola 140c55b7f2 Replace use of InputStream by ByteSource in ImageData (FINERACT-1201) 2020-11-06 05:27:17 +02:00
Michael VorburgerandPetri Tuomola 465623d5ae Factor out ImageData.resize into ImageResizer (FINERACT-1201) 2020-11-06 05:27:17 +02:00
Michael VorburgerandPetri Tuomola 716ba79671 Simplify ImageData.resizeImage (FINERACT-1201) 2020-11-06 05:27:17 +02:00
Michael VorburgerandPetri Tuomola 0af9aa3d0c Clean up ImageData (FINERACT-1201) 2020-11-06 05:27:17 +02:00
percy ashuandPetri Tuomola 814455769b FINERACT-1112 Replace ZoneId.systemDefault() with tenant's timezone 2020-11-06 05:19:44 +02:00
Michael Vorburger ⛑️andGitHub 7b34e83843 Bump ancient OkHTTP & Retrofit in Hooks (FINERACT-1252) (#1486) 2020-11-03 14:16:01 +05:30
Michael VorburgerandAleksandar Vidakovic 26cd903301 Test downloaded file name (FINERACT-1218) 2020-11-02 22:44:37 +01:00
Aleksandar VidakovicandMichael Vorburger ⛑️ e380df187d FINERACT-1191: Finceract Documentation in Asciidoc 2020-11-02 21:25:36 +01:00
Michael VorburgerandAleksandar Vidakovic db53a422b2 Remove un-used code & testImplementation dependencies from provider (FINERACT-1209) 2020-11-02 12:23:31 +01:00
Michael VorburgerandAleksandar Vidakovic a1687d974b Remove redundant testLogging etc. (FINERACT-1209)
because https://github.com/apache/fineract/pull/1477/files
moved this from fineract-provider/build.gradle to the root ./build.gradle
so it's inherited.
2020-11-02 12:09:49 +01:00
Michael VorburgerandAleksandar Vidakovic 2a2b4b59a1 Simplify Gradle invocation in Travis YAML (FINERACT-1250) 2020-11-02 12:02:32 +01:00
Aleksandar VidakovicandMichael Vorburger ⛑️ 578e098670 FINERACT-1209: Integration Tests using new Swagger Client API 2020-11-02 10:00:50 +01:00
Michael VorburgerandPetri Tuomola 1e7f1f5847 Disable frequently failing SchedulerJobsTest.testFlippingSchedulerStatus (FINERACT-1167) 2020-11-01 19:13:30 +02:00
Renovate BotandMichael Vorburger ⛑️ accf7cde83 chore(deps): update actions/stale action to v3 2020-11-01 11:32:11 +01:00
Renovate BotandPetri Tuomola 6a82894439 chore(deps): update dependency com.google.truth.extensions:truth-java8-extension to v1.1 2020-11-01 09:19:10 +02:00
Renovate BotandPetri Tuomola d3fe9fa916 chore(deps): update dependency org.webjars.npm:swagger-ui-dist to v3.36.1 2020-11-01 09:18:34 +02:00
Michael Vorburger ⛑️andPetri Tuomola 892a6ee551 Add Swagger "badge" to README, currently showing INVALID (FINERACT-1249) 2020-11-01 06:26:23 +02:00
Renovate BotandPetri Tuomola 477da9d8c9 chore(deps): update dependency org.springframework.boot:org.springframework.boot.gradle.plugin to v2.3.5.release 2020-11-01 06:24:50 +02:00
Renovate BotandPetri Tuomola 5c36032528 chore(deps): update dependency org.springframework:spring-framework-bom to v5.3.0 2020-11-01 06:24:09 +02:00
Renovate BotandMichael Vorburger ⛑️ 39d3bc4572 chore(deps): update dependency org.mockito:mockito-junit-jupiter to v3.6.0 2020-10-31 22:25:59 +01:00
Renovate BotandMichael Vorburger ⛑️ 99fa23e794 chore(deps): update dependency com.puppycrawl.tools:checkstyle to v8.37 2020-10-31 22:25:24 +01:00
Renovate BotandAleksandar Vidakovic 997ec7df36 chore(deps): update dependency com.google.truth:truth to v1.1 2020-10-31 21:26:55 +01:00
Renovate BotandAleksandar Vidakovic ad4c8dc39a chore(deps): update dependency org.mockito:mockito-core to v3.6.0 2020-10-31 21:26:36 +01:00
Renovate BotandAleksandar Vidakovic 256117bfec chore(deps): update dependency com.diffplug.spotless:com.diffplug.spotless.gradle.plugin to v5.7.0 2020-10-31 21:25:34 +01:00
Michael VorburgerandAleksandar Vidakovic 349415917f Move Gradle test exceptionFormat up (FINERACT-1247) 2020-10-31 21:19:21 +01:00
Michael Vorburger 3583975bc6 Disable failing testRecurringDepositAccountWithClosureTypeTransferToSavings_WITH_HOLD_TAX (FINERACT-1248) 2020-10-31 16:26:44 +01:00
Michael Vorburger f08df636d3 Disable failing ImageTest (FINERACT-1247) 2020-10-31 16:26:44 +01:00
Michael Vorburger f4ada274ba Revert "FINERACT-1241-elastic-web-hook (#1466)"
This reverts commit 0a41cdc9d9.
2020-10-31 16:26:44 +01:00
Aleksandar VidakovicandPetri Tuomola 7d2df13e88 FINERACT-1210: Swagger TypeScript client 2020-10-30 07:59:56 +02:00
ManojandGitHub 0a41cdc9d9 FINERACT-1241-elastic-web-hook (#1466) 2020-10-27 23:45:31 +05:30
Michael VorburgerandPetri Tuomola 91e77f5fe0 Add new ImageTest (FINERACT-1218) 2020-10-27 05:13:16 +02:00
Michael VorburgerandAleksandar Vidakovic 8a26685d79 client: Fix bad dateFormat in FineractClient (FINERACT-1242) 2020-10-26 11:27:31 +01:00
Michael VorburgerandAleksandar Vidakovic 420d26a679 Minor: CallSubject.hasHttpStatus() throws unchecked CallFailedRuntimeException 2020-10-24 23:36:03 +02:00
percyashuandAwasum Yannick 43ef6e1983 FINERACT-826 Migrate to java.time from Joda API 2020-10-24 22:27:00 +01:00
Michael VorburgerandPetri Tuomola 5f42112278 client: Fix mediaType MIME code (FINERACT-1218) 2020-10-24 21:01:32 +03:00
Michael VorburgerandPetri Tuomola 20daf59a3e Add new DocumentTest (FINERACT-1218) 2020-10-23 20:50:00 +03:00
jagadeeshaknandMichael Vorburger ⛑️ 6992102035 FINERACT-1165 2020-10-23 18:15:04 +02:00
Michael VorburgerandPetri Tuomola ff0db483cd client: serialize LocalDate as 2009-01-01 (FINERACT-1234) 2020-10-23 06:47:04 +03:00
Michael VorburgerandAleksandar Vidakovic af1509abee client: Skip generating generated utilities which are broken (FINERACT-1231) 2020-10-22 12:25:00 +02:00
Michael VorburgerandPetri Tuomola 6d22549373 Fix possible NPE when uploading Documents & Images (FINERACT-1036) 2020-10-22 06:06:37 +03:00
Michael VorburgerandPetri Tuomola cb3260b61f Minor: Return bad Image MIME type to API client 2020-10-22 06:04:02 +03:00
Michael VorburgerandAleksandar Vidakovic 64d0b1fe58 client: Improve quick build doc 2020-10-21 18:41:17 +02:00
Aleksandar VidakovicandMichael Vorburger ⛑️ e2aa84a802 FINERACT-1231: SDK Swagger Java Client generated utilities are broken and should be removed from JAR 2020-10-21 17:27:45 +02:00
Michael VorburgerandAleksandar Vidakovic b75ced50df client: GSON TypeAdapter<LocalDate> Fineract API Format [2009,1,1] (FINERACT-1220) 2020-10-21 14:42:08 +02:00
Michael VorburgerandPetri Tuomola e2eec3924f Build all modules on Travis (FINERACT-1226) 2020-10-21 06:08:27 +03:00
Michael Vorburger 1af69db132 Introduce CallFailedRuntimeException in client 2020-10-20 23:58:16 +02:00
Michael Vorburger 27bebff4ac Do not expose getApiClient() in FineractClient (FINERACT-1220)
Because FineractClient is about to not use Swagger's ApiClient anymore.
2020-10-20 23:18:07 +02:00
Aleksandar VidakovicandAleksandar Vidakovic 800b7e07ad FINERACT-1219: Add insecure() support to FineractClient SDK API (fix JDK8 syntax) 2020-10-20 16:50:33 +02:00
Michael Vorburger.chandAleksandar Vidakovic c98cef85f6 Minor: Improve ApplicationExitUtil
It's currently actually un-used, but it could be used again
in the future, when we re-integrate MariaDB4j. (I had this
patch on a branch for months and wanted to get it upstream.)
2020-10-20 03:37:11 +02:00
Michael VorburgerandAleksandar Vidakovic bb64d3f1a5 Add insecure() support to FineractClient SDK API (FINERACT-1219) 2020-10-20 03:35:10 +02:00
Aleksandar VidakovicandAleksandar Vidakovic 354acf309e Apply Checkstyle, Errorprone etc. for all Java modules (FINERACT-1171) 2020-10-20 03:00:33 +02:00
Renovate BotandAleksandar Vidakovic 4b5a4cb4b0 Update dependency org.mockito:mockito-junit-jupiter to v3.5.15 2020-10-20 01:01:27 +02:00
Michael VorburgerandAleksandar Vidakovic 0897f172ee Limit fineract-client to Java 8 not 11 (FINERACT-1214) 2020-10-20 00:57:53 +02:00
Michael Vorburger ⛑️andAleksandar Vidakovic a1e9bc0899 Add initial Fineract SDK Java API Client documentation (FINERACT-1216) 2020-10-20 00:56:39 +02:00
Michael VorburgerandAleksandar Vidakovic 81552b41a0 Reduce fineract-client dependencies (FINERACT-1216) 2020-10-19 23:05:37 +02:00
Petri TuomolaandMichael Vorburger ⛑️ 1afc3f1330 FINERACT-1138: Make localhost default server for Swagger UI 2020-10-19 22:36:10 +02:00
Michael VorburgerandPetri Tuomola 9b2d95f9bb add logging support to SDK API client (FINERACT-1216) 2020-10-19 21:19:55 +03:00
Renovate BotandPetri Tuomola 9cf89d7193 Update dependency org.mockito:mockito-core to v3.5.15 2020-10-19 21:18:50 +03:00
Renovate BotandPetri Tuomola 451a24e093 Update dependency gradle.plugin.com.gorylenko.gradle-git-properties:gradle-git-properties to v2.2.4 2020-10-19 21:18:24 +03:00
Aleksandar VidakovicandPetri Tuomola f192b7315b FINERACT-1207: Clean up fineract-provider/config/swagger following introduction of fineract-client/ 2020-10-19 21:15:50 +03:00
Michael Vorburger db4d2ae006 Add FineractClientTest.testInvalidOperations (FINERACT-1221) 2020-10-19 17:58:43 +02:00
Michael Vorburger ⛑️andPetri Tuomola c8324a90b9 Create CONTRIBUTING.md 2020-10-19 16:19:35 +03:00
Michael Vorburger ⛑️andPetri Tuomola bd38655f88 Create CODE_OF_CONDUCT.md 2020-10-19 16:18:13 +03:00
Renovate BotandMichael Vorburger ⛑️ 90527bd3b0 Update dependency net.ltgt.gradle:gradle-errorprone-plugin to v1.3.0 2020-10-19 14:44:43 +02:00
Michael VorburgerandAleksandar Vidakovic 55b1d4f531 Simplify FineractClient SDK API (FINERACT-1216) 2020-10-19 14:40:43 +02:00
Aleksandar VidakovicandMichael Vorburger ⛑️ 6b28c0e047 FINERACT-1102: Swagger Codegen Client JAR should be available on a Maven repo 2020-10-19 12:30:57 +02:00
Michael VorburgerandAleksandar Vidakovic 19f2a38095 Add FineractClientTest for Fineract SDK REST Client (FINERACT-1216)
and introduce handy Calls utilitiy
2020-10-18 22:04:08 +02:00
Michael VorburgerandPetri Tuomola 00166d4543 remove weird ImageData.available (FINERACT-1201)
I don't understand what this really does, or how to test it.
It seems to have been original introduced for FINERACT-288
in PR #259, but the description there doesn't clearly enough
explain the problem.

Much related code is about to be substantially refactored, and
whatever problem this originally worked around may no longer be
present when the ongoing refactoring is fully completed.  If it
still is, then there will likely be a better way to address it.
2020-10-18 21:30:19 +03:00
Michael VorburgerandPetri Tuomola e054a6f0a2 Improve ProcessorHelper (FINERACT-1211) 2020-10-18 20:55:04 +03:00
Michael VorburgerandPetri Tuomola d83bdc4166 Add missing test coverage for Image 404 (FINERACT-1201) 2020-10-18 20:50:53 +03:00
Michael Vorburger 6c9f4efa9a rm org.threeten:threetenbp dependency 2020-10-18 18:05:51 +02:00
Aleksandar VidakovicandMichael Vorburger ⛑️ 03ffc1d013 FINERACT-1214: SDK Swagger Client Java API methods returning Rx Observable are not intuitive for Java developers 2020-10-18 12:23:21 +02:00
Aleksandar VidakovicandMichael Vorburger ⛑️ 88765f135b FINERACT-1208: -Werror javac compilerArg lost during move to multi modules 2020-10-18 03:08:40 +02:00
Renovate BotandPetri Tuomola 18f1060d05 Update dependency com.github.spullara.mustache.java:compiler to v0.9.7 2020-10-18 01:47:56 +03:00
Renovate BotandPetri Tuomola 2e7ff4a2aa Update dependency io.swagger:swagger-annotations to v1.6.2 2020-10-18 01:46:32 +03:00
Michael VorburgerandPetri Tuomola 4bbc0ee3a7 add .mailmap 2020-10-17 19:50:51 +03:00
Renovate BotandPetri Tuomola aeecaf012f Update dependency io.swagger:swagger-core to v1.6.2 2020-10-17 19:48:50 +03:00
Renovate BotandMichael Vorburger ⛑️ e623ad2367 Update dependency io.gsonfire:gson-fire to v1.8.4 2020-10-17 17:28:21 +02:00
Renovate BotandMichael Vorburger ⛑️ d00941e16c Update dependency commons-codec:commons-codec to v1.15 2020-10-17 17:27:53 +02:00
Aleksandar VidakovicandMichael Vorburger ⛑️ ca80ecb46e FINERACT-1189: fineract client as a separate module 2020-10-17 16:24:53 +02:00
Renovate BotandPetri Tuomola 9c67117f3d Update dependency com.google.guava:guava to v30 2020-10-17 09:24:37 +03:00
Renovate BotandPetri Tuomola 66bafd66f8 Update dependency org.webjars.npm:swagger-ui-dist to v3.35.2 2020-10-16 09:12:44 +03:00
Renovate BotandMichael Vorburger ⛑️ 79d4d7659a Update dependency com.github.spotbugs:spotbugs-annotations to v4.1.4 2020-10-15 14:01:53 +02:00
Renovate BotandMichael Vorburger ⛑️ da73e62522 Update dependency com.github.spotbugs:spotbugs to v4.1.4 2020-10-15 14:01:29 +02:00
Aleksandar VidakovicandPetri Tuomola ee9f428f28 FINERACT-1203: Fix broken Executable WAR 2020-10-15 12:42:05 +03:00
Renovate BotandPetri Tuomola cd688a5ce1 Update dependency gradle to v6.7 2020-10-15 06:36:01 +03:00
Michael VorburgerandPetri Tuomola 2af09708f1 Prepare FileSystemContentRepository for code re-use with S3ContentRepository (FINERACT-1201) 2020-10-14 10:34:02 +03:00
Michael VorburgerandPetri Tuomola 0146f518bc Improve exception handling and error logging in S3ContentRepository (FINERACT-1202) 2020-10-14 10:32:31 +03:00
Michael VorburgerandPetri Tuomola 75da7d9e29 Minor/Clean-up: remove un-used ContentRepository.type 2020-10-14 10:29:38 +03:00
Aleksandar VidakovicandPetri Tuomola 5520bb3c2d FINERACT-1188: README and other files are not covered by Spotless 2020-10-14 10:29:05 +03:00
Michael VorburgerandPetri Tuomola 8c342a7d88 Minor: Re-use Random in ContentRepositoryUtils instead of creating new one 2020-10-14 10:28:36 +03:00
Michael VorburgerandPetri Tuomola 6125cccef0 Minor improvements to ContentManagementException (FINERACT-1202) 2020-10-14 10:26:01 +03:00
e57b7daad1 Added a SQL schema connection parameter field (#1373)
Co-authored-by: Cedric Khin <c.khin@opensense.fr>
2020-10-13 21:14:22 +02:00
Vincent FUCHSandMichael Vorburger ⛑️ a4a2334536 dummy commit to trigger the build again 2020-10-13 21:12:58 +02:00
Vincent FUCHSandMichael Vorburger ⛑️ 704d73dd3e Enable messaging through Spring profile as "activeMqEnabled" (FINERACT-1193) 2020-10-13 21:12:58 +02:00
Michael VorburgerandPetri Tuomola 02408f9165 Make ./gradlew bootRun have colors, like java -jar *.jar (FINERACT-1078) 2020-10-12 07:00:50 +03:00
Michael Vorburger ad87660f73 Remove jul-to-slf4j exclusion (FINERACT-1199) 2020-10-11 23:16:10 +02:00
Petri TuomolaandMichael Vorburger ⛑️ 490ad438a5 FINERACT-1200: Route OpenJPA logging to slf4j 2020-10-11 23:15:43 +02:00
Aleksandar VidakovicandPetri Tuomola 26c1c17151 FINERACT-1194: Move Gradle wrapper to root folder 2020-10-11 22:17:35 +03:00
Michael VorburgerandPetri Tuomola 6a6c0301b6 Simplify appContext.xml, mv all *Repository into .domain. packages, rm spmContext.xml (FINERACT-1175) 2020-10-11 22:07:00 +03:00
Petri TuomolaandGitHub 5365da4d24 Merge pull request #1390 from vorburger/FINERACT-1154_merge-1.4.0
Merge git tag '1.4.0' into branch 'develop' (FINERACT-1154)
2020-10-11 18:50:16 +03:00
Michael VorburgerandPetri Tuomola e978971c67 Remove license header from .dockerignore (FINERACT-1195) 2020-10-11 18:42:44 +03:00
Michael Vorburger 09e08fdc71 Merge git tag '1.4.0' into branch 'develop' (FINERACT-1154)
git checkout develop
    git checkout -b FINERACT-1154_merge-1.4.0
    git merge -s recursive -Xignore-all-space 1.4.0

see discussion in https://issues.apache.org/jira/browse/FINERACT-1154
for the full background about why we are doing this; the TL;DR is that
this makes `git describe` work correctly, which is important for automation.
2020-10-11 14:50:44 +02:00
Renovate BotandPetri Tuomola 3ee46b040b Update dependency org.springframework:spring-framework-bom to v5.2.9.RELEASE 2020-10-11 05:57:59 +03:00
Sergio ZharinovandPetri Tuomola e985597492 Make Renovate Bot propose bumps to update spring-framework-bom (FINERACT-1192)
All credit for this magic ;) goes https://github.com/zharinov.

See https://github.com/apache/fineract/pull/1372.
2020-10-10 18:56:16 +03:00
Michael Vorburger 768ffecd90 Remove mavenCentral(), because jcenter() includes it 2020-10-10 15:56:28 +02:00
Aleksandar VidakovicandGitHub f66a5c71ba Merge pull request #1384 from vorburger/FINERACT-1188_whitespace-only
Clean up whitespace issues, only (FINERACT-1188) but WITHOUT any build script changes, yet
2020-10-10 13:46:45 +02:00
Michael Vorburger 504eeed431 Clean up whitespace issues, only (FINERACT-1188) 2020-10-10 11:33:09 +02:00
Renovate BotandPetri Tuomola d98b23a86d Update dependency org.mnode.ical4j:ical4j to v3.0.20 2020-10-10 08:59:44 +03:00
Petri TuomolaandMichael Vorburger ⛑️ da3868f5c3 FINERACT-1187: Stop appending version number to filenames 2020-10-10 00:03:46 +02:00
Renovate BotandPetri Tuomola 620bde88c0 Update dependency org.apache.tomcat:tomcat to v9.0.39 2020-10-09 21:55:32 +03:00
Renovate BotandPetri Tuomola d15520d55a Update dependency org.webjars.npm:swagger-ui-dist to v3.35.1 2020-10-09 21:55:04 +03:00
Vincent FUCHSandMichael Vorburger ⛑️ dddb988876 Use https (instead of http) for XSDs - to avoid issues during "gradlew bootRun" in some conditions (FINERACT-1180) 2020-10-09 18:46:15 +02:00
Renovate BotandPetri Tuomola 85acb5bc20 Update dependency org.apache.httpcomponents:httpclient to v4.5.13 2020-10-06 14:18:19 +03:00
ebouvardandMichael Vorburger ⛑️ b1251286a6 Updated Dockerfile to fix build error. 2020-10-05 20:44:46 +02:00
Renovate BotandPetri Tuomola c7b779f343 Update dependency io.swagger.codegen.v3:swagger-codegen-cli to v3.0.22 2020-10-05 16:27:41 +03:00
Michael VorburgerandPetri Tuomola 66e26beae1 exclude awssdk:s3 from flyway-core dependency [FINERACT-1172]
see https://github.com/apache/fineract/pull/1355
2020-10-04 18:33:41 +03:00
Renovate BotandPetri Tuomola e4f0493aa5 Update dependency org.flywaydb:flyway-core to v7 2020-10-04 18:33:41 +03:00
ab2acb8ad2 fixed typo : listner -> listener (#1365)
Also breaks up BusinessEventNotificationConstants enum to one per line

Co-authored-by: Vincent FUCHS <vincent.fuchs@gefa.de>
2020-10-03 16:46:41 +02:00
Petri TuomolaandMichael Vorburger ⛑️ 20bf4d6939 FINERACT-1166: Fix build to work outside git repository 2020-10-03 16:24:47 +02:00
Renovate BotandPetri Tuomola 0bc246b6b3 Update dependency io.swagger.core.v3:swagger-gradle-plugin to v2.1.5 2020-10-03 06:10:53 +03:00
Renovate BotandPetri Tuomola 102f4fdefa Update dependency io.swagger.core.v3:swagger-annotations to v2.1.5 2020-10-03 06:10:04 +03:00
Renovate BotandPetri Tuomola bef57e0708 Update dependency com.amazonaws:aws-java-sdk-s3 to v1.11.874 2020-10-02 21:23:48 +03:00
Renovate BotandPetri Tuomola 24a928e4b4 Update dependency org.webjars.npm:swagger-ui-dist to v3.35.0 2020-10-02 21:22:28 +03:00
Renovate BotandPetri Tuomola 3407b06095 Update dependency gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin to v4.5.1 2020-09-30 13:12:13 +03:00
e5f3e8720d Interop KYC and Interop Loan Disbursement (#1330)
* Interop get account KYC

* loan interop disbursement

* checkstyle fix

Co-authored-by: Subham Pramanik <subhampramanik@google.com>
2020-09-29 23:22:18 +05:30
3479e44b40 Add validation error for recovery repayments (FINERACT-1113)
per FINERACT-1113 and community-app issue #2225, add a validation error when a user attempts
a recovery repayment which is greater than the total written off for the loan.

Return an error if the recovery repayment amount is greater than the written off amount.

Co-authored-by: tonic889 <tonic889@github.com>
2020-09-29 18:11:11 +02:00
Michael Vorburger ⛑️andPetri Tuomola e8344e23fa clarify DB config in README 2020-09-29 06:35:55 +03:00
Manthan SurkarandMichael Vorburger ⛑️ 2086332d26 Updated Report-name Regex 2020-09-28 19:37:55 +02:00
Petri TuomolaandMichael Vorburger ⛑️ 915193785e FINERACT-1158: Fixing validation for interop action 2020-09-28 19:32:22 +02:00
Petri TuomolaandMichael Vorburger ⛑️ d9ff0f1317 FINERACT-1161: Fixing update and delete note operations 2020-09-28 19:24:33 +02:00
Renovate BotandPetri Tuomola f3d25d1320 Update dependency com.puppycrawl.tools:checkstyle to v8.36.2 2020-09-27 20:41:36 +03:00
Manthan SurkarandAwasum Yannick 0667806088 Added Swagger-UI video link to online demos (FINERACT-834) 2020-09-25 14:18:11 +01:00
Avik GangulyandGitHub 34a9051fae Merge pull request #1346 from fynmanoj/FINERACT-1151-fix
FINERACT-1151-fix
2020-09-25 13:58:09 +05:30
Renovate BotandPetri Tuomola 0c88ea7223 Update dependency org.mockito:mockito-junit-jupiter to v3.5.13 2020-09-25 05:21:54 +03:00
Renovate BotandPetri Tuomola 6b8d25a945 Update dependency com.github.spotbugs:spotbugs to v4.1.3 2020-09-25 05:19:36 +03:00
Renovate BotandPetri Tuomola 711002038d Update dependency com.github.spotbugs:spotbugs-annotations to v4.1.3 2020-09-25 05:18:57 +03:00
Renovate BotandMichael Vorburger ⛑️ a547a62d67 Update dependency org.mockito:mockito-core to v3.5.13 2020-09-24 21:16:34 +02:00
Manoj 639de48317 FINERACT-1151-fix 2020-09-24 10:14:32 +05:30
Renovate BotandMichael Vorburger ⛑️ 2024bd760a Update dependency com.github.librepdf:openpdf to v1.3.22 2020-09-23 19:31:40 +02:00
Michael Vorburger f73f5ef50f Change OAuth doc in apiLive.htm (FINERACT-629) 2020-09-22 19:52:18 +02:00
Renovate BotandMichael Vorburger ⛑️ c2698438cc Update dependency org.mock-server:mockserver-junit-jupiter to v5.11.1 2020-09-22 19:51:27 +02:00
Renovate BotandMichael Vorburger ⛑️ 961435ed2f Update dependency org.flywaydb:flyway-core to v6.5.7 2020-09-22 19:49:58 +02:00
Renovate BotandPetri Tuomola b4bcb2c00e Update dependency com.diffplug.spotless:spotless-plugin-gradle to v5.6.1 2020-09-22 02:40:37 +03:00
Renovate BotandPetri Tuomola 70b3b24367 Update dependency com.diffplug.spotless:spotless-plugin-gradle to v5.6.0 2020-09-21 18:05:55 +03:00
Renovate BotandMichael Vorburger ⛑️ 754ce8803b Update dependency org.webjars.npm:swagger-ui-dist to v3.34.0 2020-09-20 09:23:27 +02:00
Michael VorburgerandAwasum Yannick ece9c0338b add OAuth documentation (FINERACT-1145) 2020-09-19 09:54:32 +01:00
Renovate BotandPetri Tuomola 487ec8278d Update dependency com.diffplug.spotless:spotless-plugin-gradle to v5.5.2 2020-09-19 06:30:41 +03:00
Renovate BotandPetri Tuomola f185c5828b Update dependency com.github.librepdf:openpdf to v1.3.21 2020-09-19 06:30:10 +03:00
Renovate BotandAwasum Yannick e3766ed0c7 Update dependency org.mockito:mockito-junit-jupiter to v3.5.11 2020-09-18 13:42:05 +01:00
Renovate BotandMichael Vorburger ⛑️ 896ea1cf63 Update dependency org.mockito:mockito-core to v3.5.11 2020-09-18 10:47:25 +02:00
Renovate BotandPetri Tuomola ca3d96ba48 Update dependency org.springframework.boot:spring-boot-gradle-plugin to v2.3.4.RELEASE 2020-09-17 22:17:11 +03:00
Renovate BotandAwasum Yannick f9fb48e4d0 Update dependency org.flywaydb:flyway-core to v6.5.6 2020-09-17 01:27:09 +01:00
Renovate BotandPetri Tuomola 128e6eac21 Update dependency org.apache.tomcat:tomcat to v9.0.38 2020-09-15 16:07:49 +03:00
Avik GangulyandGitHub 21bfd1f102 Merge pull request #1328 from fynmanoj/FINERACT-1106-rework
FINERACT-1106-rework-skip-holiday-for-first-reschedule-date
2020-09-14 19:56:51 +05:30
Avik GangulyandGitHub 44bc6e6c13 Merge pull request #1327 from fynmanoj/FINERACT-1109-rework
FINERACT-1109-rework-with-fixed-emi
2020-09-14 19:56:12 +05:30
Manoj 2db6e6d8b7 FINERACT-1106-rework-skip-holiday-for-first-reschedule-date 2020-09-14 00:09:58 +05:30
Manoj 10dd1fa2b9 FINERACT-1109-rework-with-fixed-emi 2020-09-13 22:18:20 +05:30
Renovate BotandMichael Vorburger ⛑️ cdf3c76856 Update dependency com.diffplug.spotless:spotless-plugin-gradle to v5.5.1 2020-09-13 11:28:16 +02:00
Renovate BotandMichael Vorburger ⛑️ 9e88d8f98a Update dependency com.puppycrawl.tools:checkstyle to v8.36.1 2020-09-12 17:04:48 +02:00
Michael Vorburger ⛑️andPetri Tuomola 6ac3eea0bc Fix SQLBuilder IAE from StaffReadPlatformServiceImpl (FINERACT-1149) 2020-09-12 06:36:16 +03:00
Renovate BotandPetri Tuomola 49dc585a7c Update dependency com.diffplug.spotless:spotless-plugin-gradle to v5.5.0 2020-09-12 01:46:15 +03:00
Renovate BotandMichael Vorburger ⛑️ 7a0418984d Update dependency org.webjars.npm:swagger-ui-dist to v3.33.0 2020-09-11 13:01:08 +02:00
Renovate BotandPetri Tuomola d82584faaa Update dependency io.github.classgraph:classgraph to v4.8.90 2020-09-10 04:58:47 +03:00
Renovate BotandPetri Tuomola be247f8a55 Update dependency com.diffplug.spotless:spotless-plugin-gradle to v5.4.0 2020-09-09 20:43:33 +03:00
Renovate BotandPetri Tuomola f034b1ea58 Update dependency commons-io:commons-io to v2.8.0 2020-09-09 20:43:12 +03:00
Michael Vorburger ⛑️andGitHub 4b435c712b add Merge Strategy section to README (#1284)
includes improved PR Template (and move commit message blurb in README)
2020-09-06 19:10:07 +02:00
Renovate BotandPetri Tuomola 349367a25c Update dependency org.mockito:mockito-junit-jupiter to v3.5.10 2020-09-06 03:50:53 +03:00
Manthan SurkarandPetri Tuomola e74204e740 Removed string concatenated SQL & sqlSearch from Staff (Fineract-854) 2020-09-06 03:50:25 +03:00
Renovate BotandPetri Tuomola dc092d7e18 Update dependency org.mockito:mockito-core to v3.5.10 2020-09-04 20:30:29 +03:00
edcableandGitHub ee99f30e53 Merge pull request #1314 from vidakovic/feature/FINERACT-1141
FINERACT-1141: Backport FINERACT-1135 to 1.4.0 Error at Loan Repaymen…
2020-09-04 08:53:29 -07:00
tonic889andPetri Tuomola 9f7ffe48b1 add total_recovered_derived field to LoanSummaryData object as fix for FINERACT-1113 2020-09-04 12:39:01 +03:00
Aleksandar Vidakovic f5757a7b11 FINERACT-1141: Backport FINERACT-1135 to 1.4.0 Error at Loan Repayments - SQLSyntaxErrorException 2020-09-03 09:16:35 +02:00
Renovate BotandPetri Tuomola 90b81c3458 Update dependency org.mockito:mockito-junit-jupiter to v3.5.9 2020-09-02 06:50:30 +03:00
Renovate BotandPetri Tuomola fc59e8f665 Update dependency org.mockito:mockito-core to v3.5.9 2020-09-02 04:57:52 +03:00
francisguchieandPetri Tuomola 2e720e361a Fineract-1135 error at loan repayment 2020-09-01 16:12:15 +03:00
Manthan SurkarandPetri Tuomola 665fde4f55 Added swagger-UI section to Readme(FINERACT-834) 2020-09-01 05:34:24 +03:00
Renovate BotandPetri Tuomola f321649b66 Update dependency com.amazonaws:aws-java-sdk-s3 to v1.11.852 2020-09-01 05:06:28 +03:00
Renovate BotandPetri Tuomola 4147c4e992 Update dependency com.diffplug.spotless:spotless-plugin-gradle to v5.3.0 2020-08-30 09:05:31 +03:00
Renovate BotandPetri Tuomola e3fde6ebf4 Update dependency com.puppycrawl.tools:checkstyle to v8.36 2020-08-29 04:54:52 +03:00
Renovate BotandPetri Tuomola 07ea504f26 Update dependency org.webjars.npm:swagger-ui-dist to v3.32.5 2020-08-28 13:34:03 +03:00
Aleksandar VidakovicandGitHub 11676d17c4 FINERACT-1134: Backport FINERACT-1129 fix to release branch 1.4.0 2020-08-28 06:01:12 +02:00
Aleksandar Vidakovic bcfbd6d9ab FINERACT-1134: Backport FINERACT-1129 fix to release branch 1.4.0 2020-08-28 04:20:01 +02:00
Aleksandar VidakovicandGitHub 300a02b6b0 FINERACT-1129: create Gradle release task - fix source distribution 2020-08-28 04:05:58 +02:00
Aleksandar Vidakovic 89e4e54ad3 FINERACT-1129: create Gradle release task - fix source distribution 2020-08-28 02:39:43 +02:00
Aleksandar VidakovicandGitHub 11e4ce92ed FINERACT-1120: TFA authentication issue fix 2020-08-27 23:24:42 +02:00
Manoj 7650897ab5 FINERACT-1120-TFA-authentication-issue-fix 2020-08-28 04:39:49 +05:30
Aleksandar VidakovicandGitHub 64b86732e4 Merge pull request #1298 from vidakovic/feature/FINERACT-1134
FINERACT-1134: Backport FINERACT-1129 to release branch 1.4.0
2020-08-27 23:08:00 +02:00
Aleksandar VidakovicandGitHub 23bb2b194f Merge pull request #1295 from Grandolf49/fineract-1133-backport
FINERACT-1133 [Backport PR] Added Mustache templates
2020-08-27 22:49:30 +02:00
Petri TuomolaandAwasum Yannick 9ef10c9838 FINERACT-1088: Fixing error message from SMS campaigns 2020-08-27 21:37:07 +01:00
Aleksandar Vidakovic 78816d3391 FINERACT-1134: Backport FINERACT-1129 to release branch 1.4.0 2020-08-27 21:56:44 +02:00
Aleksandar VidakovicandGitHub e6d09d6c3b FINERACT-1129: Gradle task to create release package (#1292) 2020-08-27 21:38:55 +02:00
Manthan SurkarandPetri Tuomola a52526b9cc Added and Enforced RedundantModifier Checkstyle(2)(Fineract-821) 2020-08-27 20:51:41 +03:00
Petri TuomolaandYemdjih Kaze Nasser 946bff46c1 FINERACT-1128: Switching build script from httpie to curl to allow retries 2020-08-27 14:13:27 +01:00
Chinmay Kulkarni 09bd45988f FINERACT-1133 Added Mustache templates 2020-08-27 17:57:42 +05:30
Manthan SurkarandPetri Tuomola 5276ca6722 Removed sqlEncodeString function (FINERACT-854) 2020-08-27 05:09:32 +03:00
Chinmay KulkarniandPetri Tuomola 1d0d7c1bd8 FINERACT-1133 Added Mustache templates for documentation of generated library 2020-08-27 04:49:21 +03:00
Renovate BotandPetri Tuomola aab9b06f1d Update dependency io.github.classgraph:classgraph to v4.8.89 2020-08-27 04:45:55 +03:00
Aleksandar VidakovicandGitHub bb10ee94e9 Merge pull request #1285 from Grandolf49/fineract-1101-backport
FINERACT-1101 [Backport PR] Added Mustache templates to Swagger Codegen
2020-08-26 23:30:26 +02:00
Manthan SurkarandMichael Vorburger ⛑️ b22d4b64ba FINERACT-854 Removed string concatenated SQL from CenterReadPlatform 2020-08-26 12:44:28 +02:00
Chinmay Kulkarni b217982ea0 FINERACT-1101 Added Mustache templates to Swagger Codegen 2020-08-26 15:41:20 +05:30
Aleksandar VidakovicandGitHub e4c22f65a7 Merge pull request #1278 from vorburger/1.4.0_gradle-v6.6.1
Cherry-pick "Update dependency gradle to v6.6.1" to 1.4.0 also
2020-08-26 11:21:38 +02:00
Renovate BotandMichael Vorburger ⛑️ 7f1178ff23 Update dependency org.mockito:mockito-junit-jupiter to v3.5.7 2020-08-26 11:19:29 +02:00
atharwa_24andGitHub a8910366f0 add Docker logo ("whale") to badge in README (#1234) 2020-08-26 04:09:15 +02:00
Renovate BotandMichael Vorburger ⛑️ 8cd74558e3 Update dependency org.ehcache:ehcache to v3.9.0 2020-08-26 03:33:27 +02:00
Renovate BotandMichael Vorburger ⛑️ 99627f5b3e Update dependency org.mockito:mockito-core to v3.5.7 2020-08-26 02:58:15 +02:00
Manthan SurkarandMichael Vorburger ⛑️ 7950ca3e58 FINERACT-854 Removed string concatenated SQL in GroupReadPlatform 2020-08-26 02:01:14 +02:00
Renovate BotandMichael Vorburger 574a00ae34 Update dependency gradle to v6.6.1 2020-08-26 00:34:33 +02:00
Chinmay KulkarniandMichael Vorburger ⛑️ 5d95a18c32 Update docs/developers/swagger/client.md
Co-authored-by: Michael Vorburger ⛑️ <mike@vorburger.ch>
2020-08-25 23:52:57 +02:00
Chinmay KulkarniandMichael Vorburger ⛑️ bd4f7ae4f8 Update fineract-provider/config/swagger/config.json.template
Co-authored-by: Michael Vorburger ⛑️ <mike@vorburger.ch>
2020-08-25 23:52:57 +02:00
Chinmay KulkarniandMichael Vorburger ⛑️ 79db886107 FINERACT-1101 Excluded Mustache templates from rat 2020-08-25 23:52:57 +02:00
Chinmay KulkarniandMichael Vorburger ⛑️ a86c5cfde1 FINERACT-1101 Swagger Codegen build using Gradle 2020-08-25 23:52:57 +02:00
Grandolf49andMichael Vorburger ⛑️ 3f0b2ae8c4 FINERACT-1105 Valid Spec File generated
FINERACT-1105 Added description to response 200

FINERACT-1105 Valid Spec File generated

FINERACT-1105 Valid Open API Spec File generated

FINERACT-1105 Added description to response 200

FINERACT-1105 Valid Spec File generated
2020-08-25 23:50:02 +02:00
Petri TuomolaandMichael Vorburger ⛑️ b98b7893eb Add generated files to gitignore 2020-08-25 23:50:02 +02:00
Renovate BotandMichael Vorburger ⛑️ e70e8e9367 Update dependency com.diffplug.spotless:spotless-plugin-gradle to v5.1.2 2020-08-25 23:50:02 +02:00
Renovate BotandMichael Vorburger ⛑️ e0f81f00fe Update dependency gradle to v6.6.1 2020-08-25 23:49:21 +02:00
Renovate BotandPetri Tuomola e20ebbc691 Update dependency org.mockito:mockito-core to v3.5.6 2020-08-25 20:43:29 +03:00
Renovate BotandPetri Tuomola 414b406d08 Update dependency org.mockito:mockito-junit-jupiter to v3.5.6 2020-08-25 16:02:59 +03:00
Renovate BotandPetri Tuomola efd2d6dd64 Update dependency com.diffplug.spotless:spotless-plugin-gradle to v5.2.0 2020-08-25 15:59:10 +03:00
Renovate BotandPetri Tuomola b3b10c0d88 Update dependency io.github.classgraph:classgraph to v4.8.88 2020-08-25 03:26:23 +03:00
Grandolf49andYemdjih Kaze Nasser 217e34ba9e FINERACT-1105 Valid Spec File generated
FINERACT-1105 Added description to response 200

FINERACT-1105 Valid Spec File generated

FINERACT-1105 Valid Open API Spec File generated

FINERACT-1105 Added description to response 200

FINERACT-1105 Valid Spec File generated
2020-08-23 14:17:32 +01:00
Renovate BotandPetri Tuomola 24fbbc3ffd Update dependency org.mockito:mockito-junit-jupiter to v3.5.5 2020-08-23 04:56:53 +03:00
Renovate BotandPetri Tuomola 0c241401ac Update dependency org.mockito:mockito-core to v3.5.5 2020-08-23 01:43:39 +03:00
Petri TuomolaandYemdjih Kaze Nasser 416d0a6ff8 Add generated files to gitignore 2020-08-22 07:00:20 +01:00
Renovate BotandYemdjih Kaze Nasser 64a4ac464c Update dependency com.diffplug.spotless:spotless-plugin-gradle to v5.1.2 2020-08-22 06:59:21 +01:00
Renovate BotandPetri Tuomola 1044274a1a Update dependency org.webjars.npm:swagger-ui-dist to v3.32.4 2020-08-21 16:38:26 +03:00
Petri TuomolaandYemdjih Kaze Nasser 9bad487c0c FINERACT-1118: Do not run Swagger code generation if previous build steps fail 2020-08-20 07:50:33 +01:00
xurrorandPetri Tuomola 153e7d07c1 enable harmless pentaho support 2020-08-20 09:47:11 +03:00
Manthan SurkarandPetri Tuomola 8a3c1903a4 FINERACT-821 Added and Enforced HideUtilityClassConstructor checkstyle 2020-08-20 07:33:12 +03:00
Manthan SurkarandPetri Tuomola 774fcd9265 Added and Enforced Membername Checkstyle(2) 2020-08-20 07:29:09 +03:00
Renovate BotandPetri Tuomola bfcd74aeb3 Update dependency org.webjars.npm:swagger-ui-dist to v3.32.3 2020-08-20 04:14:29 +03:00
Petri TuomolaandMichael Vorburger ⛑️ 39290a0ae5 FINERACT-1082: Changing version from hardcoded to autogenerated for Swagger 2020-08-19 17:51:29 +02:00
Avik GangulyandGitHub 899eab8ebc Merge pull request #1220 from fynmanoj/AL-14
FINERACT-1109 appropriate-interest-larger-than-emi
2020-08-19 20:20:26 +05:30
Renovate BotandPetri Tuomola fe7984fde1 Update dependency com.github.spotbugs:spotbugs to v4.1.2 2020-08-19 10:06:54 +03:00
Renovate BotandPetri Tuomola f1d39bc514 Update dependency com.github.spotbugs:spotbugs-annotations to v4.1.2 2020-08-19 10:06:34 +03:00
Renovate BotandPetri Tuomola 3b28c2b3aa Update dependency org.mockito:mockito-junit-jupiter to v3.5.2 2020-08-19 05:41:44 +03:00
Renovate BotandPetri Tuomola 1ba87abb13 Update dependency org.mockito:mockito-core to v3.5.2 2020-08-19 03:29:47 +03:00
Manoj db980236ad FINERACT-1109 appropriate-interest-larger-than-emi 2020-08-18 23:23:06 +05:30
Renovate BotandPetri Tuomola 618af19ca3 Update dependency org.flywaydb:flyway-core to v6.5.5 2020-08-18 15:32:36 +03:00
Manthan SurkarandPetri Tuomola 056f120fba Removed MissingSwitchDefault Checkstyle from todo 2020-08-18 11:21:42 +03:00
Renovate BotandPetri Tuomola 8261470639 Update dependency org.webjars.npm:swagger-ui-dist to v3.32.1 2020-08-16 08:19:24 +03:00
Renovate BotandPetri Tuomola 7f1eae97e8 Update dependency org.mockito:mockito-junit-jupiter to v3.5.0 2020-08-16 08:18:58 +03:00
Renovate BotandPetri Tuomola 475ab571bf Update dependency org.mockito:mockito-core to v3.5.0 2020-08-16 04:19:11 +03:00
Petri TuomolaandPetri Tuomola 92c6b38089 Fix Swagger UI 2020-08-15 05:04:26 +03:00
Manthan SurkarandPetri Tuomola d00d978c46 Removed duplicate status values to check status parameter validity 2020-08-15 04:58:51 +03:00
Manthan SurkarandPetri Tuomola db232c6088 FINERACT-1095 Added status parameter in Clients API 2020-08-15 04:58:51 +03:00
Avik GangulyandGitHub bd9119e35f Merge pull request #1211 from fynmanoj/AL-9
FINERACT-1108 Custom-installment-in-reshedule
2020-08-14 21:48:30 +05:30
Manoj 9752366c70 FINERACT-1108-Custom-installment-in-reshedule 2020-08-14 21:44:50 +05:30
Steve ConradandGitHub 94dd2dc7e6 Merge pull request #1103 from ezolnbl/develop
FINERACT-1116 add release onhold interop transaction
2020-08-14 08:46:15 -05:00
Steve ConradandGitHub aa09759855 Update V352__interop_init.sql
Add backticks for consistency
2020-08-14 08:07:45 -05:00
Manthan SurkarandPetri Tuomola 4585978a40 FINERACT-821 Enforces(1) RedundantModifier Checkstyle 2020-08-14 04:53:11 +03:00
Renovate BotandPetri Tuomola 3434fd07c0 Update dependency org.springframework.boot:spring-boot-gradle-plugin to v2.3.3.RELEASE 2020-08-14 04:48:51 +03:00
Avik GangulyandGitHub cc142c5146 Merge pull request #1209 from fynmanoj/AL-2
FINERACT-1106 reschedule-loan-first-pay-day-holiday-fix
2020-08-14 00:35:52 +05:30
Avik GangulyandGitHub 2e6a7e9a82 Merge pull request #1210 from fynmanoj/AL-12
FINERACT-1107 month-end-dates-reschedule-issue-fix
2020-08-14 00:28:06 +05:30
Zoltan Nebli 721af79661 Merge remote-tracking branch 'upstream/develop' into develop 2020-08-12 21:35:50 +02:00
Renovate BotandPetri Tuomola f67a6a31cc Update dependency org.flywaydb:flyway-core to v6.5.4 2020-08-12 18:27:11 +03:00
Renovate BotandPetri Tuomola aab5061476 Update dependency io.spring.gradle:dependency-management-plugin to v1.0.10.RELEASE 2020-08-11 15:23:21 +03:00
Renovate BotandPetri Tuomola 8f441e6f03 Update dependency gradle to v6.6 2020-08-11 13:58:44 +03:00
Renovate BotandMichael Vorburger ⛑️ 7b72bbea5b Update dependency com.diffplug.spotless:spotless-plugin-gradle to v5.1.1 2020-08-06 09:17:45 +02:00
Manthan SurkarandMichael Vorburger ⛑️ d306bcf9aa FINERACT-971 Added AvoidDoubleBraceInitialization Checkstyle 2020-08-06 09:02:19 +02:00
xurror e7b2163914 FINERACT-1098 - Catch JpaSystemException in jpa transactions 2020-08-04 15:29:34 +01:00
Renovate BotandPetri Tuomola a31d29f1f0 Update dependency gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin to v4.5.0 2020-08-03 21:35:20 +03:00
xurror 0e72642146 FINERACT-1104 - adjust JPQL query @likelihoodRepository 2020-08-03 14:09:56 +01:00
xurror 98fd8d24c9 FINERACT-1103 - Resolve org.eclipse.persistence.exceptions.EntityManagerSetupException @creditBurea 2020-08-03 14:06:07 +01:00
Renovate BotandMichael Vorburger ⛑️ 435c5ebbcd Update dependency gradle.plugin.org.hidetake:gradle-swagger-generator-plugin to v2.18.2 2020-08-03 00:16:22 +02:00
Michael Vorburger ⛑️ bc60bc379a Update fineract-provider/config/swagger/fineract-input.yaml 2020-08-02 17:48:43 +02:00
Chinmay KulkarniandMichael Vorburger ⛑️ 4a569d8c02 FINERACT-838 Updated .travis.yml 2020-08-02 17:48:43 +02:00
Grandolf49andMichael Vorburger ⛑️ a7ddf7f728 FINERACT-838 Travis CI setup for Swagger Codegen 2020-08-02 17:48:43 +02:00
Grandolf49andMichael Vorburger ⛑️ 6151c20528 FINERACT-838 Fixed Base URL for Swagger Codegen 2020-08-02 17:48:43 +02:00
Grandolf49andMichael Vorburger ⛑️ a86dcaf104 FINERACT-838 Updated swagger-codegen-cli version 2020-08-02 17:48:43 +02:00
Michael Vorburger ⛑️ 98645840a5 minor Swagger clean-up in README 2020-08-02 16:59:09 +02:00
Michael Vorburger ⛑️andPetri Tuomola c5c62de491 Use java8 instead of joda as dateLibrary in Swagger Client (FINERACT-838) 2020-08-02 06:23:25 +03:00
xurrorandMichael Vorburger ⛑️ c91dc2a2eb add ignore comment for FixedDepositTest 2020-08-01 15:08:59 +02:00
Manthan SurkarandMichael Vorburger ⛑️ bcd42b9cb9 FINERACT-971 Added and enforced AvoidNoArgumentSuperConstructorCall Checkstyle 2020-08-01 15:08:46 +02:00
Chinmay KulkarniandGitHub 1f462613fb FINERACT-838 Added Swagger Codegen Support (#1206)
incl. doc in README and new docs/developers/swagger/client.md
2020-08-01 15:08:10 +02:00
Renovate BotandYemdjih Kaze Nasser a58ec277bf Update dependency org.webjars.npm:swagger-ui-dist to v3.31.1 2020-08-01 04:33:29 +01:00
Renovate BotandYemdjih Kaze Nasser cb3e0c3b96 Update dependency com.github.spotbugs:spotbugs to v4.1.1 2020-08-01 04:33:04 +01:00
Renovate BotandYemdjih Kaze Nasser 785eef3109 Update dependency com.github.spotbugs:spotbugs-annotations to v4.1.1 2020-08-01 04:32:33 +01:00
Renovate BotandYemdjih Kaze Nasser c35234cf1e Update dependency gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin to v4.4.5 2020-08-01 04:31:55 +01:00
Renovate BotandYemdjih Kaze Nasser cae4ec4b91 Update dependency org.mockito:mockito-core to v3.4.6 2020-08-01 04:31:28 +01:00
Renovate BotandYemdjih Kaze Nasser 24bae47271 Update dependency com.amazonaws:aws-java-sdk-s3 to v1.11.832 2020-08-01 03:47:15 +01:00
xurror 0bcdfbe2da Disable FixedDepositTest > testFixedDepositAccountClosureTypeWithdrawal_WITH_HOLD_TAX 2020-08-01 03:35:17 +01:00
Renovate BotandPetri Tuomola ee1b3cde9a Update dependency com.github.spotbugs:spotbugs to v4.1.0 2020-07-30 23:01:03 +03:00
admin ed718909bd AL-2-reschedule-loan-first-pay-day-holiday-fix 2020-07-30 18:40:46 +05:30
Renovate BotandPetri Tuomola 68e31975d4 Update dependency org.mockito:mockito-junit-jupiter to v3.4.6 2020-07-29 21:07:43 +03:00
admin 2a941047a2 AL-12-month-end-dates-reschedule-issue-fix 2020-07-29 20:23:53 +05:30
Renovate BotandPetri Tuomola f5a6368d2f Update dependency org.flywaydb:flyway-core to v6.5.3 2020-07-29 17:33:10 +03:00
Manthan SurkarandMichael Vorburger ⛑️ bd75a6c79b FINERACT-821 Enforced Membername checkstyle(1) 2020-07-27 10:24:19 +02:00
Renovate BotandPetri Tuomola 1b8962fc81 Update dependency com.puppycrawl.tools:checkstyle to v8.35 2020-07-26 19:07:54 +03:00
Renovate BotandPetri Tuomola 3aa7fab110 Update dependency gradle.plugin.com.gorylenko.gradle-git-properties:gradle-git-properties to v2.2.3 2020-07-26 06:31:54 +03:00
Renovate BotandPetri Tuomola b5eaabbf4d Update dependency io.swagger.core.v3:swagger-gradle-plugin to v2.1.4 2020-07-25 16:25:16 +03:00
Renovate BotandPetri Tuomola 5ef3ddd52e Update dependency io.swagger.core.v3:swagger-annotations to v2.1.4 2020-07-25 12:39:30 +03:00
Renovate BotandPetri Tuomola af7b80888e Update dependency jakarta.validation:jakarta.validation-api to v3 2020-07-25 07:28:16 +03:00
Renovate BotandPetri Tuomola 52313793a5 Update dependency org.springframework.boot:spring-boot-gradle-plugin to v2.3.2.RELEASE 2020-07-25 06:26:33 +03:00
Petri TuomolaandGitHub f9df03553c Merge pull request #1198 from renovate-bot/renovate/org.webjars.npm-swagger-ui-dist-3.x
Update dependency org.webjars.npm:swagger-ui-dist to v3.30.2
2020-07-24 09:54:56 +03:00
Renovate Bot 86d037c87a Update dependency org.webjars.npm:swagger-ui-dist to v3.30.2 2020-07-23 08:21:53 +00:00
Renovate BotandMichael Vorburger ⛑️ 21b14b4008 Update dependency org.mockito:mockito-core to v3.4.4 2020-07-23 02:12:12 +02:00
Renovate BotandMichael Vorburger ⛑️ df004bdf34 Update dependency org.webjars.npm:swagger-ui-dist to v3.30.1 2020-07-23 02:12:01 +02:00
Renovate BotandMichael Vorburger ⛑️ 2a4451d4e9 Update dependency org.flywaydb:flyway-core to v6.5.2 2020-07-23 02:11:51 +02:00
nnatarajanandMichael Vorburger ⛑️ b7b63985d9 Update dependency org.mock-server:mockserver-junit-jupiter from v5.10.0 to v5.11.0 2020-07-22 23:06:43 +02:00
Manthan SurkarandMichael Vorburger ⛑️ a84edce73b FINERACT-842 Made TRY-IT swagger button work 2020-07-20 11:53:23 +02:00
francisguchieandMichael Vorburger ⛑️ b4621b2a71 FINERACT-1054 fixed sql grammar at loan repayment 2020-07-20 11:49:43 +02:00
Petri TuomolaandMichael Vorburger ⛑️ e06b3447b9 FINERACT-1087: Fixing date issues with bulk import templates 2020-07-20 11:42:33 +02:00
Renovate BotandMichael Vorburger ⛑️ 563d294938 Update dependency org.mockito:mockito-core to v3.4.3 2020-07-20 11:35:01 +02:00
Michael Vorburger 9534e7e0a3 fix broken build 2020-07-19 16:43:41 +02:00
6ee3ff2452 FINERACT-1091: Adding validation for constitution ID (#1189)
Co-authored-by: Michael Vorburger ⛑️ <mike@vorburger.ch>
2020-07-19 15:49:32 +02:00
Manthan SurkarandMichael Vorburger ⛑️ ec9513c3c7 FINERACT-821 Added and Enforced LocalVariableName Checkstyle 2020-07-19 15:47:35 +02:00
Michael Vorburger ⛑️ 55b44dbf12 Update openjpa to v3.1.2 also in dependencyManagement not just buildscript 2020-07-19 15:45:54 +02:00
Renovate BotandMichael Vorburger ⛑️ c623ddb842 Update dependency org.mockito:mockito-junit-jupiter to v3.4.4 2020-07-19 15:45:26 +02:00
Renovate BotandMichael Vorburger ⛑️ 5c1c6a6d73 Update dependency org.webjars.npm:swagger-ui-dist to v3.30.0 2020-07-19 15:45:05 +02:00
Renovate BotandMichael Vorburger ⛑️ 9d6a2ee9dd Update dependency org.webjars.npm:swagger-ui-dist to v3.29.0 2020-07-17 20:02:17 +02:00
Manthan SurkarandMichael Vorburger ⛑️ 9048d416f5 FINERACT-836 Integration test for swagger-ui 2020-07-17 20:00:37 +02:00
Manthan SurkarandMichael Vorburger ⛑️ 9eff82d85b FINERACT-836 Integration test for swagger-ui 2020-07-17 20:00:37 +02:00
Renovate BotandAwasum Yannick 7ef3a74530 Update dependency org.apache.openjpa:openjpa to v3.1.2 2020-07-16 18:08:38 +01:00
Manthan SurkarandMichael Vorburger ⛑️ 271401cd6b FINERACT-821 Added and Enforced LocalVariableName Checkstyle 2020-07-16 18:41:39 +02:00
Manthan SurkarandMichael Vorburger ⛑️ 737d1f1911 FINERACT-821 Added and enforced ParameterName checkstyle 2020-07-15 23:33:37 +02:00
Manthan SurkarandMichael Vorburger ⛑️ 5506f68766 FINERACT-1090 Removed top bar and Added Search (swagger) 2020-07-15 23:24:51 +02:00
Renovate BotandMichael Vorburger ⛑️ cbad22d57a Update dependency org.apache.bval:org.apache.bval.bundle to v2.0.4 2020-07-15 23:20:03 +02:00
percyashuandAwasum Yannick bbb3aad506 FINERACT-822 add MissingCasesInEnumSwitch 2020-07-15 09:35:27 +01:00
Manthan SurkarandMichael Vorburger ⛑️ b3fb7984f3 Update dependency com.diffplug.spotless:spotless-plugin-gradle to v5 2020-07-14 02:06:38 +02:00
Manthan SurkarandMichael Vorburger ⛑️ 37b8219a03 FINERACT-1006 Fixes: NullPointerException at SQLInjectionValidator 2020-07-14 01:09:30 +02:00
Manthan SurkarandMichael Vorburger ⛑️ 44650034b1 FINERACT-1047 Added integration test for limit param (audit trails) 2020-07-14 01:02:20 +02:00
Petri TuomolaandMichael Vorburger ⛑️ acca72f83d FINERACT-835: Complete work on automatically generating Swagger docs 2020-07-14 00:54:44 +02:00
Manthan SurkarandMichael Vorburger ⛑️ a440d56392 FINERACT-1044 Added redirects in swagger-ui 2020-07-14 00:12:01 +02:00
Renovate BotandMichael Vorburger ⛑️ 6a8a993670 Update dependency org.mockito:mockito-junit-jupiter to v3.4.0 2020-07-13 23:56:31 +02:00
Renovate BotandMichael Vorburger ⛑️ d24e0c57f5 Update dependency org.flywaydb:flyway-core to v6.5.1 2020-07-13 23:55:36 +02:00
Renovate BotandAwasum Yannick 33dedd06f4 Update dependency org.mockito:mockito-core to v3.4.0 2020-07-11 01:44:08 +01:00
Petri TuomolaandYemdjih Kaze Nasser 333759f2aa FINERACT-1079: Run spotlessCheck for automated builds, spotlessApply for manual ones 2020-07-07 08:43:07 +01:00
Awasum Yannick d62f9ecc8a Revert "FINERACT-1079: Run spotlessApply before compileJava task"
This reverts commit 457b0544d3.
2020-07-06 07:31:14 +01:00
Awasum YannickandYemdjih Kaze Nasser 457b0544d3 FINERACT-1079: Run spotlessApply before compileJava task 2020-07-06 04:03:24 +01:00
Renovate BotandAwasum Yannick b45b4eb667 Update dependency org.apache.tomcat:tomcat to v9.0.37 2020-07-05 23:00:38 +01:00
Petri TuomolaandYemdjih Kaze Nasser e4d6cc543e FINERACT-1074: Sorting out plugin configurations 2020-07-05 14:56:38 +01:00
Manthan SurkarandYemdjih Kaze Nasser 06ab553d92 FINERACT-821 Added ClassTypeParameterName Checkstyle 2020-07-05 06:00:37 +01:00
percyashuandYemdjih Kaze Nasser c20329cd07 FINERACT-1023 Update spring boot gradle plugin from v2.2.7 to v2.3.1 2020-07-05 05:42:19 +01:00
Renovate BotandYemdjih Kaze Nasser 750024ba7a Update dependency com.diffplug.spotless:spotless-plugin-gradle to v4.5.1 2020-07-05 05:41:34 +01:00
Petri TuomolaandAwasum Yannick 3f444e2710 FINERACT-1072: Implementing Spotless for Gradle files 2020-07-04 11:25:23 +01:00
percyashuandMichael Vorburger ⛑️ 1102d5b58a FINERACT-822 Enable StaticAssignmentInConstructor check 2020-07-03 16:25:03 +02:00
percyashuandMichael Vorburger ⛑️ 5a16d19564 FINERACT-822 Enable ProtectedMembersInFinalClass check 2020-07-03 16:25:03 +02:00
percyashuandMichael Vorburger ⛑️ 3f1673ea97 FINERACT-822 Enforce StaticAssignmentInConstructor check 2020-07-03 16:25:03 +02:00
Petri TuomolaandMichael Vorburger ⛑️ b61957acb2 FINERACT-1065: Fixing integration test issues 2020-07-03 16:07:58 +02:00
WhiteSource RenovateandGitHub 1da8060805 Update dependency org.apache.activemq:activemq-broker to v5.16.0 (#1134) 2020-07-03 14:52:07 +01:00
Petri TuomolaandMichael Vorburger ⛑️ 551819ee18 FINERACT-1060: Stop delete / update of system user 2020-07-03 15:35:33 +02:00
WhiteSource RenovateandGitHub c92e926d6c Update dependency com.google.guava:guava to v29 (#1142) 2020-07-03 14:29:46 +01:00
WhiteSource RenovateandGitHub fdf9e2c6f0 Update dependency gradle to v6.5.1 (#1130) 2020-07-03 13:05:58 +01:00
WhiteSource RenovateandGitHub 82d100ec54 Update dependency com.amazonaws:aws-java-sdk-s3 to v1.11.816 (#1133) 2020-07-03 12:52:13 +01:00
WhiteSource RenovateandGitHub f3b4a66ff8 Update dependency com.diffplug.spotless:spotless-plugin-gradle to v4.5.0 (#1137) 2020-07-03 12:45:01 +01:00
Petri TuomolaandMichael Vorburger ⛑️ c7c76f3ffa FINERACT-1016: Removing partial fix to 1st month issue 2020-07-03 11:31:06 +02:00
Renovate BotandMichael Vorburger ⛑️ ce9a8c90aa Update dependency org.webjars.npm:swagger-ui-dist to v3.28.0 2020-07-02 21:50:50 +02:00
Michael Vorburger 1623e80a7f make ApiParameterError (almost) immutable
by making (most of) its fields final, because Immutable is Good

Only "almost" / "most" because of the of the remaining use of setParameterName() in
EntityDatatableChecksWritePlatformServiceImpl.saveDatatables() which unfortunately looks
a lot less trivial to get rid of, so that's for another time/someone else, later (or never).
2020-07-02 21:47:02 +02:00
Michael Vorburger 10536c0f91 make SimpleDateFormat use in ApiParameterError thread-safe [FINERACT-1063] 2020-07-02 21:46:10 +02:00
Michael Vorburger 2e32166079 Make Google's Guava library an explicit dependency
Instead of only transitively inheriting it through activemq-broker,
so that the upcoming next major upgrade of activemq-broker doesn't break the build.

Note that Fineract code already extensively uses Guava, this just makes it explicit.
2020-07-02 21:45:40 +02:00
Petri TuomolaandMichael Vorburger ⛑️ 0a01419cd3 FINERACT-1016: Fixing rounding issues in integration tests 2020-07-02 12:07:43 +02:00
Nikhil PawarandMichael Vorburger ⛑️ 9c3f1addd7 Fineract-1043 Removed street field from address 2020-07-01 22:31:52 +02:00
Petri TuomolaandMichael Vorburger ⛑️ 6e279619a5 FINERACT-1061: Removing call to rs.beforeFirst() 2020-07-01 22:31:33 +02:00
Michael Vorburger 9ed9153cba use AbstractPlatformException's defaultUserMessage as RuntimeException's message [FINERACT-1062] 2020-06-30 21:28:20 +02:00
Michael Vorburger bcfbe65d56 use new AbstractPlatformException in AbstractPlatformException
only indirectly related to FINERACT-942, but makes sense to do so now
2020-06-30 21:28:20 +02:00
Michael Vorburger 56cad56848 use AbstractPlatformException as superclass for various exceptions
related to FINERACT-942 and as per code review discussion in PR #1079.
2020-06-30 21:28:20 +02:00
Petri TuomolaandMichael Vorburger ⛑️ 7a88f14eec FINERACT-885: Fixing dates in ClientLoanIntegrationTest to avoid failures end of month 2020-06-30 15:46:37 +02:00
Petri TuomolaandYemdjih Kaze Nasser 7d2c3ec417 FINERACT-1022: Fixing ehcache 3 2020-06-30 03:10:11 +01:00
Renovate BotandMichael Vorburger ⛑️ da978a37aa Update dependency com.puppycrawl.tools:checkstyle to v8.34 2020-06-30 01:08:34 +02:00
thesmallstarandMichael Vorburger ⛑️ 022f214ad5 FINERACT-942 Added and Enforced AvoidHidingCauseException Checkstyle 2020-06-29 23:16:53 +02:00
percyashuandMichael Vorburger ⛑️ 649eb4f843 FINERACT-822 Enforce MutablePublicArray check 2020-06-29 22:28:17 +02:00
percyashuandMichael Vorburger ⛑️ 63c72ee53c FINERACT-822 Enforce InvalidInlineTag check 2020-06-29 22:28:17 +02:00
percyashuandMichael Vorburger ⛑️ fde3d9f83e FINERACT-822 Enforce NonCanonicalType check 2020-06-29 22:28:17 +02:00
Renovate BotandMichael Vorburger ⛑️ e1e230d660 Update dependency io.swagger.core.v3:swagger-gradle-plugin to v2.1.3 2020-06-29 22:22:27 +02:00
Renovate BotandMichael Vorburger ⛑️ 5e9b4cafa8 Update dependency io.swagger.core.v3:swagger-annotations to v2.1.3 2020-06-29 22:22:16 +02:00
Renovate BotandMichael Vorburger ⛑️ 4fd176ba66 Update dependency gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin to v4.4.4 2020-06-29 22:21:35 +02:00
WhiteSource RenovateandGitHub 570a18a206 Update dependency org.flywaydb:flyway-core to v6.5.0 (#1116) 2020-06-26 19:07:22 +02:00
d9df7fe245 FINERACT-835: Upgrade Swagger Annotations to Annotations 2.0 (#1101)
Co-authored-by: Michael Vorburger ⛑️ <mike@vorburger.ch>
2020-06-26 13:32:14 +02:00
percyashuandMichael Vorburger ⛑️ dff6109c81 FINERACT-822 Enforce ModifyCollectionInEnhancedForLoop check 2020-06-26 12:43:45 +02:00
percyashuandMichael Vorburger ⛑️ 4ede116861 FINERACT-822 Enforce UnescapedEntity check 2020-06-26 12:43:45 +02:00
percyashuandMichael Vorburger ⛑️ 66c3bfdd4f FINERACT-822 Enforce PublicConstructorForAbstractClass check 2020-06-26 12:43:45 +02:00
kiran-vsmandMichael Vorburger ⛑️ d9911bd771 FINERACT-1043: Unable to create client due to invalid error message about required address field 2020-06-26 12:42:07 +02:00
Manthan SurkarandMichael Vorburger ⛑️ 885d2e9a57 Fixes Invalid Regex in Exception Messege(SQL builder) 2020-06-26 12:38:40 +02:00
Renovate BotandMichael Vorburger ⛑️ 6c6839a70f Update dependency com.github.librepdf:openpdf to v1.3.20 2020-06-26 12:37:38 +02:00
Manthan SurkarandMichael Vorburger ⛑️ a5afb0b833 FINERACT-1047 Integration test for Audit trails(Create) 2020-06-26 12:37:09 +02:00
Percy Ayuk AshuandGitHub 8884e61103 FINERACT-822 Enforce SameNameButDifferent check (#1083) 2020-06-26 12:34:44 +02:00
Zoltan Nebli 81358416cb FINERACT add release onhold interop transaction 2020-06-25 14:28:19 +02:00
Michael VorburgerandYemdjih Kaze Nasser 24d4c45d9a introduce Throwable cause to AbstractPlatformResourceNotFoundException (re. FINERACT-942) 2020-06-24 16:03:10 +01:00
Michael VorburgerandAwasum Yannick eb2b39f160 add @Disabled to 2 old unit tests (which perhaps should be removed)
This saves a few seconds ;) in the build, and (more importantly)
makes it easier to find all the project's @Disabled (formerly @Ignore) tests.
2020-06-24 10:39:20 +01:00
Percy Ayuk AshuandGitHub f1a06b42d7 FINERACT-822 Enforce UndefinedEquals check (#1099) 2020-06-23 22:36:52 +02:00
Renovate BotandMichael Vorburger ⛑️ d70af43f13 Update dependency io.github.classgraph:classgraph to v4.8.87 2020-06-23 20:59:38 +02:00
Renovate BotandMichael Vorburger ⛑️ 8bc37be7cc Update dependency org.mock-server:mockserver-junit-jupiter to v5.10.0 2020-06-23 11:16:25 +02:00
Renovate BotandMichael Vorburger ⛑️ a9030171da Update dependency com.github.spotbugs:spotbugs to v4.0.6 2020-06-23 11:15:46 +02:00
Renovate BotandMichael Vorburger ⛑️ c983e27161 Update dependency com.github.spotbugs:spotbugs-annotations to v4.0.6 2020-06-23 11:15:18 +02:00
Renovate BotandMichael Vorburger ⛑️ e8442a3db9 Update dependency gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin to v4.4.3 2020-06-23 11:15:02 +02:00
Michael Vorburger c529fdf58c increase auto formatting comment line length from 80 to 120 2020-06-23 10:01:12 +02:00
percyashuandMichael Vorburger ⛑️ 9542e35702 FINERACT-822 Enforce ModifiedButNotUsed check 2020-06-23 10:00:49 +02:00
percyashuandMichael Vorburger ⛑️ a7fdafd407 FINERACT-822 Enforce UnusedMethod check 2020-06-23 10:00:49 +02:00
percyashuandMichael Vorburger ⛑️ f05239c35b FINERACT-822 Enforce UnusedNestedClass check 2020-06-23 10:00:49 +02:00
percyashuandMichael Vorburger ⛑️ dde631a019 FINERACT-822 enable UnnecessaryDefaultInEnumSwitch error 2020-06-21 18:42:26 +02:00
thesmallstarandMichael Vorburger ⛑️ b0043d8e85 FINERACT-799 Fixes Sorting for certain columns is not supported in Audit 2020-06-20 23:10:45 +02:00
Petri TuomolaandMichael Vorburger ⛑️ 6438063a7f FINERACT-995: Rewriting logic to remove call to rs.previous() 2020-06-20 22:32:06 +02:00
Petri TuomolaandMichael Vorburger ⛑️ f3862bca8b FINERACT-1040 Re-enabling and fixing CampaignTests 2020-06-20 22:29:50 +02:00
Renovate BotandMichael Vorburger ⛑️ 3c2f178180 Update dependency org.webjars.npm:swagger-ui-dist to v3.27.0 2020-06-20 19:23:08 +02:00
7ec5229e23 FINERACT-835: Upgrade Swagger and automatically generate the JSON spec (#1069)
Co-authored-by: Michael Vorburger ⛑️ <mike@vorburger.ch>
2020-06-20 13:21:46 +02:00
percyashuandMichael Vorburger ⛑️ e234980cd3 FINERACT-822 Editing Checks list 2020-06-20 12:19:10 +02:00
Renovate BotandMichael Vorburger ⛑️ 0982f0904a Update dependency com.diffplug.spotless:spotless-plugin-gradle to v4.4.0 2020-06-20 10:19:52 +02:00
thesmallstarandMichael Vorburger ⛑️ 2f04f6a3e7 Fixes broken build due to spotless and error-prone 2020-06-20 08:28:08 +02:00
Manthan SurkarandMichael Vorburger ⛑️ 2323450e71 FINERACT-821 Added and Enforced ModifierOrder Checkstyle 2020-06-20 00:11:17 +02:00
percyashuandMichael Vorburger ⛑️ 9a487a060b FINERACT-822 Enforce StringSplitter check 2020-06-20 00:08:10 +02:00
thesmallstarandMichael Vorburger ⛑️ d8f87ba265 FINERACT-821 Added MultipleVariableDeclarations Checkstyle 2020-06-20 00:04:54 +02:00
thesmallstarandMichael Vorburger ⛑️ b20de7bced FINERACT-942 Added and enforced MutableException Checkstyle 2020-06-20 00:04:31 +02:00
rrpawar96andMichael Vorburger ⛑️ 00a8feea8f modification in glim_approval in apiLive.htm 2020-06-20 00:04:06 +02:00
rrpawar96andMichael Vorburger ⛑️ 1c88ad0bd8 modified glim-approval test-case 2020-06-20 00:04:06 +02:00
rrpawar96andMichael Vorburger ⛑️ bcac0c0e7e fixed bug 2020-06-20 00:04:06 +02:00
8980 changed files with 1023031 additions and 313267 deletions
+17
View File
@@ -0,0 +1,17 @@
github:
description: "Apache Fineract"
homepage: https://fineract.apache.org
labels:
- apache
- banking
- finance
- fintech
- group-lending
- group-savings
- java
- lending
- loans
- microfinance
- savings
- social-impact
- tech4good
+27
View File
@@ -0,0 +1,27 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# See comment below license in .atr-rat-excludes-src.txt for an explanation of
# what this is.
# if you make changes here, sort this list before committing asciibetically
# with en_US.UTF-8 lang/locale
.rat-excludes
README.md
fineract-documentation.pdf
# vim:ft=conf
+54
View File
@@ -0,0 +1,54 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# Path patterns to exclude from RAT checks run by ATR.
#
# RAT = Release Audit Tool (https://creadur.apache.org/rat/)
# ATR = ASF Trusted Releases (https://release-test.apache.org , https://github.com/apache/tooling-trusted-releases/)
#
# This duplicates exclusions in build.gradle.
# This is probably only necessary until both RAT and org.nosphere.apache.rat plugin are using 0.17.
# See https://github.com/eskatos/creadur-rat-gradle/issues/28 .
# Once both are on 0.17, we should be able to move the RAT excludes used during
# the build from build.gradle into a .rat-excludes file shared by both our
# build and ATR.
# Right now ATR does something custom, see
# https://github.com/apache/tooling-trusted-releases/issues/312 .
# If we get tired of waiting for the RAT gradle plugin or the ATR to upgrade to
# 0.17, we could write our own exclusion lists generator.
# if you make changes here, sort this list before committing asciibetically
# with en_US.UTF-8 lang/locale
**/META-INF/fineract-test.config
**/legacy-docs/
*.adoc
*.avsc
*.feature
*.html
*.md
*.mustache
*.puml
*.txt
.openapi-generator-ignore
/.asf.yaml
/.rat-excludes
/config/fineractdev-eclipse-preferences.epf
/fineract-provider/src/test/resources/results/xbrl.xml
/gradle/wrapper/gradle-wrapper.properties
org.springframework.boot.autoconfigure.AutoConfiguration.imports
# vim:ft=conf
+93
View File
@@ -0,0 +1,93 @@
import hashlib
import json
import os
import sys
import tempfile
from datetime import datetime, timezone
from http.client import HTTPConnection, HTTPException
from pathlib import Path
import traceback
from contextlib import closing
from typing import Optional
WEBSERVER_HOST = "localhost"
WEBSERVER_ENDPOINT = "/api/provenance/call"
PORT_FILE_SUFFIX = "-provenance-port.txt"
class ProvenanceHookError(RuntimeError):
pass
def http_request(method, host, port, location, *, body: Optional[bytes] = None, headers={}, timeout=None) -> bytes:
with closing(HTTPConnection(host, port, timeout=timeout)) as connection:
connection.request(method, location, body=body, headers=headers)
def get_server_port():
claude_root = os.getenv("CLAUDE_PROJECT_DIR")
path_hash = hashlib.md5(claude_root.encode('utf-8')).hexdigest()
port_file = Path(tempfile.gettempdir()) / (path_hash + PORT_FILE_SUFFIX)
return int(port_file.read_text("utf-8").strip())
def send_diff_to_webserver(file_path, timestamp_ms):
try:
port = get_server_port()
except FileNotFoundError as e:
raise ProvenanceHookError(
f"Could not determine API port: {e.filename} does not exist") from e
except Exception as e:
raise ProvenanceHookError("Could not determine API port") from e
url = f"http://{WEBSERVER_HOST}:{port}{WEBSERVER_ENDPOINT}"
try:
payload = {"file_path": file_path, "timestamp": timestamp_ms}
return http_request(
"POST",
WEBSERVER_HOST,
port=port,
location=WEBSERVER_ENDPOINT,
body=json.dumps(payload, ensure_ascii=False).encode("utf-8"),
headers={'Content-Type': 'application/json'},
timeout=0.5
)
except (HTTPException, OSError, ConnectionError) as e:
raise ProvenanceHookError(
f"Network error while sending diff to {url}") from e
except Exception as e:
raise ProvenanceHookError(
f"Unknown error while sending diff to {url}") from e
def extract_file_path(tool_name, tool_input):
if tool_name in ["Write", "Edit", "MultiEdit"]:
return tool_input.get('file_path', 'unknown')
if tool_name == "NotebookEdit":
return tool_input.get('notebook_path', 'unknown')
return 'unknown'
def excepthook(type, value, traceback_):
traceback.print_exception(type, value, traceback_, file=sys.stderr)
sys.exit(1)
def main():
data = json.load(sys.stdin)
tool_name = data.get('tool_name', 'unknown')
modification_tools = [
"Write", "Edit", "MultiEdit", "NotebookEdit"
]
if tool_name in modification_tools:
tool_input = data.get('tool_input', {})
file_path = extract_file_path(tool_name, tool_input)
if file_path:
timestamp_ms = int(datetime.now(timezone.utc).timestamp() * 1000)
send_diff_to_webserver(file_path, timestamp_ms)
if __name__ == "__main__":
sys.excepthook = excepthook
sys.exit(main())
+1
View File
@@ -0,0 +1 @@
{"sessionId":"b5222d29-c337-4c5d-afde-70cde98cdf46","pid":426448,"acquiredAt":1780052566378}
+30
View File
@@ -0,0 +1,30 @@
{
"permissions": {
"allow": [
"Bash(git remote add self-hosted https://git.zeptic.in/CBSNexora/JAVA-Backend-CBS-MAIN.git)",
"Bash(git push self-hosted develop:main)",
"WebFetch(domain:rbi.org.in)",
"Bash(xargs grep -l \"@Scheduled\")",
"Bash(./gradlew compileJava -x spotlessCheck)",
"Bash(./gradlew bootJar -x test -x spotlessCheck)",
"Bash(./gradlew :fineract-provider:compileJava -x spotlessCheck)",
"Bash(./gradlew :fineract-core:compileJava :fineract-provider:compileJava)",
"Bash(curl -sk -o /dev/null -w \"%{http_code}\" https://localhost:8443/fineract-provider/api/v1/rbi-feeds)",
"Bash(./gradlew bootRun -x test)",
"Bash(ls *.gradle)",
"Bash(curl -sk -o /dev/null -w \"%{http_code}\" https://localhost:8443/fineract-provider/api)",
"Bash(ls c:/Users/adity/Music/CBS/fineract/fineract-provider/src/main/resources/db/changelog/tenant/parts/0232*)",
"Bash(taskkill //F //PID 36040)",
"Bash(findstr :8443)",
"Bash(findstr LISTENING)",
"Bash(taskkill //F //PID 14668)",
"Bash(./gradlew --stop)"
],
"additionalDirectories": [
"C:\\Users\\adity\\Music\\CBS\\UI\\web-app\\src\\app\\rbi-circulars",
"C:\\Users\\adity\\Music\\CBS\\UI\\web-app\\src\\app\\clients\\create-client",
"C:\\Users\\adity\\Music\\CBS\\UI\\web-app\\src\\app\\clients\\client-stepper\\client-general-step",
"C:\\Users\\adity\\Music\\CBS\\UI\\web-app\\src\\app"
]
}
}
+101
View File
@@ -0,0 +1,101 @@
{
"permissions": {
"allow": [
"Bash(taskkill //PID 24168 //F)",
"Bash(PGPASSWORD=postgres psql -h localhost -U postgres -d fineract_default -c \"SELECT id, display_name, date_of_birth FROM m_client ORDER BY id DESC LIMIT 5;\")",
"Bash(taskkill //PID 10112 //F)",
"Bash(taskkill //PID 39420 //F)",
"Bash(curl -sk -u \"mifos:password\" -H \"fineract-platform-tenantid: default\" \"https://localhost:8443/fineract-provider/api/v1/rbi-feeds\")",
"Bash(sort -t: -k2 -n)",
"Bash(curl -sk -u \"mifos:password\" -H \"fineract-platform-tenantid: default\" \"https://localhost:8443/fineract-provider/api/v1/rbi-feeds/144\")",
"Bash(curl -sk -u \"mifos:password\" -H \"fineract-platform-tenantid: default\" \"https://localhost:8443/fineract-provider/api/v1/openproject/work-packages?pageSize=10&offset=1\")",
"Bash(curl -sk -u \"mifos:password\" -H \"fineract-platform-tenantid: default\" -H \"Content-Type: application/json\" -X POST \"https://localhost:8443/fineract-provider/api/v1/rbi-feeds/sync-openproject\" -d '{}')",
"Bash(taskkill //PID 36832 //F)",
"Bash(mvn clean:*)",
"Bash(where mvn.cmd)",
"Bash(where mvn:*)",
"Read(//c/Program Files/**)",
"Read(//c/Users/adity/**)",
"Bash(echo \"$MAVEN_HOME\")",
"Bash(xargs basename:*)",
"Bash(./gradlew :fineract-tax:compileJava)",
"Bash(grep -n \"INSERT INTO \\\\`m_role\\\\`\\\\|INSERT INTO m_role\\\\|INSERT INTO \\\\`m_permission\\\\`\\\\|INSERT INTO m_permission\" /c/Users/adity/Music/CBS/fineract/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql)",
"Bash(npm start:*)",
"Bash(grep -oP \"^\\\\\\\\\\(''''\\([^'''']+\\)''''\" \"c:\\\\Users\\\\adity\\\\Music\\\\CBS\\\\fineract\\\\fineract-db\\\\old-schema-files\\\\0003-mifosx-permissions-and-authorisation-utf8.sql\")",
"Bash(tasklist)",
"Bash(wmic process:*)",
"Bash(powershell -Command \"Get-CimInstance Win32_Process -Filter \"\"Name=''java.exe''\"\" | Select-Object ProcessId, @{N=''Cmd'';E={$_.CommandLine.Substring\\(0, [Math]::Min\\(200, $_.CommandLine.Length\\)\\)}} | Format-Table -AutoSize\")",
"Bash(psql -U postgres -d fineract_default -c \"UPDATE databasechangelog SET md5sum = NULL WHERE id = ''0231-1'' AND filename = ''db/changelog/tenant/parts/0231_add_menu_permissions.xml'';\" -c \"UPDATE m_permission SET grouping = ''menu'' WHERE code LIKE ''MENU_%'' AND entity_name = ''MENU'';\")",
"Bash(PGPASSWORD=root psql -U postgres -d fineract_default -c \"UPDATE databasechangelog SET md5sum = NULL WHERE id = ''0231-1'' AND filename = ''db/changelog/tenant/parts/0231_add_menu_permissions.xml'';\" -c \"UPDATE m_permission SET grouping = ''menu'' WHERE code LIKE ''MENU_%'' AND entity_name = ''MENU'';\")",
"Bash(PGPASSWORD=root psql -U postgres -d fineract_default -c \"UPDATE databasechangelog SET md5sum = NULL WHERE id = ''0231-1'' AND filename = ''db/changelog/tenant/parts/0231_add_menu_permissions.xml'';\" -c \"UPDATE m_permission SET grouping = ''heading_menu'' WHERE code LIKE ''MENU_%'' AND entity_name = ''MENU'';\")",
"Bash(grep -l \"pan_full_name\\\\|pan_category\\\\|pan_status\\\\|pan_aadhaar\" \"c:\\\\Users\\\\adity\\\\Music\\\\CBS\\\\fineract\\\\fineract-provider\\\\src\\\\main\\\\resources\\\\db\\\\changelog\\\\tenant\\\\parts\"/*.xml)",
"Bash(grep -l \"m_client_kyc\" \"c:\\\\Users\\\\adity\\\\Music\\\\CBS\\\\fineract\\\\fineract-provider\\\\src\\\\main\\\\resources\\\\db\\\\changelog\\\\tenant\\\\parts\"/*.xml)",
"Bash(./gradlew devRun -x test -x spotlessCheck)",
"Bash(taskkill //F //FI \"IMAGENAME eq java.exe\")",
"Bash(./gradlew bootRun)",
"Bash(curl -sk -X POST \"https://localhost:8443/fineract-provider/api/v1/authentication?username=mifos&password=password\" -H 'Fineract-Platform-TenantId: default' -H 'Content-Type: application/json')",
"Bash(curl -sk \"https://localhost:8443/fineract-provider/api/v1/clients?limit=5\" -H \"Fineract-Platform-TenantId: default\" -u \"mifos:password\")",
"Bash(curl -sk -X POST \"https://localhost:8443/fineract-provider/api/v1/authentication\" -H \"Fineract-Platform-TenantId: default\" -H \"Content-Type: application/json\" -d '{\"\"username\"\":\"\"mifos\"\",\"\"password\"\":\"\"password\"\"}')",
"Bash(curl -sk \"https://localhost:8443/fineract-provider/api/v1/clients?limit=5\" -H \"Fineract-Platform-TenantId: default\" -H \"Authorization: Basic bWlmb3M6cGFzc3dvcmQ=\")",
"Bash(./gradlew :fineract-provider:devRun --console=plain)",
"Bash(curl -k -o /tmp/test-helper.jar -w \"HTTP %{http_code} size=%{size_download} bytes\\\\n\" https://localhost:8443/fineract-provider/api/v1/dsc/helper.jar)",
"Bash(powershell -Command \"Get-Process java -ErrorAction SilentlyContinue | Select-Object Id, StartTime | Format-List\")",
"Bash(./gradlew :fineract-provider:compileJava --console=plain)",
"Bash(./gradlew :fineract-provider:compileJava :fineract-security:compileJava -q)",
"Bash(./gradlew :fineract-provider:compileJava -q)",
"PowerShell(Get-NetTCPConnection -LocalPort 8443 -State Listen -ErrorAction SilentlyContinue | Select-Object LocalPort, OwningProcess, @{Name='ProcessName';Expression={\\(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue\\).ProcessName}}, @{Name='StartTime';Expression={\\(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue\\).StartTime}})",
"PowerShell(Get-NetTCPConnection -LocalPort 8443 -ErrorAction SilentlyContinue | Format-Table LocalPort, State, OwningProcess, @{Name='ProcessName';Expression={\\(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue\\).ProcessName}} -AutoSize; netstat -ano | Select-String \":8443\")",
"PowerShell(Get-Process -Id 9340 -ErrorAction SilentlyContinue | Select-Object Id, ProcessName, StartTime, @{Name='MemMB';Expression={[math]::Round\\($_.WorkingSet64/1MB,0\\)}}, Path | Format-List)",
"Bash(git -c core.editor=true rebase --continue)",
"Bash(git rebase *)",
"Bash(rm -rf .git/rebase-merge; git status -sb | head -3)",
"Bash(git -c commit.gpgsign=false commit -m ' *)",
"Bash(git pull *)",
"Bash(./gradlew :fineract-security:compileJava :fineract-provider:compileJava -q)",
"Bash(git ls-remote *)",
"Bash(PGPASSWORD=root psql -h localhost -p 5432 -U postgres -d fineract_default -c \"SELECT cv.id, cv.code_value FROM m_code_value cv JOIN m_code c ON cv.code_id=c.id WHERE c.code_name='Constitution' ORDER BY cv.id;\")",
"Bash(curl -s -w '\\\\n--- HTTP %{http_code} | content-type: %{content_type} | %{size_download} bytes | %{time_total}s ---\\\\n' -X POST https://ekyc.lincpay.in/EKYC/ekyc/validate-pan -H 'Content-Type: application/json' -d '{\"apikey\":\"api_7c9e3a1f6d4b2a8c5e1f3d7b9a2c6e4f\",\"panNumber\":\"AQRPV8345E\",\"name\":\"Aditya Vyas\",\"dob\":\"19/12/1988\",\"secrete\":\"secret_4e8a2d7c1f9b3a6e5d2c8f1a7b4e9c3d\"}')",
"Bash(curl -s -w '\\\\n--- HTTP %{http_code} | content-type: %{content_type} | %{size_download} bytes | %{time_total}s ---\\\\n' -X POST https://ekyc.lincpay.in/EKYC/ekyc/validate-pan -H 'Content-Type: application/json' -d '{\"apikey\":\"api_7c9e3a1f6d4b2a8c5e1f3d7b9a2c6e4f\",\"panNumber\":\"AAMCG5406B\",\"name\":\"GIZMOGLADE PRIVATE LIMITED\",\"dob\":\"01/12/2025\",\"secrete\":\"secret_4e8a2d7c1f9b3a6e5d2c8f1a7b4e9c3d\"}')",
"Bash(curl -s -w '\\\\n--- HTTP %{http_code} | content-type: %{content_type} | %{size_download} bytes ---\\\\n' -X POST https://ekyc.lincpay.in/EKYC/ekyc/validate-pan -H 'Content-Type: application/json' -d '{\"apikey\":\"api_7c9e3a1f6d4b2a8c5e1f3d7b9a2c6e4f\",\"panNumber\":\"AAMCG5406B\",\"name\":\"\",\"dob\":\"\",\"secrete\":\"secret_4e8a2d7c1f9b3a6e5d2c8f1a7b4e9c3d\"}')",
"Bash(curl -s -w '\\\\n--- HTTP %{http_code} | content-type: %{content_type} | %{size_download} bytes ---\\\\n' -X POST https://ekyc.lincpay.in/EKYC/ekyc/validate-gstn -H 'Content-Type: application/json' -d '{\"apikey\":\"api_7c9e3a1f6d4b2a8c5e1f3d7b9a2c6e4f\",\"gstNumber\":\"21AAMCG5406BIZ6\",\"secrete\":\"secret_4e8a2d7c1f9b3a6e5d2c8f1a7b4e9c3d\"}')",
"Bash(curl -s -w '\\\\n--- HTTP %{http_code} | content-type: %{content_type} | %{size_download} bytes | %{time_total}s ---\\\\n' -X POST https://ekyc.lincpay.in/EKYC/ekyc/validate-gstn -H 'Content-Type: application/json' -d '{\"apikey\":\"api_7c9e3a1f6d4b2a8c5e1f3d7b9a2c6e4f\",\"gstNumber\":\"23AADCL9984A1ZH\",\"secrete\":\"secret_4e8a2d7c1f9b3a6e5d2c8f1a7b4e9c3d\"}')",
"PowerShell(Get-Process | Where-Object { $_.ProcessName -match '^\\(java|gradle\\)' } | Select-Object Id, ProcessName, StartTime, @{n='CPU\\(s\\)';e={[math]::Round\\($_.CPU,1\\)}}, @{n='WS\\(MB\\)';e={[math]::Round\\($_.WorkingSet64/1MB,0\\)}} | Format-Table -AutoSize)",
"PowerShell(Get-NetTCPConnection -LocalPort 8443 -ErrorAction SilentlyContinue)",
"PowerShell(Stop-Process -Id 3468,3864,39964 -Force)",
"PowerShell(Get-Process -Id 3468,3864,39964 -ErrorAction SilentlyContinue)",
"PowerShell(foreach \\($id in 3468,3864,39964\\) { try { Stop-Process -Id $id -Force -ErrorAction Stop; \"killed $id\" } catch { \"skip $id - $\\($_.Exception.Message\\)\" } })",
"PowerShell(Get-Process java -ErrorAction SilentlyContinue)",
"PowerShell(if \\(-not \\(Test-Path .\\\\fineract-provider\\\\logs\\)\\) { New-Item -ItemType Directory -Force .\\\\fineract-provider\\\\logs | Out-Null }; Remove-Item .\\\\fineract-provider\\\\logs\\\\devrun.out -ErrorAction SilentlyContinue; \"ready\")",
"PowerShell($j = Get-Process java -ErrorAction SilentlyContinue | Select-Object Id, @{n='CPU\\(s\\)';e={[math]::Round\\($_.CPU,1\\)}}, @{n='WS\\(MB\\)';e={[math]::Round\\($_.WorkingSet64/1MB,0\\)}}, StartTime; $j | Format-Table -AutoSize; \"---\"; Get-NetTCPConnection -LocalPort 8443 -State Listen -ErrorAction SilentlyContinue | Select-Object LocalAddress, OwningProcess)",
"PowerShell(if \\(Test-Path .\\\\fineract-provider\\\\logs\\\\devrun.out\\) { $f = Get-Item .\\\\fineract-provider\\\\logs\\\\devrun.out; \"size=$\\($f.Length\\) bytes mtime=$\\($f.LastWriteTime\\)\" } else { \"devrun.out missing\" })",
"PowerShell(netstat -ano)",
"PowerShell(Get-Process java -ErrorAction SilentlyContinue | Stop-Process -Force; Start-Sleep -Milliseconds 800; $left = Get-Process java -ErrorAction SilentlyContinue; if \\($left\\) { $left | Select-Object Id, ProcessName } else { \"no java processes\" }; Get-NetTCPConnection -LocalPort 8443 -State Listen -ErrorAction SilentlyContinue | Measure-Object | ForEach-Object { \"8443 listeners: $\\($_.Count\\)\" })",
"Bash(curl -sk -o /tmp/resp.txt -w \"STATUS=%{http_code}\\\\nCONTENT_TYPE=%{content_type}\\\\n\" -X POST 'https://localhost:8443/fineract-provider/api/v1/authentication' -H 'Content-Type: application/json' -H 'Fineract-Platform-TenantId: default' -d '{\"username\":\"mifos\",\"password\":\"password\"}')",
"Bash(curl -sk -o /tmp/r1.txt -w \"STATUS=%{http_code}\\\\n\" -X POST 'https://localhost:8443/fineract-provider/api/v1/authentication' -H 'Content-Type: application/json' -d '{\"username\":\"mifos\",\"password\":\"password\"}')",
"Bash(curl -s -o /tmp/r2.txt -w \"STATUS=%{http_code}\\\\n\" -X POST 'http://localhost:4200/fineract-provider/api/v1/authentication' -H 'Content-Type: application/json' -d '{\"username\":\"mifos\",\"password\":\"password\"}')",
"Bash(curl -s -o /tmp/r3.txt -w \"STATUS=%{http_code}\\\\n\" -X POST 'http://localhost:4200/fineract-provider/api/v1/authentication' -H 'Content-Type: application/json' -H 'Origin: http://localhost:4200' -H 'Fineract-Platform-TenantId: default' -d '{\"username\":\"mifos\",\"password\":\"password\"}')",
"Bash(curl -s -o /tmp/r4.txt -w \"STATUS=%{http_code}\\\\n\" -X OPTIONS 'http://localhost:4200/fineract-provider/api/v1/authentication' -H 'Origin: http://localhost:4200' -H 'Access-Control-Request-Method: POST' -H 'Access-Control-Request-Headers: content-type,fineract-platform-tenantid' -i)",
"Bash(git cherry-pick *)",
"PowerShell($parent = 'C:\\\\Users\\\\adity\\\\Music\\\\CBS'; if \\(Test-Path $parent\\) { \"parent exists: $parent\"; Get-ChildItem $parent -Directory | Select-Object -ExpandProperty Name } else { \"MISSING parent: $parent\" }; \"---\"; $target = Join-Path $parent 'LincpayEKYC'; if \\(Test-Path $target\\) { \"TARGET ALREADY EXISTS: $target\" } else { \"target free: $target\" })",
"Bash(git clone *)"
],
"additionalDirectories": [
"c:\\Users\\adity\\Music\\CBS\\cfcfrms-bank-api",
"C:\\Users\\adity\\Music\\CBS\\UI\\web-app\\src\\assets\\translations",
"C:\\Users\\adity\\Music\\CBS\\fineract\\.git\\rebase-merge"
]
},
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit|MultiEdit|NotebookEdit",
"hooks": [
{
"type": "command",
"command": "python3 \"$CLAUDE_PROJECT_DIR/.claude/hooks/post-tool-call.py\""
}
]
}
]
}
}
+4 -19
View File
@@ -1,22 +1,7 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
build/*
.gradle/*
# NB No ASF ASL header here due to FINERACT-1195
**/build/*
**/.gradle/*
**/bin/*
*.jar
*.war
-19
View File
@@ -1,19 +0,0 @@
## Description
Describe the changes made and why they were made. Ignore if these details are present on the associated Jira ticket
## Checklist
Please make sure these boxes are checked before submitting your pull request - thanks!
- [ ] Commit message starts with the issue number from https://issues.apache.org/jira/projects/FINERACT/. Ex: FINERACT-646 Pockets API.
- [ ] Coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions have been followed.
- [ ] API documentation at fineract-provider/src/main/resources/static/api-docs/apiLive.htm has been updated with details of any API changes.
- [ ] Integration tests have been created/updated for verifying the changes made.
- [ ] All Integrations tests are passing with the new commits.
- [ ] Submission is not a "code dump". (Large changes can be made "in repository" via a branch. Ask on the list.)
Our guidelines for code reviews is at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide
+13
View File
@@ -0,0 +1,13 @@
# https://issues.apache.org/jira/browse/FINERACT-1453
# https://docs.github.com/en/code-security/supply-chain-security/keeping-your-dependencies-updated-automatically/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "daily"
+16
View File
@@ -0,0 +1,16 @@
## Description
Describe the changes made and why they were made. (Ignore if these details are present on the associated Apache Fineract JIRA ticket.)
## Checklist
Please make sure these boxes are checked before submitting your pull request - thanks!
- [ ] Write the commit message as per [our guidelines](https://github.com/apache/fineract/blob/develop/CONTRIBUTING.md#pull-requests)
- [ ] Acknowledge that we will not review PRs that are not passing the build _("green")_ - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.
- [ ] Create/update [unit or integration tests](https://fineract.apache.org/docs/current/#_testing) for verifying the changes made.
- [ ] Follow our [coding conventions](https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions).
- [ ] Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/legacy-docs/apiLive.htm with details of any API changes
- [ ] [This PR must not be a "code dump"](https://cwiki.apache.org/confluence/display/FINERACT/Pull+Request+Size+Limit). Large changes can be made in a branch, with assistance. Ask for help on the [developer mailing list](https://fineract.apache.org/#contribute).
Your assigned reviewer(s) will follow our [guidelines for code reviews](https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide).
+114
View File
@@ -0,0 +1,114 @@
name: Fineract Build & Cucumber tests (without E2E tests)
on: [push, pull_request]
permissions:
contents: read
jobs:
verify:
runs-on: ubuntu-24.04
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
include:
- task: build-core
job_type: main
- task: cucumber
job_type: main
- task: build-progressive-loan
job_type: progressive-loan
env:
TZ: Asia/Kolkata
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
steps:
- name: Checkout
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
with:
fetch-depth: 0
fetch-tags: true
- name: Set up JDK 21
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
with:
java-version: '21'
distribution: 'zulu'
- name: Cache Gradle dependencies
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- name: Setup Gradle and Validate Wrapper
uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5.0.1
with:
validate-wrappers: true
- name: Run Gradle Task
if: matrix.job_type == 'main'
run: |
set -e # Fail the script if any command fails
case "${{ matrix.task }}" in
build-core)
./gradlew --no-daemon build -x test -x cucumber -x doc
;;
cucumber)
./gradlew --no-daemon cucumber -x :fineract-e2e-tests-runner:cucumber -x checkstyleJmh -x checkstyleMain -x checkstyleTest -x spotlessCheck -x spotlessApply -x spotbugsMain -x spotbugsTest -x javadoc -x javadocJar -x modernizer
;;
esac
- name: Build and Test Progressive Loan
if: matrix.job_type == 'progressive-loan'
run: |
# Build the JAR
./gradlew --no-daemon --console=plain :fineract-progressive-loan-embeddable-schedule-generator:shadowJar
# Store the JAR filename in an environment variable
EMBEDDABLE_JAR_FILE=$(ls fineract-progressive-loan-embeddable-schedule-generator/build/libs/*-all.jar | head -n 1)
echo "EMBEDDABLE_JAR_FILE=$EMBEDDABLE_JAR_FILE" >> $GITHUB_ENV
echo "JAR file: $EMBEDDABLE_JAR_FILE"
# Run unit tests
./gradlew --no-daemon --console=plain :fineract-progressive-loan-embeddable-schedule-generator:test
# Build and run sample application
mkdir -p sample-app
javac -cp "$EMBEDDABLE_JAR_FILE" -d sample-app fineract-progressive-loan-embeddable-schedule-generator/misc/Main.java
java -cp "$EMBEDDABLE_JAR_FILE:sample-app" Main
java -cp "$EMBEDDABLE_JAR_FILE:sample-app" Main 25
- name: Archive test results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v4
with:
name: test-results-${{ matrix.task }}
path: |
**/build/reports/
**/fineract-progressive-loan-embeddable-schedule-generator/build/reports/
if-no-files-found: ignore
retention-days: 5
- name: Archive Progressive Loan JAR
if: matrix.job_type == 'progressive-loan' && always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v4
with:
name: progressive-loan-jar
path: ${{ env.EMBEDDABLE_JAR_FILE }}
retention-days: 5
if-no-files-found: ignore
- name: Archive server logs
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v4
with:
name: server-logs-${{ matrix.task }}
path: '**/build/cargo/'
retention-days: 5
+55
View File
@@ -0,0 +1,55 @@
name: Fineract Docker Builds
on: [push, pull_request]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-24.04
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
db_type: [mariadb, postgresql]
include:
- db_type: mariadb
compose_file: docker-compose.yml
check_worker_health: true
- db_type: postgresql
compose_file: docker-compose-postgresql.yml
check_worker_health: false
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
IMAGE_NAME: fineract
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
with:
fetch-depth: 0
- name: Set up JDK 21
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
with:
java-version: '21'
distribution: 'zulu'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5.0.1
- name: Build the image
run: ./gradlew --no-daemon --console=plain :fineract-provider:jibDockerBuild -Djib.to.image=$IMAGE_NAME -x test -x cucumber
- name: Start the ${{ matrix.db_type }} stack
run: docker compose -f ${{ matrix.compose_file }} up -d
- name: Check the stack
run: docker ps
- name: Check health Manager
run: curl -f -k --retry 60 --retry-all-errors --connect-timeout 30 --retry-delay 30 https://localhost:8443/fineract-provider/actuator/health
- name: Check info Manager
run: (( $(curl -f -k --retry 5 --retry-all-errors --connect-timeout 30 --retry-delay 30 https://localhost:8443/fineract-provider/actuator/info | wc --chars) > 100 ))
+35
View File
@@ -0,0 +1,35 @@
name: Fineract Documentation build
on: [push, pull_request]
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-24.04
timeout-minutes: 60
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
steps:
- name: Checkout
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
with:
fetch-depth: 0
- name: Set up JDK 21
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
with:
java-version: '21'
distribution: 'zulu'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5.0.1
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 22
- name: Congfigure vega-cli
run: npm i -g vega-cli --unsafe
- name: Validate Gradle wrapper
uses: gradle/actions/wrapper-validation@v5.0.1
- name: Install additional software
run: |
sudo apt-get update
sudo apt-get install ghostscript graphviz -y
- name: Documentation build
run: ./gradlew --no-daemon --console=plain doc
+183
View File
@@ -0,0 +1,183 @@
name: Fineract E2E Tests
on: [push, pull_request]
permissions:
contents: read
jobs:
test:
name: E2E Tests (Shard ${{ matrix.shard_index }} of ${{ matrix.total_shards }})
runs-on: ubuntu-24.04
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
# Define the number of shards (1-based indexing)
shard_index: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
total_shards: [10]
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
IMAGE_NAME: fineract
BASE_URL: https://localhost:8443
TEST_USERNAME: mifos
TEST_PASSWORD: password
TEST_STRONG_PASSWORD: A1b2c3d4e5f$
TEST_TENANT_ID: default
INITIALIZATION_ENABLED: true
EVENT_VERIFICATION_ENABLED: true
ACTIVEMQ_BROKER_URL: tcp://localhost:61616
ACTIVEMQ_TOPIC_NAME: events
steps:
- name: Checkout code
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
with:
fetch-depth: 0
- name: Set up JDK 21
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
with:
java-version: '21'
distribution: 'zulu'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5.0.1
- name: Make scripts executable
run: chmod +x scripts/split-features.sh
- name: Split feature files into shards
id: split-features
run: |
./scripts/split-features.sh ${{ matrix.total_shards }} ${{ matrix.shard_index }}
echo "Shard ${{ matrix.shard_index }} feature files:"
cat feature_shard_${{ matrix.shard_index }}.txt
- name: Build the image
run: ./gradlew --no-daemon --console=plain :fineract-provider:jibDockerBuild -Djib.to.image=$IMAGE_NAME -x test -x cucumber
- name: Start the Fineract stack
run: docker compose -f docker-compose-postgresql-test-activemq.yml up -d
- name: Check the stack
run: docker ps
- name: Wait for Manager to be ready
run: |
# Wait for the container to be running
echo "Waiting for Manager container to be ready..."
timeout 300 bash -c 'until docker ps --filter "health=healthy" --filter "name=fineract" --format "{{.Status}}" | grep -q "healthy"; do
if docker ps --filter "name=fineract" --format "{{.Status}}" | grep -q "unhealthy"; then
echo "Container is unhealthy. Stopping..."
docker ps -a
docker logs $(docker ps -q --filter name=fineract) || true
exit 1
fi
echo "Waiting for Manager to be ready..."
sleep 5
done'
# Check the health endpoint
echo "Checking Manager health endpoint..."
curl -f -k --retry 30 --retry-all-errors --connect-timeout 10 --retry-delay 10 \
https://localhost:8443/fineract-provider/actuator/health
- name: Execute tests for shard ${{ matrix.shard_index }}
id: tests
run: |
# Initialize failure flag
FAILED=0
# Create necessary directories
mkdir -p "allure-results-shard-${{ matrix.shard_index }}"
mkdir -p "allure-results-merged"
# Read feature files from the shard file
if [ ! -s "feature_shard_${{ matrix.shard_index }}.txt" ]; then
echo "No features to test in this shard. Skipping..."
exit 0
fi
# Read each feature file path and run tests one by one
while IFS= read -r feature_file || [ -n "$feature_file" ]; do
# Skip empty lines
[ -z "$feature_file" ] && continue
# Create a safe filename for the results
safe_name=$(echo "$feature_file" | tr '/' '-' | tr ' ' '_')
echo "::group::Testing feature: $feature_file"
# Run tests with individual allure results directory
if ! ./gradlew --no-daemon --console=plain \
:fineract-e2e-tests-runner:cucumber \
-Pcucumber.features="$feature_file" \
-Dallure.results.directory="allure-results-shard-${{ matrix.shard_index }}/$safe_name" \
allureReport; then
echo "::error::Test failed for $feature_file"
FAILED=1
fi
echo "::endgroup::"
# Copy the results to a merged directory
if [ -d "allure-results-shard-${{ matrix.shard_index }}/$safe_name" ]; then
cp -r "allure-results-shard-${{ matrix.shard_index }}/$safe_name/." "allure-results-merged/" || true
fi
done < "feature_shard_${{ matrix.shard_index }}.txt"
# Generate individual report for this shard
if [ -d "allure-results-merged" ] && [ "$(ls -A allure-results-merged)" ]; then
echo "Generating Allure report..."
mkdir -p "allure-report-shard-${{ matrix.shard_index }}"
./fineract-e2e-tests-runner/build/allure/commandline/bin/allure generate "allure-results-merged" --clean -o "allure-report-shard-${{ matrix.shard_index }}" || \
echo "::warning::Failed to generate Allure report for shard ${{ matrix.shard_index }}"
fi
# Exit with failure status if any test failed
if [ "$FAILED" -eq 1 ]; then
echo "::error::Some tests failed in this shard"
exit 1
fi
- name: Upload test results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v4
with:
name: allure-results-shard-${{ matrix.shard_index }}
path: |
allure-results-shard-${{ matrix.shard_index }}
allure-results-merged
**/build/allure-results
**/build/reports/tests/test
**/build/test-results/test
retention-days: 5
- name: Upload Allure Report
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v4
with:
name: allure-report-shard-${{ matrix.shard_index }}
path: allure-report-shard-${{ matrix.shard_index }}
retention-days: 5
- name: Upload logs
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v4
with:
name: logs-shard-${{ matrix.shard_index }}
path: |
**/build/reports/tests/
**/logs/
**/out/
retention-days: 5
- name: Clean up
if: always()
run: |
docker compose -f docker-compose-postgresql-test-activemq.yml down -v
docker system prune -f
+150
View File
@@ -0,0 +1,150 @@
name: Fineract Cargo & Unit- & Integration tests - MariaDB
on: [push, pull_request]
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-24.04
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
task: [test-core-1, test-core-2, test-core-3, test-core-4, test-core-5]
services:
mariadb:
image: mariadb:11.5.2
ports:
- 3306:3306
env:
MARIADB_ROOT_PASSWORD: mysql
options: --health-cmd="healthcheck.sh --su-mysql --connect --innodb_initialized" --health-interval=5s --health-timeout=2s --health-retries=3
mock-oauth2-server:
image: ghcr.io/navikt/mock-oauth2-server:3.0.1
ports:
- 9000:9000
env:
SERVER_PORT: 9000
JSON_CONFIG: '{ "interactiveLogin": true, "httpServer": "NettyWrapper", "tokenCallbacks": [ { "issuerId": "auth/realms/fineract", "tokenExpiry": 120, "requestMappings": [{ "requestParam": "scope", "match": "fineract", "claims": { "sub": "mifos", "scope": [ "test" ] } } ] } ] }'
env:
TZ: Asia/Kolkata
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
AWS_ENDPOINT_URL: http://localhost:4566
AWS_ACCESS_KEY_ID: localstack
AWS_SECRET_ACCESS_KEY: localstack
AWS_REGION: us-east-1
FINERACT_REPORT_EXPORT_S3_ENABLED: true
FINERACT_REPORT_EXPORT_S3_BUCKET_NAME: fineract-reports
steps:
- name: Checkout
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
with:
fetch-depth: 0
fetch-tags: true
- name: Set up JDK 21
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
with:
java-version: '21'
distribution: 'zulu'
- name: Cache Gradle dependencies
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- name: Setup Gradle and Validate Wrapper
uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5.0.1
with:
validate-wrappers: true
- name: Verify MariaDB connection
run: |
while ! mysqladmin ping -h"127.0.0.1" -P3306 ; do
sleep 1
done
- name: Initialise databases
run: |
./gradlew --no-daemon -q createDB -PdbName=fineract_tenants
./gradlew --no-daemon -q createDB -PdbName=fineract_default
- name: Start LocalStack
run: |
docker run -d --name localstack -p 4566:4566 -p 4510-4559:4510-4559 localstack/localstack:2.1
sleep 10
docker exec localstack awslocal s3api create-bucket --bucket fineract-reports
- name: Generate test class list (only for test-core-X)
if: startsWith(matrix.task, 'test-core-')
run: |
chmod +x scripts/split-tests.sh
SHARD_INDEX=$(echo "${{ matrix.task }}" | awk -F'-' '{print $3}')
./scripts/split-tests.sh 5 $SHARD_INDEX
cat "shard-tests_${SHARD_INDEX}.txt"
- name: Run Gradle Task
run: |
set -e # Fail the script if any command fails
SHARD_INDEX=$(echo "${{ matrix.task }}" | awk -F'-' '{print $3}')
FAILED=0
case "${{ matrix.task }}" in
test-core-*)
echo "Grouping test classes by module..."
declare -A module_tests
while IFS=, read -r module class; do
module_tests["$module"]+="$class "
done < "shard-tests_${SHARD_INDEX}.txt"
for module in "${!module_tests[@]}"; do
echo "::group::Running tests in $module"
for class in ${module_tests[$module]}; do
echo " - $class"
done
# Build test args
test_args=$(for class in ${module_tests[$module]}; do echo --tests "$class"; done | xargs)
# Run test task for this module
if ! ./gradlew "$module:test" $test_args -x checkstyleJmh -x checkstyleMain -x checkstyleTest -x spotlessCheck -x spotlessApply -x spotbugsMain -x spotbugsTest -x javadoc -x javadocJar -x modernizer; then
echo "::error::Tests failed in module $module"
FAILED=1
fi
echo "::endgroup::"
done
;;
esac
# Exit with failure status if any test failed
if [ "$FAILED" -eq 1 ]; then
echo "::error::Some tests failed in this job"
exit 1
fi
- name: Archive test results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v4
with:
name: test-results-${{ matrix.task }}
path: '**/build/reports/'
retention-days: 5
- name: Archive server logs
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v4
with:
name: server-logs-${{ matrix.task }}
path: '**/build/cargo/'
retention-days: 5
+150
View File
@@ -0,0 +1,150 @@
name: Fineract Cargo & Unit- & Integration tests - MySQL
on: [push, pull_request]
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-24.04
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
task: [test-core-1, test-core-2, test-core-3, test-core-4, test-core-5]
services:
mysql:
image: mysql:9.1
ports:
- 3306:3306
env:
MYSQL_ROOT_PASSWORD: mysql
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
mock-oauth2-server:
image: ghcr.io/navikt/mock-oauth2-server:3.0.1
ports:
- 9000:9000
env:
SERVER_PORT: 9000
JSON_CONFIG: '{ "interactiveLogin": true, "httpServer": "NettyWrapper", "tokenCallbacks": [ { "issuerId": "auth/realms/fineract", "tokenExpiry": 120, "requestMappings": [{ "requestParam": "scope", "match": "fineract", "claims": { "sub": "mifos", "scope": [ "test" ] } } ] } ] }'
env:
TZ: Asia/Kolkata
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
AWS_ENDPOINT_URL: http://localhost:4566
AWS_ACCESS_KEY_ID: localstack
AWS_SECRET_ACCESS_KEY: localstack
AWS_REGION: us-east-1
FINERACT_REPORT_EXPORT_S3_ENABLED: true
FINERACT_REPORT_EXPORT_S3_BUCKET_NAME: fineract-reports
steps:
- name: Checkout
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
with:
fetch-depth: 0
fetch-tags: true
- name: Set up JDK 21
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
with:
java-version: '21'
distribution: 'zulu'
- name: Cache Gradle dependencies
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- name: Setup Gradle and Validate Wrapper
uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5.0.1
with:
validate-wrappers: true
- name: Verify MySQL connection
run: |
while ! mysqladmin ping -h"127.0.0.1" -P3306 ; do
sleep 1
done
- name: Initialise databases
run: |
./gradlew --no-daemon -q createMySQLDB -PdbName=fineract_tenants
./gradlew --no-daemon -q createMySQLDB -PdbName=fineract_default
- name: Start LocalStack
run: |
docker run -d --name localstack -p 4566:4566 -p 4510-4559:4510-4559 localstack/localstack:2.1
sleep 10
docker exec localstack awslocal s3api create-bucket --bucket fineract-reports
- name: Generate test class list (only for test-core-X)
if: startsWith(matrix.task, 'test-core-')
run: |
chmod +x scripts/split-tests.sh
SHARD_INDEX=$(echo "${{ matrix.task }}" | awk -F'-' '{print $3}')
./scripts/split-tests.sh 5 $SHARD_INDEX
cat "shard-tests_${SHARD_INDEX}.txt"
- name: Run Gradle Task
run: |
set -e # Fail the script if any command fails
SHARD_INDEX=$(echo "${{ matrix.task }}" | awk -F'-' '{print $3}')
FAILED=0
case "${{ matrix.task }}" in
test-core-*)
echo "Grouping test classes by module..."
declare -A module_tests
while IFS=, read -r module class; do
module_tests["$module"]+="$class "
done < "shard-tests_${SHARD_INDEX}.txt"
for module in "${!module_tests[@]}"; do
echo "::group::Running tests in $module"
for class in ${module_tests[$module]}; do
echo " - $class"
done
# Build test args
test_args=$(for class in ${module_tests[$module]}; do echo --tests "$class"; done | xargs)
# Run test task for this module
if ! ./gradlew "$module:test" $test_args -PdbType=mysql -x checkstyleJmh -x checkstyleMain -x checkstyleTest -x spotlessCheck -x spotlessApply -x spotbugsMain -x spotbugsTest -x javadoc -x javadocJar -x modernizer; then
echo "::error::Tests failed in module $module"
FAILED=1
fi
echo "::endgroup::"
done
;;
esac
# Exit with failure status if any test failed
if [ "$FAILED" -eq 1 ]; then
echo "::error::Some tests failed in this job"
exit 1
fi
- name: Archive test results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v4
with:
name: test-results-${{ matrix.task }}
path: '**/build/reports/'
retention-days: 5
- name: Archive server logs
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v4
with:
name: server-logs-${{ matrix.task }}
path: '**/build/cargo/'
retention-days: 5
+151
View File
@@ -0,0 +1,151 @@
name: Fineract Cargo & Unit- & Integration tests - PostgreSQL
on: [push, pull_request]
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-24.04
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
task: [test-core-1, test-core-2, test-core-3, test-core-4, test-core-5]
services:
postgresql:
image: postgres:18.2
ports:
- 5432:5432
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: postgres
options: --health-cmd="pg_isready -q -d postgres -U root" --health-interval=5s --health-timeout=2s --health-retries=3
mock-oauth2-server:
image: ghcr.io/navikt/mock-oauth2-server:3.0.1
ports:
- 9000:9000
env:
SERVER_PORT: 9000
JSON_CONFIG: '{ "interactiveLogin": true, "httpServer": "NettyWrapper", "tokenCallbacks": [ { "issuerId": "auth/realms/fineract", "tokenExpiry": 120, "requestMappings": [{ "requestParam": "scope", "match": "fineract", "claims": { "sub": "mifos", "scope": [ "test" ] } } ] } ] }'
env:
TZ: Asia/Kolkata
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
AWS_ENDPOINT_URL: http://localhost:4566
AWS_ACCESS_KEY_ID: localstack
AWS_SECRET_ACCESS_KEY: localstack
AWS_REGION: us-east-1
FINERACT_REPORT_EXPORT_S3_ENABLED: true
FINERACT_REPORT_EXPORT_S3_BUCKET_NAME: fineract-reports
steps:
- name: Checkout
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
with:
fetch-depth: 0
fetch-tags: true
- name: Set up JDK 21
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
with:
java-version: '21'
distribution: 'zulu'
- name: Cache Gradle dependencies
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- name: Setup Gradle and Validate Wrapper
uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5.0.1
with:
validate-wrappers: true
- name: Verify PostgreSQL connection
run: |
while ! pg_isready -d postgres -U root -h 127.0.0.1 -p 5432 ; do
sleep 1
done
- name: Initialise databases
run: |
./gradlew --no-daemon -q createPGDB -PdbName=fineract_tenants
./gradlew --no-daemon -q createPGDB -PdbName=fineract_default
- name: Start LocalStack
run: |
docker run -d --name localstack -p 4566:4566 -p 4510-4559:4510-4559 localstack/localstack:2.1
sleep 10
docker exec localstack awslocal s3api create-bucket --bucket fineract-reports
- name: Generate test class list (only for test-core-X)
if: startsWith(matrix.task, 'test-core-')
run: |
chmod +x scripts/split-tests.sh
SHARD_INDEX=$(echo "${{ matrix.task }}" | awk -F'-' '{print $3}')
./scripts/split-tests.sh 5 $SHARD_INDEX
cat "shard-tests_${SHARD_INDEX}.txt"
- name: Run Gradle Task
run: |
set -e # Fail the script if any command fails
SHARD_INDEX=$(echo "${{ matrix.task }}" | awk -F'-' '{print $3}')
FAILED=0
case "${{ matrix.task }}" in
test-core-*)
echo "Grouping test classes by module..."
declare -A module_tests
while IFS=, read -r module class; do
module_tests["$module"]+="$class "
done < "shard-tests_${SHARD_INDEX}.txt"
for module in "${!module_tests[@]}"; do
echo "::group::Running tests in $module"
for class in ${module_tests[$module]}; do
echo " - $class"
done
# Build test args
test_args=$(for class in ${module_tests[$module]}; do echo --tests "$class"; done | xargs)
# Run test task for this module
if ! ./gradlew "$module:test" $test_args -PdbType=postgresql -x checkstyleJmh -x checkstyleMain -x checkstyleTest -x spotlessCheck -x spotlessApply -x spotbugsMain -x spotbugsTest -x javadoc -x javadocJar -x modernizer; then
echo "::error::Tests failed in module $module"
FAILED=1
fi
echo "::endgroup::"
done
;;
esac
# Exit with failure status if any test failed
if [ "$FAILED" -eq 1 ]; then
echo "::error::Some tests failed in this job"
exit 1
fi
- name: Archive test results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v4
with:
name: test-results-${{ matrix.task }}
path: '**/build/reports/'
retention-days: 5
- name: Archive server logs
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v4
with:
name: server-logs-${{ matrix.task }}
path: '**/build/cargo/'
retention-days: 5
-36
View File
@@ -1,36 +0,0 @@
# This is the GitHub Action which
# automatically updates https://www.fineract.dev
#
# see https://jira.apache.org/jira/browse/FINERACT-970
# https://github.com/marketplace/actions/setup-gcloud-environment
# and http://blog2.vorburger.ch/2020/05/fineractdev-cicd-from-github-to-google.html
#
# Created by Michael Vorburger.ch for Fineract in May 2020.
#
name: Deploy to https://www.fineract.dev
on:
push:
branches:
- develop
jobs:
setup-build-deploy:
name: Deploy on Fineract.dev
if: github.repository == 'apache/fineract'
runs-on: ubuntu-latest
steps:
- uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
with:
project_id: ${{ secrets.GOOGLE_PROJECT_ID }}
service_account_key: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS}}
- uses: actions/checkout@v2
- run: gcloud components install beta
- run: JOBS=$(gcloud beta builds list --ongoing --format="value[terminator=' '](id)") && [ ! -z "$JOBS" ] && echo "Cancelling $JOBS..." && gcloud builds cancel $JOBS --no-user-output-enabled || true
- run: gcloud beta builds triggers run deploy-demo --branch master --format=none
@@ -1,10 +0,0 @@
name: "Validate Gradle Wrapper"
on: [push, pull_request]
jobs:
validation:
name: "Validation"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: gradle/wrapper-validation-action@v1
@@ -0,0 +1,81 @@
name: Fineract Liquibase Only mode - PostgreSQL
on: [push, pull_request]
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-22.04
timeout-minutes: 60
services:
postgresql:
image: postgres:18.2
ports:
- 5432:5432
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: postgres
options: --health-cmd="pg_isready -q -d postgres -U root" --health-interval=5s --health-timeout=2s --health-retries=3
env:
TZ: Asia/Kolkata
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
steps:
- name: Checkout
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
with:
fetch-depth: 0
fetch-tags: true
- name: Set up JDK 21
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
with:
java-version: '21'
distribution: 'zulu'
- name: Cache Gradle dependencies
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
- name: Setup Gradle and Validate Wrapper
uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5.0.1
with:
validate-wrappers: true
- name: Verify PostgreSQL connection
run: |
while ! pg_isready -d postgres -U root -h 127.0.0.1 -p 5432 ; do
sleep 1
done
- name: Initialise databases
run: |
./gradlew --no-daemon -q createPGDB -PdbName=fineract_tenants
./gradlew --no-daemon -q createPGDB -PdbName=fineract_default
- name: Run Fineract in Liquibase only mode
env:
FINERACT_DEFAULT_TENANTDB_CONN_PARAMS: ""
FINERACT_DEFAULT_TENANTDB_DESCRIPTION: "Default Demo Tenant"
FINERACT_DEFAULT_TENANTDB_HOSTNAME: "localhost"
FINERACT_DEFAULT_TENANTDB_IDENTIFIER: "default"
FINERACT_DEFAULT_TENANTDB_NAME: "fineract_default"
FINERACT_DEFAULT_TENANTDB_PORT: "5432"
FINERACT_DEFAULT_TENANTDB_PWD: "postgres"
FINERACT_DEFAULT_TENANTDB_TIMEZONE: "Asia/Kolkata"
FINERACT_DEFAULT_TENANTDB_UID: "root"
FINERACT_HIKARI_DRIVER_SOURCE_CLASS_NAME: "org.postgresql.Driver"
FINERACT_HIKARI_JDBC_URL: "jdbc:postgresql://localhost:5432/fineract_tenants"
FINERACT_HIKARI_PASSWORD: "postgres"
FINERACT_HIKARI_USERNAME: "root"
SPRING_PROFILES_ACTIVE: "liquibase-only"
run:
./gradlew fineract-provider:bootRun
@@ -0,0 +1,36 @@
name: Publish Fineract client to Mifos Artifactory
on:
push:
branches:
- develop-mifos
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-24.04
timeout-minutes: 60
env:
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
steps:
- name: Checkout Source Code
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
with:
fetch-depth: 0
- name: Generate build number
uses: onyxmueller/build-tag-number@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Set up JDK 21
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
with:
java-version: '21'
distribution: 'zulu'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5.0.1
- name: Build the image
run: ./gradlew publish -Pfineract.config.username=$ARTIFACTORY_USERNAME -Pfineract.config.password=$ARTIFACTORY_PASSWORD -Pfineract.release.version=${BUILD_NUMBER}
+26
View File
@@ -0,0 +1,26 @@
name: Fineract PR Compliance
on:
pull_request:
types: [opened, edited, reopened, synchronize]
permissions:
pull-requests: read
jobs:
verify-title:
name: Validate Jira Ticket ID
runs-on: ubuntu-latest
timeout-minutes: 1
steps:
- name: Verify Title Format
run: |
title="${{ github.event.pull_request.title }}"
regex="^FINERACT-[0-9]+: "
if [[ ! "$title" =~ $regex ]]; then
echo "::error::PR title '$title' is invalid."
echo "::error::It must start with a Jira Ticket ID (e.g., 'FINERACT-123: Description...')."
exit 1
fi
echo "Success: PR title matches the required format."
+48
View File
@@ -0,0 +1,48 @@
name: Fineract Publish to DockerHub
on:
push:
branches:
- develop
tags:
- 1.*
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-24.04
timeout-minutes: 60
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
steps:
- name: Checkout Source Code
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
with:
fetch-depth: 0
- name: Set up JDK 21
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
with:
java-version: '21'
distribution: 'zulu'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5.0.1
- name: Get Git Hashes
run: |
echo "short_hash=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
echo "long_hash=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
id: git_hashes
- name: Build the Apache Fineract image
run: |
TAGS=${{ github.ref_name }}
if [ "${{ github.ref_name }}" == "develop" ]; then
TAGS="$TAGS,${{ steps.git_hashes.outputs.short_hash }},${{ steps.git_hashes.outputs.long_hash }}"
fi
./gradlew --no-daemon --console=plain :fineract-provider:jib -x test -x cucumber \
-Djib.to.auth.username=${{secrets.DOCKERHUB_USER}} \
-Djib.to.auth.password=${{secrets.DOCKERHUB_TOKEN}} \
-Djib.from.platforms=linux/amd64,linux/arm64 \
-Djib.to.image=apache/fineract \
-Djib.to.tags=$TAGS
-18
View File
@@ -1,18 +0,0 @@
# https://github.com/marketplace/actions/automatic-rebase (https://github.com/cirrus-actions/rebase)
on:
issue_comment:
types: [created]
name: Automatic Rebase
jobs:
rebase:
name: Rebase
if: github.event.issue.pull_request != '' && contains(github.event.comment.body, '/rebase')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
with:
fetch-depth: 0
- name: Automatic Rebase
uses: cirrus-actions/rebase@1.3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,105 @@
name: Fineract Cargo & Unit- & Integration tests - Sequential Execution - PostgreSQL
on:
workflow_dispatch:
push:
branches:
- develop
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-24.04
timeout-minutes: 180
services:
postgresql:
image: postgres:18.2
ports:
- 5432:5432
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: postgres
options: --health-cmd="pg_isready -q -d postgres -U root" --health-interval=5s --health-timeout=2s --health-retries=3
mock-oauth2-server:
image: ghcr.io/navikt/mock-oauth2-server:3.0.1
ports:
- 9000:9000
env:
SERVER_PORT: 9000
JSON_CONFIG: '{ "interactiveLogin": true, "httpServer": "NettyWrapper", "tokenCallbacks": [ { "issuerId": "auth/realms/fineract", "tokenExpiry": 120, "requestMappings": [{ "requestParam": "scope", "match": "fineract", "claims": { "sub": "mifos", "scope": [ "test" ] } } ] } ] }'
env:
TZ: Asia/Kolkata
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
steps:
- name: Checkout
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
with:
fetch-depth: 0
fetch-tags: true
- name: Set up JDK 21
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
with:
java-version: '21'
distribution: 'zulu'
- name: Setup Gradle and Validate Wrapper
uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5.0.1
with:
validate-wrappers: true
- name: Verify PostgreSQL connection
run: |
while ! pg_isready -d postgres -U root -h 127.0.0.1 -p 5432 ; do
sleep 1
done
- name: Initialise databases
run: |
./gradlew --no-daemon -q createPGDB -PdbName=fineract_tenants
./gradlew --no-daemon -q createPGDB -PdbName=fineract_default
- name: Start LocalStack
env:
AWS_ENDPOINT_URL: http://localhost:4566
AWS_ACCESS_KEY_ID: localstack
AWS_SECRET_ACCESS_KEY: localstack
AWS_REGION: us-east-1
run: |
docker run -d --name localstack -p 4566:4566 -p 4510-4559:4510-4559 localstack/localstack:2.1
sleep 10
docker exec localstack awslocal s3api create-bucket --bucket fineract-reports
echo "LocalStack initialization complete"
- name: Build & Test
env:
AWS_ENDPOINT_URL: http://localhost:4566
AWS_ACCESS_KEY_ID: localstack
AWS_SECRET_ACCESS_KEY: localstack
AWS_REGION: us-east-1
FINERACT_REPORT_EXPORT_S3_ENABLED: true
FINERACT_REPORT_EXPORT_S3_BUCKET_NAME: fineract-reports
run: |
./gradlew --no-daemon --console=plain build -x cucumber -x test -x doc
./gradlew --no-daemon --console=plain cucumber -x :fineract-e2e-tests-runner:cucumber
./gradlew --no-daemon --console=plain test -x :twofactor-tests:test -x :oauth2-test:test -x :fineract-e2e-tests-runner:test -PdbType=postgresql
./gradlew --no-daemon --console=plain :twofactor-tests:test -PdbType=postgresql
./gradlew --no-daemon --console=plain :oauth2-tests:test -PdbType=postgresql
- name: Archive test results
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v4
with:
name: test-results
retention-days: 5
path: |
build/reports/
integration-tests/build/reports/
twofactor-tests/build/reports/
oauth2-tests/build/reports/
- name: Archive server logs
if: always()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v4
with:
name: server-logs
retention-days: 5
path: |
integration-tests/build/cargo/
twofactor-tests/build/cargo/
oauth2-tests/build/cargo/
+62
View File
@@ -0,0 +1,62 @@
name: Fineract Messaging Smoke Tests
on: [push, pull_request]
permissions:
contents: read
jobs:
smoke-test:
name: Smoke Test with ${{ matrix.messaging }}
runs-on: ubuntu-24.04
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
include:
- messaging: ActiveMQ
compose_file: docker-compose-postgresql-activemq.yml
- messaging: Kafka
compose_file: docker-compose-postgresql-kafka.yml
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
IMAGE_NAME: fineract
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
with:
fetch-depth: 0
- name: Set up JDK 21
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
with:
java-version: '21'
distribution: 'zulu'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5.0.1
- name: Build the image
run: ./gradlew --no-daemon --console=plain :fineract-provider:jibDockerBuild -Djib.to.image=$IMAGE_NAME -x test -x cucumber
- name: Start the ${{ matrix.messaging }} Stack
run: docker compose -f ${{ matrix.compose_file }} up --scale fineract-worker=1 -d
- name: Check the stack
run: docker ps
- name: Check health Manager
run: curl -f -k --retry 60 --retry-all-errors --connect-timeout 30 --retry-delay 30 https://localhost:8443/fineract-provider/actuator/health
- name: Check health Worker1
run: curl -f -k --retry 60 --retry-all-errors --connect-timeout 30 --retry-delay 30 https://localhost:8444/fineract-provider/actuator/health
- name: Check info Manager
run: (( $(curl -f -k --retry 5 --retry-all-errors --connect-timeout 30 --retry-delay 30 https://localhost:8443/fineract-provider/actuator/info | wc --chars) > 100 ))
- name: Check info Worker1
run: (( $(curl -f -k --retry 5 --retry-all-errors --connect-timeout 30 --retry-delay 30 https://localhost:8444/fineract-provider/actuator/info | wc --chars) > 100 ))
- name: Run Smoke Test with Remote COB
run: ./gradlew --no-daemon --console=plain :integration-tests:cleanTest :integration-tests:test --tests "org.apache.fineract.integrationtests.investor.externalassetowner.InitiateExternalAssetOwnerTransferTest.saleActiveLoanToExternalAssetOwnerAndBuybackADayLater" -PcargoDisabled
+38
View File
@@ -0,0 +1,38 @@
name: Fineract Sonarqube
on:
push:
branches:
- develop
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-24.04
timeout-minutes: 60
env:
TZ: Asia/Kolkata
SONAR_ORGANIZATION: ${{ secrets.SONAR_ORGANIZATION }}
SONAR_PROJECT_KEY: ${{ secrets.SONAR_PROJECT_KEY }}
SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONARCLOUD_TOKEN }}
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
JAVA_BINARIES: .
steps:
- name: Checkout
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
with:
fetch-depth: 0
- name: Set up JDK 21
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
with:
java-version: '21'
distribution: 'zulu'
- name: Setup Gradle and Validate Wrapper
uses: gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884 # v5.0.1
with:
validate-wrappers: true
- name: Build
run: ./gradlew --no-daemon --console=plain :fineract-provider:build -x test -x cucumber
- name: Sonar
run: ./gradlew --no-daemon --console=plain -Dsonar.verbose=true -Dsonar.token=$SONAR_TOKEN -Dsonar.host.url=$SONAR_HOST_URL -Dsonar.organization=$SONAR_ORGANIZATION -Dsonar.projectKey=$SONAR_PROJECT_KEY -Dsonar.java.binaries=$JAVA_BINARIES --info --stacktrace sonar
+7 -1
View File
@@ -5,11 +5,17 @@ name: Mark stale issues and pull requests
on:
schedule:
- cron: "0 0 * * *"
permissions:
contents: read
jobs:
stale:
permissions:
issues: write # for actions/stale to close stale issues
pull-requests: write # for actions/stale to close stale PRs
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/stale@v1
- uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
# stale-issue-message: 'Stale issue message'
@@ -0,0 +1,225 @@
name: Verify API Backward Compatibility
on: [pull_request]
permissions:
contents: read
pull-requests: write
jobs:
api-compatibility-check:
runs-on: ubuntu-24.04
timeout-minutes: 15
env:
TZ: Asia/Kolkata
steps:
- name: Checkout base branch
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5
with:
repository: ${{ github.event.pull_request.base.repo.full_name }}
ref: ${{ github.event.pull_request.base.ref }}
fetch-depth: 0
path: baseline
- name: Set up JDK 21
uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: '21'
- name: Generate baseline spec
working-directory: baseline
run: ./gradlew :fineract-provider:resolve --no-daemon
- name: Checkout PR branch
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v5
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
path: current
- name: Generate PR spec
working-directory: current
run: ./gradlew :fineract-provider:resolve --no-daemon
- name: Sanitize specs
run: |
python3 -c "
import json, sys
def sanitize(path):
with open(path) as f:
spec = json.load(f)
fixed = 0
for path_item in spec.get('paths', {}).values():
for op in path_item.values():
if not isinstance(op, dict) or 'requestBody' not in op:
continue
for media in op['requestBody'].get('content', {}).values():
if 'schema' not in media:
media['schema'] = {'type': 'object'}
fixed += 1
if fixed:
with open(path, 'w') as f:
json.dump(spec, f)
print(f'{path}: fixed {fixed} entries')
sanitize('${GITHUB_WORKSPACE}/baseline/fineract-provider/build/resources/main/static/fineract.json')
sanitize('${GITHUB_WORKSPACE}/current/fineract-provider/build/resources/main/static/fineract.json')
"
- name: Check breaking changes
id: breaking-check
continue-on-error: true
working-directory: current
run: |
set -o pipefail
./gradlew :fineract-provider:checkBreakingChanges \
-PapiBaseline="${GITHUB_WORKSPACE}/baseline/fineract-provider/build/resources/main/static/fineract.json" \
--no-daemon --quiet 2>&1 | tail -50
- name: Build report
if: steps.breaking-check.outcome == 'failure'
id: report
run: |
REPORT_DIR="current/fineract-provider/build/swagger-brake"
python3 -c "
import json, glob, os
from collections import defaultdict
RULE_DESC = {
'R001': 'Standard API changed to beta',
'R002': 'Path deleted',
'R003': 'Request media type deleted',
'R004': 'Request parameter deleted',
'R005': 'Request parameter enum value deleted',
'R006': 'Request parameter location changed',
'R007': 'Request parameter made required',
'R008': 'Request parameter type changed',
'R009': 'Request attribute removed',
'R010': 'Request type changed',
'R011': 'Request enum value deleted',
'R012': 'Response code deleted',
'R013': 'Response media type deleted',
'R014': 'Response attribute removed',
'R015': 'Response type changed',
'R016': 'Response enum value deleted',
'R017': 'Request parameter constraint changed',
}
report_dir = '${REPORT_DIR}'
files = sorted(glob.glob(os.path.join(report_dir, '*.json')))
if not files:
body = 'Breaking change detected but no report file found.'
else:
with open(files[0]) as f:
data = json.load(f)
all_changes = []
for items in data.get('breakingChanges', {}).values():
all_changes.extend(items)
if not all_changes:
body = 'Breaking change detected but no details available in report.'
else:
def detail(c):
for key in ('attributeName', 'attribute', 'name', 'mediaType', 'enumValue', 'code'):
v = c.get(key)
if v:
val = v.rsplit('.', 1)[-1]
if key in ('attributeName', 'attribute', 'name'):
return val
return f'{key}={val}'
return '-'
groups = defaultdict(list)
for c in all_changes:
groups[(c.get('ruleCode', '?'), detail(c))].append(c)
lines = []
lines.append('| Rule | Description | Detail | Affected endpoints | Count |')
lines.append('|------|-------------|--------|--------------------|-------|')
for (rule, det), items in sorted(groups.items()):
desc = RULE_DESC.get(rule, '')
eps = sorted(set(
f'{c.get(\"method\",\"\")} {c.get(\"path\",\"\")}'
for c in items if c.get('path')
))
ep_str = ', '.join(f'\`{e}\`' for e in eps[:5])
if len(eps) > 5:
ep_str += f' +{len(eps)-5} more'
lines.append(f'| {rule} | {desc} | \`{det}\` | {ep_str} | {len(items)} |')
lines.append('')
lines.append(f'**Total: {len(all_changes)} violations across {len(groups)} unique changes**')
body = '\n'.join(lines)
with open(os.environ['GITHUB_OUTPUT'], 'a') as f:
f.write('has_report=true\n')
report_file = '${GITHUB_WORKSPACE}/breaking-changes-report.md'
with open(report_file, 'w') as f:
f.write('## Breaking API Changes Detected\n\n')
f.write(body)
f.write('\n\n> **Note:** This check is informational only and does not block the PR.\n')
# Also write to step summary
with open(os.environ['GITHUB_STEP_SUMMARY'], 'a') as f:
f.write('## Breaking API Changes Detected\n\n')
f.write(body)
f.write('\n\n> **Note:** This check is informational only and does not block the PR.\n')
"
- name: Comment on PR
if: always()
continue-on-error: true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
MARKER="<!-- swagger-brake-report -->"
# Find existing comment by marker
COMMENT_ID=$(gh api "repos/${{ github.repository }}/issues/${PR_NUMBER}/comments" \
--jq ".[] | select(.body | contains(\"${MARKER}\")) | .id" | head -1)
if [ "${{ steps.breaking-check.outcome }}" == "failure" ] && [ -f "${GITHUB_WORKSPACE}/breaking-changes-report.md" ]; then
# Prepend marker to the report
BODY="${MARKER}
$(cat ${GITHUB_WORKSPACE}/breaking-changes-report.md)"
if [ -n "$COMMENT_ID" ]; then
gh api "repos/${{ github.repository }}/issues/comments/${COMMENT_ID}" \
-X PATCH -f body="${BODY}"
else
gh pr comment "${PR_NUMBER}" --repo ${{ github.repository }} --body "${BODY}"
fi
elif [ -n "$COMMENT_ID" ]; then
# No breaking changes anymore, delete the old comment
gh api "repos/${{ github.repository }}/issues/comments/${COMMENT_ID}" -X DELETE
fi
- name: Report no breaking changes
if: steps.breaking-check.outcome == 'success'
run: |
echo "## No Breaking API Changes Detected" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "The API contract is backward compatible." >> $GITHUB_STEP_SUMMARY
- name: Archive breaking change report
if: always()
uses: actions/upload-artifact@v4
with:
name: api-compatibility-report
path: current/fineract-provider/build/swagger-brake/
retention-days: 30
- name: Fail if breaking changes detected
if: steps.breaking-check.outcome == 'failure'
run: |
echo "::error::Breaking API changes detected. See the report above for details."
exit 1
+47
View File
@@ -0,0 +1,47 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
name: Fineract Signed Commits Check
on:
pull_request:
types: [opened, synchronize, reopened]
permissions:
contents: read
jobs:
verify-signatures:
name: Verify Commit Signatures
runs-on: ubuntu-latest
timeout-minutes: 1
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Fetch base branch
run: git fetch origin ${{ github.base_ref }}
- name: Verify signatures
run: |
chmod +x scripts/verify-signed-commits.sh
./scripts/verify-signed-commits.sh \
--base-ref origin/${{ github.base_ref }} \
--head-ref ${{ github.event.pull_request.head.sha }} \
--strict
@@ -0,0 +1,163 @@
name: Verify Liquibase Backward Compatibility
on: [pull_request]
permissions:
contents: read
jobs:
liquibase-backward-compatibility-check:
runs-on: ubuntu-24.04
timeout-minutes: 30
services:
postgresql:
image: postgres:18.2
ports:
- 5432:5432
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd="pg_isready -q -d postgres -U root"
--health-interval=5s
--health-timeout=2s
--health-retries=5
env:
DB_USER: root
DB_PASSWORD: postgres
DB_NAME: fineract_default
TZ: Asia/Kolkata
steps:
- name: Checkout the base branch (`develop`)
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
with:
repository: ${{ github.event.pull_request.base.repo.full_name }}
ref: ${{ github.event.pull_request.base.ref }}
fetch-depth: 0
- name: Set up JDK 21
uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: '21'
- name: Wait for PostgreSQL
run: |
until pg_isready -h localhost -U $DB_USER; do
echo "Waiting for postgres..."
sleep 2
done
- name: Init base schema
run: |
./gradlew --no-daemon createPGDB -PdbName=fineract_tenants
./gradlew --no-daemon createPGDB -PdbName=$DB_NAME
- name: Start backend on base branch
run: |
./gradlew :fineract-provider:devRun --args="\
--spring.datasource.hikari.driverClassName=org.postgresql.Driver \
--spring.datasource.hikari.jdbcUrl=jdbc:postgresql://localhost:5432/fineract_tenants \
--spring.datasource.hikari.username=root \
--spring.datasource.hikari.password=postgres \
--fineract.tenant.host=localhost \
--fineract.tenant.port=5432 \
--fineract.tenant.username=root \
--fineract.tenant.password=postgres" &
BACKEND_PID=$!
echo $BACKEND_PID > backend.pid
# Wait for Actuator to come up (adjust host/port/path if needed)
ACTUATOR_URL="https://localhost:8443/fineract-provider/actuator/health"
TIMEOUT_SECONDS=600
INTERVAL_SECONDS=2
echo "Waiting for backend Actuator: $ACTUATOR_URL (timeout ${TIMEOUT_SECONDS}s)..."
start_ts=$(date +%s)
while true; do
# If the process died, fail fast
if ! kill -0 "$BACKEND_PID" 2>/dev/null; then
echo "Backend process exited before Actuator became available."
exit 1
fi
# Check endpoint
if curl -kfsS "$ACTUATOR_URL" >/dev/null 2>&1; then
echo "Actuator is up."
break
fi
# Timeout
now_ts=$(date +%s)
if [ $((now_ts - start_ts)) -ge "$TIMEOUT_SECONDS" ]; then
echo "Timed out waiting for Actuator."
exit 1
fi
sleep "$INTERVAL_SECONDS"
done
- name: Stop backend
run: |
kill $(cat backend.pid)
sleep 10
- name: Checkout the PR branch
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: Start backend on PR branch
run: |
./gradlew :fineract-provider:devRun --args="\
--spring.datasource.hikari.driverClassName=org.postgresql.Driver \
--spring.datasource.hikari.jdbcUrl=jdbc:postgresql://localhost:5432/fineract_tenants \
--spring.datasource.hikari.username=root \
--spring.datasource.hikari.password=postgres \
--fineract.tenant.host=localhost \
--fineract.tenant.port=5432 \
--fineract.tenant.username=root \
--fineract.tenant.password=postgres" &
BACKEND_PID=$!
echo $BACKEND_PID > backend.pid
# Wait for Actuator to come up (adjust host/port/path if needed)
ACTUATOR_URL="https://localhost:8443/fineract-provider/actuator/health"
TIMEOUT_SECONDS=600
INTERVAL_SECONDS=2
echo "Waiting for backend Actuator: $ACTUATOR_URL (timeout ${TIMEOUT_SECONDS}s)..."
start_ts=$(date +%s)
while true; do
# If the process died, fail fast
if ! kill -0 "$BACKEND_PID" 2>/dev/null; then
echo "Backend process exited before Actuator became available."
exit 1
fi
# Check endpoint
if curl -kfsS "$ACTUATOR_URL" >/dev/null 2>&1; then
echo "Actuator is up."
break
fi
# Timeout
now_ts=$(date +%s)
if [ $((now_ts - start_ts)) -ge "$TIMEOUT_SECONDS" ]; then
echo "Timed out waiting for Actuator."
exit 1
fi
sleep "$INTERVAL_SECONDS"
done
- name: Stop backend
run: |
kill $(cat backend.pid)
sleep 10
+30 -1
View File
@@ -10,11 +10,40 @@ build
*.iml
*.ipr
*.iws
*.swp
*.DS_Store
.idea
.vscode
catalina.base_IS_UNDEFINED/
keystore.jks
bin/
fineract-provider/src/main/resources/application.properties
.lock
fineract-provider/out/
fineract-provider/config/swagger/config.json
fineract-provider/config/swagger/fineract-input.yaml
licenses
**/.asciidoctor/images/*
**/.asciidoctor/diagram/*
**/images/diag-*.svg
fineract-provider/src/main/generated/
**/out/
gradleExp/
.run/
.java-version
.windsurf/
# Application logs
fineract-provider/logs/
logs/
# Output of a local `gradlew devRun`
devrun.log
# JVM crash dumps. The dev setup runs Fineract, the Angular dev server and Gradle on one
# machine, so an out-of-memory kill drops these in the repo root.
hs_err_pid*.log
replay_pid*.log
-42
View File
@@ -1,42 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# https://www.gitpod.io
# https://www.gitpod.io/docs/41_Config_Gitpod_File/
# https://github.com/gitpod-io/workspace-images/tree/master/mysql
image: gitpod/workspace-mysql
ports:
- port: 3306
onOpen: ignore
- port: 8005
onOpen: ignore
- port: 8009
onOpen: ignore
- port: 8080
- port: 8081
onOpen: ignore
- port: 8443
tasks:
- command: |
# NB MySQL on GitPod.io is currently quite slow.
# similar to .travis.yml, but using authentication_string= instead of password= due to mysql major version difference
mysql -e "USE mysql;\nUPDATE user SET authentication_string=PASSWORD('mysql') WHERE user='root';\nFLUSH PRIVILEGES;\n"
./gradlew createDB -PdbName=fineract_tenants
./gradlew createDB -PdbName=fineract_default
./gradlew build -x test
+39
View File
@@ -0,0 +1,39 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# .mailmap unifies differences in commit names and emails, and shortens committers' names.
# .mailmap format is a bit weird, e.g. https://github.com/sympy/sympy/wiki/Using-.mailmap explains it.
# .mailmap official doc is on https://git-scm.com/docs/git-shortlog#_mapping_authors
#
# Running `git log --format='%an <%ae>' | sort -u` -VS- `git log --format='%aN <%aE>' | sort -u` best illustrates what this does.
# It's useful e.g. in `git log` or `git shortlog --numbered --email --no-merges 1.4.0..HEAD` et al.
Michael <mike@vorburger.ch>
Michael <mike@vorburger.ch> Michael Vorburger ⛑️ <vorburger@apache.org>
Petri <petri@tuomola.org>
Petri <petri@tuomola.org> Petri Tuomola <ptuomola@users.noreply.github.com>
Renovate <bot@renovateapp.com>
Aleks <aleks@apache.org>
Aleks <aleks@apache.org> Aleksandar Vidakovic <vidakovic@users.noreply.github.com>
Aleks <aleks@apache.org> Aleksandar Vidakovic <cheetah@monkeysintown.com>
Manthan <manthan.surkar@gmail.com>
Manthan <manthan.surkar@gmail.com> Manthan Surkar <42006277+thesmallstar@users.noreply.github.com>
Chinmay <chinmaykulkarni8@gmail.com>
Chinmay <chinmaykulkarni8@gmail.com> Grandolf49 <chinmaykulkarni8@gmail.com>
Chinmay <chinmaykulkarni8@gmail.com> Chinmay Kulkarni <30969403+Grandolf49@users.noreply.github.com>
Vincent Fuchs <vincent.fuchs@gefa.de>
Vincent Fuchs <vincent.fuchs@gefa.de> Vincent Fuchs <vincent.fuchs@gmail.com>
+64
View File
@@ -0,0 +1,64 @@
{
"jfrConfig": {
"settings": "profile"
},
"asyncProfilerConfig": {
"jfrsync": true,
"alloc": true,
"event": "wall",
"misc": ""
},
"file": "$PROJECT_DIR/profile.jfr",
"conversionConfig": {
"nonProjectPackagePrefixes": [
"java.",
"javax.",
"kotlin.",
"jdk.",
"com.google.",
"org.apache.",
"org.spring.",
"sun.",
"scala."
],
"enableMarkers": true,
"initialVisibleThreads": 10,
"initialSelectedThreads": 10,
"includeGCThreads": false,
"includeInitialSystemProperty": false,
"includeInitialEnvironmentVariables": false,
"includeSystemProcesses": false,
"ignoredEvents": [
"jdk.ActiveSetting",
"jdk.ActiveRecording",
"jdk.BooleanFlag",
"jdk.IntFlag",
"jdk.DoubleFlag",
"jdk.LongFlag",
"jdk.NativeLibrary",
"jdk.StringFlag",
"jdk.UnsignedIntFlag",
"jdk.UnsignedLongFlag",
"jdk.InitialSystemProperty",
"jdk.InitialEnvironmentVariable",
"jdk.SystemProcess",
"jdk.ModuleExport",
"jdk.ModuleRequire"
],
"minRequiredItemsPerThread": 3
},
"additionalGradleTargets": [
{
"targetPrefix": "quarkus",
"optionForVmArgs": "-Djvm.args",
"description": "Example quarkus config, adding profiling arguments via -Djvm.args option to the Gradle task run"
}
],
"additionalMavenTargets": [
{
"targetPrefix": "quarkus:",
"optionForVmArgs": "-Djvm.args",
"description": "Example quarkus config, adding profiling arguments via -Djvm.args option to the Maven goal run"
}
]
}
+33
View File
@@ -0,0 +1,33 @@
{
"permissions": {
"allow": [
"Bash(type *)",
"mcp__idea__get_symbol_info",
"Bash(gradlew *)",
"Bash(select-string *)",
"Bash(select-object *)",
"Bash(dir *)",
"Bash(findstr *)",
"Bash(./gradlew *)",
"Bash(gradlew.bat *)",
"Bash(taskkill *)",
"Bash(timeout *)",
"Bash(.\\gradlew.bat *)",
"Bash(get-content *)",
"Bash(tasklist)",
"Bash(curl *)",
"Bash(netstat *)",
"Bash(curl.exe *)",
"Bash(rmdir *)",
"mcp__idea__build_project",
"Bash(.\\gradlew *)",
"Bash(.\\clean_build.bat)",
"mcp__idea__find_files_by_name_keyword",
"mcp__idea__search_in_files_by_text",
"mcp__idea__get_file_text_by_path",
"mcp__idea__search_in_files_by_regex",
"Bash(powershell *)"
]
},
"$version": 3
}
+7
View File
@@ -0,0 +1,7 @@
{
"permissions": {
"allow": [
"Bash(type *)"
]
}
}
+1 -1
View File
@@ -5,4 +5,4 @@
"**/.settings": true,
"**/.factorypath": true
}
}
}
-78
View File
@@ -1,78 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
# https://docs.travis-ci.com/user/reference/linux/
# Must use a fixed distribution (and remember to occassionally upgrade..)
# to avoid surprise changes such as https://issues.apache.org/jira/browse/FINERACT-763
dist: bionic
language: generic
services:
- mysql
- docker
addons:
apt:
packages:
# https://httpie.org is used by the docker-compose test below
- httpie
# See https://issues.apache.org/jira/browse/FINERACT-937 for background re. what below is all about..
# We basically remove the outdated OpenJDK 11.0.2 which Travis image grabbed from java.net in
# https://github.com/travis-ci/travis-cookbooks/blob/master/cookbooks/travis_jdk/files/install-jdk.sh#L200
# (which has 11.0.2 hard-coded!), and instead replace it with the latest openjdk-11-jdk-headless Ubuntu package.
# NB /usr/local/lib/jvm/openjdk11/bin is also on the PATH, but there's no need to change it (because we rm -rf anyway)
before_install:
- echo $JAVA_HOME
- which java
- sudo rm -rf /usr/local/lib/jvm/
- sudo apt-get install -y openjdk-11-jdk-headless
- export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
- which java
- java -version
- $JAVA_HOME/bin/java -version
- echo "USE mysql;\nALTER USER 'root'@'localhost' IDENTIFIED BY 'mysql';\n" | mysql -u root
- mysql -u root -pmysql -e 'CREATE DATABASE IF NOT EXISTS `fineract_tenants`;'
- mysql -u root -pmysql -e 'CREATE DATABASE IF NOT EXISTS `fineract_default`;'
# Hardcoding the time zone is a temporary fix for https://issues.apache.org/jira/browse/FINERACT-723
- export TZ=Asia/Kolkata
# https://docs.travis-ci.com/user/languages/java/#caching
before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- $HOME/.m2
# NOTE: We used to run with --info, which is quite a bit more verbose, but is VERY useful to understand failures on Travis,
# where you do not have access to any files like build/reports/tests/index.html, only the Console.
# @see http://mrhaki.blogspot.ch/2013/05/gradle-goodness-show-more-information.html
# @see http://forums.gradle.org/gradle/topics/whats_new_in_gradle_1_1_test_logging for alternative
# https://jira.apache.org/jira/browse/FINERACT-732 removed that again, because it made Travis CI fail.
script:
- date
# using "&&" instead of several "-" means that integrationTest does not run if test fails,
# and Docker test does not run if integration test fails, which makes PR failure easier to understand.
# @see https://docs.travis-ci.com/user/job-lifecycle/#customizing-the-build-phase
- ./gradlew --console=plain licenseMain licenseTest licenseIntegrationTest check && ./gradlew --console=plain integrationTest --fail-fast && sudo service mysql stop && docker-compose build && docker-compose up -d && sleep 30s && http --verify=no --timeout 240 --check-status get https://localhost:8443/fineract-provider/actuator/health && (( $(http --verify=no --timeout 30 --check-status --body get https://localhost:8443/fineract-provider/actuator/info | wc --chars) > 100 ))
# We stop the mysql system service when running the Docker test to avoid port 3306 conflicts (unless we run the mysql in docker-compose on another port; req. FINERACT-773)
# The fany /actuator/info test makes sure that has more than 100 characters of JSON to test that the git.properties worked (see FINERACT-983)
+1 -1
View File
@@ -13,4 +13,4 @@ software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
under the License.
@@ -0,0 +1,365 @@
{
"info": {
"name": "CBS — CIN & DIN Verification (LincPay eKYC)",
"description": "Postman collection for CIN (Company Identification Number) and DIN (Director Identification Number) verification via the CBS Fineract KYC module.\n\nFlow:\n1. Create/update a KYC record with cinNumber and/or dinNumber\n2. Trigger verify-cin or verify-din command\n3. The backend calls LincPay eKYC API (validate-company / validate-director)\n4. On success, cinVerified/dinVerified flags are set on the KYC record",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"variable": [
{
"key": "base_url",
"value": "https://localhost:8443/fineract-provider/api/v1",
"description": "Fineract API base URL"
},
{
"key": "tenant_id",
"value": "default",
"description": "Tenant identifier"
},
{
"key": "username",
"value": "mifos",
"description": "API username"
},
{
"key": "password",
"value": "password",
"description": "API password"
},
{
"key": "client_id",
"value": "1",
"description": "Client ID for KYC operations"
},
{
"key": "kyc_id",
"value": "1",
"description": "KYC record ID"
},
{
"key": "cin_number",
"value": "U12345MH2020PTC123456",
"description": "21-character CIN for company verification"
},
{
"key": "din_number",
"value": "12345678",
"description": "8-digit DIN for director verification"
}
],
"auth": {
"type": "basic",
"basic": [
{ "key": "username", "value": "{{username}}", "type": "string" },
{ "key": "password", "value": "{{password}}", "type": "string" }
]
},
"item": [
{
"name": "1. Initiate KYC with CIN & DIN",
"item": [
{
"name": "Initiate KYC (Non-Individual with CIN & DIN)",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test('Status code is 200', function () {",
" pm.response.to.have.status(200);",
"});",
"",
"pm.test('KYC record created', function () {",
" var json = pm.response.json();",
" pm.expect(json).to.have.property('resourceId');",
" pm.collectionVariables.set('kyc_id', json.resourceId);",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Content-Type", "value": "application/json" },
{ "key": "Fineract-Platform-TenantId", "value": "{{tenant_id}}" }
],
"body": {
"mode": "raw",
"raw": "{\n \"kycType\": 2,\n \"riskCategory\": 2,\n \"panNumber\": \"ABCDE1234F\",\n \"gstinNumber\": \"27ABCDE1234F1Z5\",\n \"cinNumber\": \"{{cin_number}}\",\n \"dinNumber\": \"{{din_number}}\",\n \"remarks\": \"Non-individual KYC with CIN and DIN\"\n}"
},
"url": {
"raw": "{{base_url}}/clients/{{client_id}}/kyc",
"host": ["{{base_url}}"],
"path": ["clients", "{{client_id}}", "kyc"]
},
"description": "Initiate a KYC record for a non-individual client with CIN and DIN numbers.\n\n- kycType: 2 = NON_INDIVIDUAL\n- riskCategory: 1=LOW, 2=MEDIUM, 3=HIGH\n- cinNumber: 21-character Corporate Identification Number\n- dinNumber: 8-digit Director Identification Number"
},
"response": []
},
{
"name": "Update KYC — Add CIN & DIN",
"request": {
"method": "PUT",
"header": [
{ "key": "Content-Type", "value": "application/json" },
{ "key": "Fineract-Platform-TenantId", "value": "{{tenant_id}}" }
],
"body": {
"mode": "raw",
"raw": "{\n \"cinNumber\": \"{{cin_number}}\",\n \"dinNumber\": \"{{din_number}}\"\n}"
},
"url": {
"raw": "{{base_url}}/clients/{{client_id}}/kyc/{{kyc_id}}",
"host": ["{{base_url}}"],
"path": ["clients", "{{client_id}}", "kyc", "{{kyc_id}}"]
},
"description": "Update an existing KYC record to add CIN and/or DIN numbers before triggering verification."
},
"response": []
}
],
"description": "Create or update a KYC record with CIN and DIN numbers before triggering verification."
},
{
"name": "2. CIN Verification (Company)",
"item": [
{
"name": "Verify CIN — Trigger LincPay validate-company",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test('Status code is 200', function () {",
" pm.response.to.have.status(200);",
"});",
"",
"pm.test('CIN verified successfully', function () {",
" var json = pm.response.json();",
" pm.expect(json.changes).to.have.property('cinVerified');",
" pm.expect(json.changes.cinVerified).to.be.true;",
"});",
"",
"pm.test('cinVerifiedOn date is set', function () {",
" var json = pm.response.json();",
" pm.expect(json.changes).to.have.property('cinVerifiedOn');",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Content-Type", "value": "application/json" },
{ "key": "Fineract-Platform-TenantId", "value": "{{tenant_id}}" }
],
"body": {
"mode": "raw",
"raw": "{}"
},
"url": {
"raw": "{{base_url}}/clients/{{client_id}}/kyc/{{kyc_id}}?command=verify-cin",
"host": ["{{base_url}}"],
"path": ["clients", "{{client_id}}", "kyc", "{{kyc_id}}"],
"query": [
{ "key": "command", "value": "verify-cin" }
]
},
"description": "Trigger CIN verification via LincPay MCA API.\n\n**Backend flow:**\n1. Reads cinNumber from the KYC record\n2. Calls LincPay: POST https://ekyc.lincpay.in/EKYC/ekyc/validate-company\n Body: { \"apiKey\": \"...\", \"cin\": \"U12345MH2020PTC123456\", \"secretKey\": \"...\" }\n3. On success: marks cinVerified=true, cinVerifiedOn=today\n4. On failure: returns error with vendor message\n\n**Prerequisites:**\n- KYC record must exist with a cinNumber set\n- KYC must not be in REJECTED status"
},
"response": [
{
"name": "200 — CIN Verified Successfully",
"originalRequest": {
"method": "POST",
"header": [],
"body": { "mode": "raw", "raw": "{}" },
"url": { "raw": "{{base_url}}/clients/1/kyc/1?command=verify-cin" }
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"body": "{\n \"officeId\": 1,\n \"clientId\": 1,\n \"resourceId\": 1,\n \"changes\": {\n \"cinVerified\": true,\n \"cinVerifiedOn\": [2026, 4, 3],\n \"kycStatus\": 200\n }\n}"
},
{
"name": "400 — CIN Not Set",
"status": "Bad Request",
"code": 400,
"_postman_previewlanguage": "json",
"body": "{\n \"developerMessage\": \"CIN number is not set on this KYC record. Update the KYC record first.\",\n \"httpStatusCode\": \"503\",\n \"defaultUserMessage\": \"CIN number is not set on this KYC record. Update the KYC record first.\",\n \"userMessageGlobalisationCode\": \"error.msg.client.kyc.cin.not.found\"\n}"
}
]
},
{
"name": "Direct LincPay CIN API (for testing)",
"request": {
"method": "POST",
"header": [
{ "key": "Content-Type", "value": "application/json" },
{ "key": "accept", "value": "*/*" }
],
"body": {
"mode": "raw",
"raw": "{\n \"apiKey\": \"YOUR_API_KEY\",\n \"cin\": \"{{cin_number}}\",\n \"secretKey\": \"YOUR_SECRET_KEY\"\n}"
},
"url": {
"raw": "https://ekyc.lincpay.in/EKYC/ekyc/validate-company",
"protocol": "https",
"host": ["ekyc", "lincpay", "in"],
"path": ["EKYC", "ekyc", "validate-company"]
},
"description": "Direct call to LincPay validate-company API for testing.\nReplace apiKey and secretKey with actual credentials."
},
"response": []
}
],
"description": "CIN (Corporate Identification Number) verification flow. CIN is a 21-character alphanumeric code allotted by MCA to companies registered under the Companies Act."
},
{
"name": "3. DIN Verification (Director)",
"item": [
{
"name": "Verify DIN — Trigger LincPay validate-director",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test('Status code is 200', function () {",
" pm.response.to.have.status(200);",
"});",
"",
"pm.test('DIN verified successfully', function () {",
" var json = pm.response.json();",
" pm.expect(json.changes).to.have.property('dinVerified');",
" pm.expect(json.changes.dinVerified).to.be.true;",
"});",
"",
"pm.test('dinVerifiedOn date is set', function () {",
" var json = pm.response.json();",
" pm.expect(json.changes).to.have.property('dinVerifiedOn');",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{ "key": "Content-Type", "value": "application/json" },
{ "key": "Fineract-Platform-TenantId", "value": "{{tenant_id}}" }
],
"body": {
"mode": "raw",
"raw": "{}"
},
"url": {
"raw": "{{base_url}}/clients/{{client_id}}/kyc/{{kyc_id}}?command=verify-din",
"host": ["{{base_url}}"],
"path": ["clients", "{{client_id}}", "kyc", "{{kyc_id}}"],
"query": [
{ "key": "command", "value": "verify-din" }
]
},
"description": "Trigger DIN verification via LincPay MCA API.\n\n**Backend flow:**\n1. Reads dinNumber from the KYC record\n2. Calls LincPay: POST https://ekyc.lincpay.in/EKYC/ekyc/validate-director\n Body: { \"apiKey\": \"...\", \"din\": \"12345678\", \"secretKey\": \"...\" }\n3. On success: marks dinVerified=true, dinVerifiedOn=today\n4. On failure: returns error with vendor message\n\n**Prerequisites:**\n- KYC record must exist with a dinNumber set\n- KYC must not be in REJECTED status"
},
"response": [
{
"name": "200 — DIN Verified Successfully",
"originalRequest": {
"method": "POST",
"header": [],
"body": { "mode": "raw", "raw": "{}" },
"url": { "raw": "{{base_url}}/clients/1/kyc/1?command=verify-din" }
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"body": "{\n \"officeId\": 1,\n \"clientId\": 1,\n \"resourceId\": 1,\n \"changes\": {\n \"dinVerified\": true,\n \"dinVerifiedOn\": [2026, 4, 3],\n \"kycStatus\": 200\n }\n}"
},
{
"name": "400 — DIN Not Set",
"status": "Bad Request",
"code": 400,
"_postman_previewlanguage": "json",
"body": "{\n \"developerMessage\": \"DIN number is not set on this KYC record. Update the KYC record first.\",\n \"httpStatusCode\": \"503\",\n \"defaultUserMessage\": \"DIN number is not set on this KYC record. Update the KYC record first.\",\n \"userMessageGlobalisationCode\": \"error.msg.client.kyc.din.not.found\"\n}"
}
]
},
{
"name": "Direct LincPay DIN API (for testing)",
"request": {
"method": "POST",
"header": [
{ "key": "Content-Type", "value": "application/json" },
{ "key": "accept", "value": "*/*" }
],
"body": {
"mode": "raw",
"raw": "{\n \"apiKey\": \"YOUR_API_KEY\",\n \"din\": \"{{din_number}}\",\n \"secretKey\": \"YOUR_SECRET_KEY\"\n}"
},
"url": {
"raw": "https://ekyc.lincpay.in/EKYC/ekyc/validate-director",
"protocol": "https",
"host": ["ekyc", "lincpay", "in"],
"path": ["EKYC", "ekyc", "validate-director"]
},
"description": "Direct call to LincPay validate-director API for testing.\nReplace apiKey and secretKey with actual credentials."
},
"response": []
}
],
"description": "DIN (Director Identification Number) verification flow. DIN is an 8-digit unique number allotted by MCA to company directors."
},
{
"name": "4. Get KYC Record",
"item": [
{
"name": "Get KYC Record (check CIN/DIN verification status)",
"event": [
{
"listen": "test",
"script": {
"exec": [
"pm.test('Status code is 200', function () {",
" pm.response.to.have.status(200);",
"});",
"",
"pm.test('CIN fields present', function () {",
" var json = pm.response.json();",
" pm.expect(json).to.have.property('cinNumber');",
" pm.expect(json).to.have.property('cinVerified');",
"});",
"",
"pm.test('DIN fields present', function () {",
" var json = pm.response.json();",
" pm.expect(json).to.have.property('dinNumber');",
" pm.expect(json).to.have.property('dinVerified');",
"});"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{ "key": "Fineract-Platform-TenantId", "value": "{{tenant_id}}" }
],
"url": {
"raw": "{{base_url}}/clients/{{client_id}}/kyc/{{kyc_id}}",
"host": ["{{base_url}}"],
"path": ["clients", "{{client_id}}", "kyc", "{{kyc_id}}"]
},
"description": "Retrieve the KYC record to verify CIN/DIN verification status after running the verify commands."
},
"response": []
}
]
}
]
}
+5
View File
@@ -0,0 +1,5 @@
This project follows
[the Apache Software Foundation (ASF) Code of Conduct](https://www.apache.org/foundation/policies/conduct.html).
Violations of the code of conduct may be reported directly the to ASF or
the Apache Fineract's Project Management Committee at private@fineract.apache.org.
+296
View File
@@ -0,0 +1,296 @@
# Contributing
Hello there!
First of all, **Thank You** for contributing to Apache Fineract! We are grateful for your interest in this project.
Please join the [developer mailing list](https://fineract.apache.org/#contribute), if you have not already done so, as this is where discussions about this project take place - say _Hi_ there! Please also have a quick look at the [Code of Conduct](CODE_OF_CONDUCT.md).
The [JIRA Dashboard](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12335824) shows what's going on. Create a login - it can take a day or two. If you face difficulties, ask on the mailing list.
You don't need to be a committer to provide pull requests, but [Becoming a Committer](https://cwiki.apache.org/confluence/display/FINERACT/Becoming+a+Committer) explains the process of becoming one - just in case...
## Developer How To's
### How to run tests
#### Unit tests
Here's how to run the set of relatively fast and independent Fineract tests:
```bash
./gradlew test -x :twofactor-tests:test -x :oauth2-tests:test -x :integration-tests:test
```
This runs nearly 1,000 tests and completes in a few minutes on decent hardware.
They shouldn't need any special servers/services running.
#### Integration tests
Running tests with external dependencies is a multi-step process with many moving parts.
Sometimes there are arbitrary failures and the prerequisite setup can be daunting.
A full local integration test run (on a developer workstation) covering every possible test using every external service and every supported relational database engine could take an entire day - and that's assuming everything is properly configured and runs as expected.
Right now we depend on GitHub to know if "the build" is passing (it's actually multiple builds).
The authoritative source of truth for what commands/services/tests to run, how, and when are the files in `.github/workflows/`.
Output from runs based on those configuration files appears at <https://github.com/apache/fineract/actions>.
Incorrect default Java-related executables may cause test failures.
To fix this on Debian and Ubuntu systems, run the following:
```bash
export JAVA_HOME=/usr/lib/jvm/zulu21
sudo update-alternatives --set java $JAVA_HOME/bin/java
sudo update-alternatives --set javac $JAVA_HOME/bin/javac
sudo update-alternatives --set javadoc $JAVA_HOME/bin/javadoc
```
This would correct, for example, a [class file version error](https://en.wikipedia.org/wiki/Java_class_file#General_layout).
You might see something like this if a Java 11 executable (class file format version 56) was the system default, but the integration tests were using Java 21 (class file format version 65):
> UnsupportedClassVersionError: com.example.package/ClassName has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 55.0
The GitHub builds are run in [short-lived virtual machines](https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners), so locally reproducing the same may require additional effort, such as these extra clean-up procedures:
```bash
# Might fix `error: cannot find symbol` or other intermittent failures.
# `doc` here is a placeholder for any task(s) you are trying to run.
# 💚 This is generally very safe to run between builds.
./gradlew --refresh-dependencies doc
# Destroy anything untracked by git.
# ⚠️ This may delete something important, e.g. a finely-tuned IDE configuration.
git clean --force -dx
# Destroy various caches and configs.
# ⚠️ This may delete gibibytes of cached data, making the next build very slow.
rm -rf ~/.gradle ~/.m2 /tmp/cargo*
# Destroy any Java containers left running.
# 💚 This is generally very safe to run between builds.
ps auxwww | grep [c]argo | awk '{ print $2 }' | xargs -r kill
```
Integration test runs such as
```bash
./gradlew --no-daemon --console=plain test -x :twofactor-tests:test \
-x :oauth2-tests:test :fineract-e2e-tests-runner:test -PdbType=postgresql
```
in `.github/workflows/build-postgresql.yml` often take an hour or longer to complete.
If you notice the `:integration-tests:test` task taking significantly less time, say, one minute, gradle may be skipping it.
Look for something like this in the test output:
> Task :integration-tests:test UP-TO-DATE 👀
Custom actions are attached to task ':integration-tests:test'.
Build cache key for task ':integration-tests:test' is 6aeeec3f58bf9703d4c100fbaa657f5c
Skipping task ':integration-tests:test' as it is up-to-date.
Resolve mutations for :integration-tests:cargoStopLocal (Thread[Execution worker Thread 11,5,main]) started.
:integration-tests:cargoStopLocal (Thread[Execution worker Thread 11,5,main]) started.
(This is with the `--info` gradle argument with eyeballs added for emphasis.)
The `--rerun-tasks` gradle argument may help, or you can try destroying `~/.gradle` and other clean-up procedures as indicated above, then re-running tests.
This is useful for repeated test runs (say, for timing) when gradle would otherwise assume a task is "up-to-date" and not re-run it.
See the next section for testing in Eclipse and [here](https://fineract-academy.com) for testing in IntelliJ.
## Recommended IDEs
Apache Fineract can be developed using multiple IDEs. The most commonly used and supported IDEs are:
- **Eclipse IDE** – Fully supported and commonly used within the community.
- **IntelliJ IDEA (Community or Ultimate)** – Recommended for most developers due to excellent Gradle support and debugging experience.
The sections below provide setup guidance for each IDE.
### How to run and debug in Eclipse IDE
It is possible to run Fineract in Eclipse IDE and also to debug Fineract using Eclipse's debugging facilities.
To do this, you need to create the Eclipse project files and import the project into an Eclipse workspace:
1. Create Eclipse project files into the Fineract project by running `./gradlew cleanEclipse eclipse`
2. Import the fineract-provider project into your Eclipse workspace (File->Import->General->Existing Projects into Workspace, choose root directory fineract/fineract-provider)
3. Do a clean build of the project in Eclipse (Project->Clean...)
3. Run / debug Fineract by right clicking on org.apache.fineract.ServerApplication class and choosing Run As / Debug As -> Java Application. All normal Eclipse debugging features (breakpoints, watchpoints etc) should work as expected.
If you change the project settings (dependencies etc) in Gradle, you should redo step 1 and refresh the project in Eclipse.
You can also use Eclipse JUnit support to run tests in Eclipse (Run As->JUnit Test)
Finally, modifying source code in Eclipse automatically triggers hot code replace to a running instance, allowing you to immediately test your changes
## How to run and debug in IntelliJ IDEA
IntelliJ IDEA provides strong Gradle integration and is recommended for most new contributors.
### Prerequisites
- IntelliJ IDEA (Community Edition is sufficient)
- Java 21 (as required by Fineract)
- Gradle (wrapper included in the repository)
### Steps
1. Open IntelliJ IDEA and select **Open**
2. Choose the root `fineract` directory
3. When prompted, import the project as a **Gradle project**
4. Use the Gradle wrapper (`gradlew`) when asked
5. Ensure the correct JDK is selected (**Java 21**)
6. After import completes, run:
- `org.apache.fineract.ServerApplication` as a **Java Application**
### Notes
- IntelliJ may take several minutes to index the project on first open
- If you encounter build issues, try running `./gradlew clean build` from the terminal
How to download Gradle wrapper
---
The file gradle/wrapper/gradle-wrapper.jar binary is checked into this projects Git source repository,
but won't exist in your copy of the Fineract codebase if you downloaded a released source archive from apache.org.
In that case, you need to download it using the commands below:
```bash
wget -P gradle/wrapper https://github.com/apache/fineract/raw/develop/gradle/wrapper/gradle-wrapper.jar
```
or
```bash
curl -L https://github.com/apache/fineract/raw/develop/gradle/wrapper/gradle-wrapper.jar > \
gradle/wrapper/gradle-wrapper.jar
```
### How to run Apache RAT (Release Audit Tool)
1. Extract the archive file to your local directory.
2. Run `./gradlew rat`. A report will be generated under build/reports/rat/rat-report.txt
### How to build documentation
Run the following command:
```bash
./gradlew doc
```
Some dependencies are required (e.g. Ghostscript, Graphviz), see [.github/workflows/build-documentation.yml](https://github.com/apache/fineract/tree/develop/.github/workflows/build-documentation.yml) for hints.
IDEs such as IntelliJ are useful for editing the AsciiDoc source files while providing a live rendered preview.
HTML rendered from the AsciiDoc source files is also available online at [https://fineract.apache.org/docs/current/](https://fineract.apache.org/docs/current/).
## How We Code
### Checkstyle and Spotless
This project enforces its code conventions using [checkstyle.xml](config/checkstyle/checkstyle.xml) through Checkstyle and [fineractdev-formatter.xml](config/fineractdev-formatter.xml) through Spotless. They are configured to run automatically during the normal Gradle build, and fail if there are any violations detected. You can run the following command to automatically fix spotless violations:
```bash
./gradlew spotlessApply
```
Since some checks are present in both Checkstyle and Spotless, the same command can help you fix some of the Checkstyle violations too.
You can also check solely for Spotless violations, but normally don't have to, because regular builds already include this:
```bash
./gradlew spotlessCheck
```
We recommend that you configure your favourite Java IDE to match those conventions. For Eclipse, you can go to
Window > Java > Code Style and import the aforementioned [config/fineractdev-formatter.xml](config/fineractdev-formatter.xml) under formatter section and [config/fineractdev-cleanup.xml](config/fineractdev-cleanup.xml) under cleanup section.
You could also use Checkstyle directly in your IDE, but you don't have to: it may just be more convenient for you. For Eclipse, use https://checkstyle.org/eclipse-cs/ and load our checkstyle.xml into it. For IntelliJ you can use [CheckStyle-IDEA](https://plugins.jetbrains.com/plugin/1065-checkstyle-idea).
### Code Coverage
Changed or added code should ideally have test coverage.
The project uses Jacoco to measure unit tests code coverage. To generate a report run the following command:
```bash
./gradlew clean build jacocoTestReport
```
Generated reports can be found in the build/code-coverage directory.
### Lombok
The project uses [Lombok](https://projectlombok.org/) to reduce boilerplate code. Configuration is in [lombok.config](lombok.config).
* Use `@Getter` / `@Setter` / `@NoArgsConstructor` on JPA entities. Never use `@Data` on entities (causes JPA lazy loading issues).
* Use `@RequiredArgsConstructor` on service classes for constructor-based dependency injection.
* Use `@Slf4j` for logging instead of manually declaring loggers.
* Use `@Data` for simple DTOs (includes getters, setters, toString, equals, hashCode).
* Use `@Builder` with `@Builder.Default` for configuration classes and complex object construction.
* Never use `@SneakyThrows` - handle exceptions explicitly.
### Error Handling
* When catching exceptions, either rethrow them, or log them. Either way, include the root cause by using `catch (SomeException e)` and then either `throw AnotherException("..details..", e)` or `LOG.error("...context...", e)`.
* Completely empty catch blocks are VERY suspicious. Are you sure that you want to just "swallow" an exception? Really, 100% totally absolutely sure?? ;-) Such "normal exceptions which just happen sometimes but are actually not really errors" are almost always a bad idea, can be a performance issue, and typically are an indication of another problem - e.g. the use of a wrong API which throws an Exception for an expected condition, when really you would want to use another API that instead returns something empty or optional.
* In tests, you'll typically never catch exceptions, but just propagate them, with `@Test void testXYZ() throws SomeException, AnotherException`..., so that the test fails if the exception happens. Unless you actually really want to test for the occurrence of a problem - in that case, use [JUnit's Assert.assertThrows()](https://github.com/junit-team/junit4/wiki/Exception-testing) (but not `@Test(expected = SomeException.class)`).
* Never catch `NullPointerException` & Co.
### Logging
* We use [SLF4J](http://www.slf4j.org) as our logging API.
* Never, ever, use `System.out` and `System.err` or `printStackTrace()` anywhere, but always `LOG.info()` or `LOG.error()` instead.
* Use placeholder (`LOG.error("Could not... details: {}", something, exception)`) and never String concatenation (`LOG.error("Could not... details: " + something, exception)`)
* Which Log Level is appropriate?
* `LOG.error()` should be used to inform an "operator" running Fineract who supervises error logs of an unexpected condition. This includes technical problems with an external "environment" (e.g. can't reach a database), and situations which are likely bugs which need to be fixed in the code. They do NOT include e.g. validation errors for incoming API requests - that is signaled through the API response - and does (should) not be logged as an error. (Note that there is no _FATAL_ level in SLF4J; a "FATAL" event should just be logged as an _ERROR_.)
* `LOG.warn()` should be using sparingly. Make up your mind if it's an error (above) - or not!
* `LOG.info()` can be used notably for one-time actions taken during start-up. It should typically NOT be used to print out "regular" application usage information. The default logging configuration always outputs the application INFO logs, and in production under load, there's really no point to constantly spew out lots of information from frequently traversed paths in the code about what's going on. (Metrics are a better way.) `LOG.info()` *can* be used freely in tests though.
* `LOG.debug()` can be used anywhere in the code to log things that may be useful during investigations of specific problems. They are not shown in the default logging configuration, but can be enabled for troubleshooting. Developers should typically "turn down" most `LOG.info()` which they used while writing a new feature to "follow along what happens during local testing" to `LOG.debug()` for production before we merge their PRs.
* `LOG.trace()` is not used in Fineract.
## Change Process
### Dependency Upgrades
This project uses a number of 3rd-party libraries. We have set up [Renovate's bot](https://github.com/renovatebot/github-action) to automatically raise Pull Requests for our review when new dependencies are available.
Our `ClasspathHellDuplicatesCheckRuleTest` detects classes that appear in more than 1 JAR. If a version bump in [build.gradle](https://github.com/apache/fineract/blob/develop/build.gradle) causes changes in transitives dependencies, then you may have to add related `exclude` to our [dependencies.gradle](https://github.com/apache/fineract/search?q=dependencies.gradle). Running `./gradlew dependencies` helps to understand what is required.
### Pull Requests
We request that your commit message includes a FINERACT JIRA issue and a one-liner that describes the changes.
Start with an upper case imperative verb (not past form), and a short but concise clear description. (E.g. "FINERACT-821: Add enforced HideUtilityClassConstructor checkstyle").
If your PR is failing to pass our CI build due to a test failure, then:
1. Understand if the failure is due to your PR or an unrelated unstable test.
1. If you suspect it is because of a "flaky" test, and not due to a change in your PR, then please do not simply wait for an active maintainer to come and help you, but instead be a proactive contributor to the project - see next steps. Do understand that we may not review PRs that are not green - it is the contributor's (that's you!) responsibility to get a proposed PR to pass the build, not primarily the maintainers.
1. Search for the name of the failed test on https://issues.apache.org/jira/, e.g. for `AccountingScenarioIntegrationTest` you would find [FINERACT-899](https://issues.apache.org/jira/browse/FINERACT-899).
1. If you happen to read in such bug reports that tests were just recently fixed, or ignored, then rebase your PR to pick up that change.
1. If you find previous comments "proving" that the same test has arbitrarily failed in at least 3 past PRs, then please do yourself raise a small separate new PR proposing to add an `@Disabled // TODO FINERACT-123` to the respective unstable test (e.g. [#774](https://github.com/apache/fineract/pull/774)) with the commit message mentioning said JIRA, as always. (Please do NOT just `@Disabled` any existing tests mixed in as part of your larger PR.)
1. If there is no existing JIRA for the test, then first please evaluate whether the failure couldn't be a (perhaps strange) impact of the change you are proposing after all. If it's not, then please raise a new JIRA to document the suspected Flaky Test, and link it to [FINERACT-850](https://issues.apache.org/jira/browse/FINERACT-850). This will allow the next person coming along hitting the same test failure to easily find it, and eventually propose to ignore the unstable test.
1. Then (only) Close and Reopen your PR, which will cause a new build, to see if it passes.
1. Of course, we very much appreciate you then jumping onto any such bugs and helping us figure out how to fix all ignored tests!
[Pull Request Size Limit](https://cwiki.apache.org/confluence/display/FINERACT/Pull+Request+Size+Limit)
documents that we cannot accept huge "code dump" Pull Requests, with some related suggestions.
Guideline for new Feature commits involving Refactoring: If you are submitting a PR for a new feature,
and it involves refactoring, try to differentiate "new feature code" from "refactored" by placing
them in different commits. This helps to review your code faster.
We have an automated bot which marks pull requests as "stale" after a while, and ultimately automatically closes them.
### Merge Strategy
This project's committers typically prefer to bring your pull requests in through _Rebase and Merge_ instead of _Create a Merge Commit_. (If you are unfamiliar with GitHub's UI regarding this, note the somewhat hidden little triangle drop-down at the bottom of the PR, visible only to committers, not contributors.) This avoids the "merge commits" which we consider to be somewhat "polluting" the project's commit log history view. We understand this doesn't give an easy automatic reference to the original PR (which GitHub automatically adds to the merge commit message it generates), but we consider this an only very minor inconvenience; it's typically relatively easy to find the original PR even just from the commit message, and JIRA.
We expect most proposed PRs to typically consist of a single commit. Committers may use _Squash and merge_ to combine your commits at merge time, and if they do so, will rewrite your commit message as they see fit.
Neither of these two are hard absolute rules, but mere conventions. Multiple commits in single PRs make sense in certain cases (e.g. branch backports).
### Signing Your Commits
We encourage contributors to sign commits with GPG keys. Signed commits show a "Verified" badge on GitHub.
For GPG setup instructions, see the [Fineract GPG Guide](https://fineract.apache.org/docs/current/#_gpg_2).
To verify your commits locally before pushing:
```bash
./scripts/verify-signed-commits.sh
```
+168
View File
@@ -0,0 +1,168 @@
# SavingsProduct Custom Fields - Implementation Summary
## ✅ Completed Changes
### 1. **Validator Updates**
**File:** `fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsProductDataValidator.java`
**Changes:**
- Added `balanceFrequency` to `SAVINGS_PRODUCT_REQUEST_DATA_PARAMETERS` whitelist
- Added `accountClosedZeroBalanceInDayClosing` to `SAVINGS_PRODUCT_REQUEST_DATA_PARAMETERS` whitelist
### 2. **API Constants**
**File:** `fineract-core/src/main/java/org/apache/fineract/portfolio/savings/SavingsApiConstants.java`
**Changes:**
```java
public static final String balanceFrequencyParamName = "balanceFrequency";
public static final String accountClosedZeroBalanceInDayClosingParamName = "accountClosedZeroBalanceInDayClosing";
```
### 3. **Entity (Domain Model)**
**File:** `fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProduct.java`
**Changes:**
- Added field: `@Column(name = "balance_frequency", length = 50) private String balanceFrequency;`
- Added field: `@Column(name = "account_closed_zero_balance_in_day_closing") private Boolean accountClosedZeroBalanceInDayClosing = false;`
- Added getters: `getBalanceFrequency()`, `getAccountClosedZeroBalanceInDayClosing()`
- Added setters: `setBalanceFrequency()`, `setAccountClosedZeroBalanceInDayClosing()`
- Added update logic in `update()` method to handle changes to these fields
### 4. **Assembler**
**File:** `fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductAssembler.java`
**Changes:**
```java
if (command.parameterExists("balanceFrequency")) {
product.setBalanceFrequency(command.stringValueOfParameterNamed("balanceFrequency"));
}
if (command.parameterExists("accountClosedZeroBalanceInDayClosing")) {
product.setAccountClosedZeroBalanceInDayClosing(command.booleanObjectValueOfParameterNamed("accountClosedZeroBalanceInDayClosing"));
}
```
### 5. **DTO (Data Transfer Object)**
**File:** `fineract-core/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsProductData.java`
**Changes:**
```java
@Getter @Setter private String balanceFrequency;
@Getter @Setter private Boolean accountClosedZeroBalanceInDayClosing;
```
### 6. **Read Platform Service**
**File:** `fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsProductReadPlatformServiceImpl.java`
**Changes:**
- SQL Query: Added `sp.balance_frequency as balanceFrequency`
- SQL Query: Added `sp.account_closed_zero_balance_in_day_closing as accountClosedZeroBalanceInDayClosing`
- ResultSet mapping: Added extraction of both fields
### 7. **Database Migration**
**File:** `database_migration_add_custom_fields.sql`
```sql
ALTER TABLE m_savings_product
ADD COLUMN balance_frequency VARCHAR(50) DEFAULT NULL,
ADD COLUMN account_closed_zero_balance_in_day_closing BOOLEAN DEFAULT FALSE;
```
---
## 📋 What These Fields Do
### **balanceFrequency** (String)
- **Purpose:** Defines how often balance is calculated/checked
- **Example Values:** "Daily", "Monthly", "Quarterly", "Yearly"
- **Database Column:** `m_savings_product.balance_frequency`
- **Type:** VARCHAR(50)
### **accountClosedZeroBalanceInDayClosing** (Boolean)
- **Purpose:** Flag to automatically close accounts when balance reaches zero at day end
- **Example Values:** `true` or `false`
- **Default:** `false`
- **Database Column:** `m_savings_product.account_closed_zero_balance_in_day_closing`
- **Type:** BOOLEAN
---
## 🎯 API Usage
### **POST /v1/savingsproducts** (Create)
```json
{
"name": "Saving Product",
"shortName": "SD22",
// ... other fields ...
"balanceFrequency": "Monthly",
"accountClosedZeroBalanceInDayClosing": true,
// ... rest of fields ...
}
```
### **GET /v1/savingsproducts/{productId}** (Read)
Response will include:
```json
{
"id": 1,
"name": "Saving Product",
// ... other fields ...
"balanceFrequency": "Monthly",
"accountClosedZeroBalanceInDayClosing": true,
// ... rest of fields ...
}
```
### **PUT /v1/savingsproducts/{productId}** (Update)
```json
{
"balanceFrequency": "Quarterly",
"accountClosedZeroBalanceInDayClosing": false
}
```
---
## 🗄️ Database Migration Steps
Run this SQL script to add the columns:
```bash
mysql -u root -p your_database < database_migration_add_custom_fields.sql
```
Or manually execute:
```sql
ALTER TABLE m_savings_product
ADD COLUMN balance_frequency VARCHAR(50) DEFAULT NULL,
ADD COLUMN account_closed_zero_balance_in_day_closing BOOLEAN DEFAULT FALSE;
```
---
## ✅ Validation
The fields are now:
- ✅ **Accepted** in CREATE request (POST)
- ✅ **Saved** to database
- ✅ **Returned** in GET response
- ✅ **Updatable** via PUT request
- ✅ **Validated** (no longer rejected as unsupported)
---
## 🚀 Next Steps
1. **Run Database Migration:** Execute the SQL script
2. **Rebuild Application:** `./gradlew clean build`
3. **Restart Server:** Apply the changes
4. **Test API:** Use your payload to create a savings product
---
## 📝 Notes
- Both fields are **optional** (nullable)
- `balanceFrequency` accepts any string value (you can add validation later if needed)
- `accountClosedZeroBalanceInDayClosing` defaults to `false` if not provided
- Both fields support **partial updates** (you can update just one of them)
-46
View File
@@ -1,46 +0,0 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
FROM openjdk:11 AS builder
RUN apt-get update -qq && apt-get install -y wget
COPY . fineract
WORKDIR /fineract
RUN ./gradlew --no-daemon -x rat -x test bootJar
WORKDIR /fineract/target
RUN jar -xf /fineract/build/libs/fineract-provider.jar
# https://issues.apache.org/jira/browse/LEGAL-462
# https://issues.apache.org/jira/browse/FINERACT-762
# We include an alternative JDBC driver (which is faster, but not allowed to be default in Apache distribution)
# allowing implementations to switch the driver used by changing start-up parameters (for both tenants and each tenant DB)
# The commented out lines in the docker-compose.yml illustrate how to do this.
WORKDIR /fineract/target/BOOT-INF/lib
RUN wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.20/mysql-connector-java-8.0.20.jar
# =========================================
FROM gcr.io/distroless/java:11 as fineract
COPY --from=builder /fineract/target/BOOT-INF/lib /app/lib
COPY --from=builder /fineract/target/META-INF /app/META-INF
COPY --from=builder /fineract/target/BOOT-INF/classes /app
ENTRYPOINT ["java", "-cp", "app:app/lib/*", "org.apache.fineract.ServerApplication"]
@@ -0,0 +1,277 @@
i {
"info": {
"name": "Entity Classification - CBS Fineract",
"description": "Entity Classification module for non-individual client onboarding with 7 regulatory categories:\n1. Startup India (DPIIT)\n2. Mudra Borrower (PMMY)\n3. Export Oriented Unit (EOU)\n4. Import/Export (IEC/DGFT)\n5. Priority Sector Lending (PSL)\n6. Non-Priority Sector (NPS)\n7. MSME (Udyam Registration)",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"auth": {
"type": "basic",
"basic": [
{
"key": "username",
"value": "bankadmin",
"type": "string"
},
{
"key": "password",
"value": "LincPay@2026",
"type": "string"
}
]
},
"variable": [
{
"key": "baseUrl",
"value": "https://localhost:8443/fineract-provider/api/v1"
},
{
"key": "clientId",
"value": "49"
},
{
"key": "tenantId",
"value": "default"
}
],
"item": [
{
"name": "GET - Retrieve All Entity Classifications",
"request": {
"method": "GET",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/clients/{{clientId}}/entityclassification",
"host": ["{{baseUrl}}"],
"path": ["clients", "{{clientId}}", "entityclassification"]
},
"description": "Retrieves all 6 entity classification categories for the given client. Returns null for categories that have not been submitted yet."
}
},
{
"name": "POST - Save Startup India (DPIIT)",
"request": {
"method": "POST",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/clients/{{clientId}}/entityclassification/startup",
"host": ["{{baseUrl}}"],
"path": ["clients", "{{clientId}}", "entityclassification", "startup"]
},
"body": {
"mode": "raw",
"raw": "{\n \"enabled\": true,\n \"dpiitRecognitionNumber\": \"DIPP12345\",\n \"recognitionDate\": \"15 January 2024\",\n \"certificateExpiryDate\": \"14 January 2034\",\n \"entityStage\": \"GROWTH\",\n \"sectorAsDpiit\": \"Information Technology\",\n \"nicIndustryCode\": \"62011\",\n \"taxExemption80iac\": true,\n \"sidbiFund\": false,\n \"selfCertification\": true,\n \"fastTrackPatent\": true,\n \"govtTenderExemption\": true,\n \"creditGuaranteeCgss\": false,\n \"pslLoanLimit\": 5000000.00,\n \"pslSubCategory\": \"StartupIndia-IT\",\n \"locale\": \"en\",\n \"dateFormat\": \"dd MMMM yyyy\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"description": "Creates or updates Startup India (DPIIT) entity classification. Captures DPIIT recognition number, tax exemptions under Section 80IAC, SIDBI fund eligibility, and PSL limits."
}
},
{
"name": "POST - Save Mudra Borrower (PMMY)",
"request": {
"method": "POST",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/clients/{{clientId}}/entityclassification/mudra",
"host": ["{{baseUrl}}"],
"path": ["clients", "{{clientId}}", "entityclassification", "mudra"]
},
"body": {
"mode": "raw",
"raw": "{\n \"enabled\": true,\n \"mudraCategory\": \"KISHORE\",\n \"mudraLoanAccountNo\": \"MUDRA2024MH00567\",\n \"lendingInstitutionName\": \"State Bank of India\",\n \"sanctionedAmount\": 350000.00,\n \"disbursementDate\": \"01 March 2024\",\n \"loanPurpose\": \"Working Capital\",\n \"mudraCardNumber\": \"MC20240567\",\n \"currentOutstanding\": 280000.00,\n \"repaymentStatus\": \"REGULAR\",\n \"npaFlag\": false,\n \"locale\": \"en\",\n \"dateFormat\": \"dd MMMM yyyy\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"description": "Creates or updates Mudra Borrower (PMMY) entity classification. Supports SHISHU (up to Rs 50K), KISHORE (50K-5L), and TARUN (5L-10L) categories under Pradhan Mantri Mudra Yojana."
}
},
{
"name": "POST - Save Export Oriented Unit (EOU)",
"request": {
"method": "POST",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/clients/{{clientId}}/entityclassification/eou",
"host": ["{{baseUrl}}"],
"path": ["clients", "{{clientId}}", "entityclassification", "eou"]
},
"body": {
"mode": "raw",
"raw": "{\n \"enabled\": true,\n \"eouRegistrationNumber\": \"EOU/MH/2023/00456\",\n \"registeredDcZone\": \"SEEPZ-SEZ Mumbai\",\n \"bondLutNumber\": \"LUT/2024/MH/0089\",\n \"validityFrom\": \"01 April 2023\",\n \"validityTo\": \"31 March 2028\",\n \"gstinEou\": \"27AABCU9603R1ZM\",\n \"annualExportObligation\": 25000000.00,\n \"nfeTarget\": 5000000.00,\n \"softexFilingStatus\": \"FILED\",\n \"brcSubmissionStatus\": \"SUBMITTED\",\n \"adCategoryBankCode\": \"AD-I\",\n \"femaDeclarationDate\": \"15 April 2023\",\n \"locale\": \"en\",\n \"dateFormat\": \"dd MMMM yyyy\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"description": "Creates or updates Export Oriented Unit (EOU) entity classification. Captures EOU registration, Bond/LUT details, GSTIN, export obligations, NFE targets, and FEMA compliance."
}
},
{
"name": "POST - Save Import/Export (IEC/DGFT)",
"request": {
"method": "POST",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/clients/{{clientId}}/entityclassification/importexport",
"host": ["{{baseUrl}}"],
"path": ["clients", "{{clientId}}", "entityclassification", "importexport"]
},
"body": {
"mode": "raw",
"raw": "{\n \"enabled\": true,\n \"iecCode\": \"0305012345\",\n \"iecIssueDate\": \"10 June 2020\",\n \"iecStatus\": \"ACTIVE\",\n \"tradeType\": \"BOTH\",\n \"primaryHsCode\": \"8471\",\n \"keyTradingCountries\": \"USA, UAE, Singapore, Germany\",\n \"adCategoryBankCode\": \"AD-I\",\n \"ecgcPolicyNumber\": \"ECGC/WTP/2024/00123\",\n \"ecgcPolicyExpiry\": \"31 March 2025\",\n \"eefcAccountRequired\": true,\n \"pcfcFacilityRequired\": false,\n \"femaDeclarationObtained\": true,\n \"locale\": \"en\",\n \"dateFormat\": \"dd MMMM yyyy\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"description": "Creates or updates Import/Export (IEC/DGFT) entity classification. Captures Importer Exporter Code, HS codes, ECGC insurance, EEFC/PCFC requirements, and FEMA compliance."
}
},
{
"name": "POST - Save Priority Sector Lending (PSL)",
"request": {
"method": "POST",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/clients/{{clientId}}/entityclassification/psl",
"host": ["{{baseUrl}}"],
"path": ["clients", "{{clientId}}", "entityclassification", "psl"]
},
"body": {
"mode": "raw",
"raw": "{\n \"enabled\": true,\n \"pslCategory\": \"MICRO_ENTERPRISE\",\n \"pslSubCategory\": \"Manufacturing\",\n \"pslLoanPurposeCode\": \"ME01\",\n \"pslEligibilityBasis\": \"Udyam Registration - Micro Enterprise with investment up to Rs 1 Cr\",\n \"fiddReportingCode\": \"FIDD-ME-MFG\",\n \"pslSanctionedLimit\": 10000000.00,\n \"msmeClassification\": \"MICRO\",\n \"udyamRegistrationNumber\": \"UDYAM-MH-01-0012345\",\n \"udyamRegistrationDate\": \"20 July 2023\",\n \"annualTurnover\": 45000000.00,\n \"investmentPlantMachinery\": 8500000.00,\n \"weakerSectionFlag\": true,\n \"scStBorrowerFlag\": false,\n \"womenEntrepreneurFlag\": true,\n \"minorityCommunityFlag\": false,\n \"locale\": \"en\",\n \"dateFormat\": \"dd MMMM yyyy\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"description": "Creates or updates Priority Sector Lending (PSL) entity classification as per RBI Master Direction. Captures PSL category, MSME classification, Udyam registration, FIDD reporting codes, and weaker section flags."
}
},
{
"name": "POST - Save Non-Priority Sector (NPS)",
"request": {
"method": "POST",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/clients/{{clientId}}/entityclassification/nps",
"host": ["{{baseUrl}}"],
"path": ["clients", "{{clientId}}", "entityclassification", "nps"]
},
"body": {
"mode": "raw",
"raw": "{\n \"enabled\": true,\n \"industrySector\": \"Real Estate\",\n \"nicCode\": \"68100\",\n \"industryDescription\": \"Real estate activities with owned or leased property - Commercial\",\n \"annualRevenueBand\": \"50CR_TO_100CR\",\n \"riskCategory\": \"MEDIUM\",\n \"customerRiskScore\": 55,\n \"amlRiskClassification\": \"Medium Risk - Enhanced Due Diligence Required\",\n \"pepFlag\": false,\n \"amlWatchlistMatch\": false,\n \"adverseMediaFlag\": false\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"description": "Creates or updates Non-Priority Sector (NPS) entity classification. Captures industry details, NIC code, risk categorization, AML risk classification, PEP status, and adverse media flags."
}
},
{
"name": "POST - Save MSME (Udyam Registration)",
"request": {
"method": "POST",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/clients/{{clientId}}/entityclassification/msme",
"host": ["{{baseUrl}}"],
"path": ["clients", "{{clientId}}", "entityclassification", "msme"]
},
"body": {
"mode": "raw",
"raw": "{\n \"enabled\": true,\n \"udyamRegistrationNumber\": \"UDYAM-MP-23-0012345\",\n \"registrationDate\": \"15 March 2023\",\n \"registrationStatus\": \"ACTIVE\",\n \"msmeClassification\": \"SMALL\",\n \"enterpriseType\": \"MANUFACTURING\",\n \"nicActivityCode\": \"13111\",\n \"annualTurnover\": 12.50,\n \"investmentPlantMachinery\": 3.75,\n \"financialYearAssessment\": \"2024-25\",\n \"socialCategoryOwner\": \"GENERAL\",\n \"genderPrimaryOwner\": \"MALE\",\n \"noOfEmployees\": 45,\n \"womenLedEnterprise\": false,\n \"divyangPwdOwned\": false,\n \"dateFormat\": \"dd MMMM yyyy\",\n \"locale\": \"en\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"description": "Creates or updates MSME (Udyam Registration) entity classification. Captures Udyam number, MSME classification (Micro/Small/Medium), enterprise type, financial thresholds, owner/promoter details, and special flags (women-led, PWD owned)."
}
}
]
}
@@ -0,0 +1,607 @@
{
"info": {
"_postman_id": "user-mgmt-collection",
"name": "Fineract - User Management",
"description": "Fineract User Management APIs - Login, Create, Update, Change Password, Delete Users",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"auth": {
"type": "basic",
"basic": [
{
"key": "username",
"value": "{{username}}",
"type": "string"
},
{
"key": "password",
"value": "{{password}}",
"type": "string"
}
]
},
"variable": [
{
"key": "baseUrl",
"value": "https://localhost:8443/fineract-provider/api"
},
{
"key": "username",
"value": "mifos"
},
{
"key": "password",
"value": "password"
},
{
"key": "tenantId",
"value": "default"
},
{
"key": "userId",
"value": "1"
}
],
"item": [
{
"name": "Authentication",
"item": [
{
"name": "Login (Self-Service)",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"username\": \"mifos\",\n \"password\": \"password\"\n}"
},
"url": {
"raw": "{{baseUrl}}/v1/self/authentication?returnClientList=true",
"host": ["{{baseUrl}}"],
"path": ["v1", "self", "authentication"],
"query": [
{
"key": "returnClientList",
"value": "true"
}
]
},
"description": "Authenticates a user and returns auth token. Use this for self-service users."
}
},
{
"name": "Login (Basic Auth Test)",
"request": {
"method": "GET",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"url": {
"raw": "{{baseUrl}}/v1/users/1",
"host": ["{{baseUrl}}"],
"path": ["v1", "users", "1"]
},
"description": "Test basic auth by fetching user details. If credentials are correct, you'll get a 200 response."
}
}
]
},
{
"name": "Users",
"item": [
{
"name": "Get All Users",
"request": {
"method": "GET",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"url": {
"raw": "{{baseUrl}}/v1/users",
"host": ["{{baseUrl}}"],
"path": ["v1", "users"]
}
}
},
{
"name": "Get User by ID",
"request": {
"method": "GET",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"url": {
"raw": "{{baseUrl}}/v1/users/{{userId}}",
"host": ["{{baseUrl}}"],
"path": ["v1", "users", "{{userId}}"]
}
}
},
{
"name": "Get User Template",
"request": {
"method": "GET",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"url": {
"raw": "{{baseUrl}}/v1/users/template",
"host": ["{{baseUrl}}"],
"path": ["v1", "users", "template"]
},
"description": "Returns template data (available offices, roles) needed to create a new user."
}
},
{
"name": "Create User",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"username\": \"newuser\",\n \"firstname\": \"New\",\n \"lastname\": \"User\",\n \"email\": \"newuser@example.com\",\n \"officeId\": 1,\n \"roles\": [1],\n \"sendPasswordToEmail\": false,\n \"password\": \"Password@123\",\n \"repeatPassword\": \"Password@123\",\n \"isSelfServiceUser\": false,\n \"passwordNeverExpires\": true\n}"
},
"url": {
"raw": "{{baseUrl}}/v1/users",
"host": ["{{baseUrl}}"],
"path": ["v1", "users"]
}
}
},
{
"name": "Update User (Change Username)",
"request": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"username\": \"updatedUsername\"\n}"
},
"url": {
"raw": "{{baseUrl}}/v1/users/{{userId}}",
"host": ["{{baseUrl}}"],
"path": ["v1", "users", "{{userId}}"]
}
}
},
{
"name": "Update User (Change Password via PUT)",
"request": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"password\": \"NewPassword@123\",\n \"repeatPassword\": \"NewPassword@123\"\n}"
},
"url": {
"raw": "{{baseUrl}}/v1/users/{{userId}}",
"host": ["{{baseUrl}}"],
"path": ["v1", "users", "{{userId}}"]
}
}
},
{
"name": "Change Password (Dedicated Endpoint)",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"password\": \"NewPassword@123\",\n \"repeatPassword\": \"NewPassword@123\"\n}"
},
"url": {
"raw": "{{baseUrl}}/v1/users/{{userId}}/pwd",
"host": ["{{baseUrl}}"],
"path": ["v1", "users", "{{userId}}", "pwd"]
},
"description": "Dedicated password change endpoint. Must provide both password and repeatPassword."
}
},
{
"name": "Update User (Full Update)",
"request": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"username\": \"updatedUser\",\n \"firstname\": \"Updated\",\n \"lastname\": \"User\",\n \"email\": \"updated@example.com\",\n \"officeId\": 1,\n \"roles\": [1],\n \"password\": \"NewPassword@123\",\n \"repeatPassword\": \"NewPassword@123\",\n \"passwordNeverExpires\": true\n}"
},
"url": {
"raw": "{{baseUrl}}/v1/users/{{userId}}",
"host": ["{{baseUrl}}"],
"path": ["v1", "users", "{{userId}}"]
}
}
},
{
"name": "Delete User",
"request": {
"method": "DELETE",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"url": {
"raw": "{{baseUrl}}/v1/users/{{userId}}",
"host": ["{{baseUrl}}"],
"path": ["v1", "users", "{{userId}}"]
}
}
}
]
},
{
"name": "Roles",
"item": [
{
"name": "Get All Roles",
"request": {
"method": "GET",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"url": {
"raw": "{{baseUrl}}/v1/roles",
"host": ["{{baseUrl}}"],
"path": ["v1", "roles"]
}
}
},
{
"name": "Get Role by ID",
"request": {
"method": "GET",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"url": {
"raw": "{{baseUrl}}/v1/roles/1",
"host": ["{{baseUrl}}"],
"path": ["v1", "roles", "1"]
}
}
},
{
"name": "Get Role Permissions",
"request": {
"method": "GET",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"url": {
"raw": "{{baseUrl}}/v1/roles/1/permissions",
"host": ["{{baseUrl}}"],
"path": ["v1", "roles", "1", "permissions"]
}
}
},
{
"name": "Create Role",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"New Role\",\n \"description\": \"A new custom role\"\n}"
},
"url": {
"raw": "{{baseUrl}}/v1/roles",
"host": ["{{baseUrl}}"],
"path": ["v1", "roles"]
}
}
},
{
"name": "Update Role",
"request": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"Updated Role\",\n \"description\": \"Updated description\"\n}"
},
"url": {
"raw": "{{baseUrl}}/v1/roles/1",
"host": ["{{baseUrl}}"],
"path": ["v1", "roles", "1"]
}
}
},
{
"name": "Update Role Permissions",
"request": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"permissions\": {\n \"READ_USER\": true,\n \"CREATE_USER\": true,\n \"UPDATE_USER\": true\n }\n}"
},
"url": {
"raw": "{{baseUrl}}/v1/roles/1/permissions",
"host": ["{{baseUrl}}"],
"path": ["v1", "roles", "1", "permissions"]
}
}
},
{
"name": "Enable Role",
"request": {
"method": "POST",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"url": {
"raw": "{{baseUrl}}/v1/roles/1?command=enable",
"host": ["{{baseUrl}}"],
"path": ["v1", "roles", "1"],
"query": [
{
"key": "command",
"value": "enable"
}
]
}
}
},
{
"name": "Disable Role",
"request": {
"method": "POST",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"url": {
"raw": "{{baseUrl}}/v1/roles/1?command=disable",
"host": ["{{baseUrl}}"],
"path": ["v1", "roles", "1"],
"query": [
{
"key": "command",
"value": "disable"
}
]
}
}
},
{
"name": "Delete Role",
"request": {
"method": "DELETE",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"url": {
"raw": "{{baseUrl}}/v1/roles/1",
"host": ["{{baseUrl}}"],
"path": ["v1", "roles", "1"]
}
}
}
]
},
{
"name": "Password Preferences",
"item": [
{
"name": "Get Password Preferences",
"request": {
"method": "GET",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"url": {
"raw": "{{baseUrl}}/v1/passwordpreferences",
"host": ["{{baseUrl}}"],
"path": ["v1", "passwordpreferences"]
}
}
},
{
"name": "Get Password Preferences Template",
"request": {
"method": "GET",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"url": {
"raw": "{{baseUrl}}/v1/passwordpreferences/template",
"host": ["{{baseUrl}}"],
"path": ["v1", "passwordpreferences", "template"]
}
}
},
{
"name": "Update Password Preferences",
"request": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"validationPolicyId\": 2\n}"
},
"url": {
"raw": "{{baseUrl}}/v1/passwordpreferences",
"host": ["{{baseUrl}}"],
"path": ["v1", "passwordpreferences"]
}
}
}
]
},
{
"name": "Permissions",
"item": [
{
"name": "Get All Permissions",
"request": {
"method": "GET",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"url": {
"raw": "{{baseUrl}}/v1/permissions",
"host": ["{{baseUrl}}"],
"path": ["v1", "permissions"]
}
}
},
{
"name": "Update Permissions (Maker-Checker)",
"request": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"permissions\": {\n \"CREATE_USER_MAKER\": true,\n \"CREATE_USER_CHECKER\": true\n }\n}"
},
"url": {
"raw": "{{baseUrl}}/v1/permissions",
"host": ["{{baseUrl}}"],
"path": ["v1", "permissions"]
}
}
}
]
}
]
}
+668
View File
@@ -0,0 +1,668 @@
# Savings Product Payload Implementation Guide
## Overview
Your UI has been updated to send a comprehensive new payload with additional fields for the `/savingsproducts` POST endpoint. This document outlines **all changes required** in the backend to support these new fields.
---
## 🔍 New Fields in Your Payload
### **Simple Fields (Direct Columns in m_savings_product table)**
| Field | Type | Example | Description |
|-------|------|---------|-------------|
| accountType | String | "Small Saving Account" | Type of savings account |
| customerSegment | String | "Individual" | Customer classification |
| productCode | String | "SB-IND-001" | Product identifier code |
| effectiveDate | Date | "10 April 2026" | When the product becomes effective |
| effectiveTo | Date | "10 April 2026" | Validity end date |
| endDate | Date | "10 April 2026" | Product end date |
| introducerRequired | Boolean | true | If introducer/referrer is mandatory |
| shareLinkingEnabled | Boolean | true | If share account linking allowed |
| nominationFacility | Boolean | true | If nomination facility available |
| dormancyAlert | Boolean | true | If dormancy alerts enabled |
| interestCalculateSelector | Integer | 2 | Interest calculation method selector |
| averagePeriod | String | "Monthly" | Period for averaging balance |
| autoPost | Boolean | true | Auto-post interest |
| frequencyFixDay | Integer | 30 | Fixed day for frequency |
| lastInterestDate | Date | "10 April 2026" | Last interest posting date |
| enableLockinPeriod | Boolean | true | If lock-in period enforced |
### **Complex Objects (Require Separate Tables)**
#### 1️⃣ **accountFacilityConfig** (Single object with facility booleans)
```json
{
"atmFacility": true,
"atmWithdrawalFacility": true,
"upiFacility": true,
"posTransactionsFacility": true,
"chequeBook": true,
"impsFacility": true,
"smsAlerts": true,
"bbpsFacility": true,
"insuranceCover": true,
"bepgFacility": true,
"neftFacility": true,
"rtgsFacility": true,
"interBankTotalCapFacility": true,
"withdrawalFacility": true,
"depositFacilityKyc": true,
"virtualDebitCard": true
}
```
→ **Table:** `m_savings_product_facility_config` (One-to-One relationship)
#### 2️⃣ **accountFacilityLimits** (Array of limit objects)
```json
[
{"limitType": "ATM Withdrawal", "generalLimit": 40000, "minorAccountLimit": 5000, "smallSavingLimit": 10000},
{"limitType": "POS Transactions", "generalLimit": 100000, "minorAccountLimit": 2000, "smallSavingLimit": 10000},
...
]
```
→ **Table:** `m_savings_product_facility_limits` (One-to-Many relationship)
#### 3️⃣ **depositLimitKyc** (Nested KYC limit rules)
```json
{
"general": {"kycType": "Full KYC", "limit": "No Limit"},
"minor": {"kycType": "Guardian KYC", "limit": 100000},
"smallSaving": {"kycType": "Min KYC", "limit": 50000}
}
```
→ **Table:** `m_savings_product_deposit_limit_kyc` (One-to-One relationship, or JSON column)
---
## 📋 Database Changes Required
### **1. Alter m_savings_product table**
```sql
ALTER TABLE m_savings_product ADD COLUMN (
account_type VARCHAR(50),
customer_segment VARCHAR(50),
product_code VARCHAR(20) UNIQUE,
effective_date DATE,
effective_to DATE,
end_date DATE,
introducer_required BOOLEAN DEFAULT FALSE,
share_linking_enabled BOOLEAN DEFAULT FALSE,
nomination_facility BOOLEAN DEFAULT FALSE,
dormancy_alert BOOLEAN DEFAULT FALSE,
interest_calculate_selector INT,
average_period VARCHAR(20),
auto_post BOOLEAN DEFAULT FALSE,
frequency_fix_day INT,
last_interest_date DATE,
enable_lockin_period BOOLEAN DEFAULT FALSE
);
```
### **2. Create m_savings_product_facility_config table** (One-to-One)
```sql
CREATE TABLE m_savings_product_facility_config (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
savings_product_id BIGINT NOT NULL UNIQUE,
atm_facility BOOLEAN DEFAULT FALSE,
atm_withdrawal_facility BOOLEAN DEFAULT FALSE,
upi_facility BOOLEAN DEFAULT FALSE,
pos_transactions_facility BOOLEAN DEFAULT FALSE,
cheque_book BOOLEAN DEFAULT FALSE,
imps_facility BOOLEAN DEFAULT FALSE,
sms_alerts BOOLEAN DEFAULT FALSE,
bbps_facility BOOLEAN DEFAULT FALSE,
insurance_cover BOOLEAN DEFAULT FALSE,
bepg_facility BOOLEAN DEFAULT FALSE,
neft_facility BOOLEAN DEFAULT FALSE,
rtgs_facility BOOLEAN DEFAULT FALSE,
inter_bank_total_cap_facility BOOLEAN DEFAULT FALSE,
withdrawal_facility BOOLEAN DEFAULT FALSE,
deposit_facility_kyc BOOLEAN DEFAULT FALSE,
virtual_debit_card BOOLEAN DEFAULT FALSE,
created_date DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (savings_product_id) REFERENCES m_savings_product(id) ON DELETE CASCADE
);
```
### **3. Create m_savings_product_facility_limits table** (One-to-Many)
```sql
CREATE TABLE m_savings_product_facility_limits (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
savings_product_id BIGINT NOT NULL,
limit_type VARCHAR(100) NOT NULL,
general_limit VARCHAR(50), -- Can be decimal or "N/A", "UNLIMITED"
minor_account_limit VARCHAR(50),
small_saving_limit VARCHAR(50),
created_date DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (savings_product_id) REFERENCES m_savings_product(id) ON DELETE CASCADE,
UNIQUE KEY unique_product_limit_type (savings_product_id, limit_type)
);
```
### **4. Create m_savings_product_deposit_limit_kyc table** (One-to-One)
```sql
CREATE TABLE m_savings_product_deposit_limit_kyc (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
savings_product_id BIGINT NOT NULL UNIQUE,
general_kyc_type VARCHAR(50),
general_limit VARCHAR(50), -- "No Limit" or numeric
minor_kyc_type VARCHAR(50),
minor_limit BIGINT,
small_saving_kyc_type VARCHAR(50),
small_saving_limit BIGINT,
created_date DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (savings_product_id) REFERENCES m_savings_product(id) ON DELETE CASCADE
);
```
---
## 🏗️ Java Entity Classes to Create/Update
### **1. Update SavingsProduct Entity**
Add these fields to `fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProduct.java`:
```java
@Column(name = "account_type", length = 50)
private String accountType;
@Column(name = "customer_segment", length = 50)
private String customerSegment;
@Column(name = "product_code", length = 20, unique = true)
private String productCode;
@Column(name = "effective_date")
private LocalDate effectiveDate;
@Column(name = "effective_to")
private LocalDate effectiveTo;
@Column(name = "end_date")
private LocalDate endDate;
@Column(name = "introducer_required")
private boolean introducerRequired;
@Column(name = "share_linking_enabled")
private boolean shareLinkingEnabled;
@Column(name = "nomination_facility")
private boolean nominationFacility;
@Column(name = "dormancy_alert")
private boolean dormancyAlert;
@Column(name = "interest_calculate_selector")
private Integer interestCalculateSelector;
@Column(name = "average_period", length = 20)
private String averagePeriod;
@Column(name = "auto_post")
private boolean autoPost;
@Column(name = "frequency_fix_day")
private Integer frequencyFixDay;
@Column(name = "last_interest_date")
private LocalDate lastInterestDate;
@Column(name = "enable_lockin_period")
private boolean enableLockinPeriod;
// One-to-One relationship
@OneToOne(cascade = CascadeType.ALL, mappedBy = "savingsProduct", orphanRemoval = true)
private SavingsProductFacilityConfig facilityConfig;
// One-to-Many relationship
@OneToMany(cascade = CascadeType.ALL, mappedBy = "savingsProduct", orphanRemoval = true)
private Set<SavingsProductFacilityLimit> facilityLimits = new HashSet<>();
// One-to-One relationship
@OneToOne(cascade = CascadeType.ALL, mappedBy = "savingsProduct", orphanRemoval = true)
private SavingsProductDepositLimitKyc depositLimitKyc;
```
### **2. Create SavingsProductFacilityConfig Entity**
`fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductFacilityConfig.java`:
```java
@Entity
@Table(name = "m_savings_product_facility_config")
public class SavingsProductFacilityConfig extends AbstractPersistableCustom<Long> {
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "savings_product_id", nullable = false)
private SavingsProduct savingsProduct;
@Column(name = "atm_facility")
private Boolean atmFacility = false;
@Column(name = "atm_withdrawal_facility")
private Boolean atmWithdrawalFacility = false;
@Column(name = "upi_facility")
private Boolean upiFacility = false;
@Column(name = "pos_transactions_facility")
private Boolean posTransactionsFacility = false;
@Column(name = "cheque_book")
private Boolean chequeBook = false;
@Column(name = "imps_facility")
private Boolean impsFacility = false;
@Column(name = "sms_alerts")
private Boolean smsAlerts = false;
@Column(name = "bbps_facility")
private Boolean bbpsFacility = false;
@Column(name = "insurance_cover")
private Boolean insuranceCover = false;
@Column(name = "bepg_facility")
private Boolean bepgFacility = false;
@Column(name = "neft_facility")
private Boolean neftFacility = false;
@Column(name = "rtgs_facility")
private Boolean rtgsFacility = false;
@Column(name = "inter_bank_total_cap_facility")
private Boolean interBankTotalCapFacility = false;
@Column(name = "withdrawal_facility")
private Boolean withdrawalFacility = false;
@Column(name = "deposit_facility_kyc")
private Boolean depositFacilityKyc = false;
@Column(name = "virtual_debit_card")
private Boolean virtualDebitCard = false;
// Getters and setters
}
```
### **3. Create SavingsProductFacilityLimit Entity**
`fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductFacilityLimit.java`:
```java
@Entity
@Table(name = "m_savings_product_facility_limits")
public class SavingsProductFacilityLimit extends AbstractPersistableCustom<Long> {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "savings_product_id", nullable = false)
private SavingsProduct savingsProduct;
@Column(name = "limit_type", length = 100, nullable = false)
private String limitType;
@Column(name = "general_limit", length = 50)
private String generalLimit; // Can be "UNLIMITED", "N/A", or numeric value
@Column(name = "minor_account_limit", length = 50)
private String minorAccountLimit;
@Column(name = "small_saving_limit", length = 50)
private String smallSavingLimit;
// Getters and setters
public static SavingsProductFacilityLimit create(
SavingsProduct savingsProduct,
String limitType,
String generalLimit,
String minorAccountLimit,
String smallSavingLimit) {
SavingsProductFacilityLimit limit = new SavingsProductFacilityLimit();
limit.savingsProduct = savingsProduct;
limit.limitType = limitType;
limit.generalLimit = generalLimit;
limit.minorAccountLimit = minorAccountLimit;
limit.smallSavingLimit = smallSavingLimit;
return limit;
}
}
```
### **4. Create SavingsProductDepositLimitKyc Entity**
`fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductDepositLimitKyc.java`:
```java
@Entity
@Table(name = "m_savings_product_deposit_limit_kyc")
public class SavingsProductDepositLimitKyc extends AbstractPersistableCustom<Long> {
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "savings_product_id", nullable = false)
private SavingsProduct savingsProduct;
@Column(name = "general_kyc_type", length = 50)
private String generalKycType;
@Column(name = "general_limit", length = 50)
private String generalLimit; // "No Limit" or numeric
@Column(name = "minor_kyc_type", length = 50)
private String minorKycType;
@Column(name = "minor_limit")
private Long minorLimit;
@Column(name = "small_saving_kyc_type", length = 50)
private String smallSavingKycType;
@Column(name = "small_saving_limit")
private Long smallSavingLimit;
// Getters and setters
}
```
---
## 🔑 API Constants to Add
Update `fineract-core/src/main/java/org/apache/fineract/portfolio/savings/SavingsApiConstants.java`:
```java
// New Savings Product Fields
public static final String accountTypeParamName = "accountType";
public static final String customerSegmentParamName = "customerSegment";
public static final String productCodeParamName = "productCode";
public static final String effectiveDateParamName = "effectiveDate";
public static final String effectiveToParamName = "effectiveTo";
public static final String endDateParamName = "endDate";
public static final String introducerRequiredParamName = "introducerRequired";
public static final String shareLinkingEnabledParamName = "shareLinkingEnabled";
public static final String nominationFacilityParamName = "nominationFacility";
public static final String dormancyAlertParamName = "dormancyAlert";
public static final String interestCalculateSelectorParamName = "interestCalculateSelector";
public static final String averagePeriodParamName = "averagePeriod";
public static final String autoPostParamName = "autoPost";
public static final String frequencyFixDayParamName = "frequencyFixDay";
public static final String lastInterestDateParamName = "lastInterestDate";
public static final String enableLockinPeriodParamName = "enableLockinPeriod";
// Complex objects
public static final String accountFacilityConfigParamName = "accountFacilityConfig";
public static final String accountFacilityLimitsParamName = "accountFacilityLimits";
public static final String depositLimitKycParamName = "depositLimitKyc";
// Facility config fields
public static final String atmFacilityParamName = "atmFacility";
public static final String atmWithdrawalFacilityParamName = "atmWithdrawalFacility";
public static final String upiFacilityParamName = "upiFacility";
// ... etc for all facility fields
// Limit fields
public static final String limitTypeParamName = "limitType";
public static final String generalLimitParamName = "generalLimit";
public static final String minorAccountLimitParamName = "minorAccountLimit";
public static final String smallSavingLimitParamName = "smallSavingLimit";
```
---
## ✅ Validator Updates
Update `fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsProductDataValidator.java`:
1. **Add to parameter whitelist:**
```java
private static final Set<String> SAVINGS_PRODUCT_REQUEST_DATA_PARAMETERS =
new HashSet<>(Arrays.asList(
// ... existing parameters ...
"accountType",
"customerSegment",
"productCode",
"effectiveDate",
"effectiveTo",
"endDate",
"introducerRequired",
"shareLinkingEnabled",
"nominationFacility",
"dormancyAlert",
"interestCalculateSelector",
"averagePeriod",
"autoPost",
"frequencyFixDay",
"lastInterestDate",
"enableLockinPeriod",
"accountFacilityConfig",
"accountFacilityLimits",
"depositLimitKyc"
));
```
2. **Add validation logic in validateForCreate() and validateForUpdate():**
```java
if (command.stringValueOfParameterNamedAllowingNull("productCode") != null) {
final String productCode = command.stringValueOfParameterNamed("productCode");
if (StringUtils.isBlank(productCode)) {
baseDataValidator.reset().parameter("productCode").value(productCode).notBlank();
}
}
if (command.hasParameter("effectiveDate")) {
final LocalDate effectiveDate = command.localDateValueOfParameterNamed("effectiveDate");
baseDataValidator.reset().parameter("effectiveDate").value(effectiveDate).notNull();
}
// Similar for other date fields
if (command.hasParameter("effectiveTo") && command.hasParameter("effectiveDate")) {
final LocalDate effectiveDate = command.localDateValueOfParameterNamed("effectiveDate");
final LocalDate effectiveTo = command.localDateValueOfParameterNamed("effectiveTo");
if (effectiveTo.isBefore(effectiveDate)) {
baseDataValidator.reset().parameter("effectiveTo").value(effectiveTo)
.failWithCode("error.msg.effectiveto.cannot.be.before.effectivedate");
}
}
```
---
## 🔧 Assembler Updates
Update `fineract-savings/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsProductAssembler.java`:
Add helper methods to extract and assemble nested objects:
```java
public SavingsProductFacilityConfig assembleAccountFacilityConfig(final JsonCommand command, final SavingsProduct product) {
final JsonObject jsonObject = command.parsedJson();
if (!jsonObject.has("accountFacilityConfig")) {
return null;
}
final JsonObject facilityConfigJson = jsonObject.getAsJsonObject("accountFacilityConfig");
SavingsProductFacilityConfig config = new SavingsProductFacilityConfig();
config.setSavingsProduct(product);
config.setAtmFacility(facilityConfigJson.has("atmFacility") ?
facilityConfigJson.getAsJsonPrimitive("atmFacility").getAsBoolean() : false);
config.setAtmWithdrawalFacility(facilityConfigJson.has("atmWithdrawalFacility") ?
facilityConfigJson.getAsJsonPrimitive("atmWithdrawalFacility").getAsBoolean() : false);
// ... set other facilities ...
return config;
}
public Set<SavingsProductFacilityLimit> assembleAccountFacilityLimits(final JsonCommand command, final SavingsProduct product) {
final JsonObject jsonObject = command.parsedJson();
final Set<SavingsProductFacilityLimit> limits = new HashSet<>();
if (!jsonObject.has("accountFacilityLimits")) {
return limits;
}
final JsonArray limitsArray = jsonObject.getAsJsonArray("accountFacilityLimits");
for (JsonElement element : limitsArray) {
final JsonObject limitJson = element.getAsJsonObject();
SavingsProductFacilityLimit limit = SavingsProductFacilityLimit.create(
product,
limitJson.has("limitType") ? limitJson.getAsJsonPrimitive("limitType").getAsString() : null,
limitJson.has("generalLimit") ? limitJson.getAsJsonPrimitive("generalLimit").getAsString() : null,
limitJson.has("minorAccountLimit") ? limitJson.getAsJsonPrimitive("minorAccountLimit").getAsString() : null,
limitJson.has("smallSavingLimit") ? limitJson.getAsJsonPrimitive("smallSavingLimit").getAsString() : null
);
limits.add(limit);
}
return limits;
}
public SavingsProductDepositLimitKyc assembleDepositLimitKyc(final JsonCommand command, final SavingsProduct product) {
final JsonObject jsonObject = command.parsedJson();
if (!jsonObject.has("depositLimitKyc")) {
return null;
}
final JsonObject kycJson = jsonObject.getAsJsonObject("depositLimitKyc");
SavingsProductDepositLimitKyc kyc = new SavingsProductDepositLimitKyc();
kyc.setSavingsProduct(product);
if (kycJson.has("general")) {
final JsonObject generalJson = kycJson.getAsJsonObject("general");
kyc.setGeneralKycType(generalJson.has("kycType") ?
generalJson.getAsJsonPrimitive("kycType").getAsString() : null);
kyc.setGeneralLimit(generalJson.has("limit") ?
generalJson.getAsJsonPrimitive("limit").getAsString() : null);
}
// ... handle minor and smallSaving similarly ...
return kyc;
}
```
---
## 💾 Repository Classes to Create
### **SavingsProductFacilityConfigRepository.java**
```java
@Repository
public interface SavingsProductFacilityConfigRepository extends
JpaRepository<SavingsProductFacilityConfig, Long> {
SavingsProductFacilityConfig findBySavingsProductId(Long savingsProductId);
}
```
### **SavingsProductFacilityLimitRepository.java**
```java
@Repository
public interface SavingsProductFacilityLimitRepository extends
JpaRepository<SavingsProductFacilityLimit, Long> {
List<SavingsProductFacilityLimit> findBySavingsProductId(Long savingsProductId);
}
```
### **SavingsProductDepositLimitKycRepository.java**
```java
@Repository
public interface SavingsProductDepositLimitKycRepository extends
JpaRepository<SavingsProductDepositLimitKyc, Long> {
SavingsProductDepositLimitKyc findBySavingsProductId(Long savingsProductId);
}
```
---
## 🚀 Service Updates
Update `SavingsProductWritePlatformServiceImpl.create()` method:
```java
public CommandProcessingResult create(final JsonCommand command) {
try {
this.savingsProductDataValidator.validateForCreate(command.json());
// ... existing code ...
// Assemble new objects
final SavingsProductFacilityConfig facilityConfig =
this.savingsProductAssembler.assembleAccountFacilityConfig(command, product);
final Set<SavingsProductFacilityLimit> facilityLimits =
this.savingsProductAssembler.assembleAccountFacilityLimits(command, product);
final SavingsProductDepositLimitKyc depositLimitKyc =
this.savingsProductAssembler.assembleDepositLimitKyc(command, product);
if (facilityConfig != null) {
product.setFacilityConfig(facilityConfig);
facilityConfigRepository.saveAndFlush(facilityConfig);
}
if (!facilityLimits.isEmpty()) {
product.setFacilityLimits(facilityLimits);
facilityLimitRepository.saveAll(facilityLimits);
}
if (depositLimitKyc != null) {
product.setDepositLimitKyc(depositLimitKyc);
depositLimitKycRepository.saveAndFlush(depositLimitKyc);
}
// Save main product
final SavingsProduct productSaved = this.savingProductRepository.saveAndFlush(product);
return new CommandProcessingResultBuilder()
.withCommandId(command.commandId())
.withEntityId(productSaved.getId())
.build();
} catch (final DataAccessException e) {
// error handling
}
}
```
---
## 📊 Read Service Updates
Update `SavingsProductReadPlatformService` to include new fields in queries and DTO.
---
## 🎯 Summary of Changes
| Component | Type | Files to Modify/Create |
|-----------|------|----------------------|
| Database | Migration | SQL scripts |
| Entities | Create/Modify | 4 entity classes |
| Constants | Modify | SavingsApiConstants.java |
| Validator | Modify | SavingsProductDataValidator.java |
| Assembler | Modify | SavingsProductAssembler.java |
| Repositories | Create | 3 repository interfaces |
| Services | Modify | SavingsProductWrite/ReadPlatformService |
| DAO | Modify | SQL queries in read service |
---
## 📌 Implementation Priority
1. **Phase 1:** Create database tables
2. **Phase 2:** Create entity classes
3. **Phase 3:** Add API constants and validator rules
4. **Phase 4:** Create repositories and update service layer
5. **Phase 5:** Update read service and DTOs
6. **Phase 6:** Test with your POST endpoint
---
## ⚠️ Important Notes
- ✅ Fields like `otherGlMappings`, `isDormancyTrackingActive`, etc. **already exist** in the system
- ✅ Ensure backward compatibility - make all new fields optional in the validator
- ✅ Use cascade = CascadeType.ALL and orphanRemoval = true for nested entities
- ✅ Add unique constraints where needed (e.g., productCode, limit combinations)
- ✅ Consider adding indexes on frequently queried fields
- ✅ Update DTO classes to include these new fields in API responses
+4 -87
View File
@@ -216,92 +216,9 @@ and resource files are also released under the ASF license above.
==================================================
*The exceptions for binary release are as follows:
==================================================
This product bundles AOP Alliance v1.0, which is available under a
Public Domain license. For details, see licenses/binary/Aopa.PL
This product bundles ASM Core v3.1, which is available under a BSD license.
For details, see licenses/binary/Asm.BSD
This product bundles third party jars and resource files that are
released under other licenses than the ASF license. You can find
details of all third party licenses in the directory "licenses".
This product bundles JavaMail API(compat) v1.5.0-b01,
which is available under a CDDL v1.0 license.
For details, see licenses/binary/Javamail.CDDL
This product bundles AspectJ Runtime v1.8.2, Copyright (c) 1999-2001
Xerox Corporation, 2002 Palo Alto Research Center, Incorporated (PARC),
which is available under a EPL v1.0 license.
For details, see licenses/binary/Aspectrt.EPL
This product bundles AspectJ Weaver v1.8.2, Copyright (c) 2002 Palo Alto
Research Center, Incorporated (PARC), which is available under a EPL v1.0
license. For details, see licenses/binary/Aspectweaver.EPL
This product bundles IText(A Free Java PDF Library) v2.1.7, Copyright 2007
Bruno Lowagie, which is available under a MPL v1.1 license.
For details, see licenses/binary/IText.MPL
This product bundles DOM4J, Copyright 2001-2005 (C) MetaStuff, Ltd.,
which is available under a BSD license.
For details, see licenses/binary/Dom4J.BSD
This product bundles JDBC driver for MySQL and Drizzle v1.3, Copyright (c)
2009-2013, Marcus Eriksson which is available under a BSD license.
For details, see licenses/binary/Drizzle.BSD
This product bundles Ical4J v1.0.4, Copyright (c) 2012, Ben Fortuna,
which is available under a BSD license.
For details, see licenses/binary/Ical4J.BSD
This product bundles Jersey Core v1.17, Copyright (c) 2010-2012 Oracle
and/or its affiliates, which is available under a CDDL 1.1 license.
For details, see licenses/binary/Jersey.CDDL
This product bundles Jersey Json v1.17, Copyright (c) 2010-2012 Oracle
and/or its affiliates, which is available under a CDDL 1.1 license.
For details, see licenses/binary/Jersey.CDDL
This product bundles Jersey Multipart v1.17, Copyright (c) 2010-2011 Oracle
and/or its affiliates, which is available under a CDDL 1.1 license.
For details, see licenses/binary/Jersey.CDDL
This product bundles Jersey Server v1.17, Copyright (c) 2010-2011 Oracle
and/or its affiliates, which is available under a CDDL 1.1 license.
For details, see licenses/binary/Jersey.CDDL
This product bundles Jersey Servlet v1.17, Copyright (c) 2010-2011 Oracle
and/or its affiliates, which is available under a CDDL 1.1 license.
For details, see licenses/binary/Jersey.CDDL
This product bundles Jersey Spring v1.17, Copyright (c) 2010-2011 Oracle
and/or its affiliates, which is available under a CDDL 1.1 license.
For details, see licenses/binary/Jersey.CDDL
This product bundles Logback Classic Module v1.1.2, Copyright (C) 1999-2012,
QOS.ch. All rights reserved, which is available under a EPL v1.0 license.
For details, see licenses/binary/Logback.EPL
This product bundles Logback Core Module v1.1.2, Copyright (C) 1999-2012,
QOS.ch. All rights reserved, which is available under a EPL v1.0 license.
For details, see licenses/binary/Logback.EPL
This product bundles MIME Streaming Extension v1.6, Copyright (c) 1997-2010
Oracle and/or its affiliates. All rights reserved., which is available under
a CDDL v1.1 license.
For details, see licenses/binary/Mimepull.CDDL
This product bundles JUnit v3.8.1 created by Erich Gamma and Kent Beck which
is available under a CPL v1.0 license.
For details, see licenses/binary/Junit.CPL
This product bundles SLF4J API Module v1.7.7 opyright (c) 2004-2013 QOS.ch
All rights reserved., which is available under a MIT license.
For details, see licenses/binary/Slf4j.MIT
This product bundles Backport Util Concurrent v3.1 written by Dawid Kurzyniec,
which is avilable under Public Domain license.
For details see licenses/binary/Backport.PL
This product bundles JarAnalyzer v1.2 written by Kirk Knoernschild,
which is available under BSD license.
For details see licences/binary/JarAnalyzer.BSD
******************************************
******************************************
+4 -63
View File
@@ -217,70 +217,11 @@ and resource files are also released under the ASF license above.
*The exceptions for source release are as follows:
==================================================
For API & System Architecture Documentation Apache Fineract includes
following css and js packages.
This product bundles normalize v1.1.1 and v2.1.0, copyright Nicolas
Gallagher and Jonathan Neal, which is available under a MIT license.
For details, see licenses/source/normalize.MIT
This product bundles Modernizr v2.6.2, which is available under a MIT license.
For details, see licenses/source/modernizr.MIT
This product bundles filesaver, copyright Eli Grey, which is available under
a MIT license.
For details, see licenses/source/filesaver.MIT
This product bundles Glyphicons Halflings Regular, copyright Jan Kovarik,
which is available under a MIT license.
For details, see licenses/source/glyphicons.MIT
This product bundles jszip, copyright Stuart Knightley,
David Duponchel, Franz Buchinger and António Afonso, which is available
under a MIT license.
For details, see licenses/source/jszip.MIT
For API Documentation for Apache Fineract includes
following css and js packages:
This product bundles jQuery v1.7, v1.7.1, Copyright (c) 2011 John Resig,
which is available under a MIT license.
For details, see licenses/source/jQuery1.MIT
For details, see https://jquery.org/license/
This product bundles jQuery v1.9.1, v1.10.2, copyright jQuery Foundation,
Inc. which is available under a MIT license.
For details, see licenses/source/jQuery.MIT
This product bundles Respond v1.1.0, copyright Scott Jehl,
which is available under a MIT license.
For details, see licenses/source/respond.MIT
This product bundles matchMedia polyfill, copyright Scott Jehl,
which is available under a MIT license.
For details, see licenses/polyfill.MIT
This product bundles HTML5Shiv v3.6.2, copyright Alexander Farkas,
which is available under a MIT license.
For details, see licenses/source/html5shiv.MIT
This product bundles UglifyJS copyright Mihai Bazon,
which available under a BSD license.
For details, see licenses/source/uglify.BSD
This product bundles sizzle copyright jQuery Foundation and other
contributors, which is available under a MIT license.
For details, see licenses/source/sizzle.MIT
This product bundles some parts of es5-shim, copyright Kristopher Michael
Kowal and contributors, which is available under a MIT license.
For details, see licenses/source/es5shim.MIT
This product bundles toc v0.1.2, copyright Greg Allen,
which is available under a MIT license.
For details, see licenses/source/toc.MIT
This product bundles livejs Version 4, copyright Martin Kool and Q42,
which is available under a MIT license.
For details, see licenses/source/livejs.MIT
This product bundles HTML5 Boilerplate, which is under a MIT license.
For details, see licenses/source/h5bp.MIT.
******************************************
******************************************
+6 -76
View File
@@ -1,79 +1,9 @@
Apache Fineract
Copyright 2008-2016 The Apache Software Foundation
Copyright 2008-2025 The Apache Software Foundation
This product includes software developed by The Apache Software
Foundation (http://www.apache.org/).
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
Apache Fineract - notice for binary distribution
==========================================
Apache Fineract includes JavaMail API(compat) v1.5.0-b01.
Copyright (c) 1997-2013 Oracle and/or its affiliates. All rights reserved.
Fineract elects to include this software in this distribution under the
CDDL license. You can obtain a copy of the License at:
https://glassfish.java.net/public/CDDL+GPL.html
Apache Fineract includes all Jersey libraries (Jersey Core v1.17,
Jersey Json v1.17, Jersey Multipart v1.17, Jersey Server v1.17,
Jersey Servlet v1.17, Jersey Spring v1.17).
Copyright (c) 2010-2011 Oracle and/or its affiliates. All rights reserved.
Fineract elects to include this software in this distribution under the
CDDL license. You can obtain a copy of the License at:
https://glassfish.java.net/public/CDDL+GPL.html
Apache Fineract includes Logback Classic Module v1.1.2 and Logback Core
Module v1.1.2, Copyright (C) 1999-2012, QOS.ch.
All rights reserved. Fineract elects to include this software in this
distribution under the EPL license. You can obtain a copy of the License at:
http://www.eclipse.org/legal/epl-v10.html
Apache Fineract includes MIME Streaming Extension v1.6,
Copyright (c) 1997-2010 Oracle and/or its affiliates.
All rights reserved. Fineract elects to include this software in this
distribution under the CDDL license. You can obtain a copy of the License at:
https://glassfish.java.net/public/CDDL+GPL_1_1.html
Apache Fineract includes JUnit v3.8.1 created by Erich Gamma and Kent Beck.
Fineract elects to include this software in this distribution under the
CPL license. You can obtain a copy of the License at:
https://opensource.org/licenses/cpl1.0.txt
Apache Fineract includes Log4j Implemented Over SLF4J. Fineract elects to
include this software in this distribution under the Apache license.
You can obtain a copy of the License at:
http://apache.org/licenses/LICENSE-2.0
Apache Fineract includes Jackson Core v2.3.4, Jackson Annotations v2.3.0,
Jackson Databind v2.3.4, JAX RS Provider For JSON Content Type v1.9.2,
Xml Compatibility Extensions For Jackson v1.9.2 libraries.
Fineract elects to include this software in this distribution under the
Apache license. You can obtain a copy of the License at:
http://apache.org/licenses/LICENSE-2.0
Apache Fineract includes AspectJ Runtime v1.8.2, Copyright (c) 1999-2001
Xerox Corporation, 2002 Palo Alto Research Center, Incorporated (PARC) and
AspectJ Weaver v1.8.2 Copyright (c) 2002 Palo Alto Research Center,
Incorporated (PARC)., libraries. The library information is available at
(https://eclipse.org/aspectj/)
Apache Fineract includes IText(A Free Java PDF Library) v2.1.7 library,
Copyright 2007 Bruno Lowagie. The library information is available at
(http://developers.itextpdf.com/itext-java)
=====================
Apache OpenJPA NOTICE
OpenJPA includes software developed by the SERP project
Copyright (c) 2002-2006, A. Abram White. All rights reserved.
OpenJPA includes the persistence and orm schemas from the JPA specifications.
Copyright 2005-2014 Sun Microsystems, Inc. All rights reserved.
OpenJPA includes the persistence and orm schemas from the JPA specifications.
Copyright 2005-2009 Sun Microsystems, Inc. All rights reserved.
OpenJPA elects to include this software in this distribution under the
CDDL license. You can obtain a copy of the License at:
https://glassfish.dev.java.net/public/CDDL+GPL.html
The source code is available at:
https://glassfish.dev.java.net/source/browse/glassfish/
OpenJPA includes software written by Miroslav Nachev
This product includes third party libraries and resource files from
different providers. The details of the different packages and their
respective licenses can be found under "licenses"
+3 -3
View File
@@ -1,5 +1,5 @@
Apache Fineract
Copyright 2008-2016 The Apache Software Foundation
Copyright 2008-2025 The Apache Software Foundation
This product includes software developed by The Apache Software
Foundation (http://www.apache.org/).
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
+273
View File
@@ -0,0 +1,273 @@
{
"info": {
"_postman_id": "op-fineract-collection",
"name": "Fineract - OpenProject Integration",
"description": "Postman collection for Fineract OpenProject integration API endpoints.\n\nBase URL: {{baseUrl}}/fineract-provider/api/v1/openproject\n\nAuthentication: Basic Auth (Fineract user credentials)",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"auth": {
"type": "basic",
"basic": [
{
"key": "username",
"value": "{{fineractUser}}",
"type": "string"
},
{
"key": "password",
"value": "{{fineractPassword}}",
"type": "string"
}
]
},
"variable": [
{
"key": "baseUrl",
"value": "https://localhost:8443",
"type": "string"
},
{
"key": "fineractUser",
"value": "mifos",
"type": "string"
},
{
"key": "fineractPassword",
"value": "password",
"type": "string"
},
{
"key": "tenantId",
"value": "default",
"type": "string"
}
],
"item": [
{
"name": "Get Project Details",
"request": {
"method": "GET",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/openproject/project",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "openproject", "project"]
},
"description": "Returns the configured OpenProject project details (CBSNexora)."
}
},
{
"name": "Get Work Packages (All)",
"request": {
"method": "GET",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/openproject/work-packages?pageSize=25&offset=1",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "openproject", "work-packages"],
"query": [
{
"key": "pageSize",
"value": "25"
},
{
"key": "offset",
"value": "1"
}
]
},
"description": "Returns all work packages from the OpenProject project."
}
},
{
"name": "Get Work Packages (Open)",
"request": {
"method": "GET",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/openproject/work-packages?status=open&pageSize=25&offset=1",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "openproject", "work-packages"],
"query": [
{
"key": "status",
"value": "open"
},
{
"key": "pageSize",
"value": "25"
},
{
"key": "offset",
"value": "1"
}
]
},
"description": "Returns only open work packages."
}
},
{
"name": "Get Work Packages (Closed)",
"request": {
"method": "GET",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/openproject/work-packages?status=closed&pageSize=25&offset=1",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "openproject", "work-packages"],
"query": [
{
"key": "status",
"value": "closed"
},
{
"key": "pageSize",
"value": "25"
},
{
"key": "offset",
"value": "1"
}
]
},
"description": "Returns only closed work packages."
}
},
{
"name": "Get Status Summary",
"request": {
"method": "GET",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/openproject/summary",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "openproject", "summary"]
},
"description": "Returns a summary of all work packages grouped by status, type, and priority."
}
},
{
"name": "Create Work Package - Feature",
"request": {
"method": "POST",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"subject\": \"Integrate OpenProject with CBS Dashboard\",\n \"description\": \"Add OpenProject work package tracking to the CBS admin dashboard so project managers can view task progress directly from the banking system.\",\n \"type\": \"Feature\"\n}"
},
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/openproject/work-packages",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "openproject", "work-packages"]
},
"description": "Creates a new Feature work package in OpenProject.\n\nValid types: Task, Milestone, Summary task, Feature, Epic, User story, Bug, Incident, Support Ticket, Problem, Change Request, Enhancement"
}
},
{
"name": "Create Work Package - Task",
"request": {
"method": "POST",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"subject\": \"Setup CI/CD pipeline for CBS deployment\",\n \"description\": \"Configure automated build and deployment pipeline for the Core Banking System.\",\n \"type\": \"Task\"\n}"
},
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/openproject/work-packages",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "openproject", "work-packages"]
},
"description": "Creates a new Task work package in OpenProject."
}
},
{
"name": "Create Work Package - Bug",
"request": {
"method": "POST",
"header": [
{
"key": "fineract-platform-tenantid",
"value": "{{tenantId}}"
},
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"subject\": \"Fix loan repayment calculation rounding error\",\n \"description\": \"Loan repayment amounts show minor rounding differences when calculated with different interest methods.\",\n \"type\": \"Bug\"\n}"
},
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/openproject/work-packages",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "openproject", "work-packages"]
},
"description": "Creates a new Bug work package in OpenProject."
}
}
]
}
+276
View File
@@ -0,0 +1,276 @@
{
"info": {
"_postman_id": "rbi-feeds-collection",
"name": "RBI Feeds API - Fineract CBS",
"description": "RBI RSS Feed endpoints for fetching and retrieving RBI circulars, notifications, press releases etc.",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"auth": {
"type": "basic",
"basic": [
{
"key": "username",
"value": "mifos",
"type": "string"
},
{
"key": "password",
"value": "password",
"type": "string"
}
]
},
"variable": [
{
"key": "baseUrl",
"value": "https://localhost:8443/fineract-provider/api/v1",
"type": "string"
},
{
"key": "tenantId",
"value": "default",
"type": "string"
}
],
"item": [
{
"name": "1. Trigger Fetch (Run First)",
"request": {
"method": "POST",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{baseUrl}}/rbi-feeds/fetch",
"host": ["{{baseUrl}}"],
"path": ["rbi-feeds", "fetch"]
},
"description": "Fetches latest RSS feeds from rbi.org.in (5 categories: PRESS_RELEASE, NOTIFICATION, SPEECH, TENDER, PUBLICATION) and stores new items in the database. Run this FIRST to populate data."
},
"response": []
},
{
"name": "2. Get All Feeds",
"request": {
"method": "GET",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"url": {
"raw": "{{baseUrl}}/rbi-feeds",
"host": ["{{baseUrl}}"],
"path": ["rbi-feeds"]
},
"description": "Retrieve all RBI feed items sorted by publication date (newest first)."
},
"response": []
},
{
"name": "3. Get Feeds by Category - PRESS_RELEASE",
"request": {
"method": "GET",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"url": {
"raw": "{{baseUrl}}/rbi-feeds?category=PRESS_RELEASE",
"host": ["{{baseUrl}}"],
"path": ["rbi-feeds"],
"query": [
{
"key": "category",
"value": "PRESS_RELEASE"
}
]
},
"description": "Filter feeds by PRESS_RELEASE category."
},
"response": []
},
{
"name": "4. Get Feeds by Category - NOTIFICATION",
"request": {
"method": "GET",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"url": {
"raw": "{{baseUrl}}/rbi-feeds?category=NOTIFICATION",
"host": ["{{baseUrl}}"],
"path": ["rbi-feeds"],
"query": [
{
"key": "category",
"value": "NOTIFICATION"
}
]
},
"description": "Filter feeds by NOTIFICATION category."
},
"response": []
},
{
"name": "5. Get Feeds by Category - SPEECH",
"request": {
"method": "GET",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"url": {
"raw": "{{baseUrl}}/rbi-feeds?category=SPEECH",
"host": ["{{baseUrl}}"],
"path": ["rbi-feeds"],
"query": [
{
"key": "category",
"value": "SPEECH"
}
]
},
"description": "Filter feeds by SPEECH category."
},
"response": []
},
{
"name": "6. Get Feeds by Category - TENDER",
"request": {
"method": "GET",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"url": {
"raw": "{{baseUrl}}/rbi-feeds?category=TENDER",
"host": ["{{baseUrl}}"],
"path": ["rbi-feeds"],
"query": [
{
"key": "category",
"value": "TENDER"
}
]
},
"description": "Filter feeds by TENDER category."
},
"response": []
},
{
"name": "7. Get Feeds by Category - PUBLICATION",
"request": {
"method": "GET",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"url": {
"raw": "{{baseUrl}}/rbi-feeds?category=PUBLICATION",
"host": ["{{baseUrl}}"],
"path": ["rbi-feeds"],
"query": [
{
"key": "category",
"value": "PUBLICATION"
}
]
},
"description": "Filter feeds by PUBLICATION category."
},
"response": []
},
{
"name": "8. Get Single Feed by ID",
"request": {
"method": "GET",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"url": {
"raw": "{{baseUrl}}/rbi-feeds/1",
"host": ["{{baseUrl}}"],
"path": ["rbi-feeds", "1"]
},
"description": "Retrieve a single RBI feed item by its ID. Change the ID in the URL as needed."
},
"response": []
}
]
}
+284 -268
View File
@@ -1,135 +1,179 @@
Apache Fineract: A Platform for Microfinance [![Build Status](https://travis-ci.org/apache/fineract.svg?branch=develop)](https://travis-ci.org/apache/fineract) [![Docker Hub](https://img.shields.io/docker/pulls/apache/fineract.svg)](https://hub.docker.com/r/apache/fineract) [![Docker Build](https://img.shields.io/docker/cloud/build/apache/fineract.svg)](https://hub.docker.com/r/apache/fineract/builds)
============
# Apache Fineract
Fineract is a mature platform with open APIs that provides a reliable, robust, and affordable core banking solution for financial institutions offering services to the world’s 2 billion underbanked and unbanked.
<!-- TODO Reactivate when there is a working CI-CD instance: [![Swagger Validation](https://validator.swagger.io/validator?url=https://sandbox.mifos.community/fineract-provider/swagger-ui/fineract.yaml)](https://validator.swagger.io/validator/debug?url=https://sandbox.mifos.community/fineract-provider/swagger-ui/fineract.yaml) -->
[![Build](https://github.com/apache/fineract/actions/workflows/build-mariadb.yml/badge.svg?branch=develop)](https://github.com/apache/fineract/actions/workflows/build-mariadb.yml)
[![Docker Hub](https://img.shields.io/docker/pulls/apache/fineract.svg?logo=Docker)](https://hub.docker.com/r/apache/fineract)
[![Docker Build](https://github.com/apache/fineract/actions/workflows/publish-dockerhub.yml/badge.svg)](https://github.com/apache/fineract/actions/workflows/publish-dockerhub.yml)
[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=apache_fineract&metric=sqale_index)](https://sonarcloud.io/summary/new_code?id=apache_fineract)
[![Verified DPG](https://img.shields.io/badge/Verified-DPG-3333AB)](https://www.digitalpublicgoods.net/r/apache-fineract "Apache Fineract is a verified Digital Public Good under the Digital Public Goods Alliance.")
[Have a look at the FAQ on our Wiki at apache.org](https://cwiki.apache.org/confluence/display/FINERACT/FAQ) if this README does not answer what you are looking for. [Visit our JIRA Dashboard](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12335824) to find issues to work on, see what others are working on, or open new issues.
Apache Fineract is an open-source core banking platform providing a
flexible, extensible foundation for a wide range of financial services. By
making robust banking technology openly available, it lowers barriers for
institutions and innovators to reach underserved and unbanked populations.
[![Code Now! (Gitpod)](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/apache/fineract)
to start contributing to this project in the online web-based IDE GitPod.io right away!
(You may initially have to press F1 to Find Command and run "Java: Start Language Server".)
It's of course also possible to contribute with a "traditional" local development environment (see below).
Have a look at the [documentation](https://fineract.apache.org/docs/current), the [wiki](https://cwiki.apache.org/confluence/display/FINERACT) or at the [FAQ](https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=91554327), if this README does not answer what you are looking for.
Community
COMMUNITY
=========
If you are interested in contributing to this project, but perhaps don't quite know how and where to get started, please [join our developer mailing list](http://fineract.apache.org/#contribute), listen into our conversations, chime into threads, and just send us a "Hello!" introduction email; we're a friendly bunch, and look forward to hearing from you.
If you are interested in contributing to this project, but perhaps don't quite know how and where to get started, please [join our developer mailing list](http://fineract.apache.org/#contribute), listen into our conversations, chime into threads, or just send us a "Hello!" introduction email; we're a friendly bunch, and look forward to hearing from you. A more informal alternative is the [Fineract Slack channel](https://app.slack.com/client/T0F5GHE8Y/C028634A61L) (thank you, Mifos, for supporting the Slack channel!).
For the developer wiki, see [Contributor's Zone](https://cwiki.apache.org/confluence/display/FINERACT/Contributor%27s+Zone). Maybe [these how-to articles](https://cwiki.apache.org/confluence/display/FINERACT/How-to+articles) help you to get started.
In any case visit [our JIRA Dashboard](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12335824) to find issues to work on, see what others are doing, or open new issues.
In the moment you get started writing code, please consult our [CONTRIBUTING](CONTRIBUTING.md) guidelines, where you will find more information on subjects like coding style, testing and pull requests.
Requirements
REQUIREMENTS
============
* Java >= 11 (OpenJDK JVM is tested by our CI on Travis)
* MySQL 5.7
* min. 16GB RAM and 8 core CPU
* `MariaDB >= 11.5.2` or `PostgreSQL >= 17.0`
* `Java >= 21` (Azul Zulu JVM is tested by our CI on GitHub Actions)
You can run the required version of the database server in a container, instead of having to install it, like this:
docker run --name mysql-5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mysql -d mysql:5.7
and stop and destroy it like this:
docker rm -f mysql-5.7
Beware that this database container database keeps its state inside the container and not on the host filesystem. It is lost when you destroy (rm) this container. This is typically fine for development. See [Caveats: Where to Store Data on the database container documentation](https://hub.docker.com/_/mysql) re. how to make it persistent instead of ephemeral.
Tomcat v9 is only required if you wish to deploy the Fineract WAR to a separate external servlet container. Note that you do not require to install Tomcat to develop Fineract, or to run it in production if you use the self-contained JAR, which transparently embeds a servlet container using Spring Boot. (Until FINERACT-730, Tomcat 7/8 were also supported, but now Tomcat 9 is required.)
Tomcat (min. v10) is only required, if you wish to deploy the Fineract WAR to a separate external servlet container. You do not need to install Tomcat to run Fineract. We recommend the use of the self-contained JAR, which transparently embeds a servlet container using Spring Boot.
Instructions how to run for local development
SECURITY
============
For a list of known vulnerabilities, see [Apache Fineract Security Reports](https://fineract.apache.org/security.html).
If you believe you have found a new vulnerability, [let us know privately](https://fineract.apache.org/#contribute).
For details about security during development and deployment, see the documentation [here](https://fineract.apache.org/docs/current/#_security).
INSTRUCTIONS
============
Run the following commands:
1. `./gradlew createDB -PdbName=fineract_tenants`
1. `./gradlew createDB -PdbName=fineract_default`
1. `./gradlew bootRun`
The following how-to's assume you have Java installed, you cloned the repository (or downloaded and extracted a [specific version](https://github.com/apache/fineract/releases)) and you have a [database server](#database-and-tables) (MariaDB or PostgreSQL) running.
How to run for local development
---
Run the following commands in this order:
```bash
./gradlew createDB -PdbName=fineract_tenants
./gradlew createDB -PdbName=fineract_default
./gradlew devRun
```
This creates two databases and builds and runs Fineract, which will be listening for API requests on port 8443 (by default) now.
Confirm Fineract is ready with, for example:
```bash
curl --insecure https://localhost:8443/fineract-provider/actuator/health
```
To test authenticated endpoints, include credentials in your request:
```bash
curl --location \
https://localhost:8443/fineract-provider/api/v1/clients \
--header 'Content-Type: application/json' \
--header 'Fineract-Platform-TenantId: default' \
--header 'Authorization: Basic bWlmb3M6cGFzc3dvcmQ='
```
How to run for production
---
Running Fineract to try it out is relatively easy. If you intend to use it in a production environment, be aware that a proper deployment can be complex, costly, and time-consuming. Considerations include: Security, privacy, compliance, performance, service availability, backups, and more. The Fineract project does not provide a comprehensive guide for deploying Fineract in production. You might need skills in enterprise Java applications and more. Alternatively, you could pay a vendor for Fineract deployment and maintenance. You will find tips and tricks for deploying and securing Fineract in our official documentation and in the community-maintained wiki.
Instructions to build the JAR file
============
1. Clone the repository or download and extract the archive file to your local directory.
2. Run `./gradlew clean bootJar` to build a modern cloud native fully self contained JAR file which will be created at `build/libs` directory.
3. Start it using `java -jar build/libs/fineract-provider.jar` (does not require external Tomcat)
How to build the JAR file
---
Build a modern, cloud native, fully self contained JAR file:
```bash
./gradlew clean bootJar
```
The JAR will be created in the `fineract-provider/build/libs` directory.
As we are not allowed to include a JDBC driver in the built JAR, download a JDBC driver of your choice. For example:
```bash
wget https://dlm.mariadb.com/4174416/Connectors/java/connector-java-3.5.2/mariadb-java-client-3.5.2.jar
```
Start the JAR and specify the directory containing the JDBC driver using the loader.path option, for example:
```bash
java -Dloader.path=. -jar fineract-provider/build/libs/fineract-provider.jar
```
This does not require an external Tomcat.
The tenants database connection details are configured [via environment variables (as with Docker container)](#instructions-to-run-using-docker-or-podman), e.g. like this:
```bash
export FINERACT_HIKARI_PASSWORD=verysecret
...
java -jar fineract-provider.jar
```
Instructions to build a WAR file
============
1. Clone the repository or download and extract the archive file to your local directory.
2. Run `./gradlew clean bootWar` to build a traditional WAR file which will be created at `build/libs` directory.
3. Deploy this WAR to your Tomcat v9 Servlet Container.
How to build the WAR file
---
Build a traditional WAR file:
```bash
./gradlew :fineract-war:clean :fineract-war:war
```
The WAR will be created in the `fineract-war/build/libs` directory. Afterwards deploy the WAR to your Tomcat Servlet Container.
We recommend using the JAR instead of the WAR file deployment, because it's much easier.
Instructions to execute Integration Tests
============
> Note that if this is the first time to access MySQL DB, then you may need to reset your password.
Run the following commands, very similarly to how [.travis.yml](.travis.yml) does:
1. `./gradlew createDB -PdbName=fineract_tenants`
1. `./gradlew createDB -PdbName=fineract_default`
1. `./gradlew clean integrationTest`
Instructions to run and debug in Eclipse IDE
============
It is possible to run Fineract in Eclipse IDE and also to debug Fineract using Eclipse's debugging facilities.
To do this, you need to create the Eclipse project files and import the project into an Eclipse workspace:
1. Create Eclipse project files into the Fineract project by running `./gradlew cleanEclipse eclipse`
2. Import the fineract-provider project into your Eclipse workspace (File->Import->General->Existing Projects into Workspace, choose root directory fineract/fineract-provider)
3. Do a clean build of the project in Eclipse (Project->Clean...)
3. Run / debug Fineract by right clicking on org.apache.fineract.ServerApplication class and choosing Run As / Debug As -> Java Application. All normal Eclipse debugging features (breakpoints, watchpoints etc) should work as expected.
If you change the project settings (dependencies etc) in Gradle, you should redo step 1 and refresh the project in Eclipse.
You can also use Eclipse Junit support to run tests in Eclipse (Run As->Junit Test)
Finally, modifying source code in Eclipse automatically triggers hot code replace to a running instance, allowing you to immediately test your changes
Instructions to run using Docker and docker-compose
===================================================
How to run using Docker or Podman
---
It is possible to do a 'one-touch' installation of Fineract using containers (AKA "Docker").
Fineract now packs the mifos community-app web UI in it's docker deploy.
You can now run and test fineract with a GUI directly from the combined docker builds.
This includes the database running in a container.
This includes the database running in the container.
As Prerequisites, you must have `docker` and `docker-compose` installed on your machine; see
[Docker Install](https://docs.docker.com/install/) and
[Docker Compose Install](https://docs.docker.com/compose/install/).
As prerequisites, you must have `docker` and `docker-compose` installed on your machine; see
[Docker Install](https://docs.docker.com/install/) and [Docker Compose Install](https://docs.docker.com/compose/install/).
Alternatively, you can also use [Podman](https://github.com/containers/libpod)
(e.g. via `dnf install podman-docker`), and [Podman Compose](https://github.com/containers/podman-compose/)
(e.g. via `pip3 install podman-compose`) instead of Docker.
Now to run a new Fineract instance you can simply:
To run a new Fineract instance on Linux you can simply:
```bash
git clone https://github.com/apache/fineract.git
cd fineract
./gradlew :fineract-provider:jibDockerBuild -x test
```
On Windows, do this instead:
```cmd
git clone https://github.com/apache/fineract.git --config core.autocrlf=input
cd fineract
gradlew :fineract-provider:jibDockerBuild -x test
```
Install the Loki log driver and start:
```bash
docker plugin install grafana/loki-docker-driver:latest \
--alias loki --grant-all-permissions
docker compose -f docker-compose-development.yml up -d
```
The Fineract (back-end) should be running at https://localhost:8443/fineract-provider/ now.
Wait for https://localhost:8443/fineract-provider/actuator/health to return `{"status":"UP"}`.
You must go to https://localhost:8443 and remember to accept the self-signed SSL certificate of the API once in your browser.
1. `git clone https://github.com/apache/fineract.git ; cd fineract`
1. `docker-compose build`
1. `docker-compose up -d`
1. fineract (back-end) is running at https://localhost:8443/fineract-provider/
1. wait for https://localhost:8443/fineract-provider/actuator/health to return `{"status":"UP"}`
1. you must go to https://localhost:8443 and remember to accept the self-signed SSL certificate of the API once in your browser, otherwise you get a message that is rather misleading from the UI.
1. community-app (UI) is running at http://localhost:9090/?baseApiUrl=https://localhost:8443/fineract-provider&tenantIdentifier=default
1. login using default _username_ `mifos` and _password_ `password`
The [`docker-compose.yml`](docker-compose.yml) will build the `fineract` container from the source based on the [`Dockerfile`](Dockerfile). You could change that to use the pre-built container image instead of having to re-build it.
https://hub.docker.com/r/apache/fineract has a pre-built container image of this project, built continuously.
[Docker Hub](https://hub.docker.com/r/apache/fineract) has a pre-built container image of this project, built continuously.
You must specify the MySQL tenants database JDBC URL by passing it to the `fineract` container via environment
variables; please consult the [`docker-compose.yml`](docker-compose.yml) for exact details how to specify those.
_(Note that in previous versions, the `mysqlserver` environment variable used at `docker build` time instead of at
`docker run` time did something similar; this has changed in [FINERACT-773](https://issues.apache.org/jira/browse/FINERACT-773)),
and the `mysqlserver` environment variable is now no longer supported.)_
The logfiles and the Java Flight Recorder output are available in `PROJECT_ROOT/build/fineract/logs`. If you use IntelliJ then you can double-click on the `.jfr` file and open it with the IDE. You can also download [Azul Mission Control](https://www.azul.com/products/components/azul-mission-control/) to analyze the Java Flight Recorder file.
NOTE: If you have issues with the file permissions and Docker Compose then you might need to change the variable values for `FINERACT_USER` and `FINERACT_GROUP` in `PROJECT_ROOT/config/docker/env/fineract-common.env`. You can find out what values you need to put there with the following commands:
```bash
id -u ${USER}
id -g ${GROUP}
```
Please make sure that you are not checking in your changed values. The defaults should work for most people.
Instructions to run on Kubernetes
=================================
How to run on Kubernetes
---
General Clusters
----------------
### General Clusters
You can also run Fineract using containers on a Kubernetes cluster.
Make sure you set up and connect to your Kubernetes cluster.
@@ -137,219 +181,191 @@ You can follow [this](https://cwiki.apache.org/confluence/display/FINERACT/Insta
Now e.g. from your Google Cloud shell, run the following commands:
1. `git clone https://github.com/apache/fineract.git ; cd fineract/kubernetes`
1. `./kubectl-startup`
```bash
git clone https://github.com/apache/fineract.git
cd fineract/kubernetes
./kubectl-startup.sh
```
To shutdown and reset your Cluster, run:
```bash
./kubectl-shutdown.sh
```
./kubectl-shutdown
Using Minikube
--------------
### Using Minikube
Alternatively, you can run fineract on a local kubernetes cluster using [minikube](https://minikube.sigs.k8s.io/docs/).
As Prerequisites, you must have `minikube` and `kubectl` installed on your machine; see
As prerequisite you must have `minikube` and `kubectl` installed on your machine; see
[Minikube & Kubectl install](https://kubernetes.io/docs/tasks/tools/install-minikube/).
Now to run a new Fineract instance on Minikube you can simply:
To run a new Fineract instance on Minikube you can simply:
1. `git clone https://github.com/apache/fineract.git ; cd fineract/kubernetes`
1. `minikube start`
1. `./kubectl-startup.sh`
1. `minikube service fineract-server --url --https`
1. Fineract is now running at the printed URL (note HTTP), which you can check e.g. using:
```bash
git clone https://github.com/apache/fineract.git
cd fineract/kubernetes
minikube start
./kubectl-startup.sh
```
http --verify=no --timeout 240 --check-status get $(minikube service fineract-server --url --https)/fineract-provider/actuator/health
Wait for all pods to be ready:
```bash
kubectl get pods -w
```
Once all pods are running, access the Mifos web application:
```bash
minikube service mifos-community
```
This opens the Mifos X web application in your browser. The nginx reverse proxy in the mifos-community pod forwards API requests to the fineract-server backend.
**Default credentials:**
- Username: `mifos`
- Password: `password`
You can also access the Fineract API directly:
```bash
minikube service fineract-server --url --https
```
Fineract is now running at the printed URL, which you can check e.g. using:
```bash
http --verify=no --timeout 240 --check-status get $(minikube service fineract-server --url --https)/fineract-provider/actuator/health
```
To check the status of your containers on your local minikube Kubernetes cluster, run:
minikube dashboard
```bash
minikube dashboard
```
You can check Fineract logs using:
```bash
kubectl logs deployment/fineract-server
```
kubectl logs deployment/fineract-server
You can check Mifos web app logs using:
```bash
kubectl logs deployment/mifos-community
```
To shutdown and reset your cluster, run:
./kubectl-shutdown
We have [some open issues in JIRA with Kubernetes related enhancement ideas](https://jira.apache.org/jira/browse/FINERACT-783?jql=labels%20%3D%20kubernetes%20AND%20project%20%3D%20%22Apache%20Fineract%22%20) which you are welcome to contribute to.
```bash
./kubectl-shutdown.sh
```
Instructions to download Gradle wrapper
============
The file fineract-provider/gradle/wrapper/gradle-wrapper.jar binary is checked into this projects Git source repository,
but won't exist in your copy of the Fineract codebase if you downloaded a released source archive from apache.org.
In that case, you need to download it using the commands below:
How to enable External Message Broker (ActiveMQ or Apache Kafka)
---
wget --no-check-certificate -P fineract-provider/gradle/wrapper https://github.com/apache/fineract/raw/develop/fineract-provider/gradle/wrapper/gradle-wrapper.jar
There are two use-cases where external message broker is needed:
- External Business Events / Reliable Event Framework
- Executing Partitioned Spring Batch Jobs
(or)
External Events are business events, e.g.: `ClientCreated`, which might be important for third party systems. Apache Fineract supports ActiveMQ (or other JMS compliant brokers) and Apache Kafka endpoints for sending out Business Events. By default, they are not emitted.
curl --insecure -L https://github.com/apache/fineract/raw/develop/fineract-provider/gradle/wrapper/gradle-wrapper.jar > fineract-provider/gradle/wrapper/gradle-wrapper.jar
In case of a large deployment with millions of accounts, the Close of Business Day Spring Batch job may run several hours. In order to speed up this task, remote partitioning of the job is supported. The Manager node partitions breaks up the COB job into smaller pieces (sub tasks), which then can be executed on multiple Worker nodes in parallel. The worker nodes are notified either by ActiveMQ or Kafka regarding their new sub tasks.
### ActiveMQ
JMS based messaging is disabled by default. In `docker-compose-postgresql-activemq.yml` an example is shown, where ActiveMQ is enabled. In that configuration one Spring Batch Manager instance and two Spring Batch Worker instances are created.
Spring based events should be disabled and jms based event handling should be enabled. Furthermore, proper broker JMS URL should be configured.
```
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_ENABLED=true
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_SPRING_EVENTS_ENABLED=false
FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_BROKER_URL=tcp://activemq:61616
```
For additional ActiveMQ related configuration please take a look to the `application.properties` where the supported configuration parameters are listed with their default values.
### Kafka
Kafka support is also disabled by default. In `docker-compose-postgresql-kafka.yml` an example is shown, where self-hosted Kafka is enabled for both External Events and Spring Batch Remote Job execution.
During the development Fineract was tested with PLAINTEXT Kafka brokers without authentication and with AWS MSK using IAM authentication. The extra [JAR file](https://github.com/aws/aws-msk-iam-auth/releases) required for IAM authentication is already added to the classpath.
An example MSK setup can be found in `docker-compose-postgresql-kafka-msk.yml`.
The full list of supported Kafka related properties is documented in the [Fineract Platform documentation](https://fineract.apache.org/docs/current/).
Instructions to run Apache RAT (Release Audit Tool)
============
1. Extract the archive file to your local directory.
2. Run `./gradlew rat`. A report will be generated under build/reports/rat/rat-report.txt
DATABASE AND TABLES
===================
You can run the required version of the database server in a container, instead of having to install it, like this:
docker run --name mariadb-11.5 -p 3306:3306 -e MARIADB_ROOT_PASSWORD=mysql -d mariadb:11.5.2
and stop and destroy it like this:
docker rm -f mariadb-11.5
Beware that this container database keeps its state inside the container and not on the host filesystem. It is lost when you destroy (rm) this container. This is typically fine for development. See [Caveats: Where to Store Data on the database container documentation](https://hub.docker.com/_/mariadb) regarding how to make it persistent instead of ephemeral.
Checkstyle and Spotless
MySQL/MariaDB and UTC timezone
---
With release `1.8.0` we introduced improved date time handling in Fineract. Date time is stored in UTC, and UTC timezone enforced even on the JDBC driver, e. g. for MySQL:
```
serverTimezone=UTC&useLegacyDatetimeCode=false&sessionVariables=time_zone='-00:00'
```
If you use MySQL as Fineract database, the following configuration is highly recommended:
* Run the application in UTC (the default command line in our Docker image has the necessary parameters already set)
* Run the MySQL database server in UTC (if you use managed services like AWS RDS, then this should be the default anyway, but it would be good to double-check)
In case Fineract and MySQL do not run in UTC, MySQL might save date time values differently from PostgreSQL
Example scenario: If the Fineract instance runs in timezone: GMT+2, and the local date time is 2022-08-11 17:15 ...
* ... then PostgreSQL saves the LocalDateTime as is: 2022-08-11 17:15
* ... and MySQL saves the LocalDateTime in UTC: 2022-08-11 15:15
* ... but when we read the date time from PostgreSQL or from MySQL, both systems give us the same value: 2022-08-11 17:15 GMT+2
If a previously used Fineract instance didn't run in UTC (backward compatibility), all prior dates will be read wrongly by MySQL. This can cause issues, when you run the database migration scripts.
Recommendation: Shift all dates in your database by the timezone offset that your Fineract instance used.
CONNECTION POOL CONFIGURATION
=======
Please check `application.properties` to see which connection pool settings can be tweaked. The associated environment variables are prefixed with `FINERACT_HIKARI_*`. You can find more information about specific connection pool settings at the [HikariCP Github repository](https://github.com/brettwooldridge/HikariCP?tab=readme-ov-file#gear-configuration-knobs-baby).
NOTE: We keep backwards compatibility until one of the next releases to ensure that things are working as expected. Environment variables prefixed `fineract_tenants_*` can still be used to configure the database connection, but we strongly encourage using `FINERACT_HIKARI_*` with more options.
RELEASES
============
This project enforces its code conventions using [checkstyle.xml](fineract-provider/config/checkstyle/checkstyle.xml) through Checkstyle and [fineract-formatting-preferences.xml](config/fineract-formatting-preferences.xml) through Spotless. They are configured to run automatically during the normal Gradle build, and fail if there are any violations detected. You can run the following command to automatically fix spotless violations:
[Official releases](https://fineract.apache.org/#downloads) are created quarterly, at the end of each quarter. Our [documented release procedure](https://fineract.apache.org/docs/current/#_releases) follows the [ASF release policy](https://www.apache.org/legal/release-policy.html).
`./gradlew spotlessApply`
See <https://cwiki.apache.org/confluence/display/FINERACT/Fineract+Releases> for an archive of historical release notes along with JIRA issues relevant to each release.
Since some checks are present in both Checkstyle and Spotless, the same command can help you fix some of the Checkstyle violations (but not all, other Checkstyle violations need to fixed manually).
See <https://github.com/apache/fineract/releases> for a list of PRs and contributors for each release.
You can also check for Spotless violations (only; but normally don't have to, because the regular build full already includes this anyway):
EOL/unsupported releases are [archived](https://www.apache.org/legal/release-policy.html#archived).
`./gradlew spotlessCheck`
We recommend that you configure your favourite Java IDE to match those conventions. For Eclipse, you can go to
Window > Java > Code Style and import our [config/fineractdev-formatter.xml](config/fineractdev-formatter.xml) under formatter section and [config/fineractdev-cleanup.xml](config/fineractdev-cleanup.xml) under Clean up section. The same fineractdev-formatter.xml configuration file (that can be used in Eclipse IDE) is also used by Spotless to both check for violations and autoformat code on the CLI.
You could also use Checkstyle directly in your IDE (but you don't neccesarily have to, it may just be more convenient for you). For Eclipse, use https://checkstyle.org/eclipse-cs/ and load our checkstyle.xml into it, for IntelliJ you can use [CheckStyle-IDEA](https://plugins.jetbrains.com/plugin/1065-checkstyle-idea).
Versioned build products created from the `develop` branch will include `-SNAPSHOT`. See [related settings](https://github.com/qoomon/gradle-git-versioning-plugin) near `version` and `gitVersioning` in `build.gradle` for details.
Code Coverage Reports
LICENSE
============
The project uses Jacoco to measure unit tests code coverage, to generate a report run the following command:
This project is licensed under [Apache License Version 2.0](https://github.com/apache/fineract/blob/develop/APACHE_LICENSETEXT.md).
`./gradlew clean build jacocoTestReport`
Generated reports can be found in build/code-coverage directory.
Versions
============
The latest stable release can be viewed on the develop branch: [Latest Release on Develop](https://github.com/apache/fineract/tree/develop "Latest Release").
The progress of this project can be viewed here: [View change log](https://github.com/apache/fineract/blob/develop/CHANGELOG.md "Latest release change log")
License
============
This project is licensed under Apache License Version 2.0. See <https://github.com/apache/incubator-fineract/blob/develop/LICENSE.md> for reference.
The Connector/J JDBC Driver client library from MariaDB.org, which is licensed under the LGPL,
is used in development when running integration tests that use the Flyway library. That JDBC
driver is however not included in and distributed with the Fineract product and is not
required to use the product.
If you are developer and object to using the LGPL licensed Connector/J JDBC driver,
simply do not run the integration tests that use the Flyway library.
The Connector/J JDBC Driver client library from [MariaDB](https://www.mariadb.org) is licensed under the LGPL.
The library is often used in development when running integration tests that use the Liquibase library. That JDBC
driver is however not distributed with the Fineract product and is not required to use the product.
If you are a developer and object to using the LGPL licensed Connector/J JDBC driver,
simply do not run the integration tests that use the Liquibase library and use another JDBC driver.
As discussed in [LEGAL-462](https://issues.apache.org/jira/browse/LEGAL-462), this project therefore
complies with the [Apache Software Foundation third-party license policy](https://www.apache.org/legal/resolved.html).
Apache Fineract Platform API
PLATFORM API
============
The API for the Fineract-platform (project named 'Apache Fineract') is documented in the API-docs under <b><i>Full API Matrix</i></b> and can be viewed [here](https://demo.fineract.dev/fineract-provider/api-docs/apiLive.htm "API Documentation").
Fineract does not provide a UI, but provides an API. Running Fineract locally, the Swagger documentation can be accessed under `https://localhost:8443/fineract-provider/swagger-ui/index.html`. A live version can be accessed via [this Sandbox](https://sandbox.mifos.community/fineract-provider/swagger-ui/index.html) (not hosted by us).
API clients (Web UIs, Mobile, etc.)
============
* https://github.com/openMF/community-app/ is the "traditional" Reference Client App Web UI for the API offered by this project
* https://github.com/openMF/web-app is the next generation UI rewrite also using this project's API
* https://github.com/openMF/android-client is an Android Mobile App client for this project's API
* https://github.com/openMF has more related proejcts
Online Demos
============
* [fineract.dev](https://www.fineract.dev) always runs the latest version of this code
* [demo.mifos.io](https://demo.mifos.io) A demo account is provided for users to experience the functionality of the Community App. Users can use "mifos" for USERNAME and "password" for PASSWORD (without quotation marks).
Developers
============
Please see <https://cwiki.apache.org/confluence/display/FINERACT/Contributor%27s+Zone> for the developers wiki page.
Please refer to <https://cwiki.apache.org/confluence/display/FINERACT/Fineract+101> for the first-time contribution to this project.
Please see <https://cwiki.apache.org/confluence/display/FINERACT/How-to+articles> for technical details to get started.
Please visit [our JIRA Dashboard](https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12335824) to find issues to work on, see what others are working on, or open new issues.
Video Demonstration
============
Apache Fineract / Mifos X Demo (November 2016) - <https://www.youtube.com/watch?v=h61g9TptMBo>
Governance and Policies
=======================
[Becoming a Committer](https://cwiki.apache.org/confluence/display/FINERACT/Becoming+a+Committer)
documents the process through which you can become a committer in this project.
Error Handling Guidelines
------------------
* When catching exceptions, either rethrow them, or log them. Either way, include the root cause by using `catch (SomeException e)` and then either `throw AnotherException("..details..", e)` or `LOG.error("...context...", e)`.
* Completely empty catch blocks are VERY suspicous! Are you sure that you want to just "swallow" an exception? Really, 100% totally absolutely sure?? ;-) Such "normal exceptions which just happen sometimes but are actually not really errors" are almost always a bad idea, can be a performance issue, and typically are an indication of another problem - e.g. the use of a wrong API which throws an Exception for an expected condition, when really you would want to use another API that instead returns something empty or optional.
* In tests, you'll typically never catch exceptions, but just propagate them, with `@Test void testXYZ() throws SomeException, AnotherException`..., so that the test fails if the exception happens. Unless you actually really want to test for the occurence of a problem - in that case, use [JUnit's Assert.assertThrows()](https://github.com/junit-team/junit4/wiki/Exception-testing) (but not `@Test(expected = SomeException.class)`).
* Never catch `NullPointerException` & Co.
Logging Guidelines
------------------
* We use [SLF4J](http://www.slf4j.org) as our logging API.
* Never, ever, use `System.out` and `System.err` or `printStackTrace()` anywhere, but always `LOG.info()` or `LOG.error()` instead.
* Use placeholder (`LOG.error("Could not... details: {}", something, exception)`) and never String concatenation (`LOG.error("Could not... details: " + something, exception)`)
* Which Log Level is appropriate?
* `LOG.error()` should be used to inform an "operator" running Fineract who supervises error logs of an unexpected condition. This includes technical problems with an external "environment" (e.g. can't reach a database), and situations which are likely bugs which need to be fixed in the code. They do NOT include e.g. validation errors for incoming API requests - that is signaled through the API response - and does (should) not be logged as an error. (Note that there is no _FATAL_ level in SLF4J; a "FATAL" event should just be logged as an _ERROR_.)
* `LOG.warn()` should be using sparingly. Make up your mind if it's an error (above) - or not!
* `LOG.info()` can be used notably for one-time actions taken during start-up. It should typically NOT be used to print out "regular" application usage information. The default logging configuration always outputs the application INFO logs, and in production under load, there's really no point to constantly spew out lots of information from frequently traversed paths in the code about what's going on. (Metrics are a better way.) `LOG.info()` *can* be used freely in tests though.
* `LOG.debug()` can be used anywhere in the code to log things that may be useful during investigations of specific problems. They are not shown in the default logging configuration, but can be enabled for troubleshooting. Developers should typically "turn down" most `LOG.info()` which they used while writing a new feature to "follow along what happens during local testing" to `LOG.debug()` for production before we merge their PRs.
* `LOG.trace()` is not used in Fineract.
Pull Requests
-------------
If your PR is failing to pass our CI build due to a test failure, then:
1. Understand if the failure is due to your PR or an unrelated unstable test.
1. If you suspect it is because of a "flaky" test, and not due to a change in your PR, then please do not simply wait for an active maintainer to come and help you, but instead be a proactive contributor to the project - see next steps. Do understand that we may not review PRs that are not green - it is the contributor's (that's you!) responsability to get a proposed PR to pass the build, not primarily the maintainers.
1. Search for the name of the failed test on https://issues.apache.org/jira/, e.g. for `AccountingScenarioIntegrationTest` you would find [FINERACT-899](https://issues.apache.org/jira/browse/FINERACT-899).
1. If you happen to read in such bugs that tests were just recently fixed, or ignored, then rebase your PR to pick up that change.
1. If you find previous comments "proving" that the same test has arbitrarily failed in at least 3 past PRs, then please do yourself raise a small separate new PR proposing to add an `@Disabled // TODO FINERACT-123` to the respective unstable test (e.g. [#774](https://github.com/apache/fineract/pull/774)) with the commit message mentioning said JIRA, as always. (Please do NOT just `@Disabled` any existing tests mixed in as part of your larger PR.)
1. If there is no existing JIRA for the test, then first please evaluate whether the failure couldn't be a (perhaps strange) impact of the change you are proposing after all. If it's not, then please raise a new JIRA to document the suspected Flaky Test, and link it to [FINERACT-850](https://issues.apache.org/jira/browse/FINERACT-850). This will allow the next person coming along hitting the same test failure to easily find it, and eventually propose to ignore the unstable test.
1. Then (only) Close and Reopen your PR, which will cause a new build, to see if it passes.
1. Of course, we very much appreciate you then jumping onto any such bugs and helping us figure out how to fix all ignored tests!
[Pull Request Size Limit](https://cwiki.apache.org/confluence/display/FINERACT/Pull+Request+Size+Limit)
documents that we cannot accept huge "code dump" Pull Requests, with some related suggestions.
Guideline for new Feature commits involving Refactoring: If you are submitting PR for a new Feature,
and it involves refactoring, try to differentiate "new Feature code" with "Refactored" by placing
them in different commits. This helps review to review your code faster.
We have an automated Bot which marks pull requests as "stale" after a while, and ultimately automatically closes them.
Dependency Upgrades
-------------------
This project uses a number of 3rd-party libraries, and this section provides some guidance for their updates. We have set-up [Renovate's bot](https://renovate.whitesourcesoftware.com) to automatically raise Pull Requests for our review when new dependencies are available [FINERACT-962](https://issues.apache.org/jira/browse/FINERACT-962).
Upgrades sometimes require package name changes. Changed code should ideally have test coverage.
Our `ClasspathHellDuplicatesCheckRuleTest` detects classes that appear in more than 1 JAR. If a version bump in [`build.gradle`](https://github.com/search?q=repo%3Aapache%2Ffineract+filename%3Abuild.gradle&type=Code&ref=advsearch&l=&l=) causes changes in transitives dependencies, then you may have to add related `exclude` to our [`dependencies.gradle`](https://github.com/apache/fineract/search?q=dependencies.gradle). Running `./gradlew dependencies` helps to understand what is required.
Releasing
---------
[How to Release Apache Fineract](https://cwiki.apache.org/confluence/x/DRwIB) documents the process how we make the source code that is available here in this Git repository into a binary release ZIP available on http://fineract.apache.org.
More Information
============
More details of the project can be found at <https://cwiki.apache.org/confluence/display/FINERACT>.
Apache Fineract supports client code generation using [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) based on the [OpenAPI Specification](https://swagger.io/specification/). For more instructions on how to generate client code, check [this section](https://fineract.apache.org/docs/current/#_generate_api_client) of the Fineract documentation. [This video](https://www.youtube.com/watch?v=FlVd-0YAo6c) documents the use of the Swagger-UI.
+30
View File
@@ -0,0 +1,30 @@
# Static Weaving Configuration
This document explains the static weaving setup for JPA entities in the Fineract project.
## Overview
Static weaving is a process that enhances JPA entities at build time to improve runtime performance. This is done using the `org.eclipse.persistence.tools.weaving.jpa.StaticWeave` which processes the compiled classes and applies the necessary bytecode transformations.
## Configuration
The static weaving is configured in `static-weaving.gradle` and applied to all Java projects that contain JPA entities.
## How It Works
1. **Compilation**: Java source files are compiled to the standard classes directory (`build/classes/java/main`).
2. **Weaving**: Weaving happens as last step of **compileJava** task, which outputs them to the standard classes directory (`build/classes/java/main`).
## Adding Static Weaving to a Module
1. Add JPA entities to `src/main/java`
2. Ensure there's a `persistence.xml` file in `src/main/resources/jpa/static-weaving/module/[module-name]/`
3. The build will automatically detect and apply static weaving
## Troubleshooting
If you encounter issues with static weaving:
1. Check that the `persistence.xml` file exists in the correct location
2. Verify that the output directories are being created correctly
3. Check the build logs for any weaving-related errors
+375
View File
@@ -0,0 +1,375 @@
{
"info": {
"_postman_id": "sanctions-screening-001",
"name": "Sanctions Screening API",
"description": "API collection for UN Security Council consolidated sanctions list screening.\n\nEndpoints:\n- Screen client names against sanctions list\n- Load sanctions XML data\n- Check sanctions database status\n\nBase URL: {{baseUrl}}/fineract-provider/api/v1",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"auth": {
"type": "basic",
"basic": [
{
"key": "username",
"value": "{{username}}",
"type": "string"
},
{
"key": "password",
"value": "{{password}}",
"type": "string"
}
]
},
"variable": [
{
"key": "baseUrl",
"value": "https://localhost:8443"
},
{
"key": "username",
"value": "mifos"
},
{
"key": "password",
"value": "password"
},
{
"key": "tenantId",
"value": "default"
}
],
"item": [
{
"name": "Sanctions Screening",
"description": "Screen client names against the UN Security Council consolidated sanctions list",
"item": [
{
"name": "Screen Name (GET)",
"request": {
"method": "GET",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/sanctions/screen?name=Mohammad Ali",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "sanctions", "screen"],
"query": [
{
"key": "name",
"value": "Mohammad Ali",
"description": "Name to screen against sanctions list"
}
]
},
"description": "Screen a client name against the UN Security Council consolidated sanctions list using GET method.\n\n**Response when match found (FLAGGED):**\n```json\n{\n \"screenedName\": \"Mohammad Ali\",\n \"matchFound\": true,\n \"status\": \"FLAGGED\",\n \"message\": \"Potential match found in UN Security Council consolidated sanctions list. Manual review required before proceeding.\",\n \"matchCount\": 2,\n \"matches\": [...]\n}\n```\n\n**Response when no match (CLEAR):**\n```json\n{\n \"screenedName\": \"John Smith\",\n \"matchFound\": false,\n \"status\": \"CLEAR\",\n \"message\": \"No match found in UN Security Council consolidated sanctions list.\",\n \"matchCount\": 0,\n \"matches\": []\n}\n```"
}
},
{
"name": "Screen Name (POST)",
"request": {
"method": "POST",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"AL-QAIDA\"\n}"
},
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/sanctions/screen",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "sanctions", "screen"]
},
"description": "Screen a client name against sanctions list using POST method with JSON body."
}
},
{
"name": "Screen Name - Individual (FLAGGED example)",
"request": {
"method": "POST",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"ERIC BADEGE\"\n}"
},
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/sanctions/screen",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "sanctions", "screen"]
},
"description": "Example: Screen a known sanctioned individual name. Should return FLAGGED status."
}
},
{
"name": "Screen Name - Clear (no match)",
"request": {
"method": "POST",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"Aditya Kumar\"\n}"
},
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/sanctions/screen",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "sanctions", "screen"]
},
"description": "Example: Screen a name that does not exist in sanctions list. Should return CLEAR status."
}
},
{
"name": "Screen Name - Entity (FLAGGED example)",
"request": {
"method": "POST",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"TALIBAN\"\n}"
},
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/sanctions/screen",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "sanctions", "screen"]
},
"description": "Example: Screen a known sanctioned entity name. Should return FLAGGED status."
}
}
]
},
{
"name": "Sanctions Management",
"description": "Load and manage sanctions data",
"item": [
{
"name": "Get Sanctions Status",
"request": {
"method": "GET",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/sanctions/status",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "sanctions", "status"]
},
"description": "Get the count of active sanctions entries in the database.\n\n**Response:**\n```json\n{\n \"totalActiveEntries\": 1002,\n \"status\": \"ACTIVE\"\n}\n```"
}
},
{
"name": "Load Sanctions XML",
"request": {
"method": "POST",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/xml",
"type": "text"
}
],
"body": {
"mode": "file",
"file": {
"src": ""
}
},
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/sanctions/load",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "sanctions", "load"]
},
"description": "Upload and load the UN consolidated sanctions XML file into the database.\n\nSelect the `consolidatedLegacyByPRN.xml` file in the Body > Binary section.\n\n**Response:**\n```json\n{\n \"message\": \"Sanctions data loaded successfully\",\n \"entriesLoaded\": 1002,\n \"totalActive\": 1002\n}\n```"
}
}
]
},
{
"name": "Screening Activity Logs",
"description": "View sanctions screening activity logs — every search is recorded",
"item": [
{
"name": "Get All Screening Logs",
"request": {
"method": "GET",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/sanctions/logs",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "sanctions", "logs"]
},
"description": "Get all sanctions screening activity logs (most recent first).\n\n**Response:**\n```json\n[\n {\n \"id\": 1,\n \"screenedName\": \"ERIC BADEGE\",\n \"screeningResult\": \"FLAGGED\",\n \"matchCount\": 1,\n \"matchedNames\": \"ERIC BADEGE\",\n \"screeningSource\": \"CLIENT_CREATION\",\n \"screenedOn\": \"2026-03-16T10:30:00Z\",\n \"screenedBy\": 1\n }\n]\n```"
}
},
{
"name": "Get FLAGGED Logs Only",
"request": {
"method": "GET",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/sanctions/logs?result=FLAGGED",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "sanctions", "logs"],
"query": [
{
"key": "result",
"value": "FLAGGED",
"description": "Filter by result: FLAGGED or CLEAR"
}
]
},
"description": "Get only FLAGGED screening logs — shows all searches that matched a sanctioned entry."
}
},
{
"name": "Get CLEAR Logs Only",
"request": {
"method": "GET",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/sanctions/logs?result=CLEAR",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "sanctions", "logs"],
"query": [
{
"key": "result",
"value": "CLEAR",
"description": "Filter by result: FLAGGED or CLEAR"
}
]
},
"description": "Get only CLEAR screening logs — shows all searches that did not match any sanctioned entry."
}
},
{
"name": "Search Logs by Name",
"request": {
"method": "GET",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenantId}}",
"type": "text"
},
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"url": {
"raw": "{{baseUrl}}/fineract-provider/api/v1/sanctions/logs?name=ERIC",
"host": ["{{baseUrl}}"],
"path": ["fineract-provider", "api", "v1", "sanctions", "logs"],
"query": [
{
"key": "name",
"value": "ERIC",
"description": "Search logs by screened name (partial match)"
}
]
},
"description": "Search screening logs by the name that was screened (partial, case-insensitive match)."
}
}
]
}
]
}
+235
View File
@@ -0,0 +1,235 @@
{
"info": {
"_postman_id": "savings-products-collection",
"name": "Fineract - Savings Products",
"description": "Postman collection for Savings Product APIs.\n\nThis resource exposes 6 endpoints:\n1. POST /v1/savingsproducts\n2. PUT /v1/savingsproducts/{productId}\n3. GET /v1/savingsproducts\n4. GET /v1/savingsproducts/{productId}\n5. GET /v1/savingsproducts/template\n6. DELETE /v1/savingsproducts/{productId}\n\nThe create request below uses the mandatory fields required by the backend validator. If you switch accountingRule to cash-based or accrual-periodic, you must also supply the corresponding accounting mappings.",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"auth": {
"type": "basic",
"basic": [
{
"key": "username",
"value": "{{username}}",
"type": "string"
},
{
"key": "password",
"value": "{{password}}",
"type": "string"
}
]
},
"variable": [
{
"key": "base_url",
"value": "https://localhost:8443/fineract-provider/api/v1",
"description": "Fineract API base URL"
},
{
"key": "tenant_id",
"value": "default",
"description": "Tenant identifier"
},
{
"key": "username",
"value": "mifos",
"description": "API username"
},
{
"key": "password",
"value": "password",
"description": "API password"
},
{
"key": "product_id",
"value": "1",
"description": "Savings product id returned by the create request"
}
],
"item": [
{
"name": "Savings Products",
"item": [
{
"name": "Create Savings Product",
"event": [
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [
"pm.test('Status code is 200', function () {",
" pm.response.to.have.status(200);",
"});",
"",
"pm.test('Resource id returned', function () {",
" var json = pm.response.json();",
" pm.expect(json).to.have.property('resourceId');",
" pm.collectionVariables.set('product_id', json.resourceId);",
"});"
]
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenant_id}}"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"name\": \"Passbook Savings\",\n \"shortName\": \"PBSV\",\n \"description\": \"Daily compounding savings product\",\n \"currencyCode\": \"USD\",\n \"digitsAfterDecimal\": 2,\n \"inMultiplesOf\": 0,\n \"locale\": \"en\",\n \"nominalAnnualInterestRate\": 5.0,\n \"interestCompoundingPeriodType\": 1,\n \"interestPostingPeriodType\": 4,\n \"interestCalculationType\": 1,\n \"interestCalculationDaysInYearType\": 365,\n \"accountingRule\": 1,\n \"withdrawalFeeForTransfers\": false,\n \"enforceMinRequiredBalance\": false,\n \"allowOverdraft\": false,\n \"withHoldTax\": false,\n \"isDormancyTrackingActive\": false,\n \"charges\": [\n {\n \"id\": 1\n }\n ]\n}"
},
"url": {
"raw": "{{base_url}}/savingsproducts",
"host": [
"{{base_url}}"
],
"path": [
"savingsproducts"
]
},
"description": "Create a savings product.\n\nRequired by backend validator:\n- name\n- shortName\n- currencyCode\n- digitsAfterDecimal\n- nominalAnnualInterestRate\n- interestCompoundingPeriodType\n- interestPostingPeriodType\n- interestCalculationType\n- interestCalculationDaysInYearType\n- accountingRule\n\nIf accountingRule = 2 or 3, the backend also expects accounting mappings."
},
"response": []
},
{
"name": "Update Savings Product",
"request": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenant_id}}"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"description\": \"Updated savings product description\",\n \"locale\": \"en\",\n \"nominalAnnualInterestRate\": 5.75\n}"
},
"url": {
"raw": "{{base_url}}/savingsproducts/{{product_id}}",
"host": [
"{{base_url}}"
],
"path": [
"savingsproducts",
"{{product_id}}"
]
},
"description": "Update an existing savings product by product id."
},
"response": []
},
{
"name": "List Savings Products",
"request": {
"method": "GET",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenant_id}}"
}
],
"url": {
"raw": "{{base_url}}/savingsproducts",
"host": [
"{{base_url}}"
],
"path": [
"savingsproducts"
]
},
"description": "Lists all savings products."
},
"response": []
},
{
"name": "Get Savings Product By ID",
"request": {
"method": "GET",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenant_id}}"
}
],
"url": {
"raw": "{{base_url}}/savingsproducts/{{product_id}}",
"host": [
"{{base_url}}"
],
"path": [
"savingsproducts",
"{{product_id}}"
]
},
"description": "Retrieves a savings product by id. You can also call the same endpoint with ?template=true."
},
"response": []
},
{
"name": "Get Savings Product Template",
"request": {
"method": "GET",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenant_id}}"
}
],
"url": {
"raw": "{{base_url}}/savingsproducts/template",
"host": [
"{{base_url}}"
],
"path": [
"savingsproducts",
"template"
]
},
"description": "Returns template data with dropdown options and default values for savings product creation."
},
"response": []
},
{
"name": "Delete Savings Product",
"request": {
"method": "DELETE",
"header": [
{
"key": "Fineract-Platform-TenantId",
"value": "{{tenant_id}}"
}
],
"url": {
"raw": "{{base_url}}/savingsproducts/{{product_id}}",
"host": [
"{{base_url}}"
],
"path": [
"savingsproducts",
"{{product_id}}"
]
},
"description": "Deletes a savings product by id."
},
"response": []
}
],
"description": "Savings product master APIs."
}
]
}
+1
View File
@@ -0,0 +1 @@
{"username":"mifos", "password":"password"}
+932
View File
@@ -0,0 +1,932 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
// TODO: this is work in progress, please follow FINERACT-1171
buildscript {
ext {
jacocoVersion = '0.8.12'
retrofitVersion = '2.9.0'
okhttpVersion = '4.9.3'
fineractCustomProjects = []
fineractJavaProjects = subprojects.findAll{
[
'fineract-core',
'fineract-security',
'fineract-cob',
'fineract-validation',
'fineract-command',
'fineract-accounting',
'fineract-provider',
'fineract-branch',
'fineract-document',
'fineract-investor',
'fineract-charge',
'fineract-rates',
'fineract-tax',
'fineract-loan-origination',
'fineract-loan',
'fineract-savings',
'fineract-current-product',
'fineract-report',
'fineract-mix',
'integration-tests',
'twofactor-tests',
'oauth2-tests',
'fineract-client',
'fineract-client-feign',
'fineract-avro-schemas',
'fineract-e2e-tests-core',
'fineract-e2e-tests-runner',
'fineract-progressive-loan',
'fineract-progressive-loan-embeddable-schedule-generator',
'fineract-working-capital-loan'
].contains(it.name)
}
fineractPublishProjects = subprojects.findAll{
[
'fineract-avro-schemas',
'fineract-client',
'fineract-client-feign',
'fineract-core',
'fineract-security',
'fineract-cob',
'fineract-validation',
'fineract-command',
'fineract-accounting',
'fineract-provider',
'fineract-investor',
'fineract-charge',
'fineract-rates',
'fineract-tax',
'fineract-loan-origination',
'fineract-loan',
'fineract-savings',
'fineract-report',
'fineract-branch',
'fineract-document',
'fineract-progressive-loan',
'fineract-progressive-loan-embeddable-schedule-generator',
'fineract-working-capital-loan'
].contains(it.name)
}
npmRepository = 'https://npm.pkg.github.com'
}
repositories {
maven { url 'https://plugins.gradle.org/m2/' }
}
dependencies {
classpath 'com.bmuschko:gradle-cargo-plugin:2.9.0'
classpath 'org.eclipse.persistence:eclipselink:4.0.6'
classpath 'jakarta.ws.rs:jakarta.ws.rs-api:3.1.0'
classpath 'com.google.cloud.tools:jib-layer-filter-extension-gradle:0.3.0'
classpath 'org.apache.commons:commons-lang3:3.18.0'
classpath 'io.swagger.core.v3:swagger-jaxrs2-jakarta:2.2.22'
classpath 'jakarta.servlet:jakarta.servlet-api:6.1.0'
}
}
plugins {
id 'me.qoomon.git-versioning' version '6.4.4'
id "org.barfuin.gradle.taskinfo" version "2.2.0"
id 'com.adarshr.test-logger' version '4.0.0'
id 'com.diffplug.spotless' version '6.25.0' apply false
id 'org.nosphere.apache.rat' version '0.8.1' apply false
id 'com.github.hierynomus.license' version '0.16.1' apply false
id 'com.github.jk1.dependency-license-report' version '2.9' apply false
id 'org.zeroturnaround.gradle.jrebel' version '1.2.0' apply false
id 'org.springframework.boot' version '3.5.6' apply false
id 'net.ltgt.errorprone' version '4.1.0' apply false
id 'io.swagger.core.v3.swagger-gradle-plugin' version '2.2.23' apply false
id 'com.gorylenko.gradle-git-properties' version '2.4.2' apply false
id 'org.asciidoctor.jvm.convert' version '4.0.5' apply false
id 'org.asciidoctor.jvm.pdf' version '4.0.5' apply false
id 'com.google.cloud.tools.jib' version '3.4.5' apply false
id 'org.sonarqube' version '6.0.1.5171'
id 'com.github.andygoossens.modernizer' version '1.10.0' apply false
id 'com.github.spotbugs' version '6.0.26' apply false
id 'se.thinkcode.cucumber-runner' version '0.0.11' apply false
id "com.github.davidmc24.gradle.plugin.avro-base" version "1.9.1" apply false
id 'org.openapi.generator' version '7.8.0' apply false
id 'com.gradleup.shadow' version '8.3.5' apply false
id 'me.champeau.jmh' version '0.7.1' apply false
id 'org.cyclonedx.bom' version '3.1.0' apply false
id 'com.docktape.swagger-brake' version '2.7.0' apply false
}
apply from: "${rootDir}/buildSrc/src/main/groovy/org.apache.fineract.release.gradle"
description = '''\
Run as:
gradle clean bootRun'''
version = '0.0.0-SNAPSHOT'
gitVersioning.apply {
refs {
considerTagsOnBranches = true
describeTagPattern = '.*(\\d+\\.\\d+\\.\\d+).*'
describeTagFirstParent = false
branch("release\\/\\d+\\.\\d+\\.\\d+") {
version = '${describe.tag.version.major}.${describe.tag.version.minor}.${describe.tag.version.patch}'
}
branch("maintenance\\/\\d+\\.\\d+") {
version = '${describe.tag.version.major}.${describe.tag.version.minor}.${describe.tag.version.patch}'
}
tag("(\\d+\\.\\d+\\.\\d+)") {
version = '${describe.tag.version.major}.${describe.tag.version.minor}.${describe.tag.version.patch}'
}
}
rev {
version = '${describe.tag.version.major}.${describe.tag.version.minor.next}.0-SNAPSHOT'
}
}
ext['groovy.version'] = '4.0.17'
ext['swaggerFile'] = "$rootDir/fineract-provider/build/resources/main/static/fineract.json".toString().replace(" ", "%20")
// Apply static weaving configuration to all subprojects
subprojects { subproject ->
apply from: rootProject.file('static-weaving.gradle')
}
allprojects {
group = 'org.apache.fineract'
repositories {
mavenCentral()
}
configurations.configureEach {
resolutionStrategy {
dependencySubstitution {
// Substitution is to resolve CVE-2025-12183
substitute module('org.lz4:lz4-java') using module('at.yawk.lz4:lz4-java:1.10.1')
}
}
}
configurations {
implementation {
exclude group: 'commons-logging', module: 'commons-logging'
}
api {
canBeResolved = true
}
}
apply plugin: 'com.adarshr.test-logger'
apply plugin: 'com.diffplug.spotless'
apply plugin: 'com.github.hierynomus.license'
apply plugin: 'net.ltgt.errorprone'
tasks.withType(JavaCompile).configureEach {
options.errorprone {
disableWarningsInGeneratedCode = true
disable(
"CanIgnoreReturnValueSuggester",
"SameNameButDifferent", // Until errorprone recognizes Lombok
"MultiVariableDeclaration", // Until errorprone recognizes Lombok
"UnnecessaryDefaultInEnumSwitch", // FINERACT-1911
"AssertEqualsArgumentOrderChecker",
"RemoveUnusedImports" // For generated code
)
error(
"DefaultCharset",
"StringSplitter",
"MutablePublicArray",
"EqualsGetClass",
"FutureReturnValueIgnored"
)
}
}
apply plugin: 'org.nosphere.apache.rat'
apply plugin: 'com.github.jk1.dependency-license-report'
// Configuration for the sonarqube plugin is now in GitHub Actions
// Configuration for the spotless plugin
// https://github.com/diffplug/spotless/tree/main/plugin-gradle
spotless {
format 'misc', {
target '**/*.md', '**/*.properties', '**/.gitignore', '**/.openapi-generator-ignore', '**/*.yml', '**/*.xml', '**/**.json', '**/*.sql'
targetExclude '**/build/**', '**/bin/**', '**/.settings/**', '**/.idea/**', '**/.gradle/**', '**/gradlew.bat', '**/licenses/**', '**/banner.txt', '.vscode/**', '.profileconfig.json'
indentWithSpaces(4)
endWithNewline()
trimTrailingWhitespace()
}
groovyGradle {
target '*.gradle', '**/*.gradle'
targetExclude '**/build/**', '/**/build.gradle' // TODO: temporary disabled on build.gradle until someone fix this issue: https://github.com/diffplug/spotless/issues/1807
greclipse()
indentWithSpaces(4)
endWithNewline()
trimTrailingWhitespace()
}
lineEndings 'UNIX'
}
// Configuration for Gradle license plug-in
// https://github.com/hierynomus/license-gradle-plugin
license {
header rootProject.file("$rootDir/APACHE_LICENSETEXT.md")
excludes([
"**/gradlew*",
"**/git.properties",
"**/*.html",
"**/templates/**",
"**/features/**",
"**/results/**",
"**/package-info.java",
"**/keystore.jks",
"**/legacy-docs/**",
"**/banner.txt",
"**/build.gradle.mustache",
"**/pom.mustache",
"**/avro/**/*.java",
"**/org/apache/fineract/client/**/*.java"
])
strictCheck true
}
licenseReport {
outputDir = "$projectDir/licenses"
}
// Configuration for Apache Release Audit Tool task
// https://github.com/eskatos/creadur-rat-gradle
rat {
verbose = false
reportDir = file("$buildDir/reports/rat")
excludes = [
'**/src/main/templates/**/*.mustache',
'**/.dockerignore',
'**/*.launch',
'**/licenses/**',
'**/*.md',
'**/*.adoc',
'**/*.puml',
'**/*.github/**',
'**/MANIFEST.MF',
'**/spring.factories',
'**/org.springframework.boot.autoconfigure.AutoConfiguration.imports',
'**/*.json',
'**/*.json.template',
'**/*.txt',
'**/*.log',
'**/fineractdev-eclipse-preferences.epf',
'**/features/**',
'**/templates/**',
'**/results/**',
'**/.classpath',
'**/.project',
'**/.idea/**',
'**/*.ipr',
'**/*.iws',
'**/.settings/**',
'**/bin/**',
'**/.git/**',
'**/.gitignore',
'**/.openapi-generator-ignore',
'**/.gitkeep',
'**/*.iml',
'**/config/swagger/templates/**',
// Notice files
'**/NOTICE_RELEASE',
'**/NOTICE_SOURCE',
// gradle
'**/.gradle/**',
'**/gradlew',
'**/gradlew.bat',
'**/gradle/wrapper/gradle-wrapper.properties',
'**/caches/**',
'**/daemon/**',
'**/native/**',
'**/wrapper/**',
'**/build/**',
// Api Docs
'**/legacy-docs/*.*',
'**/docs/system-architecture/.htaccess',
'**/docs/system-architecture/404.html',
'**/docs/system-architecture/index.html',
'**/docs/system-architecture/**/*.xml',
'**/bootstrap-3.0.0/assets/application.js',
'**/system-architecture/js/plugins.js',
// Apache License
'**/bootstrap-3.0.0/assets/less.js',
'**/css/bootstrap-3.0.0/**/*.*',
// Public Domain See http://www.JSON.org/js.html
'**/bootstrap-3.0.0/assets/json2.js.htm',
// MIT License
'**/modernizr-2.6.2.min.js',
'**/css/normalize.css',
'**/assets/filesaver.js',
'**/css/fonts/glyphicons-halflings-regular.svg',
'**/assets/jszip.js',
'**/assets/jquery.js',
'**/legacy-docs/jquery-1.7.min.js',
'**/css/toc-0.1.2/**/*.*',
'**/docs/system-architecture/css/main.css',
'**/system-architecture/js/vendor/jquery-1.9.1.min.js',
'**/system-architecture/js/vendor/toc-0.1.2/jquery.toc.min.js',
'**/assets/respond.min.js',
'**/assets/html5shiv.js',
// BSD License
'**/assets/uglify.js',
// Ignore out folder
'**/out/**',
// Git build info
"**/git.properties",
".mailmap",
'**/images/diag-*.svg',
'**/*.avsc',
"**/generated/**/*MapperImpl.java",
'**/META-INF/fineract-test.config',
// Apache-specific GitHub metadata settings file
'/.asf.yaml'
]
}
}
// NOTE: dynamically load all custom modules
file("${rootDir}/custom").eachDir { companyDir ->
if('build' != companyDir.name && 'docker' != companyDir.name) {
file("${rootDir}/custom/${companyDir.name}").eachDir { categoryDir ->
if('build' != categoryDir.name) {
file("${rootDir}/custom/${companyDir.name}/${categoryDir.name}").eachDir { moduleDir ->
if('build' != moduleDir.name) {
project.fineractJavaProjects.add(project(":custom:${companyDir.name}:${categoryDir.name}:${moduleDir.name}"))
project.fineractCustomProjects.add(project(":custom:${companyDir.name}:${categoryDir.name}:${moduleDir.name}"))
}
}
}
}
}
}
configure(project.fineractJavaProjects) {
// NOTE: order matters!
apply plugin: 'java'
apply plugin: 'idea'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
withSourcesJar()
withJavadocJar()
}
// Add performance optimizations
configurations.configureEach {
resolutionStrategy {
cacheChangingModulesFor 0, 'seconds'
cacheDynamicVersionsFor 0, 'seconds'
}
}
tasks.withType(JavaCompile).configureEach {
options.incremental = true
options.fork = true
outputs.cacheIf { true }
options.compilerArgs << '-parameters'
options.encoding = 'UTF-8'
options.compilerArgs << '-Xlint:unchecked'
options.compilerArgs << '-Xlint:deprecation'
if (project.hasProperty('warnings') && project.warnings.contains('fail')) {
options.compilerArgs << '-Werror'
}
if (project.hasProperty('warnings') && project.warnings.contains('none')) {
options.compilerArgs << '-nowarn'
}
if (project.plugins.hasPlugin('org.springframework.boot')) {
options.generatedSourceOutputDirectory = file("$buildDir/generated/sources/annotationProcessor/java/main")
}
options.generatedSourceOutputDirectory = file("$buildDir/generated/sources/annotationProcessor/java/main")
}
apply plugin: 'eclipse'
apply plugin: 'checkstyle'
apply plugin: 'jacoco'
apply plugin: 'com.github.spotbugs'
apply plugin: 'com.github.andygoossens.modernizer'
apply from: "${rootDir}/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle"
group = 'org.apache.fineract'
configurations.named('spotbugs').configure {
resolutionStrategy.eachDependency {
if (it.requested.group == 'org.ow2.asm') {
it.useVersion '9.5'
it.because "Asm 9.5 is required for JDK 21 support"
}
}
}
configurations {
api.setCanBeResolved(true)
}
tasks.withType(Copy).configureEach {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
tasks.withType(JavaCompile).configureEach {
options.compilerArgs += [
"-Xlint:cast",
"-Xlint:auxiliaryclass",
"-Xlint:dep-ann",
"-Xlint:divzero",
"-Xlint:empty",
"-Xlint:exports",
"-Xlint:fallthrough",
"-Xlint:finally",
"-Xlint:module",
"-Xlint:opens",
"-Xlint:options",
"-Xlint:overloads",
"-Xlint:overrides",
"-Xlint:path",
"-Xlint:processing",
"-Xlint:removal",
"-Xlint:requires-automatic",
"-Xlint:requires-transitive-automatic",
"-Xlint:try",
"-Xlint:varargs",
"-Xlint:preview",
"-Xlint:static",
// -Werror needs to be disabled because EclipseLink's static weaving doesn't generate warning-free code
// and during an IntelliJ recompilation, it fails
//"-Werror",
"-Xmaxwarns",
"1500",
"-Xmaxerrs",
"1500"
]
// TODO FINERACT-959 (gradually) enable -Xlint:all (see "javac -help -X")
options.deprecation = true
}
check {
dependsOn(rat, licenseMain, licenseTest)
}
dependencies {
spotbugsPlugins 'jp.skypencil.findbugs.slf4j:bug-pattern:1.5.0@jar'
}
// Configuration for the spotless plugin
// https://github.com/diffplug/spotless/tree/main/plugin-gradle
spotless {
java {
targetExclude '**/build/**', '**/bin/**', '**/out/**'
importOrder() //sort imports alphabetically
removeUnusedImports()
eclipse().configFile "$rootDir/config/fineractdev-formatter.xml"
endWithNewline()
trimTrailingWhitespace()
// Enforce style modifier order
custom 'Modifier ordering', {
def modifierRanking = [
public : 1,
protected : 2,
private : 3,
abstract : 4,
default : 5,
static : 6,
final : 7,
transient : 8,
volatile : 9,
synchronized: 10,
native : 11,
strictfp : 12]
// Find any instance of multiple modifiers. Lead with a non-word character to avoid
// accidental matching against for instance, "an alternative default value"
it.replaceAll(/\W(?:public |protected |private |abstract |default |static |final |transient |volatile |synchronized |native |strictfp ){2,}/, {
// Do not replace the leading non-word character. Identify the modifiers
it.replaceAll(/(?:public |protected |private |abstract |default |static |final |transient |volatile |synchronized |native |strictfp ){2,}/, {
// Sort the modifiers according to the ranking above
it.split().sort({ modifierRanking[it] }).join(' ') + ' '
}
)
}
)
}
}
lineEndings 'UNIX'
}
// If we are running Gradle within Eclipse to enhance classes,
// set the classes directory to point to Eclipse's default build directory
if (project.hasProperty('env') && project.getProperty('env') == 'eclipse') {
sourceSets.main.java.outputDir = file("$projectDir/bin/main")
}
// Configuration for the Checkstyle plugin
// https://docs.gradle.org/current/userguide/checkstyle_plugin.html
dependencies {
checkstyle 'com.puppycrawl.tools:checkstyle:11.0.0'
checkstyle 'com.github.sevntu-checkstyle:sevntu-checks:1.44.1'
}
// Configuration for JaCoCo code coverage task
// https://www.eclemma.org/jacoco/
jacoco {
toolVersion = jacocoVersion
reportsDirectory = file("$buildDir/reports/jacoco")
}
jacocoTestReport {
reports {
html.required = true
xml.required = true
html.outputLocation = layout.buildDirectory.dir('code-coverage')
}
}
// Configuration for the errorprone plugin
// https://github.com/tbroyer/gradle-errorprone-plugin
dependencies {
errorprone "com.google.errorprone:error_prone_core:2.35.1"
}
tasks.withType(JavaCompile).configureEach {
options.errorprone {
enabled = project.gradle.startParameter.taskNames.contains('build') || project.gradle.startParameter.taskNames.contains('check')
if (project.path == ':fineract-client') {
excludedPaths = '.*/build/generated/java/src/main/java/.*'
}
if (project.path == ':fineract-client-feign') {
excludedPaths = '.*/build/generated/java/src/main/java/.*'
}
disable(
// TODO Remove disabled checks from this list, by fixing remaining usages
"UnusedVariable",
"TypeParameterUnusedInFormals",
"EmptyBlockTag",
"MissingSummary",
"InvalidParam",
"ReturnFromVoid",
"AlmostJavadoc",
"InvalidBlockTag",
"JavaUtilDate", // TODO FINERACT-1298
"ReturnValueIgnored",
"DirectInvocationOnMock",
"CanIgnoreReturnValueSuggester",
"SameNameButDifferent", // Until errorprone recognizes Lombok
"MultiVariableDeclaration", // Until errorprone recognizes Lombok
"UnnecessaryDefaultInEnumSwitch" // FINERACT-1911
)
error(
"DefaultCharset",
"RemoveUnusedImports",
"WaitNotInLoop",
"ThreeLetterTimeZoneID",
"VariableNameSameAsType",
"UnnecessaryParentheses",
"MultipleTopLevelClasses",
"MixedMutabilityReturnType",
"AssertEqualsArgumentOrderChecker",
"EmptySetMultibindingContributions",
"BigDecimalEquals",
"MixedArrayDimensions",
"PackageLocation",
"UseBinds",
"BadImport",
"IntLongMath",
"FloatCast",
"ReachabilityFenceUsage",
"StreamResourceLeak",
"TruthIncompatibleType",
"ByteBufferBackingArray",
"OrphanedFormatString",
"CatchAndPrintStackTrace",
"ObjectToString",
"StringSplitter",
"AssertThrowsMultipleStatements",
"BoxedPrimitiveConstructor",
"EmptyCatch",
"BoxedPrimitiveEquality",
"SynchronizeOnNonFinalField",
"WildcardImport",
"FutureReturnValueIgnored",
"PrivateConstructorForNoninstantiableModule",
"ClassCanBeStatic",
"ClassNewInstance",
"UnnecessaryStaticImport",
"UnsafeFinalization",
"JavaTimeDefaultTimeZone",
"JodaPlusMinusLong",
"SwitchDefault",
"VarTypeName",
"ArgumentSelectionDefectChecker",
"CompareToZero",
"InjectOnConstructorOfAbstractClass",
"ImmutableEnumChecker",
"NarrowingCompoundAssignment",
"MissingCasesInEnumSwitch",
"ReferenceEquality",
"UndefinedEquals",
"UnescapedEntity",
"ModifyCollectionInEnhancedForLoop",
"NonCanonicalType",
"InvalidInlineTag",
"MutablePublicArray",
"StaticAssignmentInConstructor",
"ProtectedMembersInFinalClass",
"OperatorPrecedence",
"EqualsGetClass",
"EqualsUnsafeCast",
"DoubleBraceInitialization",
"UnusedNestedClass",
"UnusedMethod",
"ModifiedButNotUsed",
"InconsistentCapitalization",
"MissingOverride",
// TODO enable these remaining checks (one by one)
// "InvalidBlockTag",
// "InconsistentOverloads",
// "MethodCanBeStatic",
// "Var",
// "ConstantField",
// "UnnecessaryDefaultInEnumSwitch",
// "FieldCanBeFinal"
)
}
}
check {
dependsOn(rat, licenseMain, licenseTest)
}
dependencies {
implementation (
'ch.qos.logback:logback-core',
'org.slf4j:slf4j-api',
'org.slf4j:log4j-over-slf4j',
'org.slf4j:jul-to-slf4j',
)
implementation ("ch.qos.logback:logback-classic") {
exclude(module: "slf4j-api")
}
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation( 'org.mockito:mockito-core',
'org.mockito:mockito-junit-jupiter',
'org.junit.jupiter:junit-jupiter-api',
'org.junit.jupiter:junit-jupiter-engine',
'org.junit.jupiter:junit-jupiter-params',
'org.junit.platform:junit-platform-suite', // required to be able to run tests directly under Eclipse, see FINERACT-943 & FINERACT-1021
'org.bouncycastle:bcpkix-jdk18on',
'org.bouncycastle:bcprov-jdk18on',
'org.bouncycastle:bcutil-jdk18on',
'org.awaitility:awaitility',
)
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
}
test {
useJUnitPlatform()
if (project.hasProperty('excludeTests')) {
filter {
excludeTestsMatching project.property('excludeTests')
}
}
}
testlogger {
logLevel 'quiet'
}
// Configuration for spotbugs plugin
// https://github.com/spotbugs/spotbugs-gradle-plugin
// To generate an HTML report instead of XML
spotbugs {
// reportLevel = 'high'
// reportLevel = com.github.spotbugs.snom.Confidence.DEFAULT
showProgress = false
excludeFilter = file("$rootDir/config/spotbugs/exclude.xml")
}
// https://github.com/spotbugs/spotbugs-gradle-plugin/issues/242
spotbugsMain {
reports {
html {
enabled = true
stylesheet = 'fancy-hist.xsl'
}
}
}
spotbugsTest {
reports {
html {
enabled = true
stylesheet = 'fancy-hist.xsl'
}
}
}
// Configuration for https://github.com/andygoossens/gradle-modernizer-plugin
modernizer {
includeTestClasses = true
failOnViolations = true
violationLogLevel="error"
javaVersion = project.targetCompatibility
ignoreGeneratedClasses = true
// Rules can be found here: https://github.com/gaul/modernizer-maven-plugin/blob/master/modernizer-maven-plugin/src/main/resources/modernizer.xml
exclusions = [
'java/util/Optional.get:()Ljava/lang/Object;' // Disable forcing the usage of Optional.orElseThrow(java.util.function.Supplier<? extends X>)
]
}
tasks.withType(Javadoc).tap {
configureEach {
options.addStringOption('Xdoclint:none', '-quiet')
options.encoding = 'UTF-8'
// Ignore any errors during javadoc generation
failOnError = false
}
}
}
configure(project.fineractCustomProjects) {
compileJava {
dependsOn = []
}
dependencies {
implementation (
'org.springframework:spring-context',
'ch.qos.logback:logback-core',
'org.slf4j:slf4j-api',
'org.slf4j:log4j-over-slf4j',
'org.slf4j:jul-to-slf4j',
)
implementation ("ch.qos.logback:logback-classic") {
exclude(module: "slf4j-api")
}
compileOnly('org.projectlombok:lombok')
annotationProcessor('org.projectlombok:lombok')
annotationProcessor('org.mapstruct:mapstruct-processor')
annotationProcessor('org.springframework.boot:spring-boot-autoconfigure-processor')
annotationProcessor('org.springframework.boot:spring-boot-configuration-processor')
testImplementation ('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'com.jayway.jsonpath', module: 'json-path'
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
exclude group: 'jakarta.activation'
exclude group: 'javax.activation'
exclude group: 'org.skyscreamer'
}
testImplementation( 'org.mockito:mockito-core',
'org.mockito:mockito-inline',
'org.mockito:mockito-junit-jupiter',
'org.junit.jupiter:junit-jupiter-api',
'org.junit.jupiter:junit-jupiter-engine',
'org.junit.platform:junit-platform-suite', // required to be able to run tests directly under Eclipse, see FINERACT-943 & FINERACT-1021
'org.bouncycastle:bcpkix-jdk18on',
'org.bouncycastle:bcprov-jdk18on',
'org.bouncycastle:bcutil-jdk18on',
'org.awaitility:awaitility',
'io.github.classgraph:classgraph',
'io.cucumber:cucumber-core',
'io.cucumber:cucumber-java:7.20.1',
'io.cucumber:cucumber-java8:7.20.1',
'io.cucumber:cucumber-junit-platform-engine:7.20.1',
'io.cucumber:cucumber-spring:7.20.1',
)
testCompileOnly('org.projectlombok:lombok')
testAnnotationProcessor('org.projectlombok:lombok')
testAnnotationProcessor('org.mapstruct:mapstruct-processor')
testAnnotationProcessor('org.springframework.boot:spring-boot-autoconfigure-processor')
testAnnotationProcessor('org.springframework.boot:spring-boot-configuration-processor')
}
}
configure(project.fineractPublishProjects) {
apply plugin: 'maven-publish'
if (!project.hasProperty('noSign')) {
apply plugin: 'signing'
}
publishing {
publications {
mavenJava(MavenPublication) {
groupId 'org.apache.fineract'
artifactId project.name
version "${project.version}-SNAPSHOT"
from components.java
versionMapping {
usage('java-api') {
fromResolutionOf('runtimeClasspath')
}
usage('java-runtime') {
fromResolutionResult()
}
}
pom {
name = "Fineract: ${project.name}"
description = 'A secure, multi-tenanted microfinance platform'
url = 'https://fineract.apache.org'
licenses {
license {
name = 'The Apache License, Version 2.0'
url = 'http://www.apache.org/licenses/LICENSE-2.0.html'
}
}
scm {
connection = 'scm:git:https://github.com/apache/fineract.git'
developerConnection = 'scm:git:git://github.com:apache/fineract.git'
url = 'https://fineract.apache.org/'
}
}
}
}
repositories {
def releaseUrl = 'https://repository.apache.org/content/repositories/releases'
def stagingUrl = 'https://repository.apache.org/content/repositories/snapshots'
maven {
name 'apache'
url hasProperty('fineract.release.version') ? releaseUrl : stagingUrl
credentials {
username "${findProperty('fineract.config.username')}"
password "${findProperty('fineract.config.password')}"
}
}
}
}
if (!project.hasProperty('noSign')) {
signing {
sign publishing.publications.mavenJava
}
}
}
// Configuration for CycloneDX SBOM generator
// https://github.com/CycloneDX/cyclonedx-gradle-plugin
apply plugin: 'org.cyclonedx.bom'
cyclonedxBom {
projectType = "application"
includeBomSerialNumber = true
includeLicenseText = true
}
tasks.withType(org.cyclonedx.gradle.CyclonedxDirectTask).configureEach {
includeMetadataResolution.set(false)
}
tasks.register('printSourceSetInformation') {
doLast {
sourceSets.each { srcSet ->
println "[" + srcSet.name + "]"
print "-->Source directories: " + srcSet.allJava.srcDirs + "\n"
print "-->Output directories: " + srcSet.output.classesDirs.files + "\n"
print "-->Compile classpath:\n"
srcSet.compileClasspath.files.each {
print " " + it.path + "\n"
}
println ""
}
}
}
tasks.withType(Checkstyle).configureEach {
exclude("**/*.avsc")
}
+75
View File
@@ -0,0 +1,75 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import static org.slf4j.LoggerFactory.*
plugins {
id 'io.spring.dependency-management' version '1.1.7'
id 'groovy'
id 'java-gradle-plugin'
id 'groovy-gradle-plugin'
}
//Suppress errors related to invalid org.eclipse.* maven poms versions.
def loggerFactory = getILoggerFactory()
def noOpMethod = getILoggerFactory().getClass().getDeclaredMethod("addNoOpLogger", String.class)
noOpMethod.setAccessible(true)
noOpMethod.invoke(loggerFactory, "io.spring.gradle.dependencymanagement.internal.maven.EffectiveModelBuilder")
apply from: "${projectDir}/src/main/groovy/org.apache.fineract.dependencies.gradle"
description = 'Fineract Gradle Plugin'
repositories {
gradlePluginPortal()
mavenCentral()
}
configurations.all {
resolutionStrategy {
dependencySubstitution {
// Substitution is to resolve CVE-2025-12183
substitute module('org.lz4:lz4-java') using module('at.yawk.lz4:lz4-java:1.10.1')
}
}
}
dependencies {
implementation 'com.sun.activation:jakarta.activation'
implementation 'com.sun.mail:jakarta.mail'
implementation 'org.freemarker:freemarker'
implementation ('com.tmatesoft.svnkit:svnkit') {
exclude group: 'net.i2p.crypto', module: 'eddsa'
}
implementation 'org.bouncycastle:bcprov-jdk18on'
implementation 'org.bouncycastle:bcutil-jdk18on'
implementation 'org.bouncycastle:bcpg-jdk18on'
implementation 'org.eclipse.jgit:org.eclipse.jgit'
implementation 'org.eclipse.jgit:org.eclipse.jgit.gpg.bc'
implementation 'org.eclipse.jgit:org.eclipse.jgit.ssh.apache'
implementation 'com.vdurmont:semver4j'
implementation 'org.beryx:text-io'
implementation 'commons-io:commons-io'
implementation 'com.squareup.okhttp3:okhttp'
implementation 'com.squareup.okhttp3:logging-interceptor'
implementation 'com.squareup.retrofit2:retrofit'
implementation 'com.squareup.retrofit2:converter-jackson'
implementation 'com.fasterxml.jackson.core:jackson-databind'
implementation 'com.squareup.okhttp3:okhttp'
}
@@ -0,0 +1,310 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
apply plugin: 'io.spring.dependency-management'
// Configuration for the dependency management plugin
// https://github.com/spring-gradle-plugins/dependency-management-plugin
dependencyManagement {
imports {
mavenBom 'com.squareup.okhttp3:okhttp-bom:4.12.0'
mavenBom 'org.slf4j:slf4j-bom:2.0.17'
mavenBom 'io.micrometer:micrometer-bom:1.13.6'
mavenBom 'org.springframework.boot:spring-boot-dependencies:3.5.6'
mavenBom 'io.awspring.cloud:spring-cloud-aws-dependencies:3.2.1'
mavenBom 'io.opentelemetry:opentelemetry-bom:1.44.1'
mavenBom 'org.jetbrains.kotlin:kotlin-bom:2.0.21'
mavenBom 'org.junit:junit-bom:5.11.3'
mavenBom 'com.fasterxml.jackson:jackson-bom:2.19.2'
mavenBom 'io.cucumber:cucumber-bom:7.20.1'
mavenBom 'org.mockito:mockito-bom:5.14.2'
mavenBom 'software.amazon.awssdk:bom:2.29.9'
mavenBom 'io.github.resilience4j:resilience4j-bom:2.2.0'
mavenBom 'org.testcontainers:testcontainers-bom:1.20.4'
mavenBom 'org.glassfish.jersey:jersey-bom:3.1.10'
}
dependencies {
// We use fixed versions, instead of inheriting them from the Spring BOM, to be able to be on more recent ones.
// We do not use :+ to get the latest available version available on Maven Central, as that could suddenly break things.
// We use the Renovate Bot to automatically propose Pull Requests (PRs) when upgrades for all of these versions are available.
dependency 'ch.qos.logback:logback-core:1.5.19'
dependency 'ch.qos.logback:logback-classic:1.5.19'
dependency 'ch.qos.logback.contrib:logback-json-classic:0.1.5'
dependency 'ch.qos.logback.contrib:logback-jackson:0.1.5'
dependency 'org.codehaus.janino:janino:3.1.12'
dependency 'org.eclipse.persistence:org.eclipse.persistence.jpa:4.0.2'
dependency 'com.google.guava:guava:33.1.0-jre'
dependency 'com.google.code.gson:gson:2.11.0'
dependency 'com.google.googlejavaformat:google-java-format:1.24.0'
dependency 'org.apache.commons:commons-collections4:4.4'
dependency 'org.apache.commons:commons-compress:1.28.0'
dependency ('software.amazon.msk:aws-msk-iam-auth:2.2.0') {
exclude 'commons-logging:commons-logging:'
}
dependency ('org.apache.commons:commons-email:1.6.0') {
exclude 'com.sun.mail:javax.mail'
exclude 'javax.activation:activation'
}
dependency 'commons-io:commons-io:2.18.0'
dependency 'com.github.librepdf:openpdf:3.0.0'
dependency ('org.mnode.ical4j:ical4j:3.2.19') {
exclude 'com.sun.mail:javax.mail'
exclude 'org.codehaus.groovy:groovy'
}
dependency 'org.apache.commons:commons-csv:1.12.0'
dependency 'org.quartz-scheduler:quartz:2.5.0'
dependency 'org.ehcache:ehcache:3.10.8'
dependency 'com.github.spullara.mustache.java:compiler:0.9.14'
dependency 'com.jayway.jsonpath:json-path:2.9.0'
dependency ('org.apache.tika:tika-core:3.2.3') {
exclude 'commons-logging:commons-logging'
}
dependency ('org.apache.tika:tika-core:3.2.3') {
exclude 'commons-logging:commons-logging'
}
dependency ('org.apache.tika:tika-parser-miscoffice-module:3.2.3') {
exclude 'org.bouncycastle:bcprov-jdk15on'
exclude 'org.bouncycastle:bcjmail-jdk15on'
exclude 'org.bouncycastle:bcprov-jdk18on'
exclude 'org.bouncycastle:bcjmail-jdk18on'
exclude 'commons-logging:commons-logging'
exclude 'org.apache.logging.log4j:log4j-api'
exclude 'org.slf4j:slf4j-api'
exclude 'commons-io:commons-io'
exclude 'commons-codec:commons-codec'
exclude 'org.apache.commons:commons-lang3'
exclude 'org.apache.poi:poi'
exclude 'org.apache.poi:poi-scratchpad'
exclude 'org.glassfish.jaxb:jaxb-runtime'
exclude 'org.apache.commons:commons-compress'
exclude 'xml-apis:xml-apis'
}
dependency ('org.apache.tika:tika-parser-microsoft-module:3.2.3') {
exclude 'org.bouncycastle:bcprov-jdk15on'
exclude 'org.bouncycastle:bcjmail-jdk15on'
exclude 'org.bouncycastle:bcprov-jdk18on'
exclude 'org.bouncycastle:bcjmail-jdk18on'
exclude 'commons-logging:commons-logging'
exclude 'org.apache.logging.log4j:log4j-api'
exclude 'org.slf4j:slf4j-api'
exclude 'commons-io:commons-io'
exclude 'commons-codec:commons-codec'
exclude 'org.apache.commons:commons-lang3'
exclude 'org.apache.poi:poi'
exclude 'org.apache.poi:poi-scratchpad'
exclude 'org.glassfish.jaxb:jaxb-runtime'
exclude 'org.apache.commons:commons-compress'
exclude 'xml-apis:xml-apis'
}
dependency ('org.apache.tika:tika-parser-image-module:3.2.3') {
exclude 'org.bouncycastle:bcprov-jdk15on'
exclude 'org.bouncycastle:bcjmail-jdk15on'
exclude 'org.bouncycastle:bcprov-jdk18on'
exclude 'org.bouncycastle:bcjmail-jdk18on'
exclude 'commons-logging:commons-logging'
exclude 'org.apache.logging.log4j:log4j-api'
exclude 'org.slf4j:slf4j-api'
exclude 'commons-io:commons-io'
exclude 'commons-codec:commons-codec'
exclude 'org.apache.commons:commons-lang3'
exclude 'org.apache.poi:poi'
exclude 'org.apache.poi:poi-scratchpad'
exclude 'org.glassfish.jaxb:jaxb-runtime'
exclude 'org.apache.commons:commons-compress'
exclude 'xml-apis:xml-apis'
}
dependency ('org.apache.httpcomponents:httpclient:4.5.14') {
exclude 'commons-logging:commons-logging:'
}
dependency 'jakarta.management.j2ee:jakarta.management.j2ee-api:1.1.4'
dependency 'jakarta.jms:jakarta.jms-api:3.1.0'
dependency 'jakarta.ws.rs:jakarta.ws.rs-api:3.1.0'
dependency 'org.glassfish.jaxb:jaxb-runtime:2.3.6' // Swagger needs exactly this version
dependency 'joda-time:joda-time:2.13.1'
dependency 'io.github.classgraph:classgraph:4.8.179'
dependency 'org.awaitility:awaitility:4.2.2'
dependency 'com.github.spotbugs:spotbugs-annotations:4.8.6'
dependency 'javax.cache:cache-api:1.1.1'
dependency 'org.mock-server:mockserver-junit-jupiter:5.15.0'
dependency 'org.webjars:webjars-locator-core:0.59'
dependency 'com.icegreen:greenmail-junit5:2.0.1'
// fineract client dependencies
dependency "com.squareup.retrofit2:retrofit:2.11.0"
dependency "com.squareup.retrofit2:retrofit-mock:2.11.0"
dependency "com.squareup.retrofit2:adapter-java8:2.11.0"
dependency "com.squareup.retrofit2:adapter-rxjava2:2.11.0"
dependency "com.squareup.retrofit2:adapter-rxjava3:2.11.0"
dependency "com.squareup.retrofit2:adapter-guava:2.11.0"
dependency "com.squareup.retrofit2:converter-wire:2.11.0"
dependency "com.squareup.retrofit2:converter-jackson:2.11.0"
dependency "com.squareup.retrofit2:converter-simplexml:2.11.0"
dependency "com.squareup.retrofit2:converter-jaxb:2.11.0"
dependency "com.squareup.retrofit2:converter-java8:2.11.0"
dependency "com.squareup.retrofit2:converter-scalars:2.11.0"
dependency "com.squareup.retrofit2:converter-gson:2.11.0"
dependency "com.squareup.retrofit2:converter-protobuf:2.11.0"
dependency 'io.reactivex.rxjava2:rxjava:2.2.21'
dependency "io.gsonfire:gson-fire:1.9.0"
dependency "com.google.code.findbugs:jsr305:3.0.2"
dependency "commons-codec:commons-codec:1.17.1"
dependency "org.projectlombok:lombok:1.18.36"
dependency 'org.bouncycastle:bcpkix-jdk18on:1.81'
dependency 'org.bouncycastle:bcprov-jdk18on:1.81'
dependency 'org.bouncycastle:bcutil-jdk18on:1.81'
dependency 'org.bouncycastle:bcpg-jdk18on:1.81'
dependency 'org.eclipse.jgit:org.eclipse.jgit:7.2.1.202505142326-r'
dependency 'org.eclipse.jgit:org.eclipse.jgit.gpg.bc:7.2.1.202505142326-r'
dependency 'org.eclipse.jgit:org.eclipse.jgit.ssh.apache:7.2.1.202505142326-r'
dependency ('com.tmatesoft.svnkit:svnkit:1.10.12')
dependency 'com.vdurmont:semver4j:3.1.0'
dependency 'org.beryx:text-io:3.4.1'
dependency ('org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0') {
exclude 'io.swagger.core.v3:swagger-core'
}
dependency 'com.google.cloud.sql:mysql-socket-factory-connector-j-8:1.23.1'
dependency ('org.apache.activemq:activemq-client:6.1.6') {
exclude 'javax.annotation:javax.annotation-api'
}
dependency 'io.swagger.core.v3:swagger-annotations-jakarta:2.2.22'
dependency ('io.swagger.core.v3:swagger-jaxrs2-jakarta:2.2.22') {
exclude 'jakarta.activation:jakarta.activation-api'
}
dependency ('io.swagger.core.v3:swagger-core-jakarta:2.2.22') {
exclude 'jakarta.activation:jakarta.activation-api'
}
dependency 'jakarta.annotation:jakarta.annotation-api:3.0.0'
dependency 'jakarta.activation:jakarta.activation-api:2.1.3'
dependency ('com.sun.mail:jakarta.mail:2.0.2') {
// Spring needs this version
exclude 'com.sun.activation:jakarta.activation'
}
dependency ('jakarta.xml.bind:jakarta.xml.bind-api:4.0.2') {
exclude 'jakarta.activation:jakarta.activation-api'
}
dependency 'jakarta.validation:jakarta.validation-api:3.1.1'
dependency 'org.hibernate.validator:hibernate-validator:9.0.1.Final'
dependency ('org.liquibase:liquibase-core:4.33.0') {
exclude 'javax.xml.bind:jaxb-api'
}
dependency 'org.liquibase.ext:liquibase-postgresql:4.33.0'
dependency ('org.dom4j:dom4j:2.1.4') {
exclude 'relaxngDatatype:relaxngDatatype' // already in com.sun.xml.bind:jaxb-osgi:2.3.0.1
// FINERACT-940 && FINERACT-966 https://github.com/spotbugs/spotbugs/issues/1128
exclude 'xpp3:xpp3'
exclude 'pull-parser:pull-parser'
}
dependency 'org.owasp.esapi:esapi:2.7.0.0'
dependency 'org.awaitility:awaitility:4.2.2'
dependencySet(group: 'org.apache.poi', version: '5.4.1') {
entry 'poi'
entry 'poi-ooxml'
entry 'poi-ooxml-schemas'
}
dependencySet(group: 'io.rest-assured', version: '5.5.1') {
entry 'rest-assured'
entry 'json-path'
entry 'xml-path'
}
dependency 'org.apache.groovy:groovy-xml:5.0.2'
dependency 'org.apache.groovy:groovy-json:5.0.2'
dependency 'org.mapstruct:mapstruct:1.6.3'
dependency 'org.mapstruct:mapstruct-processor:1.6.3'
dependency "org.apache.avro:avro:1.12.0"
dependency ('org.mariadb.jdbc:mariadb-java-client:3.5.2') {
exclude 'org.slf4j:jcl-over-slf4j'
exclude 'org.slf4j:slf4j-api'
}
dependency 'org.postgresql:postgresql:42.7.8'
dependency 'com.mysql:mysql-connector-j:9.3.0'
dependency 'org.assertj:assertj-core:3.27.7'
dependency 'org.apache.commons:commons-math3:3.6.1'
dependency 'commons-beanutils:commons-beanutils:1.11.0'
dependency 'org.mockito:mockito-inline:5.2.0'
dependency 'org.wiremock:wiremock-standalone:3.13.0'
dependency 'org.apache.sshd:sshd-common:2.15.0'
dependency 'org.apache.sshd:sshd-core:2.15.0'
dependency 'io.cucumber:cucumber-java:7.20.1'
dependency 'io.cucumber:cucumber-java8:7.20.1'
dependency 'io.cucumber:cucumber-junit-platform-engine:7.20.1'
dependency 'io.cucumber:cucumber-spring:7.20.1'
dependency 'org.reflections:reflections:0.10.2'
dependency 'org.openjdk.jmh:jmh-core:1.37'
dependency 'org.openjdk.jmh:jmh-generator-annprocess:1.37'
dependency 'org.springframework.restdocs:spring-restdocs-asciidoctor:3.0.3'
dependency 'org.springframework.restdocs:spring-restdocs-mockmvc:3.0.3'
dependency 'org.springframework.restdocs:spring-restdocs-webtestclient:3.0.3'
dependency 'org.springframework.restdocs:spring-restdocs-restassured:3.0.3'
dependency 'com.lmax:disruptor:3.4.4'
dependency ('com.github.romankh3:image-comparison:4.4.0') {
exclude 'org.junit.jupiter:junit-jupiter-api'
exclude 'org.junit.jupiter:junit-jupiter-engine'
exclude 'org.mockito:mockito-core'
}
dependency 'com.ibm.icu:icu4j:76.1'
dependency 'org.yakworks:spring-icu4j:0.4.2'
dependency 'org.apache.commons:commons-lang3:3.18.0'
dependency 'com.nimbusds:nimbus-jose-jwt:10.0.2'
// Force Spring Framework version: CVE-2025-41249
dependency 'org.springframework:spring-core:6.2.11'
// Force Spring Framework version: CVE-2025-41248
dependency 'org.springframework.security:spring-security-core:6.5.4'
// Force netty-codec version: CVE-2025-67735
dependency 'io.netty:netty-codec:4.1.129.Final'
// Force netty-codec version: CVE-2025-58056
dependency 'io.netty:netty-codec-http:4.1.129.Final'
// Force lz4-java version: CVE-2025-12183
dependency 'at.yawk.lz4:lz4-java:1.10.1'
// Force tomcat-embed-core version: CVE-2025-24813
dependency 'org.apache.tomcat.embed:tomcat-embed-core:10.1.49'
dependency 'org.apache.tomcat.embed:tomcat-embed-el:10.1.49'
dependency 'org.apache.tomcat.embed:tomcat-embed-websocket:10.1.49'
}
}
@@ -0,0 +1,242 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
apply plugin: 'org.apache.fineract.gradle'
apply from: "${rootDir}/buildSrc/src/main/groovy/org.apache.fineract.dependencies.gradle"
fineract {
config {
username = "${findProperty('fineract.config.username')}"
password = "${findProperty('fineract.config.password')}"
doc {
url = 'git@github.com:apache/fineract-site.git'
directory = "${System.getProperty("java.io.tmpdir")}/fineract-site"
branch = "asf-site"
}
git {
dir = "${projectDir.absolutePath}/.git"
sections = [
[
section: "user",
name: "name",
value: "${findProperty('fineract.config.name')}",
],
[
section: "user",
name: "email",
value: "${findProperty('fineract.config.email')}",
],
[
section: "user",
name: "signingkey",
value: "${findProperty('fineract.config.gnupg.keyName')}",
],
[
section: "commit",
name: "gpgsign",
value: "true",
],
]
}
template {
templateDir = "${projectDir}/buildSrc/src/main/resources"
}
gpg {
keyName = "${findProperty('fineract.config.gnupg.keyName')}"
publicKeyring = "${findProperty('fineract.config.gnupg.publicKeyring')}"
secretKeyring = "${findProperty('fineract.config.gnupg.secretKeyring')}"
password = "${findProperty('fineract.config.gnupg.password')}"
}
smtp {
host = 'smtp.gmail.com'
username = "${findProperty('fineract.config.smtp.username')}"
password = "${findProperty('fineract.config.smtp.password')}"
tls = true
ssl = true
}
subversion {
username = "${findProperty('fineract.config.username')}"
password = "${findProperty('fineract.config.password')}"
revision = 'HEAD'
}
jira {
url = 'https://issues.apache.org/jira/rest/api/2/'
username = "${findProperty('fineract.config.username')}"
password = "${findProperty('fineract.config.password')}"
}
confluence {
url = 'https://cwiki.apache.org/confluence/rest/api/'
username = "${findProperty('fineract.config.username')}"
password = "${findProperty('fineract.config.password')}"
}
}
steps = [
test: [
order: 0,
description: 'Test',
email: [
from: "${findProperty('fineract.config.email')}",
to: "${findProperty('fineract.config.email')}",
mime: 'text/plain',
subject: "[FINERACT] [TEST] 📣 🏁 🗳️ 🚀 📈 🔀 🌠 Propose new release ${version}",
messageTemplate: [
templateFile: "${projectDir}/buildSrc/src/main/resources/email/release.step01.headsup.message.ftl"
]
],
subversion: [
url: 'https://dist.apache.org/repos/dist/dev/fineract',
directory: "${System.getProperty("java.io.tmpdir")}"
],
jira: [
query: "project in (\'FINERACT\') and fixVersion = ${findProperty('fineract.release.version')} and status in (CLOSED, RESOLVED)"
],
template: [
templateFile: "${projectDir}/buildSrc/src/main/resources/jira/changelog.txt.ftl"
],
gpg: [
files: [
"${projectDir}/buildSrc/build/libs/buildSrc.jar"
]
]
],
step1: [
order: 1,
description: 'Send heads-up email to dev mailing list',
email: [
from: "${findProperty('fineract.config.email')}",
name: "${findProperty('fineract.config.name')}",
to: "${findProperty('fineract.config.email')}",
// to: 'dev@fineract.apache.org',
mime: 'text/plain',
subjectTemplate: [
templateFile: "${projectDir}/buildSrc/src/main/resources/email/release.step01.headsup.subject.ftl"
],
messageTemplate: [
templateFile: "${projectDir}/buildSrc/src/main/resources/email/release.step01.headsup.message.ftl"
]
]
],
step2: [
order: 2,
description: 'Clean up JIRA',
],
step3: [
order: 3,
description: 'Create a release branch',
email: [
from: "${findProperty('fineract.config.email')}",
name: "${findProperty('fineract.config.name')}",
to: "${findProperty('fineract.config.email')}",
// to: 'dev@fineract.apache.org',
mime: 'text/plain',
subjectTemplate: [
templateFile: "${projectDir}/buildSrc/src/main/resources/email/release.step03.branch.subject.ftl"
],
messageTemplate: [
templateFile: "${projectDir}/buildSrc/src/main/resources/email/release.step03.branch.message.ftl"
]
]
],
step4: [
order: 4,
description: 'Freeze JIRA version',
],
step5: [
order: 5,
description: 'Create release tag',
git: [
messageTemplate: [
templateFile: "${projectDir}/buildSrc/src/main/resources/git/release.step05.tag.message.ftl"
]
]
],
step6: [
order: 6,
description: 'Create a distribution',
],
step7: [
order: 7,
description: 'Sign the distribution artifacts',
gpg: [
files: [
"${rootDir}/fineract-war/build/distributions/apache-fineract-src-${project.version}.tar.gz",
"${rootDir}/fineract-war/build/distributions/apache-fineract-bin-${project.version}.tar.gz"
]
]
],
step8: [
order: 8,
description: 'Upload distribution artifacts to staging environment',
subversion: [
url: 'https://dist.apache.org/repos/dist/dev/fineract',
directory: "${System.getProperty("java.io.tmpdir")}/fineract-dist-dev"
],
],
step9: [
order: 9,
description: 'Verify distribution in staging environment',
],
step10: [
order: 10,
description: 'Start voting on the dev mailing list',
],
step11: [
order: 11,
description: 'Conclude the vote and announce results',
],
step12: [
order: 12,
description: 'Upload distribution artifacts to release environment',
subversion: [
url: 'https://dist.apache.org/repos/dist/release/fineract',
directory: "${System.getProperty("java.io.tmpdir")}/fineract-dist-release"
],
],
step13: [
order: 13,
description: 'Close release branch and merge to \'develop\'',
],
step14: [
order: 14,
description: 'Update website (not yet automated)',
],
step15: [
order: 15,
description: 'Send email to announcement mailing list',
jira: [
projectId: "12319420",
query: "project in (\'FINERACT\') and fixVersion = ${findProperty('fineract.release.version')} and status in (CLOSED, RESOLVED, WONTFIX)"
],
email: [
from: "${findProperty('fineract.config.email')}",
name: "${findProperty('fineract.config.name')}",
to: "${findProperty('fineract.config.email')}",
// to: 'dev@fineract.apache.org',
mime: 'text/plain',
subjectTemplate: [
templateFile: "${projectDir}/buildSrc/src/main/resources/email/release.step15.announce.subject.ftl"
],
messageTemplate: [
templateFile: "${projectDir}/buildSrc/src/main/resources/email/release.step15.announce.message.ftl"
]
]
]
]
}
@@ -0,0 +1,490 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.fineract.gradle
import org.apache.commons.io.FileUtils
import org.apache.commons.io.filefilter.NotFileFilter
import org.apache.commons.io.filefilter.PrefixFileFilter
import org.apache.fineract.gradle.service.*
import org.beryx.textio.TextIO
import org.beryx.textio.TextIoFactory
import org.beryx.textio.TextTerminal
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.slf4j.Logger
import org.slf4j.LoggerFactory
class FineractPlugin implements Plugin<Project> {
private static final Logger log = LoggerFactory.getLogger(FineractPlugin.class)
private JiraService jiraService
private ConfluenceService confluenceService
private SubversionService subversionService
private EmailService emailService
private GpgService gpgService
private TemplateService templateService
private GitService gitService
private Map<String, ?> context;
static {
System.setProperty("org.beryx.textio.TextTerminal", "org.beryx.textio.system.SystemTextTerminal")
}
void apply(Project project) {
def extension = project.extensions.create("fineract", FineractPluginExtension, project)
project.fineract.extensions.create("config", FineractPluginExtension.FineractPluginConfig)
project.fineract.config.extensions.create("doc", FineractPluginExtension.FineractPluginConfigDoc)
project.fineract.config.extensions.create("template", FineractPluginExtension.FineractPluginConfigTemplate)
project.fineract.config.extensions.create("smtp", FineractPluginExtension.FineractPluginConfigSmtp)
project.fineract.config.extensions.create("subversion", FineractPluginExtension.FineractPluginConfigSubversion)
project.fineract.config.extensions.create("jira", FineractPluginExtension.FineractPluginConfigJira)
project.fineract.config.extensions.create("confluence", FineractPluginExtension.FineractPluginConfigConfluence)
project.fineract.config.extensions.create("gpg", FineractPluginExtension.FineractPluginConfigGpg)
project.fineract.config.extensions.create("git", FineractPluginExtension.FineractPluginConfigGit)
project.afterEvaluate {
this.templateService = new TemplateService(extension.config.template)
this.jiraService = new JiraService(extension.config.jira)
this.confluenceService = new ConfluenceService(extension.config.confluence)
this.subversionService = new SubversionService(extension.config.subversion)
this.emailService = new EmailService(extension.config.smtp)
this.gitService = new GitService(extension.config.git, extension.config.gpg)
this.context = context(project)
}
project.tasks.register("fineractDocPublish") {
dependsOn(":fineract-doc:doc")
doLast {
log.warn("Fineract Publish Doc...")
def url = extension.config.doc.url?:"git@github.com:apache/fineract-site.git";
def branch = extension.config.doc.branch?:"asf-site"
def directory = extension.config.doc.directory?:System.getProperty("java.io.tmpdir")+"/fineract-site"
def d = new File(directory)
if(d.exists()) {
gitService.pull(directory)
} else {
gitService.clone(url, branch, directory)
gitService.config(directory, extension.config.git.sections)
}
def source = new File("fineract-doc/build/docs/html/en");
def target = new File(directory + "/docs/current")
if(!target.name) {
target.mkdirs()
}
FileUtils.copyDirectory(source, target, new NotFileFilter(new PrefixFileFilter(".asciidoctor")), true)
gitService.commit(directory)
}
}
project.tasks.register("fineractReleaseTest") {
doFirst {
// emojis:
// https://gist.github.com/parmentf/035de27d6ed1dce0b36a
// https://emojipedia.org/
// https://unicode.org/emoji/charts/full-emoji-list.html
FineractPluginExtension.FineractPluginStep step = step(extension, "test")
// TODO:
// - jira:
// - move tickets to new version
// jira query
FineractPluginExtension.FineractPluginJiraParams result = jiraService.search(step.jira)
log.warn(">>>>>>>>>>>>>>>> ISSUE: ${result.result[0]?.id} - ${result.result[0]?.key} - ${result.result[0]?.fields?['summary']} - ${result.result[0]?.fields?['fixVersions']}")
/*
// confluence create
def content = new ConfluenceService.ConfluenceContent(title: "1.7.0 - Apache Fineract",
space: new ConfluenceService.ConfluenceSpace(key: "FINERACT"),
ancestors: [new ConfluenceService.ConfluenceParent(id: "75974324")],
body: new ConfluenceService.ConfluenceBody(storage: new ConfluenceService.ConfluenceStorage(value: "<h1>Release Artifacts</h1>")))
confluenceService.createContent(content)
// confluence get
ConfluenceService.ConfluenceContent content = confluenceService.getContent("211881930")
log.warn(">>>>>>>>>>>>>>>>>>>>> CONFLUENCE: ${content.id} - ${content.title} - ${content.body?.storage?.value}")
// confluence update
content.body?.storage?.value = "<h1>Release Artifacts</h1><p><ac:structured-macro ac:macro-id=\"ac1cb3cb-84d4-45aa-820b-05cc42d39dd9\" ac:name=\"jira\" ac:schema-version=\"1\"><ac:parameter ac:name=\"server\">ASF JIRA</ac:parameter><ac:parameter ac:name=\"columnIds\">issuekey,summary,issuetype,created,updated,duedate,assignee,reporter,customfield_12311032,customfield_12311037,customfield_12311022,customfield_12311027,priority,status,resolution</ac:parameter><ac:parameter ac:name=\"columns\">key,summary,type,created,updated,due,assignee,reporter,Priority,Priority,Priority,Priority,priority,status,resolution</ac:parameter><ac:parameter ac:name=\"maximumIssues\">50</ac:parameter><ac:parameter ac:name=\"jqlQuery\">project = FINERACT AND fixVersion = 1.7.0 AND status not in (Open)</ac:parameter><ac:parameter ac:name=\"serverId\">5aa69414-a9e9-3523-82ec-879b028fb15b</ac:parameter></ac:structured-macro></p><p><br/></p>"
content.space = new ConfluenceService.ConfluenceSpace(key: "FINERACT")
content.status = null
content.version = new ConfluenceService.ConfluenceVersion(number: 3)
// confluence update
content = confluenceService.updateContent(content.id, content)
log.warn(">>>>>>>>>>>>>>>>>>>>> CONFLUENCE: ${content.id} - ${content.title} - ${content.body?.storage?.value}")
// confluence delete
ConfluenceService.ConfluenceResponse response = confluenceService.deleteContent("211881930")
log.warn(">>>>>>>>>>>>>>>>>>>>> CONFLUENCE: ${response?.statusCode} - ${response?.message}")
// jira versions
def versions = jiraService.getProjectVersions("12319420")
versions.findAll {
log.warn(">>>> VERSION: ${it.id} - ${it.name} - ${it.description}")
}
def version = jiraService.getVersion("12351431")
log.warn(">>>> !!! VERSION: ${version.id} - ${version.name} - ${version.description} - ${version.archived}")
version.archived = !version.archived
jiraService.updateVersion(version)
version = jiraService.getVersion("12351431")
log.warn(">>>> === VERSION: ${version.id} - ${version.name} - ${version.description} - ${version.archived}")
// jira projects
def projects = jiraService.getProjects()
projects.findAll {
log.warn(">>>>>>>>>>>> PROJECT: ${it.id} - ${it.key} - ${it.name}")
}
// jira info
Map<String, Object> info = jiraService.serverInfo()
log.warn(">>>>>>>>>>>>>>>> INFO: ${info}")
// jira query
FineractPluginExtension.FineractPluginJiraParams result = jiraService.search(step.jira)
log.warn(">>>>>>>>>>>>>>>> INFO: ${result.result.size()}")
// format with template
def tmp = templateService.render(step.template, [issues: result.result])
log.warn(tmp.output)
*/
}
}
// TODO: step for creating release Jira ticket missing!
// step 1
project.tasks.register("fineractReleaseStep1") {
doFirst {
FineractPluginExtension.FineractPluginStep step = step(extension, "step1")
String version = project.properties?['fineract.release.version']
String issue = project.properties?['fineract.release.issue']
String date = project.properties?['fineract.releaseBranch.date']
if(!version || !issue || !date) {
TextIO textIO = TextIoFactory.getTextIO()
if(!version) {
version = textIO.newStringInputReader()
.withPattern("\\d+.\\d+.\\d+")
.read("Release Version");
}
if(!issue) {
issue = textIO.newStringInputReader()
.withMaxLength(4)
.withPattern("\\d+")
.read("Jira Issue");
}
if(!date) {
date = textIO.newStringInputReader()
.withMaxLength(10)
.withPattern("\\d\\d\\d\\d-\\d\\d-\\d\\d")
.read("Date");
}
TextTerminal terminal = textIO.getTextTerminal()
terminal.printf("\nResult: %s - FINERACT-%s - %s", version, issue, date)
}
// TODO: input validation, see FINERACT-1610
this.context?.project?['fineract.release.version'] = version
this.context?.project?['fineract.release.issue'] = issue
this.context?.project?['fineract.releaseBranch.date'] = date
if(step.email) {
emailService.send( processEmailParams(step.email, this.context) )
}
}
}
// step 2
project.tasks.register("fineractReleaseStep2") {
doFirst {
FineractPluginExtension.FineractPluginStep step = step(extension, "step2")
// TODO: implement this, see FINERACT-1611
printInstructions(project, "step2")
}
}
// step 3
project.tasks.register("fineractReleaseStep3") {
doFirst {
FineractPluginExtension.FineractPluginStep step = step(extension, "step3")
String version = project.properties?['fineract.release.version']
String date = project.properties?['fineract.release.date']
if(!version || !date) {
TextIO textIO = TextIoFactory.getTextIO()
if(!version) {
version = textIO.newStringInputReader()
.withPattern("\\d+.\\d+.\\d+")
.read("Release Version");
}
if(!date) {
date = textIO.newStringInputReader()
.withMaxLength(10)
.withPattern("\\d\\d\\d\\d-\\d\\d-\\d\\d")
.read("Date");
}
TextTerminal terminal = textIO.getTextTerminal()
terminal.printf("\nResult: %s - %s", version, date)
}
// TODO: input validation, see FINERACT-1610
// TODO: create release branch, see FINERACT-1611
this.context?.project?['fineract.release.version'] = version
this.context?.project?['fineract.release.date'] = date
if(step.email) {
emailService.send( processEmailParams(step.email, this.context) )
}
}
}
// step 4
project.tasks.register("fineractReleaseStep4") {
doFirst {
FineractPluginExtension.FineractPluginStep step = step(extension, "step4")
// TODO: implement this, see FINERACT-1611
printInstructions(project, "step4")
}
}
// step 5
project.tasks.register("fineractReleaseStep5") {
doFirst {
FineractPluginExtension.FineractPluginStep step = step(extension, "step5")
String version = project.properties?['fineract.release.version']
if(!version) {
TextIO textIO = TextIoFactory.getTextIO()
if (!version) {
version = textIO.newStringInputReader()
.withPattern("\\d+.\\d+.\\d+")
.read("Release Version");
}
}
this.context?.project?['fineract.release.version'] = version
def params = processGitParams(step.git, this.context)
params.tag = params.tag?:version
gitService.createTag(params.tag, params.message)
}
}
// step 6
project.tasks.register("fineractReleaseStep6") {
dependsOn(":fineract-war:distTar")
}
// step 7
project.tasks.register("fineractReleaseStep7") {
doFirst {
FineractPluginExtension.FineractPluginStep step = step(extension, "step7")
gpgService = new GpgService(extension.config.gpg)
gpgService.sign(step.gpg)
step.gpg.files.findAll {
gpgService.sha512(step.gpg)
}
}
}
// step 8
project.tasks.register("fineractReleaseStep8") {
doFirst {
FineractPluginExtension.FineractPluginStep step = step(extension, "step8")
String version = project.properties?['fineract.release.version']
if(!version) {
TextIO textIO = TextIoFactory.getTextIO()
version = textIO.newStringInputReader()
.withPattern("\\d+.\\d+.\\d+")
.read("Release Version");
}
// TODO: input validation, see FINERACT-1610
subversionService.checkout(step.subversion)
def directory = step.subversion.directory?:System.getProperty("java.io.tmpdir") + "/fineract-dist-dev"
def source = new File("fineract-war/build/distributions")
def target = new File("${directory}/${version}")
FileUtils.copyDirectory(source, target, true)
subversionService.commit(step.subversion)
}
}
// step 9
project.tasks.register("fineractReleaseStep9") {
doFirst {
FineractPluginExtension.FineractPluginStep step = step(extension, "step9")
// TODO: implement this, see FINERACT-1611
printInstructions(project, "step9")
}
}
// step 10
project.tasks.register("fineractReleaseStep10") {
doFirst {
FineractPluginExtension.FineractPluginStep step = step(extension, "step10")
printInstructions(project, "step10")
}
}
// step 11
project.tasks.register("fineractReleaseStep11") {
doFirst {
FineractPluginExtension.FineractPluginStep step = step(extension, "step11")
printInstructions(project, "step11")
}
}
// step 12
project.tasks.register("fineractReleaseStep12") {
doFirst {
FineractPluginExtension.FineractPluginStep step = step(extension, "step12")
// TODO: input validation, see FINERACT-1610
// TODO: implement this, see FINERACT-1817
printInstructions(project, "step12")
}
}
// step 13
project.tasks.register("fineractReleaseStep13") {
doFirst {
FineractPluginExtension.FineractPluginStep step = step(extension, "step13")
// TODO: implement this, see FINERACT-1611
printInstructions(project, "step13")
}
}
// step 14
project.tasks.register("fineractReleaseStep14") {
doFirst {
FineractPluginExtension.FineractPluginStep step = step(extension, "step14")
// TODO: implement this, see FINERACT-1611
printInstructions(project, "step14")
}
}
// step 15
project.tasks.register("fineractReleaseStep15") {
doFirst {
log.warn("Release step 15: send email to announcement mailing list")
printInstructions(project, "step15")
}
}
}
private FineractPluginExtension.FineractPluginStep step(FineractPluginExtension extension, String id) {
FineractPluginExtension.FineractPluginStep step = extension.steps[id]
if(step) {
log.warn("Fineract release step ${step.order}: ${step.description}.")
} else {
throw new RuntimeException("Could not find any parameters for step with ID '${id}'")
}
return step
}
private FineractPluginExtension.FineractPluginEmailParams processEmailParams(FineractPluginExtension.FineractPluginEmailParams params, Object data) {
if(params.subjectTemplate) {
def result = templateService.render(params.subjectTemplate, data)
params.subject = result.output
}
if(params.messageTemplate) {
def result = templateService.render(params.messageTemplate, data)
params.message = result.output
}
return params
}
private FineractPluginExtension.FineractPluginGitParams processGitParams(FineractPluginExtension.FineractPluginGitParams params, Object data) {
if(params.messageTemplate) {
def result = templateService.render(params.messageTemplate, data)
params.message = result.output
}
return params
}
private Map<String, ?> context(Project project) {
return Map.of("project", project.getProperties().findAll { it.key != "password"})
}
private void printInstructions(Project project, String step) {
String version = project.properties?['fineract.release.version']?:"0.0.0"
this.context?.project?['fineract.release.version'] = version
FineractPluginExtension.FineractPluginTemplateParams result = templateService.render(new FineractPluginExtension.FineractPluginTemplateParams(templateFile: new File("buildSrc/src/main/resources/instructions/${step}.txt.ftl")), this.context)
log.warn(result.output)
}
}
@@ -0,0 +1,164 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.fineract.gradle
import org.apache.fineract.gradle.service.JiraService
import org.gradle.api.Project
class FineractPluginExtension {
Project project
Map<String, FineractPluginStep> steps = [:]
FineractPluginExtension(Project project) {
this.project = project
}
static class FineractPluginConfig {
String username
String password
}
static class FineractPluginConfigDoc {
String url
String directory
String branch
}
static class FineractPluginConfigJira {
String url
String username
String password
String project
}
static class FineractPluginConfigConfluence {
String url
String username
String password
String project
}
static class FineractPluginConfigGpg {
String keyName
String publicKeyring
String secretKeyring
String password
}
static class FineractPluginConfigTemplate {
String templateDir
}
static class FineractPluginConfigSmtp {
String host
int port
String username
String password
boolean tls
boolean ssl
}
static class FineractPluginConfigGit {
String username
String password
String dir
boolean dryRun
List<FineractPluginConfigGitSection> sections
}
static class FineractPluginConfigGitSection {
String section
String subsection
String name
String value
}
static class FineractPluginConfigSubversion {
String username
String password
String revision
}
static class FineractPluginStep {
int order
String description
FineractPluginEmailParams email
FineractPluginJiraParams jira
FineractPluginTemplateParams template
FineractPluginConfluenceParams confluence
FineractPluginGitParams git
FineractPluginSubversionParams subversion
FineractPluginGpgParams gpg
}
static class FineractPluginEmailParams {
String from
String name
String to
String cc
String bcc
String mime
String subject
FineractPluginTemplateParams subjectTemplate
String message
FineractPluginTemplateParams messageTemplate
}
static class FineractPluginJiraParams {
String command
String projectId
String fields = "*all"
String query
List<JiraService.JiraIssue> result = new ArrayList<>()
int pageOffset = 0
int pageSize= 50
int total = 1000
List<String> includes = ["summary", "status", "assignee", "fixVersions"]
}
static class FineractPluginConfluenceParams {
String title
String content
Integer ancestor
}
static class FineractPluginGitParams {
String tag
String message
FineractPluginTemplateParams messageTemplate
}
static class FineractPluginSubversionParams {
String url
String command
String revision = "HEAD"
String directory
}
static class FineractPluginTemplateParams {
String template
String templateFile
String output
String outputFile
}
static class FineractPluginGpgParams {
List<String> files
}
}
@@ -0,0 +1,209 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.fineract.gradle.service
import com.fasterxml.jackson.databind.DeserializationFeature
import com.fasterxml.jackson.databind.ObjectMapper
import okhttp3.ConnectionPool
import okhttp3.Credentials
import okhttp3.Interceptor
import okhttp3.OkHttpClient
import okhttp3.Response
import okhttp3.logging.HttpLoggingInterceptor
import org.apache.fineract.gradle.FineractPluginExtension.FineractPluginConfigConfluence
import org.jetbrains.annotations.NotNull
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Retrofit
import retrofit2.converter.jackson.JacksonConverterFactory
import retrofit2.http.*
import java.util.concurrent.TimeUnit
class ConfluenceService {
private static final Logger log = LoggerFactory.getLogger(ConfluenceService.class)
private ConfluenceApi api
ConfluenceService(FineractPluginConfigConfluence config) {
def credentials = Credentials.basic(config.username, config.password)
final ConnectionPool connectionPool = new ConnectionPool(5, 60, TimeUnit.SECONDS);
HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(log::debug)
loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY)
OkHttpClient.Builder okClient = new OkHttpClient.Builder()
.connectionPool(connectionPool)
.addInterceptor(loggingInterceptor)
.addInterceptor(new Interceptor() {
@Override
Response intercept(@NotNull Interceptor.Chain chain) throws IOException {
def request = chain.request()
request = request.newBuilder().header("Authorization", credentials).build()
return chain.proceed(request)
}
})
ObjectMapper mapper = new ObjectMapper()
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl(config.url)
.client(okClient.build())
.addConverterFactory(JacksonConverterFactory.create(mapper))
Retrofit retrofit = builder.build()
this.api = retrofit.create(ConfluenceApi.class)
}
ConfluenceContent getContent(String id) {
this.api.getContentById(id).execute().body()
}
ConfluenceContent createContent(ConfluenceContent content) {
this.api.postContent(content).execute().body()
}
ConfluenceContent updateContent(String id, ConfluenceContent content) {
this.api.putContent(id, content).execute().body()
}
ConfluenceResponse deleteContent(String id) {
this.api.deleteContentById(id).execute().body()
}
static class ConfluenceContent {
String id
String type
String title
String status
String self
List<ConfluenceParent> ancestors
ConfluenceSpace space
ConfluenceBody body
ConfluenceVersion version
ConfluenceHistory history
}
static class ConfluenceContentResult {
List<ConfluenceContent> results
private int start
private int limit
private int size
}
static class ConfluenceParent {
String id
String type
}
static class ConfluenceVersion {
ConfluenceCreatedBy by
Date when
String message
Integer number
}
static class ConfluenceCreatedBy {
String username
String displayName
}
static class ConfluenceHistory {
boolean latest
ConfluenceCreatedBy createdBy
ConfluenceVersion nextVersion
ConfluenceVersion previousVersion
ConfluenceVersion lastUpdated
}
static class ConfluenceSpace {
String key
String name
}
static class ConfluenceSpaceResult {
List<ConfluenceSpace> results
}
static class ConfluenceBody {
ConfluenceStorage storage
}
static class ConfluenceStorage {
String value
String representation
}
static class ConfluenceResponse {
int statusCode
String message
Map<String, ?> data
}
static interface ConfluenceApi {
@GET("content")
Call<ConfluenceContentResult> getContentResults();
@GET("content")
Call<ConfluenceContentResult> getContentBySpaceKeyAndTitle(final @Query("key") String key, final @Query("title") String title);
@GET("content/{id}/child/{type}")
Call<ConfluenceContentResult> getChildren(final @Path("id") String parentId, final @Path("type") String type, final @QueryMap Map<String, String> params);
@GET("content/{id}?expand=body.storage")
Call<ConfluenceContent> getContentById(final @Path("id") String id);
@POST("contentbody/convert/{to}")
Call<ConfluenceStorage> postContentConversion(final @Body ConfluenceStorage storage, final @Path("to") String convertToFormat);
@POST("content")
Call<ConfluenceContent> postContent(final @Body ConfluenceContent content);
@PUT("content/{id}")
Call<ConfluenceContent> putContent(final @Path("id") String id, final @Body ConfluenceContent content);
@POST("content")
void postContentWithCallback(final @Body ConfluenceContent content, final Callback<ConfluenceContent> callback);
@DELETE("content/{id}")
Call<ConfluenceResponse> deleteContentById(final @Path("id") String id);
@GET("space")
Call<ConfluenceSpaceResult> getSpaces();
@POST("space")
Call<ConfluenceSpace> createSpace(final @Body ConfluenceSpace space);
@POST("space/_private")
Call<ConfluenceSpace> createPrivateSpace(final @Body ConfluenceSpace space);
@GET("space/{spaceKey}/content/page")
Call<ConfluenceContentResult> getAllSpaceContent(final @Path("spaceKey") String spaceKey, final @QueryMap Map<String, String> params);
@GET("space/{spaceKey}/content/{type}")
Call<ConfluenceContentResult> getRootContentBySpaceKey(final @Path("spaceKey") String spaceKey, final @Path("type") String contentType);
}
}
// curl -u aleks:xxx -X POST -H 'Content-Type: application/json' -d '{"type":"page","title":"1.7.0 - Apache Fineract","space":{"key":"FINERACT"},"ancestors":[{"id":75974324}],"body":{"storage":{"value":"<p>This is <br/> a new page</p>","representation": "storage"}}}' https://cwiki.apache.org/confluence/content/ | python -mjson.tool
@@ -0,0 +1,87 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.fineract.gradle.service
import org.apache.fineract.gradle.FineractPluginExtension
import org.apache.fineract.gradle.FineractPluginExtension.FineractPluginEmailParams
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import jakarta.mail.*
import jakarta.mail.internet.InternetAddress
import jakarta.mail.internet.MimeMessage
class EmailService {
private static final Logger log = LoggerFactory.getLogger(EmailService.class)
String username
String password
Properties properties
EmailService(FineractPluginExtension.FineractPluginConfigSmtp config) {
this.username = config.username
this.password = config.password
this.properties = new Properties()
this.properties.put("mail.smtp.host", config.host)
this.properties.put("mail.smtp.auth", "true")
this.properties.put("mail.smtp.starttls.enable", config.tls.toString())
if(config.ssl) {
this.properties.put("mail.smtp.port", "465")
this.properties.put("mail.smtp.socketFactory.port", "465");
this.properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
} else {
this.properties.put("mail.smtp.port", "587")
}
}
void send(FineractPluginEmailParams params) {
log.warn("Sending email: ${params.from} -> ${params.to} - ${params.subject}")
Session session = Session.getInstance(this.properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(getUsername(), getPassword())
}
})
try {
Message msg = new MimeMessage(session)
msg.setFrom(new InternetAddress(params.from, params.name))
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(params.to))
if(params.cc) {
msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(params.cc))
}
if(params.bcc) {
msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(params.bcc))
}
msg.setSubject(params.subject, "UTF-8")
msg.setText(params.message, "UTF-8");
Transport.send(msg);
log.info("Done")
} catch (MessagingException e) {
log.error(e.toString(), e)
}
}
}
@@ -0,0 +1,138 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.fineract.gradle.service
import org.apache.fineract.gradle.FineractPluginExtension
import org.eclipse.jgit.api.Git
import org.eclipse.jgit.api.errors.CanceledException
import org.eclipse.jgit.api.errors.UnsupportedSigningFormatException
import org.eclipse.jgit.gpg.bc.internal.BouncyCastleGpgSigner
import org.eclipse.jgit.lib.GpgConfig
import org.eclipse.jgit.lib.GpgSignature
import org.eclipse.jgit.lib.PersonIdent
import org.eclipse.jgit.lib.Repository
import org.eclipse.jgit.lib.Signers
import org.eclipse.jgit.lib.StoredConfig
import org.eclipse.jgit.storage.file.FileRepositoryBuilder
import org.eclipse.jgit.transport.CredentialsProvider
import org.eclipse.jgit.transport.RefSpec
import org.slf4j.Logger
import org.slf4j.LoggerFactory
class GitService {
private static final Logger log = LoggerFactory.getLogger(GitService.class)
private Git git
private boolean dryRun
GitService(FineractPluginExtension.FineractPluginConfigGit config, FineractPluginExtension.FineractPluginConfigGpg gpgConfig) {
Signers.set(GpgConfig.GpgFormat.OPENPGP, new BouncyCastleGpgSigner() {
@Override
GpgSignature sign(Repository repository, GpgConfig internalConfig, byte[] data, PersonIdent committer, String signingKey, CredentialsProvider credentialsProvider) throws CanceledException, IOException, UnsupportedSigningFormatException {
log.warn("------------------------ KEY: ${gpgSigningKey} IDENT: ${committer}")
}
@Override
boolean canLocateSigningKey(Repository repository, GpgConfig internalConfig, PersonIdent committer, String signingKey, CredentialsProvider credentialsProvider) throws CanceledException {
log.warn("------------------------ KEY: ${gpgSigningKey} IDENT: ${committer}")
return false
}
});
Repository repository = new FileRepositoryBuilder()
.readEnvironment()
.setGitDir(new File(config.dir))
.findGitDir()
.build();
this.git = new Git(repository)
this.dryRun = config.dryRun
}
void clone(String url, String branch, String directory) {
def ref = "refs/heads/" + branch
Git.cloneRepository()
.setURI(url)
.setDirectory(new File(directory))
.setBranchesToClone(Arrays.asList(ref))
.setBranch(ref)
.call();
}
void pull(String directory) {
Git git = Git.open(new File(directory));
git.pull().call()
}
void commit(String directory) {
Git git = Git.open(new File(directory));
def status = git.status().call()
if(!status.isClean()) {
git.add().addFilepattern(".").call()
git.commit().setSign(true).setMessage("chore: Publish current docs").call()
}
def result = git.push().call()
}
void config(String directory, List<FineractPluginExtension.FineractPluginConfigGitSection> sections) {
Git git = Git.open(new File(directory));
StoredConfig gitConfig = git.getRepository().getConfig();
sections.forEach(section -> {
gitConfig.setString(section.section, section.subsection, section.name, section.value);
})
// gitConfig.setString("branch", "master", "merge", "refs/heads/master");
gitConfig.save();
}
void createTag(String name, String message) {
def ref = git.tag()
.setName(name)
.setMessage(message)
.setAnnotated(true)
.setForceUpdate(true)
.call()
try {
git.push().setPushTags().setForce(true).setDryRun(dryRun).call()
log.warn("Tag created: ${name} (${ref.name})")
} catch(Exception e) {
log.error(e.toString(), e)
}
}
// TODO: explicitly provide the directory
void removeTag(String name) {
git.tagDelete().setTags(name).call()
RefSpec refSpec = new RefSpec(":refs/tags/${name}");
git.push().setRefSpecs(refSpec).setRemote("origin").call()
log.warn("Tag deleted: ${name}")
}
}
@@ -0,0 +1,149 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.fineract.gradle.service
import org.apache.fineract.gradle.FineractPluginExtension
import org.apache.fineract.gradle.FineractPluginExtension.FineractPluginConfigGpg
import org.bouncycastle.bcpg.ArmoredOutputStream
import org.bouncycastle.bcpg.BCPGOutputStream
import org.bouncycastle.gpg.keybox.BlobType
import org.bouncycastle.gpg.keybox.PublicKeyRingBlob
import org.bouncycastle.gpg.keybox.bc.BcKeyBox
import org.bouncycastle.jce.provider.BouncyCastleProvider
import org.bouncycastle.openpgp.*
import org.bouncycastle.openpgp.operator.bc.BcKeyFingerprintCalculator
import org.bouncycastle.openpgp.operator.bc.BcPGPContentSignerBuilder
import org.bouncycastle.openpgp.operator.jcajce.JcePBESecretKeyDecryptorBuilder
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import java.security.GeneralSecurityException
import java.security.MessageDigest
import java.security.Security
class GpgService {
private static final Logger log = LoggerFactory.getLogger(GpgService.class)
private PGPPrivateKey privateKey;
private PGPPublicKey publicKey;
static {
Security.addProvider(new BouncyCastleProvider());
}
GpgService(FineractPluginConfigGpg config) {
// TODO: provide implementation for *.gpg key rings
def keyBox = config.publicKeyring.endsWith(".kbx") ? new BcKeyBox(new FileInputStream(config.publicKeyring)) : null
if(keyBox) {
for(def keyBlob : keyBox.getKeyBlobs()) {
switch (keyBlob.type) {
case BlobType.X509_BLOB:
break
case BlobType.OPEN_PGP_BLOB:
def publicKeyRing = (keyBlob as PublicKeyRingBlob).getPGPPublicKeyRing();
def iterator = publicKeyRing.getPublicKeys();
while (publicKey == null && iterator.hasNext()) {
def k = iterator.next();
if (k.isEncryptionKey()) {
def keyName = Long.toHexString(k.keyID).toUpperCase()
if(config.keyName.substring(config.keyName.length()-keyName.length()) == keyName) {
publicKey = k;
log.warn("Found: ${publicKey.getUserIDs().next()}")
break
} else {
log.warn("Key mismatch: ${config.keyName} <-> ${keyName}")
}
}
}
break
}
}
PGPSecretKeyRingCollection secretRingCollection = new PGPSecretKeyRingCollection(new FileInputStream(config.secretKeyring), new BcKeyFingerprintCalculator())
def secretKey = secretRingCollection.getSecretKey(publicKey.keyID)
if(secretKey!=null) {
this.privateKey = secretKey.extractPrivateKey(new JcePBESecretKeyDecryptorBuilder().setProvider(BouncyCastleProvider.PROVIDER_NAME).build(config.password.toCharArray()))
}
} else {
log.warn("Could not open the public key ring.")
}
}
void sign(FineractPluginExtension.FineractPluginGpgParams params) {
params.files.findAll {
InputStream is = new FileInputStream(it)
BCPGOutputStream os = new BCPGOutputStream(new ArmoredOutputStream(new FileOutputStream(it + ".asc")))
sign(is).encode(os)
os.close();
}
}
PGPSignature sign(InputStream is) throws IOException, PGPException, GeneralSecurityException {
PGPSignatureGenerator generator = new PGPSignatureGenerator(new BcPGPContentSignerBuilder(publicKey.getAlgorithm(), PGPUtil.SHA1));
generator.init(PGPSignature.BINARY_DOCUMENT, privateKey);
byte[] buf = new byte[4096];
int len;
while ((len = is.read(buf)) >= 0) {
generator.update(buf, 0, len);
}
return generator.generate();
}
void sha512(FineractPluginExtension.FineractPluginGpgParams params) {
params.files.findAll {
def result = calc(new FileInputStream(it), MessageDigest.getInstance("SHA-512", BouncyCastleProvider.PROVIDER_NAME))
def file = new File("${it}.sha512")
file.write result
}
}
private static String calc(InputStream is, MessageDigest digest) {
String output
int read
byte[] buffer = new byte[8192]
try {
while ((read = is.read(buffer)) > 0) {
digest.update(buffer, 0, read)
}
byte[] hash = digest.digest()
BigInteger bigInt = new BigInteger(1, hash)
output = bigInt.toString(16)
while ( output.length() < 32 ) {
output = "0"+output
}
} catch (Exception e) {
log.error(e.toString(), e)
return null
}
return output
}
}
@@ -0,0 +1,324 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.fineract.gradle.service
import com.fasterxml.jackson.databind.DeserializationFeature
import com.fasterxml.jackson.databind.ObjectMapper
import okhttp3.*
import okhttp3.logging.HttpLoggingInterceptor
import org.apache.fineract.gradle.FineractPluginExtension
import org.jetbrains.annotations.NotNull
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import retrofit2.Call
import retrofit2.Retrofit
import retrofit2.converter.jackson.JacksonConverterFactory
import retrofit2.http.*
import java.util.concurrent.TimeUnit
class JiraService {
private static final Logger log = LoggerFactory.getLogger(JiraService.class)
private JiraApi api
JiraService(FineractPluginExtension.FineractPluginConfigJira config) {
def credentials = Credentials.basic(config.username, config.password)
final ConnectionPool connectionPool = new ConnectionPool(5, 60, TimeUnit.SECONDS);
HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(log::debug)
loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY)
OkHttpClient.Builder okClient = new OkHttpClient.Builder()
.connectionPool(connectionPool)
.addInterceptor(loggingInterceptor)
.addInterceptor(new Interceptor() {
@Override
Response intercept(@NotNull Interceptor.Chain chain) throws IOException {
def request = chain.request()
request = request.newBuilder().header("Authorization", credentials).build()
return chain.proceed(request)
}
})
ObjectMapper mapper = new ObjectMapper()
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl(config.url)
.client(okClient.build())
.addConverterFactory(JacksonConverterFactory.create(mapper))
Retrofit retrofit = builder.build()
this.api = retrofit.create(JiraApi.class)
}
Map<String, Object> serverInfo() {
return this.api.serverInfo.execute().body()
}
FineractPluginExtension.FineractPluginJiraParams search(FineractPluginExtension.FineractPluginJiraParams params) {
def query = [:]
query['jql'] = params.query
query['startAt'] = params.pageOffset?:0
query['maxResults'] = params.pageSize?:50
// query['expand'] = [
// "names",
// "schema",
// "operations"
// ]
// query['fields'] = params.fields?:"*all"
query['fields'] = params.includes?:[
"summary",
"status",
"assignee",
"fixVersions"
]
// params.total = params.total?:1000
params.total = 1000
def result = this.api.searchIssues(query).execute().body()
params.result.addAll(result?.issues as List)
if(result?.issues.size()>=params.pageSize && params.result.size() < params.total) {
params.pageOffset += params.pageSize
search(params);
}
return params
}
List getProjects() {
return this.api.getProjects()?.execute()?.body()
}
List getProjectVersions(String projectId) {
return this.api.getProjectVersions(projectId)?.execute()?.body()
}
JiraVersion getVersion(String id) {
return this.api.getVersion(id)?.execute()?.body()
}
void updateVersion(JiraVersion version) {
this.api.updateVersion(version.id, version).execute()
}
static class JiraVersion {
String self
String id
String description
String name
boolean archived
boolean released
String releaseDate
String userReleaseDate
String project
Integer projectId
}
static class JiraSearchResult {
String expand
Integer startAt
Integer maxResults
Integer total
List<JiraIssue> issues
List<String> warningMessages
Map<String, Object> names
Map<String, Object> schema
}
static class JiraIssue {
String expand
String self
String id
String key
Map<String, Object> renderedFields
Map<String, Object> properties
Map<String, Object> names
Map<String, Object> schema
Map<String, Object> fields
}
static class JiraIssueUpdateRequest {
Map<String, Map<String, Object>> historyMetadata
Map<String, List<Map<String, Object>>> update
Map<String, Object> fields
Map<String, List<Map<String, Object>>> properties
}
static interface JiraApi {
// Server Info
@GET("serverInfo")
Call<Map<String, Object>> getServerInfo()
// Components
@GET("component/{id}")
Call<Object> getComponent(@Path("id") String id)
@POST("component")
Call<Object> createComponent(@Body Object component)
@PUT("component/{id}")
Call<Void> updateComponent(@Path("id") String id, @Body Object component)
@GET("component/{id}/relatedIssueCounts")
Call<Object> getComponentIssueCount(@Path("id") String id)
// Issue
@GET("issue/{issueIdOrKey}")
Call<Object> getIssue(@Path("issueIdOrKey") String issueIdOrKey)
@POST("issue")
Call<Object> createIssue(@Body Object issue)
@PUT("issue/{issueIdOrKey}")
Call<Object> updateIssue(@Path("issueIdOrKey") String issueIdOrKey, @Body Object issue, @QueryMap Map<String, String> queryMap)
@POST("issue/bulk")
Call<Object> createIssues(@Body Object issues)
@PUT("issue/{issueIdOrKey}/assignee")
Call<Void> assignIssue(@Path("issueIdOrKey") String issueIdOrKey, @Body Object user)
@GET("issue/{issueIdOrKey}/comment")
Call<Object> getComments(@Path("issueIdOrKey") String issueIdOrKey)
@POST("issue/{issueIdOrKey}/comment")
Call<Object> addComment(@Path("issueIdOrKey") String issueIdOrKey, @Body Object comment)
@PUT("issue/{issueIdOrKey}/comment/{id}")
Call<Object> updateComment(@Path("issueIdOrKey") String issueIdOrKey, @Path("id") String id, @Body Object comment)
@GET("issue/{issueIdOrKey}/comment/{id}")
Call<Object> getComment(@Path("issueIdOrKey") String issueIdOrKey, @Path("id") String id)
@POST("issue/{issueIdOrKey}/notify")
Call<Void> notifyIssue(@Path("issueIdOrKey") String issueIdOrKey, @Body Object notify)
@GET("issue/{issueIdOrKey}/transitions?expand=transitions.fields")
Call<Object> getTransitions(@Path("issueIdOrKey") String issueIdOrKey)
@POST("issue/{issueIdOrKey}/transitions")
Call<Void> transitionIssue(@Path("issueIdOrKey") String issueIdOrKey, @Body Object issue)
@GET("issue/{issueIdOrKey}/watchers")
Call<Object> getIssueWatches(@Path("issueIdOrKey") String issueIdOrKey)
@POST("issue/{issueIdOrKey}/watchers")
Call<Void> addIssueWatcher(@Path("issueIdOrKey") String issueIdOrKey, @Body String user)
// Remote Issue Links
@GET("issue/{issueIdOrKey}/remotelink")
Call<Object> getIssueRemoteLinks(@Path("issueIdOrKey") String issueIdOrKey, @Query("globalId") String globalId)
@GET("issue/{issueIdOrKey}/remotelink/{linkId}")
Call<Object> getIssueRemoteLink(@Path("issueIdOrKey") String issueIdOrKey, @Path("linkId") String linkId)
@POST("issue/{issueIdOrKey}/remotelink")
Call<Object> createIssueRemoteLink(@Path("issueIdOrKey") String issueIdOrKey, @Body Object issueLink)
@POST("issue/{issueIdOrKey}/remotelink/{linkId}")
Call<Object> updateIssueRemoteLink(@Path("issueIdOrKey") String issueIdOrKey, @Path("linkId") String linkId, @Body Object issueLink)
@DELETE("issue/{issueIdOrKey}/remotelink")
Call<Object> deleteIssueRemoteLinks(@Path("issueIdOrKey") String issueIdOrKey, @Query("globalId") String globalId)
@DELETE("issue/{issueIdOrKey}/remotelink/{linkId}")
Call<Object> deleteIssueRemoteLink(@Path("issueIdOrKey") String issueIdOrKey, @Path("linkId") String linkId)
// Issue Links
@POST("issueLink")
Call<Void> createIssueLink(@Body Object issueLink)
@GET("issueLink/{linkId}")
Call<Object> getIssueLink(@Path("linkId") String linkId)
@DELETE("issueLink/{linkId}")
Call<Object> deleteIssueLink(@Path("linkId") String linkId)
// Issue Link Types
@GET("issueLinkType")
Call<Object> getIssueLinkTypes()
// Project
@GET("project?expand=lead,description")
Call<List> getProjects()
@GET("project/{projectIdOrKey}")
Call<Object> getProject(@Path("projectIdOrKey") String projectId)
@GET("project/{projectIdOrKey}/statuses")
Call<Object> getProjectStatuses(@Path("projectIdOrKey") String projectId)
@GET("project/{projectIdOrKey}/components")
Call<Object> getProjectComponents(@Path("projectIdOrKey") String projectId)
@GET("project/{projectIdOrKey}/versions")
Call<List<JiraVersion>> getProjectVersions(@Path("projectIdOrKey") String projectId)
// Search
@POST("search")
Call<JiraSearchResult> searchIssues(@Body Map<String, Object> search)
// Version
@POST("version")
Call<JiraVersion> createVersion(@Body JiraVersion version)
@GET("version/{id}")
Call<JiraVersion> getVersion(@Path("id") String id)
@PUT("version/{id}")
Call<Void> updateVersion(@Path("id") String id, @Body JiraVersion version)
// Fields
@GET("field")
Call<Object> getFields()
@POST("field")
Call<Object> createField(@Body Object field)
// Users
@GET("user/search")
Call<Object> userSearch(@Query("username") String userName, @Query("startAt") int startAt, @Query("maxResults") int maxResults)
@GET("user/assignable/search")
Call<Object> assignableUserSearch(@Query("username") String userName, @Query("project") String project, @Query("issueKey") String issueKey, @Query("startAt") int startAt, @Query("maxResults") int maxResults)
@Multipart
@retrofit2.http.Headers("X-Atlassian-Token: no-check")
@POST("issue/{issueIdOrKey}/attachments")
Call<Object> uploadAttachment(@Path("issueIdOrKey") String issueIdOrKey, @Part MultipartBody.Part file)
@GET("attachment/{attachmentId}")
Call<Object> getAttachment(@Path("attachmentId") String attachmentId)
@DELETE("attachment/{attachmentId}")
Call<Object> deleteAttachment(@Path("attachmentId") String attachmentId)
@Streaming
@GET
Call<ResponseBody> downloadFileWithDynamicUrl(@Url String fileUrl)
}
}
@@ -0,0 +1,74 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.fineract.gradle.service
import org.apache.fineract.gradle.FineractPluginExtension
import org.gradle.api.GradleException
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.tmatesoft.svn.core.SVNCancelException
import org.tmatesoft.svn.core.SVNDepth
import org.tmatesoft.svn.core.SVNException
import org.tmatesoft.svn.core.SVNURL
import org.tmatesoft.svn.core.wc.*
class SubversionService {
private static final Logger log = LoggerFactory.getLogger(SubversionService.class)
private SVNUpdateClient client;
private String revision;
SubversionService(FineractPluginExtension.FineractPluginConfigSubversion config) {
ISVNOptions options = SVNWCUtil.createDefaultOptions(true)
SVNClientManager clientManager = SVNClientManager.newInstance(options, SVNWCUtil.createDefaultAuthenticationManager(config.username, config.password))
this.client = clientManager.updateClient;
this.client.ignoreExternals = false
this.client.eventHandler = new ISVNEventHandler() {
@Override
void handleEvent(SVNEvent event, double progress) throws SVNException {
println ">>> PROGRESS: ${progress>0?:'-'}"
}
@Override
void checkCancelled() throws SVNCancelException {
}
}
this.revision = config.revision
}
void checkout(FineractPluginExtension.FineractPluginSubversionParams params) {
SVNURL svnUrl = SVNURL.parseURIEncoded(params.url)
SVNRevision svnRevision = this.revision == null ? SVNRevision.HEAD : SVNRevision.parse(this.revision)
if (svnRevision == SVNRevision.UNDEFINED) {
throw new GradleException("Invalid SVN revision: " + this.revision)
}
this.client.doCheckout(svnUrl, new File(params.directory), SVNRevision.HEAD, svnRevision, SVNDepth.INFINITY, false)
}
void commit(FineractPluginExtension.FineractPluginSubversionParams params) {
// TODO: implement this
SVNURL svnUrl = SVNURL.parseURIEncoded(params.url)
}
}
@@ -0,0 +1,86 @@
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.fineract.gradle.service
import freemarker.core.Environment
import freemarker.template.Configuration
import freemarker.template.Template
import freemarker.template.TemplateException
import freemarker.template.TemplateExceptionHandler
import org.apache.fineract.gradle.FineractPluginExtension
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import java.nio.charset.Charset
class TemplateService {
private static final Logger log = LoggerFactory.getLogger(TemplateService.class)
private Configuration config
TemplateService(FineractPluginExtension.FineractPluginConfigTemplate config) {
def dir = new File(config.templateDir);
this.config = new Configuration(Configuration.VERSION_2_3_32);
this.config.setDirectoryForTemplateLoading(dir)
this.config.setDefaultEncoding("UTF-8");
this.config.setLogTemplateExceptions(false);
this.config.setWrapUncheckedExceptions(true);
this.config.setFallbackOnNullLoopVariable(false);
this.config.setTemplateExceptionHandler(new TemplateExceptionHandler() {
@Override
void handleTemplateException(TemplateException te, Environment env, Writer out) throws TemplateException {
if (!env.isInAttemptBlock()) {
PrintWriter pw = (out instanceof PrintWriter) ? (PrintWriter) out : new PrintWriter(out);
pw.print("FreeMarker template error\n");
te.printStackTrace(pw, false, true, false);
pw.flush(); // To commit the HTTP response
}
}}
)
}
FineractPluginExtension.FineractPluginTemplateParams render(FineractPluginExtension.FineractPluginTemplateParams params, Object data) {
Template template = null;
if(params.templateFile) {
template = new Template("template", new FileReader(new File(params.templateFile), Charset.forName("UTF-8")), this.config)
}
if(params.template) {
template = new Template("template", new StringReader(params.template), this.config)
}
if(template) {
if(params.outputFile) {
def output = new File(params.outputFile)
output.createNewFile()
template.process(data, new FileWriter(output, Charset.forName("UTF-8"), false))
} else {
def output = new StringWriter()
template.process(data, output)
params.output = output.toString()
}
}
return params
}
}
@@ -0,0 +1,20 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
implementation-class=org.apache.fineract.gradle.FineractPlugin
@@ -0,0 +1,34 @@
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<h1>Release Artifacts</h1>
<p>
<ac:structured-macro ac:macro-id="ac1cb3cb-84d4-45aa-820b-05cc42d39dd9" ac:name="jira" ac:schema-version="1">
<ac:parameter ac:name="server">ASF JIRA</ac:parameter>
<ac:parameter ac:name="columnIds">issuekey,summary,issuetype,created,updated,duedate,assignee,reporter,customfield_12311032,customfield_12311037,customfield_12311022,customfield_12311027,priority,status,resolution</ac:parameter>
<ac:parameter ac:name="columns">key,summary,type,created,updated,due,assignee,reporter,Priority,Priority,Priority,Priority,priority,status,resolution</ac:parameter>
<ac:parameter ac:name="maximumIssues">50</ac:parameter>
<ac:parameter ac:name="jqlQuery">project = FINERACT AND fixVersion = ${project['fineract.release.version']} AND status not in (Open) </ac:parameter>
<ac:parameter ac:name="serverId">5aa69414-a9e9-3523-82ec-879b028fb15b</ac:parameter>
</ac:structured-macro>
</p>
<p>
<br/>
</p>
@@ -0,0 +1,37 @@
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
Hello everyone,
... based on our release process (https://fineract.apache.org/docs/current/#_releases), I will create a release/${project['fineract.release.version']} branch off develop in our git repository at https://github.com/apache/fineract on ${project['fineract.releaseBranch.date']}.
The release tracking umbrella issue for tracking all activity in JIRA is FINERACT-${project['fineract.release.issue']!'0000'} (https://issues.apache.org/jira/browse/FINERACT-${project['fineract.release.issue']!'0000'}).
If you have any work in progress that you would like to see included in this release, please add "blocking" links to the release JIRA issue.
I am the release manager for this release.
Cheers,
${project['fineract.config.name']}
🎉 Powered by Fineract Release Plugin 🎊
@@ -0,0 +1,21 @@
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
[FINERACT] [PROPOSAL] 📦 New release ${project['fineract.release.version']}
@@ -0,0 +1,35 @@
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
Hello everyone,
... as previously announced, I've created the branch for our upcoming ${project['fineract.release.version']} release. The branch name is release/${project['fineract.release.version']}.
You can continue working and merging PRs into the develop branch for future releases, as always.
I started the DRAFT release notes at https://cwiki.apache.org/confluence/display/FINERACT/${project['fineract.release.version']}+-+Apache+Fineract . Please help me by filling in "Summary of changes". Does anyone see anything else missing?
Does anyone have any last minute changes for the release branch, or are we good to go and actually cut the release based on this branch as it is?
I'll initiate the final stage of actually creating the release on ${project['fineract.release.date']} if nobody objects.
Cheers,
${project['fineract.config.name']}
@@ -0,0 +1,21 @@
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
[FINERACT] [ANNOUNCE] 🔀 ${project['fineract.release.version']} release branch
@@ -0,0 +1,21 @@
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
Fineract ${project['fineract.release.version']} release
@@ -0,0 +1,29 @@
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
[INSTRUCTIONS:START]
Initiate voting with the ATR (ASF Trusted Releases) tool.
https://release-test.apache.org
[INSTRUCTIONS:END]
@@ -0,0 +1,29 @@
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
[INSTRUCTIONS:START]
Conclude voting with the ATR (ASF Trusted Releases) tool.
https://release-test.apache.org
[INSTRUCTIONS:END]
@@ -0,0 +1,30 @@
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
[INSTRUCTIONS:START]
Move the release candidate from the dev area to the release area using a Subversion server-side copy:
# this is a remote operation
svn mv -m "Release Fineract 1.14.0 🚢" https://dist.apache.org/repos/dist/dev/fineract/${project['fineract.release.version']} https://dist.apache.org/repos/dist/release/fineract/
[INSTRUCTIONS:END]
@@ -0,0 +1,35 @@
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
[INSTRUCTIONS:START]
As discussed in https://issues.apache.org/jira/browse/FINERACT-1154, now that everything is final, please do the following to remove the release branch (and just keep the tag),
and make sure that everything on the release tag is merged to develop and that e.g. git describe works:
>> git checkout develop
>> git merge release/${project['fineract.release.version']}
>> git push origin develop
>> git branch -D release/${project['fineract.release.version']}
>> git push origin :release/${project['fineract.release.version']}
>> git describe
[INSTRUCTIONS:END]
@@ -0,0 +1,28 @@
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
[INSTRUCTIONS:START]
Finally update the https://fineract.apache.org website with the latest release details.
The website's HTML source code is available at https://github.com/apache/fineract-site.
[INSTRUCTIONS:END]
@@ -0,0 +1,29 @@
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
[INSTRUCTIONS:START]
Manually draft an email using your Apache ID.
See https://fineract.apache.org/docs/current/#_step_15_announcement_email
[INSTRUCTIONS:END]
@@ -0,0 +1,39 @@
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
[INSTRUCTIONS:START]
Before a release is done, make sure that any issues that are fixed have their fix version setup correctly.
"project = FINERACT and resolution = fixed and fixVersion is empty"
Move all unresolved JIRA issues which have this release as Fix Version to the next release
"project = FINERACT and fixVersion = ${project['fineract.release.version']} and status not in ( Resolved, Done, Accepted, Closed )"
You can also run the following query to make sure that the issues fixed for the to-be-released version look accurate:
"project = FINERACT and fixVersion = ${project['fineract.release.version']}"
Finally, check out the output of the JIRA release note tool to see which tickets are included in the release, in order to do a sanity check.
[INSTRUCTIONS:END]
@@ -0,0 +1,29 @@
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
[INSTRUCTIONS:START]
You first need to close the release in JIRA so that the about to be released version cannot be used as "fixVersion" for new bugs anymore.
Go to JIRA "Administer project" page and follow "Versions" in left menu. Table with list of all releases should appear, click on additional menu on the right of your release and choose "Release" option.
Submit release date and you're done.
[INSTRUCTIONS:END]
@@ -0,0 +1,27 @@
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
[INSTRUCTIONS:START]
See https://fineract.apache.org/docs/current/#_step_9_verify_distribution_staging
[INSTRUCTIONS:END]
@@ -0,0 +1,33 @@
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
= Changelog
== Breaking Changes
<#list issues?filter(i -> i.fields.labels?seq_contains("BreakingChange")) as issue>
* [[${issue.key}]]${issue.key} - ${issue.fields.summary}
</#list>
== Issues
<#list issues as issue>
* [[${issue.key}]]${issue.key} - ${issue.fields.summary}
</#list>
@@ -0,0 +1,26 @@
<#--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
Changelog
=========
<#list issues as issue>
* ${issue.key} - ${issue.fields.summary}
</#list>
@@ -0,0 +1,48 @@
{
"approve": {
"binding": [
{
"name": "Bharath Gowda",
"email": "bgowda@mifos.org"
},
{
"name": "Petri Tuomola",
"email": "petri@tuomola.org"
},
{
"name": "Victor Manuel Romero Rodriguez",
"email": "victor.romero@fintecheando.mx"
},
{
"name": "Aleksandar Vidakovic",
"email": "cheetah@monkeysintown.com"
},
{
"name": "Ádám Sághy",
"email": "adamsaghy@gmail.com"
}
],
"nonBinding": [
{
"name": "Kigred",
"email": "kigred.developer@gmail.com"
},
{
"name": "Adam Monsen",
"email": "amonsen@mifos.org"
}
]
},
"disapprove": {
"binding": [
],
"nonBinding": [
]
},
"noOpinion": {
"binding": [
],
"nonBinding": [
]
}
}
@@ -0,0 +1,56 @@
{
"approve": {
"binding": [
{
"name": "James Dailey",
"email": "jdailey@apache.org"
},
{
"name": "Victor Manuel Romero Rodriguez",
"email": "victor.romero@fintecheando.mx"
},
{
"name": "Terence Monteiro",
"email": "terence.placker@gmail.com"
}
],
"nonBinding": [
{
"name": "Adam Monsen",
"email": "amonsen@mifos.org"
},
{
"name": "Bharath Gowda",
"email": "bgowda@mifos.org"
},
{
"name": "Aleksandar Vidakovic",
"email": "cheetah@monkeysintown.com"
},
{
"name": "Ed Cable",
"email": "edcable@mifos.org"
},
{
"name": "Felix van Hove",
"email": "fvanhove@gmx.de.invalid"
},
{
"name": "Ahmed adel",
"email": "a7med3del1973@gmail.com"
}
]
},
"disapprove": {
"binding": [
],
"nonBinding": [
]
},
"noOpinion": {
"binding": [
],
"nonBinding": [
]
}
}
@@ -0,0 +1,96 @@
{
"approve": {
"binding": [
{
"name": "James Daily",
"email": "jamespdailey@gmail.com"
},
{
"name": "Arnold Galovics",
"email": "arnold@apache.org"
},
{
"name": "Avik Ganguly",
"email": "avik@fynarfin.io"
},
{
"name": "Ed Cable",
"email": "edcable@mifos.org"
},
{
"name": "Aleksandar Vidakovic",
"email": "aleks@apache.org"
},
{
"name": "Terence Monteiro",
"email": "terence.placker@gmail.com"
},
{
"name": "Awasum Yannick",
"email": "awasum@apache.org"
}
],
"nonBinding": [
{
"name": "Victor Manuel Romero Rodriguez",
"email": "victor.romero@fintecheando.mx"
},
{
"name": "Bruce Tushabe",
"email": "brucetushabe@gmail.com"
},
{
"name": "Kigred",
"email": "kigred.developer@gmail.com"
},
{
"name": "Bharath Gowda",
"email": "bgowda@mifos.org"
},
{
"name": "Robert Jakech",
"email": "robert@fiter.io"
},
{
"name": "Arthur Magezi",
"email": "artmagezi@gmail.com"
},
{
"name": "Robert Ippez",
"email": "ippezrobert@gmail.com"
},
{
"name": "Sifiso Mtetwa",
"email": "sifiso@skyburgsystems.org"
},
{
"name": "Zayad A. Said",
"email": "zayyad@intrasofttechnologies.com"
},
{
"name": "Hitech Prajapati",
"email": "hitesh.kams.prajapati@gmail.com"
},
{
"name": "Kelvin Ikome",
"email": "kelvin@ciniter.com"
},
{
"name": "Nasser Kaze",
"email": "kazenasser@gmail.com"
}
]
},
"disapprove": {
"binding": [
],
"nonBinding": [
]
},
"noOpinion": {
"binding": [
],
"nonBinding": [
]
}
}
@@ -0,0 +1,22 @@
{
"approve": {
"binding": [
{
"name": "Some Body",
"email": "bob@apache.org"
}
]
},
"disapprove": {
"binding": [
],
"nonBinding": [
]
},
"noOpinion": {
"binding": [
],
"nonBinding": [
]
}
}
+46
View File
@@ -0,0 +1,46 @@
@echo off
echo Stopping any running Gradle daemons...
call gradlew.bat --stop
echo.
echo Deleting corrupted build folders...
if exist fineract-provider\build (
echo Deleting fineract-provider\build...
rmdir /s /q fineract-provider\build
)
if exist fineract-command\build (
echo Deleting fineract-command\build...
rmdir /s /q fineract-command\build
)
if exist fineract-core\build (
echo Deleting fineract-core\build...
rmdir /s /q fineract-core\build
)
if exist fineract-accounting\build (
echo Deleting fineract-accounting\build...
rmdir /s /q fineract-accounting\build
)
if exist fineract-charge\build (
echo Deleting fineract-charge\build...
rmdir /s /q fineract-charge\build
)
if exist fineract-cob\build (
echo Deleting fineract-cob\build...
rmdir /s /q fineract-cob\build
)
if exist fineract-document\build (
echo Deleting fineract-document\build...
rmdir /s /q fineract-document\build
)
if exist fineract-branch\build (
echo Deleting fineract-branch\build...
rmdir /s /q fineract-branch\build
)
if exist fineract-avro-schemas\build (
echo Deleting fineract-avro-schemas\build...
rmdir /s /q fineract-avro-schemas\build
)
echo.
echo Build folders deleted successfully.
echo Now you can run: .\gradlew devRun
echo.
pause
+116
View File
@@ -0,0 +1,116 @@
> Task :buildSrc:extractPluginRequests UP-TO-DATE
> Task :buildSrc:generatePluginAdapters UP-TO-DATE
> Task :buildSrc:compileJava UP-TO-DATE
> Task :buildSrc:compileGroovy UP-TO-DATE
> Task :buildSrc:compileGroovyPlugins UP-TO-DATE
> Task :buildSrc:pluginDescriptors UP-TO-DATE
> Task :buildSrc:processResources UP-TO-DATE
> Task :buildSrc:classes UP-TO-DATE
> Task :buildSrc:jar UP-TO-DATE
> Configure project :
matching ref: COMMIT - 011239f3995f9ea94a893ed4a60251a3b154564c
ref configuration: COMMIT - pattern: null
version: ${describe.tag.version.major}.${describe.tag.version.minor.next}.0-SNAPSHOT
describeTagPattern: .*(\d+\.\d+\.\d+).*
describeTagFirstParent: false
project version: 0.1.0-SNAPSHOT
> Task :fineract-core:processResources UP-TO-DATE
> Task :fineract-tax:processResources UP-TO-DATE
> Task :fineract-accounting:processResources UP-TO-DATE
> Task :spotlessInternalRegisterDependencies UP-TO-DATE
> Task :fineract-document:processResources NO-SOURCE
> Task :fineract-avro-schemas:preprocessAvroSchemas UP-TO-DATE
> Task :fineract-charge:processResources UP-TO-DATE
> Task :fineract-branch:processResources UP-TO-DATE
> Task :fineract-cob:processResources UP-TO-DATE
> Task :fineract-rates:processResources UP-TO-DATE
> Task :fineract-investor:processResources UP-TO-DATE
> Task :fineract-mix:processResources NO-SOURCE
> Task :fineract-loan:processResources UP-TO-DATE
> Task :fineract-loan-origination:processResources UP-TO-DATE
> Task :fineract-progressive-loan:processResources UP-TO-DATE
> Task :fineract-security:processResources NO-SOURCE
> Task :fineract-report:processResources UP-TO-DATE
> Task :fineract-savings:processResources UP-TO-DATE
> Task :fineract-working-capital-loan:processResources UP-TO-DATE
> Task :fineract-validation:compileJava UP-TO-DATE
> Task :fineract-command:compileJava UP-TO-DATE
> Task :fineract-validation:processResources UP-TO-DATE
> Task :fineract-command:processResources UP-TO-DATE
> Task :fineract-command:classes UP-TO-DATE
> Task :fineract-validation:classes UP-TO-DATE
> Task :fineract-command:jar UP-TO-DATE
> Task :fineract-validation:jar UP-TO-DATE
> Task :fineract-avro-schemas:spotlessJson UP-TO-DATE
> Task :fineract-avro-schemas:spotlessJsonApply UP-TO-DATE
> Task :fineract-avro-schemas:buildJavaSdk UP-TO-DATE
> Task :fineract-avro-schemas:compileJava UP-TO-DATE
> Task :fineract-avro-schemas:processResources UP-TO-DATE
> Task :fineract-avro-schemas:classes UP-TO-DATE
> Task :fineract-avro-schemas:jar UP-TO-DATE
> Task :fineract-working-capital-loan:compileJava UP-TO-DATE
> Task :fineract-working-capital-loan:classes UP-TO-DATE
> Task :fineract-working-capital-loan:jar UP-TO-DATE
> Task :fineract-core:compileJava UP-TO-DATE
> Task :fineract-core:classes UP-TO-DATE
> Task :fineract-core:jar UP-TO-DATE
> Task :fineract-mix:compileJava UP-TO-DATE
> Task :fineract-mix:classes UP-TO-DATE
> Task :fineract-mix:jar UP-TO-DATE
> Task :fineract-cob:compileJava UP-TO-DATE
> Task :fineract-cob:classes UP-TO-DATE
> Task :fineract-report:compileJava UP-TO-DATE
> Task :fineract-tax:compileJava UP-TO-DATE
> Task :fineract-rates:compileJava UP-TO-DATE
> Task :fineract-tax:classes UP-TO-DATE
> Task :fineract-rates:classes UP-TO-DATE
> Task :fineract-cob:jar UP-TO-DATE
> Task :fineract-report:classes UP-TO-DATE
> Task :fineract-tax:jar UP-TO-DATE
> Task :fineract-rates:jar UP-TO-DATE
> Task :fineract-report:jar UP-TO-DATE
> Task :fineract-charge:compileJava UP-TO-DATE
> Task :fineract-charge:classes UP-TO-DATE
> Task :fineract-security:compileJava UP-TO-DATE
> Task :fineract-charge:jar UP-TO-DATE
> Task :fineract-security:classes UP-TO-DATE
> Task :fineract-document:compileJava UP-TO-DATE
> Task :fineract-document:classes UP-TO-DATE
> Task :fineract-security:jar UP-TO-DATE
> Task :fineract-document:jar UP-TO-DATE
> Task :fineract-accounting:compileJava UP-TO-DATE
> Task :fineract-accounting:classes UP-TO-DATE
> Task :fineract-accounting:jar UP-TO-DATE
> Task :fineract-branch:compileJava UP-TO-DATE
> Task :fineract-branch:classes UP-TO-DATE
> Task :fineract-branch:jar UP-TO-DATE
> Task :fineract-savings:compileJava UP-TO-DATE
> Task :fineract-loan:compileJava UP-TO-DATE
> Task :fineract-loan:classes UP-TO-DATE
> Task :fineract-savings:classes UP-TO-DATE
> Task :fineract-loan:jar UP-TO-DATE
> Task :fineract-savings:jar UP-TO-DATE
> Task :fineract-progressive-loan:compileJava UP-TO-DATE
> Task :fineract-progressive-loan:classes UP-TO-DATE
> Task :fineract-loan-origination:compileJava UP-TO-DATE
> Task :fineract-loan-origination:classes UP-TO-DATE
> Task :fineract-investor:compileJava UP-TO-DATE
> Task :fineract-investor:classes UP-TO-DATE
> Task :fineract-loan-origination:jar UP-TO-DATE
> Task :fineract-investor:jar UP-TO-DATE
> Task :fineract-progressive-loan:jar UP-TO-DATE
> Task :fineract-provider:compileJava UP-TO-DATE
[Incubating] Problems report is available at: file:///D:/CompanyProject/GitCBS/JAVA-Backend-CBS-MAIN/build/reports/problems/problems-report.html
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/8.14.3/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD SUCCESSFUL in 23s
71 actionable tasks: 71 up-to-date
@@ -29,8 +29,12 @@
<!--
You can learn more about individual checkstyles at: https://checkstyle.sourceforge.io/
Checks related to LineLength and Indentation are only handled by Spotless
Checks included in MissingSwitchDefault are handled by ErrorProne
-->
<module name="SuppressionFilter">
<property name="file" value="${config_loc}/suppressions.xml"/>
</module>
<module name="FileTabCharacter">
<property name="eachLine" value="true"/>
</module>
@@ -46,10 +50,16 @@
<module name="TreeWalker">
<module name="ParameterName">
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$|[a-z]"/>
<message key="name.invalidPattern"
value="Parameter name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="SeparatorWrap">
<property name="tokens" value="DOT"/>
<property name="option" value="nl"/>
</module>
<module name="com.github.sevntu.checkstyle.checks.coding.AvoidHidingCauseExceptionCheck" />
<module name="SuppressWarningsHolder" />
<module name="RegexpSinglelineJava">
<property name="format" value="System\.(out)|(err)\.print(ln)?\("/>
@@ -90,6 +100,14 @@
<property name="forbiddenImportsRegexp" value="com.google.common.base.Charsets" />
<property name="forbiddenImportsExcludesRegexp" value="" />
<message key="forbid.certain.imports" value="Use ''java.nio.charset.StandardCharsets'' instead of ''{0}''" />
</module>
<!-- Forbid JetBrains annotations in Java sources; prefer Jakarta or Spring annotations -->
<module name="com.github.sevntu.checkstyle.checks.coding.ForbidCertainImportsCheck">
<property name="packageNameRegexp" value=".*" />
<property name="forbiddenImportsRegexp" value="org.jetbrains.annotations(\..*)?" />
<property name="forbiddenImportsExcludesRegexp" value="" />
<message key="forbid.certain.imports"
value="Use 'jakarta.validation.constraints.NotNull' (API/DTO) or 'org.springframework.lang.NonNull' (services) instead of JetBrains annotations: ''{0}''" />
</module>
<module name="OneStatementPerLine"/>
<module name="EmptyStatement"/>
@@ -115,6 +133,7 @@
<!-- No PACKAGE_DEF token, as we like our license header to be glue to "package" statement, to save 1 line screen space -->
<property name="tokens" value="IMPORT, CLASS_DEF, INTERFACE_DEF, ENUM_DEF, STATIC_INIT, INSTANCE_INIT, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
</module>
<module name="MultipleVariableDeclarations"/>
<module name="PackageName">
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9_]*)*$"/>
<message key="name.invalidPattern"
@@ -154,12 +173,19 @@
<message key="ws.notPreceded"
value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
</module>
<module name="HideUtilityClassConstructor"/>
<module name="OneTopLevelClass"/>
<module name="MethodName">
<property name="format" value="^[a-z][a-zA-Z0-9_]*$"/>
<message key="name.invalidPattern"
value="Method name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="ClassTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern"
value="Class type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="MutableException"/>
<module name="WhitespaceAround">
<property name="allowEmptyConstructors" value="true"/>
<property name="allowEmptyMethods" value="true"/>
@@ -170,7 +196,23 @@
<message key="ws.notPreceded"
value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
</module>
<module name="MemberName">
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
<message key="name.invalidPattern"
value="Member name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="RedundantModifier"/>
<module name="ParenPad" />
<module name="ModifierOrder"/>
<module name="LocalVariableName">
<property name="tokens" value="VARIABLE_DEF"/>
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$|[a-z]"/>
<property name="allowOneCharVarInForLoop" value="true"/>
<message key="name.invalidPattern"
value="Local variable name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="AvoidNoArgumentSuperConstructorCall"/>
<module name="AvoidDoubleBraceInitialization"/>
<!-- TODO Enable many more checks (go about this one by one, step by step, raise separate PRs fixing and then enforcing):
<module name="HiddenField">
@@ -180,13 +222,10 @@
<property name="setterCanReturnItsClass" value="true" />
</module>
<module name="HideUtilityClassConstructor"/>
< ! - - TODO Checks for Exception Handling Anti-Patterns - - >
<module name="IllegalCatch"/>
<module name="MutableException"/>
<module name="com.github.sevntu.checkstyle.checks.coding.AvoidHidingCauseExceptionCheck" />
@@ -199,36 +238,19 @@
<module name="MultipleVariableDeclarations"/>
<module name="MissingSwitchDefault"/>
<module name="ModifierOrder"/>
<module name="RedundantModifier"/>
<module name="MemberName">
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
<message key="name.invalidPattern"
value="Member name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="ParameterName">
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
<message key="name.invalidPattern"
value="Parameter name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="LocalVariableName">
<property name="tokens" value="VARIABLE_DEF"/>
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
<property name="allowOneCharVarInForLoop" value="true"/>
<message key="name.invalidPattern"
value="Local variable name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="ClassTypeParameterName">
<property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
<message key="name.invalidPattern"
value="Class type name ''{0}'' must match pattern ''{1}''."/>
</module>
<module name="ConstantName" />
+36
View File
@@ -0,0 +1,36 @@
<?xml version="1.0"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE suppressions PUBLIC
"-//Checkstyle//DTD SuppressionFilter Configuration 1.2//EN"
"https://checkstyle.org/dtds/suppressions_1_2.dtd">
<!--
This file contains suppression rules for Checkstyle checks.
Ideally only files that cannot be modified (e.g. third-party code)
should be added here. All other violations should be fixed.
-->
<suppressions>
<suppress files="[/\\]build[/\\]generated[/\\]" checks=".*"/>
<!-- TODO: fix integration test formatting -->
<suppress files="[/\\]integration-tests[/\\]src[/\\]test[/\\]main[/\\]" checks=".*"/>
<!-- TODO: fix generic type name constraints -->
<suppress files="[/\\]fineract-command[/\\]src[/\\]main[/\\]java[/\\]" checks="MethodTypeParameterName"/>
<suppress files="[/\\]fineract-command[/\\]src[/\\]main[/\\]java[/\\]" checks="ClassTypeParameterName"/>
<suppress files="[/\\]fineract-command[/\\]src[/\\]main[/\\]java[/\\]" checks="HideUtilityClassConstructor"/>
</suppressions>
+24
View File
@@ -0,0 +1,24 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
[default]
aws_access_key_id=localstack
aws_secret_access_key=localstack
region=us-east-1
output=json

Some files were not shown because too many files have changed in this diff Show More