Skip to content
This repository was archived by the owner on Feb 2, 2026. It is now read-only.

Commit b92609a

Browse files
authored
Merge pull request #830 from skoruba/release/2.0.0
Release/2.0.0 🚀
2 parents 4993559 + 8b1d79c commit b92609a

3,180 files changed

Lines changed: 69440 additions & 179961 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -275,9 +275,9 @@ __pycache__/
275275
/src/Skoruba.IdentityServer4.Admin/Data/Migrations/
276276

277277
# Don't ignore these log folders
278-
!/src/Skoruba.IdentityServer4.Admin/Resources/Views/Log/
278+
!/src/Skoruba.IdentityServer4.Admin.UI/Resources/Views/Log/
279279
!/src/Skoruba.IdentityServer4.Admin.BusinessLogic/Dtos/Log/
280-
!/src/Skoruba.IdentityServer4.Admin/Views/Log/
280+
!**/Views/Log/
281281
!/src/Skoruba.IdentityServer4.Admin.BusinessLogic/Events/Log/
282282
/src/Skoruba.IdentityServer4.Admin.Api/appsettings.Production.json
283283

README.md

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,30 @@
22

33
# Skoruba.IdentityServer4.Admin
44

5-
> The administration of the IdentityServer4 and Asp.Net Core Identity
5+
> The administration for the IdentityServer4 and Asp.Net Core Identity
66
77
## Project Status
88

99
[![Build status](https://ci.appveyor.com/api/projects/status/5yg59bn70399hn6s/branch/master?svg=true)](https://ci.appveyor.com/project/JanSkoruba/identityserver4-admin/branch/master)
1010
[![Build Status](https://dev.azure.com/skoruba/IdentityServer4.Admin/_apis/build/status/IdentityServer4.Admin-CI?branchName=master)](https://dev.azure.com/skoruba/IdentityServer4.Admin/_build/latest?definitionId=2?branchName=master)
1111
[![Join the chat at https://gitter.im/skoruba/IdentityServer4.Admin](https://badges.gitter.im/skoruba/IdentityServer4.Admin.svg)](https://gitter.im/skoruba/IdentityServer4.Admin?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
1212

13-
The application is written in the **Asp.Net Core MVC - using .NET Core 3.1**
13+
The application is written in the **Asp.Net Core MVC - using .NET 5**
1414

1515
## Requirements
1616

17-
- [Install](https://www.microsoft.com/net/download/windows#/current) the latest .NET Core 3.x SDK (using older versions may lead to 502.5 errors when hosted on IIS or application exiting immediately after starting when self-hosted)
17+
- [Install](https://www.microsoft.com/net/download/windows#/current) the latest .NET 5 SDK (using older versions may lead to 502.5 errors when hosted on IIS or application exiting immediately after starting when self-hosted)
1818

1919
## Installation via dotnet new template
2020

2121
- Install the dotnet new template:
2222

23-
### Stable version 1.0.0 works with **IdentityServer4 version 3** 🚀
24-
25-
```sh
26-
dotnet new -i Skoruba.IdentityServer4.Admin.Templates::1.0.0
27-
```
28-
29-
### Beta version 2.0.0 works with **IdentityServer4 version 4** 🚀
23+
### Version 2.0.0 works with **IdentityServer4 version 4** 🚀
3024

3125
- 🔒 **NOTE:** This version affects your database data if you use the default database migrations that are part of the project - double check the migrations according to your database provider and create a database backup
3226

33-
- The source code for version **2.0.0** is available in the branch [release/2.0.0-beta1](https://github.com/skoruba/IdentityServer4.Admin/tree/release/2.0.0-beta1)
34-
3527
```sh
36-
dotnet new -i Skoruba.IdentityServer4.Admin.Templates::2.0.0-beta1
28+
dotnet new -i Skoruba.IdentityServer4.Admin.Templates::2.0.0
3729
```
3830

3931
### Create new project:
@@ -79,17 +71,21 @@ Project template options:
7971

8072
- This administration uses bootstrap 4
8173

82-
- Admin UI
74+
### Admin UI - Light mode 🌞
75+
76+
![Admin-preview](docs/Images/App/1.PNG)
8377

84-
![Admin-preview](docs/Images/App/Skoruba-Home-Preview.PNG)
78+
### Admin UI - Dark mode 🌙
8579

86-
- Security token service (STS)
80+
![Admin-preview](docs/Images/App/2.PNG)
8781

88-
![Admin-preview](docs/Images/App/Skoruba-STS-Home-Preview.PNG)
82+
### Security token service (STS)
8983

90-
- Forms:
84+
![Admin-preview](docs/Images/App/4.PNG)
9185

92-
![Admin-preview-form](docs/Images/App/Skoruba-Forms-Preview.PNG)
86+
### Forms
87+
88+
![Admin-preview-form](docs/Images/App/3.png)
9389

9490
## Cloning
9591

@@ -170,21 +166,12 @@ docker-compose up -d
170166
171167
### Docker images
172168
- Docker images will be available also in [docker hub](https://hub.docker.com/u/skoruba)
173-
- AdminUI:
174-
- **Stable version:**
175-
- `skoruba/identityserver4-admin:1.0.0`
176-
- **Beta version:**
177-
- `skoruba/identityserver4-admin:2.0.0-beta1`
169+
- AdminUI:
170+
- `skoruba/identityserver4-admin:2.0.0`
178171
- Admin Api:
179-
- **Stable version:**
180-
- `skoruba/identityserver4-admin-api:1.0.0`
181-
- **Beta version:**
182-
- `skoruba/identityserver4-admin-api:2.0.0-beta1`
172+
- `skoruba/identityserver4-admin-api:2.0.0`
183173
- STS:
184-
- **Stable version:**
185-
- `skoruba/identityserver4-sts-identity:1.0.0`
186-
- **Beta version:**
187-
- `skoruba/identityserver4-sts-identity:2.0.0-beta1`
174+
- `skoruba/identityserver4-sts-identity:2.0.0`
188175

189176
### Publish Docker images to Docker hub
190177
- Check the script in `build/publish-docker-images.ps1` - change the profile name according to your requirements.
@@ -208,6 +195,7 @@ The following Gulp commands are available:
208195
- `gulp scripts` - bundle and minify JS
209196
- `gulp clean` - remove the `dist` folder
210197
- `gulp build` - run the `styles` and `scripts` tasks
198+
- `gulp watch` - watch all changes in all sass files
211199

212200
## EF Core & Data Access
213201

@@ -397,6 +385,8 @@ Admin and STS can be customized without editing code in `appsettings.json` under
397385

398386
Ui can be customized using themes integrated from [bootswatch](https://bootswatch.com).
399387

388+
From version 2.0.0 is possible to change theme from UI. 🎈
389+
400390
By default, configuration value is null to use default theme. if you want to use a theme, just fill the lowercase theme name as configuration value of `Theme` key.
401391

402392
You can also use your custom theme by integrating it in your project or hosting css on your place to pass the url in `CustomThemeCss` key. (Note that custom theme override standard theme)
@@ -600,18 +590,24 @@ Integration tests use StartupTest class which is pre-configured with:
600590

601591
- Admin UI:
602592

603-
- `Skoruba.IdentityServer4.Admin` - ASP.NET Core MVC application that contains Admin UI
593+
- `Skoruba.IdentityServer4.Admin.UI` - ASP.NET Core MVC application that contains Admin UI
594+
595+
- `Skoruba.IdentityServer4.Admin` - ASP.NET Core MVC application that uses Admin UI package and it's only for application bootstrap
604596

605597
- `Skoruba.IdentityServer4.Admin.BusinessLogic` - project that contains Dtos, Repositories, Services and Mappers for the IdentityServer4
606598

607599
- `Skoruba.IdentityServer4.Admin.BusinessLogic.Identity` - project that contains Dtos, Repositories, Services and Mappers for the Asp.Net Core Identity
608600

609601
- `Skoruba.IdentityServer4.Admin.BusinessLogic.Shared` - project that contains shared Dtos and ExceptionHandling for the Business Logic layer of the IdentityServer4 and Asp.Net Core Identity
610602

611-
- `Skoruba.IdentityServer4.Shared` - Shared common layer for Admin UI, Admin UI Api and STS
603+
- `Skoruba.IdentityServer4.Shared` - Shared common Identity DTOS for Admin UI, Admin UI Api and STS
604+
605+
- `Skoruba.IdentityServer4.Shared.Configuration` - Shared common layer for Admin UI, Admin UI Api and STS
612606

613607
- `Skoruba.IdentityServer4.Admin.EntityFramework` - EF Core data layer that contains Entities for the IdentityServer4
614608

609+
- `Skoruba.IdentityServer4.Admin.EntityFramework.Configuration` - EF Core data layer that contains configurations
610+
615611
- `Skoruba.IdentityServer4.Admin.EntityFramework.Identity` - EF Core data layer that contains Repositories for the Asp.Net Core Identity
616612

617613
- `Skoruba.IdentityServer4.Admin.EntityFramework.Extensions` - project that contains extensions related to EntityFramework
@@ -648,7 +644,7 @@ It is possible to define the configuration according the client type - by defaul
648644
- Empty
649645
- Web Application - Server side - Authorization Code Flow with PKCE
650646
- Single Page Application - Javascript - Authorization Code Flow with PKCE
651-
- Native Application - Mobile/Desktop - Hybrid flow
647+
- Native Application - Mobile/Desktop - Authorization Code Flow with PKCE
652648
- Machine/Robot - Client Credentials flow
653649
- TV and Limited-Input Device Application - Device flow
654650

@@ -742,12 +738,16 @@ It is possible to define the configuration according the client type - by defaul
742738

743739
### 2.0.0
744740
- [x] Update to IdentityServer4 version 4 ([#633](https://github.com/skoruba/IdentityServer4.Admin/issues/633))
741+
- [x] Add support for themes ([#725](https://github.com/skoruba/IdentityServer4.Admin/issues/725))
742+
- [x] Extract UI part into nuget package ([#770](https://github.com/skoruba/IdentityServer4.Admin/issues/770), [#409](https://github.com/skoruba/IdentityServer4.Admin/issues/409), [#55](https://github.com/skoruba/IdentityServer4.Admin/issues/55), [#322](https://github.com/skoruba/IdentityServer4.Admin/issues/322), [#28](https://github.com/skoruba/IdentityServer4.Admin/issues/28), [#133](https://github.com/skoruba/IdentityServer4.Admin/issues/133))
745743

746-
### 3.0.0:
744+
### 3.0.0
745+
- [ ] Connect Admin Api to the Admin UI ([#478](https://github.com/skoruba/IdentityServer4.Admin/issues/478))
746+
747+
### 4.0.0:
747748

748749
- [ ] Create a project template using dotnet CLI - `dotnet new template`
749750
- [ ] Second template: The administration of the IdentityServer4 (without Asp.Net Core Identity) ([#79](https://github.com/skoruba/IdentityServer4.Admin/issues/79))
750-
- [ ] Connect Admin Api to the Admin UI ([#478](https://github.com/skoruba/IdentityServer4.Admin/issues/478))
751751
- [ ] Add windows authentication ([#479](https://github.com/skoruba/IdentityServer4.Admin/issues/479))
752752

753753

@@ -756,7 +756,7 @@ It is possible to define the configuration according the client type - by defaul
756756
- Add UI tests ([#97](https://github.com/skoruba/IdentityServer4.Admin/issues/97), [#116](https://github.com/skoruba/IdentityServer4.Admin/issues/116))
757757
- Add more unit and integration tests :blush:
758758
- Extend administration for another protocols
759-
- Create separate UI using `Razor Class Library` ([#28](https://github.com/skoruba/IdentityServer4.Admin/issues/28), [#133](https://github.com/skoruba/IdentityServer4.Admin/issues/133))
759+
760760

761761
## Licence
762762

Skoruba.IdentityServer4.Admin.sln

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Skoruba.IdentityServer4.Adm
5151
EndProject
5252
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Skoruba.IdentityServer4.Shared", "src\Skoruba.IdentityServer4.Shared\Skoruba.IdentityServer4.Shared.csproj", "{61B285F0-EE06-4AEE-AAF3-71492CBD11C5}"
5353
EndProject
54+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Skoruba.IdentityServer4.Admin.UI", "src\Skoruba.IdentityServer4.Admin.UI\Skoruba.IdentityServer4.Admin.UI.csproj", "{6DD24C2C-0FB5-4C37-8B42-5DACA0FDE4EC}"
55+
EndProject
56+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Skoruba.IdentityServer4.Admin.EntityFramework.Configuration", "src\Skoruba.IdentityServer4.Admin.EntityFramework.Configuration\Skoruba.IdentityServer4.Admin.EntityFramework.Configuration.csproj", "{45FB23BE-A7F9-4172-8868-B5E387007644}"
57+
EndProject
58+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Skoruba.IdentityServer4.Shared.Configuration", "src\Skoruba.IdentityServer4.Shared.Configuration\Skoruba.IdentityServer4.Shared.Configuration.csproj", "{D49A2D61-AEEB-457C-B3BA-D1322EB2F4EC}"
59+
EndProject
5460
Global
5561
GlobalSection(SolutionConfigurationPlatforms) = preSolution
5662
Debug|Any CPU = Debug|Any CPU
@@ -133,6 +139,18 @@ Global
133139
{61B285F0-EE06-4AEE-AAF3-71492CBD11C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
134140
{61B285F0-EE06-4AEE-AAF3-71492CBD11C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
135141
{61B285F0-EE06-4AEE-AAF3-71492CBD11C5}.Release|Any CPU.Build.0 = Release|Any CPU
142+
{6DD24C2C-0FB5-4C37-8B42-5DACA0FDE4EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
143+
{6DD24C2C-0FB5-4C37-8B42-5DACA0FDE4EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
144+
{6DD24C2C-0FB5-4C37-8B42-5DACA0FDE4EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
145+
{6DD24C2C-0FB5-4C37-8B42-5DACA0FDE4EC}.Release|Any CPU.Build.0 = Release|Any CPU
146+
{45FB23BE-A7F9-4172-8868-B5E387007644}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
147+
{45FB23BE-A7F9-4172-8868-B5E387007644}.Debug|Any CPU.Build.0 = Debug|Any CPU
148+
{45FB23BE-A7F9-4172-8868-B5E387007644}.Release|Any CPU.ActiveCfg = Release|Any CPU
149+
{45FB23BE-A7F9-4172-8868-B5E387007644}.Release|Any CPU.Build.0 = Release|Any CPU
150+
{D49A2D61-AEEB-457C-B3BA-D1322EB2F4EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
151+
{D49A2D61-AEEB-457C-B3BA-D1322EB2F4EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
152+
{D49A2D61-AEEB-457C-B3BA-D1322EB2F4EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
153+
{D49A2D61-AEEB-457C-B3BA-D1322EB2F4EC}.Release|Any CPU.Build.0 = Release|Any CPU
136154
EndGlobalSection
137155
GlobalSection(SolutionProperties) = preSolution
138156
HideSolutionNode = FALSE
@@ -156,6 +174,9 @@ Global
156174
{0A8A0DB7-0509-4DFB-9201-74398511B481} = {2A514C8F-6A53-41CA-AB41-B644E7BC92A7}
157175
{4D123ACB-ACBD-4E40-AE6B-1B0F79D703B0} = {0BC0CC4E-A0F1-45E8-B41A-AE0FA76BF3E5}
158176
{61B285F0-EE06-4AEE-AAF3-71492CBD11C5} = {EE588CE5-51D0-4E98-A2B3-40EC8E655931}
177+
{6DD24C2C-0FB5-4C37-8B42-5DACA0FDE4EC} = {588205D4-3A30-4DA4-849D-C7422C396DAA}
178+
{45FB23BE-A7F9-4172-8868-B5E387007644} = {2A514C8F-6A53-41CA-AB41-B644E7BC92A7}
179+
{D49A2D61-AEEB-457C-B3BA-D1322EB2F4EC} = {EE588CE5-51D0-4E98-A2B3-40EC8E655931}
159180
EndGlobalSection
160181
GlobalSection(ExtensibilityGlobals) = postSolution
161182
SolutionGuid = {B3166EDE-037B-4C68-BEBA-5DE9C5E3DB82}

build/add-migrations.ps1

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
param([string] $migration = 'DbInit', [string] $migrationProviderName = 'All')
1+
param([string] $migration = 'DbInit', [string] $migrationProviderName = 'All', [string] $targetContext = 'All')
22
$projectName = "Skoruba.IdentityServer4";
33
$currentPath = Get-Location
44
Set-Location "../src/$projectName.Admin"
@@ -12,7 +12,7 @@ $targetContexts = @{
1212
IdentityServerConfigurationDbContext = "Migrations\IdentityServerConfiguration";
1313
IdentityServerPersistedGrantDbContext = "Migrations\IdentityServerGrants";
1414
AdminAuditLogDbContext = "Migrations\AuditLogging";
15-
IdentityServerDataProtectionDbContext = "Migrations\DataProtection";
15+
IdentityServerDataProtectionDbContext = "Migrations\DataProtection";
1616
}
1717

1818
#Initialize the db providers and it's respective projects
@@ -41,10 +41,14 @@ foreach ($provider in $dpProviders.Keys) {
4141
$settings | set-content appsettings.json
4242
if ((Test-Path $projectPath) -eq $true) {
4343
foreach ($context in $targetContexts.Keys) {
44-
$migrationPath = $targetContexts[$context];
44+
45+
if ($targetContext -eq 'All' -or $context -eq $targetContext) {
4546

46-
Write-Host "Migrating context " $context
47-
dotnet ef migrations add $migration -c $context -o $migrationPath -p $projectPath
47+
$migrationPath = $targetContexts[$context];
48+
49+
Write-Host "Migrating context " $context
50+
dotnet ef migrations add $migration -c $context -o $migrationPath -p $projectPath
51+
}
4852
}
4953
}
5054

build/create-nuget-packages.ps1

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
$packagesOutput = ".\packages"
22

3+
# Business Logic
34
dotnet pack .\..\src\Skoruba.IdentityServer4.Admin.BusinessLogic\Skoruba.IdentityServer4.Admin.BusinessLogic.csproj -c Release -o $packagesOutput
45
dotnet pack .\..\src\Skoruba.IdentityServer4.Admin.BusinessLogic.Identity\Skoruba.IdentityServer4.Admin.BusinessLogic.Identity.csproj -c Release -o $packagesOutput
56
dotnet pack .\..\src\Skoruba.IdentityServer4.Admin.BusinessLogic.Shared\Skoruba.IdentityServer4.Admin.BusinessLogic.Shared.csproj -c Release -o $packagesOutput
7+
dotnet pack .\..\src\Skoruba.IdentityServer4.Shared.Configuration\Skoruba.IdentityServer4.Shared.Configuration.csproj -c Release -o $packagesOutput
68

9+
# EF
710
dotnet pack .\..\src\Skoruba.IdentityServer4.Admin.EntityFramework\Skoruba.IdentityServer4.Admin.EntityFramework.csproj -c Release -o $packagesOutput
811
dotnet pack .\..\src\Skoruba.IdentityServer4.Admin.EntityFramework.Extensions\Skoruba.IdentityServer4.Admin.EntityFramework.Extensions.csproj -c Release -o $packagesOutput
912
dotnet pack .\..\src\Skoruba.IdentityServer4.Admin.EntityFramework.Identity\Skoruba.IdentityServer4.Admin.EntityFramework.Identity.csproj -c Release -o $packagesOutput
10-
dotnet pack .\..\src\Skoruba.IdentityServer4.Admin.EntityFramework.Shared\Skoruba.IdentityServer4.Admin.EntityFramework.Shared.csproj -c Release -o $packagesOutput
13+
dotnet pack .\..\src\Skoruba.IdentityServer4.Admin.EntityFramework.Shared\Skoruba.IdentityServer4.Admin.EntityFramework.Shared.csproj -c Release -o $packagesOutput
14+
dotnet pack .\..\src\Skoruba.IdentityServer4.Admin.EntityFramework.Configuration\Skoruba.IdentityServer4.Admin.EntityFramework.Configuration.csproj -c Release -o $packagesOutput
15+
16+
# UI
17+
dotnet pack .\..\src\Skoruba.IdentityServer4.Admin.UI\Skoruba.IdentityServer4.Admin.UI.csproj -c Release -o $packagesOutput

build/publish-nuget-packages.ps1

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,9 @@ dotnet nuget push ./packages/Skoruba.IdentityServer4.Admin.BusinessLogic.Shared.
77
dotnet nuget push ./packages/Skoruba.IdentityServer4.Admin.EntityFramework.$version.nupkg -k $key -s https://api.nuget.org/v3/index.json
88
dotnet nuget push ./packages/Skoruba.IdentityServer4.Admin.EntityFramework.Extensions.$version.nupkg -k $key -s https://api.nuget.org/v3/index.json
99
dotnet nuget push ./packages/Skoruba.IdentityServer4.Admin.EntityFramework.Identity.$version.nupkg -k $key -s https://api.nuget.org/v3/index.json
10-
dotnet nuget push ./packages/Skoruba.IdentityServer4.Admin.EntityFramework.Shared.$version.nupkg -k $key -s https://api.nuget.org/v3/index.json
10+
dotnet nuget push ./packages/Skoruba.IdentityServer4.Admin.EntityFramework.Shared.$version.nupkg -k $key -s https://api.nuget.org/v3/index.json
11+
12+
dotnet nuget push ./packages/Skoruba.IdentityServer4.Admin.EntityFramework.Configuration.$version.nupkg -k $key -s https://api.nuget.org/v3/index.json
13+
dotnet nuget push ./packages/Skoruba.IdentityServer4.Shared.Configuration.$version.nupkg -k $key -s https://api.nuget.org/v3/index.json
14+
15+
dotnet nuget push ./packages/Skoruba.IdentityServer4.Admin.UI.$version.nupkg -k $key -s https://api.nuget.org/v3/index.json

0 commit comments

Comments
 (0)