diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml
index baa6759..3293c61 100644
--- a/.github/workflows/continuous-integration-workflow.yml
+++ b/.github/workflows/continuous-integration-workflow.yml
@@ -18,7 +18,9 @@ jobs:
dotnet-version: 8.0.x
- name: Add Azure artifact
- run: dotnet nuget add source 'https://pkgs.dev.azure.com/e-LfH/_packaging/LearningHubFeed/nuget/v3/index.json' --name 'LearningHubFeed' --username 'kevin.whittaker' --password ${{ secrets.AZURE_DEVOPS_PAT }} --store-password-in-clear-text
+ run: |
+ dotnet nuget remove source LearningHubFeed || true
+ dotnet nuget add source 'https://pkgs.dev.azure.com/e-LfH/_packaging/LearningHubFeed/nuget/v3/index.json' --name 'LearningHubFeed' --username 'kevin.whittaker' --password ${{ secrets.AZURE_DEVOPS_PAT }} --store-password-in-clear-text
- name: Use NuGet 5.8
uses: nuget/setup-nuget@v1
diff --git a/Auth/LearningHub.Nhs.Auth.Tests/LearningHub.Nhs.Auth.Tests.csproj b/Auth/LearningHub.Nhs.Auth.Tests/LearningHub.Nhs.Auth.Tests.csproj
index ec6d6ad..4544d37 100644
--- a/Auth/LearningHub.Nhs.Auth.Tests/LearningHub.Nhs.Auth.Tests.csproj
+++ b/Auth/LearningHub.Nhs.Auth.Tests/LearningHub.Nhs.Auth.Tests.csproj
@@ -1,32 +1,27 @@
-
-
+
net8.0
true
false
- x64
+ x64
-
-
-
-
-
-
-
-
+
+
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
+
\ No newline at end of file
diff --git a/Auth/LearningHub.Nhs.Auth/LearningHub.Nhs.Auth.csproj b/Auth/LearningHub.Nhs.Auth/LearningHub.Nhs.Auth.csproj
index 2933aee..8fe3ee6 100644
--- a/Auth/LearningHub.Nhs.Auth/LearningHub.Nhs.Auth.csproj
+++ b/Auth/LearningHub.Nhs.Auth/LearningHub.Nhs.Auth.csproj
@@ -1,145 +1,133 @@
-
-
-
- net8.0
- 00EF27C2-ECB6-4E37-A6B6-58E4E6189D0E
- true
- x64
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Never
-
-
-
-
-
- true
- PreserveNewest
-
-
- true
- PreserveNewest
-
-
- true
- PreserveNewest
-
-
- true
- PreserveNewest
-
-
- true
- PreserveNewest
-
-
- true
- PreserveNewest
-
-
- true
- PreserveNewest
-
-
- true
- PreserveNewest
-
-
- true
- PreserveNewest
-
-
- true
- PreserveNewest
-
-
- true
- PreserveNewest
-
-
- true
- PreserveNewest
-
-
- true
- PreserveNewest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
-
-
- Always
-
-
- Always
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ net8.0
+ 00EF27C2-ECB6-4E37-A6B6-58E4E6189D0E
+ true
+ x64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Never
+
+
+
+
+ true
+ PreserveNewest
+
+
+ true
+ PreserveNewest
+
+
+ true
+ PreserveNewest
+
+
+ true
+ PreserveNewest
+
+
+ true
+ PreserveNewest
+
+
+ true
+ PreserveNewest
+
+
+ true
+ PreserveNewest
+
+
+ true
+ PreserveNewest
+
+
+ true
+ PreserveNewest
+
+
+ true
+ PreserveNewest
+
+
+ true
+ PreserveNewest
+
+
+ true
+ PreserveNewest
+
+
+ true
+ PreserveNewest
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+ Always
+
+
+ Always
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Auth/LearningHub.Nhs.Auth/appsettings.json b/Auth/LearningHub.Nhs.Auth/appsettings.json
index f4daca9..533cb08 100644
--- a/Auth/LearningHub.Nhs.Auth/appsettings.json
+++ b/Auth/LearningHub.Nhs.Auth/appsettings.json
@@ -203,6 +203,23 @@
"RequireConsent": false,
"RequirePkce": false,
"AllowOfflineAccess": true
+ },
+ "moodlepgvle": {
+ "BaseUrl": "",
+ "ClientName": "",
+ "ClientSecret": "",
+ "AllowedGrantTypes": [ "authorization_code" ],
+ "RedirectUris": [ "/auth/oidc/" ],
+ "PostLogoutUris": [ "/login/logout.php" ],
+ "AllowedScopes": [ "openid", "profile", "learninghubapi", "userapi", "roles", "learningcredentialsapi" ],
+ "BackChannelLogoutSessionRequired": true,
+ "BackChannelLogoutUri": "/login/logout.php",
+ "FrontChannelLogoutSessionRequired": true,
+ "FrontChannelLogoutUri": "/login/logout.php",
+ "UpdateAccessTokenClaimsOnRefresh": true,
+ "RequireConsent": false,
+ "RequirePkce": false,
+ "AllowOfflineAccess": true
}
},
"IdsClients": {
diff --git a/Auth/LearningHub.Nhs.Auth/package-lock.json b/Auth/LearningHub.Nhs.Auth/package-lock.json
index b0fd361..8b81771 100644
--- a/Auth/LearningHub.Nhs.Auth/package-lock.json
+++ b/Auth/LearningHub.Nhs.Auth/package-lock.json
@@ -11,12 +11,12 @@
"dependencies": {
"babel-polyfill": "^6.26.0",
"concurrently": "^7.2.0",
- "core-js": "^3.42.0",
+ "core-js": "^3.43.0",
"nhsuk-frontend": "^7.0.0",
"node": "^22"
},
"devDependencies": {
- "@babel/core": "^7.27.3",
+ "@babel/core": "^7.27.4",
"@babel/preset-env": "^7.27.2",
"babel-core": "^4.7.16",
"babel-loader": "^8.2.2",
@@ -25,7 +25,7 @@
"cross-env": "^7.0.3",
"css-loader": "^5.2.4",
"file-loader": "^6.2.0",
- "sass": "^1.89.0",
+ "sass": "^1.89.2",
"sass-loader": "^11.0.1",
"style-loader": "^2.0.0",
"ts-loader": "^9.5.2",
@@ -74,9 +74,9 @@
}
},
"node_modules/@babel/core": {
- "version": "7.27.3",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.3.tgz",
- "integrity": "sha512-hyrN8ivxfvJ4i0fIJuV4EOlV0WDMz5Ui4StRTgVaAvWeiRCilXgwVvxJKtFQ3TKtHgJscB2YiXKGNJuVwhQMtA==",
+ "version": "7.27.4",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz",
+ "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -85,10 +85,10 @@
"@babel/generator": "^7.27.3",
"@babel/helper-compilation-targets": "^7.27.2",
"@babel/helper-module-transforms": "^7.27.3",
- "@babel/helpers": "^7.27.3",
- "@babel/parser": "^7.27.3",
+ "@babel/helpers": "^7.27.4",
+ "@babel/parser": "^7.27.4",
"@babel/template": "^7.27.2",
- "@babel/traverse": "^7.27.3",
+ "@babel/traverse": "^7.27.4",
"@babel/types": "^7.27.3",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
@@ -371,9 +371,9 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.27.3",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.3.tgz",
- "integrity": "sha512-h/eKy9agOya1IGuLaZ9tEUgz+uIRXcbtOhRtUyyMf8JFmn1iT13vnl/IGVWSkdOCG/pC57U4S1jnAabAavTMwg==",
+ "version": "7.27.4",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.4.tgz",
+ "integrity": "sha512-Y+bO6U+I7ZKaM5G5rDUZiYfUvQPUibYmAFe7EnKdnKBbVXDZxvp+MWOH5gYciY0EPk4EScsuFMQBbEfpdRKSCQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -385,9 +385,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.27.3",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.3.tgz",
- "integrity": "sha512-xyYxRj6+tLNDTWi0KCBcZ9V7yg3/lwL9DWh9Uwh/RIVlIfFidggcgxKX3GCXwCiswwcGRawBKbEg2LG/Y8eJhw==",
+ "version": "7.27.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.4.tgz",
+ "integrity": "sha512-BRmLHGwpUqLFR2jzx9orBuX/ABDkj2jLKOXrHDTN2aOKL+jFDDKaRNo9nyYsIl9h/UE/7lMKdDjKQQyxKKDZ7g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1506,15 +1506,15 @@
}
},
"node_modules/@babel/traverse": {
- "version": "7.27.3",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.3.tgz",
- "integrity": "sha512-lId/IfN/Ye1CIu8xG7oKBHXd2iNb2aW1ilPszzGcJug6M8RCKfVNcYhpI5+bMvFYjK7lXIM0R+a+6r8xhHp2FQ==",
+ "version": "7.27.4",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz",
+ "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.27.1",
"@babel/generator": "^7.27.3",
- "@babel/parser": "^7.27.3",
+ "@babel/parser": "^7.27.4",
"@babel/template": "^7.27.2",
"@babel/types": "^7.27.3",
"debug": "^4.3.1",
@@ -3515,9 +3515,9 @@
"license": "MIT"
},
"node_modules/core-js": {
- "version": "3.42.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.42.0.tgz",
- "integrity": "sha512-Sz4PP4ZA+Rq4II21qkNqOEDTDrCvcANId3xpIgB34NDkWc3UduWj2dqEtN9yZIq8Dk3HyPI33x9sqqU5C8sr0g==",
+ "version": "3.43.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.43.0.tgz",
+ "integrity": "sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA==",
"hasInstallScript": true,
"license": "MIT",
"funding": {
@@ -5997,9 +5997,9 @@
"license": "MIT"
},
"node_modules/sass": {
- "version": "1.89.0",
- "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.0.tgz",
- "integrity": "sha512-ld+kQU8YTdGNjOLfRWBzewJpU5cwEv/h5yyqlSeJcj6Yh8U4TDA9UA5FPicqDz/xgRPWRSYIQNiFks21TbA9KQ==",
+ "version": "1.89.2",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.2.tgz",
+ "integrity": "sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==",
"dev": true,
"license": "MIT",
"dependencies": {
diff --git a/Auth/LearningHub.Nhs.Auth/package.json b/Auth/LearningHub.Nhs.Auth/package.json
index 774c644..75d6761 100644
--- a/Auth/LearningHub.Nhs.Auth/package.json
+++ b/Auth/LearningHub.Nhs.Auth/package.json
@@ -21,12 +21,12 @@
"dependencies": {
"babel-polyfill": "^6.26.0",
"concurrently": "^7.2.0",
- "core-js": "^3.42.0",
+ "core-js": "^3.43.0",
"nhsuk-frontend": "^7.0.0",
"node": "^22"
},
"devDependencies": {
- "@babel/core": "^7.27.3",
+ "@babel/core": "^7.27.4",
"@babel/preset-env": "^7.27.2",
"babel-core": "^4.7.16",
"babel-loader": "^8.2.2",
@@ -35,7 +35,7 @@
"cross-env": "^7.0.3",
"css-loader": "^5.2.4",
"file-loader": "^6.2.0",
- "sass": "^1.89.0",
+ "sass": "^1.89.2",
"sass-loader": "^11.0.1",
"style-loader": "^2.0.0",
"ts-loader": "^9.5.2",
diff --git a/Directory.Build.props b/Directory.Build.props
index 041b430..d153dde 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -4,7 +4,7 @@
$(SolutionDir)StyleCop.ruleset
-
+
\ No newline at end of file
diff --git a/Directory.Packages.props b/Directory.Packages.props
new file mode 100644
index 0000000..66aac1b
--- /dev/null
+++ b/Directory.Packages.props
@@ -0,0 +1,49 @@
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/LearningHub.Nhs.UserApi.Repository.Interface/LearningHub.Nhs.UserApi.Repository.Interface.csproj b/LearningHub.Nhs.UserApi.Repository.Interface/LearningHub.Nhs.UserApi.Repository.Interface.csproj
index 29a3a90..60f0b5d 100644
--- a/LearningHub.Nhs.UserApi.Repository.Interface/LearningHub.Nhs.UserApi.Repository.Interface.csproj
+++ b/LearningHub.Nhs.UserApi.Repository.Interface/LearningHub.Nhs.UserApi.Repository.Interface.csproj
@@ -1,23 +1,19 @@
-
-
+
net8.0
true
false
- x64
+ x64
-
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
+
\ No newline at end of file
diff --git a/LearningHub.Nhs.UserApi.Repository/LearningHub.Nhs.UserApi.Repository.csproj b/LearningHub.Nhs.UserApi.Repository/LearningHub.Nhs.UserApi.Repository.csproj
index 5921669..7d254b8 100644
--- a/LearningHub.Nhs.UserApi.Repository/LearningHub.Nhs.UserApi.Repository.csproj
+++ b/LearningHub.Nhs.UserApi.Repository/LearningHub.Nhs.UserApi.Repository.csproj
@@ -1,25 +1,21 @@
-
-
+
net8.0
true
false
- x64
+ x64
-
-
-
-
-
-
+
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
+
\ No newline at end of file
diff --git a/LearningHub.Nhs.UserApi.Services.Interface/LearningHub.Nhs.UserAPI.Services.Interface.csproj b/LearningHub.Nhs.UserApi.Services.Interface/LearningHub.Nhs.UserAPI.Services.Interface.csproj
index 29a3a90..60f0b5d 100644
--- a/LearningHub.Nhs.UserApi.Services.Interface/LearningHub.Nhs.UserAPI.Services.Interface.csproj
+++ b/LearningHub.Nhs.UserApi.Services.Interface/LearningHub.Nhs.UserAPI.Services.Interface.csproj
@@ -1,23 +1,19 @@
-
-
+
net8.0
true
false
- x64
+ x64
-
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
+
\ No newline at end of file
diff --git a/LearningHub.Nhs.UserApi.Services.UnitTests/LearningHub.Nhs.UserApi.Services.UnitTests.csproj b/LearningHub.Nhs.UserApi.Services.UnitTests/LearningHub.Nhs.UserApi.Services.UnitTests.csproj
index a61a661..2bcf2e7 100644
--- a/LearningHub.Nhs.UserApi.Services.UnitTests/LearningHub.Nhs.UserApi.Services.UnitTests.csproj
+++ b/LearningHub.Nhs.UserApi.Services.UnitTests/LearningHub.Nhs.UserApi.Services.UnitTests.csproj
@@ -1,37 +1,33 @@
-
-
+
net8.0
- true
+ true
enable
enable
- x64
+ x64
false
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
-
-
+
\ No newline at end of file
diff --git a/LearningHub.Nhs.UserApi.Services/LearningHub.Nhs.UserApi.Services.csproj b/LearningHub.Nhs.UserApi.Services/LearningHub.Nhs.UserApi.Services.csproj
index 670491b..a81d32a 100644
--- a/LearningHub.Nhs.UserApi.Services/LearningHub.Nhs.UserApi.Services.csproj
+++ b/LearningHub.Nhs.UserApi.Services/LearningHub.Nhs.UserApi.Services.csproj
@@ -1,27 +1,24 @@
-
-
+
net8.0
true
false
- x64
+ x64
-
-
-
-
-
-
+
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
-
-
+
\ No newline at end of file
diff --git a/LearningHub.Nhs.UserApi.Shared/LearningHub.Nhs.UserApi.Shared.csproj b/LearningHub.Nhs.UserApi.Shared/LearningHub.Nhs.UserApi.Shared.csproj
index ecfe311..04b48b4 100644
--- a/LearningHub.Nhs.UserApi.Shared/LearningHub.Nhs.UserApi.Shared.csproj
+++ b/LearningHub.Nhs.UserApi.Shared/LearningHub.Nhs.UserApi.Shared.csproj
@@ -1,19 +1,16 @@
-
-
+
net8.0
true
false
- x64
+ x64
-
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
\ No newline at end of file
diff --git a/LearningHub.Nhs.UserApi.UnitTests/LearningHub.Nhs.UserApi.UnitTests.csproj b/LearningHub.Nhs.UserApi.UnitTests/LearningHub.Nhs.UserApi.UnitTests.csproj
index 5c215c5..4eb125a 100644
--- a/LearningHub.Nhs.UserApi.UnitTests/LearningHub.Nhs.UserApi.UnitTests.csproj
+++ b/LearningHub.Nhs.UserApi.UnitTests/LearningHub.Nhs.UserApi.UnitTests.csproj
@@ -1,37 +1,32 @@
-
-
+
net8.0
- true
+ true
enable
enable
- x64
+ x64
false
-
-
-
-
-
-
-
+
+
+
+
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
-
-
-
+
\ No newline at end of file
diff --git a/LearningHub.Nhs.UserApi.sln b/LearningHub.Nhs.UserApi.sln
index adb65c7..77a9165 100644
--- a/LearningHub.Nhs.UserApi.sln
+++ b/LearningHub.Nhs.UserApi.sln
@@ -6,6 +6,7 @@ MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{683CA47A-9041-4CB9-B436-CD20BD40EB34}"
ProjectSection(SolutionItems) = preProject
Directory.Build.props = Directory.Build.props
+ Directory.Packages.props = Directory.Packages.props
StyleCop.json = StyleCop.json
StyleCop.ruleset = StyleCop.ruleset
EndProjectSection
diff --git a/LearningHub.Nhs.UserApi/LearningHub.Nhs.UserApi.csproj b/LearningHub.Nhs.UserApi/LearningHub.Nhs.UserApi.csproj
index c707f5a..f98d757 100644
--- a/LearningHub.Nhs.UserApi/LearningHub.Nhs.UserApi.csproj
+++ b/LearningHub.Nhs.UserApi/LearningHub.Nhs.UserApi.csproj
@@ -1,43 +1,37 @@
-
-
+
net8.0
InProcess
true
- x64
+ x64
-
LearningHub.Nhs.UserApi.xml
-
-
Always
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
-
@@ -45,12 +39,14 @@
-
Never
-
-
+
+
+
+
+
\ No newline at end of file
diff --git a/nuget.config b/nuget.config
new file mode 100644
index 0000000..4b5a055
--- /dev/null
+++ b/nuget.config
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file