{"id":21365062,"url":"https://github.com/altinn/altinn-broker","last_synced_at":"2025-10-07T23:57:16.783Z","repository":{"id":73736279,"uuid":"587272240","full_name":"Altinn/altinn-broker","owner":"Altinn","description":"Formidlingstjenesten","archived":false,"fork":false,"pushed_at":"2024-10-29T09:24:50.000Z","size":3372,"stargazers_count":5,"open_issues_count":98,"forks_count":0,"subscribers_count":16,"default_branch":"main","last_synced_at":"2024-10-29T11:42:04.609Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Altinn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-10T11:15:01.000Z","updated_at":"2024-10-28T13:05:40.000Z","dependencies_parsed_at":"2023-12-20T12:48:32.559Z","dependency_job_id":"d6494d70-3c71-479a-a8aa-5567a21cbd06","html_url":"https://github.com/Altinn/altinn-broker","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Altinn%2Faltinn-broker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Altinn%2Faltinn-broker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Altinn%2Faltinn-broker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Altinn%2Faltinn-broker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Altinn","download_url":"https://codeload.github.com/Altinn/altinn-broker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225855965,"owners_count":17534967,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-22T07:09:18.545Z","updated_at":"2025-10-07T23:57:11.751Z","avatar_url":"https://github.com/Altinn.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Altinn Broker (\"Formidlingstjenesten\")\n\nAltinn Broker is a Managed File Transfer (MFT) service for secure file transfer between organizations in Norway. \n\n[![CI/CD](https://github.com/Altinn/altinn-broker/actions/workflows/ci-cd.yaml/badge.svg)](https://github.com/Altinn/altinn-broker/actions/workflows/ci-cd.yaml)\n\n## Getting started\n\nAltinn Broker is currently available in Altinn's staging environment at https://platform.tt02.altinn.no. In order to get started integrating to the API, follow our [guide on getting started](https://docs.altinn.studio/broker/getting-started/) and implement according to our [Swagger specification](https://docs.altinn.studio/api/broker/spec/).\n\n## Postman\n\n\u003ca id=\"postman\"\u003e\u003c/a\u003e\n\nExample requests using postman can be found in [altinn-broker-postman-collection.json](/altinn-broker-postman-collection.json). In order to use it, you need to [register a Maskinporten integration](https://sjolvbetjening.test.samarbeid.digdir.no/auth/login) with the scope \"altinn:testtools/tokengenerator/enterprise\" and use it to fill out the Postman variables \"client_id\", \"client_kid\" and \"client_jwk\". Also set the variable \"serviceowner_orgnumber\". After that, run all the requests in the folder Authenticator in order. This will authenticate you to to run all the other requests in the collection.\n\nThe first time you start testing in an environment, you need to register a service owner in Broker so that we can provision the necessary storage resources for you. Use the \"Register Service Owner\" request in the Postman collection to do this. Make sure you have run the Authenticator/\"Authenticate as service owner (tjeneste-eier)\" request first. \n\nFinally, you need to register a resource in the Resource Registry. First set the Postman variable resource_id to some unique ID. You can then use the requests in the Resource Registry folder with [the test policy](/tests/Altinn.Broker.Tests/Data/BasePolicy.xml) to create and manage the resource. As with registering a service owner, you need to have authenticated as a service owner to make these requests.\n\n## Local Development\n\nThe start.ps1 script runs all neccassary commands to run the project. If you want to run the commands seperate, you can follow the steps below: \n\nThe services required to support local development are run using docker compose:\n```docker compose up -d```\n\nTo support features like hot reload etc, the app itself is run directly. Either in IDE like Visual Studio or by running:\n```dotnet watch --project ./src/Altinn.Broker.API/Altinn.Broker.API.csproj```\n\nInstalling Dotnet 8.0 is a pre-requisite.\n\n### Azurite\n\nWhen running tests or when running locally, we use the Azurite storage emulator to emulate an Azure Storage account locally. You can use Azure Storage Explorer to inspect the blob contents.\n\n### Migrations\n\nThe solution uses Flyway to run migrations. The migration scripts can be found in /src/Altinn.Broker.Persistence/Migrations. Script naming must follow the convention \"V${four-digit-version-number}__${name}\".\nIf you need to re-initialize the database during local development, you can delete the database container and re-run docker compose.\n\nWhen running locally for development, you can use any Maskinporten token. It is not validated.\n\n### Formatting\n\nFormatting of the code base is handled by Dotnet format. [See how to configure it to format-on-save in Visual Studio here.](https://learn.microsoft.com/en-us/community/content/how-to-enforce-dotnet-format-using-editorconfig-github-actions#3---formatting-your-code-locally)\n\n## Deploy\n\nThe solution uses Github actions to deploy. When a branch is merged to main, the [CI/CD workflow](https://github.com/Altinn/altinn-broker/actions/workflows/ci-cd.yaml) will deploy it to the internal test environment (https://altinn-dev-api.azure-api.net) where the developer can test it. They then have to return to the workflow and approve it for further deployment to staging and production.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faltinn%2Faltinn-broker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faltinn%2Faltinn-broker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faltinn%2Faltinn-broker/lists"}