Skip to content
This repository has been archived by the owner on Sep 4, 2023. It is now read-only.
Martin Cook edited this page Feb 19, 2023 · 7 revisions

logo

Welcome to the CG.Green wiki!

Green is an attempt to make an identity microservice that can support multiple clients, users, and/or devices. Towards that end, we have wrapped the Duende and ASP.NET identity libraries in a server-side Blazor host. Along the way, we've also added some administrative and nice-to-have debugging features.

Overall Design

The overall design of Green is such that we've isolated various pieces of the project from each other, in order to be more flexible and (hopefully) more reliable. Here is the overall architecture of the solution:

overall design

  • The grey pieces, CG.Green.Abstractions and CG.Green.Primitives, contain low-level code that is shared throughout the project.

  • The blue piece, CG.Green, contains the core business logic for the microservice.

  • The magenta pieces, CG.Green.Admin and CG.Green.Identity, contain UI code for identity and administrative operations.

  • The yellow piece, CG.Green.Controllers, contains REST controllers and support logic for the microservice.

  • The light green piece, CG.Green.Data, contains the core data-access logic for the microservice.

  • The dark green pieces contain EFCORE migrations for specific database providers.

  • The pink piece, CG.Green.Host, contains the server-side Blazor host for the microservice.

Each project in the solution has its own README file, containing pertinent notes, comments, and insights.

Database Design

The current database design (subject to change) looks like this:

Here is the current Duende side of the database:

duende database

Here is the current ASP.NET side of the database:

aspnet database

We've not (as of yet, anyway) changed the database schema for either the Duende or ASP.NET sides of the database. If and when we decide to add any custom tables, etc, we'll most likely spin up a separate data-context for that purpose. That way, we can upgrade to newer versions of either Duende, or ASP.NET, without have our own customizations get in the way.

We currently have all the tables in the "Green" database schema. We did that so we have the option to stand up a Green instance with a shared database, where the possibility of name clashes will (hopefully) be reduced.

Clone this wiki locally