• Stars
    star
    111
  • Rank 314,510 (Top 7 %)
  • Language
    TypeScript
  • License
    BSD 3-Clause "New...
  • Created over 6 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Next generation open source Altinn platform and applications.

Altinn Studio

Designer build status Repos build status

Altinn Studio is the next generation Altinn application development solution. Together with Altinn Apps and Altinn Platform, this is a complete application development and hosting platform (Altinn 3).

Read the Altinn Studio documentation to get started. We've also created a introductory course for app development that you can follow at your own pace.

Note Developing apps? If you just want to quickly perform tests of your app on your development machine you can follow the instructions on how to run apps locally. This repository is mainly the Designer-tool which is used to build and deploy apps.

Getting Started with developing Altinn Studio

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

  1. Newest .NET 6 SDK
  2. Node.js (version 16.*)
  3. Newest Git
  4. A code editor - we like Visual Studio Code
  5. Docker Desktop
  6. If you are running Docker Desktop in Hyper-V mode you need to make sure your C drive is shared with Docker, Docker Settings -> Shared Drives The File sharing tab is only available in Hyper-V mode, because in WSL 2 mode and Windows container mode all files are automatically shared by Windows.
  7. World Wide Web Publishing Service must be disabled, Services -> "World Wide Web Publishing Service" right click and choose "stop"

NOTE: If you want to use Safari on MacOS add 127.0.0.1 studio.localhost to /private/etc/hosts

Running the solution locally

Clone the Altinn Studio repo and navigate to the folder.

git clone https://github.com/Altinn/altinn-studio
cd altinn-studio

The fastest way to get things running from scratch is to use our setup-script. This script will start docker and ensure that the setup is up to date. As we add more features this script will be updated. It can be run as follows:

yarn && yarn setup

More about that script and development in general, can be found here.

Docker Compose

The development environment consist of several services defined in compose.yaml.

  • studio-loadbalancer which is a simple nginx-container using nginx:alpine directly, just used for development.
  • studio-designer which is the actual build artifact with the .NET backend and the react-apps.
  • studio-repos which is gitea with some custom config. More here.
  • studio-db which is a postgres database used by both studio-designer and studio-repos.

Run all parts of the solution in containers (Make sure docker is running), with docker compose as follows:

docker-compose up -d --build

The solution is now available locally at studio.localhost. (Just create a new user for testing. No email verification required). If you make changes and want to rebuild a specific project using docker-compose this can be done using

docker-compose up -d --build <container>

Example

docker-compose up -d --build studio_designer

If using the script, the .env-file is generated and put at root, otherwise you will need to place it there yourself. When starting docker-compose the solution should be running as it would in production. But you probably want to change parts of the solution. The load balancer is configured to route the traffic to the right place according to your particular use case. This is done by placing a .env-file in the same folder as compose.yaml. The load balancer is configured with the following variables.

DEVELOP_BACKEND=0
DEVELOP_DASHBOARD=0
DEVELOP_APP_DEVELOPMENT=0
DEVELOP_STUDIO_ROOT=0

Developing Backend

Navigate to the designer backend folder cd backend/src/Designer. The first time running, or after any package changes, get the latest packages.

  • On MacOS you need one extra step before running .NET: Change location where the application stores the DataProtectionKeys
    export ALTINN_KEYS_DIRECTORY=/Users/<yourname>/studio/keys

If you want to work on creating apps locally, the app-template-dotnet repo should be cloned. If the templates repo is cloned in the same folder as altinn-studio, no changes needs to be done, otherwise it should be referenced in appsettings.development.json.

{
   "GeneralSettings": {
    "TemplateLocation": "Path to src folder of app-template-dotnet repo",
    "DeploymentLocation": "Path to src/deployment folder of app-template-dotnet repo",
    "AppLocation": "Path to src/App folder of app-template-dotnet repo"
  }
}

Alternative to cloning app-templates-dotnet repo is to use following script to download template dependencies:

wget -O - https://api.github.com/repos/Altinn/app-template-dotnet/releases/latest | jq '.assets[]|select(.name | startswith("app-template-dotnet-") and endswith(".zip"))' | jq '.browser_download_url' | xargs wget -O apptemplate.zip && unzip apptemplate.zip && rm apptemplate.zip

Developing Frontend

Start the webpack dev server for the respective app you want to develop:

yarn run start-app-development
yarn run start-dashboard

If you need to rebuild other React apps, for instance dashboard or app-development, this can be done by navigating to frontend and then running the following build script, which will build app frontend apps.

yarn run build

Some React projects also have various other predefined scripts, which can be viewed in the package.json file which is located in the root folder of each react project, example frontend/dashboard.

More about developing frontend can be found here.

Cypress tests

Some integration tests for studio have been created with Cypress. More about these tests can be found here.

Deployment

The current build is deployed in Kubernetes on Azure. Automated CI/CD using Azure DevOps pipelines.

Built With

Status for container scans

Designer scan Repositories scan

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the 3-Clause BSD License - see the LICENSE.md file for details.

More Repositories

1

altinn-din

The Altinn-DIN font.
HTML
48
star
2

DesignSystem

Altinn designsystem
CSS
40
star
3

docs

Altinn II documentation.
CSS
17
star
4

app-frontend-react

Altinn application React frontend
TypeScript
16
star
5

figma-design-tokens

Design tokens
JavaScript
9
star
6

altinn-design-system

Design system v2
TypeScript
8
star
7

altinn-studio-docs

Documentation for Altinn 3
CSS
8
star
8

app-lib-dotnet

Libraries used in Altinn Apps
C#
7
star
9

plugin-node-data-inheritance

JavaScript
7
star
10

app-localtest

Solution for testing apps locally on your own machine
C#
6
star
11

elasticsearch-episerver

Elasticsearch for EPiServer
C#
6
star
12

altinn-platform

Altinn Platform infrastructure
HCL
6
star
13

designsystem-styleguide

CSS
5
star
14

altinn-application-owner-system

A reference implementation of a system for app owners, that can react to events, fetch data and update app status.
C#
5
star
15

altinn-access-management

PoC for new auth admin UI
C#
5
star
16

oed

Oppgjør etter dødsfall
5
star
17

altinn-broker

Formidlingstjenesten
C#
5
star
18

dig-portfolio

Portfolio management
4
star
19

altinn-apiclient-maskinporten

.NET client for Maskinporten APIs
C#
4
star
20

altinn-authentication

Altinn platform microservice for handling authentication
C#
4
star
21

summer-camp-2023

Backlog for sommercamp 2023
Solidity
4
star
22

ec-client-dotnet

Test client for web services using enterprise certificate
C#
3
star
23

MaskinportenTokenGenerator

PowerShell
3
star
24

altinn-juridisk

Juridisk backlog
3
star
25

altinn-access-management-frontend

Frontend for access management
C#
3
star
26

postman-examples

3
star
27

dotnet-monitor-sidecar-cli

CLI for adding dotnet-monitor sidecar to pods in Kubernetes
Go
3
star
28

AltinnApp

Source code of the Altinn app
C#
3
star
29

altinn-correspondence

Meldingstjenesten
C#
3
star
30

digital-gravferd

Backlog for prosjektet digital gravferd
3
star
31

digdir-assistants

Generative AI assistants
TypeScript
3
star
32

metode-kompetanse

Backlog og område for team metode og kompetanse.
2
star
33

altinn-resource-registry

C#
2
star
34

altinn-cli

Command-line interface for the new Altinn APIs.
C#
2
star
35

altinn-notifications

Altinn platform microservice for handling notifications (mail, sms, etc)
C#
2
star
36

oed-da

2
star
37

digdir-slack-bot

Python
2
star
38

altinn-authorization

Altinn platform microservice for handling authorization
C#
2
star
39

altinn-infoportal-hugo

A new PoC implementation of altinn infoportal using Hugo + markdown.
CSS
2
star
40

altinn-brukerservice

Åpen backlog for Altinn brukerservice (ABS)
2
star
41

altinn2-convert

Command line tool for converting Altinn 2 reporting services into Altinn 3 apps.
C#
2
star
42

eBevis

eBevis er en tjeneste som lar offentlige innkjøpere få tilgang til oppdaterte kvalifikasjonsbevis for norske leverandører både før og etter kontraktsinngåelse.
2
star
43

summer-camp-2021

Backlog for sommercamp 2021
1
star
44

MaskinportenApiPostman

1
star
45

utbredelse

Backlog for arbeid med utbredelse av Altinn 3
1
star
46

altinn-search

Backlog for Altinn search
1
star
47

altinn-infoportal-optimizely

CMS for altinn.no
1
star
48

altinn-authentication-frontend

Authentication React frontend with BFF
C#
1
star
49

ExampleApp

This is an example of an Android app using the Altinn API
Java
1
star
50

altinn-events

Altinn platform microservice for handling events
C#
1
star
51

agencysystem-dotnet

Example C# agency system
C#
1
star
52

altinn-desktop-tool

WPF-client used by support
C#
1
star
53

stride-yaml

1
star
54

altinn-studio-cli

Command line tool for app development
C#
1
star
55

app-template-dotnet

Altinn Studio application template
C#
1
star
56

portal

Backlog for Altinn portal
1
star
57

altinn-support-dashboard

Dashboard tool used by Altinn support
TypeScript
1
star
58

ec-client-java-cxf

Demonstrerer bruk av virksomhetssertifikater mot Altinns webservicer.
Java
1
star
59

altinn2-test-apiclient

Altinn 2 REST API test client
C#
1
star
60

altinn-storage

Altinn platform microservice for handling instance storage
C#
1
star
61

app-migration

Planlegging/utvikling/migrering av apps.
1
star
62

ExampleCode

Various examples of code/tech utilizing Altinn
JavaScript
1
star
63

altinn-cdn

Static assets used by Altinn solutions and apps.
CSS
1
star