Union API
Union’s API is built and maintained in its own repository. API is secured via access_token that we get from the UI. Also it comes with some security via CORS policy on the API gateway.
Project Details¶
- Project Repository - API
- IAC Repository - API
- Flux Repository - API
- Artifactory
- Build & Release Pipeline - CI-CD - API
- Whitesource dashboard
- SonarQube dashboard
Infra Management/Hosting¶
Create/Update/Delete infra¶
- Union is using Terraform IAC to deploy infra to AWS.
- The IAC code is stored in this repo.
Kubernetes Configurations¶
- The Kubernetes Config for Union is stored in this repo.
- Update the image tag in the corresponding HelmRelease.
- HelmReleases for non-prod can be found here
- HelmReleases for prod can be found here
Notes¶
- API uses Aurora PostgreSQL on AWS to store the data. - The IAC code for database infra can be found here - The database cannot be accessed from outside the EKS cluster.
Technology stack¶
- API is built using .NET Core C# Web API
- Swagger specs are used and google’s JSON guidelines are implemented
- XUnit testing framework is used for unit testing the code
- Aurora PostgreSQL is used to store the data
- It’s hosted on AWS Elastic Kubernetes Service(EKS).
- You can check the version of the API using the path - {domain}/health
Workflow/Release Management/Code deployments¶
Developer Notes¶
- Developer should create a bugfixes/features branch, branched off master
- Work on the changes, test them out thoroughly and push them to the remote repository
- If everything looks good, open a PR to merge to master
- Make sure the CI-CD Pipeline - API builds your feature branch without any errors
- After the feature branch is merged to master, it will be automatically deployed to DEV through this pipeline. It will take about 10 minutes.
- To deploy this change to other environments as well, update the image tag in the corresponding HelmRelease in the flux repo.