Skip to content

ahmedoabdi/spinedatasheetapi

 
 

Repository files navigation

Spine Datasheet API

Codacy Badge Known Vulnerabilities Contributors Forks Stargazers Issues

Spine Datasheet

  • Product owner:
  • Business area:

Summary Description

Lorem ipsum dolor sit amet. Qui consequuntur repudiandae et tempore modi ut cumque Quis id veniam sint ea perspiciatis quasi et Quis voluptatem qui architecto explicabo. Ex fugiat quia et quam dolores et minima omnis a illo dolor. Non assumenda saepe sed quia tempore qui dolorem molestias et laudantium praesentium id molestiae ipsa. Eum quam eaque in corrupti delectus ut adipisci distinctio 33 omnis accusamus.

Prerequisites

Architechture

The application is split between the frontend app hosted in Fusion, and the backend app hosted in Radix. Authentication is based on RBAC, where we have different app registrations for preproduction and production with are consented to access Fusion Preprod or Fusion Prod.

Security

Snyk surveillance has been added to the project for continuous monitoring of the code and its dependency.

Azure App Config

Azure App Configuration provides a service to centrally manage application settings and feature flags. It allows us to change configuration directly in Azure for all environments. Combined with Azure Key Vault it also combines a secure place to store secrets and connection strings.

Omnia Radix

Omnia Radix is a Equinor PaaS (Platform as a Service) based on AKS to build and run docker containers. You can either make Radix build your container directly, or pull the container from a container registry. For Spine Datasheet API the image is built in Github Actions, and pushed to Azure Container Registry. Radix pulls the image corresponding to release stage.

Configuration of the required infrastructure is placed in a radixconfig.yml, which defines the different components and environments which are created. Runtime variables and secrets are also defined in radixconfig.yml. The DCD config is placed in a separate git repo.

API

The backend is dotnet webapi built with .NET 6 which provides a REST interface for the frontend. Swagger has been installed to provide documentation for the API, and to test functions. The backend retrieves and stores data in a Azure SQL Database for each environment.

Run backend

Create a file backend/api/Properties/launchSettings.json with the provided template file. You need to populate the app configuration connection string (navigate to azure portal, find app configuration resource, navigate to settings -> access keys), and choose an AppConfiguration Environment (dev for local development at time of writing).

Finally, to be able to use secrets referenced in the app config, you need to authenticate yourself on the command line. Get a hold of the azure CLI az and run az login in the command line. NB: You will need to use a browser for the authentication, as far as I know.

Then, to start the backend, you can run

cd backend/api
dotnet run

Deployment

We have 3 different environments in use; dev, qa and prod. Dev is built when pull requests are merged to main.

Development

Team

Spine Datasheet API is developed by the It's a Feature team in TDI EDT DSD EDB.

Repository

Build and Release

Architecture Diagrams

The following diagrams have been created using PlantUML.

System Context Diagram

System context diagram for the Spine Datasheet application.

Container Diagram

Container diagram for the Spine Datasheet application.

Access to application and data - UNDER CONSTRUCTION

AD groups that can view data (AccessIT groups work in progress)

Name Description User types How to check

Admin Consent Decision Matrix

notes and links

Abbreviation examples for Azure resources Conventional Commits Semantic Versioning

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 87.1%
  • Bicep 12.4%
  • Dockerfile 0.5%