You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by am...@apache.org on 2026/07/31 03:53:33 UTC

(fineract-consumer-facing) branch main updated (837dcbb -> 76783cd)

This is an automated email from the ASF dual-hosted git repository.

Aman-Mittal pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/fineract-consumer-facing.git


    from 837dcbb  Merge pull request #76 from edk12564/ci-testcount
     add bb92eef  - implemented audit feature - added event driven architecture with EventBus for server side audits - utilized Spring Modulith to handle transactional events - added liquibase migration for nontransactional audit events - added liquibase migration for Spring Modulith's transactional events - added PIIScreen for information in the audit table to protect user data - implemented @TransactionalAuditListener and @NonTransactionalAuditListener aspects to handle different types  [...]
     add 1a50166  - modified audit repository query for readability
     new 76783cd  Merge pull request #78 from edk12564/audit

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 consumer/build.gradle                              |   1 +
 consumer/compose.yaml                              |   2 +
 .../audit/command/api/AuditCommandController.java  |  54 ++++
 .../command/data/AuditEventCommandRequest.java}    |  16 +-
 .../command/data/AuditEventSource.java}            |   8 +-
 .../data/AuditEventsSubmittedCommandData.java}     |  10 +-
 .../command/data/AuditRetentionProperties.java     |  50 ++++
 .../data/SubmitAuditEventsCommandRequest.java}     |  17 +-
 .../consumer/audit/command/domain/AuditEvent.java  | 121 +++++++++
 .../exception/AuditBatchTooLargeException.java}    |  11 +-
 .../repository/AuditEventCommandRepository.java    |  46 ++++
 .../command/service/AuditCommandService.java}      |  11 +-
 .../command/service/AuditCommandServiceImpl.java   | 166 ++++++++++++
 .../audit/command/service/AuditPiiScreen.java      |  47 ++++
 .../audit/command/service/AuditRetentionJob.java   |  65 +++++
 .../command/service/ServerAuditEventListener.java  |  73 ++++++
 .../service/AuthenticationCommandServiceImpl.java  |  64 ++++-
 .../service/BeneficiariesCommandServiceImpl.java   |   6 -
 .../service/BeneficiariesQueryServiceImpl.java     |   4 -
 .../query/service/IdentityQueryServiceImpl.java    |   2 -
 .../infrastructure/access/data/ActionPolicies.java |   1 +
 .../infrastructure/access/data/ConsumerAction.java |   3 +-
 ...PrincipalUserData.java => RateLimitWindow.java} |   7 +-
 ...eption.java => RateLimitExceededException.java} |   8 +-
 .../access/filter/DeviceFingerprintFilter.java     |  21 ++
 .../access/filter/RateLimitFilter.java             |  77 ++++++
 .../access/service/AccessPolicyEvaluator.java      |  35 ++-
 .../access/service/RateLimitCounter.java           |  61 +++++
 .../annotation/NonTransactionalAuditListener.java} |  11 +-
 .../annotation/TransactionalAuditListener.java}    |   9 +-
 .../infrastructure/audit/data/AuditEventType.java  |  48 ++++
 .../audit/data/AuditSeverity.java}                 |   9 +-
 .../audit/data/NonTransactionalAuditEvent.java}    |  30 ++-
 .../audit/data/TransactionalAuditEvent.java}       |  30 ++-
 ...{AuthenticationConfig.java => AsyncConfig.java} |   8 +-
 ...ionProperties.java => RateLimitProperties.java} |  25 +-
 .../infrastructure/configs/SecurityConfig.java     |  13 +-
 .../command/service/LoansCommandServiceImpl.java   |   4 -
 .../loans/query/service/LoansQueryServiceImpl.java |  10 -
 .../otp/command/service/OtpCommandServiceImpl.java |  23 +-
 .../service/RegistrationCommandServiceImpl.java    |   4 -
 .../query/service/SavingsQueryServiceImpl.java     |   7 -
 .../query/service/SummaryQueryServiceImpl.java     |   2 -
 .../service/TransfersCommandServiceImpl.java       |   3 -
 .../command/service/UserCommandServiceImpl.java    |  29 ++-
 .../user/query/service/UserQueryServiceImpl.java   |   8 -
 consumer/src/main/resources/application.properties |  17 ++
 .../004-create-audit-events.yaml}                  |  83 +++---
 .../db/changelog/db.changelog-master.yaml          |   4 +
 .../005-create-event-publication.yaml}             |  60 ++---
 .../service/AuditCommandServiceImplTest.java       | 273 ++++++++++++++++++++
 .../audit/command/service/AuditPiiScreenTest.java  |  67 +++++
 .../command/service/AuditRetentionJobTest.java     | 137 ++++++++++
 .../service/ServerAuditEventListenerTest.java      | 147 +++++++++++
 .../AuthenticationCommandServiceImplTest.java      |   7 +-
 .../cucumber/helpers/ConsumerApiClientFactory.java |  14 +-
 .../consumer/cucumber/hooks/RateLimitReset.java    |  54 ++++
 .../consumer/cucumber/steps/AuditSteps.java        | 285 +++++++++++++++++++++
 .../consumer/cucumber/steps/RateLimitSteps.java    | 113 ++++++++
 .../access/filter/DeviceFingerprintFilterTest.java |  25 +-
 .../access/filter/RateLimitFilterTest.java         | 129 ++++++++++
 .../access/service/AccessPolicyEvaluatorTest.java  |   4 +
 .../access/service/RateLimitCounterTest.java       |  99 +++++++
 .../command/service/OtpCommandServiceImplTest.java |   6 +-
 .../service/UserCommandServiceImplTest.java        |   4 +
 consumer/src/test/resources/features/audit.feature |  52 ++++
 .../src/test/resources/features/ratelimit.feature  |  23 +-
 frontend/public/i18n/en.json                       |   3 +-
 frontend/public/i18n/hi.json                       |   3 +-
 frontend/src/app/app.config.ts                     |   3 +
 frontend/src/app/core/audit/audit-error-handler.ts |  49 ++++
 frontend/src/app/core/audit/audit.service.ts       | 114 +++++++++
 frontend/src/app/core/audit/pii-scrub.ts           |  48 ++++
 .../src/app/core/interceptors/error.interceptor.ts |  45 +++-
 .../features/beneficiaries/beneficiaries.store.ts  |   3 +
 frontend/src/app/layout/shell.component.ts         |  53 +++-
 76 files changed, 2910 insertions(+), 274 deletions(-)
 create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/audit/command/api/AuditCommandController.java
 copy consumer/src/main/java/org/apache/fineract/consumer/{transfers/command/data/TransferChallengeCommandData.java => audit/command/data/AuditEventCommandRequest.java} (79%)
 copy consumer/src/main/java/org/apache/fineract/consumer/{user/command/data/UserStatus.java => audit/command/data/AuditEventSource.java} (87%)
 copy consumer/src/main/java/org/apache/fineract/consumer/{infrastructure/exception/ConsumerApiError.java => audit/command/data/AuditEventsSubmittedCommandData.java} (85%)
 create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/audit/command/data/AuditRetentionProperties.java
 copy consumer/src/main/java/org/apache/fineract/consumer/{registration/command/data/SendOtpCommandRequest.java => audit/command/data/SubmitAuditEventsCommandRequest.java} (78%)
 create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/audit/command/domain/AuditEvent.java
 copy consumer/src/main/java/org/apache/fineract/consumer/{authentication/command/exception/InvalidCredentialsException.java => audit/command/exception/AuditBatchTooLargeException.java} (73%)
 create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/audit/command/repository/AuditEventCommandRepository.java
 copy consumer/src/main/java/org/apache/fineract/consumer/{summary/query/service/SummaryQueryService.java => audit/command/service/AuditCommandService.java} (67%)
 create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/audit/command/service/AuditCommandServiceImpl.java
 create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/audit/command/service/AuditPiiScreen.java
 create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/audit/command/service/AuditRetentionJob.java
 create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/audit/command/service/ServerAuditEventListener.java
 copy consumer/src/main/java/org/apache/fineract/consumer/infrastructure/access/data/{PrincipalUserData.java => RateLimitWindow.java} (90%)
 copy consumer/src/main/java/org/apache/fineract/consumer/infrastructure/access/exception/{AccessKycRequiredException.java => RateLimitExceededException.java} (78%)
 create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/infrastructure/access/filter/RateLimitFilter.java
 create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/infrastructure/access/service/RateLimitCounter.java
 rename consumer/src/main/java/org/apache/fineract/consumer/infrastructure/{command/Command.java => audit/annotation/NonTransactionalAuditListener.java} (77%)
 rename consumer/src/main/java/org/apache/fineract/consumer/infrastructure/{query/Query.java => audit/annotation/TransactionalAuditListener.java} (79%)
 create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/infrastructure/audit/data/AuditEventType.java
 copy consumer/src/main/java/org/apache/fineract/consumer/{user/command/data/UserStatus.java => infrastructure/audit/data/AuditSeverity.java} (86%)
 copy consumer/src/main/java/org/apache/fineract/consumer/{beneficiaries/command/data/ConfirmUpdateBeneficiaryCommand.java => infrastructure/audit/data/NonTransactionalAuditEvent.java} (57%)
 copy consumer/src/main/java/org/apache/fineract/consumer/{beneficiaries/command/data/ConfirmUpdateBeneficiaryCommand.java => infrastructure/audit/data/TransactionalAuditEvent.java} (57%)
 copy consumer/src/main/java/org/apache/fineract/consumer/infrastructure/configs/{AuthenticationConfig.java => AsyncConfig.java} (83%)
 copy consumer/src/main/java/org/apache/fineract/consumer/infrastructure/configs/{AuthenticationProperties.java => RateLimitProperties.java} (64%)
 copy consumer/src/main/resources/db/changelog/{beneficiaries/003-create-beneficiaries.yaml => audit/004-create-audit-events.yaml} (60%)
 copy consumer/src/main/resources/db/changelog/{user/001-create-users-table.yaml => infrastructure/005-create-event-publication.yaml} (63%)
 create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/audit/command/service/AuditCommandServiceImplTest.java
 create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/audit/command/service/AuditPiiScreenTest.java
 create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/audit/command/service/AuditRetentionJobTest.java
 create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/audit/command/service/ServerAuditEventListenerTest.java
 create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/cucumber/hooks/RateLimitReset.java
 create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/cucumber/steps/AuditSteps.java
 create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/cucumber/steps/RateLimitSteps.java
 create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/infrastructure/access/filter/RateLimitFilterTest.java
 create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/infrastructure/access/service/RateLimitCounterTest.java
 create mode 100644 consumer/src/test/resources/features/audit.feature
 copy frontend/.editorconfig => consumer/src/test/resources/features/ratelimit.feature (65%)
 create mode 100644 frontend/src/app/core/audit/audit-error-handler.ts
 create mode 100644 frontend/src/app/core/audit/audit.service.ts
 create mode 100644 frontend/src/app/core/audit/pii-scrub.ts


(fineract-consumer-facing) 01/01: Merge pull request #78 from edk12564/audit

Posted by am...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

Aman-Mittal pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fineract-consumer-facing.git

commit 76783cd55efae143e0fc96bbc46800993c784423
Merge: 837dcbb 1a50166
Author: Aman-Mittal <32...@users.noreply.github.com>
AuthorDate: Fri Jul 31 09:23:26 2026 +0530

    Merge pull request #78 from edk12564/audit
    
    Implement Audit feature and Application Rate Limiting

 consumer/build.gradle                              |   1 +
 consumer/compose.yaml                              |   2 +
 .../audit/command/api/AuditCommandController.java  |  54 ++++
 .../command/data/AuditEventCommandRequest.java}    |  29 ++-
 .../command/data/AuditEventSource.java}            |  15 +-
 .../data/AuditEventsSubmittedCommandData.java}     |  23 +-
 .../command/data/AuditRetentionProperties.java     |  50 ++++
 .../data/SubmitAuditEventsCommandRequest.java}     |  28 +-
 .../consumer/audit/command/domain/AuditEvent.java  | 121 +++++++++
 .../exception/AuditBatchTooLargeException.java}    |  17 +-
 .../repository/AuditEventCommandRepository.java    |  46 ++++
 .../command/service/AuditCommandService.java}      |  17 +-
 .../command/service/AuditCommandServiceImpl.java   | 166 ++++++++++++
 .../audit/command/service/AuditPiiScreen.java      |  47 ++++
 .../audit/command/service/AuditRetentionJob.java   |  65 +++++
 .../command/service/ServerAuditEventListener.java  |  73 ++++++
 .../service/AuthenticationCommandServiceImpl.java  |  64 ++++-
 .../service/BeneficiariesCommandServiceImpl.java   |   6 -
 .../service/BeneficiariesQueryServiceImpl.java     |   4 -
 .../query/service/IdentityQueryServiceImpl.java    |   2 -
 .../infrastructure/access/data/ActionPolicies.java |   1 +
 .../infrastructure/access/data/ConsumerAction.java |   3 +-
 .../data/RateLimitWindow.java}                     |  21 +-
 .../exception/RateLimitExceededException.java}     |  18 +-
 .../access/filter/DeviceFingerprintFilter.java     |  21 ++
 .../access/filter/RateLimitFilter.java             |  77 ++++++
 .../access/service/AccessPolicyEvaluator.java      |  35 ++-
 .../access/service/RateLimitCounter.java           |  61 +++++
 .../annotation/NonTransactionalAuditListener.java} |  11 +-
 .../annotation/TransactionalAuditListener.java}    |   9 +-
 .../infrastructure/audit/data/AuditEventType.java  |  48 ++++
 .../Query.java => audit/data/AuditSeverity.java}   |  16 +-
 .../audit/data/NonTransactionalAuditEvent.java     |  48 ++++
 .../audit/data/TransactionalAuditEvent.java        |  48 ++++
 .../Command.java => configs/AsyncConfig.java}      |  18 +-
 .../RateLimitProperties.java}                      |  44 ++--
 .../infrastructure/configs/SecurityConfig.java     |  13 +-
 .../command/service/LoansCommandServiceImpl.java   |   4 -
 .../loans/query/service/LoansQueryServiceImpl.java |  10 -
 .../otp/command/service/OtpCommandServiceImpl.java |  23 +-
 .../service/RegistrationCommandServiceImpl.java    |   4 -
 .../query/service/SavingsQueryServiceImpl.java     |   7 -
 .../query/service/SummaryQueryServiceImpl.java     |   2 -
 .../service/TransfersCommandServiceImpl.java       |   3 -
 .../command/service/UserCommandServiceImpl.java    |  29 ++-
 .../user/query/service/UserQueryServiceImpl.java   |   8 -
 consumer/src/main/resources/application.properties |  17 ++
 .../changelog/audit/004-create-audit-events.yaml   | 111 ++++++++
 .../db/changelog/db.changelog-master.yaml          |   4 +
 .../005-create-event-publication.yaml              |  75 ++++++
 .../service/AuditCommandServiceImplTest.java       | 273 ++++++++++++++++++++
 .../audit/command/service/AuditPiiScreenTest.java  |  67 +++++
 .../command/service/AuditRetentionJobTest.java     | 137 ++++++++++
 .../service/ServerAuditEventListenerTest.java      | 147 +++++++++++
 .../AuthenticationCommandServiceImplTest.java      |   7 +-
 .../cucumber/helpers/ConsumerApiClientFactory.java |  14 +-
 .../consumer/cucumber/hooks/RateLimitReset.java    |  54 ++++
 .../consumer/cucumber/steps/AuditSteps.java        | 285 +++++++++++++++++++++
 .../consumer/cucumber/steps/RateLimitSteps.java    | 113 ++++++++
 .../access/filter/DeviceFingerprintFilterTest.java |  25 +-
 .../access/filter/RateLimitFilterTest.java         | 129 ++++++++++
 .../access/service/AccessPolicyEvaluatorTest.java  |   4 +
 .../access/service/RateLimitCounterTest.java       |  99 +++++++
 .../command/service/OtpCommandServiceImplTest.java |   6 +-
 .../service/UserCommandServiceImplTest.java        |   4 +
 consumer/src/test/resources/features/audit.feature |  52 ++++
 .../resources/features/ratelimit.feature}          |  15 +-
 frontend/public/i18n/en.json                       |   3 +-
 frontend/public/i18n/hi.json                       |   3 +-
 frontend/src/app/app.config.ts                     |   3 +
 frontend/src/app/core/audit/audit-error-handler.ts |  49 ++++
 frontend/src/app/core/audit/audit.service.ts       | 114 +++++++++
 frontend/src/app/core/audit/pii-scrub.ts           |  48 ++++
 .../src/app/core/interceptors/error.interceptor.ts |  45 +++-
 .../features/beneficiaries/beneficiaries.store.ts  |   3 +
 frontend/src/app/layout/shell.component.ts         |  53 +++-
 76 files changed, 3152 insertions(+), 219 deletions(-)