From 354baa1b36a3c6fb1fc400784eca4fb955db353f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rune=20T=C3=B8mmer=C3=A5s=20Larsen?= Date: Tue, 13 Dec 2022 10:04:44 +0100 Subject: [PATCH] Adeded route (#9341) --- .../authorization/resources/Appid_119.json | 56 ++++ .../authorization/resources/Appid_120.json | 56 ++++ .../authorization/resources/Appid_122.json | 56 ++++ .../authorization/resources/Appid_123.json | 56 ++++ .../authorization/resources/Appid_124.json | 56 ++++ .../authorization/resources/Appid_125.json | 56 ++++ .../authorization/resources/Appid_126.json | 56 ++++ .../authorization/resources/Appid_127.json | 56 ++++ .../authorization/resources/Appid_128.json | 56 ++++ .../authorization/resources/Appid_129.json | 56 ++++ .../authorization/resources/Appid_130.json | 56 ++++ .../authorization/resources/Appid_132.json | 56 ++++ .../authorization/resources/Appid_133.json | 56 ++++ .../authorization/resources/Appid_134.json | 56 ++++ .../authorization/resources/Appid_136.json | 56 ++++ .../authorization/resources/Appid_137.json | 56 ++++ .../authorization/resources/Appid_138.json | 56 ++++ .../authorization/resources/Appid_139.json | 56 ++++ .../authorization/resources/Appid_142.json | 56 ++++ .../authorization/resources/Appid_144.json | 56 ++++ .../authorization/resources/Appid_145.json | 56 ++++ .../authorization/resources/Appid_147.json | 56 ++++ .../authorization/resources/Appid_148.json | 56 ++++ .../authorization/resources/Appid_150.json | 56 ++++ .../authorization/resources/Appid_153.json | 56 ++++ .../authorization/resources/Appid_154.json | 56 ++++ .../authorization/resources/Appid_155.json | 56 ++++ .../authorization/resources/Appid_164.json | 56 ++++ .../authorization/resources/Appid_168.json | 56 ++++ .../authorization/resources/Appid_178.json | 56 ++++ .../authorization/resources/Appid_179.json | 56 ++++ .../authorization/resources/Appid_180.json | 56 ++++ .../authorization/resources/Appid_181.json | 56 ++++ .../authorization/resources/Appid_182.json | 56 ++++ .../authorization/resources/Appid_184.json | 56 ++++ .../authorization/resources/Appid_185.json | 56 ++++ .../authorization/resources/Appid_191.json | 56 ++++ .../authorization/resources/Appid_192.json | 56 ++++ .../authorization/resources/Appid_193.json | 56 ++++ .../authorization/resources/Appid_196.json | 56 ++++ .../authorization/resources/Appid_197.json | 56 ++++ .../authorization/resources/Appid_198.json | 56 ++++ .../authorization/resources/Appid_199.json | 56 ++++ .../authorization/resources/Appid_200.json | 56 ++++ .../authorization/resources/Appid_201.json | 41 +++ .../authorization/resources/Appid_202.json | 38 +++ .../authorization/resources/Appid_203.json | 56 ++++ .../authorization/resources/Appid_204.json | 38 +++ .../authorization/resources/Appid_205.json | 56 ++++ .../authorization/resources/Appid_206.json | 56 ++++ .../authorization/resources/Appid_207.json | 56 ++++ .../authorization/resources/Appid_208.json | 54 ++++ .../authorization/resources/Appid_209.json | 56 ++++ .../authorization/resources/Appid_210.json | 56 ++++ .../authorization/resources/Appid_211.json | 56 ++++ .../authorization/resources/Appid_212.json | 56 ++++ .../authorization/resources/Appid_213.json | 52 ++++ .../authorization/resources/Appid_214.json | 52 ++++ .../authorization/resources/Appid_215.json | 52 ++++ .../authorization/resources/Appid_216.json | 52 ++++ .../authorization/resources/Appid_217.json | 56 ++++ .../authorization/resources/Appid_218.json | 56 ++++ .../authorization/resources/Appid_219.json | 38 +++ .../authorization/resources/Appid_220.json | 38 +++ .../authorization/resources/Appid_221.json | 38 +++ .../authorization/resources/Appid_222.json | 38 +++ .../authorization/resources/Appid_223.json | 38 +++ .../resources/altinn_access_management.json | 26 ++ .../nav_tiltakAvtaleOmArbeidstrening.json | 46 ++++ loadbalancer/502Accessmanagement.html | 15 ++ loadbalancer/nginx.conf | 12 + .../ResourceRegistry/ResourceController.cs | 250 ++++++++++++++++++ .../ResourceRegistry/StringExtensions.cs | 66 +++++ .../ResourceRegistry/CompetentAuthority.cs | 24 ++ src/Models/ResourceRegistry/Keyword.cs | 24 ++ .../ResourceRegistry/ReferenceSource.cs | 25 ++ src/Models/ResourceRegistry/ReferenceType.cs | 22 ++ .../ResourceRegistry/ResourceReference.cs | 28 ++ src/Models/ResourceRegistry/ResourceSearch.cs | 45 ++++ src/Models/ResourceRegistry/ResourceType.cs | 25 ++ .../ResourceRegistry/ServiceResource.cs | 100 +++++++ .../ResourceRegistry/IPolicyRepository.cs | 48 ++++ .../ResourceRegistry/IResourceRegistry.cs | 66 +++++ .../IResourceRegistryRepository.cs | 47 ++++ .../ResourceRegistry/PolicyRepositoryMock.cs | 48 ++++ .../RegisterResourceRepositoryMock.cs | 97 +++++++ .../ResourceRegistryService.cs | 76 ++++++ src/Startup.cs | 5 + 88 files changed, 4688 insertions(+) create mode 100644 TestData/authorization/resources/Appid_119.json create mode 100644 TestData/authorization/resources/Appid_120.json create mode 100644 TestData/authorization/resources/Appid_122.json create mode 100644 TestData/authorization/resources/Appid_123.json create mode 100644 TestData/authorization/resources/Appid_124.json create mode 100644 TestData/authorization/resources/Appid_125.json create mode 100644 TestData/authorization/resources/Appid_126.json create mode 100644 TestData/authorization/resources/Appid_127.json create mode 100644 TestData/authorization/resources/Appid_128.json create mode 100644 TestData/authorization/resources/Appid_129.json create mode 100644 TestData/authorization/resources/Appid_130.json create mode 100644 TestData/authorization/resources/Appid_132.json create mode 100644 TestData/authorization/resources/Appid_133.json create mode 100644 TestData/authorization/resources/Appid_134.json create mode 100644 TestData/authorization/resources/Appid_136.json create mode 100644 TestData/authorization/resources/Appid_137.json create mode 100644 TestData/authorization/resources/Appid_138.json create mode 100644 TestData/authorization/resources/Appid_139.json create mode 100644 TestData/authorization/resources/Appid_142.json create mode 100644 TestData/authorization/resources/Appid_144.json create mode 100644 TestData/authorization/resources/Appid_145.json create mode 100644 TestData/authorization/resources/Appid_147.json create mode 100644 TestData/authorization/resources/Appid_148.json create mode 100644 TestData/authorization/resources/Appid_150.json create mode 100644 TestData/authorization/resources/Appid_153.json create mode 100644 TestData/authorization/resources/Appid_154.json create mode 100644 TestData/authorization/resources/Appid_155.json create mode 100644 TestData/authorization/resources/Appid_164.json create mode 100644 TestData/authorization/resources/Appid_168.json create mode 100644 TestData/authorization/resources/Appid_178.json create mode 100644 TestData/authorization/resources/Appid_179.json create mode 100644 TestData/authorization/resources/Appid_180.json create mode 100644 TestData/authorization/resources/Appid_181.json create mode 100644 TestData/authorization/resources/Appid_182.json create mode 100644 TestData/authorization/resources/Appid_184.json create mode 100644 TestData/authorization/resources/Appid_185.json create mode 100644 TestData/authorization/resources/Appid_191.json create mode 100644 TestData/authorization/resources/Appid_192.json create mode 100644 TestData/authorization/resources/Appid_193.json create mode 100644 TestData/authorization/resources/Appid_196.json create mode 100644 TestData/authorization/resources/Appid_197.json create mode 100644 TestData/authorization/resources/Appid_198.json create mode 100644 TestData/authorization/resources/Appid_199.json create mode 100644 TestData/authorization/resources/Appid_200.json create mode 100644 TestData/authorization/resources/Appid_201.json create mode 100644 TestData/authorization/resources/Appid_202.json create mode 100644 TestData/authorization/resources/Appid_203.json create mode 100644 TestData/authorization/resources/Appid_204.json create mode 100644 TestData/authorization/resources/Appid_205.json create mode 100644 TestData/authorization/resources/Appid_206.json create mode 100644 TestData/authorization/resources/Appid_207.json create mode 100644 TestData/authorization/resources/Appid_208.json create mode 100644 TestData/authorization/resources/Appid_209.json create mode 100644 TestData/authorization/resources/Appid_210.json create mode 100644 TestData/authorization/resources/Appid_211.json create mode 100644 TestData/authorization/resources/Appid_212.json create mode 100644 TestData/authorization/resources/Appid_213.json create mode 100644 TestData/authorization/resources/Appid_214.json create mode 100644 TestData/authorization/resources/Appid_215.json create mode 100644 TestData/authorization/resources/Appid_216.json create mode 100644 TestData/authorization/resources/Appid_217.json create mode 100644 TestData/authorization/resources/Appid_218.json create mode 100644 TestData/authorization/resources/Appid_219.json create mode 100644 TestData/authorization/resources/Appid_220.json create mode 100644 TestData/authorization/resources/Appid_221.json create mode 100644 TestData/authorization/resources/Appid_222.json create mode 100644 TestData/authorization/resources/Appid_223.json create mode 100644 TestData/authorization/resources/altinn_access_management.json create mode 100644 TestData/authorization/resources/nav_tiltakAvtaleOmArbeidstrening.json create mode 100644 loadbalancer/502Accessmanagement.html create mode 100644 src/Controllers/ResourceRegistry/ResourceController.cs create mode 100644 src/Extensions/ResourceRegistry/StringExtensions.cs create mode 100644 src/Models/ResourceRegistry/CompetentAuthority.cs create mode 100644 src/Models/ResourceRegistry/Keyword.cs create mode 100644 src/Models/ResourceRegistry/ReferenceSource.cs create mode 100644 src/Models/ResourceRegistry/ReferenceType.cs create mode 100644 src/Models/ResourceRegistry/ResourceReference.cs create mode 100644 src/Models/ResourceRegistry/ResourceSearch.cs create mode 100644 src/Models/ResourceRegistry/ResourceType.cs create mode 100644 src/Models/ResourceRegistry/ServiceResource.cs create mode 100644 src/Services/ResourceRegistry/IPolicyRepository.cs create mode 100644 src/Services/ResourceRegistry/IResourceRegistry.cs create mode 100644 src/Services/ResourceRegistry/IResourceRegistryRepository.cs create mode 100644 src/Services/ResourceRegistry/PolicyRepositoryMock.cs create mode 100644 src/Services/ResourceRegistry/RegisterResourceRepositoryMock.cs create mode 100644 src/Services/ResourceRegistry/ResourceRegistryService.cs diff --git a/TestData/authorization/resources/Appid_119.json b/TestData/authorization/resources/Appid_119.json new file mode 100644 index 00000000..1d85c7d2 --- /dev/null +++ b/TestData/authorization/resources/Appid_119.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-03-04T18:04:27.27", + "identifier": "appid-119", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "8f08210a-d792-48f5-9e27-0f029e41111e", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:119", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_120.json b/TestData/authorization/resources/Appid_120.json new file mode 100644 index 00000000..80074640 --- /dev/null +++ b/TestData/authorization/resources/Appid_120.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-03-04T19:07:46.143", + "identifier": "appid-120", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "a6574ca8-5836-46b0-91f0-8ebb0ff214cf", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:120", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_122.json b/TestData/authorization/resources/Appid_122.json new file mode 100644 index 00000000..3a3dd852 --- /dev/null +++ b/TestData/authorization/resources/Appid_122.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-03-06T09:36:15.443", + "identifier": "appid-122", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "da7650a5-d893-404a-9bfe-28d0904fe896", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:122", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_123.json b/TestData/authorization/resources/Appid_123.json new file mode 100644 index 00000000..909c6719 --- /dev/null +++ b/TestData/authorization/resources/Appid_123.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-03-06T09:41:15.817", + "identifier": "appid-123", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "3cb27d7b-9e2c-475c-ba91-e1fc359bc717", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:123", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_124.json b/TestData/authorization/resources/Appid_124.json new file mode 100644 index 00000000..71e9ffb5 --- /dev/null +++ b/TestData/authorization/resources/Appid_124.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-03-25T15:17:18.487", + "identifier": "appid-124", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "fb1bc117-333d-4dea-9400-6bd3e1ce07dd", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:124", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_125.json b/TestData/authorization/resources/Appid_125.json new file mode 100644 index 00000000..6098f6cf --- /dev/null +++ b/TestData/authorization/resources/Appid_125.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-03-25T15:20:40.17", + "identifier": "appid-125", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "c8e7b227-3d62-4682-81a2-f2865f0eb91f", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:125", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_126.json b/TestData/authorization/resources/Appid_126.json new file mode 100644 index 00000000..0710b4e3 --- /dev/null +++ b/TestData/authorization/resources/Appid_126.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-05-13T11:10:52.203", + "identifier": "appid-126", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "4f9b0f81-74a6-4b76-8ce5-0e1fe153c872", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:126", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_127.json b/TestData/authorization/resources/Appid_127.json new file mode 100644 index 00000000..64293210 --- /dev/null +++ b/TestData/authorization/resources/Appid_127.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-05-19T11:13:36.8", + "identifier": "appid-127", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "38da61a2-4cd8-4dac-9d6b-8205f91661c4", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:127", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_128.json b/TestData/authorization/resources/Appid_128.json new file mode 100644 index 00000000..e45c37f2 --- /dev/null +++ b/TestData/authorization/resources/Appid_128.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-05-19T11:18:52.84", + "identifier": "appid-128", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "74f5dcb3-eee0-4a3b-9499-93fc2148a513", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:128", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_129.json b/TestData/authorization/resources/Appid_129.json new file mode 100644 index 00000000..0d3aeeb4 --- /dev/null +++ b/TestData/authorization/resources/Appid_129.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-05-20T11:49:19.26", + "identifier": "appid-129", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "d0fc231c-aaa3-4e6a-bece-4e283e6e2f6f", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:129", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_130.json b/TestData/authorization/resources/Appid_130.json new file mode 100644 index 00000000..14de58b9 --- /dev/null +++ b/TestData/authorization/resources/Appid_130.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-05-20T12:32:41.78", + "identifier": "appid-130", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "3fc8a856-d5b1-4861-ace0-6b3fd5ffd916", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:130", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_132.json b/TestData/authorization/resources/Appid_132.json new file mode 100644 index 00000000..b3a05070 --- /dev/null +++ b/TestData/authorization/resources/Appid_132.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-05-28T23:38:06.337", + "identifier": "appid-132", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "923bdaaf-0a5e-4b63-908b-4a5ecf75e37b", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:132", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_133.json b/TestData/authorization/resources/Appid_133.json new file mode 100644 index 00000000..3eaa938d --- /dev/null +++ b/TestData/authorization/resources/Appid_133.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-05-28T23:39:09.01", + "identifier": "appid-133", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "f7670967-0428-4b90-86a2-2ac637d0ec2a", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:133", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_134.json b/TestData/authorization/resources/Appid_134.json new file mode 100644 index 00000000..0b1de5d2 --- /dev/null +++ b/TestData/authorization/resources/Appid_134.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-05-28T23:40:31.413", + "identifier": "appid-134", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "d812fd77-7a43-4332-a782-375b37aff1eb", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:134", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_136.json b/TestData/authorization/resources/Appid_136.json new file mode 100644 index 00000000..c0c70931 --- /dev/null +++ b/TestData/authorization/resources/Appid_136.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-05-29T09:50:19.333", + "identifier": "appid-136", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "911f9e93-1541-429d-a8c6-a06f9a52d827", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:136", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "MAT", + "organization": "985399077" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_137.json b/TestData/authorization/resources/Appid_137.json new file mode 100644 index 00000000..d1d86b5b --- /dev/null +++ b/TestData/authorization/resources/Appid_137.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-06-05T14:05:14.83", + "identifier": "appid-137", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "938a1d17-5015-4a17-bd20-575bf5cd1102", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:137", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_138.json b/TestData/authorization/resources/Appid_138.json new file mode 100644 index 00000000..6596b80c --- /dev/null +++ b/TestData/authorization/resources/Appid_138.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-06-17T12:46:18.437", + "identifier": "appid-138", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "b4c2ac55-fa7d-44d1-8c95-e64d47206a57", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:138", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SLK", + "organization": "960885406" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_139.json b/TestData/authorization/resources/Appid_139.json new file mode 100644 index 00000000..f2dabdc5 --- /dev/null +++ b/TestData/authorization/resources/Appid_139.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Test-API for a demo", + "nb": "Test-API for demo", + "nn": "Test-API for ein demo" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-08-27T08:15:12.673", + "identifier": "appid-139", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "This service grants full access to a test API", + "nb": "Denne tjenesten gir full tilgang til et test-API", + "nn": "Denne tenesta gir full tilgang til eit test-API" + }, + "resourceReferences": [ + { + "reference": "0f184d85-afa3-4dcf-916b-5a8f85a12c95", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:ettellerannetscope.read", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:ettellerannetscope.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:139", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_142.json b/TestData/authorization/resources/Appid_142.json new file mode 100644 index 00000000..333d8aad --- /dev/null +++ b/TestData/authorization/resources/Appid_142.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-09-11T07:32:49.723", + "identifier": "appid-142", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "1f6952b3-84ef-4eec-b742-846d986691e3", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:142", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_144.json b/TestData/authorization/resources/Appid_144.json new file mode 100644 index 00000000..cd78ea3f --- /dev/null +++ b/TestData/authorization/resources/Appid_144.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "JK's Security Level 3 Scheme", + "nb": "JK's SikkerhetsnivÃ¥ 3 Scheme", + "nn": "JK's SikkringsnivÃ¥ 3 Scheme" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-09-22T11:46:26.11", + "identifier": "appid-144", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Example of a DelegationScheme with security level 3 requirement", + "nb": "Eksempel pÃ¥ DelegationScheme med sikkerhetsnivÃ¥ 3 krav", + "nn": "Eit døme pÃ¥ DelegationScheme med sikkringsnivÃ¥ 3 krav" + }, + "resourceReferences": [ + { + "reference": "5f03a306-8a01-47b5-8219-8014843ce691", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/seclvl3.read", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/seclvl3.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:144", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_145.json b/TestData/authorization/resources/Appid_145.json new file mode 100644 index 00000000..c8b1b932 --- /dev/null +++ b/TestData/authorization/resources/Appid_145.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "JK's Security Level 2 Scheme", + "nb": "JK's SikkerhetsnivÃ¥ 2 Scheme", + "nn": "JK's SikkringsnivÃ¥ 2 Scheme" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-09-22T11:54:03.32", + "identifier": "appid-145", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Example of a DelegationScheme with security level 2 requirement", + "nb": "Eksempel pÃ¥ DelegationScheme med sikkerhetsnivÃ¥ 2 krav", + "nn": "Eit døme pÃ¥ DelegationScheme med sikkringsnivÃ¥ 2 krav" + }, + "resourceReferences": [ + { + "reference": "6685c771-459a-43ac-acb0-27a46d8f32d1", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/seclvl2.read", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/seclvl2.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:145", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_147.json b/TestData/authorization/resources/Appid_147.json new file mode 100644 index 00000000..487c6f9c --- /dev/null +++ b/TestData/authorization/resources/Appid_147.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-09-29T12:32:40.68", + "identifier": "appid-147", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "08d6bac5-e581-4e34-b33e-1f3e2994159a", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:maskinporten/delegationschemes.read", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:maskinporten/delegationschemes.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:147", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_148.json b/TestData/authorization/resources/Appid_148.json new file mode 100644 index 00000000..549efffd --- /dev/null +++ b/TestData/authorization/resources/Appid_148.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-09-30T10:57:40.96", + "identifier": "appid-148", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "6d91d828-5554-48f9-8875-3a5cb1cf562e", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:maskinporten/delegationschemes.read", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:maskinporten/delegationschemes.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:148", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_150.json b/TestData/authorization/resources/Appid_150.json new file mode 100644 index 00000000..ce49e7be --- /dev/null +++ b/TestData/authorization/resources/Appid_150.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-11-23T08:36:19.6", + "identifier": "appid-150", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "77b6ba03-b0e0-4b38-8477-0928f4a2131c", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:maskinporten/delegationschemes.read", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:maskinporten/delegationschemes.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:150", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "DIGDIR", + "organization": "991825827" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_153.json b/TestData/authorization/resources/Appid_153.json new file mode 100644 index 00000000..20455dd9 --- /dev/null +++ b/TestData/authorization/resources/Appid_153.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2020-12-16T11:19:44.693", + "identifier": "appid-153", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "4ee353be-b998-4e86-8366-99a9c8ece1bc", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:153", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_154.json b/TestData/authorization/resources/Appid_154.json new file mode 100644 index 00000000..b1607805 --- /dev/null +++ b/TestData/authorization/resources/Appid_154.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-01-10T22:55:28.887", + "identifier": "appid-154", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "630031e8-8074-4e85-b39d-b5ec523354fa", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:154", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "NAV", + "organization": "889640782" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_155.json b/TestData/authorization/resources/Appid_155.json new file mode 100644 index 00000000..482e609e --- /dev/null +++ b/TestData/authorization/resources/Appid_155.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-01-12T20:47:54.047", + "identifier": "appid-155", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "7a44f919-f4a6-4ac1-8caf-0d364e8f355f", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:155", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_164.json b/TestData/authorization/resources/Appid_164.json new file mode 100644 index 00000000..ad4eb555 --- /dev/null +++ b/TestData/authorization/resources/Appid_164.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-01-15T09:06:22.017", + "identifier": "appid-164", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "5fec884c-c232-456f-8b2f-9e54c0d1efb3", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:164", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_168.json b/TestData/authorization/resources/Appid_168.json new file mode 100644 index 00000000..09088b84 --- /dev/null +++ b/TestData/authorization/resources/Appid_168.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-01-28T18:05:06.683", + "identifier": "appid-168", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "30168308-9f93-460f-868a-0edbb921ea8f", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:maskinporten/delegationschemes.read", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:maskinporten/delegationschemes.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:168", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_178.json b/TestData/authorization/resources/Appid_178.json new file mode 100644 index 00000000..9cafa317 --- /dev/null +++ b/TestData/authorization/resources/Appid_178.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-02-15T19:51:35.823", + "identifier": "appid-178", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "04e68c88-92f4-42a1-a464-a97f41d7a58f", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:178", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_179.json b/TestData/authorization/resources/Appid_179.json new file mode 100644 index 00000000..49dd3cf1 --- /dev/null +++ b/TestData/authorization/resources/Appid_179.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-02-15T19:54:20.687", + "identifier": "appid-179", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "692cc835-60b0-49d7-b10d-2f9fa3c07eec", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:179", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_180.json b/TestData/authorization/resources/Appid_180.json new file mode 100644 index 00000000..5915865b --- /dev/null +++ b/TestData/authorization/resources/Appid_180.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-02-15T19:57:22.347", + "identifier": "appid-180", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "da9b46e2-479f-44c1-8423-01c3a0fab56c", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:180", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_181.json b/TestData/authorization/resources/Appid_181.json new file mode 100644 index 00000000..49c8b022 --- /dev/null +++ b/TestData/authorization/resources/Appid_181.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-02-15T19:57:28.673", + "identifier": "appid-181", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "73085841-e264-4257-bc0c-061c5707d54b", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:181", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_182.json b/TestData/authorization/resources/Appid_182.json new file mode 100644 index 00000000..6e2a47cc --- /dev/null +++ b/TestData/authorization/resources/Appid_182.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Regression", + "nb": "Regression", + "nn": "Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-02-15T19:57:42.953", + "identifier": "appid-182", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes", + "nb": "Gir anledning til Ã¥ teste maskinporten", + "nn": "Gjer høve til Ã¥ teste maskinporten" + }, + "resourceReferences": [ + { + "reference": "c6086d53-6d60-41b3-9f67-32a6347222e2", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:maskinporten/delegationschemes.read", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:maskinporten/delegationschemes.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:182", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_184.json b/TestData/authorization/resources/Appid_184.json new file mode 100644 index 00000000..c1e0a94e --- /dev/null +++ b/TestData/authorization/resources/Appid_184.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-02-16T16:01:27.67", + "identifier": "appid-184", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "3210f4eb-2d76-4666-9574-664c0fd985f5", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:184", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_185.json b/TestData/authorization/resources/Appid_185.json new file mode 100644 index 00000000..a8139aa6 --- /dev/null +++ b/TestData/authorization/resources/Appid_185.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-02-16T16:02:03.783", + "identifier": "appid-185", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "165a2af4-a9e3-4d94-a5f2-65ec749af10e", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:185", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_191.json b/TestData/authorization/resources/Appid_191.json new file mode 100644 index 00000000..2adff808 --- /dev/null +++ b/TestData/authorization/resources/Appid_191.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-03-09T14:11:22.853", + "identifier": "appid-191", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "86a49da7-9d41-42ba-9ab8-0ded1f6b6b34", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:191", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SVV", + "organization": "971032081" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_192.json b/TestData/authorization/resources/Appid_192.json new file mode 100644 index 00000000..4918f9cb --- /dev/null +++ b/TestData/authorization/resources/Appid_192.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-03-09T14:11:34.503", + "identifier": "appid-192", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "cc8878d7-21d2-43af-ae4a-27ffcd0f06e4", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:192", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SVV", + "organization": "971032081" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_193.json b/TestData/authorization/resources/Appid_193.json new file mode 100644 index 00000000..057ff5b1 --- /dev/null +++ b/TestData/authorization/resources/Appid_193.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-03-09T20:12:53.51", + "identifier": "appid-193", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "47a69357-3028-48bc-abdf-1fd4857446bb", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:193", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_196.json b/TestData/authorization/resources/Appid_196.json new file mode 100644 index 00000000..b79f4960 --- /dev/null +++ b/TestData/authorization/resources/Appid_196.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-03-19T13:59:35.29", + "identifier": "appid-196", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "b6bdc87c-e124-437b-9858-35f27171a24a", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:196", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "DIGDIR", + "organization": "991825827" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_197.json b/TestData/authorization/resources/Appid_197.json new file mode 100644 index 00000000..dc409fbe --- /dev/null +++ b/TestData/authorization/resources/Appid_197.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-03-19T13:59:39.577", + "identifier": "appid-197", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "09ef4c47-0493-49ba-ba69-7028df31134c", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:197", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "DIGDIR", + "organization": "991825827" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_198.json b/TestData/authorization/resources/Appid_198.json new file mode 100644 index 00000000..ee625ae1 --- /dev/null +++ b/TestData/authorization/resources/Appid_198.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-03-19T13:59:43.623", + "identifier": "appid-198", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "98e7d274-3b64-4d10-b7d4-2b6e27026350", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:198", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "DIGDIR", + "organization": "991825827" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_199.json b/TestData/authorization/resources/Appid_199.json new file mode 100644 index 00000000..a154221d --- /dev/null +++ b/TestData/authorization/resources/Appid_199.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-03-19T13:59:47.017", + "identifier": "appid-199", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "6ac1efeb-0ae7-4e3d-aafd-5bfe2184e348", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:199", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "DIGDIR", + "organization": "991825827" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_200.json b/TestData/authorization/resources/Appid_200.json new file mode 100644 index 00000000..49d3a971 --- /dev/null +++ b/TestData/authorization/resources/Appid_200.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-03-19T13:59:49.973", + "identifier": "appid-200", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "0d552f1c-dc41-43a6-9f76-4650434ed5e1", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:200", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "DIGDIR", + "organization": "991825827" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_201.json b/TestData/authorization/resources/Appid_201.json new file mode 100644 index 00000000..6e4fe803 --- /dev/null +++ b/TestData/authorization/resources/Appid_201.json @@ -0,0 +1,41 @@ +{ + "title": { + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-03-19T13:59:54.017", + "identifier": "appid-201", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": {}, + "resourceReferences": [ + { + "reference": "45164e1d-147b-4c51-8446-19d9233a0c27", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:201", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "DIGDIR", + "organization": "991825827" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_202.json b/TestData/authorization/resources/Appid_202.json new file mode 100644 index 00000000..a95c85c3 --- /dev/null +++ b/TestData/authorization/resources/Appid_202.json @@ -0,0 +1,38 @@ +{ + "title": {}, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-03-19T13:59:57.35", + "identifier": "appid-202", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": {}, + "resourceReferences": [ + { + "reference": "d60d98dd-830e-4554-b2d4-b9b76696f770", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:202", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "DIGDIR", + "organization": "991825827" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_203.json b/TestData/authorization/resources/Appid_203.json new file mode 100644 index 00000000..596445af --- /dev/null +++ b/TestData/authorization/resources/Appid_203.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-03-19T14:00:00.53", + "identifier": "appid-203", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "eb7a322c-98f5-4d91-8720-baf4b7a61dcc", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:203", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "DIGDIR", + "organization": "991825827" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_204.json b/TestData/authorization/resources/Appid_204.json new file mode 100644 index 00000000..caa1fc95 --- /dev/null +++ b/TestData/authorization/resources/Appid_204.json @@ -0,0 +1,38 @@ +{ + "title": {}, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-03-19T14:00:04.45", + "identifier": "appid-204", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": {}, + "resourceReferences": [ + { + "reference": "18ab3b9a-a0c2-408c-b9fa-21838330c2fa", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:204", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "DIGDIR", + "organization": "991825827" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_205.json b/TestData/authorization/resources/Appid_205.json new file mode 100644 index 00000000..89127804 --- /dev/null +++ b/TestData/authorization/resources/Appid_205.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-05-18T13:47:29.147", + "identifier": "appid-205", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "92e7f534-b126-415c-8a65-d7a8d8ff70a5", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:205", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SVV", + "organization": "971032081" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_206.json b/TestData/authorization/resources/Appid_206.json new file mode 100644 index 00000000..fd5fec1e --- /dev/null +++ b/TestData/authorization/resources/Appid_206.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-08-10T09:46:01.027", + "identifier": "appid-206", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "72f5b1bd-3e0e-49d0-8133-236cb8b628e5", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:206", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_207.json b/TestData/authorization/resources/Appid_207.json new file mode 100644 index 00000000..a6a265f1 --- /dev/null +++ b/TestData/authorization/resources/Appid_207.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-08-10T09:47:12.093", + "identifier": "appid-207", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "71cee800-9b2c-4326-b336-7921223f9ca3", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.read", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:207", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_208.json b/TestData/authorization/resources/Appid_208.json new file mode 100644 index 00000000..368e9e32 --- /dev/null +++ b/TestData/authorization/resources/Appid_208.json @@ -0,0 +1,54 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-08-10T09:47:54.12", + "identifier": "appid-208", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "fd9a3748-2c56-49dd-9860-64de0258ada3", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:208", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_209.json b/TestData/authorization/resources/Appid_209.json new file mode 100644 index 00000000..303ab013 --- /dev/null +++ b/TestData/authorization/resources/Appid_209.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-08-10T09:48:49.723", + "identifier": "appid-209", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "f011cd46-d7f3-4037-975c-5bdcd166295e", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:209", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_210.json b/TestData/authorization/resources/Appid_210.json new file mode 100644 index 00000000..3969827d --- /dev/null +++ b/TestData/authorization/resources/Appid_210.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-08-10T10:01:35.137", + "identifier": "appid-210", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "55d73b7c-6040-41ff-b0dc-877692ba0ea6", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:210", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_211.json b/TestData/authorization/resources/Appid_211.json new file mode 100644 index 00000000..3905088b --- /dev/null +++ b/TestData/authorization/resources/Appid_211.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-08-12T13:27:33.327", + "identifier": "appid-211", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "43a73290-3193-49be-89f5-2b309e373442", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:211", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_212.json b/TestData/authorization/resources/Appid_212.json new file mode 100644 index 00000000..df15544e --- /dev/null +++ b/TestData/authorization/resources/Appid_212.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-08-18T14:22:38", + "identifier": "appid-212", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "5295d5bd-c4c4-43c4-a55e-7c15ecde1ce7", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:212", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_213.json b/TestData/authorization/resources/Appid_213.json new file mode 100644 index 00000000..2179c75b --- /dev/null +++ b/TestData/authorization/resources/Appid_213.json @@ -0,0 +1,52 @@ +{ + "title": { + "nb": "Bjørn 1" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-09-03T12:30:33.887", + "identifier": "appid-213", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "nb": "Bla bla bla bla bla" + }, + "resourceReferences": [ + { + "reference": "8931d72d-0bab-4c9f-a260-ce37810d6f16", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:bjorn/theworld.read", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:bjorn/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:213", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_214.json b/TestData/authorization/resources/Appid_214.json new file mode 100644 index 00000000..56a4a626 --- /dev/null +++ b/TestData/authorization/resources/Appid_214.json @@ -0,0 +1,52 @@ +{ + "title": { + "nb": "Bjørn 1" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-09-28T13:55:27.403", + "identifier": "appid-214", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "nb": "Bla bla bla bla bla" + }, + "resourceReferences": [ + { + "reference": "61aeb251-1e1c-4dcd-b33a-6e63e30b0e6f", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:bjorn/theworld.read", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:bjorn/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:214", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "DIGDIR", + "organization": "991825827" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_215.json b/TestData/authorization/resources/Appid_215.json new file mode 100644 index 00000000..6f1eb9e5 --- /dev/null +++ b/TestData/authorization/resources/Appid_215.json @@ -0,0 +1,52 @@ +{ + "title": { + "nb": "Automation Test Delegation Scheme Requires Level 3" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-10-27T16:11:59.113", + "identifier": "appid-215", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "nb": "Bla bla bla bla bla" + }, + "resourceReferences": [ + { + "reference": "89058b75-8ddb-4c69-8e5c-158b87f7e6cc", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:bjorn/theworld.read", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:bjorn/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:215", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "NAV", + "organization": "889640782" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_216.json b/TestData/authorization/resources/Appid_216.json new file mode 100644 index 00000000..70cec588 --- /dev/null +++ b/TestData/authorization/resources/Appid_216.json @@ -0,0 +1,52 @@ +{ + "title": { + "nb": "Automation Test Delegation Scheme Requires Level 3" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-10-27T16:12:00.827", + "identifier": "appid-216", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "nb": "Bla bla bla bla bla" + }, + "resourceReferences": [ + { + "reference": "9fd1e158-2dad-4e56-bf7f-ab2e69b73a0a", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:bjorn/theworld.read", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:bjorn/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:216", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "NAV", + "organization": "889640782" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_217.json b/TestData/authorization/resources/Appid_217.json new file mode 100644 index 00000000..2ca4d15b --- /dev/null +++ b/TestData/authorization/resources/Appid_217.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-12-13T12:12:34.827", + "identifier": "appid-217", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "ea6e52be-b4d6-44d3-a272-f955b84b34e6", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:217", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "DIGDIR", + "organization": "991825827" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_218.json b/TestData/authorization/resources/Appid_218.json new file mode 100644 index 00000000..bc566953 --- /dev/null +++ b/TestData/authorization/resources/Appid_218.json @@ -0,0 +1,56 @@ +{ + "title": { + "en": "Automation Regression", + "nb": "Automation Regression", + "nn": "Automation Regression" + }, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2021-12-13T12:12:49.563", + "identifier": "appid-218", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": { + "en": "Allows you to test maskinporten changes as part of automation testing", + "nb": "Gir anledning til a teste maskinporten som en del av automatiserte tester", + "nn": "Gjer hove til a teste maskinporten som en del av automatiserte tester" + }, + "resourceReferences": [ + { + "reference": "ed752be2-e80b-4cc5-83e5-263dbc1cf60d", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.write", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "altinn:test/theworld.admin", + "referenceType": "MaskinportenScope", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:218", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "DIGDIR", + "organization": "991825827" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_219.json b/TestData/authorization/resources/Appid_219.json new file mode 100644 index 00000000..fc2f147b --- /dev/null +++ b/TestData/authorization/resources/Appid_219.json @@ -0,0 +1,38 @@ +{ + "title": {}, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2022-03-01T13:28:17.143", + "identifier": "appid-219", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": {}, + "resourceReferences": [ + { + "reference": "5b16379f-f999-4805-9a67-2c32ce304ffa", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:219", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "DFO", + "organization": "986252932" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_220.json b/TestData/authorization/resources/Appid_220.json new file mode 100644 index 00000000..b023e8a2 --- /dev/null +++ b/TestData/authorization/resources/Appid_220.json @@ -0,0 +1,38 @@ +{ + "title": {}, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2022-04-01T15:29:03.213", + "identifier": "appid-220", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": {}, + "resourceReferences": [ + { + "reference": "122cea91-6b64-4ea4-b460-3ab597ffe15d", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:220", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "NHN", + "organization": "994598759" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_221.json b/TestData/authorization/resources/Appid_221.json new file mode 100644 index 00000000..aaf28ddb --- /dev/null +++ b/TestData/authorization/resources/Appid_221.json @@ -0,0 +1,38 @@ +{ + "title": {}, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2022-04-20T13:31:33.433", + "identifier": "appid-221", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": {}, + "resourceReferences": [ + { + "reference": "fae69028-5497-432f-9a32-d7821b487fff", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:221", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "MAT", + "organization": "985399077" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_222.json b/TestData/authorization/resources/Appid_222.json new file mode 100644 index 00000000..4aac44a0 --- /dev/null +++ b/TestData/authorization/resources/Appid_222.json @@ -0,0 +1,38 @@ +{ + "title": {}, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2022-06-08T09:45:50.453", + "identifier": "appid-222", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": {}, + "resourceReferences": [ + { + "reference": "95c94595-c026-4b7b-880a-7c03d9736ceb", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:222", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "SKD", + "organization": "974761076" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/Appid_223.json b/TestData/authorization/resources/Appid_223.json new file mode 100644 index 00000000..b0221008 --- /dev/null +++ b/TestData/authorization/resources/Appid_223.json @@ -0,0 +1,38 @@ +{ + "title": {}, + "sector": null, + "status": null, + "validTo": "9999-12-31T23:59:59.997", + "homepage": null, + "isPartOf": null, + "keywords": null, + "validFrom": "2022-06-13T13:41:02.943", + "identifier": "appid-223", + "isComplete": false, + "description": null, + "resourceType": "MaskinportenSchema", + "thematicArea": null, + "isPublicService": true, + "rightDescription": {}, + "resourceReferences": [ + { + "reference": "2d04277f-f4a9-498f-b317-8bfacb0d19e9", + "referenceType": "DelegationSchemeId", + "referenceSource": "Altinn2" + }, + { + "reference": "AppId:223", + "referenceType": "ServiceCode", + "referenceSource": "Altinn2" + }, + { + "reference": "1", + "referenceType": "ServiceEditionCode", + "referenceSource": "Altinn2" + } + ], + "hasCompetentAuthority": { + "orgcode": "DIGDIR", + "organization": "991825827" + } +} \ No newline at end of file diff --git a/TestData/authorization/resources/altinn_access_management.json b/TestData/authorization/resources/altinn_access_management.json new file mode 100644 index 00000000..8cefddb9 --- /dev/null +++ b/TestData/authorization/resources/altinn_access_management.json @@ -0,0 +1,26 @@ +{ + "identifier": "altinn_access_management", + "description": { + "nb": "Funksjonalitet for � tilgangsstyring I Altinn" + }, + "title": { + "nb": "Tilgangsstyring Altinn" + }, + "hasCompetentAuthority": { + "organization": "991825827", + "orgcode": "digdir" + }, + "contactpoint": [ + { + "phone": "1231324", + "email": "online@digdir.no" + } + ], + "isPartOf": "altiinnportal", + "hasPart": "delegationrequests", + "homepage": "www.altinn.no", + "status": "Completed", + "thematicArea": "http://publications.europa.eu/resource/authority/eurovoc/2468", + "type": [], + "sector": [] +} \ No newline at end of file diff --git a/TestData/authorization/resources/nav_tiltakAvtaleOmArbeidstrening.json b/TestData/authorization/resources/nav_tiltakAvtaleOmArbeidstrening.json new file mode 100644 index 00000000..f8c74402 --- /dev/null +++ b/TestData/authorization/resources/nav_tiltakAvtaleOmArbeidstrening.json @@ -0,0 +1,46 @@ +{ + "identifier": "nav_tiltakAvtaleOmArbeidstrening", + "title": { + "nb": "Avtale om arbeidstrening", + "en": "Agreement on work training" + }, + "description": { + "nb-NO": "Avtalen skal bidra til at personer med behov for bistand fra NAV skal få eller beholde en jobb, samtidig som den støtter arbeidsgivere som inkluderer deg som har nedsatt arbeidsevne. Avtalen inngås mellom arbeidsgiver, arbeidssøker og NAV.", + "EN": "The agreement will help people who need assistance from NAV to get or keep a job, while supporting employers who include those who have reduced working capacity. The agreement is entered into between the employer, the jobseeker and NAV." + }, + "rightDescription": { + "nb-NO": "Med denne fullmakten kan man inngå en avtale om arbeidstreing med NAV og kommune.", + "EN": "With this authorisation, you can enter into an agreement on work training with NAV and the municipality" + }, + "hasCompetentAuthority": { + "organization": "889640782", + "orgcode": "NAV" + }, + "contactpoint": [ + { + "phone": "55 55 33 36 ", + "email": "postmottak@nav.no" + } + ], + "homepage": "https://www.nav.no/", + "status": "Active", + "validFrom": "2019-05-08T14:00:00", + "validTo": "2049-05-08T14:00:00", + "isPartOf": "nav_RapporteringOmArbeidstrening", + "isPublicService": true, + "usedBy": [ "urn:citizen", "urn:enterprise", "urn:selfidentifeduser" ], + "thematicArea": "http://publications.europa.eu/resource/authority/eurovoc/2468", + "type": [], + "sector": [], + "keywords": [ + { + "word" : "Dødsbo", + "language" : "nb" + } + ], + "resourceReference": { + "referenceSource": "Altinn2", + "referenceType": "ServiceCodeVersion", + "reference": "5332/2" + } +} diff --git a/loadbalancer/502Accessmanagement.html b/loadbalancer/502Accessmanagement.html new file mode 100644 index 00000000..8a7be2bf --- /dev/null +++ b/loadbalancer/502Accessmanagement.html @@ -0,0 +1,15 @@ + + + + + + + Accessmanagement is not running + + +

502 Bad Gateway

+

Accessmanagement is not running

+

Please ensure that Accessmanagement is running on port 5117

+ + + diff --git a/loadbalancer/nginx.conf b/loadbalancer/nginx.conf index 9b04c23d..465d2cdb 100644 --- a/loadbalancer/nginx.conf +++ b/loadbalancer/nginx.conf @@ -49,6 +49,10 @@ http { server host.docker.internal:5060; } + upstream accessmanagementcomp { + server host.docker.internal:5117; + } + server { listen 80 default_server; server_name ${TEST_DOMAIN}; @@ -82,6 +86,11 @@ http { error_page 502 /502Receipt.html; } + location /accessmanagement/ { + proxy_pass http://accessmanagementcomp/accessmanagement/; + error_page 502 /502Accessmanagement.html; + } + location /storage/ { proxy_pass http://localtest/storage/; } @@ -101,6 +110,9 @@ http { location /502Receipt.html { root /www; } + location /502Accessmanagement.html { + root /www; + } } } diff --git a/src/Controllers/ResourceRegistry/ResourceController.cs b/src/Controllers/ResourceRegistry/ResourceController.cs new file mode 100644 index 00000000..df5bf6ad --- /dev/null +++ b/src/Controllers/ResourceRegistry/ResourceController.cs @@ -0,0 +1,250 @@ +using Altinn.ResourceRegistry.Core; +using Altinn.ResourceRegistry.Core.Extensions; +using Altinn.ResourceRegistry.Core.Models; +using Altinn.ResourceRegistry.Models; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.ApplicationModels; +using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; +using Microsoft.Extensions.Logging; +using System; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; + +namespace ResourceRegistry.Controllers +{ + /// + /// Controller responsible for all operations for managing resources in the resource registry + /// + [Route("resourceregistry/api/v1/resource")] + [ApiController] + public class ResourceController : ControllerBase + { + private IResourceRegistry _resourceRegistry; + private readonly IObjectModelValidator _objectModelValidator; + private readonly IHttpContextAccessor _httpContextAccessor; + private readonly ILogger _logger; + + /// + /// Initializes a new instance of the controller. + /// + /// Service implementation for operations on resources in the resource registry + /// Object model validator + /// Http context accessor + /// Logger + public ResourceController(IResourceRegistry resourceRegistry, IObjectModelValidator objectModelValidator, IHttpContextAccessor httpContextAccessor, ILogger logger) + { + _resourceRegistry = resourceRegistry; + _objectModelValidator = objectModelValidator; + _httpContextAccessor = httpContextAccessor; + _logger = logger; + } + + /// + /// Gets a single resource by its resource identifier if it exists in the resource registry + /// + /// The resource identifier to retrieve + /// ServiceResource + [HttpGet("{id}")] + [Produces("application/json")] + public async Task Get(string id) + { + return await _resourceRegistry.GetResource(id); + } + + /// + /// Creates a service resource in the resource registry if it pass all validation checks + /// + /// Service resource model to create in the resource registry + /// ActionResult describing the result of the operation + [SuppressModelStateInvalidFilter] + [HttpPost] + [Produces("application/json")] + [Consumes("application/json")] + public async Task Post([ValidateNever] ServiceResource serviceResource) + { + if (serviceResource.IsComplete.HasValue && serviceResource.IsComplete.Value) + { + if (!ModelState.IsValid) + { + return ValidationProblem(ModelState); + } + } + + try + { + serviceResource.Identifier.AsFilePath(); + } + catch + { + return BadRequest($"Invalid resource identifier. Cannot be empty or contain any of the characters: {string.Join(", ", Path.GetInvalidFileNameChars())}"); + } + + await _resourceRegistry.CreateResource(serviceResource); + + return Created("/ResourceRegistry/api/" + serviceResource.Identifier, null); + } + + /// + /// Updates a service resource in the resource registry if it pass all validation checks + /// + /// Resource ID + /// Service resource model for update in the resource registry + /// ActionResult describing the result of the operation + [SuppressModelStateInvalidFilter] + [HttpPut("{id}")] + [Produces("application/json")] + [Consumes("application/json")] + public async Task Put(string id, ServiceResource serviceResource) + { + ServiceResource currentResource = await _resourceRegistry.GetResource(id); + + if (currentResource == null) + { + return BadRequest(); + } + + if (id != serviceResource.Identifier) + { + return BadRequest(); + } + + if (serviceResource.IsComplete.HasValue && serviceResource.IsComplete.Value) + { + if (!ModelState.IsValid) + { + return ValidationProblem(ModelState); + } + } + + await _resourceRegistry.UpdateResource(serviceResource); + + return Ok(); + } + + /// + /// Returns the XACML policy for a resource in resource registry. + /// + /// Resource Id + /// + [HttpGet("{id}/policy")] + public async Task GetPolicy(string id) + { + ServiceResource resource = await _resourceRegistry.GetResource(id); + if (resource == null) + { + return NotFound("Unable to find resource"); + } + + Stream dataStream = await _resourceRegistry.GetPolicy(resource); + + if (dataStream == null) + { + return NotFound("Unable to find requested policy"); + } + + return File(dataStream, "text/xml", "policy.xml"); + } + + /// + /// Creates or overwrites the existing XACML policy for the resource, if it pass all validation checks. + /// The XACML policy must define at least a subject and resource, and will be used to restrict access for the resource. + /// + /// The resource identifier to store the policy for + /// The XACML policy file + /// ActionResult describing the result of the operation + [HttpPost("{id}/policy")] + [HttpPut("{id}/policy")] + public async Task WritePolicy(string id, IFormFile policyFile) + { + if (policyFile == null) + { + return BadRequest("The policy file can not be null"); + } + + Stream fileStream = policyFile.OpenReadStream(); + if (fileStream == null) + { + return BadRequest("The file stream can not be null"); + } + + if (string.IsNullOrWhiteSpace(id)) + { + return BadRequest("Unknown resource"); + } + + ServiceResource resource = await _resourceRegistry.GetResource(id); + if (resource == null) + { + return BadRequest("Unknown resource"); + } + + try + { + bool successfullyStored = await _resourceRegistry.StorePolicy(resource, fileStream); + + if (successfullyStored) + { + return Created(id + "/policy", null); + } + } + catch (ArgumentException ex) + { + _logger.LogError(ex.Message); + return BadRequest(ex.Message); + } + catch (Exception ex) + { + _logger.LogError(ex.ToString()); + return StatusCode(500); + } + + return BadRequest("Something went wrong in the upload of file to storage"); + } + + /// + /// Deletes a resource from the resource registry + /// + /// The resource identifier to delete + [HttpDelete("{id}")] + [Produces("application/json")] + public async void Delete(string id) + { + await _resourceRegistry.Delete(id); + } + + /// + /// Allows for searching for resources in the resource registry + /// + /// The search model defining the search filter criterias + /// A list of service resources found to match the search criterias + [HttpGet("Search")] + [Produces("application/json")] + public async Task> Search([FromQuery] ResourceSearch search) + { + return await _resourceRegistry.Search(search); + } + } + + /// + /// ToDo: move to a separate class + /// + public class SuppressModelStateInvalidFilterAttribute : Attribute, IActionModelConvention + { + private const string FilterTypeName = "ModelStateInvalidFilterFactory"; + + /// + public void Apply(ActionModel action) + { + for (var i = 0; i < action.Filters.Count; i++) + { + if (action.Filters[i].GetType().Name == FilterTypeName) + { + action.Filters.RemoveAt(i); + break; + } + } + } + } +} diff --git a/src/Extensions/ResourceRegistry/StringExtensions.cs b/src/Extensions/ResourceRegistry/StringExtensions.cs new file mode 100644 index 00000000..a69b218e --- /dev/null +++ b/src/Extensions/ResourceRegistry/StringExtensions.cs @@ -0,0 +1,66 @@ +using System; +using System.IO; +using System.Linq; + +namespace Altinn.ResourceRegistry.Core.Extensions +{ + /// + /// Extensions to facilitate sanitization of string values + /// + public static class StringExtensions + { + /// + /// Sanitize the input as a file name. + /// + /// The input variable to be sanitized + /// Throw exception instead of replacing invalid characters with '-' + /// + public static string AsFileName(this string input, bool throwExceptionOnInvalidCharacters = true) + { + if (string.IsNullOrWhiteSpace(input)) + { + return input; + } + + char[] illegalFileNameCharacters = Path.GetInvalidFileNameChars(); + if (throwExceptionOnInvalidCharacters) + { + if (illegalFileNameCharacters.Any(ic => input.Any(i => ic == i))) + { + throw new ArgumentOutOfRangeException(nameof(input)); + } + + return input; + } + + return illegalFileNameCharacters.Aggregate(input, (current, c) => current.Replace(c, '-')); + } + + /// + /// Sanitize the input as part of a file path + /// + /// The input variable to be sanitized + /// Throw exception instead of replacing invalid characters with '-' + /// + public static string AsFilePath(this string input, bool throwExceptionOnInvalidCharacters = true) + { + if (string.IsNullOrWhiteSpace(input)) + { + return input; + } + + char[] illegalFilePathCharacters = Path.GetInvalidPathChars(); + if (throwExceptionOnInvalidCharacters) + { + if (illegalFilePathCharacters.Any(ic => input.Any(i => ic == i))) + { + throw new ArgumentOutOfRangeException(nameof(input)); + } + + return input; + } + + return illegalFilePathCharacters.Aggregate(input, (current, c) => current.Replace(c, '-')); + } + } +} diff --git a/src/Models/ResourceRegistry/CompetentAuthority.cs b/src/Models/ResourceRegistry/CompetentAuthority.cs new file mode 100644 index 00000000..63400735 --- /dev/null +++ b/src/Models/ResourceRegistry/CompetentAuthority.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Altinn.ResourceRegistry.Core.Models +{ + /// + /// Model representation of Competent Authority part of the ServiceResource model + /// + public class CompetentAuthority + { + /// + /// The organization number + /// + public string Organization { get; set; } + + /// + /// The organization code + /// + public string Orgcode { get; set; } + } +} diff --git a/src/Models/ResourceRegistry/Keyword.cs b/src/Models/ResourceRegistry/Keyword.cs new file mode 100644 index 00000000..0621998d --- /dev/null +++ b/src/Models/ResourceRegistry/Keyword.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Altinn.ResourceRegistry.Core.Models +{ + /// + /// Model for defining keywords + /// + public class Keyword + { + /// + /// The key word + /// + public string Word { get; set; } + + /// + /// Language of the key word + /// + public string Language { get; set; } + } +} diff --git a/src/Models/ResourceRegistry/ReferenceSource.cs b/src/Models/ResourceRegistry/ReferenceSource.cs new file mode 100644 index 00000000..3e0cb61b --- /dev/null +++ b/src/Models/ResourceRegistry/ReferenceSource.cs @@ -0,0 +1,25 @@ +using System.Runtime.Serialization; + +namespace Altinn.ResourceRegistry.Core.Enums +{ + /// + /// Enum for the different reference sources for resources in the resource registry + /// + public enum ReferenceSource : int + { + [EnumMember(Value = "Default")] + Default = 0, + + [EnumMember(Value = "Altinn1")] + Altinn1 = 1, + + [EnumMember(Value = "Altinn2")] + Altinn2 = 2, + + [EnumMember(Value = "Altinn3")] + Altinn3 = 3, + + [EnumMember(Value = "ExternalPlatform")] + ExternalPlatform = 4 + } +} diff --git a/src/Models/ResourceRegistry/ReferenceType.cs b/src/Models/ResourceRegistry/ReferenceType.cs new file mode 100644 index 00000000..ab8b76cb --- /dev/null +++ b/src/Models/ResourceRegistry/ReferenceType.cs @@ -0,0 +1,22 @@ +using System.Runtime.Serialization; + +namespace Altinn.ResourceRegistry.Core.Enums +{ + /// + /// Enum for reference types of resources in the resource registry + /// + public enum ReferenceType : int + { + [EnumMember(Value = "Default")] + Default = 0, + + [EnumMember(Value = "ServiceCodeVersion")] + ServiceCodeVersion = 1, + + [EnumMember(Value = "OrgApp")] + OrgApp = 2, + + [EnumMember(Value = "Uri")] + Uri = 3 + } +} diff --git a/src/Models/ResourceRegistry/ResourceReference.cs b/src/Models/ResourceRegistry/ResourceReference.cs new file mode 100644 index 00000000..41c35a58 --- /dev/null +++ b/src/Models/ResourceRegistry/ResourceReference.cs @@ -0,0 +1,28 @@ +using System.Text.Json.Serialization; +using Altinn.ResourceRegistry.Core.Enums; + +namespace Altinn.ResourceRegistry.Core.Models +{ + /// + /// Model representation of the resource reference part of the ServiceResource model + /// + public class ResourceReference + { + /// + /// The source the reference identifier points to + /// + [JsonConverter(typeof(JsonStringEnumConverter))] + public ReferenceSource? ReferenceSource { get; set; } + + /// + /// The reference identifier + /// + public string? Reference { get; set; } + + /// + /// The reference type + /// + [JsonConverter(typeof(JsonStringEnumConverter))] + public ReferenceType? ReferenceType { get; set; } + } +} diff --git a/src/Models/ResourceRegistry/ResourceSearch.cs b/src/Models/ResourceRegistry/ResourceSearch.cs new file mode 100644 index 00000000..a617eab1 --- /dev/null +++ b/src/Models/ResourceRegistry/ResourceSearch.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Altinn.ResourceRegistry.Core.Enums; + +namespace Altinn.ResourceRegistry.Core.Models +{ + /// + /// Model for performing search for resources in the resource registry + /// + public class ResourceSearch + { + /// + /// ID + /// + public string? Id { get; set; } + + /// + /// Title + /// + public string? Title { get; set; } + + /// + /// Description + /// + public string? Description { get; set; } + + /// + /// ResourceType + /// + public ResourceType? ResourceType { get; set; } + + /// + /// Keywords + /// + public string? Keyword { get; set; } + + /// + /// Include Expired + /// + public bool IncludeExpired { get; set; } + } +} diff --git a/src/Models/ResourceRegistry/ResourceType.cs b/src/Models/ResourceRegistry/ResourceType.cs new file mode 100644 index 00000000..1f109cb2 --- /dev/null +++ b/src/Models/ResourceRegistry/ResourceType.cs @@ -0,0 +1,25 @@ +using System.Runtime.Serialization; +using System.Text.Json.Serialization; + +namespace Altinn.ResourceRegistry.Core.Enums +{ + /// + /// Enum representation of the different types of resources supported by the resource registry + /// + public enum ResourceType + { + Default = 0, + + Systemresource = 1, + + Altinn2 = 2, + + Altinn3 = 3, + + Apischema = 4, + + Api = 5, + + MaskinportenSchema = 6, + } +} diff --git a/src/Models/ResourceRegistry/ServiceResource.cs b/src/Models/ResourceRegistry/ServiceResource.cs new file mode 100644 index 00000000..8499f372 --- /dev/null +++ b/src/Models/ResourceRegistry/ServiceResource.cs @@ -0,0 +1,100 @@ +using Altinn.ResourceRegistry.Core.Enums; +using Altinn.ResourceRegistry.Core.Models; +using System; +using System.Collections.Generic; +using System.Text.Json.Serialization; + +namespace Altinn.ResourceRegistry.Models +{ + /// + /// Model describing a complete resource from the resrouce registry + /// + public class ServiceResource + { + /// + /// The identifier of the resource + /// + public string Identifier { get; set; } + + /// + /// The title of service + /// + public Dictionary Title { get; set; } + + /// + /// Description + /// + public Dictionary Description { get; set; } + + /// + /// Description explaining the rights a recipient will receive if given access to the resource + /// + public Dictionary RightDescription { get; set; } + + /// + /// The homepage + /// + public string Homepage { get; set; } + + /// + /// The status + /// + public string Status { get; set; } + + /// + /// When the resource is available from + /// + public DateTime ValidFrom { get; set; } + + /// + /// When the resource is available to + /// + public DateTime ValidTo { get; set; } + + /// + /// IsPartOf + /// + public string IsPartOf { get; set; } + + /// + /// IsPublicService + /// + public bool IsPublicService { get; set; } + + /// + /// ThematicArea + /// + public string? ThematicArea { get; set; } + + /// + /// ResourceReference + /// + public ResourceReference? ResourceReference { get; set; } + + /// + /// IsComplete + /// + public bool? IsComplete { get; set; } + + /// + /// HasCompetentAuthority + /// + public CompetentAuthority HasCompetentAuthority { get; set; } + + /// + /// Keywords + /// + public List Keywords { get; set; } + + /// + /// Sector + /// + public List Sector { get; set; } + + /// + /// ResourceType + /// + [JsonConverter(typeof(JsonStringEnumConverter))] + public ResourceType ResourceType { get; set; } + } +} diff --git a/src/Services/ResourceRegistry/IPolicyRepository.cs b/src/Services/ResourceRegistry/IPolicyRepository.cs new file mode 100644 index 00000000..c4c4d625 --- /dev/null +++ b/src/Services/ResourceRegistry/IPolicyRepository.cs @@ -0,0 +1,48 @@ +using System; +using System.IO; +using System.Threading.Tasks; + +namespace Altinn.ResourceRegistry.Core +{ + /// + /// Interface for operations on policy files. + /// + public interface IPolicyRepository + { + /// + /// Gets file stream for the policy file from blob storage, if it exists at the specified path. + /// + /// The resource id + /// File stream of the policy file + Task GetPolicyAsync(string resourceId); + + /// + /// Gets file stream for the specified version of a policy file from blob storage, if it exists at the specified path. + /// + /// The resource id + /// The blob storage version + /// File stream of the policy file + Task GetPolicyVersionAsync(string resourceId, string version); + + /// + /// Tries to acquire a blob lease on the base blob for the provided filepath. + /// + /// The resourceId + /// The LeaseId if a release was possible, otherwise null + Task TryAcquireBlobLease(string resourceId); + + /// + /// Releases a blob lease on the base blob for the resource policy for the provided resource id using the provided leaseId. + /// + /// The resourceId + /// The lease id from to release + void ReleaseBlobLease(string resourceId, string leaseId); + + /// + /// Checks whether there exists a blob for the specific resource + /// + /// The resourceId + /// Bool whether the blob exists or not + Task PolicyExistsAsync(string resourceId); + } +} diff --git a/src/Services/ResourceRegistry/IResourceRegistry.cs b/src/Services/ResourceRegistry/IResourceRegistry.cs new file mode 100644 index 00000000..08b90f8e --- /dev/null +++ b/src/Services/ResourceRegistry/IResourceRegistry.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Altinn.ResourceRegistry.Core.Models; +using Altinn.ResourceRegistry.Models; + +namespace Altinn.ResourceRegistry.Core +{ + /// + /// Interface for the ResourceRegistryService implementation + /// + public interface IResourceRegistry + { + /// + /// Gets a single resource by its resource identifier if it exists in the resource registry + /// + /// The resource identifier to retrieve + /// ServiceResource + Task GetResource(string id); + + /// + /// Creates a service resource in the resource registry if it pass all validation checks + /// + /// Service resource model to create in the resource registry + /// The result of the operation + Task CreateResource(ServiceResource serviceResource); + + /// + /// Updates a service resource in the resource registry if it pass all validation checks + /// + /// Service resource model for update in the resource registry + /// The result of the operation + Task UpdateResource(ServiceResource serviceResource); + + /// + /// Deletes a resource from the resource registry + /// + /// The resource identifier to delete + Task Delete(string id); + + /// + /// Allows for searching for resources in the resource registry + /// + /// The search model defining the search filter criterias + /// A list of service resources found to match the search criterias + Task> Search(ResourceSearch resourceSearch); + + /// + /// Allows for storing a policy xacml policy for the resource + /// + /// The resource + /// The file stream to the policy file + /// Bool if storing the policy was successfull + Task StorePolicy(ServiceResource serviceResource, Stream fileStream); + + /// + /// Returns the policy for a service resource + /// + /// The resource + /// + Task GetPolicy(ServiceResource serviceResource); + } +} diff --git a/src/Services/ResourceRegistry/IResourceRegistryRepository.cs b/src/Services/ResourceRegistry/IResourceRegistryRepository.cs new file mode 100644 index 00000000..ee0553f1 --- /dev/null +++ b/src/Services/ResourceRegistry/IResourceRegistryRepository.cs @@ -0,0 +1,47 @@ +using Altinn.ResourceRegistry.Core.Models; +using Altinn.ResourceRegistry.Models; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace Altinn.ResourceRegistry.Core +{ + /// + /// Interface for the postgre repository for resource registry + /// + public interface IResourceRegistryRepository + { + /// + /// Gets a single resource by its resource identifier if it exists in the resource registry + /// + /// The resource identifier to retrieve + /// ServiceResource + Task GetResource(string id); + + /// + /// Deletes a resource from the resource registry + /// + /// The resource identifier to delete + Task DeleteResource(string id); + + /// + /// Updates a service resource in the resource registry if it pass all validation checks + /// + /// Service resource model for update in the resource registry + /// The result of the operation + Task UpdateResource(ServiceResource resource); + + /// + /// Creates a service resource in the resource registry if it pass all validation checks + /// + /// Service resource model to create in the resource registry + /// The result of the operation + Task CreateResource(ServiceResource resource); + + /// + /// Allows for searching for resources in the resource registry + /// + /// The search model defining the search filter criterias + /// A list of service resources found to match the search criterias + Task> Search(ResourceSearch resourceSearch); + } +} diff --git a/src/Services/ResourceRegistry/PolicyRepositoryMock.cs b/src/Services/ResourceRegistry/PolicyRepositoryMock.cs new file mode 100644 index 00000000..9b6104bf --- /dev/null +++ b/src/Services/ResourceRegistry/PolicyRepositoryMock.cs @@ -0,0 +1,48 @@ +using Altinn.ResourceRegistry.Core; +using System; +using System.IO; +using System.Threading.Tasks; + +namespace ResourceRegistryTest.Mocks +{ + public class PolicyRepositoryMock : IPolicyRepository + { + public async Task GetPolicyAsync(string resourceId) + { + resourceId = Path.Combine(GetPolicyContainerPath(), resourceId, "resourcepolicy.xml"); + if (File.Exists(resourceId)) + { + return new FileStream(resourceId, FileMode.Open, FileAccess.Read, FileShare.Read); + } + + return null; + } + + public Task GetPolicyVersionAsync(string filepath, string version) + { + throw new NotImplementedException(); + } + + public Task PolicyExistsAsync(string filepath) + { + throw new NotImplementedException(); + } + + public void ReleaseBlobLease(string filepath, string leaseId) + { + throw new NotImplementedException(); + } + + public Task TryAcquireBlobLease(string filepath) + { + throw new NotImplementedException(); + } + + private static string GetPolicyContainerPath() + { + string unitTestFolder = Path.GetDirectoryName(new Uri(typeof(PolicyRepositoryMock).Assembly.Location).LocalPath); + return Path.Combine(unitTestFolder, "..", "..", "..", "Data", "ResourcePolicies"); + } + + } +} diff --git a/src/Services/ResourceRegistry/RegisterResourceRepositoryMock.cs b/src/Services/ResourceRegistry/RegisterResourceRepositoryMock.cs new file mode 100644 index 00000000..937d01df --- /dev/null +++ b/src/Services/ResourceRegistry/RegisterResourceRepositoryMock.cs @@ -0,0 +1,97 @@ +using Altinn.ResourceRegistry.Core; +using Altinn.ResourceRegistry.Core.Models; +using Altinn.ResourceRegistry.Models; +using LocalTest.Configuration; +using Microsoft.Extensions.Options; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ResourceRegistryTest.Mocks +{ + public class RegisterResourceRepositoryMock : IResourceRegistryRepository + { + private readonly LocalPlatformSettings _localPlatformSettings; + public RegisterResourceRepositoryMock(IOptions localPlatformSettings) + { + _localPlatformSettings = localPlatformSettings.Value; + } + + + public async Task CreateResource(ServiceResource resource) + { + return await Task.FromResult(null); + } + + public async Task DeleteResource(string id) + { + throw new NotImplementedException(); + } + + public async Task GetResource(string id) + { + List resources = await Search(new ResourceSearch() { Id = id }); + + if(resources.Count == 1) + { + return resources[0]; + } + + return null; + } + + public async Task> Search(ResourceSearch resourceSearch) + { + List resources = new List(); + string[] files = Directory.GetFiles(GetResourcePath()); + if(files != null) + { + foreach (string file in files) + { + try + { + string content = System.IO.File.ReadAllText(file); + ServiceResource? resource = System.Text.Json.JsonSerializer.Deserialize(content, new System.Text.Json.JsonSerializerOptions() { PropertyNamingPolicy = System.Text.Json.JsonNamingPolicy.CamelCase }) as ServiceResource; + if (resourceSearch.Id == null) + { + resources.Add(resource); + } + else + { + if (resourceSearch.Id.Equals(resource.Identifier)) + { + resources.Add(resource); + } + } + } + catch(Exception + ex) + { + Console.WriteLine(file + ex.ToString()); + } + } + } + + return resources; + } + + private string GetResourcePath(string id) + { + return Path.Combine(GetResourcePath(), id + ".json"); + } + + Task IResourceRegistryRepository.UpdateResource(ServiceResource resource) + { + return Task.FromResult(resource); + } + + private string GetResourcePath() + { + string unitTestFolder = _localPlatformSettings.LocalTestingStaticTestDataPath; + return Path.Combine(unitTestFolder, "authorization", "resources"); + } + } +} diff --git a/src/Services/ResourceRegistry/ResourceRegistryService.cs b/src/Services/ResourceRegistry/ResourceRegistryService.cs new file mode 100644 index 00000000..1e69c93f --- /dev/null +++ b/src/Services/ResourceRegistry/ResourceRegistryService.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using Altinn.ResourceRegistry.Core.Models; +using Altinn.ResourceRegistry.Models; +using Microsoft.Extensions.Logging; + +namespace Altinn.ResourceRegistry.Core +{ + /// + /// Service implementation for operations on the resource registry + /// + public class ResourceRegistryService : IResourceRegistry + { + private IResourceRegistryRepository _repository; + private IPolicyRepository _policyRepository; + private readonly ILogger _logger; + + /// + /// Creates a new instance of the service. + /// The ResourceRegistryService is responcible for business logic and implementations for working with the resource registry + /// + /// Resource registry repository implementation for dependencies to its operations + /// Repository implementation for operations on policies + /// Logger + public ResourceRegistryService(IResourceRegistryRepository repository, IPolicyRepository policyRepository, ILogger logger) + { + _repository = repository; + _policyRepository = policyRepository; + _logger = logger; + } + + /// + public async Task CreateResource(ServiceResource serviceResource) + { + await _repository.CreateResource(serviceResource); + } + + /// + public async Task UpdateResource(ServiceResource serviceResource) + { + await _repository.UpdateResource(serviceResource); + } + + /// + public async Task Delete(string id) + { + await _repository.DeleteResource(id); + } + + /// + public async Task GetResource(string id) + { + return await _repository.GetResource(id); + } + + /// + public async Task> Search(ResourceSearch resourceSearch) + { + return await _repository.Search(resourceSearch); + } + + /// + public async Task StorePolicy(ServiceResource serviceResources, Stream fileStream) + { + throw new NotImplementedException(); + } + + /// + public async Task GetPolicy(ServiceResource serviceResource) + { + return await _policyRepository.GetPolicyAsync(serviceResource.Identifier); + } + } +} diff --git a/src/Startup.cs b/src/Startup.cs index 624b2fc3..fcea8cd6 100644 --- a/src/Startup.cs +++ b/src/Startup.cs @@ -19,6 +19,7 @@ using Altinn.Platform.Storage.Clients; using Altinn.Platform.Storage.Helpers; using Altinn.Platform.Storage.Repository; +using Altinn.ResourceRegistry.Core; using AltinnCore.Authentication.Constants; using AltinnCore.Authentication.JwtCookie; using LocalTest.Clients.CdnAltinnOrgs; @@ -47,6 +48,7 @@ using Microsoft.Extensions.Options; using Microsoft.IdentityModel.Logging; using Microsoft.IdentityModel.Tokens; +using ResourceRegistryTest.Mocks; namespace LocalTest { @@ -107,6 +109,9 @@ public void ConfigureServices(IServiceCollection services) services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); services.AddMemoryCache(); X509Certificate2 cert = new X509Certificate2("JWTValidationCert.cer");