Last modified: Apr 25, 2024

Architecture

Notifications sms

API Public API DeliveryReportController Endpoint receiving delivery reports in XML-format from SMS provider. The controller is protected with basic authentication. Integrations Kafka The Notifications sms microservice has an integration towards a Kafka broker, and this integration is used both to publish and consume messages from topics relevant to the microservice. Consumers: The following Kafka consumers are defined: SendSmsQueueConsumer: Consumes sms objects with recipient data that are ready to be sent Producers: A single producer KafkaProducer is implemented and used by all services that publish to Kafka. »

App frontend features

The App Frontend SPA is separated in several features that is a collection of components and containers that support a given functional area for a App. Typical a feature is connected to a type of workflow step. Like form filling, signing, ++. Support for new types of workflow steps will be added as they become available in the backend. Instantiate This feature is responsible for creating a specific instance of the app for the end user. »

Resource Registry

This is work in progress Type of resources There are different types of resources that can be registrated GenericAccessResource MaskinportenSchema Systemresource Later it will be possible to registrate Altinn 3 Apps Legacy Altinn 2 services for legacy archive authorization (not finalized) Generic Access Resources GenericAccessResources will be used as linkServices are used in Altinn 2. The resource would be any type of service provided by public organiazations. We used cpsv:PublicService as inspiration to the data model. »

Ressurs Admin Altinn Studio

Ressursene håndteres som filer i et repo for hver tjenesteeier. Hvis tjenesteeier har opprettet repo {org}-resources så vil dashboard for ressurser være tilgjengelig på forsiden av Altinn Studio. Brukere som tilhører en team som har tilgang til repo kan gjøre endringer på ressurser. Fra Dashboardet kan man opprette eller endre på ressurser. Ressursene kan gis et navn samt en id. Denne id må kun bestå av tall eller små bokstaver a - z og må være globalt unikt. »

App frontend rendering and flow

The sections below give a high-level overview of what happens when the app frontend is rendered. Data that is loaded into the app frontend is placed in the Redux store, where it can be accessed by the React components during rendering. Loading general App resources - common for all apps and process task types When an app is loaded initially, there is some data that is always loaded for the App, regardless of state or which process task the app is currently in. »

Architecture Requirements

They are important input to deciding which cababilities required and they also is important input to the Architecture Principles and Architecture Patterns. Functional RequirementsFunctional requirements can be important to the architecture decisions. Non-Functional RequirementsNon functional requirements contains requirements that typically is important for deciding the architecture. »

Architecture Principles

The following architecture principles has been defined for the solutions. The principles are document as suggested by TOGAF. The architecture principles below is described like TOGAF recommends. Free and open-source software Principle The components and solutions in Altinn 3 are Free and Open Source. Rationale Possibility to share the platform as Open Source. The possibility to create an Open Source community around the platform. Implications Code developed is shared on GitHub. »

Architecture Patterns

Cloud Native The solutions are designed and built to be “Cloud Native”, meaning it is built be scalable applications hosted in public cloud. There is serveral Architecture Patterns that Cloud Native applications are built on. Containers, microservices and declarative APIs exemplify this approach. These techniques enable loosely coupled components that are resilient, manageable, and observable. Combined with robust automation, they allow the devops team to make changes frequently. The Cloud Native blueprint below show the important aspect of a Cloud Native solution. »

Architecture Capabilities

Functional capabilities are described in the functional description of the solutions. Runtime capabilities The runtime capabilities describe the architecture capabilities the different solutions provide during runtime operations. An example could be authorization. The architecture provides the capability to authorize access to resources. Since Altinn 3 is a platform letting its users develop applications and deploy them, you will see that many capabilities that typical is DevOps capabilities in other projects, is part of the runtime capabilities. »