Note: If you’re looking for firefighter information please read over the high-level view and the low-level view. Lots of questions are answered tehre.
Scope
The grip-dataservices team covers the backend operations and applications responsible for making Banno Mobile (formerly called “Grip”) work. Within Banno Mobile there are several important features supported they are listed below:
- Online Banking Website Crawling (used to gather balances, transactions, and make money transfers)
- Core connected account / user crawling (gather balances, transactions, and make money transfers directly against the bank’s core)
- Make Bill Payments (BillPay) and managing Payees
- Enrich Transactions (provide lat/long locations for the merchant on a transaction)
- Provide Bank users analytics and settings configuration for users of the application
- Theming support
- RDC (Remote Deposit Capture)
It includes several applications, each which is listed below.
- api – Internet facing http server for the mobile application
- Che – Router and “brain” of all complex operations
- olb-fetch – Engine to crawl OLB (Online Banking) websites
- core-fetch – Engine to crawl banking cores
- siphon – Transaction Enrichment
- grip-admin – Analytics dashboard and app configuration
- keen – In-app notifications for payments, deposits, low balances, etc
- mock-bank-web – Test OLB website
- artemis – Configurable OLB website with BillPay and RDC integration
- fetch-reporting – Internal debugging tool for OLB website crawling
- internal-api – HTTP interface for the underlying databases used
Sequence Diagrams
For a graphical representation of some parts of the data-services stack (it’s in progress to complete all of them) you can refer to the included sequence diagrams.
Release Process
The release pipeline is run by the ‘Mobile DS Pipeline’ job in Jenkins. That job uses a Jenkinsfile which is kept in Banno/mobile-data-services.
This releases from the ‘master’ branch of all mobile ds projects. All projects have a corresponding ‘release’ job in jenkins, e.g. project ‘foo’ has ‘foo release’.
For most apps and libraries, dependencies are managed manually in the build.sbt files (since banno-sbt-plugin 9.0.0). This means you can release new versions of libraries and other projects aren’t impacted unless they explicitly upgrade to the new version. We’re not yet (10/12/2016) done transitioning all projects to version 9, so some projects will be released automatically if a dependency is released. Please be aware of this when releasing libraries.
We currently use the mobile DS release track to queue app changes for deployment. So, although you are responsible for merging your own PRs, you are not free to merge PRs to app projects or libraries that will automatically trigger a release of app projects. You’ll be notified in the team-mobile-ds room when you’re up. Feel free to ask for a bump if you think your change needs to be higher priority.