diff --git a/Directory.Packages.props b/Directory.Packages.props index 68c68bcf0..9fa854ac7 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -72,6 +72,7 @@ + @@ -105,7 +106,6 @@ - @@ -170,7 +170,9 @@ - - + + + + \ No newline at end of file diff --git a/Elsa.sln b/Elsa.sln index 9cb076af1..de7cd82fb 100644 --- a/Elsa.sln +++ b/Elsa.sln @@ -60,18 +60,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Labels", "src\modules\ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "bundles", "bundles", "{F06B9573-DF68-4606-866C-A7546A10A05A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa", "src\bundles\Elsa\Elsa.csproj", "{FC5D2CE9-FFB0-478D-8D54-E4109D1FD202}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Liquid", "src\modules\Elsa.Liquid\Elsa.Liquid.csproj", "{8E5BD3D9-3529-48BC-B741-CFB7A69DB233}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.ProtoActor", "src\modules\Elsa.ProtoActor\Elsa.ProtoActor.csproj", "{B2049499-D384-46DF-8837-F1180107DD54}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Dsl", "src\modules\Elsa.Dsl\Elsa.Dsl.csproj", "{78DAB791-8595-4612-8E9E-2248AF5B1862}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.ServerAndStudio.Web", "src\bundles\Elsa.ServerAndStudio.Web\Elsa.ServerAndStudio.Web.csproj", "{E31F8955-B221-48AA-B301-6EE317D6F5B1}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Server.Web", "src\bundles\Elsa.Server.Web\Elsa.Server.Web.csproj", "{3C2752A7-EEBC-4ED4-B1BF-0FCF6E071BC2}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Workflows.Api", "src\modules\Elsa.Workflows.Api\Elsa.Workflows.Api.csproj", "{C9539BD8-D2AE-4A8D-8281-71A05B3FBF31}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Workflows.Core", "src\modules\Elsa.Workflows.Core\Elsa.Workflows.Core.csproj", "{169E2C9B-6687-427F-A278-30BF849BFEDC}" @@ -127,6 +121,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docker", "docker", "{986E54 docker\docker-compose.yml = docker\docker-compose.yml docker\docker-compose-datadog.yml = docker\docker-compose-datadog.yml docker\ElsaServer-Datadog.Dockerfile = docker\ElsaServer-Datadog.Dockerfile + docker\init-db.sh = docker\init-db.sh EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Samples.AspNet.RunTaskIntegration", "samples\aspnet\Elsa.Samples.AspNet.RunTaskIntegration\Elsa.Samples.AspNet.RunTaskIntegration.csproj", "{51050209-EC2F-4DC7-8F46-07E22B7811CD}" @@ -260,8 +255,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.EntityFrameworkCore.Po EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Alterations.MassTransit", "src\modules\Elsa.Alterations.MassTransit\Elsa.Alterations.MassTransit.csproj", "{1F621382-08FB-45EA-B94C-96A7FECB9489}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ElsaStudioWebAssembly", "src\bundles\ElsaStudioWebAssembly\ElsaStudioWebAssembly.csproj", "{E12A1BDF-5D65-493B-835D-AFBC480A5650}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.EntityFrameworkCore.Common", "src\modules\Elsa.EntityFrameworkCore.Common\Elsa.EntityFrameworkCore.Common.csproj", "{FBA14F8A-9F14-4364-ABDB-B8AE81A0D755}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Quartz.EntityFrameworkCore.Sqlite", "src\modules\Elsa.Quartz.EntityFrameworkCore.Sqlite\Elsa.Quartz.EntityFrameworkCore.Sqlite.csproj", "{A71557F2-D5FB-4772-9391-F7D18A3B6C44}" @@ -301,8 +294,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "_build", "build\_build.cspr EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Samples.AspNet.BatchProcessing", "samples\aspnet\Elsa.Samples.AspNet.BatchProcessing\Elsa.Samples.AspNet.BatchProcessing.csproj", "{0AAF5EF6-02E5-44F9-B2CB-B1401FC5EF66}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Studio.Web", "src\bundles\Elsa.Studio.Web\Elsa.Studio.Web.csproj", "{F0385327-CEDE-4CD4-88A5-B66E73E75B28}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Samples.AspNet.CustomUIHandler", "samples\aspnet\Elsa.Samples.AspNet.CustomUIHandler\Elsa.Samples.AspNet.CustomUIHandler.csproj", "{E4BF9791-4086-41EB-8EF0-02686A5F3F65}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Samples.AspNet.Heartbeats", "samples\aspnet\Elsa.Samples.AspNet.Heartbeats\Elsa.Samples.AspNet.Heartbeats.csproj", "{73852FEC-9847-4C6C-B1F5-1BB014C50A79}" @@ -328,8 +319,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.KeyValues", "src\modul EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Workflows.Runtime.UnitTests", "test\unit\Elsa.Workflows.Runtime.UnitTests\Elsa.Workflows.Runtime.UnitTests.csproj", "{B0946844-DE0E-4C59-9391-C0EB649DBF4E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Server.LoadBalancer", "src\bundles\Elsa.Server.LoadBalancer\Elsa.Server.LoadBalancer.csproj", "{7C1E6DD9-C7DE-4686-AA73-D67A15D005A1}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Caching", "src\modules\Elsa.Caching\Elsa.Caching.csproj", "{A1FE2CA0-8EF3-4EDB-9055-DD282E374E16}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "caching", "caching", "{EB3A7401-0DE3-476F-9E6F-057F1F4590FB}" @@ -367,6 +356,23 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Samples.AspNet.Tenants EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elsa.Samples.AspNet.Tenants.External", "samples\aspnet\Elsa.Samples.AspNet.Tenants.External\Elsa.Samples.AspNet.Tenants.External.csproj", "{1B9E55EB-4379-4B95-9F84-EEEB5AA20987}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "apps", "apps", "{D92BEAB2-60D6-4BB4-885A-6BA681C6CCF1}" + ProjectSection(SolutionItems) = preProject + src\apps\Directory.Build.props = src\apps\Directory.Build.props + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Server.Web", "src\apps\Elsa.Server.Web\Elsa.Server.Web.csproj", "{5ADDDFB1-E59B-4097-97B7-8C24E2D60463}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa", "src\modules\Elsa\Elsa.csproj", "{97C7E531-9D5F-43FD-AA19-BF24DA13B612}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Server.LoadBalancer", "src\apps\Elsa.Server.LoadBalancer\Elsa.Server.LoadBalancer.csproj", "{65F2AD97-3ECF-4BA6-8AAA-1E5882FDCE68}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ElsaStudioWebAssembly", "src\apps\ElsaStudioWebAssembly\ElsaStudioWebAssembly.csproj", "{690B0274-291F-4D9E-BA76-54EFF7D3E4BC}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.ServerAndStudio.Web", "src\apps\Elsa.ServerAndStudio.Web\Elsa.ServerAndStudio.Web.csproj", "{060FD0BA-BD78-48E1-A8A7-4906A5AD5E39}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elsa.Studio.Web", "src\apps\Elsa.Studio.Web\Elsa.Studio.Web.csproj", "{169A82A5-2DB3-40EA-801E-14C08D743DF7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -409,10 +415,6 @@ Global {80FF5821-E831-450D-AA0C-C76D07D878F4}.Debug|Any CPU.Build.0 = Debug|Any CPU {80FF5821-E831-450D-AA0C-C76D07D878F4}.Release|Any CPU.ActiveCfg = Release|Any CPU {80FF5821-E831-450D-AA0C-C76D07D878F4}.Release|Any CPU.Build.0 = Release|Any CPU - {FC5D2CE9-FFB0-478D-8D54-E4109D1FD202}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FC5D2CE9-FFB0-478D-8D54-E4109D1FD202}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FC5D2CE9-FFB0-478D-8D54-E4109D1FD202}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FC5D2CE9-FFB0-478D-8D54-E4109D1FD202}.Release|Any CPU.Build.0 = Release|Any CPU {8E5BD3D9-3529-48BC-B741-CFB7A69DB233}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8E5BD3D9-3529-48BC-B741-CFB7A69DB233}.Debug|Any CPU.Build.0 = Debug|Any CPU {8E5BD3D9-3529-48BC-B741-CFB7A69DB233}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -425,14 +427,6 @@ Global {78DAB791-8595-4612-8E9E-2248AF5B1862}.Debug|Any CPU.Build.0 = Debug|Any CPU {78DAB791-8595-4612-8E9E-2248AF5B1862}.Release|Any CPU.ActiveCfg = Release|Any CPU {78DAB791-8595-4612-8E9E-2248AF5B1862}.Release|Any CPU.Build.0 = Release|Any CPU - {E31F8955-B221-48AA-B301-6EE317D6F5B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E31F8955-B221-48AA-B301-6EE317D6F5B1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E31F8955-B221-48AA-B301-6EE317D6F5B1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E31F8955-B221-48AA-B301-6EE317D6F5B1}.Release|Any CPU.Build.0 = Release|Any CPU - {3C2752A7-EEBC-4ED4-B1BF-0FCF6E071BC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3C2752A7-EEBC-4ED4-B1BF-0FCF6E071BC2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3C2752A7-EEBC-4ED4-B1BF-0FCF6E071BC2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3C2752A7-EEBC-4ED4-B1BF-0FCF6E071BC2}.Release|Any CPU.Build.0 = Release|Any CPU {C9539BD8-D2AE-4A8D-8281-71A05B3FBF31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C9539BD8-D2AE-4A8D-8281-71A05B3FBF31}.Debug|Any CPU.Build.0 = Debug|Any CPU {C9539BD8-D2AE-4A8D-8281-71A05B3FBF31}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -725,10 +719,6 @@ Global {1F621382-08FB-45EA-B94C-96A7FECB9489}.Debug|Any CPU.Build.0 = Debug|Any CPU {1F621382-08FB-45EA-B94C-96A7FECB9489}.Release|Any CPU.ActiveCfg = Release|Any CPU {1F621382-08FB-45EA-B94C-96A7FECB9489}.Release|Any CPU.Build.0 = Release|Any CPU - {E12A1BDF-5D65-493B-835D-AFBC480A5650}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E12A1BDF-5D65-493B-835D-AFBC480A5650}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E12A1BDF-5D65-493B-835D-AFBC480A5650}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E12A1BDF-5D65-493B-835D-AFBC480A5650}.Release|Any CPU.Build.0 = Release|Any CPU {FBA14F8A-9F14-4364-ABDB-B8AE81A0D755}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {FBA14F8A-9F14-4364-ABDB-B8AE81A0D755}.Debug|Any CPU.Build.0 = Debug|Any CPU {FBA14F8A-9F14-4364-ABDB-B8AE81A0D755}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -779,10 +769,6 @@ Global {0AAF5EF6-02E5-44F9-B2CB-B1401FC5EF66}.Debug|Any CPU.Build.0 = Debug|Any CPU {0AAF5EF6-02E5-44F9-B2CB-B1401FC5EF66}.Release|Any CPU.ActiveCfg = Release|Any CPU {0AAF5EF6-02E5-44F9-B2CB-B1401FC5EF66}.Release|Any CPU.Build.0 = Release|Any CPU - {F0385327-CEDE-4CD4-88A5-B66E73E75B28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F0385327-CEDE-4CD4-88A5-B66E73E75B28}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F0385327-CEDE-4CD4-88A5-B66E73E75B28}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F0385327-CEDE-4CD4-88A5-B66E73E75B28}.Release|Any CPU.Build.0 = Release|Any CPU {E4BF9791-4086-41EB-8EF0-02686A5F3F65}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E4BF9791-4086-41EB-8EF0-02686A5F3F65}.Debug|Any CPU.Build.0 = Debug|Any CPU {E4BF9791-4086-41EB-8EF0-02686A5F3F65}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -815,10 +801,6 @@ Global {B0946844-DE0E-4C59-9391-C0EB649DBF4E}.Debug|Any CPU.Build.0 = Debug|Any CPU {B0946844-DE0E-4C59-9391-C0EB649DBF4E}.Release|Any CPU.ActiveCfg = Release|Any CPU {B0946844-DE0E-4C59-9391-C0EB649DBF4E}.Release|Any CPU.Build.0 = Release|Any CPU - {7C1E6DD9-C7DE-4686-AA73-D67A15D005A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7C1E6DD9-C7DE-4686-AA73-D67A15D005A1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7C1E6DD9-C7DE-4686-AA73-D67A15D005A1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7C1E6DD9-C7DE-4686-AA73-D67A15D005A1}.Release|Any CPU.Build.0 = Release|Any CPU {A1FE2CA0-8EF3-4EDB-9055-DD282E374E16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A1FE2CA0-8EF3-4EDB-9055-DD282E374E16}.Debug|Any CPU.Build.0 = Debug|Any CPU {A1FE2CA0-8EF3-4EDB-9055-DD282E374E16}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -879,6 +861,30 @@ Global {1B9E55EB-4379-4B95-9F84-EEEB5AA20987}.Debug|Any CPU.Build.0 = Debug|Any CPU {1B9E55EB-4379-4B95-9F84-EEEB5AA20987}.Release|Any CPU.ActiveCfg = Release|Any CPU {1B9E55EB-4379-4B95-9F84-EEEB5AA20987}.Release|Any CPU.Build.0 = Release|Any CPU + {5ADDDFB1-E59B-4097-97B7-8C24E2D60463}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5ADDDFB1-E59B-4097-97B7-8C24E2D60463}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5ADDDFB1-E59B-4097-97B7-8C24E2D60463}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5ADDDFB1-E59B-4097-97B7-8C24E2D60463}.Release|Any CPU.Build.0 = Release|Any CPU + {97C7E531-9D5F-43FD-AA19-BF24DA13B612}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97C7E531-9D5F-43FD-AA19-BF24DA13B612}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97C7E531-9D5F-43FD-AA19-BF24DA13B612}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97C7E531-9D5F-43FD-AA19-BF24DA13B612}.Release|Any CPU.Build.0 = Release|Any CPU + {65F2AD97-3ECF-4BA6-8AAA-1E5882FDCE68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {65F2AD97-3ECF-4BA6-8AAA-1E5882FDCE68}.Debug|Any CPU.Build.0 = Debug|Any CPU + {65F2AD97-3ECF-4BA6-8AAA-1E5882FDCE68}.Release|Any CPU.ActiveCfg = Release|Any CPU + {65F2AD97-3ECF-4BA6-8AAA-1E5882FDCE68}.Release|Any CPU.Build.0 = Release|Any CPU + {690B0274-291F-4D9E-BA76-54EFF7D3E4BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {690B0274-291F-4D9E-BA76-54EFF7D3E4BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {690B0274-291F-4D9E-BA76-54EFF7D3E4BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {690B0274-291F-4D9E-BA76-54EFF7D3E4BC}.Release|Any CPU.Build.0 = Release|Any CPU + {060FD0BA-BD78-48E1-A8A7-4906A5AD5E39}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {060FD0BA-BD78-48E1-A8A7-4906A5AD5E39}.Debug|Any CPU.Build.0 = Debug|Any CPU + {060FD0BA-BD78-48E1-A8A7-4906A5AD5E39}.Release|Any CPU.ActiveCfg = Release|Any CPU + {060FD0BA-BD78-48E1-A8A7-4906A5AD5E39}.Release|Any CPU.Build.0 = Release|Any CPU + {169A82A5-2DB3-40EA-801E-14C08D743DF7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {169A82A5-2DB3-40EA-801E-14C08D743DF7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {169A82A5-2DB3-40EA-801E-14C08D743DF7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {169A82A5-2DB3-40EA-801E-14C08D743DF7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -898,12 +904,9 @@ Global {BB983D0B-A939-4008-B9E3-C7C172BCF83A} = {DD089B8B-DA73-492A-9010-F772D1C178DA} {80FF5821-E831-450D-AA0C-C76D07D878F4} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79} {F06B9573-DF68-4606-866C-A7546A10A05A} = {61017E64-6D00-49CB-9E81-5002DC8F7D5F} - {FC5D2CE9-FFB0-478D-8D54-E4109D1FD202} = {F06B9573-DF68-4606-866C-A7546A10A05A} {8E5BD3D9-3529-48BC-B741-CFB7A69DB233} = {6EF07978-A6D2-40EB-891D-7D70C5F37E76} {B2049499-D384-46DF-8837-F1180107DD54} = {58C59255-281C-4595-8732-808158F1DC6E} {78DAB791-8595-4612-8E9E-2248AF5B1862} = {6EF07978-A6D2-40EB-891D-7D70C5F37E76} - {E31F8955-B221-48AA-B301-6EE317D6F5B1} = {F06B9573-DF68-4606-866C-A7546A10A05A} - {3C2752A7-EEBC-4ED4-B1BF-0FCF6E071BC2} = {F06B9573-DF68-4606-866C-A7546A10A05A} {C9539BD8-D2AE-4A8D-8281-71A05B3FBF31} = {B08B4E00-C2AB-48F3-8389-449F42AEF179} {169E2C9B-6687-427F-A278-30BF849BFEDC} = {B08B4E00-C2AB-48F3-8389-449F42AEF179} {2DD5D66B-85E9-4AF9-911C-C9F963234159} = {B08B4E00-C2AB-48F3-8389-449F42AEF179} @@ -990,7 +993,6 @@ Global {E4300D97-1D53-4029-9435-483FB7EC9621} = {9B4F139F-7D26-435C-A561-89E65A67A8E5} {84AB9951-3DBF-43A4-8F5D-AEED1102CE88} = {9B4F139F-7D26-435C-A561-89E65A67A8E5} {1F621382-08FB-45EA-B94C-96A7FECB9489} = {CF3DA5F1-F98D-49C9-A980-27E570B38B8D} - {E12A1BDF-5D65-493B-835D-AFBC480A5650} = {F06B9573-DF68-4606-866C-A7546A10A05A} {FBA14F8A-9F14-4364-ABDB-B8AE81A0D755} = {9B4F139F-7D26-435C-A561-89E65A67A8E5} {A71557F2-D5FB-4772-9391-F7D18A3B6C44} = {AB797AF0-C12C-46DE-A157-7E25625C6200} {05F3B23E-CF28-467B-AD3C-595EA4ED6B96} = {AB797AF0-C12C-46DE-A157-7E25625C6200} @@ -1004,7 +1006,6 @@ Global {790E94F2-5393-47DF-AC52-D9247F5B243A} = {6EF07978-A6D2-40EB-891D-7D70C5F37E76} {169BEA3D-2A81-47EE-A6C1-3F8719EEC1F6} = {DD089B8B-DA73-492A-9010-F772D1C178DA} {0AAF5EF6-02E5-44F9-B2CB-B1401FC5EF66} = {56C2FFB8-EA54-45B5-A095-4A78142EB4B5} - {F0385327-CEDE-4CD4-88A5-B66E73E75B28} = {F06B9573-DF68-4606-866C-A7546A10A05A} {E4BF9791-4086-41EB-8EF0-02686A5F3F65} = {56C2FFB8-EA54-45B5-A095-4A78142EB4B5} {73852FEC-9847-4C6C-B1F5-1BB014C50A79} = {56C2FFB8-EA54-45B5-A095-4A78142EB4B5} {AFEB799E-82C3-4D02-9D5C-766BB8DEF004} = {DD089B8B-DA73-492A-9010-F772D1C178DA} @@ -1014,7 +1015,6 @@ Global {73BBB1E3-AEEC-44E8-83D7-6DD9CD687FE3} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79} {086A7E2A-6CE7-41DA-927B-C033638060B1} = {56C2FFB8-EA54-45B5-A095-4A78142EB4B5} {B0946844-DE0E-4C59-9391-C0EB649DBF4E} = {18453B51-25EB-4317-A4B3-B10518252E92} - {7C1E6DD9-C7DE-4686-AA73-D67A15D005A1} = {F06B9573-DF68-4606-866C-A7546A10A05A} {EB3A7401-0DE3-476F-9E6F-057F1F4590FB} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79} {A1FE2CA0-8EF3-4EDB-9055-DD282E374E16} = {EB3A7401-0DE3-476F-9E6F-057F1F4590FB} {BF4CDE28-F0CC-482D-8392-C1C9BB4C368F} = {EB3A7401-0DE3-476F-9E6F-057F1F4590FB} @@ -1032,6 +1032,13 @@ Global {7F5A304F-7DD9-4A64-8FCD-9B1FF06735B9} = {08B41FFA-CEE3-46A7-B5C0-3EB65D37A16C} {9A6395A7-9F82-4F82-BFCB-1EBC38F0A86D} = {56C2FFB8-EA54-45B5-A095-4A78142EB4B5} {1B9E55EB-4379-4B95-9F84-EEEB5AA20987} = {56C2FFB8-EA54-45B5-A095-4A78142EB4B5} + {D92BEAB2-60D6-4BB4-885A-6BA681C6CCF1} = {61017E64-6D00-49CB-9E81-5002DC8F7D5F} + {5ADDDFB1-E59B-4097-97B7-8C24E2D60463} = {D92BEAB2-60D6-4BB4-885A-6BA681C6CCF1} + {97C7E531-9D5F-43FD-AA19-BF24DA13B612} = {5BA4A8FA-F7F4-45B3-AEC8-8886D35AAC79} + {65F2AD97-3ECF-4BA6-8AAA-1E5882FDCE68} = {D92BEAB2-60D6-4BB4-885A-6BA681C6CCF1} + {690B0274-291F-4D9E-BA76-54EFF7D3E4BC} = {D92BEAB2-60D6-4BB4-885A-6BA681C6CCF1} + {060FD0BA-BD78-48E1-A8A7-4906A5AD5E39} = {D92BEAB2-60D6-4BB4-885A-6BA681C6CCF1} + {169A82A5-2DB3-40EA-801E-14C08D743DF7} = {D92BEAB2-60D6-4BB4-885A-6BA681C6CCF1} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {D4B5CEAA-7D70-4FCB-A68E-B03FBE5E0E5E} diff --git a/Elsa.sln.DotSettings b/Elsa.sln.DotSettings index fcce66d42..eb308f604 100644 --- a/Elsa.sln.DotSettings +++ b/Elsa.sln.DotSettings @@ -1,4 +1,4 @@ - + False 1000 1 @@ -14,6 +14,7 @@ True True True + True True True True diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 057ba4b50..da41c142f 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -10,6 +10,7 @@ services: POSTGRES_DB: elsa volumes: - postgres-data:/var/lib/postgresql/data + - ./init-db.sh:/docker-entrypoint-initdb.d/init-db.sh # This will initialize the 'tracelens' database ports: - "5432:5432" @@ -41,6 +42,22 @@ services: image: redis:latest ports: - "127.0.0.1:6379:6379" + + plantuml-server: + image: plantuml/plantuml-server:tomcat + container_name: plantuml-server + ports: + - 7080:8080 + + trace-lens: + image: docker.io/rogeralsing/tracelens:latest + pull_policy: always + ports: + - 7001:5001 + - 4317:4317 + environment: + - PlantUml__RemoteUrl= + - ConnectionStrings__DefaultConnection=USER ID=tracelens;PASSWORD=tracelenspass;HOST=postgres;PORT=5432;DATABASE=tracelens;POOLING=true; elsa-server: build: diff --git a/docker/init-db.sh b/docker/init-db.sh new file mode 100755 index 000000000..5185802ba --- /dev/null +++ b/docker/init-db.sh @@ -0,0 +1,9 @@ +echo "Starting database initialization" + +psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL + CREATE USER tracelens WITH PASSWORD 'tracelenspass'; + CREATE DATABASE tracelens; + GRANT ALL PRIVILEGES ON DATABASE tracelens TO tracelens; +EOSQL + +echo "Database initialization completed" \ No newline at end of file diff --git a/samples/aspnet/Elsa.Samples.AspNet.AzureServiceBusActivities/Elsa.Samples.AspNet.AzureServiceBusActivities.csproj b/samples/aspnet/Elsa.Samples.AspNet.AzureServiceBusActivities/Elsa.Samples.AspNet.AzureServiceBusActivities.csproj index 169107f35..11bf6c9fd 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.AzureServiceBusActivities/Elsa.Samples.AspNet.AzureServiceBusActivities.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.AzureServiceBusActivities/Elsa.Samples.AspNet.AzureServiceBusActivities.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.BatchProcessing/Elsa.Samples.AspNet.BatchProcessing.csproj b/samples/aspnet/Elsa.Samples.AspNet.BatchProcessing/Elsa.Samples.AspNet.BatchProcessing.csproj index a07fd8c94..d71c5c367 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.BatchProcessing/Elsa.Samples.AspNet.BatchProcessing.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.BatchProcessing/Elsa.Samples.AspNet.BatchProcessing.csproj @@ -7,7 +7,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.ChildWorkflows/Elsa.Samples.AspNet.ChildWorkflows.csproj b/samples/aspnet/Elsa.Samples.AspNet.ChildWorkflows/Elsa.Samples.AspNet.ChildWorkflows.csproj index b0c82c759..96af37ee9 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.ChildWorkflows/Elsa.Samples.AspNet.ChildWorkflows.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.ChildWorkflows/Elsa.Samples.AspNet.ChildWorkflows.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.CustomUIHandler/Elsa.Samples.AspNet.CustomUIHandler.csproj b/samples/aspnet/Elsa.Samples.AspNet.CustomUIHandler/Elsa.Samples.AspNet.CustomUIHandler.csproj index bfb5c6320..5050ffce1 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.CustomUIHandler/Elsa.Samples.AspNet.CustomUIHandler.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.CustomUIHandler/Elsa.Samples.AspNet.CustomUIHandler.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.DapperPersistence/Elsa.Samples.AspNet.DapperPersistence.csproj b/samples/aspnet/Elsa.Samples.AspNet.DapperPersistence/Elsa.Samples.AspNet.DapperPersistence.csproj index c752002b2..726a632d0 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.DapperPersistence/Elsa.Samples.AspNet.DapperPersistence.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.DapperPersistence/Elsa.Samples.AspNet.DapperPersistence.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.DocumentApproval/Elsa.Samples.AspNet.DocumentApproval.csproj b/samples/aspnet/Elsa.Samples.AspNet.DocumentApproval/Elsa.Samples.AspNet.DocumentApproval.csproj index f58f2ff09..fd40331b1 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.DocumentApproval/Elsa.Samples.AspNet.DocumentApproval.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.DocumentApproval/Elsa.Samples.AspNet.DocumentApproval.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.DslWorkflowProvider/Elsa.Samples.AspNet.DslWorkflowProvider.csproj b/samples/aspnet/Elsa.Samples.AspNet.DslWorkflowProvider/Elsa.Samples.AspNet.DslWorkflowProvider.csproj index 60c4b3021..688d60df7 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.DslWorkflowProvider/Elsa.Samples.AspNet.DslWorkflowProvider.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.DslWorkflowProvider/Elsa.Samples.AspNet.DslWorkflowProvider.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.DynamicActivityProvider/Elsa.Samples.AspNet.DynamicActivityProvider.csproj b/samples/aspnet/Elsa.Samples.AspNet.DynamicActivityProvider/Elsa.Samples.AspNet.DynamicActivityProvider.csproj index 13497c81c..cc37db3bf 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.DynamicActivityProvider/Elsa.Samples.AspNet.DynamicActivityProvider.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.DynamicActivityProvider/Elsa.Samples.AspNet.DynamicActivityProvider.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.ElasticsearchStorage/Elsa.Samples.AspNet.ElasticsearchStorage.csproj b/samples/aspnet/Elsa.Samples.AspNet.ElasticsearchStorage/Elsa.Samples.AspNet.ElasticsearchStorage.csproj index 174ad9bc8..50d21cbe0 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.ElasticsearchStorage/Elsa.Samples.AspNet.ElasticsearchStorage.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.ElasticsearchStorage/Elsa.Samples.AspNet.ElasticsearchStorage.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.EntityFrameworkCore.PostgresSql/Elsa.Samples.AspNet.EntityFrameworkCore.PostgresSql.csproj b/samples/aspnet/Elsa.Samples.AspNet.EntityFrameworkCore.PostgresSql/Elsa.Samples.AspNet.EntityFrameworkCore.PostgresSql.csproj index b0593ffb9..d92cb6726 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.EntityFrameworkCore.PostgresSql/Elsa.Samples.AspNet.EntityFrameworkCore.PostgresSql.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.EntityFrameworkCore.PostgresSql/Elsa.Samples.AspNet.EntityFrameworkCore.PostgresSql.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.HangfireIntegration/Elsa.Samples.AspNet.HangfireIntegration.csproj b/samples/aspnet/Elsa.Samples.AspNet.HangfireIntegration/Elsa.Samples.AspNet.HangfireIntegration.csproj index 45561ff63..00ecc0b8b 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.HangfireIntegration/Elsa.Samples.AspNet.HangfireIntegration.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.HangfireIntegration/Elsa.Samples.AspNet.HangfireIntegration.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.Heartbeats/Elsa.Samples.AspNet.Heartbeats.csproj b/samples/aspnet/Elsa.Samples.AspNet.Heartbeats/Elsa.Samples.AspNet.Heartbeats.csproj index 5054debab..c9da5e31e 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.Heartbeats/Elsa.Samples.AspNet.Heartbeats.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.Heartbeats/Elsa.Samples.AspNet.Heartbeats.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.HelloWorld/Elsa.Samples.AspNet.HelloWorld.csproj b/samples/aspnet/Elsa.Samples.AspNet.HelloWorld/Elsa.Samples.AspNet.HelloWorld.csproj index d3ed39be5..965626433 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.HelloWorld/Elsa.Samples.AspNet.HelloWorld.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.HelloWorld/Elsa.Samples.AspNet.HelloWorld.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.HttpEndpoints/Elsa.Samples.AspNet.HttpEndpoints.csproj b/samples/aspnet/Elsa.Samples.AspNet.HttpEndpoints/Elsa.Samples.AspNet.HttpEndpoints.csproj index ff6e9d5f7..bdf966a67 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.HttpEndpoints/Elsa.Samples.AspNet.HttpEndpoints.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.HttpEndpoints/Elsa.Samples.AspNet.HttpEndpoints.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.JsonWorkflowProvider/Elsa.Samples.AspNet.JsonWorkflowProvider.csproj b/samples/aspnet/Elsa.Samples.AspNet.JsonWorkflowProvider/Elsa.Samples.AspNet.JsonWorkflowProvider.csproj index 86e9940a6..19ebd959b 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.JsonWorkflowProvider/Elsa.Samples.AspNet.JsonWorkflowProvider.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.JsonWorkflowProvider/Elsa.Samples.AspNet.JsonWorkflowProvider.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.MassTransitActivities/Elsa.Samples.AspNet.MassTransitActivities.csproj b/samples/aspnet/Elsa.Samples.AspNet.MassTransitActivities/Elsa.Samples.AspNet.MassTransitActivities.csproj index 9de912f82..578277034 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.MassTransitActivities/Elsa.Samples.AspNet.MassTransitActivities.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.MassTransitActivities/Elsa.Samples.AspNet.MassTransitActivities.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.MassTransitWorkflow/Elsa.Samples.AspNet.MassTransitWorkflow.csproj b/samples/aspnet/Elsa.Samples.AspNet.MassTransitWorkflow/Elsa.Samples.AspNet.MassTransitWorkflow.csproj index 9de912f82..578277034 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.MassTransitWorkflow/Elsa.Samples.AspNet.MassTransitWorkflow.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.MassTransitWorkflow/Elsa.Samples.AspNet.MassTransitWorkflow.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.MongoDbPersistence/Elsa.Samples.AspNet.MongoDbPersistence.csproj b/samples/aspnet/Elsa.Samples.AspNet.MongoDbPersistence/Elsa.Samples.AspNet.MongoDbPersistence.csproj index debf81bfe..4c9b9ddbb 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.MongoDbPersistence/Elsa.Samples.AspNet.MongoDbPersistence.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.MongoDbPersistence/Elsa.Samples.AspNet.MongoDbPersistence.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.MyBackendApi/Elsa.Samples.AspNet.MyBackendApi.csproj b/samples/aspnet/Elsa.Samples.AspNet.MyBackendApi/Elsa.Samples.AspNet.MyBackendApi.csproj index 90288d4b0..018e9f96f 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.MyBackendApi/Elsa.Samples.AspNet.MyBackendApi.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.MyBackendApi/Elsa.Samples.AspNet.MyBackendApi.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.Onboarding.WorkflowServer/Elsa.Samples.AspNet.Onboarding.WorkflowServer.csproj b/samples/aspnet/Elsa.Samples.AspNet.Onboarding.WorkflowServer/Elsa.Samples.AspNet.Onboarding.WorkflowServer.csproj index e36e42033..3d79a3360 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.Onboarding.WorkflowServer/Elsa.Samples.AspNet.Onboarding.WorkflowServer.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.Onboarding.WorkflowServer/Elsa.Samples.AspNet.Onboarding.WorkflowServer.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.ProtoActorRuntime.AzureContainerApps/Elsa.Samples.AspNet.ProtoActorRuntime.AzureContainerApps.csproj b/samples/aspnet/Elsa.Samples.AspNet.ProtoActorRuntime.AzureContainerApps/Elsa.Samples.AspNet.ProtoActorRuntime.AzureContainerApps.csproj index 1d2b12563..3c143843c 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.ProtoActorRuntime.AzureContainerApps/Elsa.Samples.AspNet.ProtoActorRuntime.AzureContainerApps.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.ProtoActorRuntime.AzureContainerApps/Elsa.Samples.AspNet.ProtoActorRuntime.AzureContainerApps.csproj @@ -12,7 +12,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.ProtoActorRuntime.AzureContainerApps/Program.cs b/samples/aspnet/Elsa.Samples.AspNet.ProtoActorRuntime.AzureContainerApps/Program.cs index 88545bbaa..1bf4a41f5 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.ProtoActorRuntime.AzureContainerApps/Program.cs +++ b/samples/aspnet/Elsa.Samples.AspNet.ProtoActorRuntime.AzureContainerApps/Program.cs @@ -26,7 +26,7 @@ var protoActorClusterSection = protoActorSection.GetSection("Cluster"); // Configure Proto Actor cluster provider services. services.AddAzureContainerAppsProvider( - ArmClientProviders.DefaultAzureCredential, + ArmClientProviders.DefaultAzureCredential, sc => sc.AddRedisClusterMemberStore(redisConnectionString), options => protoActorClusterSection.GetSection("AzureContainerApps").Bind(options)); @@ -57,9 +57,9 @@ services { var advertisedHost = IPUtils.FindSmallestIpAddress().ToString(); - protoActor.ClusterProvider = sp => sp.GetRequiredService(); + protoActor.CreateClusterProvider = sp => sp.GetRequiredService(); - protoActor.RemoteConfig = _ => GrpcNetRemoteConfig + protoActor.ConfigureRemoteConfig = _ => GrpcNetRemoteConfig .BindTo(advertisedHost) .WithProtoMessages(EmptyReflection.Descriptor) .WithProtoMessages(SharedReflection.Descriptor) diff --git a/samples/aspnet/Elsa.Samples.AspNet.ProtoActorRuntime/Elsa.Samples.AspNet.ProtoActorRuntime.csproj b/samples/aspnet/Elsa.Samples.AspNet.ProtoActorRuntime/Elsa.Samples.AspNet.ProtoActorRuntime.csproj index fa11cdcb6..8b29c3296 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.ProtoActorRuntime/Elsa.Samples.AspNet.ProtoActorRuntime.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.ProtoActorRuntime/Elsa.Samples.AspNet.ProtoActorRuntime.csproj @@ -12,7 +12,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.QuartzIntegration/Elsa.Samples.AspNet.QuartzIntegration.csproj b/samples/aspnet/Elsa.Samples.AspNet.QuartzIntegration/Elsa.Samples.AspNet.QuartzIntegration.csproj index 605e36ada..e353d44fb 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.QuartzIntegration/Elsa.Samples.AspNet.QuartzIntegration.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.QuartzIntegration/Elsa.Samples.AspNet.QuartzIntegration.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.RunTaskIntegration/Elsa.Samples.AspNet.RunTaskIntegration.csproj b/samples/aspnet/Elsa.Samples.AspNet.RunTaskIntegration/Elsa.Samples.AspNet.RunTaskIntegration.csproj index 44649fe2f..b8b644ef9 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.RunTaskIntegration/Elsa.Samples.AspNet.RunTaskIntegration.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.RunTaskIntegration/Elsa.Samples.AspNet.RunTaskIntegration.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.TelnyxIntegration/Elsa.Samples.AspNet.TelnyxIntegration.csproj b/samples/aspnet/Elsa.Samples.AspNet.TelnyxIntegration/Elsa.Samples.AspNet.TelnyxIntegration.csproj index 12c1a9223..810872248 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.TelnyxIntegration/Elsa.Samples.AspNet.TelnyxIntegration.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.TelnyxIntegration/Elsa.Samples.AspNet.TelnyxIntegration.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.Tenants.External/Elsa.Samples.AspNet.Tenants.External.csproj b/samples/aspnet/Elsa.Samples.AspNet.Tenants.External/Elsa.Samples.AspNet.Tenants.External.csproj index 2005a848e..814650fb2 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.Tenants.External/Elsa.Samples.AspNet.Tenants.External.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.Tenants.External/Elsa.Samples.AspNet.Tenants.External.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.Tenants/Elsa.Samples.AspNet.Tenants.csproj b/samples/aspnet/Elsa.Samples.AspNet.Tenants/Elsa.Samples.AspNet.Tenants.csproj index e3341cc47..582fabdaa 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.Tenants/Elsa.Samples.AspNet.Tenants.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.Tenants/Elsa.Samples.AspNet.Tenants.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.Webhooks.WorkflowServer/Elsa.Samples.AspNet.Webhooks.WorkflowServer.csproj b/samples/aspnet/Elsa.Samples.AspNet.Webhooks.WorkflowServer/Elsa.Samples.AspNet.Webhooks.WorkflowServer.csproj index 25deea382..90bb78df3 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.Webhooks.WorkflowServer/Elsa.Samples.AspNet.Webhooks.WorkflowServer.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.Webhooks.WorkflowServer/Elsa.Samples.AspNet.Webhooks.WorkflowServer.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.WorkflowContexts/Elsa.Samples.AspNet.WorkflowContexts.csproj b/samples/aspnet/Elsa.Samples.AspNet.WorkflowContexts/Elsa.Samples.AspNet.WorkflowContexts.csproj index 6c4c0f953..7ddd4a3df 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.WorkflowContexts/Elsa.Samples.AspNet.WorkflowContexts.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.WorkflowContexts/Elsa.Samples.AspNet.WorkflowContexts.csproj @@ -12,7 +12,7 @@ - + diff --git a/samples/aspnet/Elsa.Samples.AspNet.WorkflowServer/Elsa.Samples.AspNet.WorkflowServer.csproj b/samples/aspnet/Elsa.Samples.AspNet.WorkflowServer/Elsa.Samples.AspNet.WorkflowServer.csproj index 4a446863f..25c7cbcea 100644 --- a/samples/aspnet/Elsa.Samples.AspNet.WorkflowServer/Elsa.Samples.AspNet.WorkflowServer.csproj +++ b/samples/aspnet/Elsa.Samples.AspNet.WorkflowServer/Elsa.Samples.AspNet.WorkflowServer.csproj @@ -5,7 +5,7 @@ - + diff --git a/samples/console/Elsa.Samples.ConsoleApp.ActivityOutput/Elsa.Samples.ConsoleApp.ActivityOutput.csproj b/samples/console/Elsa.Samples.ConsoleApp.ActivityOutput/Elsa.Samples.ConsoleApp.ActivityOutput.csproj index 0aac4da11..fda785228 100644 --- a/samples/console/Elsa.Samples.ConsoleApp.ActivityOutput/Elsa.Samples.ConsoleApp.ActivityOutput.csproj +++ b/samples/console/Elsa.Samples.ConsoleApp.ActivityOutput/Elsa.Samples.ConsoleApp.ActivityOutput.csproj @@ -6,7 +6,7 @@ - + diff --git a/samples/console/Elsa.Samples.ConsoleApp.Bookmarks/Elsa.Samples.ConsoleApp.Bookmarks.csproj b/samples/console/Elsa.Samples.ConsoleApp.Bookmarks/Elsa.Samples.ConsoleApp.Bookmarks.csproj index 0aac4da11..fda785228 100644 --- a/samples/console/Elsa.Samples.ConsoleApp.Bookmarks/Elsa.Samples.ConsoleApp.Bookmarks.csproj +++ b/samples/console/Elsa.Samples.ConsoleApp.Bookmarks/Elsa.Samples.ConsoleApp.Bookmarks.csproj @@ -6,7 +6,7 @@ - + diff --git a/samples/console/Elsa.Samples.ConsoleApp.Composition/Elsa.Samples.ConsoleApp.Composition.csproj b/samples/console/Elsa.Samples.ConsoleApp.Composition/Elsa.Samples.ConsoleApp.Composition.csproj index 0aac4da11..fda785228 100644 --- a/samples/console/Elsa.Samples.ConsoleApp.Composition/Elsa.Samples.ConsoleApp.Composition.csproj +++ b/samples/console/Elsa.Samples.ConsoleApp.Composition/Elsa.Samples.ConsoleApp.Composition.csproj @@ -6,7 +6,7 @@ - + diff --git a/samples/console/Elsa.Samples.ConsoleApp.ConditionalWorkflows/Elsa.Samples.ConsoleApp.ConditionalWorkflows.csproj b/samples/console/Elsa.Samples.ConsoleApp.ConditionalWorkflows/Elsa.Samples.ConsoleApp.ConditionalWorkflows.csproj index 0aac4da11..fda785228 100644 --- a/samples/console/Elsa.Samples.ConsoleApp.ConditionalWorkflows/Elsa.Samples.ConsoleApp.ConditionalWorkflows.csproj +++ b/samples/console/Elsa.Samples.ConsoleApp.ConditionalWorkflows/Elsa.Samples.ConsoleApp.ConditionalWorkflows.csproj @@ -6,7 +6,7 @@ - + diff --git a/samples/console/Elsa.Samples.ConsoleApp.CustomActivities/Elsa.Samples.ConsoleApp.CustomActivities.csproj b/samples/console/Elsa.Samples.ConsoleApp.CustomActivities/Elsa.Samples.ConsoleApp.CustomActivities.csproj index 0aac4da11..fda785228 100644 --- a/samples/console/Elsa.Samples.ConsoleApp.CustomActivities/Elsa.Samples.ConsoleApp.CustomActivities.csproj +++ b/samples/console/Elsa.Samples.ConsoleApp.CustomActivities/Elsa.Samples.ConsoleApp.CustomActivities.csproj @@ -6,7 +6,7 @@ - + diff --git a/samples/console/Elsa.Samples.ConsoleApp.FlowchartWorkflows/Elsa.Samples.ConsoleApp.FlowchartWorkflows.csproj b/samples/console/Elsa.Samples.ConsoleApp.FlowchartWorkflows/Elsa.Samples.ConsoleApp.FlowchartWorkflows.csproj index 0aac4da11..fda785228 100644 --- a/samples/console/Elsa.Samples.ConsoleApp.FlowchartWorkflows/Elsa.Samples.ConsoleApp.FlowchartWorkflows.csproj +++ b/samples/console/Elsa.Samples.ConsoleApp.FlowchartWorkflows/Elsa.Samples.ConsoleApp.FlowchartWorkflows.csproj @@ -6,7 +6,7 @@ - + diff --git a/samples/console/Elsa.Samples.ConsoleApp.HelloWorld/Elsa.Samples.ConsoleApp.HelloWorld.csproj b/samples/console/Elsa.Samples.ConsoleApp.HelloWorld/Elsa.Samples.ConsoleApp.HelloWorld.csproj index 5512d2695..08d14ecf2 100644 --- a/samples/console/Elsa.Samples.ConsoleApp.HelloWorld/Elsa.Samples.ConsoleApp.HelloWorld.csproj +++ b/samples/console/Elsa.Samples.ConsoleApp.HelloWorld/Elsa.Samples.ConsoleApp.HelloWorld.csproj @@ -6,7 +6,7 @@ - + diff --git a/samples/console/Elsa.Samples.ConsoleApp.JsonWorkflows/Elsa.Samples.ConsoleApp.JsonWorkflows.csproj b/samples/console/Elsa.Samples.ConsoleApp.JsonWorkflows/Elsa.Samples.ConsoleApp.JsonWorkflows.csproj index b9d21ed15..0df6205cd 100644 --- a/samples/console/Elsa.Samples.ConsoleApp.JsonWorkflows/Elsa.Samples.ConsoleApp.JsonWorkflows.csproj +++ b/samples/console/Elsa.Samples.ConsoleApp.JsonWorkflows/Elsa.Samples.ConsoleApp.JsonWorkflows.csproj @@ -6,7 +6,7 @@ - + diff --git a/samples/console/Elsa.Samples.ConsoleApp.LoopingWorkflows/Elsa.Samples.ConsoleApp.LoopingWorkflows.csproj b/samples/console/Elsa.Samples.ConsoleApp.LoopingWorkflows/Elsa.Samples.ConsoleApp.LoopingWorkflows.csproj index 3badef87f..ddbe7eb9b 100644 --- a/samples/console/Elsa.Samples.ConsoleApp.LoopingWorkflows/Elsa.Samples.ConsoleApp.LoopingWorkflows.csproj +++ b/samples/console/Elsa.Samples.ConsoleApp.LoopingWorkflows/Elsa.Samples.ConsoleApp.LoopingWorkflows.csproj @@ -6,7 +6,7 @@ - + diff --git a/samples/console/Elsa.Samples.ConsoleApp.OutboundHttpRequests/Elsa.Samples.ConsoleApp.OutboundHttpRequests.csproj b/samples/console/Elsa.Samples.ConsoleApp.OutboundHttpRequests/Elsa.Samples.ConsoleApp.OutboundHttpRequests.csproj index f4807011c..904363b8a 100644 --- a/samples/console/Elsa.Samples.ConsoleApp.OutboundHttpRequests/Elsa.Samples.ConsoleApp.OutboundHttpRequests.csproj +++ b/samples/console/Elsa.Samples.ConsoleApp.OutboundHttpRequests/Elsa.Samples.ConsoleApp.OutboundHttpRequests.csproj @@ -6,7 +6,7 @@ - + diff --git a/samples/console/Elsa.Samples.ConsoleApp.SequentialWorkflows/Elsa.Samples.ConsoleApp.SequentialWorkflows.csproj b/samples/console/Elsa.Samples.ConsoleApp.SequentialWorkflows/Elsa.Samples.ConsoleApp.SequentialWorkflows.csproj index 0aac4da11..fda785228 100644 --- a/samples/console/Elsa.Samples.ConsoleApp.SequentialWorkflows/Elsa.Samples.ConsoleApp.SequentialWorkflows.csproj +++ b/samples/console/Elsa.Samples.ConsoleApp.SequentialWorkflows/Elsa.Samples.ConsoleApp.SequentialWorkflows.csproj @@ -6,7 +6,7 @@ - + diff --git a/samples/console/Elsa.Samples.ConsoleApp.WorkflowFunctions/Elsa.Samples.ConsoleApp.WorkflowFunctions.csproj b/samples/console/Elsa.Samples.ConsoleApp.WorkflowFunctions/Elsa.Samples.ConsoleApp.WorkflowFunctions.csproj index 0aac4da11..fda785228 100644 --- a/samples/console/Elsa.Samples.ConsoleApp.WorkflowFunctions/Elsa.Samples.ConsoleApp.WorkflowFunctions.csproj +++ b/samples/console/Elsa.Samples.ConsoleApp.WorkflowFunctions/Elsa.Samples.ConsoleApp.WorkflowFunctions.csproj @@ -6,7 +6,7 @@ - + diff --git a/samples/console/Elsa.Samples.ConsoleApp.WorkflowInputOutput/Elsa.Samples.ConsoleApp.WorkflowInputOutput.csproj b/samples/console/Elsa.Samples.ConsoleApp.WorkflowInputOutput/Elsa.Samples.ConsoleApp.WorkflowInputOutput.csproj index 0aac4da11..fda785228 100644 --- a/samples/console/Elsa.Samples.ConsoleApp.WorkflowInputOutput/Elsa.Samples.ConsoleApp.WorkflowInputOutput.csproj +++ b/samples/console/Elsa.Samples.ConsoleApp.WorkflowInputOutput/Elsa.Samples.ConsoleApp.WorkflowInputOutput.csproj @@ -6,7 +6,7 @@ - + diff --git a/src/apps/Directory.Build.props b/src/apps/Directory.Build.props new file mode 100644 index 000000000..1ead41344 --- /dev/null +++ b/src/apps/Directory.Build.props @@ -0,0 +1,16 @@ + + + net8.0 + latest + enable + enable + $(NoWarn);CS0162;CS1591 + + + + + + + + + \ No newline at end of file diff --git a/src/bundles/Elsa.Server.LoadBalancer/Elsa.Server.LoadBalancer.csproj b/src/apps/Elsa.Server.LoadBalancer/Elsa.Server.LoadBalancer.csproj similarity index 100% rename from src/bundles/Elsa.Server.LoadBalancer/Elsa.Server.LoadBalancer.csproj rename to src/apps/Elsa.Server.LoadBalancer/Elsa.Server.LoadBalancer.csproj diff --git a/src/bundles/Elsa.Server.LoadBalancer/FodyWeavers.xml b/src/apps/Elsa.Server.LoadBalancer/FodyWeavers.xml similarity index 100% rename from src/bundles/Elsa.Server.LoadBalancer/FodyWeavers.xml rename to src/apps/Elsa.Server.LoadBalancer/FodyWeavers.xml diff --git a/src/bundles/Elsa.Server.LoadBalancer/Program.cs b/src/apps/Elsa.Server.LoadBalancer/Program.cs similarity index 100% rename from src/bundles/Elsa.Server.LoadBalancer/Program.cs rename to src/apps/Elsa.Server.LoadBalancer/Program.cs diff --git a/src/bundles/Elsa.Server.LoadBalancer/Properties/launchSettings.json b/src/apps/Elsa.Server.LoadBalancer/Properties/launchSettings.json similarity index 100% rename from src/bundles/Elsa.Server.LoadBalancer/Properties/launchSettings.json rename to src/apps/Elsa.Server.LoadBalancer/Properties/launchSettings.json diff --git a/src/bundles/Elsa.Server.LoadBalancer/appsettings.Development.json b/src/apps/Elsa.Server.LoadBalancer/appsettings.Development.json similarity index 100% rename from src/bundles/Elsa.Server.LoadBalancer/appsettings.Development.json rename to src/apps/Elsa.Server.LoadBalancer/appsettings.Development.json diff --git a/src/bundles/Elsa.Server.LoadBalancer/appsettings.json b/src/apps/Elsa.Server.LoadBalancer/appsettings.json similarity index 100% rename from src/bundles/Elsa.Server.LoadBalancer/appsettings.json rename to src/apps/Elsa.Server.LoadBalancer/appsettings.json diff --git a/src/bundles/Elsa.Server.Web/Activities/SlowActivity.cs b/src/apps/Elsa.Server.Web/Activities/SlowActivity.cs similarity index 100% rename from src/bundles/Elsa.Server.Web/Activities/SlowActivity.cs rename to src/apps/Elsa.Server.Web/Activities/SlowActivity.cs diff --git a/src/bundles/Elsa.Server.Web/Elsa.Server.Web.csproj b/src/apps/Elsa.Server.Web/Elsa.Server.Web.csproj similarity index 91% rename from src/bundles/Elsa.Server.Web/Elsa.Server.Web.csproj rename to src/apps/Elsa.Server.Web/Elsa.Server.Web.csproj index eb5be7ffe..7622f41c1 100644 --- a/src/bundles/Elsa.Server.Web/Elsa.Server.Web.csproj +++ b/src/apps/Elsa.Server.Web/Elsa.Server.Web.csproj @@ -1,18 +1,11 @@ - - net7.0;net8.0 - Linux - false - latest - - - + @@ -51,6 +44,10 @@ + + + + diff --git a/src/bundles/Elsa.Server.Web/Elsa.Server.Web.csproj.DotSettings b/src/apps/Elsa.Server.Web/Elsa.Server.Web.csproj.DotSettings similarity index 100% rename from src/bundles/Elsa.Server.Web/Elsa.Server.Web.csproj.DotSettings rename to src/apps/Elsa.Server.Web/Elsa.Server.Web.csproj.DotSettings diff --git a/src/bundles/Elsa.Server.Web/Enums/ApplicationRole.cs b/src/apps/Elsa.Server.Web/Enums/ApplicationRole.cs similarity index 100% rename from src/bundles/Elsa.Server.Web/Enums/ApplicationRole.cs rename to src/apps/Elsa.Server.Web/Enums/ApplicationRole.cs diff --git a/src/bundles/Elsa.Server.Web/Enums/DistributedCachingTransport.cs b/src/apps/Elsa.Server.Web/Enums/DistributedCachingTransport.cs similarity index 100% rename from src/bundles/Elsa.Server.Web/Enums/DistributedCachingTransport.cs rename to src/apps/Elsa.Server.Web/Enums/DistributedCachingTransport.cs diff --git a/src/bundles/Elsa.Server.Web/Enums/MassTransitBroker.cs b/src/apps/Elsa.Server.Web/Enums/MassTransitBroker.cs similarity index 100% rename from src/bundles/Elsa.Server.Web/Enums/MassTransitBroker.cs rename to src/apps/Elsa.Server.Web/Enums/MassTransitBroker.cs diff --git a/src/bundles/Elsa.Server.Web/Enums/PersistenceProvider.cs b/src/apps/Elsa.Server.Web/Enums/PersistenceProvider.cs similarity index 100% rename from src/bundles/Elsa.Server.Web/Enums/PersistenceProvider.cs rename to src/apps/Elsa.Server.Web/Enums/PersistenceProvider.cs diff --git a/src/bundles/Elsa.Server.Web/Enums/SqlDatabaseProvider.cs b/src/apps/Elsa.Server.Web/Enums/SqlDatabaseProvider.cs similarity index 100% rename from src/bundles/Elsa.Server.Web/Enums/SqlDatabaseProvider.cs rename to src/apps/Elsa.Server.Web/Enums/SqlDatabaseProvider.cs diff --git a/src/bundles/Elsa.Server.Web/Enums/WorkflowRuntime.cs b/src/apps/Elsa.Server.Web/Enums/WorkflowRuntime.cs similarity index 100% rename from src/bundles/Elsa.Server.Web/Enums/WorkflowRuntime.cs rename to src/apps/Elsa.Server.Web/Enums/WorkflowRuntime.cs diff --git a/src/bundles/Elsa.Server.Web/FodyWeavers.xml b/src/apps/Elsa.Server.Web/FodyWeavers.xml similarity index 100% rename from src/bundles/Elsa.Server.Web/FodyWeavers.xml rename to src/apps/Elsa.Server.Web/FodyWeavers.xml diff --git a/src/bundles/Elsa.Server.Web/Middleware/SimulatedLatencyMiddleware.cs b/src/apps/Elsa.Server.Web/Middleware/SimulatedLatencyMiddleware.cs similarity index 100% rename from src/bundles/Elsa.Server.Web/Middleware/SimulatedLatencyMiddleware.cs rename to src/apps/Elsa.Server.Web/Middleware/SimulatedLatencyMiddleware.cs diff --git a/src/bundles/Elsa.Server.Web/Program.cs b/src/apps/Elsa.Server.Web/Program.cs similarity index 96% rename from src/bundles/Elsa.Server.Web/Program.cs rename to src/apps/Elsa.Server.Web/Program.cs index 450d71301..3ea373136 100644 --- a/src/bundles/Elsa.Server.Web/Program.cs +++ b/src/apps/Elsa.Server.Web/Program.cs @@ -14,16 +14,16 @@ using Elsa.EntityFrameworkCore.Modules.Runtime; using Elsa.Extensions; using Elsa.Features.Services; using Elsa.Http.MultiTenancy; -using Elsa.MassTransit.Extensions; using Elsa.Identity.MultiTenancy; +using Elsa.MassTransit.Extensions; using Elsa.MongoDb.Extensions; using Elsa.MongoDb.Modules.Alterations; using Elsa.MongoDb.Modules.Identity; using Elsa.MongoDb.Modules.Management; using Elsa.MongoDb.Modules.Runtime; using Elsa.Server.Web; -using Elsa.Workflows; using Elsa.Tenants.Extensions; +using Elsa.Workflows; using Elsa.Workflows.Api; using Elsa.Workflows.Management.Compression; using Elsa.Workflows.Management.Stores; @@ -37,6 +37,7 @@ using Microsoft.Data.Sqlite; using Microsoft.Extensions.Options; using Proto.Persistence.Sqlite; using Proto.Persistence.SqlServer; +using StackExchange.Redis; const PersistenceProvider persistenceProvider = PersistenceProvider.EntityFrameworkCore; const SqlDatabaseProvider sqlDatabaseProvider = SqlDatabaseProvider.Sqlite; @@ -125,7 +126,7 @@ services ef.RunMigrations = runEFCoreMigrations; }); - + identity.TokenOptions = options => identityTokenSection.Bind(options); identity.UseConfigurationBasedUserProvider(options => identitySection.Bind(options)); identity.UseConfigurationBasedApplicationProvider(options => identitySection.Bind(options)); @@ -196,12 +197,18 @@ services if (workflowRuntime == WorkflowRuntime.ProtoActor) { - runtime.UseProtoActor(proto => proto.PersistenceProvider = _ => + runtime.UseProtoActor(proto => { - if (sqlDatabaseProvider == SqlDatabaseProvider.SqlServer) - return new SqlServerProvider(sqlServerConnectionString!, true, "", "proto_actor"); - else + proto + .EnableMetrics() + .EnableTracing(); + + proto.PersistenceProvider = _ => + { + if (sqlDatabaseProvider == SqlDatabaseProvider.SqlServer) + return new SqlServerProvider(sqlServerConnectionString!, true, "", "proto_actor"); return new SqliteProvider(new SqliteConnectionStringBuilder(sqliteConnectionString)); + }; }); } @@ -221,7 +228,7 @@ services runtime.UseCache(); runtime.DistributedLockingOptions = options => configuration.GetSection("Runtime:DistributedLocking").Bind(options); - + runtime.DistributedLockProvider = _ => { switch (distributedLockProviderName) @@ -234,7 +241,7 @@ services }); case "Redis": { - var connectionMultiplexer = StackExchange.Redis.ConnectionMultiplexer.Connect(redisConnectionString); + var connectionMultiplexer = ConnectionMultiplexer.Connect(redisConnectionString); var database = connectionMultiplexer.GetDatabase(); return new RedisDistributedSynchronizationProvider(database); } @@ -404,7 +411,6 @@ services }); services.Configure(options => options.CacheDuration = TimeSpan.FromDays(1)); - services.AddHealthChecks(); services.AddControllers(); services.AddCors(cors => cors.AddDefaultPolicy(policy => policy.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin().WithExposedHeaders("*"))); diff --git a/src/bundles/Elsa.Server.Web/Properties/launchSettings.json b/src/apps/Elsa.Server.Web/Properties/launchSettings.json similarity index 100% rename from src/bundles/Elsa.Server.Web/Properties/launchSettings.json rename to src/apps/Elsa.Server.Web/Properties/launchSettings.json diff --git a/src/apps/Elsa.Server.Web/README.md b/src/apps/Elsa.Server.Web/README.md new file mode 100644 index 000000000..cade2408c --- /dev/null +++ b/src/apps/Elsa.Server.Web/README.md @@ -0,0 +1,29 @@ +# Server + +This project represents an Elsa application that hosts workflows and exposes API endpoints to manage & execute workflows. + +## Secrets +The following are the secrets stored in hashed form in appsettings.json: + +**API key**: `48587230567A646D394B435A6277734A-4802fa49-e91e-45e8-b00f-b5492377e20b` +**Admin user**: `admin` +**Admin password**: `password` + +## OpenTelemetry (MacOS) + +COR_ENABLE_PROFILING=1 +COR_PROFILER={918728DD-259F-4A6A-AC2B-B85E1B658318} +CORECLR_PROFILER_PATH=$INSTALL_DIR/osx-x64/OpenTelemetry.AutoInstrumentation.Native.dylib +DOTNET_ADDITIONAL_DEPS=$INSTALL_DIR/AdditionalDeps +DOTNET_EnableDiagnostics=1 +DOTNET_SHARED_STORE=$INSTALL_DIR/store +DOTNET_STARTUP_HOOKS=OpenTelemetry.AutoInstrumentation.StartupHook +OTEL_DOTNET_AUTO_HOME=$INSTALL_DIR +OTEL_DOTNET_AUTO_LOGS_CONSOLE_EXPORTER_ENABLED=true +OTEL_DOTNET_AUTO_METRICS_CONSOLE_EXPORTER_ENABLED=true +OTEL_DOTNET_AUTO_TRACES_ADDITIONAL_SOURCES=Proto.Actor +OTEL_DOTNET_AUTO_TRACES_CONSOLE_EXPORTER_ENABLED=true +OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317 +OTEL_EXPORTER_OTLP_PROTOCOL=grpc +OTEL_RESOURCE_ATTRIBUTES=service.name=Elsa +Server,service.version=3.3.0,service.instance.id=instance-123,deployment.environment=development \ No newline at end of file diff --git a/src/bundles/Elsa.Server.Web/appsettings.json b/src/apps/Elsa.Server.Web/appsettings.json similarity index 100% rename from src/bundles/Elsa.Server.Web/appsettings.json rename to src/apps/Elsa.Server.Web/appsettings.json diff --git a/src/bundles/Elsa.ServerAndStudio.Web/Elsa.ServerAndStudio.Web.csproj b/src/apps/Elsa.ServerAndStudio.Web/Elsa.ServerAndStudio.Web.csproj similarity index 97% rename from src/bundles/Elsa.ServerAndStudio.Web/Elsa.ServerAndStudio.Web.csproj rename to src/apps/Elsa.ServerAndStudio.Web/Elsa.ServerAndStudio.Web.csproj index 23d188639..82ae19ecf 100644 --- a/src/bundles/Elsa.ServerAndStudio.Web/Elsa.ServerAndStudio.Web.csproj +++ b/src/apps/Elsa.ServerAndStudio.Web/Elsa.ServerAndStudio.Web.csproj @@ -7,7 +7,7 @@ - + diff --git a/src/bundles/Elsa.ServerAndStudio.Web/Enums/DistributedCachingTransport.cs b/src/apps/Elsa.ServerAndStudio.Web/Enums/DistributedCachingTransport.cs similarity index 100% rename from src/bundles/Elsa.ServerAndStudio.Web/Enums/DistributedCachingTransport.cs rename to src/apps/Elsa.ServerAndStudio.Web/Enums/DistributedCachingTransport.cs diff --git a/src/bundles/Elsa.ServerAndStudio.Web/Enums/MassTransitBroker.cs b/src/apps/Elsa.ServerAndStudio.Web/Enums/MassTransitBroker.cs similarity index 100% rename from src/bundles/Elsa.ServerAndStudio.Web/Enums/MassTransitBroker.cs rename to src/apps/Elsa.ServerAndStudio.Web/Enums/MassTransitBroker.cs diff --git a/src/bundles/Elsa.ServerAndStudio.Web/Extensions/CorsOptionsExtensions.cs b/src/apps/Elsa.ServerAndStudio.Web/Extensions/CorsOptionsExtensions.cs similarity index 100% rename from src/bundles/Elsa.ServerAndStudio.Web/Extensions/CorsOptionsExtensions.cs rename to src/apps/Elsa.ServerAndStudio.Web/Extensions/CorsOptionsExtensions.cs diff --git a/src/bundles/Elsa.ServerAndStudio.Web/FodyWeavers.xml b/src/apps/Elsa.ServerAndStudio.Web/FodyWeavers.xml similarity index 100% rename from src/bundles/Elsa.ServerAndStudio.Web/FodyWeavers.xml rename to src/apps/Elsa.ServerAndStudio.Web/FodyWeavers.xml diff --git a/src/bundles/Elsa.ServerAndStudio.Web/Pages/_Host.cshtml b/src/apps/Elsa.ServerAndStudio.Web/Pages/_Host.cshtml similarity index 100% rename from src/bundles/Elsa.ServerAndStudio.Web/Pages/_Host.cshtml rename to src/apps/Elsa.ServerAndStudio.Web/Pages/_Host.cshtml diff --git a/src/bundles/Elsa.ServerAndStudio.Web/Program.cs b/src/apps/Elsa.ServerAndStudio.Web/Program.cs similarity index 100% rename from src/bundles/Elsa.ServerAndStudio.Web/Program.cs rename to src/apps/Elsa.ServerAndStudio.Web/Program.cs diff --git a/src/bundles/Elsa.ServerAndStudio.Web/Properties/launchSettings.json b/src/apps/Elsa.ServerAndStudio.Web/Properties/launchSettings.json similarity index 100% rename from src/bundles/Elsa.ServerAndStudio.Web/Properties/launchSettings.json rename to src/apps/Elsa.ServerAndStudio.Web/Properties/launchSettings.json diff --git a/src/bundles/Elsa.ServerAndStudio.Web/README.md b/src/apps/Elsa.ServerAndStudio.Web/README.md similarity index 100% rename from src/bundles/Elsa.ServerAndStudio.Web/README.md rename to src/apps/Elsa.ServerAndStudio.Web/README.md diff --git a/src/bundles/Elsa.ServerAndStudio.Web/appsettings.json b/src/apps/Elsa.ServerAndStudio.Web/appsettings.json similarity index 100% rename from src/bundles/Elsa.ServerAndStudio.Web/appsettings.json rename to src/apps/Elsa.ServerAndStudio.Web/appsettings.json diff --git a/src/bundles/Elsa.Studio.Web/Elsa.Studio.Web.csproj b/src/apps/Elsa.Studio.Web/Elsa.Studio.Web.csproj similarity index 100% rename from src/bundles/Elsa.Studio.Web/Elsa.Studio.Web.csproj rename to src/apps/Elsa.Studio.Web/Elsa.Studio.Web.csproj diff --git a/src/bundles/Elsa.Studio.Web/FodyWeavers.xml b/src/apps/Elsa.Studio.Web/FodyWeavers.xml similarity index 100% rename from src/bundles/Elsa.Studio.Web/FodyWeavers.xml rename to src/apps/Elsa.Studio.Web/FodyWeavers.xml diff --git a/src/bundles/Elsa.Studio.Web/Pages/_Host.cshtml b/src/apps/Elsa.Studio.Web/Pages/_Host.cshtml similarity index 100% rename from src/bundles/Elsa.Studio.Web/Pages/_Host.cshtml rename to src/apps/Elsa.Studio.Web/Pages/_Host.cshtml diff --git a/src/bundles/Elsa.Studio.Web/Program.cs b/src/apps/Elsa.Studio.Web/Program.cs similarity index 100% rename from src/bundles/Elsa.Studio.Web/Program.cs rename to src/apps/Elsa.Studio.Web/Program.cs diff --git a/src/bundles/Elsa.Studio.Web/Properties/launchSettings.json b/src/apps/Elsa.Studio.Web/Properties/launchSettings.json similarity index 100% rename from src/bundles/Elsa.Studio.Web/Properties/launchSettings.json rename to src/apps/Elsa.Studio.Web/Properties/launchSettings.json diff --git a/src/bundles/ElsaStudioWebAssembly/ElsaStudioWebAssembly.csproj b/src/apps/ElsaStudioWebAssembly/ElsaStudioWebAssembly.csproj similarity index 100% rename from src/bundles/ElsaStudioWebAssembly/ElsaStudioWebAssembly.csproj rename to src/apps/ElsaStudioWebAssembly/ElsaStudioWebAssembly.csproj diff --git a/src/bundles/Elsa/FodyWeavers.xml b/src/apps/ElsaStudioWebAssembly/FodyWeavers.xml similarity index 100% rename from src/bundles/Elsa/FodyWeavers.xml rename to src/apps/ElsaStudioWebAssembly/FodyWeavers.xml diff --git a/src/bundles/ElsaStudioWebAssembly/MainLayout.razor b/src/apps/ElsaStudioWebAssembly/MainLayout.razor similarity index 100% rename from src/bundles/ElsaStudioWebAssembly/MainLayout.razor rename to src/apps/ElsaStudioWebAssembly/MainLayout.razor diff --git a/src/bundles/ElsaStudioWebAssembly/Program.cs b/src/apps/ElsaStudioWebAssembly/Program.cs similarity index 100% rename from src/bundles/ElsaStudioWebAssembly/Program.cs rename to src/apps/ElsaStudioWebAssembly/Program.cs diff --git a/src/bundles/ElsaStudioWebAssembly/Properties/launchSettings.json b/src/apps/ElsaStudioWebAssembly/Properties/launchSettings.json similarity index 100% rename from src/bundles/ElsaStudioWebAssembly/Properties/launchSettings.json rename to src/apps/ElsaStudioWebAssembly/Properties/launchSettings.json diff --git a/src/bundles/ElsaStudioWebAssembly/README.md b/src/apps/ElsaStudioWebAssembly/README.md similarity index 100% rename from src/bundles/ElsaStudioWebAssembly/README.md rename to src/apps/ElsaStudioWebAssembly/README.md diff --git a/src/bundles/ElsaStudioWebAssembly/_Imports.razor b/src/apps/ElsaStudioWebAssembly/_Imports.razor similarity index 100% rename from src/bundles/ElsaStudioWebAssembly/_Imports.razor rename to src/apps/ElsaStudioWebAssembly/_Imports.razor diff --git a/src/bundles/Elsa.Server.Web/README.md b/src/bundles/Elsa.Server.Web/README.md deleted file mode 100644 index eea64e806..000000000 --- a/src/bundles/Elsa.Server.Web/README.md +++ /dev/null @@ -1,10 +0,0 @@ -# Server - -This project represents an Elsa application that hosts workflows and exposes API endpoints to manage & execute workflows. - -## Secrets -The following are the secrets stored in hashed form in appsettings.json: - -**API key**: `48587230567A646D394B435A6277734A-4802fa49-e91e-45e8-b00f-b5492377e20b` -**Admin user**: `admin` -**Admin password**: `password` \ No newline at end of file diff --git a/src/common/Elsa.Testing.Shared.Integration/Elsa.Testing.Shared.Integration.csproj b/src/common/Elsa.Testing.Shared.Integration/Elsa.Testing.Shared.Integration.csproj index cdfbb29c6..06b02b196 100644 --- a/src/common/Elsa.Testing.Shared.Integration/Elsa.Testing.Shared.Integration.csproj +++ b/src/common/Elsa.Testing.Shared.Integration/Elsa.Testing.Shared.Integration.csproj @@ -14,7 +14,7 @@ - + diff --git a/src/modules/Elsa.ProtoActor/Elsa.ProtoActor.csproj b/src/modules/Elsa.ProtoActor/Elsa.ProtoActor.csproj index 647bf8842..b90469f88 100644 --- a/src/modules/Elsa.ProtoActor/Elsa.ProtoActor.csproj +++ b/src/modules/Elsa.ProtoActor/Elsa.ProtoActor.csproj @@ -18,6 +18,7 @@ + @@ -32,8 +33,4 @@ - - - - diff --git a/src/modules/Elsa.ProtoActor/Features/ProtoActorFeature.cs b/src/modules/Elsa.ProtoActor/Features/ProtoActorFeature.cs index fb70f49dd..4f08fee4b 100644 --- a/src/modules/Elsa.ProtoActor/Features/ProtoActorFeature.cs +++ b/src/modules/Elsa.ProtoActor/Features/ProtoActorFeature.cs @@ -16,24 +16,64 @@ using Proto.Cluster; using Proto.Cluster.Partition; using Proto.Cluster.Testing; using Proto.DependencyInjection; +using Proto.OpenTelemetry; using Proto.Persistence; using Proto.Remote; using Proto.Remote.GrpcNet; namespace Elsa.ProtoActor.Features; -/// /// Installs the Proto Actor feature to host & execute workflow instances. -/// [DependsOn(typeof(WorkflowsFeature))] [DependsOn(typeof(WorkflowRuntimeFeature))] public class ProtoActorFeature : FeatureBase { + private string _clusterName = "elsa-cluster"; + private LogLevel _diagnosticsLogLevel = LogLevel.Information; + private bool _enableMetrics; + private bool _enableTracing; + /// public ProtoActorFeature(IModule module) : base(module) { } + /// A delegate that returns an instance of a concrete implementation of . + public Func CreateClusterProvider { get; set; } = _ => new TestProvider(new TestProviderOptions(), new InMemAgent()); + + /// A delegate that configures an instance of . + public Action ConfigureActorSystemConfig { get; set; } = SetupDefaultConfig; + + /// A delegate that configures an instance of an . + public Action ConfigureActorSystem { get; set; } = (_, _) => { }; + + /// A delegate that returns an instance of to be used by the actor system. + public Func ConfigureRemoteConfig { get; set; } = CreateDefaultRemoteConfig; + + /// A delegate that returns an instance of a concrete implementation of to use for persisting events and snapshots. + public Func PersistenceProvider { get; set; } = _ => new InMemoryProvider(); + + /// A delegate that configures an instance of . + public Action? ConfigureClusterConfig { get; set; } + + public ProtoActorFeature EnableMetrics(bool value = true) + { + _enableMetrics = value; + return this; + } + + public ProtoActorFeature EnableTracing(bool value = true) + { + _enableTracing = value; + return this; + } + + public ProtoActorFeature WithDiagnosticsLevel(LogLevel value) + { + _diagnosticsLogLevel = value; + return this; + } + /// public override void Configure() { @@ -41,36 +81,6 @@ public class ProtoActorFeature : FeatureBase Module.Configure().WorkflowRuntime = sp => ActivatorUtilities.CreateInstance(sp); } - /// - /// The name of the cluster to configure. - /// - public string ClusterName { get; set; } = "elsa-cluster"; - - /// - /// A delegate that returns an instance of a concrete implementation of . - /// - public Func ClusterProvider { get; set; } = _ => new TestProvider(new TestProviderOptions(), new InMemAgent()); - - /// - /// A delegate that configures an instance of . - /// - public Action ActorSystemConfig { get; set; } = SetupDefaultConfig; - - /// - /// A delegate that configures an instance of an . - /// - public Action ActorSystem { get; set; } = (_, _) => { }; - - /// - /// A delegate that returns an instance of to be used by the actor system. - /// - public Func RemoteConfig { get; set; } = CreateDefaultRemoteConfig; - - /// - /// A delegate that returns an instance of a concrete implementation of to use for persisting events and snapshots. - /// - public Func PersistenceProvider { get; set; } = _ => new InMemoryProvider(); - /// public override void ConfigureHostedServices() { @@ -85,36 +95,42 @@ public class ProtoActorFeature : FeatureBase // Register ActorSystem. services.AddSingleton(sp => { - var systemConfig = Proto.ActorSystemConfig + var actorSystemConfig = ActorSystemConfig .Setup() - .WithDiagnosticsLogLevel(LogLevel.Debug) - .WithMetrics(); + .WithDiagnosticsLogLevel(_diagnosticsLogLevel); - var clusterProvider = ClusterProvider(sp); - var system = new ActorSystem(systemConfig).WithServiceProvider(sp); + if (_enableMetrics) + actorSystemConfig = actorSystemConfig.WithMetrics(); + + ConfigureActorSystemConfig(sp, actorSystemConfig); + + var clusterProvider = CreateClusterProvider(sp); + var system = new ActorSystem(actorSystemConfig).WithServiceProvider(sp); var workflowGrainProps = system.DI().PropsFor(); + if (_enableTracing) + workflowGrainProps = workflowGrainProps.WithTracing(); + var clusterConfig = ClusterConfig - .Setup(ClusterName, clusterProvider, new PartitionIdentityLookup()) + .Setup(_clusterName, clusterProvider, new PartitionIdentityLookup()) .WithHeartbeatExpiration(TimeSpan.FromDays(1)) .WithActorRequestTimeout(TimeSpan.FromSeconds(1000)) .WithActorSpawnVerificationTimeout(TimeSpan.FromHours(1)) .WithActorActivationTimeout(TimeSpan.FromHours(1)) .WithActorSpawnVerificationTimeout(TimeSpan.FromHours(1)) .WithGossipRequestTimeout(TimeSpan.FromHours(1)) - //.WithLegacyRequestTimeoutBehavior() .WithClusterKind(WorkflowInstanceActor.Kind, workflowGrainProps) ; - ActorSystemConfig(sp, systemConfig); - - var remoteConfig = RemoteConfig(sp); + ConfigureClusterConfig?.Invoke(sp, clusterConfig); + var remoteConfig = ConfigureRemoteConfig(sp); system .WithRemote(remoteConfig) .WithCluster(clusterConfig); - ActorSystem(sp, system); + ConfigureActorSystem(sp, system); + return system; }); @@ -151,7 +167,7 @@ public class ProtoActorFeature : FeatureBase // Actors. services .AddTransient(sp => new WorkflowInstanceActor((context, _) => ActivatorUtilities.CreateInstance(sp, context))); - + // Distributed runtime. services.AddSingleton(); } diff --git a/src/modules/Elsa.Workflows.Core/Services/VariablePersistenceManager.cs b/src/modules/Elsa.Workflows.Core/Services/VariablePersistenceManager.cs index 6f2af924a..aeeccb5c1 100644 --- a/src/modules/Elsa.Workflows.Core/Services/VariablePersistenceManager.cs +++ b/src/modules/Elsa.Workflows.Core/Services/VariablePersistenceManager.cs @@ -6,18 +6,8 @@ using Elsa.Workflows.Memory; namespace Elsa.Workflows; /// -public class VariablePersistenceManager : IVariablePersistenceManager +public class VariablePersistenceManager(IStorageDriverManager storageDriverManager) : IVariablePersistenceManager { - private readonly IStorageDriverManager _storageDriverManager; - - /// - /// Constructor. - /// - public VariablePersistenceManager(IStorageDriverManager storageDriverManager) - { - _storageDriverManager = storageDriverManager; - } - /// public async Task LoadVariablesAsync(WorkflowExecutionContext workflowExecutionContext) { @@ -35,9 +25,12 @@ public class VariablePersistenceManager : IVariablePersistenceManager var register = context.ExpressionExecutionContext.Memory; var block = EnsureBlock(register, variable); var metadata = (VariableBlockMetadata)block.Metadata!; - var driver = _storageDriverManager.Get(metadata.StorageDriverType!); + var driver = storageDriverManager.Get(metadata.StorageDriverType!); - block.Metadata = metadata with { IsInitialized = true }; + block.Metadata = metadata with + { + IsInitialized = true + }; if (driver == null) continue; @@ -68,11 +61,11 @@ public class VariablePersistenceManager : IVariablePersistenceManager { var block = variable.GetBlock(context.ExpressionExecutionContext); var metadata = (VariableBlockMetadata)block.Metadata!; - var driver = _storageDriverManager.Get(metadata.StorageDriverType!); + var driver = storageDriverManager.Get(metadata.StorageDriverType!); if (driver == null) continue; - + var id = GetStateId(variable); var value = block.Value; @@ -84,7 +77,6 @@ public class VariablePersistenceManager : IVariablePersistenceManager } } - /// public async Task DeleteVariablesAsync(ActivityExecutionContext context) { @@ -99,7 +91,7 @@ public class VariablePersistenceManager : IVariablePersistenceManager continue; var metadata = (VariableBlockMetadata)block.Metadata!; - var driver = _storageDriverManager.Get(metadata.StorageDriverType!); + var driver = storageDriverManager.Get(metadata.StorageDriverType!); if (driver == null) continue; diff --git a/src/bundles/Elsa/Elsa.csproj b/src/modules/Elsa/Elsa.csproj similarity index 100% rename from src/bundles/Elsa/Elsa.csproj rename to src/modules/Elsa/Elsa.csproj diff --git a/src/bundles/Elsa/Extensions/DependencyInjectionExtensions.cs b/src/modules/Elsa/Extensions/DependencyInjectionExtensions.cs similarity index 100% rename from src/bundles/Elsa/Extensions/DependencyInjectionExtensions.cs rename to src/modules/Elsa/Extensions/DependencyInjectionExtensions.cs diff --git a/src/bundles/Elsa/Extensions/ServiceProviderExtensions.cs b/src/modules/Elsa/Extensions/ServiceProviderExtensions.cs similarity index 100% rename from src/bundles/Elsa/Extensions/ServiceProviderExtensions.cs rename to src/modules/Elsa/Extensions/ServiceProviderExtensions.cs diff --git a/src/bundles/Elsa/Features/AppFeature.cs b/src/modules/Elsa/Features/AppFeature.cs similarity index 100% rename from src/bundles/Elsa/Features/AppFeature.cs rename to src/modules/Elsa/Features/AppFeature.cs diff --git a/src/bundles/Elsa/Features/ElsaFeature.cs b/src/modules/Elsa/Features/ElsaFeature.cs similarity index 100% rename from src/bundles/Elsa/Features/ElsaFeature.cs rename to src/modules/Elsa/Features/ElsaFeature.cs diff --git a/src/bundles/ElsaStudioWebAssembly/FodyWeavers.xml b/src/modules/Elsa/FodyWeavers.xml similarity index 100% rename from src/bundles/ElsaStudioWebAssembly/FodyWeavers.xml rename to src/modules/Elsa/FodyWeavers.xml diff --git a/test/component/Elsa.AzureServiceBus.ComponentTests/Elsa.AzureServiceBus.ComponentTests.csproj b/test/component/Elsa.AzureServiceBus.ComponentTests/Elsa.AzureServiceBus.ComponentTests.csproj index e7de61e7c..96f81d332 100644 --- a/test/component/Elsa.AzureServiceBus.ComponentTests/Elsa.AzureServiceBus.ComponentTests.csproj +++ b/test/component/Elsa.AzureServiceBus.ComponentTests/Elsa.AzureServiceBus.ComponentTests.csproj @@ -19,7 +19,7 @@ - + diff --git a/test/component/Elsa.Workflows.ComponentTests/Elsa.Workflows.ComponentTests.csproj b/test/component/Elsa.Workflows.ComponentTests/Elsa.Workflows.ComponentTests.csproj index 28c11218b..00abd030f 100644 --- a/test/component/Elsa.Workflows.ComponentTests/Elsa.Workflows.ComponentTests.csproj +++ b/test/component/Elsa.Workflows.ComponentTests/Elsa.Workflows.ComponentTests.csproj @@ -14,7 +14,7 @@ - +