BancX Environments and Tools

DT003
Jasper report server host

End to End Tests
QGA Latest End to End All End to End Latest Api All Api
DT004 Latest End to End All End to End Latest Api All Api
AVBOB-UAT Latest End to End All End to End Latest Api All Api
FLOAT-UAT Latest End to End All End to End Latest Api All Api
DEMO3 Latest End to End All End to End Latest Api All Api
Service Unit Tests
bx-analytics
Latest Develop | All Develop | All Master
bx-b2b-integration
Latest Develop | All Develop | All Master
bx-camunda-7
Latest Develop | All Develop | All Master
bx-collections
Latest Develop | All Develop | All Master
bx-decision-engine
Latest Develop | All Develop | All Master

account-number
Latest Develop | All Develop | All Master
application-assembly
Latest Develop | All Develop | All Master
assessment
Latest Develop | All Develop | All Master
audit
Latest Develop | All Develop | All Master
bankaccount-verification
Latest Develop | All Develop | All Master
banking-command
Latest Develop | All Develop | All Master
banking-query
Latest Develop | All Develop | All Master
calendar
Latest Develop | All Develop | All Master
credit-bureau
Latest Develop | All Develop | All Master
deferred-payment
Latest Develop | All Develop | All Master
disbursement
Latest Develop | All Develop | All Master
document-generator
Latest Develop | All Develop | All Master
file-transfer
Latest Develop | All Develop | All Master
hub-ledger
Latest Develop | All Develop | All Master
ias-command
Latest Develop | All Develop | All Master
ias-query
Latest Develop | All Develop | All Master
identity-verification
Latest Develop | All Develop | All Master
masterdata
Latest Develop | All Develop | All Master
message
Latest Develop | All Develop | All Master
one-time-pin
Latest Develop | All Develop | All Master
payment-hub
Latest Develop | All Develop | All Master
pmtcalc
Latest Develop | All Develop | All Master
product-ledger
Latest Develop | All Develop | All Master
properties
Latest Develop | All Develop | All Master
quote
Latest Develop | All Develop | All Master
rcp-command
Latest Develop | All Develop | All Master
rcp-query
Latest Develop | All Develop | All Master
reason-codes
Latest Develop | All Develop | All Master
reporting
Latest Develop | All Develop | All Master
risk-screening
Latest Develop | All Develop | All Master
scheduling
Latest Develop | All Develop | All Master
submission-receipting
Latest Develop | All Develop | All Master

DevTest Boxes (Username : mariadb-read)

Hostname IP Port
QGA 10.5.2.20 32719
DT003 10.5.2.10 32507
DT004 10.5.2.15 32503

UAT Boxes (Username : mariadb-read)

Hostname IP Port
AVBOB-UAT 10.5.2.40 32725
FLOAT-UAT 10.5.2.28 32577
TPPP-UAT 10.5.2.24 32650

Other Boxes (Username : mariadb-read)

Hostname IP Port
AVBOB-PROD 10.2.0.4 32630
DEMO3 10.5.2.23 30636
FLOAT-PROD 10.2.0.7 32551
TPPP-PROD 10.2.0.9 32618

Postgresql Boxes (Username : read_user)

Hostname IP Port
QGA 10.5.2.12 32711
DT003 20.87.100.208 5432
DT004 10.5.2.16 32591
AVBOB-UAT 10.5.2.14 32733
AVBOB-PROD 10.2.0.15 32593

Types of HTTP Status Codes

CODE MEANING
1xx - Informational Response The request was received, continue process
2xx - Successful The request was successfully received, understood and accepted
3xx - Redirection Further action needs to be taken in order to complete the request
4xx - Client Error The request contains bad syntax or cannot be fulfilled
5xx - Server Error The server failed to fulfil an apparently valid request

ERROR CODES - 4xx

CODE MEANING POTENTIAL CAUSE
400 Bad Request There is something invalid with the request that is being made
401 Unauthorized Access Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided. Usually an API hasn't been assigned to the product you are using (eg. demo3-bancx-com). Or the OCP Subscription Key that you are providing in the header is not the same as in APIM. Another reason could also be the version that you are supplying in the header, eg. v6.5.2 instead of v6.5.8
403 Permission Issues The request contained valid data and was understood by the server, but the server is refusing action. This may be due to the user not having the necessary permissions for a resource or needing an account of some sort, or attempting a prohibited action (e.g. creating a duplicate record where only one is allowed).The permission required to call the endpoint/service is not assigned to the group that the user belongs to. Alternatively if service-to-service calls are made and the interservice roles aren't assigned, it would also occur. Examples are : deferred-payment requiring property service roles during start-up. Other examples would be services requiring information from masterdata, therefore needing interservice permissions.
404 Not Found The requested resource could not be found but may be available in the future. This usually occurs when the clientId/account-number that is being used to call endpoints, does not exist or the expected data does not exist. Sometimes the endpoint might not exist (due to swagger not being updated or another version of the service where the endpoint does not exist) or it does not return the expected data.
405 Method Not Allowed A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
409 Conflict Indicates that the request could not be processed because of conflict in the current state of the resource, such as an edit conflict between multiple simultaneous updates.
431 Request Header Fields Too Large The server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large.

ERROR CODES - 5xx

CODE MEANING POTENTIAL CAUSE
500 Internal Server Error A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.
502 Bad Gateway The server was acting as a gateway or proxy and received an invalid response from the upstream server. Usually something on APIM / AppGW (Might be due to number of certificates or Windows renew/change certificates)
503 Service Unavailable This means that the service you are trying to call is not running. It could either be that the actuator is not returning a response that the service is up. It could be a flyway script that is failing to apply changes to the database. It could be a missing configmap setting or the container specified might not be available.
504 Gateway Timeout This means that the service you are trying to call has timed out for some reason. This can be either due to network issues or the service might take long to perform calculations or it might be dependant on 3rd Party Providers which might be down or not responding.

DevTest Boxes

Hostname Usage Owner/User
QGA Latest develop branch test namespace Developers/Testers
DT003 Jasper report server host DevOps
DT004 A platform test namespace to test develop branch that is ready for testing Developers/Testers (Testing code before building new release)

UAT Boxes

Hostname Usage Owner/User
AVBOB-UAT AVBOB-UAT testing namespace (Used for testing by the AVBOB team) Avbob Staff
FLOAT-UAT FLOAT User Acceptance - Testing new functionality/release before deploying to prod Float / P45
TPPP-UAT Third Party Payment Provider - Test namespace that the UATs send payment information to Developers/BancX

Other Boxes

Hostname Usage Owner/User
AVBOB-PROD AVBOB-PROD - The Live/Production namespace used by Avbob Avbob Staff / Customers
DEMO3 A BancX Namespace for Platform Demos Avril/Madi - To Demo to Customers
FLOAT-PROD FLOAT Production - The Live/Production namespace used by Float Float / P45
TPPP-PROD Third Party Payment Provider - Live/Production namespace that the Production namespaces send payment information to FinOps

Flexifin Repo Usage

Link to Repo Go-to Resource Usage
account-number Developers This Service returns an account number from number pools that have been configured against specific formats according to the specific needs of the Customer. This service generates numbers for a specified pool name. Each Pool Name defines the format of the number to be generated. It can be in the format and numbering pattern that any historical system uses, so that documents such as statements etc. will have the historical numbering system in place and will also support a 'shadow' account in front of a core bank application bulk account.
application-assembly Developers This service facilitates straight through processing, and the ability to pick up a process midstream when it was not previously completed. This service maintains the state of the loan application assembly process through its life cycle. It allows the execution of elements of the process via either a worklist,or via straight through processing.
assessment Developers The Assessment Service coordinates the affordability assessment of financial means whether it be via an internal assessment scorecard or integration into a Third-Party. The function of the service is to determine, analyse and return the affordability of an applicant.
audit Developers The Audit Service is a service for tracking and analyzing the activities and changes that occur within your microservices ecosystem. This service allows you to capture detailed audit information and perform advanced queries and reporting for better visibility into your system's behavior. * This uses a Postgresql database
audit-sender Developers This is the 'library' repository that gets used for sending the audit events
flexifin-az-functions-external Ratna/Thomas This repo is used to create an external Azure function to interact with 3rd party providers. An example would be to interact with SendGrid to retrieve information regarding messages and updating the corresponding message status in our message database.
bankaccount-verification Developers The Bank Account Verification Service is a routing gateway to provide the functionality to validate and/or verify bank account details. This service stores the information and provides other services with the result of the verification.
banking-command Developers The Banking Service provides the functionality for the creation of transactional and investment accounts. The service allows for the creation of a wide variety of savings and transactional accounts each attracting a variety of periodic or transactional fees. The Banking Service processes daily interest calculations. banking-command is the WRITE Side
banking-event-registry Developers This repo is the 'library' event-registry that gets used by the banking microservices
banking-query Developers The Banking Service provides the functionality for the creation of transactional and investment accounts. The service allows for the creation of a wide variety of savings and transactional accounts each attracting a variety of periodic or transactional fees. The Banking Service processes daily interest calculations. banking-query is the READ side
calendar Developers Service is used to manage, approve and decline actions based on date and time related configurations
credit-bureau Developers Proxy API Call to Credit Bureaux - This service is used to make calls to a credit-bureau that is configured to determine a client's credit-score,etc. - Might be deprecated and risk-screening service used instead.
deferred-payment Developers This service accepts buy-now-pay-later requests. Creates RCP loans and Promissories for the loan and manages the accounting on the loan. (This is essentially the Float Microservice)
disbursement Developers The Disbursement Service deals with the processing of outgoing funds from the system for lending account servicing.
document-generator Developers The Document Generator service maintains document templates with data merge functionality in order to produce personalised, system-generated documents. The service feeds templates to other services in order to allow these services to gather available data via any resource endpoint within the platform for merge and storage. Effectively any data available in the platform can be converted into an HTML based template for processing into a PDF.The flying-saucer-pdf-openpdf is used, along with Handlebars to take the HTML and generate a PDF document.
documents Developers This repo is essentially the 'library/event-registry' equivalent for documents and manages how system-documents and client documents are generated using templates and html and data
file-transfer Developers Service used for uploading, processing, viewing and downloading of transactional files. Can be configured to use a SFTP server for file storage.
file-transfer-event-registry Developers This repo is the 'library' event-registry that gets used by the file-transfer microservice
swagger-github-pages Gets Swagger using plugin This repo is used to store the swagger documents from the services when they are built and generated and then displays it in a user-interface for users to browse. The page to view git-pages is : Swagger Github Pages
hub-ledger Developers This repo is the source code of the Hub Ledger
ias-command Developers Our Term Deposit and Notice Deposit Service is a secure and dependable financial offering designed to enhance your financial institution's portfolio. This service provides a robust framework for managing customer deposits effectively, offering a range of key features, including flexible deposit options, competitive interest structures, risk mitigation, predictable financial outcomes, efficient management tools, automated renewals, customization options, regulatory compliance, and access to expert insights. It serves as a powerful addition to your financial institution's product suite, providing a secure and flexible means to attract and retain customer deposits while optimizing your institution's financial position. ias-command is the WRITE side
ias-query Developers Our Term Deposit and Notice Deposit Service is a secure and dependable financial offering designed to enhance your financial institution's portfolio. This service provides a robust framework for managing customer deposits effectively, offering a range of key features, including flexible deposit options, competitive interest structures, risk mitigation, predictable financial outcomes, efficient management tools, automated renewals, customization options, regulatory compliance, and access to expert insights. It serves as a powerful addition to your financial institution's product suite, providing a secure and flexible means to attract and retain customer deposits while optimizing your institution's financial position. ias-query is the READ side
ias-event-registry Developers This repo is the 'library' event-registry that gets used by the ias microservices
identity-verification Developers The Identity Verification Service is a routing gateway to various Third-Parties that provide the functionality to validate and/or verify identity details. In addition, this service stores the information and provides other services with the result of the verification.
jasper-migration Developers This repo is used as a 'backup' for the DT003 jasper reports and contains some scripts that are used to export from DT003 and import into other namespaces
keycloak-event-listener Developers This repo is a 'library' that gets built and then the jarfile gets added to keycloak. This listens to events in Keycloak.
keycloak-theming Developers and DevOps This repo is used to build the themes for Keycloak and has client folders. There is a script which then creates a tarball and then uses the ansible (or in future helm) and copies the tarball and extracts it, allowing the theme to be selected as an option.
masterdata Developers This service provides an API to all core entities of the enterprise including customers, agents, trading entities, banking details, branches, employers, related parties, etc. The Masterdata Service manages and maintains the party domain model with all associated metadata related to entities. This service provides the ability to define and manage the multiple roles that a party can perform, as well as maintain the relationships, related parties or roles. The Masterdata Service is capable of managing multiple types of customers, natural persons and juristic persons in the form of companies, trusts, partnerships and co-operatives.
masterdata-event-registry Developers This repo is the 'library' event-registry that gets used by the masterdata microservice
message Developers The Message Service provides the functionality for the sending of messages to clients via email, sms or fax and the processing of the responses received from clients afterwards. Currently we use BulkSMS as a 3rd party integration for SMS, we use SendGrid as a 3rd party integration for Email. If we plan on using another SMS/Email provider, some code might be required.
nest-monorepo Front-End Developers This repo is the nestjs applications that were built. These are bxkeycloak-config, bxcustomer-registration, bxorganization-hierarchy, bldcustomer-registration. The bxkeycloak-config is a tool to configure roles/jobtitles/groups in Keycloak. The 'customer-registration' applications are the ones used by Personal Portal (ngx-monorepo) to register customers.The bxorganization-hierarchy is used to manage the Organization / Job Titles and roles associated to Job Titles. (This should not be made available to a customer on the back-office interface)
ngx-monorepo Front-End Developers This repo is the source code for the 'Personal Portal' (ie. the portal that a customer uses to view their accounts and statements) as well as the TPPP Portal (ie. the portal to display data that is being handled by the Third Party Payment Provider). The app-bancx folder contains the source code of the 'Personal Portal' application.
one-time-pin Developers The One-Time-Pin service provides SMS and/or email routing for unique secured One Time Pins to be sent from the platform.
openapi-spec-build-plugin Developers This repo is the one that handles how the openapi specifications get generated and built
payment-hub Developers This service functions as a hub for all Banking outgoing payments and incoming payments go through this service. The Payment Hub service provides the framework in which all payment instructions are managed. It allows for streaming capabilities to handle ISO 8583 and ISO 20022 and AXS protocols as well as the management of all rules surrounding ACH / PCH providers.
pmtcalc Developers Service that calculate account payments and generates schedule. This is mostly used to generate revolving credit schedules
pre-ui Front-End Developers This repo is a VB.Net application that is used to manage cards and access and what is displayed on the back-office and some actions for rcp accounts based on data.
product-ledger Developers The Product Ledger Service provides the functionality to financially represent all transactional events within the Account Servicing platform as a source ledger. It consolidates the domains of loans, disbursements and payments into a financial view in order to facilitate financial reporting within the platform itself.
properties Developers This service exposes an API for CRUD for Properties/Business Properties of configuration server.
quote Developers The Quote Service provides functionality to track various quote types within the system. Its function is to store and maintain all metadata associated with the generation of quotes. The quote service supports the generation of printable quote documents. This service provides an API to create a loan quote.
rcp-command Developers This service exposes an API for the Revolving Credit Loan functionality and transactions. This service is responsible for transaction processing of loans with one or more disbursements, variable and/or linked interest rates, fees through the consuming and/or emitting of events mapped to the transactions. It tracks loan components, portions, arrears, waterfall payment allocation and responds to retroactive events through immutable state and transaction event types. The Service is responsible for emitting events related to the loan that will be used by subsidiary microservices responsible for the querying of the debtor loan account and the financial ledger. rcp-command is the WRITE side
rcp-event-registry Developers This repo is the 'library' event-registry that gets used by the rcp microservices
rcp-query Developers This service exposes an API for the Revolving Credit Loan functionality and transactions. This service is responsible for transaction processing of loans with one or more disbursements, variable and/or linked interest rates, fees through the consuming and/or emitting of events mapped to the transactions. It tracks loan components, portions, arrears, waterfall payment allocation and responds to retroactive events through immutable state and transaction event types. The Service is responsible for emitting events related to the loan that will be used by subsidiary microservices responsible for the querying of the debtor loan account and the financial ledger. rcp-query is the READ side
reason-codes Developers This service provides and manages reason codes, auto-canceling and workflow authorization. Different reason codes can have different configuration and work differently.
reporting Developers The Reporting Service is an over-arching database replication microservice that connects to all data sources, runs queries to pull and transform data from other databases and write it to the local database. It the allows you to write reporting queries and get the report data via an API.
risk-screening Developers Service that integrates with Third party provider API for risk screening. Some third party providers : MATCH, WHOYOU, DOTS360
scheduling Developers The Scheduling Service provides a centralised unified scheduler to control the execution of timed events across the platform, including the scheduler to process a day end
security-adapter Developers This is a flexifin library which is a keycloak authentication and authorization wrapper for spring-boot applications. Once you add this library into your dependencies and add necessary properties then a spring-boot project is secured. This will encapsulate all the dependencies information and security config information.
shared-libraries Developers This is similar to event-registry repos and was the first initial event-registry repo, but it also contains ftl-shared code
submission-receipting Developers The repository is for implementing the Submission and Receipting for Payroll Loans. Basically the generation of files to send to the Employer to submit to deduct from someones salary a payment and then the receipting process, where the payment was received and then captured in the system.
user-interface Front-End Developers This repo contains the source code for the 'Back Office' application. This is the frontend that is accessed usually to perform Administration type of tasks or generate reports or perform Product Configuration. This service has various different 'names' : The docker container would either be 'base-ui' or 'user-interface', which some users refer to it as Back-Office or Admin Portal. This uses node and angular.

New BancX Repo Usage

Link to Repo Go-to Resource Usage
bx-analytics Developers The new repo for the analytics service. Basically the reportng service re-write/enhancement project
bx-b2b-integration Developers The new repo for the handling of upload files and the processing of them
bx-camunda-7 Developers The repo for adding camunda-7 as bx-camunda-7 and this is then used by bx-workflow microservices. * This uses a Postgresql database
bx-collections Developers The repo for QLink collections. * This uses a Postgresql database
bx-decision-engine Developers The repo the decision-engine. This is responsible for performing some decisioning rules to determine if a customer is eligible for a loan. * This uses a Postgresql database
bx-event-catalog Developers This service depends on the async docs to be copied into the asyncapi-files direcory (currently manual). Event Catalog will use the async docs to generate the visualization stuff
bx-event-registry Developers This is the start of trying to have a single event-registry
bx-observability-library Developers This service is used as a 'library' of sorts for the observability tools
bx-platform-configuration Developers and DevOps The new repo for the base platform configuration (eg. properties, bootstrap data, ledger mappings)
bx-workflow Developers The new repo for building workflow as a Java springboot application that uses bx-camunda-7 for managing workflow tasks. * This uses a Postgresql database

DevOps Repo Usage

Link to Repo Go-to Resource Usage
automation DevOps Team This repo is used by the DevOps Team for doing automation - Deploying using Helm / ArgoCD and management of configmaps
bancx_openshift DevOps Team The old DevOps repo with tools and scripts for managing apim, namespaces, post-prep configuration, keycloak theme deploy, infrastructure and service deploys using ansible
documentation Front-End Team This repo was created to try and add some documentation to assist DevOps/Developers with some issues, but it was repurposed to generate some documentation regarding our micro-services
jenkins-pipelines DevOps Team This repo contains scripts that are used during Jenkins Pipeline runs, seperating out into scripts that can then be changed and affects all pipelines, eg. the deployViaHelm script or tagging scripts
jenkins-tools DevOps Team This repo contains the code for ff-busybox, the arc-runner, report-status and comparison pipelines in Jenkins

Other Repo Usage

Link to Repo Go-to Resource Usage
archived_repos Developers This repo contains old repositories for old microservices that are no longer used (FlexiFin, ftl, batching, etc.)
dev-tools Developers This repo is used for trying to setup a local dev machine, items such as Dockerfiles and configfiles and allowing developers to setup tools and work on their local machines.
envlink DevOps This repo is used to manage the Environment Links page (ie. this page). So if you want to edit something on this page or add links, the index.html file in this repo is what gets rendered.
NOVA This is the same as archived_repos/FlexiFin This repo is the repo we got from Bayport which is the Payroll Lending code (codename : NovaLend / FlexiFin)
integration-tests Front-End Team and QA This repo is used to add the integration tests. These are the typescript tests that run on the namespaces
postman-automation Developers This repo is used to add the postman collections for the microservices and this then runs using a jenkins pipeline that runs at 20:15 at night. The jenkins job is : Postman Automation
schemadoc Andrew (This is provided by CyberMint) This repo is used to run the schemaspy application to get some Schema Documentation for databases.

Terraform/Infrastructure as Code Repo Usage

Link to Repo Go-to Resource Usage
infra Jonathan/Chris This repo is for Infrastructure as Code
Canvas Documents
account-number application-assembly assessment audit bankaccount-verification
banking-command banking-query calendar credit-bureau deferred-payment
disbursement document-generator file-transfer hub-ledger ias-command
ias-query identity-verification masterdata message one-time-pin
payment-hub pmtcalc product-ledger properties quote
rcp-command rcp-query reason-codes reporting risk-screening
scheduling submission-receipting