This repository contains the core backend services for an OpenBanking API, designed using modern Kotlin + Spring Boot architecture. It provides a secure, scalable and extensible framework for interacting with financial services, eg. with initial support for the Plaid API using their sandbox environment.
This project serves as a foundational open banking backend infrastructure. It integrates with third-party financial services and offers:
- Secure user-facing REST API
- Scalable and containerized deployment on Google Cloud Run
- Automated CI/CD pipelines with GitHub Actions
- Clean architecture separation with DTOs, services, and config
| Layer | Technology |
|---|---|
| Language | Kotlin (JDK 17 - Temurin) |
| Framework | Spring Boot |
| API Client | WebClient |
| Build Tool | Gradle (Kotlin DSL) |
| Deployment | Docker + Google Cloud Run |
| Infra | GitHub Actions + Artifact Registry |
GitHub Actions workflows are defined for:
- Run on all pushes
- Performs:
- Gradle build & test
- Lint check via
ktlint - Static analysis via
detekt
- Triggered on
mainbranch push - Performs:
- Auth via GitHub secret (
GCP_SA_KEY) - Docker image build & push to Artifact Registry
- Deploy to Cloud Run
- Allow unauthenticated access
- Auto-create GitHub release with:
- Deployed URL
- Docker image tag
- Auth via GitHub secret (
- Triggered on PR to
main - Builds and starts Docker container locally
- Runs basic health check to ensure the image is bootable
Deployed automatically to:
Environment: Google Cloud Run (europe-west3)
Image Source: Artifact Registry
- Protected
mainbranch with:- Required PRs
- Minimum 1 code owner approval
- No self-approval
- Code owners:
@rbbozkurt@evgenyim@Sof01
- Verified deployments only mergeable with passing checks
- Java 17
- Docker (for local testing)
- Valid GCP Service Account JSON in GitHub Secrets (
GCP_SA_KEY)
MIT License — see LICENSE for details.