This is a backend WebAPI solution written in .NET / C# following the clean architecture principles.
The API layer that consumes services provided by Altinn.Profile.Core
Relevant implementations:
- Controllers
- Program.cs
The domain and application layer that implements the business logic of the system.
Relevant implementations:
- Interfaces for external dependencies implemented by infrastructure and repository layer
- Domain models
- Services
The infrastructure layer that implements the interfaces defined in Altinn.Profile.Core for integrations towards 3rd-party libraries and systems.
Relevant implementations:
- Clients for communicating with SBL Bridge in Altinn 2
- Database for KRR-data
- Client for communicating with KRR to update the local DB
These instructions will get you a copy of the profile component up and running on your machine for development and testing purposes.
- .NET 9.0 SDK
- Newest Git
- A code editor - we like Visual Studio Code
- Also install recommended extensions (e.g. C#)
- Podman or another container tool such as Docker Desktop
- PostgreSQL
- pgAdmin
Ensure that both PostgreSQL and pgAdmin have been installed and start pgAdmin.
In pgAdmin
- Create database profiledb
- Create the following users with password: Password (see privileges in parentheses)
- platform_profile_admin (superuser, canlogin)
- platform_profile (canlogin)
A more detailed description of the database setup is available in our developer handbook
Clone Altinn Profile repo and navigate to the folder.
git clone https://github.com/Altinn/altinn-profile
cd altinn-profile
- Start Altinn Profile docker container by running the command
podman compose up -d --build
- To stop the container running Altinn Profile run the command
podman stop altinn-platform-profile
The Profile components can be run locally when developing/debugging. Follow the install steps above if this has not already been done.
- Navigate to _src/Altinn.Profile, and build and run the code from there, or run the solution using you selected code editor
cd src/Altinn.Profile
dotnet run
The profile solution is now available locally at http://localhost:5030/. To access swagger use http://localhost:5030/swagger.
- Set up required user secrets for Maskinporten integration in the ASP.NET Core Secret Manager, e.g. via CLI by running the following commands from
src/Altinn.Profile
dotnet user-secrets set "ContactAndReservationSettings:MaskinportenSettings:ClientId" "{SECRET_GOES_HERE}"
dotnet user-secrets set "ContactAndReservationSettings:MaskinportenSettings:EncodedJwk" "{SECRET_GOES_HERE}"
- Run the application, and send the following request (e.g. using Postman) to initiate the synchronization job:
GET http://localhost:5030/profile/api/v1/trigger/syncpersonchanges