├── .csharpierrc.yaml ├── .csharpierignore ├── .vscode ├── settings.json └── extensions.json ├── README.md ├── src ├── .dockerignore ├── App │ ├── TestDummy.cs │ ├── ui │ │ ├── form │ │ │ ├── Settings.json │ │ │ └── layouts │ │ │ │ └── Side1.json │ │ ├── layout-sets.json │ │ └── footer.json │ ├── appsettings.Production.json │ ├── appsettings.Staging.json │ ├── config │ │ ├── texts │ │ │ └── resource.nb.json │ │ ├── applicationmetadata.json │ │ ├── process │ │ │ └── process.bpmn │ │ └── authorization │ │ │ └── policy.xml │ ├── appsettings.Development.json │ ├── Properties │ │ └── launchSettings.json │ ├── models │ │ ├── model.xsd │ │ ├── model.schema.json │ │ └── model.cs │ ├── views │ │ └── Home │ │ │ └── Index.cshtml │ ├── appsettings.json │ ├── App.csproj │ └── Program.cs ├── .releaseignore ├── deployment │ ├── Chart.yaml │ ├── .helmignore │ └── values.yaml ├── Dockerfile ├── App.sln ├── .gitignore └── .editorconfig ├── renovate.json ├── .config └── dotnet-tools.json ├── .github └── workflows │ ├── add-to-project.yml │ ├── dotnet-test.yml │ └── publish-release.yaml ├── Directory.Build.props ├── LICENSE ├── .gitattributes └── .gitignore /.csharpierrc.yaml: -------------------------------------------------------------------------------- 1 | printWidth: 120 2 | useTabs: false 3 | tabWidth: 4 4 | -------------------------------------------------------------------------------- /.csharpierignore: -------------------------------------------------------------------------------- 1 | bin/ 2 | obj/ 3 | .git/ 4 | *.xml 5 | *.csproj 6 | *.props 7 | *.targets 8 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "dotnet-test-explorer.testProjectPath": "**/*Tests*.csproj" 3 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # app-template-dotnet 2 | 3 | Altinn application template using .NET 8. 4 | Used by Altinn Studio to scaffold apps. 5 | -------------------------------------------------------------------------------- /src/.dockerignore: -------------------------------------------------------------------------------- 1 | .dockerignore 2 | .env 3 | .git 4 | .gitignore 5 | .vs 6 | .vscode 7 | docker-compose.yml 8 | docker-compose.*.yml 9 | */bin 10 | */obj 11 | -------------------------------------------------------------------------------- /src/App/TestDummy.cs: -------------------------------------------------------------------------------- 1 | namespace Altinn.App 2 | { 3 | /// 4 | /// Test class needed to setup testfixtures. 5 | /// 6 | public class TestDummy { } 7 | } 8 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "ms-dotnettools.csharp", 4 | "redhat.vscode-yaml", 5 | "pflannery.vscode-versionlens", 6 | "eamodio.gitlens" 7 | ] 8 | } -------------------------------------------------------------------------------- /src/App/ui/form/Settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://altinncdn.no/toolkits/altinn-app-frontend/4/schemas/json/layout/layoutSettings.schema.v1.json", 3 | "pages": { 4 | "order": ["Side1"] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/App/appsettings.Production.json: -------------------------------------------------------------------------------- 1 | { 2 | "ExampleSection": { 3 | "ExampleValue": "The values in this file will overwrite values from the appsettings.json file if the current environment is Production." 4 | } 5 | } -------------------------------------------------------------------------------- /src/App/appsettings.Staging.json: -------------------------------------------------------------------------------- 1 | { 2 | "ExampleSection": { 3 | "ExampleValue": "The values in this file will overwrite values from the appsettings.json file if the current environment is Staging (TT02)." 4 | } 5 | } -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "local>Altinn/renovate-config" 5 | ], 6 | "ignorePaths": [ 7 | "src/Dockerfile" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /src/App/config/texts/resource.nb.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://altinncdn.no/toolkits/altinn-app-frontend/4/schemas/json/text-resources/text-resources.schema.v1.json", 3 | "language": "nb", 4 | "resources": [] 5 | } 6 | -------------------------------------------------------------------------------- /src/App/ui/form/layouts/Side1.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://altinncdn.no/toolkits/altinn-app-frontend/4/schemas/json/layout/layout.schema.v1.json", 3 | "data": { 4 | "hidden": false, 5 | "layout": [] 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /.config/dotnet-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "isRoot": true, 4 | "tools": { 5 | "csharpier": { 6 | "version": "1.0.2", 7 | "commands": [ 8 | "csharpier" 9 | ], 10 | "rollForward": false 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /src/.releaseignore: -------------------------------------------------------------------------------- 1 | Altinn.App.Api/ 2 | Altinn.App.Common/ 3 | Altinn.App.PlatformServices/ 4 | Altinn.App.PlatformServices.Tests/ 5 | App.IntegrationTests/ 6 | .editorconfig 7 | .releaseignore 8 | AppRef.sln 9 | .idea/ 10 | .vs/ 11 | App/AppRef.csproj 12 | App/TestDummy.cs -------------------------------------------------------------------------------- /src/deployment/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | description: A Helm chart for Kubernetes 3 | # name can only be lowercase. It is used in the templates. 4 | name: deployment 5 | version: 1.1.0 6 | 7 | dependencies: 8 | - name: deployment 9 | repository: https://charts.altinn.studio/ 10 | version: 3.2.0 11 | -------------------------------------------------------------------------------- /src/App/ui/layout-sets.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://altinncdn.no/toolkits/altinn-app-frontend/4/schemas/json/layout/layout-sets.schema.v1.json", 3 | "sets": [ 4 | { 5 | "id": "form", 6 | "dataType": "model", 7 | "tasks": ["Task_1"] 8 | } 9 | ], 10 | "uiSettings": {} 11 | } 12 | -------------------------------------------------------------------------------- /src/App/ui/footer.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://altinncdn.no/toolkits/altinn-app-frontend/4/schemas/json/layout/footer.schema.v1.json", 3 | "footer": [ 4 | { 5 | "type": "Link", 6 | "icon": "information", 7 | "title": "general.accessibility", 8 | "target": "general.accessibility_url" 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /src/App/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "ExampleSection": { 3 | "ExampleValue": "The values in this file will overwrite values from the appsettings.json file if the current environment is Development." 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Debug", 8 | "System": "Information", 9 | "Microsoft": "Information" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /src/deployment/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *~ 18 | # Various IDEs 19 | .project 20 | .idea/ 21 | *.tmproj 22 | -------------------------------------------------------------------------------- /.github/workflows/add-to-project.yml: -------------------------------------------------------------------------------- 1 | name: Add new issues to Team Apps project 2 | 3 | on: 4 | issues: 5 | types: 6 | - opened 7 | 8 | jobs: 9 | add-to-project: 10 | name: Add issue to Team Apps project 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/add-to-project@main 14 | with: 15 | project-url: https://github.com/orgs/Altinn/projects/39 16 | github-token: ${{ secrets.ASSIGN_PROJECT_TOKEN }} 17 | -------------------------------------------------------------------------------- /Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | latest 4 | true 5 | Recommended 6 | strict 7 | 8 | 9 | 10 | 11 | all 12 | runtime; build; native; contentfiles; analyzers 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/deployment/values.yaml: -------------------------------------------------------------------------------- 1 | # Additional configurations are available. See: https://docs.altinn.studio/altinn-studio/reference/configuration/deployment/ 2 | 3 | deployment: 4 | 5 | volumeMounts: 6 | - name: datakeys 7 | mountPath: /mnt/keys 8 | - name: accesstoken 9 | mountPath: "/accesstoken" 10 | 11 | volumes: 12 | - name : datakeys 13 | persistentVolumeClaim: 14 | claimName: keys 15 | - name: accesstoken 16 | secret: 17 | secretName: accesstoken 18 | 19 | readiness: 20 | enabled: true 21 | 22 | liveness: 23 | enabled: true 24 | -------------------------------------------------------------------------------- /src/App/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:56226/", 7 | "sslPort": 0 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | } 17 | }, 18 | "AppRef": { 19 | "commandName": "Project", 20 | "launchBrowser": true, 21 | "environmentVariables": { 22 | "ASPNETCORE_ENVIRONMENT": "Development" 23 | } 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /src/App/models/model.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/App/models/model.schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "type": "object", 4 | "info": { 5 | "rootNode": "" 6 | }, 7 | "@xsdNamespaces": { 8 | "xsd": "http://www.w3.org/2001/XMLSchema", 9 | "xsi": "http://www.w3.org/2001/XMLSchema-instance", 10 | "seres": "http://seres.no/xsd/forvaltningsdata" 11 | }, 12 | "@xsdSchemaAttributes": { 13 | "AttributeFormDefault": "Unqualified", 14 | "ElementFormDefault": "Qualified", 15 | "BlockDefault": "None", 16 | "FinalDefault": "None" 17 | }, 18 | "@xsdRootElement": "model", 19 | "properties": { 20 | "property1": { 21 | "type": "string" 22 | }, 23 | "property2": { 24 | "type": "string" 25 | }, 26 | "property3": { 27 | "type": "string" 28 | } 29 | }, 30 | "required": [ 31 | "property1", 32 | "property2" 33 | ] 34 | } -------------------------------------------------------------------------------- /src/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM mcr.microsoft.com/dotnet/sdk:8.0-alpine AS build 2 | WORKDIR /App 3 | 4 | COPY /App/App.csproj . 5 | RUN dotnet restore App.csproj 6 | 7 | COPY /App . 8 | 9 | RUN dotnet publish App.csproj --configuration Release --output /app_output 10 | 11 | FROM mcr.microsoft.com/dotnet/aspnet:8.0-alpine AS final 12 | EXPOSE 5005 13 | WORKDIR /App 14 | COPY --from=build /app_output . 15 | ENV ASPNETCORE_URLS= 16 | 17 | # setup the user and group 18 | # busybox doesn't include longopts, so the options are roughly 19 | # -g --gid 20 | # -u --uid 21 | # -G --group 22 | # -D --disable-password 23 | # -s --shell 24 | RUN addgroup -g 3000 dotnet && adduser -u 1000 -G dotnet -D -s /bin/false dotnet 25 | 26 | # Add globalization timezone support 27 | RUN apk add --no-cache icu-libs icu-data-full tzdata 28 | ENV DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=false 29 | 30 | USER dotnet 31 | RUN mkdir /tmp/logtelemetry 32 | 33 | ENTRYPOINT ["dotnet", "Altinn.Application.dll"] 34 | -------------------------------------------------------------------------------- /src/App/views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | @ViewBag.Org- @ViewBag.App 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/App/models/model.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.Linq; 5 | using System.Text.Json.Serialization; 6 | using System.Xml.Serialization; 7 | using Microsoft.AspNetCore.Mvc.ModelBinding; 8 | using Newtonsoft.Json; 9 | 10 | namespace Altinn.App.Models.model 11 | { 12 | [XmlRoot(ElementName = "model")] 13 | public class model 14 | { 15 | [XmlElement("property1", Order = 1)] 16 | [JsonProperty("property1")] 17 | [JsonPropertyName("property1")] 18 | public string property1 { get; set; } 19 | 20 | [XmlElement("property2", Order = 2)] 21 | [JsonProperty("property2")] 22 | [JsonPropertyName("property2")] 23 | public string property2 { get; set; } 24 | 25 | [XmlElement("property3", Order = 3)] 26 | [JsonProperty("property3")] 27 | [JsonPropertyName("property3")] 28 | public string property3 { get; set; } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /.github/workflows/dotnet-test.yml: -------------------------------------------------------------------------------- 1 | name: Build and Test on windows and macos 2 | on: 3 | push: 4 | branches: [ main ] 5 | pull_request: 6 | branches: [ main ] 7 | types: [opened, synchronize, reopened] 8 | workflow_dispatch: 9 | jobs: 10 | analyze: 11 | strategy: 12 | matrix: 13 | os: [macos-latest,windows-latest,ubuntu-latest] 14 | name: Run dotnet build and test 15 | runs-on: ${{ matrix.os}} 16 | env: 17 | DOTNET_HOSTBUILDER__RELOADCONFIGONCHANGE: false 18 | steps: 19 | - name: Setup .NET 20 | uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4 21 | with: 22 | dotnet-version: | 23 | 8.0.x 24 | - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 25 | with: 26 | fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis 27 | - name: Build 28 | run: | 29 | dotnet build src/App.sln -v m 30 | - name: Test 31 | run: | 32 | dotnet test src/App.sln -v m --no-restore --no-build 33 | -------------------------------------------------------------------------------- /src/App.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29409.12 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "App", "App\App.csproj", "{DB6EF59F-1C26-4997-8571-C70F983B8759}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {DB6EF59F-1C26-4997-8571-C70F983B8759}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {DB6EF59F-1C26-4997-8571-C70F983B8759}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {DB6EF59F-1C26-4997-8571-C70F983B8759}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {DB6EF59F-1C26-4997-8571-C70F983B8759}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {4584C6E1-D5B4-40B1-A8C4-CF4620EB0896} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /src/App/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Kestrel": { 3 | "EndPoints": { 4 | "Http": { 5 | "Url": "http://*:5005" 6 | } 7 | } 8 | }, 9 | "AppSettings": { 10 | "OpenIdWellKnownEndpoint": "http://localhost:5101/authentication/api/v1/openid/", 11 | "RuntimeCookieName": "AltinnStudioRuntime", 12 | "RegisterEventsWithEventsComponent": false 13 | }, 14 | "GeneralSettings": { 15 | "HostName": "local.altinn.cloud", 16 | "SoftValidationPrefix": "*WARNING*", 17 | "FixedValidationPrefix": "*FIXED*", 18 | "AltinnPartyCookieName": "AltinnPartyId" 19 | }, 20 | "PlatformSettings": { 21 | "ApiStorageEndpoint": "http://localhost:5101/storage/api/v1/", 22 | "ApiRegisterEndpoint": "http://localhost:5101/register/api/v1/", 23 | "ApiProfileEndpoint": "http://localhost:5101/profile/api/v1/", 24 | "ApiAuthenticationEndpoint": "http://localhost:5101/authentication/api/v1/", 25 | "ApiAuthorizationEndpoint": "http://localhost:5101/authorization/api/v1/", 26 | "ApiEventsEndpoint": "http://localhost:5101/events/api/v1/", 27 | "ApiPdfEndpoint": "http://localhost:5070/api/v1/", 28 | "SubscriptionKey": "retrieved from environment at runtime" 29 | }, 30 | "ApplicationInsights": { 31 | "InstrumentationKey": "retrieved from environment at runtime" 32 | } 33 | } -------------------------------------------------------------------------------- /.github/workflows/publish-release.yaml: -------------------------------------------------------------------------------- 1 | name: Upload template zip to release 2 | 3 | on: 4 | release: 5 | types: 6 | - published 7 | 8 | permissions: 9 | contents: write 10 | 11 | jobs: 12 | publish: 13 | name: Publish zip to release 14 | if: startsWith(github.ref, 'refs/tags/v') 15 | runs-on: ubuntu-latest 16 | steps: 17 | - name: Checkout 18 | uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 19 | - name: Create zip 20 | run: | 21 | rm -rf /tmp/release 22 | mkdir /tmp/release 23 | cd src/ 24 | rsync . -rv --exclude-from=.releaseignore --exclude-from=.gitignore /tmp/release 25 | cd /tmp/release 26 | zip -r ${{ github.event.repository.name }}-${{ github.event.release.tag_name }}.zip . 27 | sha512sum ${{ github.event.repository.name }}-${{ github.event.release.tag_name }}.zip > ${{ github.event.repository.name }}-${{ github.event.release.tag_name }}.sha512sums.txt 28 | - name: Update release 29 | uses: softprops/action-gh-release@72f2c25fcb47643c292f7107632f7a47c1df5cd8 # v2 30 | with: 31 | files: | 32 | /tmp/release/${{ github.event.repository.name }}-${{ github.event.release.tag_name }}.zip 33 | /tmp/release/${{ github.event.repository.name }}-${{ github.event.release.tag_name }}.sha512sums.txt -------------------------------------------------------------------------------- /src/App/config/applicationmetadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://altinncdn.no/toolkits/altinn-app-frontend/4/schemas/json/application/application-metadata.schema.v1.json", 3 | "id": "tdd/bestilling", 4 | "org": "tdd", 5 | "title": { "nb": "Bestillingseksempelapp" }, 6 | "dataTypes": [ 7 | { 8 | "id": "ref-data-as-pdf", 9 | "allowedContentTypes": ["application/pdf"], 10 | "maxCount": 0, 11 | "minCount": 0, 12 | "enablePdfCreation": true, 13 | "enableFileScan": false, 14 | "validationErrorOnPendingFileScan": false, 15 | "enabledFileAnalysers": [], 16 | "enabledFileValidators": [] 17 | }, 18 | { 19 | "id": "model", 20 | "allowedContentTypes": ["application/xml"], 21 | "appLogic": { 22 | "autoCreate": true, 23 | "classRef": "Altinn.App.Models.model.model", 24 | "allowAnonymousOnStateless": false, 25 | "autoDeleteOnProcessEnd": false 26 | }, 27 | "taskId": "Task_1", 28 | "maxCount": 1, 29 | "minCount": 1, 30 | "enablePdfCreation": true, 31 | "enableFileScan": false, 32 | "validationErrorOnPendingFileScan": false, 33 | "enabledFileAnalysers": [], 34 | "enabledFileValidators": [] 35 | } 36 | ], 37 | "partyTypesAllowed": { 38 | "bankruptcyEstate": true, 39 | "organisation": true, 40 | "person": true, 41 | "subUnit": true 42 | }, 43 | "autoDeleteOnProcessEnd": false 44 | } 45 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017, Altinn 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | * Neither the name of Altinn nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /src/App/App.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | net8.0 4 | Altinn.Application 5 | Altinn.App 6 | 7 | 8 | 9 | lib\$(TargetFramework)\*.xml 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | Always 20 | 21 | 22 | PreserveNewest 23 | 24 | 25 | PreserveNewest 26 | 27 | 28 | 29 | true 30 | $(NoWarn);1591;1998 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /src/App/Program.cs: -------------------------------------------------------------------------------- 1 | using Altinn.App.Api.Extensions; 2 | using Altinn.App.Api.Helpers; 3 | using Microsoft.AspNetCore.Builder; 4 | using Microsoft.AspNetCore.Hosting; 5 | using Microsoft.Extensions.Configuration; 6 | using Microsoft.Extensions.DependencyInjection; 7 | using Microsoft.Extensions.Hosting; 8 | using Microsoft.OpenApi.Models; 9 | 10 | void RegisterCustomAppServices(IServiceCollection services, IConfiguration config, IWebHostEnvironment env) 11 | { 12 | // Register your apps custom service implementations here. 13 | } 14 | 15 | // ########################################################################### 16 | // # Unless you are sure what you are doing do not change the following code # 17 | // ########################################################################### 18 | 19 | WebApplicationBuilder builder = WebApplication.CreateBuilder(args); 20 | 21 | ConfigureServices(builder.Services, builder.Configuration); 22 | 23 | ConfigureWebHostBuilder(builder.WebHost); 24 | 25 | WebApplication app = builder.Build(); 26 | 27 | Configure(); 28 | 29 | app.Run(); 30 | 31 | void ConfigureServices(IServiceCollection services, IConfiguration config) 32 | { 33 | services.AddAltinnAppControllersWithViews(); 34 | 35 | // Register custom implementations for this application 36 | RegisterCustomAppServices(services, config, builder.Environment); 37 | 38 | // Register services required to run this as an Altinn application 39 | services.AddAltinnAppServices(config, builder.Environment); 40 | 41 | // Add Swagger support (Swashbuckle) 42 | services.AddSwaggerGen(c => 43 | { 44 | c.SwaggerDoc("v1", new OpenApiInfo { Title = "Altinn App Api", Version = "v1" }); 45 | StartupHelper.IncludeXmlComments(c.IncludeXmlComments); 46 | }); 47 | } 48 | 49 | void ConfigureWebHostBuilder(IWebHostBuilder builder) 50 | { 51 | builder.ConfigureAppWebHost(args); 52 | } 53 | 54 | void Configure() 55 | { 56 | string applicationId = StartupHelper.GetApplicationId(); 57 | if (!string.IsNullOrEmpty(applicationId)) 58 | { 59 | app.UseSwagger(o => o.RouteTemplate = applicationId + "/swagger/{documentName}/swagger.json"); 60 | 61 | app.UseSwaggerUI(c => 62 | { 63 | c.SwaggerEndpoint($"/{applicationId}/swagger/v1/swagger.json", "Altinn App API"); 64 | c.RoutePrefix = applicationId + "/swagger"; 65 | }); 66 | } 67 | app.UseAltinnAppCommonConfiguration(); 68 | } 69 | -------------------------------------------------------------------------------- /src/App/config/process/process.bpmn: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SequenceFlow_1n56yn5 6 | 7 | 8 | SequenceFlow_1n56yn5 9 | SequenceFlow_1oot28q 10 | 11 | 12 | data 13 | 14 | 15 | 16 | 17 | SequenceFlow_1oot28q 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /src/.gitignore: -------------------------------------------------------------------------------- 1 | syntax: glob 2 | 3 | ### VisualStudio ### 4 | 5 | # Tool Runtime Dir 6 | [Tt]ools/ 7 | 8 | # User-specific files 9 | *.suo 10 | *.user 11 | *.userosscache 12 | *.sln.docstates 13 | 14 | # Entity Framework 15 | Migrations/ 16 | 17 | # Build results 18 | [Dd]ebug/ 19 | [Dd]ebugPublic/ 20 | [Rr]elease/ 21 | [Rr]eleases/ 22 | x64/ 23 | x86/ 24 | build/ 25 | bld/ 26 | [Bb]in/ 27 | [Oo]bj/ 28 | msbuild.log 29 | 30 | # Cross building rootfs 31 | cross/rootfs/ 32 | 33 | # Visual Studio 2015 34 | .vs/ 35 | 36 | # Visual Studio 2015 Pre-CTP6 37 | *.sln.ide 38 | *.ide/ 39 | 40 | # MSTest test Results 41 | [Tt]est[Rr]esult*/ 42 | [Bb]uild[Ll]og.* 43 | 44 | #NUNIT 45 | *.VisualState.xml 46 | TestResult.xml 47 | 48 | #JUNIT 49 | junit.xml 50 | 51 | # Build Results of an ATL Project 52 | [Dd]ebugPS/ 53 | [Rr]eleasePS/ 54 | dlldata.c 55 | 56 | *_i.c 57 | *_p.c 58 | *_i.h 59 | *.ilk 60 | *.meta 61 | *.obj 62 | *.pch 63 | *.pdb 64 | *.pgc 65 | *.pgd 66 | *.rsp 67 | *.sbr 68 | *.tlb 69 | *.tli 70 | *.tlh 71 | *.tmp 72 | *.tmp_proj 73 | *.log 74 | *.vspscc 75 | *.vssscc 76 | .builds 77 | *.pidb 78 | *.svclog 79 | *.scc 80 | 81 | # Chutzpah Test files 82 | _Chutzpah* 83 | 84 | # Visual C++ cache files 85 | ipch/ 86 | *.aps 87 | *.ncb 88 | *.opendb 89 | *.opensdf 90 | *.sdf 91 | *.cachefile 92 | 93 | # Visual Studio profiler 94 | *.psess 95 | *.vsp 96 | *.vspx 97 | 98 | # TFS 2012 Local Workspace 99 | $tf/ 100 | 101 | # Guidance Automation Toolkit 102 | *.gpState 103 | 104 | # ReSharper is a .NET coding add-in 105 | _ReSharper*/ 106 | *.[Rr]e[Ss]harper 107 | *.DotSettings.user 108 | 109 | # JustCode is a .NET coding addin-in 110 | .JustCode 111 | 112 | # TeamCity is a build add-in 113 | _TeamCity* 114 | 115 | # DotCover is a Code Coverage Tool 116 | *.dotCover 117 | 118 | # NCrunch 119 | _NCrunch_* 120 | .*crunch*.local.xml 121 | 122 | # MightyMoose 123 | *.mm.* 124 | AutoTest.Net/ 125 | 126 | # Web workbench (sass) 127 | .sass-cache/ 128 | 129 | # Installshield output folder 130 | [Ee]xpress/ 131 | 132 | # DocProject is a documentation generator add-in 133 | DocProject/buildhelp/ 134 | DocProject/Help/*.HxT 135 | DocProject/Help/*.HxC 136 | DocProject/Help/*.hhc 137 | DocProject/Help/*.hhk 138 | DocProject/Help/*.hhp 139 | DocProject/Help/Html2 140 | DocProject/Help/html 141 | 142 | # Click-Once directory 143 | publish/ 144 | 145 | # Publish Web Output 146 | *.[Pp]ublish.xml 147 | *.azurePubxml 148 | *.pubxml 149 | *.publishproj 150 | 151 | # NuGet Packages 152 | *.nuget.props 153 | *.nuget.targets 154 | *.nupkg 155 | **/packages/* 156 | 157 | # NuGet package restore lockfiles 158 | project.lock.json 159 | 160 | # Windows Azure Build Output 161 | csx/ 162 | *.build.csdef 163 | 164 | # Windows Store app package directory 165 | AppPackages/ 166 | 167 | # Others 168 | *.Cache 169 | ClientBin/ 170 | [Ss]tyle[Cc]op.* 171 | ~$* 172 | *.dbmdl 173 | *.dbproj.schemaview 174 | *.pfx 175 | *.publishsettings 176 | node_modules/ 177 | *.metaproj 178 | *.metaproj.tmp 179 | 180 | # RIA/Silverlight projects 181 | Generated_Code/ 182 | 183 | # Backup & report files from converting an old project file 184 | # to a newer Visual Studio version. Backup files are not needed, 185 | # because we have git ;-) 186 | _UpgradeReport_Files/ 187 | Backup*/ 188 | UpgradeLog*.XML 189 | UpgradeLog*.htm 190 | 191 | # SQL Server files 192 | *.mdf 193 | *.ldf 194 | 195 | # Business Intelligence projects 196 | *.rdl.data 197 | *.bim.layout 198 | *.bim_*.settings 199 | 200 | # Microsoft Fakes 201 | FakesAssemblies/ 202 | 203 | ### MonoDevelop ### 204 | 205 | *.pidb 206 | *.userprefs 207 | 208 | ### Windows ### 209 | 210 | # Windows image file caches 211 | Thumbs.db 212 | ehthumbs.db 213 | 214 | # Folder config file 215 | Desktop.ini 216 | 217 | # Recycle Bin used on file shares 218 | $RECYCLE.BIN/ 219 | 220 | # Windows Installer files 221 | *.cab 222 | *.msi 223 | *.msm 224 | *.msp 225 | 226 | # Windows shortcuts 227 | *.lnk 228 | 229 | ### Linux ### 230 | 231 | *~ 232 | 233 | # KDE directory preferences 234 | .directory 235 | 236 | ### OSX ### 237 | 238 | .DS_Store 239 | .AppleDouble 240 | .LSOverride 241 | 242 | # Icon must end with two \r 243 | Icon 244 | 245 | # Thumbnails 246 | ._* 247 | 248 | # Files that might appear on external disk 249 | .Spotlight-V100 250 | .Trashes 251 | 252 | # Directories potentially created on remote AFP share 253 | .AppleDB 254 | .AppleDesktop 255 | Network Trash Folder 256 | Temporary Items 257 | .apdisk 258 | 259 | # vim temporary files 260 | [._]*.s[a-w][a-z] 261 | [._]s[a-w][a-z] 262 | *.un~ 263 | Session.vim 264 | .netrwhist 265 | *~ 266 | -------------------------------------------------------------------------------- /src/.editorconfig: -------------------------------------------------------------------------------- 1 | [*.cs] 2 | 3 | # CS1998: Async method lacks 'await' operators and will run synchronously 4 | dotnet_diagnostic.CS1998.severity = warning 5 | csharp_indent_labels = one_less_than_current 6 | csharp_using_directive_placement = outside_namespace:silent 7 | csharp_prefer_simple_using_statement = true:suggestion 8 | csharp_prefer_braces = true:silent 9 | csharp_style_namespace_declarations = block_scoped:none 10 | csharp_style_expression_bodied_methods = false:silent 11 | csharp_style_expression_bodied_constructors = false:silent 12 | csharp_style_expression_bodied_operators = false:silent 13 | csharp_style_expression_bodied_properties = true:silent 14 | csharp_style_expression_bodied_indexers = true:silent 15 | csharp_style_expression_bodied_accessors = true:silent 16 | csharp_style_expression_bodied_lambdas = true:silent 17 | csharp_style_expression_bodied_local_functions = false:silent 18 | 19 | # IDE0058: Expression value is never used 20 | dotnet_diagnostic.IDE0058.severity = none 21 | 22 | # IDE0160: Convert to block scoped namespace 23 | dotnet_diagnostic.IDE0160.severity = none 24 | csharp_style_throw_expression = true:suggestion 25 | csharp_style_prefer_null_check_over_type_check = true:suggestion 26 | csharp_style_inlined_variable_declaration = true:suggestion 27 | csharp_style_deconstructed_variable_declaration = true:suggestion 28 | csharp_style_var_for_built_in_types = false:silent 29 | csharp_style_var_when_type_is_apparent = true:silent 30 | csharp_style_var_elsewhere = false:silent 31 | 32 | [*.{cs,vb}] 33 | dotnet_style_operator_placement_when_wrapping = beginning_of_line 34 | tab_width = 4 35 | indent_size = 4 36 | end_of_line = crlf 37 | dotnet_style_coalesce_expression = true:suggestion 38 | dotnet_style_null_propagation = true:suggestion 39 | dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion 40 | dotnet_style_prefer_auto_properties = true:silent 41 | dotnet_style_object_initializer = true:suggestion 42 | dotnet_style_collection_initializer = true:suggestion 43 | [*.{cs,vb}] 44 | #### Naming styles #### 45 | 46 | # Naming rules 47 | 48 | dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion 49 | dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface 50 | dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i 51 | 52 | dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion 53 | dotnet_naming_rule.types_should_be_pascal_case.symbols = types 54 | dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case 55 | 56 | dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion 57 | dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members 58 | dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case 59 | 60 | # Symbol specifications 61 | 62 | dotnet_naming_symbols.interface.applicable_kinds = interface 63 | dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected 64 | dotnet_naming_symbols.interface.required_modifiers = 65 | 66 | dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum 67 | dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected 68 | dotnet_naming_symbols.types.required_modifiers = 69 | 70 | dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method 71 | dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected 72 | dotnet_naming_symbols.non_field_members.required_modifiers = 73 | 74 | # Naming styles 75 | 76 | dotnet_naming_style.begins_with_i.required_prefix = I 77 | dotnet_naming_style.begins_with_i.required_suffix = 78 | dotnet_naming_style.begins_with_i.word_separator = 79 | dotnet_naming_style.begins_with_i.capitalization = pascal_case 80 | 81 | dotnet_naming_style.pascal_case.required_prefix = 82 | dotnet_naming_style.pascal_case.required_suffix = 83 | dotnet_naming_style.pascal_case.word_separator = 84 | dotnet_naming_style.pascal_case.capitalization = pascal_case 85 | 86 | dotnet_naming_style.pascal_case.required_prefix = 87 | dotnet_naming_style.pascal_case.required_suffix = 88 | dotnet_naming_style.pascal_case.word_separator = 89 | dotnet_naming_style.pascal_case.capitalization = pascal_case 90 | dotnet_style_prefer_simplified_boolean_expressions = true:suggestion 91 | 92 | # Default severity for analyzer diagnostics with category 'Style' 93 | dotnet_analyzer_diagnostic.category-Style.severity = warning 94 | dotnet_style_prefer_conditional_expression_over_assignment = true:silent 95 | dotnet_style_prefer_conditional_expression_over_return = true:silent 96 | dotnet_style_explicit_tuple_names = true:suggestion 97 | dotnet_style_prefer_inferred_tuple_names = true:suggestion 98 | dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion 99 | dotnet_style_prefer_compound_assignment = true:suggestion 100 | dotnet_style_prefer_simplified_interpolation = true:suggestion 101 | dotnet_style_namespace_match_folder = true:suggestion 102 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | syntax: glob 2 | 3 | ### VisualStudio ### 4 | 5 | # Tool Runtime Dir 6 | [Tt]ools/ 7 | 8 | # User-specific files 9 | *.suo 10 | *.user 11 | *.userosscache 12 | *.sln.docstates 13 | 14 | # Entity Framework 15 | Migrations/ 16 | 17 | # Build results 18 | [Dd]ebug/ 19 | [Dd]ebugPublic/ 20 | [Rr]elease/ 21 | [Rr]eleases/ 22 | x64/ 23 | x86/ 24 | build/ 25 | bld/ 26 | [Bb]in/ 27 | [Oo]bj/ 28 | msbuild.log 29 | 30 | # Cross building rootfs 31 | cross/rootfs/ 32 | 33 | # Visual Studio 2015 34 | .vs/ 35 | 36 | # Visual Studio 2015 Pre-CTP6 37 | *.sln.ide 38 | *.ide/ 39 | 40 | # MSTest test Results 41 | [Tt]est[Rr]esult*/ 42 | [Bb]uild[Ll]og.* 43 | 44 | #NUNIT 45 | *.VisualState.xml 46 | TestResult.xml 47 | 48 | #JUNIT 49 | junit.xml 50 | 51 | # Build Results of an ATL Project 52 | [Dd]ebugPS/ 53 | [Rr]eleasePS/ 54 | dlldata.c 55 | 56 | *_i.c 57 | *_p.c 58 | *_i.h 59 | *.ilk 60 | *.meta 61 | *.obj 62 | *.pch 63 | *.pdb 64 | *.pgc 65 | *.pgd 66 | *.rsp 67 | *.sbr 68 | *.tlb 69 | *.tli 70 | *.tlh 71 | *.tmp 72 | *.tmp_proj 73 | *.log 74 | *.vspscc 75 | *.vssscc 76 | .builds 77 | *.pidb 78 | *.svclog 79 | *.scc 80 | 81 | # Chutzpah Test files 82 | _Chutzpah* 83 | 84 | # Visual C++ cache files 85 | ipch/ 86 | *.aps 87 | *.ncb 88 | *.opendb 89 | *.opensdf 90 | *.sdf 91 | *.cachefile 92 | 93 | # Visual Studio profiler 94 | *.psess 95 | *.vsp 96 | *.vspx 97 | 98 | # TFS 2012 Local Workspace 99 | $tf/ 100 | 101 | # Guidance Automation Toolkit 102 | *.gpState 103 | 104 | # ReSharper is a .NET coding add-in 105 | _ReSharper*/ 106 | *.[Rr]e[Ss]harper 107 | *.DotSettings.user 108 | 109 | # JustCode is a .NET coding addin-in 110 | .JustCode 111 | 112 | # TeamCity is a build add-in 113 | _TeamCity* 114 | 115 | # DotCover is a Code Coverage Tool 116 | *.dotCover 117 | 118 | # NCrunch 119 | _NCrunch_* 120 | .*crunch*.local.xml 121 | 122 | # MightyMoose 123 | *.mm.* 124 | AutoTest.Net/ 125 | 126 | # Web workbench (sass) 127 | .sass-cache/ 128 | 129 | # Installshield output folder 130 | [Ee]xpress/ 131 | 132 | # DocProject is a documentation generator add-in 133 | DocProject/buildhelp/ 134 | DocProject/Help/*.HxT 135 | DocProject/Help/*.HxC 136 | DocProject/Help/*.hhc 137 | DocProject/Help/*.hhk 138 | DocProject/Help/*.hhp 139 | DocProject/Help/Html2 140 | DocProject/Help/html 141 | 142 | # Click-Once directory 143 | publish/ 144 | 145 | # Publish Web Output 146 | *.[Pp]ublish.xml 147 | *.azurePubxml 148 | *.pubxml 149 | *.publishproj 150 | 151 | # NuGet Packages 152 | *.nuget.props 153 | *.nuget.targets 154 | *.nupkg 155 | **/packages/* 156 | 157 | # Allow frontend packages 158 | !**/frontend/packages/* 159 | 160 | # NuGet package restore lockfiles 161 | project.lock.json 162 | 163 | # yarn lock file 164 | package-lock.json 165 | 166 | # Windows Azure Build Output 167 | csx/ 168 | *.build.csdef 169 | 170 | # Windows Store app package directory 171 | AppPackages/ 172 | 173 | # Others 174 | *.Cache 175 | ClientBin/ 176 | [Ss]tyle[Cc]op.* 177 | ~$* 178 | *.dbmdl 179 | *.dbproj.schemaview 180 | *.publishsettings 181 | node_modules/ 182 | *.metaproj 183 | *.metaproj.tmp 184 | 185 | # RIA/Silverlight projects 186 | Generated_Code/ 187 | 188 | # Backup & report files from converting an old project file 189 | # to a newer Visual Studio version. Backup files are not needed, 190 | # because we have git ;-) 191 | _UpgradeReport_Files/ 192 | Backup*/ 193 | UpgradeLog*.XML 194 | UpgradeLog*.htm 195 | 196 | # SQL Server files 197 | *.mdf 198 | *.ldf 199 | 200 | # Business Intelligence projects 201 | *.rdl.data 202 | *.bim.layout 203 | *.bim_*.settings 204 | 205 | # Microsoft Fakes 206 | FakesAssemblies/ 207 | 208 | ### MonoDevelop ### 209 | 210 | *.pidb 211 | *.userprefs 212 | 213 | ### Windows ### 214 | 215 | # Windows image file caches 216 | Thumbs.db 217 | ehthumbs.db 218 | 219 | # Folder config file 220 | Desktop.ini 221 | 222 | # Recycle Bin used on file shares 223 | $RECYCLE.BIN/ 224 | 225 | # Windows Installer files 226 | *.cab 227 | *.msi 228 | *.msm 229 | *.msp 230 | 231 | # Windows shortcuts 232 | *.lnk 233 | 234 | ### Linux ### 235 | 236 | *~ 237 | 238 | # KDE directory preferences 239 | .directory 240 | 241 | ### OSX ### 242 | 243 | .DS_Store 244 | .AppleDouble 245 | .LSOverride 246 | 247 | # Icon must end with two \r 248 | Icon 249 | 250 | # Thumbnails 251 | ._* 252 | 253 | # Files that might appear on external disk 254 | .Spotlight-V100 255 | .Trashes 256 | 257 | # Directories potentially created on remote AFP share 258 | .AppleDB 259 | .AppleDesktop 260 | Network Trash Folder 261 | Temporary Items 262 | .apdisk 263 | 264 | # vim temporary files 265 | [._]*.s[a-w][a-z] 266 | [._]s[a-w][a-z] 267 | *.un~ 268 | Session.vim 269 | .netrwhist 270 | *~ 271 | /AltinnPoCExperiments 272 | 273 | # Sonarqube 274 | .scannerwork 275 | 276 | # TSLint report 277 | tslint_report.json 278 | 279 | 280 | 281 | ## -- Repositories -- 282 | 283 | # Binaries for programs and plugins 284 | *.exe 285 | *.dll 286 | *.so 287 | *.dylib 288 | 289 | # Test binary, build with `go test -c` 290 | *.test 291 | 292 | # Output of the go coverage tool, specifically when used with LiteIDE 293 | *.out 294 | 295 | # Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736 296 | .glide/ 297 | postgres/* 298 | !src/AltinnRepositories/gitea-data/ 299 | src/AltinnRepositories/gitea-data/* 300 | !src/AltinnRepositories/gitea-data/gitea/ 301 | src/AltinnRepositories/gitea-data/gitea/* 302 | !src/AltinnRepositories/gitea-data/gitea/conf/ 303 | !src/AltinnRepositories/gitea-data/gitea/options/ 304 | !src/AltinnRepositories/gitea-data/gitea/public/ 305 | !src/AltinnRepositories/gitea-data/gitea/templates/ 306 | 307 | ######### Built react apps for receipt ########### 308 | src/Altinn.Platform/Altinn.Platform.Receipt/Receipt/wwwroot/receipt/js/react 309 | src/Altinn.Platform/Altinn.Platform.Receipt/Receipt/wwwroot/receipt/css 310 | 311 | ######### Built react apps for designer ########### 312 | src/studio/src/designer/backend/wwwroot/designer/css/react 313 | src/studio/src/designer/backend/wwwroot/designer/js/react 314 | src/studio/src/designer/backend/wwwroot/designer/js/lib 315 | src/studio/src/designer/backend/wwwroot/designer/css/lib 316 | src/studio/src/designer/backend/wwwroot/designer/css/font-awesome 317 | src/studio/src/designer/backend/wwwroot/designer/css/fonts 318 | src/studio/src/designer/backend/wwwroot/designer/css/bootstrap*.css 319 | 320 | ######### Testdata created by testrun ######### 321 | src/Altinn.Platform/Altinn.Platform.Authorization/IntegrationTests/Data/blobs/output/ 322 | 323 | # Jest test coverage 324 | coverage 325 | /deploy/kubernetes/helm-charts/altinn-dataservice-0.1.0.tgz 326 | /deploy/kubernetes/altinn-dbsettings-secret.json 327 | 328 | /src/Altinn.Platform/Altinn.Platform.Storage/Storage/values.dev.yaml 329 | /src/Altinn.Platform/Altinn.Platform.Storage/Storage.Interface/Storage.Interface.xml 330 | /src/Altinn.Platform/Altinn.Platform.Profile/Profile/charts/profile 331 | /src/Altinn.Platform/Altinn.Platform.Profile/Profile/azds.yaml 332 | /src/AltinnCore/UnitTest/coverage.opencover.xml 333 | /src/Altinn.Platform/Altinn.Platform.Authorization/Altinn.Authorization.ABAC/Altinn.Authorization.ABAC.xml 334 | 335 | ## Java 336 | *.class 337 | .mtj.tmp/ 338 | *.jar 339 | *.war 340 | *.ear 341 | hs_err_pid* 342 | 343 | ## Maven 344 | target/ 345 | pom.xml.tag 346 | pom.xml.releaseBackup 347 | pom.xml.versionsBackup 348 | pom.xml.next 349 | release.properties 350 | 351 | ## Eclipse 352 | .metadata 353 | .classpath 354 | .project 355 | .settings/ 356 | bin/ 357 | tmp/ 358 | *.tmp 359 | *.bak 360 | *.swp 361 | *~.nib 362 | local.properties 363 | .loadpath 364 | 365 | ## NetBeans 366 | nbproject/private/ 367 | build/ 368 | nbbuild/ 369 | dist/ 370 | nbdist/ 371 | nbactions.xml 372 | nb-configuration.xml 373 | 374 | ## IntelliJ 375 | .idea 376 | src/Altinn.Apps/AppTemplates/AspNet/App/Properties/launchSettings.json 377 | *.iml 378 | -------------------------------------------------------------------------------- /src/App/config/authorization/policy.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Regel for sluttbruker: Gir rettighetene Les, Skriv, Slett og Start til brukere med rollene Privatperson (PRIV) og Daglig leder (DAGL), for hele tjenesten. 6 | 7 | 8 | 9 | 10 | priv 11 | 12 | 13 | 14 | 15 | 16 | dagl 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | [ORG] 25 | 26 | 27 | 28 | [APP] 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | read 37 | 38 | 39 | 40 | 41 | 42 | write 43 | 44 | 45 | 46 | 47 | 48 | delete 49 | 50 | 51 | 52 | 53 | 54 | instantiate 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | Regel for tjenesteeier: Gir rettighetene Les, Skriv, Start, Bekreft mottatt tjenesteeier til organisasjonen som eier tjenesten ([org]). 63 | 64 | 65 | 66 | 67 | [org] 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | [ORG] 76 | 77 | 78 | 79 | [APP] 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | read 88 | 89 | 90 | 91 | 92 | 93 | write 94 | 95 | 96 | 97 | 98 | 99 | instantiate 100 | 101 | 102 | 103 | 104 | 105 | complete 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 2 116 | 117 | 118 | 119 | 120 | 3 121 | 122 | 123 | 124 | --------------------------------------------------------------------------------