Application Architecture Altinn Studio

Description of the application architecture for runtime applicationz

NOTE: Work in progress. Stuff will change

The following diagram shows the application architecture for Altinn Studio solution

See fullscreen or download as visio

Designer

Frontend designer

The frontend for the designer application is based on REACT. It is split into different REACT applications and components for the different functional areas of the designer. Take a look at the front-end architecture for more details.

Backend designer

Backend of designer is based on .Net Core and ASP.Net Core. It exposes API to the REACT applications

Repository

The repository application is based on GITEA. This is a open source product created in GO. Take a look at the [Customize Gitea]() for more details on how to customize gitea.

Runtime

Runtime is both part of the Altinn Studio and the Altinn Studio Apps solution.

For Altinn Studio the Runtime is shared between all services and all

Frontend runtime

The runtime application will have two different types of frontend.

  • Frontend developed by the app developer in Altinn Studio designer
  • Frontend that is part of the plattform.

Frontend for Altinn Studio App

The frontend developed as part of the app development in Altinn Studio is based on REACT.

Altinn Studio Generates a REACT app based on the selected components in the app UI.

This app uses the backend APIS for creating, updating, deleting data in the app datamodell.

See details for REACT App architecture

For apps with requirements that is not supported with the WYSIWYG REACT editor the app developer could build their own client based frontend on REACT or other frameworks hosted in runtime.

It will also be possible to build a GUI hosted elsewhere and just use the app APIs to handle data updates

Frontend for platform views

As part of the platform there is some standard pages presented during the workflow for an app that the app developer does not need to create GUI for. * Instansiation * Payment

These are all using Razor as frontend framework.

Backend

Backend is based on ASP.Net Core and is a MVC application that uses defined interfaces to run the specific app logic implemented in Altinn Studio.

Altinn Studio Mode

In Altinn Studio mode the runtime instances will be shared between different end user services.

Based on the logged in app developer and URL parames the correct service implementation will be compiled and loaded in to memory for backend.

Testing in Altinn Studio

An application that is developed in altinn studio can be tested in studio evnvironment. It is a simulation of how the application will work when it is deployed in different environments. It will store data in disk instead of database. To test the application inside altinn studio

  • Click on “Test” menu
  • Choose an user (user list is preloaded for testing)
  • You will see an interface with a list of existing instance elements and an option to instantiate new instance

When a new instance of the application is instantiated, it creates the following files and folder structure under “Testdataforparty” folder

│ │ ├── Testdataforparty (used for runtime)
│ │ │ ├── user1
│ │ │ │ ├── instance1
│ │ │ │ │ ├── instance1.json
│ │ │ │ │ ├── instance1.state.json
│ │ │ │ │ ├── data
│ │ │ │ │ │ ├── data-id1
│ │ │ │ │ │ │ ├── data-id1.xml
│ │ │ │ │ │ ├── data-id…