Git Product home page Git Product logo

simpleidserver / casemanagement Goto Github PK

View Code? Open in Web Editor NEW
22.0 22.0 13.0 9.21 MB

CMMN engine implementation in dotnet core

License: Apache License 2.0

C# 64.10% PowerShell 2.66% Batchfile 0.03% HTML 6.48% TypeScript 17.90% JavaScript 1.24% Gherkin 2.68% SCSS 4.71% EJS 0.19% Shell 0.01%
bpmn case-management cmmn dotnet dotnet-core workflow workflow-engine workflow-management-system ws-humantask

casemanagement's Introduction

Simpleidserver core

SimpleIdServer

Build status Join the chat at https://app.gitter.im/#/room/#simpleidserver:gitter.im

SimpleIdServer is an open source framework enabling the support of OPENID, OAUTH2.0, SCIM2.0, UMA2.0, FAPI and CIBA. It streamlines development, configuration and deployment of custom access control servers. Thanks to its modularity and extensibility, SimpleIdServer can be customized to the specific needs of your organization for authentication, authorization and more.

Website, Documentation and Demo.

Packages

SimpleIdServer.IdServer NuGet NuGet
SimpleIdServer.IdServer.Email NuGet NuGet
SimpleIdServer.IdServer.Sms NuGet NuGet
SimpleIdServer.IdServer.WsFederation NuGet NuGet
SimpleIdServer.Templates NuGet NuGet
SimpleIdServer.Scim NuGet NuGet
SimpleIdServer.Scim.Persistence.EF NuGet NuGet
SimpleIdServer.Scim.Persistence.MongoDB NuGet NuGet
SimpleIdServer.Scim.Client NuGet NuGet
SimpleIdServer.OpenIdConnect NuGet NuGet

Preparation

Install SimpleIdServer templates.

dotnet new --install SimpleIdServer.Templates

This will add the following templates

Command line Description
dotnet new idserver Create Identity Server. By default, Entity Framework is configured to use SQLServer
dotnet new idserverwebsite Create Identity Server website. By default, Entity Framework is configured to use SQLServer
dotnet new scim Create SCIM Server.
dotnet new credissuer Create credential issuer API.
dotnet new credissueradminui Create credential issuer administration UI.

Create Visual Studio Solution

Open a command prompt and execute the following commands to create the directory structure for the solution.

mkdir Quickstart
cd Quickstart
mkdir src
dotnet new sln -n Quickstart

Create IdentityServer project

To create a web project named IdServer with the SimpleIdServer.IdServer package installed, execute the command line :

cd src
dotnet new idserver -n IdServer

The following files will be created within a new src/IdServer directory :

  • IdServer.csproj : Project file with the SimpleIdServer.IdServer NuGet package added.
  • appsettings.json : Contains the ConnectionString.
  • Program.cs : Main application entry point.
  • IdServerConfiguration.cs : Contains the Clients, Resources.

Next, add the IdServer project into the Visual Studio Solution

cd ..
dotnet sln add ./src/IdServer/IdServer.csproj

Run the IdServer project, ensuring that it listens on the URL https://localhost:5001.

cd src/IdServer
dotnet run --urls=https://localhost:5001

The IdentityServer is now ready to be used.

By default, there is one administrator account configured. You can access their profile by navigating to the URL https://localhost:5001/master and authenticate using the following credentials :

  • Login : administrator
  • Password : password

IdentityServer UI preview

The IdentityServer UI uses Bootstrap 5.

IdentityServer

Create IdentityServer website project

create a web project named IdServerWebsite with the SimpleIdServer.IdServer.Website package installed, execute the command line :

cd src
dotnet new idserverwebsite -n IdServerWebsite

Run the IdServerWebsite project, it must listens on the url https://localhost:5002.

cd src/IdServerWebsite
dotnet run --urls=https://localhost:5002

The IdentityServer website is now ready to be used.

The website can be used to manage all aspects of an Identity Server solution, such as managing clients, users, and scopes.

Identity Server website UI preview

The IdentityServer website UI uses Radzen.

IdentityServerWebsite

SCIM Security

By default SCIM is configured to use API KEY authentication. For clients to perform any operation, they must include one of those keys in the HTTP HEADER Authorization Bearer field.

Owner Value
IdServer ba521b3b-02f7-4a37-b03c-58f713bf88e7
AzureAd 1595a72a-2804-495d-8a8a-2c861e7a736a

Create SCIM project with EF support

Create a web project named ScimEF with the SimpleIdServer.Scim.Persistence.EF package installed and Entity Framework (EF) configured to use SQLServer, execute the command line :

cd src
dotnet new scim -n ScimEF --connectionString "Data Source=.;Initial Catalog=SCIM;Integrated Security=True;TrustServerCertificate=True" -t "SQLSERVER"

Next, add the ScimEF project into the Visual Studio Solution

cd ..
dotnet sln add ./src/ScimEF/ScimEF.csproj

Run the ScimEF project, ensuring that it listens on the URL https://localhost:5003.

cd src/SCIMEF
dotnet run --urls=https://localhost:5003

Now that the SCIM server is running, you can check its Schemas endpoint by accessing https://localhost:5003/Schemas.

Create SCIM project with MongoDB support

To create a web project named ScimMongoDB with the SimpleIdServer.Scim.Persistence.MongoDB package installed and MongoDB support, execute the command line :

cd src
dotnet new scim -n ScimMongoDB --connectionString "mongodb://localhost:27017" -t "MONGODB"

Next, add the ScimMongoDB project into the Visual Studio Solution

cd ..
dotnet sln add ./src/ScimMongoDB/ScimMongoDB.csproj

Run the ScimMongoDB project, ensuring that it listens on the URL https://localhost:5003.

cd src/ScimMongoDB
dotnet run --urls=https://localhost:5003

Now that the SCIM server is running, you can check its Schemas endpoint by accessing https://localhost:5003/Schemas.

Create credential issuer project

To create a web project named CredentialIssuer with the SimpleIdServer.CredentialIssuer package installed, execute the command line :

cd src
dotnet new credissuer -n CredentialIssuer

The following files will be created within a new src/CredentialIssuer directory :

  • CredentialIssuer.csproj : Project file with the SimpleIdServer.CredentialIssuer NuGet package added.
  • appsettings.json : Contains the properties to configure the Openid authentication, such as the ClientId, ClientSecret and Issuer.
  • Program.cs : Main application entry point.
  • CredentialIssuerConfiguration.cs : Contains the CredentialConfigurations.

Run the CredentialIssuer project, ensuring that it listens on the URL https://localhost:5005.

cd src/IdServer
dotnet run --urls=https://localhost:5005

The CredentialIssuer is now ready to be used.

Credential issuer UI preview

The CredentialIssuer UI uses Bootstrap 5.

CredentialIssuer

Create credential issuer website project

To create a web project named CredentialIssuerAdminui with the SimpleIdServer.CredentialIssuer.Website package installed, execute the command line :

cd src
dotnet new credissueradminui -n CredentialIssuerAdminui

Run the CredentialIssuerAdminui project, it must listens on the url https://localhost:5006.

cd src/IdServerWebsite
dotnet run --urls=https://localhost:5006

The credential issuer administration ui is now ready to be used.

The website can be used to manage the credential configurations.

Credential issuer website UI preview

The CredentialIssuer website UI uses Radzen.

CredentialIssuerAdminUi

Running with docker

To execute all the projects in Docker, execute the following commands :

psake dockerBuild
psake dockerUp

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Contact us

To contact the team, you can send an email to [email protected] or share your ideas in gitter.im. The invitation link is https://app.gitter.im/#/room/#simpleidserver:gitter.im

casemanagement's People

Contributors

simpleidserver avatar thabart avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

casemanagement's Issues

Splitting CaseManagement.CMMN

Hi,

I am currently evaluating open source CMMN engines for use in a project. The options I am reviewing at the moment are:

  • CaseManagement.CMMN
  • Camundra

With Camundra the engine is Java based and would mean interop with our .Net stack via its Rest API. Which is an ok solution but not ideal. It would also be a black box as the team has limited java exposure and there is no budget for an enterprise license.

With the CaseManagement.CMMN component there is a problem with the current structure of the code, for example the interfaces for the repositories, for a production system there would need to be durable implementations created, for example to use SQL server or cosmos db.

The problem is as it stands this would create a circular reference CaseManagement.CMMN -> CaseManagment.Persistance.Sql (The new Sql server implementations) -> CaseManagement.CMMN

I have already split the project up to work around this issue, in an azure devops repo, but that would basically mean that I have forked completely await from the root project which is far from ideal.

My question is would you be interested splitting out the CaseManagement.CMMN engine into a separate repo and accepting back the project structure refactoring changes?

There are a few other enhancements made to the code that could also be pushed back in to the main repo like logging, unit tests and a few additional checks.

Also would you mind answering a few technical Q's by the way of support that we (the small project team ~ 3) may have when we start using the component in anger?

BTW FWIW This is really a nice project and I think it has great potential as a java CMMN alternative.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.