-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Create Dialogporten Serviceowner client library #1513
Conversation
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Note Reviews pausedUse the following commands to manage reviews:
📝 WalkthroughWalkthroughThis pull request updates several CI/CD GitHub workflows, enhancing job definitions with new publishing steps and refined secret handling. The solution and project files are revised to replace integration tests with unit tests and add new projects. Additionally, new sample application code, configuration files, and documentation for a Web API client have been added. Extra enhancements include a token verifier class, dependency injection extension methods, updated Swagger configurations, a new refitter configuration, and minor namespace changes in tests. Changes
Suggested reviewers
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
src/Digdir.Library.Dialogporten.WebApiClient/Digdir.Library.Dialogporten.WebApiClient.csproj
Outdated
Show resolved
Hide resolved
b859eb3
to
d33461f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🔭 Outside diff range comments (1)
docs/schema/V1/swagger.verified.json (1)
1-7070
: API Specification Completeness IssuesAfter reviewing the repository results and the swagger.verified.json, we found that:
- CORS Configuration: No explicit API-level CORS configuration is documented in the OpenAPI spec. The only CORS-like configuration appeared in a non-API file (local-otel-configuration/otel-collector-config.yaml), which is unrelated to the API endpoints.
- Rate Limiting: Searches revealed no files or code indicative of rate limiting configurations (e.g. via RateLimit, ThrottleAttribute, or IpRateLimiting), and the spec itself does not document any rate limiting headers.
- Pagination Headers Documentation: While the codebase includes pagination logic (PaginatedList and related classes), the OpenAPI spec lacks dedicated documentation on pagination headers (such as those for continuation tokens or related metadata).
- API Status Endpoint: There is no documented API status endpoint in the specification.
Based on this evidence, the API specification appears to be missing these common elements.
🔗 Analysis chain
Verify API specification completeness.
The specification appears to be missing some common OpenAPI elements:
- CORS configuration
- Rate limiting headers
- Pagination headers documentation
- API status endpoint
Let's check for these elements in the codebase:
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Search for CORS configuration echo "Searching for CORS configuration..." rg -l "cors|UseCors|AddCors" # Search for rate limiting configuration echo "Searching for rate limiting configuration..." rg -l "RateLimit|ThrottleAttribute|IpRateLimiting" # Search for pagination implementation echo "Searching for pagination implementation..." rg -l "PaginatedList|IPagedList|PagedResult"Length of output: 1684
♻️ Duplicate comments (2)
.github/workflows/ci-cd-staging.yml (1)
86-94
:⚠️ Potential issueSecret Name Mismatch in "publish-sdk-to-nuget" Job:
The job is provisioned withNUGET_API_TEST_KEY
while the reusable workflow expectsNUGET_API_KEY
. Please update the secret name to ensure the correct key is passed.- NUGET_API_KEY: ${{ secrets.NUGET_API_TEST_KEY }} + NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}.github/workflows/ci-cd-main.yml (1)
107-115
:⚠️ Potential issueSecret Name Mismatch in "publish-sdk-to-nuget" Job:
As in the staging workflow, the job here is usingNUGET_API_TEST_KEY
while the called reusable workflow expectsNUGET_API_KEY
. Please update the secret reference accordingly.- NUGET_API_KEY: ${{ secrets.NUGET_API_TEST_KEY }} + NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
🧹 Nitpick comments (8)
.github/workflows/ci-cd-staging.yml (2)
92-92
: Improve Project File Path Resolution:
Using an inline shell command in thepath
parameter (i.e.$(find . -name '*Digdir.Library.Dialogporten.WebApiClient.csproj' -printf "%p" -quit)
) may lead to cross-platform or maintenance issues. Consider setting the project file path in a dedicated step (or using a predefined static path) for better robustness.
95-95
: Remove Trailing Whitespace:
Trailing spaces have been detected on this line. Please remove them to conform with YAML linting practices.🧰 Tools
🪛 YAMLlint (1.35.1)
[error] 95-95: trailing spaces
(trailing-spaces)
.github/workflows/ci-cd-main.yml (2)
113-113
: Improve Project File Path Resolution:
The inline shell command used in thepath
parameter can be fragile on non-Unix runners. Consider moving this resolution to a dedicated step or using a fixed/predefined path for better compatibility and maintainability.
116-116
: Remove Trailing Whitespace:
Trailing spaces have been detected on this line. Removing them will help ensure compliance with YAML formatting standards.🧰 Tools
🪛 YAMLlint (1.35.1)
[error] 116-116: trailing spaces
(trailing-spaces)
docs/schema/V1/swagger.verified.json (4)
4736-4739
: Enhance API metadata for better documentation.The API metadata is minimal. Consider adding:
- A detailed description of the API's purpose and functionality
- Contact information for API support
- Terms of service URL
- License information
- External documentation links
Apply this diff to enhance the API metadata:
"info": { "title": "Dialogporten", - "version": "v1" + "version": "v1", + "description": "Dialogporten API provides a standardized way to manage and track dialogs between service owners and end users in Altinn.", + "contact": { + "name": "Dialogporten Support", + "url": "https://www.altinn.no/dialogporten/support", + "email": "[email protected]" + }, + "termsOfService": "https://www.altinn.no/dialogporten/terms", + "license": { + "name": "MIT", + "url": "https://opensource.org/licenses/MIT" + } }
4727-4734
: Improve security scheme documentation.The JWT Bearer authentication scheme description is generic. Consider enhancing it with:
- Required scopes for different operations
- Token format requirements
- Token acquisition process
Apply this diff to improve the security scheme documentation:
"securitySchemes": { "JWTBearerAuth": { "bearerFormat": "JWT", - "description": "Enter a JWT token to authorize the requests...", + "description": "Use a Maskinporten-issued JWT token to authorize requests. Required scopes:\n- digdir:dialogporten: For end-user operations\n- digdir:dialogporten.serviceprovider: For service owner operations\n- digdir:dialogporten.serviceprovider.search: For service owner search operations\n- altinn:system/notifications.condition.check: For notification condition checks\n\nToken must be obtained from Maskinporten using valid credentials. See https://samarbeid.digdir.no/maskinporten/maskinporten/25 for details.", "scheme": "bearer", "type": "http" } }
2-3
: Consider adding API versioning information in components.The OpenAPI specification uses components without version prefixes, which could make future API versioning more challenging.
Consider prefixing component schemas with version information to better support API versioning:
"components": { "schemas": { - "Actors_ActorType": { + "V1_Actors_ActorType": { // ... schema definition ... }, // ... other schemas ... } }
4742-7064
: Enhance API paths organization and documentation.The API paths section could benefit from:
- Grouping related endpoints using tags
- Consistent response codes across similar operations
- More detailed operation descriptions
- Request/response examples
Consider adding operation examples and enhancing descriptions. For example:
"/api/v1/serviceowner/dialogs": { "post": { "description": "The dialog is created with the given configuration. For more information see the documentation (link TBD).", + "x-code-samples": [ + { + "lang": "curl", + "source": "curl -X POST 'https://api.dialogporten.no/api/v1/serviceowner/dialogs' \\\n -H 'Authorization: Bearer <token>' \\\n -H 'Content-Type: application/json' \\\n -d '{\"dto\":{\"content\":{\"title\":\"Test Dialog\"},\"party\":\"urn:altinn:organization:identifier-no:123456789\"}}'" + } + ], // ... rest of the operation definition ... } }
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
.github/workflows/ci-cd-main.yml
(2 hunks).github/workflows/ci-cd-staging.yml
(1 hunks)docs/schema/V1/swagger.verified.json
(1 hunks)src/Digdir.Domain.Dialogporten.WebApi/Digdir.Domain.Dialogporten.WebApi.csproj
(2 hunks)src/Digdir.Library.Dialogporten.WebApiClient/Digdir.Library.Dialogporten.WebApiClient.csproj
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- src/Digdir.Library.Dialogporten.WebApiClient/Digdir.Library.Dialogporten.WebApiClient.csproj
- src/Digdir.Domain.Dialogporten.WebApi/Digdir.Domain.Dialogporten.WebApi.csproj
🧰 Additional context used
🪛 YAMLlint (1.35.1)
.github/workflows/ci-cd-main.yml
[error] 116-116: trailing spaces
(trailing-spaces)
.github/workflows/ci-cd-staging.yml
[error] 95-95: trailing spaces
(trailing-spaces)
🔇 Additional comments (2)
.github/workflows/ci-cd-main.yml (1)
35-40
: Verify New Secrets in "build-and-test" Job:
New secrets related toDIALOGPORTEN_MASKINPORTEN
andED25519KEYS
have been added. Please double-check that these values are correctly configured in the CI/CD environment and remain securely managed.docs/schema/V1/swagger.verified.json (1)
4740-4741
: Verify OpenAPI version compatibility.The specification uses OpenAPI 3.0.0, which is an older version. Consider upgrading to OpenAPI 3.1.0 for access to newer features and improvements.
Let's check for any dependencies that might be affected by an OpenAPI version upgrade:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mye bra her! Skal vi ta en huddle og få dette gjennom? 🙂
tests/Digdir.Domain.Dialogporten.WebApi.Unit.Tests/Features/V1/SwaggerSnapshotTests.cs
Show resolved
Hide resolved
...rary.Dialogporten.WebApiClient.Sample/Digdir.Library.Dialogporten.WebApiClient.Sample.csproj
Show resolved
Hide resolved
...rary.Dialogporten.WebApiClient.Sample/Digdir.Library.Dialogporten.WebApiClient.Sample.csproj
Outdated
Show resolved
Hide resolved
src/Digdir.Library.Dialogporten.WebApiClient/Digdir.Library.Dialogporten.WebApiClient.csproj
Outdated
Show resolved
Hide resolved
src/Digdir.Library.Dialogporten.WebApiClient/Services/DialogTokenVerifier.cs
Outdated
Show resolved
Hide resolved
...piClient.Integration.Tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests.csproj
Outdated
Show resolved
Hide resolved
...piClient.Integration.Tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests.csproj
Outdated
Show resolved
Hide resolved
...piClient.Integration.Tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests.csproj
Outdated
Show resolved
Hide resolved
...piClient.Integration.Tests/Digdir.Library.Dialogporten.WebApiClient.Integration.Tests.csproj
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
♻️ Duplicate comments (4)
src/Digdir.Library.Dialogporten.WebApiClient/Config/DialogportenSettings.cs (3)
5-9
:⚠️ Potential issueAdd missing Environment property and proper initialization.
The class is missing the Environment property that's used in ServiceCollectionExtensions.cs. Also, the use of null-forgiving operators without validation could lead to runtime errors.
Apply this diff to add proper initialization and validation:
public class DialogportenSettings { - public string BaseUri { get; set; } = null!; - public MaskinportenSettings Maskinporten { get; set; } = null!; + public string Environment { get; } + public string BaseUri { get; } + public MaskinportenSettings Maskinporten { get; } + + public DialogportenSettings() + { + // Parameterless constructor for configuration binding + } + + public DialogportenSettings(string environment, string baseUri, MaskinportenSettings maskinporten) + { + Environment = environment ?? throw new ArgumentNullException(nameof(environment)); + BaseUri = baseUri ?? throw new ArgumentNullException(nameof(baseUri)); + Maskinporten = maskinporten ?? throw new ArgumentNullException(nameof(maskinporten)); + } }
11-15
:⚠️ Potential issueInitialize Ed25519Keys with required values.
The use of null-forgiving operators without validation could lead to runtime errors.
Apply this diff to add proper initialization and validation:
public record Ed25519Keys { - public Ed25519Key Primary { get; set; } = null!; - public Ed25519Key Secondary { get; set; } = null!; + public Ed25519Key Primary { get; } + public Ed25519Key Secondary { get; } + + public Ed25519Keys() + { + // Parameterless constructor for configuration binding + } + + public Ed25519Keys(Ed25519Key primary, Ed25519Key secondary) + { + Primary = primary ?? throw new ArgumentNullException(nameof(primary)); + Secondary = secondary ?? throw new ArgumentNullException(nameof(secondary)); + } }
17-21
:⚠️ Potential issueAdd validation for Ed25519Key properties.
The use of null-forgiving operators without validation could lead to runtime errors.
Apply this diff to add proper initialization and validation:
public record Ed25519Key { - public string Kid { get; set; } = null!; - public string PublicComponent { get; set; } = null!; + public string Kid { get; } + public string PublicComponent { get; } + + public Ed25519Key() + { + // Parameterless constructor for configuration binding + } + + public Ed25519Key(string kid, string publicComponent) + { + Kid = !string.IsNullOrEmpty(kid) ? kid : throw new ArgumentException("Kid cannot be null or empty", nameof(kid)); + PublicComponent = !string.IsNullOrEmpty(publicComponent) ? publicComponent : throw new ArgumentException("PublicComponent cannot be null or empty", nameof(publicComponent)); + } }src/Digdir.Library.Dialogporten.WebApiClient/Extensions/ServiceCollectionExtensions.cs (1)
19-32
:⚠️ Potential issueAvoid building service provider within service registration methods.
Building service provider within registration methods can lead to memory leaks and duplicate singleton instances.
Apply this diff to fix the issues:
-public static IServiceCollection AddDialogTokenVerifer(this IServiceCollection services) +public static IServiceCollection AddDialogTokenVerifer(this IServiceCollection services, IConfiguration configuration) { - var provider = services.BuildServiceProvider(); - var dialogportenSettings = provider.GetRequiredService<IConfiguration>() + var dialogportenSettings = configuration .GetSection("Ed25519Keys") - .Get<Ed25519Keys>(); + .Get<Ed25519Keys>() ?? throw new InvalidOperationException("Ed25519Keys configuration is missing"); var keyPair = dialogportenSettings!.Primary; var kid = keyPair.Kid; var publicKey = PublicKey.Import(SignatureAlgorithm.Ed25519, Base64Url.DecodeFromChars(keyPair.PublicComponent), KeyBlobFormat.RawPublicKey); services.AddSingleton(new DialogTokenVerifier(kid, publicKey)); return services; }
🧹 Nitpick comments (4)
.github/workflows/workflow-publish-nuget.yml (1)
42-44
: Improve NuGet push command formatting and remove trailing whitespace.
Please update the NuGet push command by explicitly quoting the file path and API key, and remove any unintended trailing whitespace. For example, you can apply the following diff:- - name: Push to NuGet - run: dotnet nuget push *.nupkg --source "${{ inputs.source }}" --api-key ${{secrets.NUGET_API_KEY}} + - name: Push to NuGet + run: dotnet nuget push "./*.nupkg" --source "${{ inputs.source }}" --api-key "${{ secrets.NUGET_API_KEY }}"🧰 Tools
🪛 YAMLlint (1.35.1)
[error] 42-42: trailing spaces
(trailing-spaces)
[error] 43-43: trailing spaces
(trailing-spaces)
.github/workflows/ci-cd-pull-request.yml (2)
21-21
: Remove unnecessary trailing whitespace.
There is extraneous trailing whitespace on this line; please remove it to ensure a clean YAML file.🧰 Tools
🪛 YAMLlint (1.35.1)
[error] 21-21: trailing spaces
(trailing-spaces)
37-37
: Clean up trailing whitespace.
Please remove the extra trailing space on this line to improve file consistency.🧰 Tools
🪛 YAMLlint (1.35.1)
[error] 37-37: trailing spaces
(trailing-spaces)
src/Digdir.Library.Dialogporten.WebApiClient/AssemblyMarker.cs (1)
5-9
: Fix formatting issues.Remove extra blank line between the class declaration and the field.
Apply this diff to fix formatting:
internal sealed class AssemblyMarker { - public static readonly Assembly Assembly = typeof(AssemblyMarker).Assembly; }
🧰 Tools
🪛 GitHub Check: build / build-and-test
[failure] 7-7:
Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)
[failure] 7-7:
Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (11)
.github/workflows/ci-cd-main.yml
(1 hunks).github/workflows/ci-cd-pull-request.yml
(3 hunks).github/workflows/ci-cd-staging.yml
(1 hunks).github/workflows/workflow-build-and-test.yml
(1 hunks).github/workflows/workflow-publish-nuget.yml
(1 hunks)src/Digdir.Domain.Dialogporten.WebApi/Digdir.Domain.Dialogporten.WebApi.csproj
(2 hunks)src/Digdir.Library.Dialogporten.WebApiClient.Sample/Digdir.Library.Dialogporten.WebApiClient.Sample.csproj
(1 hunks)src/Digdir.Library.Dialogporten.WebApiClient/AssemblyMarker.cs
(1 hunks)src/Digdir.Library.Dialogporten.WebApiClient/Config/DialogportenSettings.cs
(1 hunks)src/Digdir.Library.Dialogporten.WebApiClient/Digdir.Library.Dialogporten.WebApiClient.csproj
(1 hunks)src/Digdir.Library.Dialogporten.WebApiClient/Extensions/ServiceCollectionExtensions.cs
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (4)
- .github/workflows/workflow-build-and-test.yml
- src/Digdir.Library.Dialogporten.WebApiClient.Sample/Digdir.Library.Dialogporten.WebApiClient.Sample.csproj
- src/Digdir.Library.Dialogporten.WebApiClient/Digdir.Library.Dialogporten.WebApiClient.csproj
- src/Digdir.Domain.Dialogporten.WebApi/Digdir.Domain.Dialogporten.WebApi.csproj
🧰 Additional context used
🪛 YAMLlint (1.35.1)
.github/workflows/workflow-publish-nuget.yml
[error] 42-42: trailing spaces
(trailing-spaces)
[error] 43-43: trailing spaces
(trailing-spaces)
.github/workflows/ci-cd-main.yml
[error] 110-110: trailing spaces
(trailing-spaces)
.github/workflows/ci-cd-staging.yml
[error] 96-96: trailing spaces
(trailing-spaces)
.github/workflows/ci-cd-pull-request.yml
[error] 21-21: trailing spaces
(trailing-spaces)
[error] 37-37: trailing spaces
(trailing-spaces)
🪛 actionlint (1.7.4)
.github/workflows/ci-cd-main.yml
102-102: input "source" is required by "./.github/workflows/workflow-publish-nuget.yml" reusable workflow
(workflow-call)
🪛 GitHub Check: build / build-and-test
src/Digdir.Library.Dialogporten.WebApiClient/Extensions/ServiceCollectionExtensions.cs
[failure] 44-44:
'DialogportenSettings' does not contain a definition for 'Environment' and no accessible extension method 'Environment' accepting a first argument of type 'DialogportenSettings' could be found (are you missing a using directive or an assembly reference?)
[failure] 56-56:
'DialogportenSettings' does not contain a definition for 'Environment' and no accessible extension method 'Environment' accepting a first argument of type 'DialogportenSettings' could be found (are you missing a using directive or an assembly reference?)
[failure] 91-91:
Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)
[failure] 99-99:
Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)
[failure] 44-44:
'DialogportenSettings' does not contain a definition for 'Environment' and no accessible extension method 'Environment' accepting a first argument of type 'DialogportenSettings' could be found (are you missing a using directive or an assembly reference?)
[failure] 56-56:
'DialogportenSettings' does not contain a definition for 'Environment' and no accessible extension method 'Environment' accepting a first argument of type 'DialogportenSettings' could be found (are you missing a using directive or an assembly reference?)
[failure] 91-91:
Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)
[failure] 99-99:
Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)
src/Digdir.Library.Dialogporten.WebApiClient/AssemblyMarker.cs
[failure] 7-7:
Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)
[failure] 7-7:
Fix formatting (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/style-rules/ide0055)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Dry run deploy infrastructure / Deploy to test
🔇 Additional comments (3)
.github/workflows/ci-cd-staging.yml (1)
94-95
:⚠️ Potential issueFix secret name mismatch in the NuGet publishing job.
The reusable workflow expects the secretNUGET_API_KEY
, but it’s currently mapped to${{ secrets.NUGET_API_TEST_KEY }}
. Please update it as follows:- NUGET_API_KEY: ${{ secrets.NUGET_API_TEST_KEY }} + NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}Likely invalid or redundant comment.
.github/workflows/ci-cd-main.yml (2)
107-107
: 🛠️ Refactor suggestion
⚠️ Potential issueReplace shell command with an explicit project path.
Using a shell command to dynamically resolve the project file path may lead to inconsistencies across different runner environments. Please replace it with the explicit file path. For instance:- path: $(find . -name '*Digdir.Library.Dialogporten.WebApiClient.csproj' -printf "%p" -quit) + path: 'src/Digdir.Library.Dialogporten.WebApiClient/Digdir.Library.Dialogporten.WebApiClient.csproj'Likely invalid or redundant comment.
109-110
:⚠️ Potential issueCorrect the NuGet API key secret mapping.
The job currently mapsNUGET_API_KEY
to${{ secrets.NUGET_API_TEST_KEY }}
, which could cause issues if the test key differs from the intended production key. Please update it as shown below:- NUGET_API_KEY: ${{ secrets.NUGET_API_TEST_KEY }} + NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}Likely invalid or redundant comment.
🧰 Tools
🪛 YAMLlint (1.35.1)
[error] 110-110: trailing spaces
(trailing-spaces)
src/Digdir.Library.Dialogporten.WebApiClient/Extensions/ServiceCollectionExtensions.cs
Outdated
Show resolved
Hide resolved
src/Digdir.Library.Dialogporten.WebApiClient/Extensions/ServiceCollectionExtensions.cs
Outdated
Show resolved
Hide resolved
@coderabbitai pause |
✅ Actions performedReviews paused. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- En ny release candidate blir pusha til nuget ved hver skjemaendring i dev
- Skal vi hente public token fra DP well know, eller skal brukere få konfigurere det?
tests/Digdir.Domain.Dialogporten.WebApi.Unit.Tests/Features/V1/SwaggerSnapshotTests.cs
Show resolved
Hide resolved
tests/Digdir.Domain.Dialogporten.WebApi.Unit.Tests/Features/V1/SwaggerSnapshotTests.cs
Outdated
Show resolved
Hide resolved
…/SwaggerSnapshotTests.cs Co-authored-by: Ole Jørgen Skogstad <[email protected]>
Description
Related Issue(s)
Verification
Documentation
docs
-directory, Altinnpedia or a separate linked PR in altinn-studio-docs., if applicable)