Skip to content

Commit edd7bf3

Browse files
Ticket #879 : Explain the migration
1 parent 423f7b1 commit edd7bf3

14 files changed

Lines changed: 690 additions & 174 deletions

File tree

website/docs/idserver/migrations/duende.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Migrating from Duende to SimpleIdServer
22

3-
If you're currently using Duende IdentityServer version 7, migrating to SimpleIdServer is a smooth and straightforward process.
3+
If you're currently using [Duende](http://duendesoftware.com/) IdentityServer version 7, migrating to SimpleIdServer is a smooth and straightforward process.
44
With the help of our migration tool, you can quickly transition your identity server without hassle.
55

66
## How to Migrate
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Migrating from OpenIddict to SimpleIdServer
2+
3+
If you're currently using version 6 of the [OpenIddict](http://documentation.openiddict.com/) library and are considering switching to SimpleIdServer, migration is now possible thanks to a dedicated migration package.
4+
5+
## How to Migrate
6+
7+
To begin, install the NuGet package `SimpleIdServer.IdServer.Migrations.Openiddict`. This package provides everything needed to migrate your OpenIddict data to SimpleIdServer.
8+
9+
```cmd title="cmd.exe"
10+
dotnet add package SimpleIdServer.IdServer.Migrations.Openiddict
11+
```
12+
Once the package is installed, update your `Program.cs` file to configure the migration services.
13+
14+
There are two essential methods to call:
15+
16+
* **EnableMigration()** – Registers the services required to perform a migration.
17+
18+
* **AddOpeniddictMigration(...)** – Registers the dependencies needed to migrate from OpenIddict to SimpleIdServer. This method takes a lambda expression to configure the database connection string used to access your existing OpenIddict database.
19+
20+
Here’s an example of how your Program.cs file might look with migration enabled:
21+
22+
```csharp title="Program.cs"
23+
builder.AddSidIdentityServer()
24+
.EnableMigration()
25+
.AddOpeniddictMigration(a =>
26+
{
27+
a.UseSqlServer(""); // Add your connection string here
28+
});
29+
```
30+
31+
## Running the migration
32+
33+
With the configuration in place, you're ready to run the migration and transfer your OpenIddict data into SimpleIdServer.
34+
Make sure to replace the placeholder connection string with the one that connects to your current OpenIddict database.
35+
36+
For additional guidance on how to execute the migration process, you can refer to the [Duende migration](./duende.md) documentation, which provides helpful context for understanding the overall flow.

website/sidebars.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,8 @@ const sidebars = {
105105
type: 'category',
106106
label: 'Migrations',
107107
items: [
108-
'idserver/migrations/duende'
108+
'idserver/migrations/duende',
109+
'idserver/migrations/openiddict'
109110
]
110111
}
111112
]

website/src/components/HomepageFeatures/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ function Feature({Icon, title, description, full}) {
9191

9292
export default function HomepageFeatures() {
9393
return (
94-
<section className="py-20 bg-gray-50">
94+
<section className="py-20 bg-white">
9595
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
9696
<div className="lg:text-center">
9797
<h2 className="text-base text-primary-600 font-semibold tracking-wide uppercase">Features</h2>

website/src/components/HomepageFullyCustom/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React from 'react';
22

33
export default function HomepageFullyCustom() {
44
return (
5-
<section class="py-16 px-4 sm:px-6 lg:px-8 bg-white">
5+
<section class="py-16 px-4 sm:px-6 lg:px-8 bg-gray-50">
66
<div class="max-w-7xl mx-auto">
77
<div class="text-center mb-12">
88
<h2 class="text-3xl font-extrabold text-gray-900 sm:text-4xl">

website/src/components/HomepageInstallation/index.js

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import React from 'react';
2-
31
export default function HomepageInstallation() {
42
return (
53
<section class="py-16 px-4 sm:px-6 lg:px-8 bg-gray-50">
@@ -13,9 +11,9 @@ export default function HomepageInstallation() {
1311
</p>
1412
</div>
1513

16-
<div class="installation-carousel">
17-
<div class="installation-carousel-inner">
18-
<div class="installation-item active">
14+
<div class="carousel installation-carousel">
15+
<div class="carousel-inner installation-carousel-inner">
16+
<div class="carousel-item installation-item active" data-index="0">
1917
<div class="text-primary-500 mb-4">
2018
<i class="fas fa-terminal text-4xl"></i>
2119
</div>
@@ -27,7 +25,7 @@ export default function HomepageInstallation() {
2725
Install our .NET templates to quickly create any type of SimpleIdServer project with all dependencies pre-configured.
2826
</p>
2927
</div>
30-
<div class="installation-item">
28+
<div class="carousel-item installation-item">
3129
<div class="text-primary-500 mb-4">
3230
<i class="fab fa-docker text-4xl"></i>
3331
</div>
@@ -39,7 +37,7 @@ export default function HomepageInstallation() {
3937
Run SimpleIdServer in containers with our pre-configured Docker setup. Perfect for development and production environments.
4038
</p>
4139
</div>
42-
<div class="installation-item">
40+
<div class="carousel-item installation-item">
4341
<div class="text-primary-500 mb-4">
4442
<i class="fas fa-dharmachakra text-4xl"></i>
4543
</div>
@@ -51,7 +49,7 @@ export default function HomepageInstallation() {
5149
Deploy SimpleIdServer on your Kubernetes cluster with our production-ready manifests for high availability.
5250
</p>
5351
</div>
54-
<div class="installation-item">
52+
<div class="carousel-item installation-item">
5553
<div class="text-primary-500 mb-4">
5654
<i class="fas fa-mobile-alt text-4xl"></i>
5755
</div>
@@ -64,12 +62,18 @@ export default function HomepageInstallation() {
6462
Use our mobile app for secure multi-factor authentication and passwordless login experiences.
6563
</p>
6664
</div>
67-
</div>
65+
</div>
66+
<div class="carousel-control carousel-control-prev">
67+
<i class="fas fa-chevron-left"></i>
68+
</div>
69+
<div class="carousel-control carousel-control-next">
70+
<i class="fas fa-chevron-right"></i>
71+
</div>
6872
<div class="carousel-indicators">
69-
<div class="carousel-indicator active" data-index="0"></div>
70-
<div class="carousel-indicator" data-index="1"></div>
71-
<div class="carousel-indicator" data-index="2"></div>
72-
<div class="carousel-indicator" data-index="3"></div>
73+
<div class="carousel-indicator active" data-slide-to="0"></div>
74+
<div class="carousel-indicator" data-slide-to="1"></div>
75+
<div class="carousel-indicator" data-slide-to="2"></div>
76+
<div class="carousel-indicator" data-slide-to="3"></div>
7377
</div>
7478
</div>
7579
</div>
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
export default function HomePageMigration() {
2+
return (
3+
<section id="migration" class="py-16 px-4 sm:px-6 lg:px-8 bg-white">
4+
<div class="max-w-7xl mx-auto">
5+
<div class="text-center">
6+
<h2 class="text-3xl font-extrabold text-gray-900 sm:text-4xl">
7+
Migration Made Easy
8+
</h2>
9+
<p class="mt-4 max-w-2xl text-xl text-gray-500 mx-auto">
10+
Transition smoothly from other identity solutions with our comprehensive migration tools
11+
</p>
12+
</div>
13+
<div class="migration-container">
14+
<div class="migration-sources">
15+
<a href="https://duendesoftware.com/products/identityserver" target="_blank" class="migration-step">
16+
<div class="migration-icon">
17+
<img src="/img/duende.png" />
18+
</div>
19+
<div class="migration-label">Duende</div>
20+
</a>
21+
<a href="https://documentation.openiddict.com/" target="_blank" class="migration-step">
22+
<div class="migration-icon">
23+
<img src="/img/openiddct.png" />
24+
</div>
25+
<div class="migration-label">OpenIddict</div>
26+
</a>
27+
</div>
28+
<div class="migration-arrow-container">
29+
<div class="arrow-line"></div>
30+
<div class="arrow-head"></div>
31+
<div class="data-particle user">
32+
<i class="fas fa-user"></i>
33+
</div>
34+
<div class="data-particle app">
35+
<i class="fas fa-mobile-alt"></i>
36+
</div>
37+
<div class="data-particle scope">
38+
<div class="scope-bg"></div>
39+
<div class="scope-icon">
40+
<i class="fas fa-shield-alt"></i>
41+
</div>
42+
</div>
43+
<div class="data-particle user">
44+
<i class="fas fa-user"></i>
45+
</div>
46+
<div class="data-particle app">
47+
<i class="fas fa-desktop"></i>
48+
</div>
49+
</div>
50+
<div class="migration-step">
51+
<div class="migration-icon migration-destination">
52+
<img src="/img/logo-no-shield.png" />
53+
</div>
54+
<div class="migration-label">SimpleIdServer</div>
55+
</div>
56+
</div>
57+
</div>
58+
</section>
59+
);
60+
}

website/src/components/HomepageOpenStandards/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React from 'react';
22

33
export default function HomepageOpenStandards() {
44
return (
5-
<section id="standards" className="py-20 bg-white">
5+
<section id="standards" className="py-20 bg-gray-50">
66
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
77
<div className="lg:text-center">
88
<h2 className="text-base text-primary-600 font-semibold tracking-wide uppercase">Supported Standards</h2>

0 commit comments

Comments
 (0)