Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The WSO2 Open Banking Business Intelligence(WSO2 OB BI) component enables monitoring and recording of API-level usage activity to ensure that the API owners have full awareness of the APIs, applications, and subscriptions. It generates alerts by analyzing the risk involved in transactions and fraudulent activities. It also generates statistics using the data collected from WSO2 Open Banking Key Manager and API Manager. WSO2 Open Banking Business Intelligence contains the following features: 

API Analytics

Provides reports, statistics and graphs on the APIs deployed in WSO2 Open Banking API Manager. Helps Third-party providers (TPP) to monitor how their applications perform while banks can analyze how the bank APIs perform.

...

Enables analyzing the risk level based on predefined rules and exempt the user from having to provide the second factor.

Fraud Detection

For transaction monitoring mechanisms to detect unauthorized or fraudulent transactions and generate alerts. It also exempts the security requirements of strong customer authentication based on the identified level of risk and recurrence of the payment transaction. 

Data Reporting

The WSO2 Open Banking Business Intelligence captures data published in WSO2 Open Banking API Manager and WSO2 Open Banking Key Manager. Data Reporting is the process of processing and summarizing these data. 

It also supports business key performance indicator (KPI) dashboards with business intelligence and insights on usage trends as well as custom business insights on the account and payment flows. The decision makers of banks can use these statistics to align the business to better suit the customer needs and ultimately increase profits.  The configurable alerting module enables informing the necessary parties of abnormal behavior, e.g., API failures, a sudden increase in the response time of APIs, and a change in the API resource access pattern.

...

  1. The WSO2 Open Banking Business Intelligence will be using the following databases. Make sure you have created them in your database server.

    • openbank_apimgt_statsdb 

    • openbank_openbankingdb 

    • openbank_geolocationdb

    • openbank_ob_reporting_statsdb

    • openbank_ob_reporting_summarizeddb

  2. Update the  <WSO2_OB_BI_HOME>/conf/worker/deployment.yaml  file. Modify the datasources below by pointing them to the databases you created in the above step. 

    • APIM_ANALYTICS_DB

    • OPEN_BANKING_DB

    • GEO_LOCATION_DATA

    • OB_REPORTING_DB  

    • OB_REPORTING_SUMMARIZED_DB

    Update the datasource entry in the deployment.yaml with your database configurations.

    Anchor
    deployment.yamlPlaceholders
    deployment.yamlPlaceholders

    PropertyDescription
    jdbcUrl

    This is the port to connect to on database server

    The jdbcUrl property expects the JDBC driver connection string. A sample jdbcUrl:

    'jdbc:mysql://localhost:3306/openbank_ob_reporting_summarizeddb?autoReconnect=true&useSSL=false'

    username

    The database user

    password

    Password set for the database connection

    driverClassName

    The JDBC driver name

    Mysql JDBC Driver : com.mysql.jdbc.Driver
    MSSQL JDBC Driver : com.microsoft.sqlserver.jdbc.SQLServerDriver
    Oracle JDBC Driver : oracle.jdbc.driver.OracleDriver

    Note

    If you are using Oracle, update the connectionTestQuery in each datasource with the following value.

    Code Block
    languagexml
    connectionTestQuery: SELECT 1 FROM DUAL
    Code Block
    languagexml
        - name: GEO_LOCATION_DATA
          description: "The data source used for geo location database"
          jndiConfig:
            name: jdbc/GEO_LOCATION_DATA
          definition:
            type: RDBMS
            configuration:
              jdbcUrl: 'DB_GEO_LOCATION_URL'
              username: 'DB_USER'
              password: 'DB_PASS'
              driverClassName: 'DB_DRIVER'
              maxPoolSize: 50
              idleTimeout: 60000
              connectionTestQuery: SELECT 1
              # Use below for oracle database
              # connectionTestQuery: SELECT 1 FROM DUAL
              validationTimeout: 30000
              isAutoCommit: false
    
        - name: APIM_ANALYTICS_DB
          description: "The datasource used for APIM statistics aggregated data."
          jndiConfig:
            name: jdbc/APIM_ANALYTICS_DB
          definition:
            type: RDBMS
            configuration:
              jdbcUrl: 'jdbc:mysql://localhost:3306/openbank_apimgt_statsdb?autoReconnect=true&useSSL=false'
              username: root
              password: root
              driverClassName: com.mysql.jdbc.Driver
              maxPoolSize: 50
              idleTimeout: 60000
              connectionTestQuery: SELECT 1
              validationTimeout: 30000
              isAutoCommit: false
    
        - name: OPEN_BANKING_DB
          description: "The datasource used to store payment consents"
          jndiConfig:
            name: jdbc/OPEN_BANKING_DB
          definition:
            type: RDBMS
            configuration:
              jdbcUrl: 'jdbc:mysql://localhost:3306/openbank_openbankingdb?autoReconnect=true&useSSL=false'
              username: root
              password: root
              driverClassName: com.mysql.jdbc.Driver 
              maxPoolSize: 50
              idleTimeout: 60000
              connectionTestQuery: SELECT 1
              validationTimeout: 30000
              isAutoCommit: false
    
        - name: OB_REPORTING_DB
          description: The datasource used to store statistics for OB Reporting module
          jndiConfig:
            name: jdbc/OB_REPORTING_DB
          definition:
            type: RDBMS
            configuration:
              jdbcUrl: 'jdbc:mysql://localhost:3306/openbank_ob_reporting_statsdb?autoReconnect=true&useSSL=false'
              username: root
              password: root
              driverClassName: com.mysql.jdbc.Driver 
              maxPoolSize: 20
              idleTimeout: 60000
              connectionTestQuery: SELECT 1
              validationTimeout: 30000
              isAutoCommit: false
    
        - name: OB_REPORTING_SUMMARIZED_DB
          description: The datasource used to store statistics for OB Reporting module
          jndiConfig:
            name: jdbc/OB_REPORTING_SUMMARIZED_DB
          definition:
            type: RDBMS
            configuration:
              jdbcUrl: 'jdbc:mysql://localhost:3306/openbank_ob_reporting_summarizeddb?autoReconnect=true&useSSL=false'
              username: root
              password: root
              driverClassName: com.mysql.jdbc.Driver 
              maxPoolSize: 20
              idleTimeout: 60000
              connectionTestQuery: SELECT 1
              validationTimeout: 30000
              isAutoCommit: false       
  3. Modify the OB_REPORTING_DB and OB_REPORTING_SUMMARIZED_DB datasources in the <WSO2_OB_BI_HOME>/conf/dashboard/deployment.yaml file.                                                          

    Use your database configurations and update the datasource properties as follows: 

    Code Block
    languagexml
        - name: OB_REPORTING_DB
          description: The datasource used to store statistics for OB Reporting module
          jndiConfig:
            name: jdbc/OB_REPORTING_DB
          definition:
            type: RDBMS
            configuration:
              jdbcUrl: 'jdbc:mysql://localhost:3306/openbank_ob_reporting_statsdb?autoReconnect=true&useSSL=false'
              username: 'root'
              password: 'root'
              driverClassName: 'com.mysql.jdbc.Driver'
              maxPoolSize: 20
              idleTimeout: 60000
              connectionTestQuery: SELECT 1
              # Use below for oracle database
              # connectionTestQuery: SELECT 1 FROM DUAL
              validationTimeout: 30000
              isAutoCommit: false
    
        - name: OB_REPORTING_SUMMARIZED_DB
          description: The datasource used to store statistics for OB Reporting module
          jndiConfig:
            name: jdbc/OB_REPORTING_SUMMARIZED_DB
          definition:
            type: RDBMS
            configuration:
              jdbcUrl: 'jdbc:mysql://localhost:3306/openbank_ob_reporting_summarizeddb?autoReconnect=true&useSSL=false'
              username: 'root'
              password: 'root'
              driverClassName: 'com.mysql.jdbc.Driver'
              maxPoolSize: 20
              idleTimeout: 60000
              connectionTestQuery: SELECT 1
              # Use below for oracle database
              # connectionTestQuery: SELECT 1 FROM DUAL
              validationTimeout: 30000
              isAutoCommit: false
    Multiexcerpt
    MultiExcerptNameOSGIJDBC

    You need to follow the steps below when you are using Oracle or MS SQL database servers.

    You need to include the database driver corresponding to the database for the WSO2 Open Banking Business Intelligence server to communicate with the database. The WSO2 Open Banking Business Intelligence is an OSGi-based product. Therefore, when you integrate third party products such as Oracle and MS SQL with WSO2 OB BI, you need to check whether the libraries you need to add are OSGi based. If they are not, you need to convert them to OSGi bundles before adding them to the <WSO2_OB_BI_HOME>/lib directory.

    To convert the jar files to OSGi bundles, follow the steps below.

    1. Download the non-OSGi jar for the required third party product, and save it in a preferred directory in your machine.

    2. Go to the <WSO2_OB_BI_HOME>/bin directory. Run the command given below to generate the converted file in the <WSO2_OB_BI_HOME>/lib directory.

Multiexcerpt
hiddentrue
MultiExcerptName150-M2

Configuring WSO2 OB BI worker 

Update listenerConfigurations in the <WSO2_OB_BI_HOME>/wso2/worker/conf/transports/netty-transports.yml as follows:

Note that keyStorePass: wso2carbon needs to be changed as keyStorePassword: wso2carbon.

...