Skip to content

equinor/dcd

Repository files navigation

Digital Concept Development (DCD)

Codacy Badge Known Vulnerabilities Contributors Forks Stargazers Issues

Concept App, Digital Concept Application

  • Product owner: Atle Svandal
  • Business area: Early phase concept studies

Summary Description

The application supports collecting time series values for cost profiles for offshore facilities, exploration, drilling (well) and volume profiles for drainage stragegy and creating these as assets on business cases to be compared for projects.

Runbook

Runbook is found in this repo.

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. from the dcd directory, run the follwing command to perform the tests:

E2E Testing

Playwright is used for e2e testing the various major user flows. As the application uses 2 factor authentication, you need to manually log in to the application to save the session. To do so, follow these steps:

Generate config.json

cd tests node setup.js

After running the command, a browser window will open. Log in to the application and complete the 2 factor authentication. then close the browser window. The session will be saved in the config.json file. For security

Run tests

npx playwright test –ui

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 DCD the image is built in Azure Devops, 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.

Azure Container Registry

Development

Team

DCD is developed by the It's a Feature team in TDI EDT DSD EDB. Development was started by the Shellvis team. As of november 2022, the team is a Sopra Steria only team.

Repository

The application consists of a github monorepo for frontend and backend, and a single repo for Radix Configuration. All code changes to main branch should come as a pull request from a github fork.

Build and Release

There is a project in Azure Devops for DCD where user stories and tasks are defined, but also build and release pipeline are hosted.

Architecture Diagrams

The following diagrams have been created using PlantUML.

System Context Diagram

System context diagram for the DCD application. SysContextDiagram

Container Diagram

Container diagram for the DCD application. SysContextDiagram

Access to application and data

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

Name Description User types How to check
Project Users Read/write access to app Employees, external hire, consultants ConceptApp Users, fg_2S_IAF, fg_PRD EP CD VALU
Read Only User Only able to read all information in app Employees, external hire, consultants Currently no groups
Admin Set/change specific settings in app Employees, external hire, consultants ConceptApp Admins, fg_2S_IAF

Admin Consent Decision Matrix

Privilege requested In-house developed applications Scope
Application API permissions (App to App). Application: API Owner: Team IAF, Data Owner: Atle Svandal Sites.Read.All, user_impersonation