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/08/12 09:38:40 UTC
(fineract-consumer-facing) branch main updated (d041a75 -> 744de4b)
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 d041a75 Merge pull request #98 from edk12564/idempotency
add fc34d9f - added openbanking feature flow - added Spring Authorization Server - implemented JDBC stateful tokens for consent/authorization checks - added openbanking scoped TPP tokens with refresh tokens and ES256 signatures - added KYC checks for each token refresh to keep BFF up to date with possible Fineract KYC revocations - added openbanking read endpoints for accounts and balances - added user consent revocation functionality - added Liquibase migrations for stateful openba [...]
add 0eb7513 - made configuration properties static final variables for every property file
add 895a771 - fixed merge conflict
new 744de4b Merge pull request #97 from edk12564/openbanking
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 | 1 +
.../command/data/AuditRetentionProperties.java | 5 +-
.../command/data/PrincipalUserAuthData.java | 1 +
...java => AuthenticationKycRevokedException.java} | 8 +-
.../service/AuthenticationCommandServiceImpl.java | 16 +-
...ookup.java => PrincipalUserAuthLookupPort.java} | 2 +-
.../infrastructure/access/data/ActionPolicies.java | 72 ++-
.../infrastructure/access/data/ActionPolicy.java | 3 +-
.../access/data/AuthenticationConstants.java | 2 +
.../infrastructure/access/data/ConsumerAction.java | 7 +-
.../access/data/PrincipalUserData.java | 1 +
.../access/filter/DeviceFingerprintFilter.java | 3 +-
.../access/filter/RateLimitFilter.java | 74 ++-
...serLookup.java => PrincipalUserLookupPort.java} | 2 +-
.../access/service/AccessPolicyEvaluator.java | 21 +-
.../access/service/UserClientResolver.java | 4 +-
.../infrastructure/audit/data/AuditEventType.java | 5 +-
.../configs/AuthenticationProperties.java | 4 +-
.../infrastructure/configs/JwtProperties.java | 4 +-
.../configs/OAuth2AuthorizationServerConfig.java | 366 ++++++++++++++
...operties.java => OAuth2ConsumerProperties.java} | 26 +-
.../configs/RateLimitProperties.java | 11 +-
.../infrastructure/configs/SecurityConfig.java | 5 +-
.../configs/FineractClientProperties.java | 4 +-
.../service/ClientStandingChecker.java} | 29 +-
.../data/OAuth2ConsentData.java} | 11 +-
.../oauth2/data/OAuth2Constants.java | 52 ++
.../filter/OAuth2UserAuthenticationFilter.java | 61 +++
.../service/OAuth2AccessTokenCustomizer.java | 99 ++++
.../OAuth2ConsentAuthorizeRequestValidator.java | 63 +++
.../service/OAuth2ConsentDecisionCustomizer.java | 86 ++++
.../oauth2/service/OAuth2ConsentIdExtractor.java | 54 ++
.../service/OAuth2ConsentLookupPort.java} | 8 +-
.../service/OAuth2ConsentRecorderPort.java} | 12 +-
.../OAuth2RefreshTokenConsentValidator.java | 72 +++
.../api/OpenBankingConsentCommandController.java} | 37 +-
.../OpenBankingUserConsentCommandController.java} | 25 +-
.../command/data/ConsentStatus.java} | 10 +-
.../data/CreateOpenBankingConsentCommand.java} | 7 +-
.../CreateOpenBankingConsentCommandRequest.java} | 12 +-
.../data/OpenBankingConsentCommandData.java} | 13 +-
.../command/data/OpenBankingPermission.java} | 25 +-
.../command/domain/OpenBankingConsent.java | 119 +++++
.../domain/OpenBankingPermissionSetConverter.java | 54 ++
...penBankingConsentCommandNotFoundException.java} | 10 +-
.../OpenBankingConsentNotRevocableException.java} | 10 +-
...nBankingConsentPermissionInvalidException.java} | 10 +-
.../OpenBankingConsentCommandRepository.java} | 10 +-
.../service/OpenBankingConsentCommandService.java} | 16 +-
.../OpenBankingConsentCommandServiceImpl.java | 141 ++++++
.../OpenBankingConsentRecorderAdapter.java} | 21 +-
.../api/OpenBankingConsentQueryController.java} | 24 +-
.../query/api/OpenBankingQueryController.java} | 30 +-
.../OpenBankingUserConsentQueryController.java} | 21 +-
.../query/data/ConsentStatus.java} | 10 +-
.../query/data/OpenBankingAccountQueryData.java} | 7 +-
.../query/data/OpenBankingBalanceQueryData.java} | 11 +-
.../query/data/OpenBankingConsentQueryData.java} | 16 +-
.../query/data/OpenBankingPermission.java} | 25 +-
.../data/OpenBankingTppConsentQueryData.java} | 14 +-
.../data/OpenBankingUserConsentQueryData.java} | 14 +-
.../query/domain/OpenBankingAccountId.java | 82 +++
.../domain/OpenBankingConsentQueryEntity.java | 90 ++++
.../domain/OpenBankingPermissionSetConverter.java | 54 ++
.../OpenBankingAccountNotFoundException.java} | 10 +-
.../OpenBankingConsentInvalidException.java} | 11 +-
.../OpenBankingConsentQueryNotFoundException.java} | 10 +-
.../OpenBankingConsentQueryRepository.java} | 13 +-
.../service/OpenBankingConsentLookupAdapter.java | 46 ++
.../service/OpenBankingConsentQueryService.java} | 18 +-
.../OpenBankingConsentQueryServiceImpl.java | 106 ++++
.../query/service/OpenBankingQueryService.java} | 12 +-
.../query/service/OpenBankingQueryServiceImpl.java | 179 +++++++
.../service/PrincipalUserAuthLookupAdapter.java | 5 +-
.../query/service/PrincipalUserLookupAdapter.java | 8 +-
consumer/src/main/resources/application.properties | 18 +-
.../changelog/audit/004-create-audit-events.yaml | 2 +-
.../authentication/002-create-refresh-tokens.yaml | 2 +-
.../beneficiaries/003-create-beneficiaries.yaml | 2 +-
.../db/changelog/db.changelog-master.yaml | 4 +
.../005-create-event-publication.yaml | 2 +-
.../007-create-oauth2-authorization.yaml | 137 +++++
.../006-create-open-banking-consents.yaml} | 53 +-
.../db/changelog/user/001-create-users-table.yaml | 2 +-
.../AuthenticationCommandServiceImplTest.java | 75 ++-
.../cucumber/clients/OpenBankingClient.java | 189 +++++++
.../cucumber/helpers/AuditEventPoller.java | 75 +++
.../consumer/cucumber/helpers/FineractSeeder.java | 49 +-
.../cucumber/helpers/RegistrationHelper.java | 4 +-
.../consumer/cucumber/steps/AuditSteps.java | 52 +-
.../consumer/cucumber/steps/LoginSteps.java | 14 +
.../consumer/cucumber/steps/OpenBankingSteps.java | 562 +++++++++++++++++++++
.../access/filter/RateLimitFilterTest.java | 136 ++++-
.../access/service/AccessPolicyEvaluatorTest.java | 8 +
.../OAuth2AuthorizationServerConfigTest.java | 115 +++++
.../kyc/service/ClientStandingCheckerTest.java | 89 ++++
.../service/OAuth2AccessTokenCustomizerTest.java | 275 ++++++++++
...OAuth2ConsentAuthorizeRequestValidatorTest.java | 163 ++++++
.../OAuth2ConsentDecisionCustomizerTest.java | 177 +++++++
.../OAuth2RefreshTokenConsentValidatorTest.java | 201 ++++++++
.../OpenBankingConsentCommandServiceImplTest.java | 301 +++++++++++
.../query/domain/OpenBankingAccountIdTest.java | 86 ++++
.../OpenBankingConsentLookupAdapterTest.java | 117 +++++
.../OpenBankingConsentQueryServiceImplTest.java | 202 ++++++++
.../service/OpenBankingQueryServiceImplTest.java | 347 +++++++++++++
.../service/PrincipalUserLookupAdapterTest.java | 32 +-
consumer/src/test/resources/features/login.feature | 6 +
.../test/resources/features/openbanking.feature | 120 +++++
frontend/public/i18n/en.json | 37 +-
frontend/public/i18n/hi.json | 37 +-
frontend/src/app/app.routes.ts | 6 +
frontend/src/app/core/audit/audit.service.ts | 3 +-
.../src/app/features/auth/login.component.spec.ts | 49 ++
frontend/src/app/features/auth/login.component.ts | 18 +-
.../app/features/consent/consent.component.spec.ts | 136 +++++
.../src/app/features/consent/consent.component.ts | 108 ++++
.../src/app/features/profile/profile.component.ts | 138 ++++-
.../src/app/features/profile/profile.store.spec.ts | 62 +++
frontend/src/app/features/profile/profile.store.ts | 22 +
.../shared/css/{detail-page.scss => badge.scss} | 37 +-
.../src/app/shared/ui/status-badge.component.ts | 33 +-
122 files changed, 6379 insertions(+), 455 deletions(-)
copy consumer/src/main/java/org/apache/fineract/consumer/authentication/command/exception/{RefreshTokenInvalidException.java => AuthenticationKycRevokedException.java} (77%)
rename consumer/src/main/java/org/apache/fineract/consumer/authentication/command/service/{PrincipalUserAuthLookup.java => PrincipalUserAuthLookupPort.java} (96%)
copy consumer/src/main/java/org/apache/fineract/consumer/infrastructure/access/repository/{PrincipalUserLookup.java => PrincipalUserLookupPort.java} (96%)
create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/infrastructure/configs/OAuth2AuthorizationServerConfig.java
copy consumer/src/main/java/org/apache/fineract/consumer/infrastructure/configs/{AuthenticationProperties.java => OAuth2ConsumerProperties.java} (65%)
copy consumer/src/main/java/org/apache/fineract/consumer/infrastructure/{fineractclient/interceptors/FineractTenantHeaderInterceptor.java => kyc/service/ClientStandingChecker.java} (52%)
copy consumer/src/main/java/org/apache/fineract/consumer/infrastructure/{jwt/data/IssuedJwt.java => oauth2/data/OAuth2ConsentData.java} (81%)
create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/infrastructure/oauth2/data/OAuth2Constants.java
create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/infrastructure/oauth2/filter/OAuth2UserAuthenticationFilter.java
create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2AccessTokenCustomizer.java
create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2ConsentAuthorizeRequestValidator.java
create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2ConsentDecisionCustomizer.java
create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2ConsentIdExtractor.java
copy consumer/src/main/java/org/apache/fineract/consumer/infrastructure/{access/repository/PrincipalUserLookup.java => oauth2/service/OAuth2ConsentLookupPort.java} (77%)
copy consumer/src/main/java/org/apache/fineract/consumer/infrastructure/{access/data/ResourceType.java => oauth2/service/OAuth2ConsentRecorderPort.java} (77%)
create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2RefreshTokenConsentValidator.java
copy consumer/src/main/java/org/apache/fineract/consumer/{audit/command/api/AuditCommandController.java => openbanking/command/api/OpenBankingConsentCommandController.java} (51%)
copy consumer/src/main/java/org/apache/fineract/consumer/{summary/query/api/SummaryQueryController.java => openbanking/command/api/OpenBankingUserConsentCommandController.java} (57%)
copy consumer/src/main/java/org/apache/fineract/consumer/{beneficiaries/command/data/BeneficiaryAccountType.java => openbanking/command/data/ConsentStatus.java} (83%)
copy consumer/src/main/java/org/apache/fineract/consumer/{infrastructure/access/data/OwnedAccounts.java => openbanking/command/data/CreateOpenBankingConsentCommand.java} (85%)
copy consumer/src/main/java/org/apache/fineract/consumer/{authentication/command/data/PrincipalUserAuthCredentialsData.java => openbanking/command/data/CreateOpenBankingConsentCommandRequest.java} (79%)
copy consumer/src/main/java/org/apache/fineract/consumer/{user/command/data/UserCreatedCommandData.java => openbanking/command/data/OpenBankingConsentCommandData.java} (73%)
copy consumer/src/main/java/org/apache/fineract/consumer/{infrastructure/exception/ConsumerApiError.java => openbanking/command/data/OpenBankingPermission.java} (59%)
create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/openbanking/command/domain/OpenBankingConsent.java
create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/openbanking/command/domain/OpenBankingPermissionSetConverter.java
copy consumer/src/main/java/org/apache/fineract/consumer/{authentication/command/exception/RefreshTokenInvalidException.java => openbanking/command/exception/OpenBankingConsentCommandNotFoundException.java} (71%)
copy consumer/src/main/java/org/apache/fineract/consumer/{loans/command/exception/LoanCommandUpstreamUnavailableException.java => openbanking/command/exception/OpenBankingConsentNotRevocableException.java} (71%)
copy consumer/src/main/java/org/apache/fineract/consumer/{identity/query/exception/IdentityVerificationException.java => openbanking/command/exception/OpenBankingConsentPermissionInvalidException.java} (70%)
rename consumer/src/main/java/org/apache/fineract/consumer/{infrastructure/access/repository/PrincipalUserLookup.java => openbanking/command/repository/OpenBankingConsentCommandRepository.java} (72%)
copy consumer/src/main/java/org/apache/fineract/consumer/{summary/query/service/SummaryQueryService.java => openbanking/command/service/OpenBankingConsentCommandService.java} (59%)
create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/openbanking/command/service/OpenBankingConsentCommandServiceImpl.java
copy consumer/src/main/java/org/apache/fineract/consumer/{user/query/service/PrincipalUserLookupAdapter.java => openbanking/command/service/OpenBankingConsentRecorderAdapter.java} (58%)
copy consumer/src/main/java/org/apache/fineract/consumer/{summary/query/api/SummaryQueryController.java => openbanking/query/api/OpenBankingConsentQueryController.java} (59%)
copy consumer/src/main/java/org/apache/fineract/consumer/{beneficiaries/query/api/BeneficiariesQueryController.java => openbanking/query/api/OpenBankingQueryController.java} (54%)
copy consumer/src/main/java/org/apache/fineract/consumer/{summary/query/api/SummaryQueryController.java => openbanking/query/api/OpenBankingUserConsentQueryController.java} (63%)
copy consumer/src/main/java/org/apache/fineract/consumer/{beneficiaries/command/data/BeneficiaryAccountType.java => openbanking/query/data/ConsentStatus.java} (83%)
copy consumer/src/main/java/org/apache/fineract/consumer/{loans/query/data/LoanAccountListItemQueryData.java => openbanking/query/data/OpenBankingAccountQueryData.java} (86%)
copy consumer/src/main/java/org/apache/fineract/consumer/{transfers/command/data/TransferCommandData.java => openbanking/query/data/OpenBankingBalanceQueryData.java} (83%)
copy consumer/src/main/java/org/apache/fineract/consumer/{user/command/data/UserCreatedCommandData.java => openbanking/query/data/OpenBankingConsentQueryData.java} (67%)
copy consumer/src/main/java/org/apache/fineract/consumer/{infrastructure/exception/ConsumerApiError.java => openbanking/query/data/OpenBankingPermission.java} (59%)
copy consumer/src/main/java/org/apache/fineract/consumer/{user/command/data/UserCreatedCommandData.java => openbanking/query/data/OpenBankingTppConsentQueryData.java} (70%)
copy consumer/src/main/java/org/apache/fineract/consumer/{user/command/data/UserCreatedCommandData.java => openbanking/query/data/OpenBankingUserConsentQueryData.java} (71%)
create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/openbanking/query/domain/OpenBankingAccountId.java
create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/openbanking/query/domain/OpenBankingConsentQueryEntity.java
create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/openbanking/query/domain/OpenBankingPermissionSetConverter.java
copy consumer/src/main/java/org/apache/fineract/consumer/{transfers/command/exception/TransferNotFoundException.java => openbanking/query/exception/OpenBankingAccountNotFoundException.java} (72%)
copy consumer/src/main/java/org/apache/fineract/consumer/{beneficiaries/command/exception/BeneficiaryAccountInvalidException.java => openbanking/query/exception/OpenBankingConsentInvalidException.java} (72%)
copy consumer/src/main/java/org/apache/fineract/consumer/{transfers/command/exception/TransferNotFoundException.java => openbanking/query/exception/OpenBankingConsentQueryNotFoundException.java} (72%)
copy consumer/src/main/java/org/apache/fineract/consumer/{authentication/command/repository/RefreshTokenCommandRepository.java => openbanking/query/repository/OpenBankingConsentQueryRepository.java} (63%)
create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/openbanking/query/service/OpenBankingConsentLookupAdapter.java
copy consumer/src/main/java/org/apache/fineract/consumer/{beneficiaries/query/service/BeneficiariesQueryService.java => openbanking/query/service/OpenBankingConsentQueryService.java} (59%)
create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/openbanking/query/service/OpenBankingConsentQueryServiceImpl.java
copy consumer/src/main/java/org/apache/fineract/consumer/{summary/query/service/SummaryQueryService.java => openbanking/query/service/OpenBankingQueryService.java} (65%)
create mode 100644 consumer/src/main/java/org/apache/fineract/consumer/openbanking/query/service/OpenBankingQueryServiceImpl.java
create mode 100644 consumer/src/main/resources/db/changelog/infrastructure/007-create-oauth2-authorization.yaml
copy consumer/src/main/resources/db/changelog/{user/001-create-users-table.yaml => openbanking/006-create-open-banking-consents.yaml} (70%)
create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/cucumber/clients/OpenBankingClient.java
create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/cucumber/helpers/AuditEventPoller.java
create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/cucumber/steps/OpenBankingSteps.java
create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/infrastructure/configs/OAuth2AuthorizationServerConfigTest.java
create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/infrastructure/kyc/service/ClientStandingCheckerTest.java
create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2AccessTokenCustomizerTest.java
create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2ConsentAuthorizeRequestValidatorTest.java
create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2ConsentDecisionCustomizerTest.java
create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/infrastructure/oauth2/service/OAuth2RefreshTokenConsentValidatorTest.java
create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/openbanking/command/service/OpenBankingConsentCommandServiceImplTest.java
create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/openbanking/query/domain/OpenBankingAccountIdTest.java
create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/openbanking/query/service/OpenBankingConsentLookupAdapterTest.java
create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/openbanking/query/service/OpenBankingConsentQueryServiceImplTest.java
create mode 100644 consumer/src/test/java/org/apache/fineract/consumer/openbanking/query/service/OpenBankingQueryServiceImplTest.java
create mode 100644 consumer/src/test/resources/features/openbanking.feature
create mode 100644 frontend/src/app/features/auth/login.component.spec.ts
create mode 100644 frontend/src/app/features/consent/consent.component.spec.ts
create mode 100644 frontend/src/app/features/consent/consent.component.ts
copy frontend/src/app/shared/css/{detail-page.scss => badge.scss} (57%)
(fineract-consumer-facing) 01/01: Merge pull request #97 from edk12564/openbanking
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 744de4baf2b8d4dc014963b440e308d0554f0d6a
Merge: d041a75 895a771
Author: Aman-Mittal <32...@users.noreply.github.com>
AuthorDate: Wed Aug 12 15:08:35 2026 +0530
Merge pull request #97 from edk12564/openbanking
Implement first steps for openbanking
consumer/build.gradle | 1 +
consumer/compose.yaml | 1 +
.../command/data/AuditRetentionProperties.java | 5 +-
.../command/data/PrincipalUserAuthData.java | 1 +
.../AuthenticationKycRevokedException.java} | 17 +-
.../service/AuthenticationCommandServiceImpl.java | 16 +-
...ookup.java => PrincipalUserAuthLookupPort.java} | 2 +-
.../infrastructure/access/data/ActionPolicies.java | 72 ++-
.../infrastructure/access/data/ActionPolicy.java | 3 +-
.../access/data/AuthenticationConstants.java | 2 +
.../infrastructure/access/data/ConsumerAction.java | 7 +-
.../access/data/PrincipalUserData.java | 1 +
.../access/filter/DeviceFingerprintFilter.java | 3 +-
.../access/filter/RateLimitFilter.java | 74 ++-
...serLookup.java => PrincipalUserLookupPort.java} | 2 +-
.../access/service/AccessPolicyEvaluator.java | 21 +-
.../access/service/UserClientResolver.java | 4 +-
.../infrastructure/audit/data/AuditEventType.java | 5 +-
.../configs/AuthenticationProperties.java | 4 +-
.../infrastructure/configs/JwtProperties.java | 4 +-
.../configs/OAuth2AuthorizationServerConfig.java | 366 ++++++++++++++
...operties.java => OAuth2ConsumerProperties.java} | 26 +-
.../configs/RateLimitProperties.java | 11 +-
.../infrastructure/configs/SecurityConfig.java | 5 +-
.../configs/FineractClientProperties.java | 4 +-
.../kyc/service/ClientStandingChecker.java | 46 ++
.../data/OAuth2ConsentData.java} | 13 +-
.../oauth2/data/OAuth2Constants.java | 52 ++
.../filter/OAuth2UserAuthenticationFilter.java | 61 +++
.../service/OAuth2AccessTokenCustomizer.java | 99 ++++
.../OAuth2ConsentAuthorizeRequestValidator.java | 63 +++
.../service/OAuth2ConsentDecisionCustomizer.java | 86 ++++
.../oauth2/service/OAuth2ConsentIdExtractor.java | 54 ++
.../service/OAuth2ConsentLookupPort.java} | 8 +-
.../service/OAuth2ConsentRecorderPort.java} | 10 +-
.../OAuth2RefreshTokenConsentValidator.java | 72 +++
.../api/OpenBankingConsentCommandController.java | 57 +++
.../OpenBankingUserConsentCommandController.java | 48 ++
.../command/data/ConsentStatus.java} | 14 +-
.../data/CreateOpenBankingConsentCommand.java} | 11 +-
.../CreateOpenBankingConsentCommandRequest.java} | 14 +-
.../data/OpenBankingConsentCommandData.java} | 15 +-
.../command/data/OpenBankingPermission.java} | 29 +-
.../command/domain/OpenBankingConsent.java | 119 +++++
.../domain/OpenBankingPermissionSetConverter.java | 54 ++
...penBankingConsentCommandNotFoundException.java} | 17 +-
.../OpenBankingConsentNotRevocableException.java} | 17 +-
...nBankingConsentPermissionInvalidException.java} | 17 +-
.../OpenBankingConsentCommandRepository.java} | 10 +-
.../service/OpenBankingConsentCommandService.java} | 18 +-
.../OpenBankingConsentCommandServiceImpl.java | 141 ++++++
.../OpenBankingConsentRecorderAdapter.java} | 21 +-
.../api/OpenBankingConsentQueryController.java | 49 ++
.../query/api/OpenBankingQueryController.java | 55 ++
.../api/OpenBankingUserConsentQueryController.java | 46 ++
.../query/data/ConsentStatus.java} | 14 +-
.../query/data/OpenBankingAccountQueryData.java} | 15 +-
.../query/data/OpenBankingBalanceQueryData.java} | 14 +-
.../query/data/OpenBankingConsentQueryData.java} | 18 +-
.../query/data/OpenBankingPermission.java} | 29 +-
.../data/OpenBankingTppConsentQueryData.java} | 16 +-
.../data/OpenBankingUserConsentQueryData.java} | 16 +-
.../query/domain/OpenBankingAccountId.java | 82 +++
.../domain/OpenBankingConsentQueryEntity.java | 90 ++++
.../domain/OpenBankingPermissionSetConverter.java | 54 ++
.../OpenBankingAccountNotFoundException.java} | 17 +-
.../OpenBankingConsentInvalidException.java} | 17 +-
.../OpenBankingConsentQueryNotFoundException.java} | 17 +-
.../OpenBankingConsentQueryRepository.java} | 15 +-
.../service/OpenBankingConsentLookupAdapter.java | 46 ++
.../service/OpenBankingConsentQueryService.java} | 17 +-
.../OpenBankingConsentQueryServiceImpl.java | 106 ++++
.../query/service/OpenBankingQueryService.java} | 25 +-
.../query/service/OpenBankingQueryServiceImpl.java | 179 +++++++
.../service/PrincipalUserAuthLookupAdapter.java | 5 +-
.../query/service/PrincipalUserLookupAdapter.java | 8 +-
consumer/src/main/resources/application.properties | 18 +-
.../changelog/audit/004-create-audit-events.yaml | 2 +-
.../authentication/002-create-refresh-tokens.yaml | 2 +-
.../beneficiaries/003-create-beneficiaries.yaml | 2 +-
.../db/changelog/db.changelog-master.yaml | 4 +
.../005-create-event-publication.yaml | 2 +-
.../007-create-oauth2-authorization.yaml | 137 +++++
.../006-create-open-banking-consents.yaml} | 53 +-
.../db/changelog/user/001-create-users-table.yaml | 2 +-
.../AuthenticationCommandServiceImplTest.java | 75 ++-
.../cucumber/clients/OpenBankingClient.java | 189 +++++++
.../cucumber/helpers/AuditEventPoller.java | 75 +++
.../consumer/cucumber/helpers/FineractSeeder.java | 49 +-
.../cucumber/helpers/RegistrationHelper.java | 4 +-
.../consumer/cucumber/steps/AuditSteps.java | 52 +-
.../consumer/cucumber/steps/LoginSteps.java | 14 +
.../consumer/cucumber/steps/OpenBankingSteps.java | 562 +++++++++++++++++++++
.../access/filter/RateLimitFilterTest.java | 136 ++++-
.../access/service/AccessPolicyEvaluatorTest.java | 8 +
.../OAuth2AuthorizationServerConfigTest.java | 115 +++++
.../kyc/service/ClientStandingCheckerTest.java | 89 ++++
.../service/OAuth2AccessTokenCustomizerTest.java | 275 ++++++++++
...OAuth2ConsentAuthorizeRequestValidatorTest.java | 163 ++++++
.../OAuth2ConsentDecisionCustomizerTest.java | 177 +++++++
.../OAuth2RefreshTokenConsentValidatorTest.java | 201 ++++++++
.../OpenBankingConsentCommandServiceImplTest.java | 301 +++++++++++
.../query/domain/OpenBankingAccountIdTest.java | 86 ++++
.../OpenBankingConsentLookupAdapterTest.java | 117 +++++
.../OpenBankingConsentQueryServiceImplTest.java | 202 ++++++++
.../service/OpenBankingQueryServiceImplTest.java | 347 +++++++++++++
.../service/PrincipalUserLookupAdapterTest.java | 32 +-
consumer/src/test/resources/features/login.feature | 6 +
.../test/resources/features/openbanking.feature | 120 +++++
frontend/public/i18n/en.json | 37 +-
frontend/public/i18n/hi.json | 37 +-
frontend/src/app/app.routes.ts | 6 +
frontend/src/app/core/audit/audit.service.ts | 3 +-
.../src/app/features/auth/login.component.spec.ts | 49 ++
frontend/src/app/features/auth/login.component.ts | 18 +-
.../app/features/consent/consent.component.spec.ts | 136 +++++
.../src/app/features/consent/consent.component.ts | 108 ++++
.../src/app/features/profile/profile.component.ts | 138 ++++-
.../src/app/features/profile/profile.store.spec.ts | 62 +++
frontend/src/app/features/profile/profile.store.ts | 22 +
.../src/app/shared/css/badge.scss | 45 +-
.../src/app/shared/ui/status-badge.component.ts | 33 +-
122 files changed, 6624 insertions(+), 460 deletions(-)