├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── documentation.md │ ├── feature_request.md │ ├── improvement.md │ ├── performance.md │ └── task.md ├── dependabot.yml └── workflows │ ├── bounty.yml │ ├── copilot-setup-steps.yml.yml │ ├── elsa-server-and-studio.yml │ ├── elsa-server.yml │ ├── elsa-studio.yml │ ├── packages.yml │ ├── pr.yml │ └── stale.yml ├── .gitignore ├── .nuke ├── build.schema.json └── parameters.json ├── CONTRIBUTING.md ├── Directory.Build.props ├── Directory.Packages.props ├── Elsa.sln ├── Elsa.sln.DotSettings ├── LICENSE ├── NuGet.Config ├── README.md ├── build.cmd ├── build.ps1 ├── build.sh ├── build ├── .editorconfig ├── Build.CI.GitHubActions.cs ├── Build.cs ├── Directory.Build.props ├── Directory.Build.targets ├── _build.csproj └── _build.csproj.DotSettings ├── design ├── artwork │ ├── android-elsa-portrait.png │ ├── creative-elsa-animation.gif │ ├── elsa-3.1-art.png │ ├── elsa-logo-art.png │ ├── elsa-logo-art.psd │ ├── elsa-v3-avatar.png │ └── glass.ai ├── custom │ ├── 1x │ │ └── Artboard 1.png │ ├── 2x │ │ ├── Artboard 1@2x.png │ │ └── elsa-logo.png │ ├── icon.ai │ ├── icon.png │ └── icon.psd ├── github-social-preview-banner-for-elsa.psd ├── icon │ ├── dark │ │ ├── android-icon-144x144.png │ │ ├── android-icon-192x192.png │ │ ├── android-icon-36x36.png │ │ ├── android-icon-48x48.png │ │ ├── android-icon-72x72.png │ │ ├── android-icon-96x96.png │ │ ├── apple-icon-114x114.png │ │ ├── apple-icon-120x120.png │ │ ├── apple-icon-144x144.png │ │ ├── apple-icon-152x152.png │ │ ├── apple-icon-180x180.png │ │ ├── apple-icon-57x57.png │ │ ├── apple-icon-60x60.png │ │ ├── apple-icon-72x72.png │ │ ├── apple-icon-76x76.png │ │ ├── apple-icon-precomposed.png │ │ ├── apple-icon.png │ │ ├── browserconfig.xml │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── favicon.ico │ │ ├── manifest.json │ │ ├── ms-icon-144x144.png │ │ ├── ms-icon-150x150.png │ │ ├── ms-icon-310x310.png │ │ └── ms-icon-70x70.png │ └── light │ │ ├── android-icon-144x144.png │ │ ├── android-icon-192x192.png │ │ ├── android-icon-36x36.png │ │ ├── android-icon-48x48.png │ │ ├── android-icon-72x72.png │ │ ├── android-icon-96x96.png │ │ ├── apple-icon-114x114.png │ │ ├── apple-icon-120x120.png │ │ ├── apple-icon-144x144.png │ │ ├── apple-icon-152x152.png │ │ ├── apple-icon-180x180.png │ │ ├── apple-icon-57x57.png │ │ ├── apple-icon-60x60.png │ │ ├── apple-icon-72x72.png │ │ ├── apple-icon-76x76.png │ │ ├── apple-icon-precomposed.png │ │ ├── apple-icon.png │ │ ├── browserconfig.xml │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── favicon.ico │ │ ├── manifest.json │ │ ├── ms-icon-144x144.png │ │ ├── ms-icon-150x150.png │ │ ├── ms-icon-310x310.png │ │ └── ms-icon-70x70.png ├── logo │ ├── 40w │ │ ├── Asset 1.png │ │ ├── Asset 3.png │ │ └── Asset 4.png │ ├── Elsa-20-transparent.png │ ├── Elsa.ai │ ├── Esla-12.png │ ├── Esla-13.png │ ├── Esla-14.png │ ├── Esla-15.png │ ├── Esla-16.png │ ├── Esla-17.png │ ├── Esla-18.png │ ├── Esla-19.png │ ├── Esla-20.png │ ├── Esla-21.png │ ├── Esla-22.png │ ├── Esla_Source.ai │ ├── Esla_vector-17.svg │ ├── Esla_vector-18.svg │ ├── Esla_vector-19.svg │ ├── Esla_vector-20.svg │ ├── Esla_vector-21.svg │ ├── Esla_vector-22.svg │ └── elsa-logo-glass.png └── screenshots │ ├── elsa-studio-login.png │ ├── http-hello-world-workflow-designer.png │ └── http-send-email-workflow-designer.png ├── doc ├── adr │ ├── 0001-record-architecture-decisions.md │ ├── 0002-fault-propagation-from-child-to-parent-activities.md │ ├── 0003-direct-bookmark-management-in-workflowexecutioncontext.md │ ├── 0004-token-centric-flowchart-execution-model.md │ ├── graph.dot │ └── toc.md └── bounty │ ├── bounty-announcement-template.md │ ├── bounty-footer.md │ └── bounty-quality-standards.md ├── docker ├── .dockerignore ├── ElsaServer-Datadog.Dockerfile ├── ElsaServer.Dockerfile ├── ElsaServerAndStudio.Dockerfile ├── ElsaStudio.Dockerfile ├── docker-compose-datadog+otel-collector.yml ├── docker-compose-kafka.yml ├── docker-compose.yml ├── init-db-postgres.sh ├── otel-collector-config.yaml └── setup │ └── oracle-setup │ └── setup.sql ├── dotnet-install.sh ├── gen ├── ElsaLexer.interp ├── ElsaLexer.java ├── ElsaLexer.tokens ├── ElsaParser.interp ├── ElsaParser.java ├── ElsaParser.tokens ├── ElsaParserBaseListener.java ├── ElsaParserBaseVisitor.java ├── ElsaParserListener.java └── ElsaParserVisitor.java ├── icon.png ├── scripts ├── docker │ ├── build-and-run-all-in-one-web-docker.sh │ ├── docker-compose-citus.yml │ ├── docker-compose-yugabyte.yml │ ├── docker-compose.yml │ └── docker-run-all-in-one-web.ps1 ├── k8s │ ├── elsa-server │ │ ├── deployment.yaml │ │ ├── role-binding.yaml │ │ ├── role.yaml │ │ ├── service-account.yml │ │ └── service.yaml │ ├── elsa-studio │ │ ├── deployment.yaml │ │ └── service.yaml │ ├── plant-uml │ │ └── deployment.yaml │ ├── postgres │ │ ├── config-map.yaml │ │ ├── deployment.yaml │ │ └── service.yml │ └── trace-lens │ │ ├── deployment.yaml │ │ └── service.yaml └── migrations │ ├── README.md │ ├── efcore-3.0.sh │ ├── efcore-3.1-sql.sh │ ├── efcore-3.1.sh │ ├── efcore-3.2.sh │ ├── efcore-3.3.sh │ ├── efcore-3.4.sh │ └── efcore-3.5.sh ├── src ├── Directory.Build.props ├── apps │ ├── Directory.Build.props │ ├── Elsa.Server.LoadBalancer │ │ ├── Elsa.Server.LoadBalancer.csproj │ │ ├── FodyWeavers.xml │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ ├── Elsa.Server.Web │ │ ├── Elsa.Server.Web.csproj │ │ ├── Elsa.Server.Web.csproj.DotSettings │ │ ├── Filters │ │ │ └── HttpRequestAuthenticationHeaderFilter.cs │ │ ├── FodyWeavers.xml │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── README.md │ │ ├── RadioListActivity.cs │ │ └── appsettings.json │ ├── Elsa.ServerAndStudio.Web │ │ ├── Activities │ │ │ ├── CustomEvent.cs │ │ │ └── CustomHttpEndpoint.cs │ │ ├── Elsa.ServerAndStudio.Web.csproj │ │ ├── Enums │ │ │ ├── DistributedCachingTransport.cs │ │ │ ├── MassTransitBroker.cs │ │ │ └── SqlDatabaseProvider.cs │ │ ├── Extensions │ │ │ └── CorsOptionsExtensions.cs │ │ ├── FodyWeavers.xml │ │ ├── Pages │ │ │ └── _Host.cshtml │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── README.md │ │ └── appsettings.json │ ├── Elsa.Studio.Web │ │ ├── Elsa.Studio.Web.csproj │ │ ├── FodyWeavers.xml │ │ ├── Pages │ │ │ └── _Host.cshtml │ │ ├── Program.cs │ │ └── Properties │ │ │ └── launchSettings.json │ └── ElsaStudioWebAssembly │ │ ├── ElsaStudioWebAssembly.csproj │ │ ├── FodyWeavers.xml │ │ ├── MainLayout.razor │ │ ├── Program.cs │ │ ├── Properties │ │ └── launchSettings.json │ │ ├── README.md │ │ └── _Imports.razor ├── clients │ └── Elsa.Api.Client │ │ ├── Converters │ │ ├── TypeJsonConverter.cs │ │ ├── VersionOptionsJsonConverter.cs │ │ └── VersionOptionsTypeConverter.cs │ │ ├── Elsa.Api.Client.csproj │ │ ├── Elsa.Api.Client.csproj.DotSettings │ │ ├── Extensions │ │ ├── ActivityExtensions.cs │ │ ├── ApiResponseExtensions.cs │ │ ├── DependencyInjectionExtensions.cs │ │ ├── DictionaryExtensions.cs │ │ ├── HeaderExtensions.cs │ │ ├── JsonElementExtensions.cs │ │ ├── JsonObjectExtensions.cs │ │ ├── JsonSerializerOptionsExtensions.cs │ │ ├── ObjectConverter.cs │ │ ├── PropertyBagExtensions.cs │ │ ├── ResilienceStrategyExtensions.cs │ │ └── TypeExtensions.cs │ │ ├── FodyWeavers.xml │ │ ├── Helpers │ │ └── RefitSettingsHelper.cs │ │ ├── HttpMessageHandlers │ │ └── ApiKeyHttpMessageHandler.cs │ │ ├── IsExternalInit.cs │ │ ├── Options │ │ ├── ElsaClientBuilderOptions.cs │ │ └── ElsaClientOptions.cs │ │ ├── RealTime │ │ └── Messages │ │ │ ├── ActivityExecutedMessage.cs │ │ │ ├── ActivityExecutingMessage.cs │ │ │ ├── ActivityExecutionLogUpdatedMessage.cs │ │ │ ├── WorkflowExecutionLogUpdatedMessage.cs │ │ │ └── WorkflowInstanceUpdatedMessage.cs │ │ ├── Resources │ │ ├── ActivityDescriptorOptions │ │ │ ├── Contracts │ │ │ │ └── IActivityDescriptorOptionsApi.cs │ │ │ ├── Requests │ │ │ │ └── GetActivityDescriptorOptionsRequest.cs │ │ │ └── Responses │ │ │ │ └── GetActivityDescriptorOptionsResponse.cs │ │ ├── ActivityDescriptors │ │ │ ├── Contracts │ │ │ │ └── IActivityDescriptorsApi.cs │ │ │ ├── Enums │ │ │ │ ├── ActivityKind.cs │ │ │ │ └── PortType.cs │ │ │ ├── Models │ │ │ │ ├── ActivityDescriptor.cs │ │ │ │ ├── InputDescriptor.cs │ │ │ │ ├── OutputDescriptor.cs │ │ │ │ ├── Port.cs │ │ │ │ └── PropertyDescriptor.cs │ │ │ ├── Requests │ │ │ │ └── ListActivityDescriptorsRequest.cs │ │ │ └── Responses │ │ │ │ └── ListActivityDescriptorsResponse.cs │ │ ├── ActivityExecutions │ │ │ ├── Contracts │ │ │ │ └── IActivityExecutionsApi.cs │ │ │ ├── Models │ │ │ │ ├── ActivityExecutionRecord.cs │ │ │ │ ├── ActivityExecutionRecordSummary.cs │ │ │ │ ├── ActivityExecutionReport.cs │ │ │ │ └── ActivityExecutionStats.cs │ │ │ └── Requests │ │ │ │ ├── GetActivityExecutionReportRequest.cs │ │ │ │ └── ListActivityExecutionsRequest.cs │ │ ├── Alterations │ │ │ ├── Contracts │ │ │ │ └── IAlterationsApi.cs │ │ │ ├── Enums │ │ │ │ ├── ActivityStatus.cs │ │ │ │ ├── AlterationJobStatus.cs │ │ │ │ └── AlterationPlanStatus.cs │ │ │ ├── Models │ │ │ │ ├── ActivityFilter.cs │ │ │ │ ├── AlterationJob.cs │ │ │ │ ├── AlterationLog.cs │ │ │ │ ├── AlterationLogEntry.cs │ │ │ │ ├── AlterationPlan.cs │ │ │ │ ├── AlterationPlanParams.cs │ │ │ │ ├── AlterationWorkflowInstanceFilter.cs │ │ │ │ └── RunAlterationsResult.cs │ │ │ ├── Requests │ │ │ │ └── BulkRetryRequest.cs │ │ │ └── Responses │ │ │ │ ├── BulkRetryResponse.cs │ │ │ │ ├── DryRunResponse.cs │ │ │ │ ├── GetAlterationPlanResponse.cs │ │ │ │ ├── RunRequest.cs │ │ │ │ ├── RunResponse.cs │ │ │ │ └── SubmitResponse.cs │ │ ├── CommitStrategies │ │ │ ├── Contracts │ │ │ │ └── IIncidentStrategiesApi.cs │ │ │ └── Models │ │ │ │ └── CommitStrategyDescriptor.cs │ │ ├── Features │ │ │ ├── Contracts │ │ │ │ └── IFeaturesApi.cs │ │ │ └── Models │ │ │ │ └── FeatureDescriptor.cs │ │ ├── Identity │ │ │ ├── Contracts │ │ │ │ └── ILoginApi.cs │ │ │ ├── Requests │ │ │ │ └── LoginRequest.cs │ │ │ └── Responses │ │ │ │ └── LoginResponse.cs │ │ ├── IncidentStrategies │ │ │ ├── Contracts │ │ │ │ └── IIncidentStrategiesApi.cs │ │ │ └── Models │ │ │ │ └── IncidentStrategyDescriptor.cs │ │ ├── LogPersistenceStrategies │ │ │ ├── Contracts │ │ │ │ └── ILogPersistenceStrategiesApi.cs │ │ │ └── Models │ │ │ │ └── LogPersistenceStrategyDescriptor.cs │ │ ├── Package │ │ │ ├── Contracts │ │ │ │ └── IPackageApi.cs │ │ │ └── Models │ │ │ │ └── PackageVersionResponse.cs │ │ ├── Resilience │ │ │ ├── Contracts │ │ │ │ ├── IIncidentStrategiesApi.cs │ │ │ │ └── IRetryAttemptsApi.cs │ │ │ └── Models │ │ │ │ ├── ResilienceStrategyConfig.cs │ │ │ │ ├── ResilienceStrategyConfigMode.cs │ │ │ │ └── RetryAttempt.cs │ │ ├── Scripting │ │ │ ├── Contracts │ │ │ │ ├── IExpressionsApi.cs │ │ │ │ └── IJavaScriptApi.cs │ │ │ ├── Extensions │ │ │ │ └── ExpressionExtensions.cs │ │ │ ├── Models │ │ │ │ ├── Expression.cs │ │ │ │ └── ExpressionDescriptor.cs │ │ │ └── Requests │ │ │ │ └── GetWorkflowJavaScriptDefinitionRequest.cs │ │ ├── StorageDrivers │ │ │ ├── Contracts │ │ │ │ └── IStorageDriversApi.cs │ │ │ ├── Models │ │ │ │ └── StorageDriverDescriptor.cs │ │ │ └── Responses │ │ │ │ └── ListStorageDriversResponse.cs │ │ ├── Tasks │ │ │ ├── Contracts │ │ │ │ └── ITasksApi.cs │ │ │ └── Requests │ │ │ │ └── ReportTaskCompletedRequest.cs │ │ ├── VariableTypes │ │ │ ├── Contracts │ │ │ │ └── IStorageDriversApi.cs │ │ │ ├── Models │ │ │ │ └── VariableTypeDescriptor.cs │ │ │ └── Responses │ │ │ │ └── ListVariableTypesResponse.cs │ │ ├── WorkflowActivationStrategies │ │ │ ├── Contracts │ │ │ │ └── IWorkflowActivationStrategiesApi.cs │ │ │ └── Models │ │ │ │ └── WorkflowActivationStrategyDescriptor.cs │ │ ├── WorkflowDefinitions │ │ │ ├── Contracts │ │ │ │ ├── IExecuteWorkflowApi.cs │ │ │ │ └── IWorkflowDefinitionsApi.cs │ │ │ ├── Enums │ │ │ │ ├── LogPersistenceMode.cs │ │ │ │ └── OrderByWorkflowDefinition.cs │ │ │ ├── Models │ │ │ │ ├── ArgumentDefinition.cs │ │ │ │ ├── BulkExportWorkflowDefinitionsRequest.cs │ │ │ │ ├── ExecuteResponse.cs │ │ │ │ ├── ImportFilesResponse.cs │ │ │ │ ├── InputDefinition.cs │ │ │ │ ├── OutputDefinition.cs │ │ │ │ ├── UIHintDescriptor.cs │ │ │ │ ├── Variable.cs │ │ │ │ ├── VariableDefinition.cs │ │ │ │ ├── WorkflowCommitStateOptions.cs │ │ │ │ ├── WorkflowDefinition.cs │ │ │ │ ├── WorkflowDefinitionModel.cs │ │ │ │ ├── WorkflowDefinitionSummary.cs │ │ │ │ └── WorkflowOptions.cs │ │ │ ├── Requests │ │ │ │ ├── BulkDeleteWorkflowDefinitionVersionsRequest.cs │ │ │ │ ├── BulkDeleteWorkflowDefinitionsRequest.cs │ │ │ │ ├── BulkPublishWorkflowDefinitionsRequest.cs │ │ │ │ ├── BulkRetractWorkflowDefinitionsRequest.cs │ │ │ │ ├── DispatchWorkflowDefinitionRequest.cs │ │ │ │ ├── ExecuteWorkflowDefinitionRequest.cs │ │ │ │ ├── GetWorkflowDefinitionRequest.cs │ │ │ │ ├── ListWorkflowDefinitionsRequest.cs │ │ │ │ ├── PublishWorkflowDefinitionRequest.cs │ │ │ │ ├── RetractWorkflowDefinitionRequest.cs │ │ │ │ ├── SaveWorkflowDefinitionRequest.cs │ │ │ │ └── UpdateConsumingWorkflowReferencesRequest.cs │ │ │ └── Responses │ │ │ │ ├── BulkDeleteWorkflowDefinitionsResponse.cs │ │ │ │ ├── BulkPublishWorkflowDefinitionsResponse.cs │ │ │ │ ├── BulkRetractWorkflowDefinitionsResponse.cs │ │ │ │ ├── CountWorkflowDefinitionsResponse.cs │ │ │ │ ├── ExecuteWorkflowDefinitionResponse.cs │ │ │ │ ├── GetIsNameUniqueResponse.cs │ │ │ │ ├── GetPathSegmentsResponse.cs │ │ │ │ ├── SaveWorkflowDefinitionResponse.cs │ │ │ │ └── UpdateConsumingWorkflowReferencesResponse.cs │ │ ├── WorkflowExecutionContexts │ │ │ ├── Contracts │ │ │ │ └── IWorkflowContextProviderDescriptorsApi.cs │ │ │ └── Models │ │ │ │ └── WorkflowContextProviderDescriptor.cs │ │ └── WorkflowInstances │ │ │ ├── Contracts │ │ │ └── IWorkflowInstancesApi.cs │ │ │ ├── Enums │ │ │ ├── OrderByWorkflowInstance.cs │ │ │ ├── WorkflowStatus.cs │ │ │ └── WorkflowSubStatus.cs │ │ │ ├── Models │ │ │ ├── ActivityExecutionContextState.cs │ │ │ ├── ActivityIncident.cs │ │ │ ├── Bookmark.cs │ │ │ ├── BulkExportWorkflowInstancesRequest.cs │ │ │ ├── CompletionCallbackState.cs │ │ │ ├── ExceptionState.cs │ │ │ ├── PersistentVariableState.cs │ │ │ ├── ResolvedVariable.cs │ │ │ ├── WorkflowExecutionLogRecord.cs │ │ │ ├── WorkflowFaultState.cs │ │ │ ├── WorkflowInstance.cs │ │ │ ├── WorkflowInstanceSummary.cs │ │ │ └── WorkflowState.cs │ │ │ ├── Requests │ │ │ ├── BulkCancelWorkflowInstancesRequest.cs │ │ │ ├── BulkDeleteWorkflowInstancesRequest.cs │ │ │ ├── GetFilteredJournalRequest.cs │ │ │ ├── JournalFilter.cs │ │ │ └── ListWorkflowInstancesRequest.cs │ │ │ └── Responses │ │ │ ├── BulkDeleteWorkflowInstancesResponse.cs │ │ │ └── WorkflowInstanceExecutionStateResponse.cs │ │ ├── Serialization │ │ └── SerializerOptions.cs │ │ └── Shared │ │ ├── Enums │ │ ├── LogPersistenceEvaluationMode.cs │ │ ├── MergeMode.cs │ │ └── TimestampFilterOperator.cs │ │ ├── HeaderNames.cs │ │ ├── Models │ │ ├── ActivityDesignerMetadata.cs │ │ ├── ActivityNode.cs │ │ ├── ActivityOutput.cs │ │ ├── ActivityPathSegment.cs │ │ ├── ActivityStatus.cs │ │ ├── Connection.cs │ │ ├── Container.cs │ │ ├── DynamicOutcomesOptions.cs │ │ ├── Endpoint.cs │ │ ├── Entity.cs │ │ ├── HttpStatusCodeCase.cs │ │ ├── Link.cs │ │ ├── LinkedEntity.cs │ │ ├── ListResponse.cs │ │ ├── LogPersistenceConfiguration.cs │ │ ├── MemoryReference.cs │ │ ├── OrderDirection.cs │ │ ├── PagedListResponse.cs │ │ ├── Position.cs │ │ ├── PropertyBag.cs │ │ ├── Size.cs │ │ ├── SwitchCase.cs │ │ ├── TimestampFilter.cs │ │ ├── VersionOptions.cs │ │ ├── VersionedEntity.cs │ │ └── WrappedInput.cs │ │ └── UIHints │ │ ├── CheckList │ │ ├── CheckList.cs │ │ ├── CheckListItem.cs │ │ └── CheckListProps.cs │ │ ├── CodeEditor │ │ ├── CodeEditorOptions.cs │ │ ├── EditorHeight.cs │ │ └── MultiLineOptions.cs │ │ ├── DropDown │ │ ├── DropDownProps.cs │ │ ├── SelectList.cs │ │ └── SelectListItem.cs │ │ ├── RadioList │ │ ├── RadioList.cs │ │ ├── RadioListItem.cs │ │ └── RadioListProps.cs │ │ └── SingleLine │ │ └── SingleLineProps.cs ├── common │ ├── Elsa.Api.Common │ │ ├── Abstractions │ │ │ └── Endpoints.cs │ │ ├── Elsa.Api.Common.csproj │ │ ├── EndpointSecurityOptions.cs │ │ ├── Extensions │ │ │ ├── HttpContextAccessorExtensions.cs │ │ │ ├── ModuleExtensions.cs │ │ │ ├── ObjectDictionaryExtensions.cs │ │ │ ├── SwaggerExtensions.cs │ │ │ └── WebApplicationExtensions.cs │ │ ├── FodyWeavers.xml │ │ ├── Models │ │ │ ├── CountResponse.cs │ │ │ ├── LinkedResource.cs │ │ │ ├── ListResponse.cs │ │ │ ├── PagedListResponse.cs │ │ │ └── ValidateCredentialsResult.cs │ │ ├── PermissionNames.cs │ │ └── Requirements │ │ │ ├── LocalHostPermissionRequirement.cs │ │ │ └── LocalHostRequirement.cs │ ├── Elsa.Features │ │ ├── Abstractions │ │ │ └── FeatureBase.cs │ │ ├── Attributes │ │ │ ├── DependencyOf.cs │ │ │ └── DependsOn.cs │ │ ├── Contracts │ │ │ └── IInstalledFeatureRegistry.cs │ │ ├── Elsa.Features.csproj │ │ ├── Extensions │ │ │ ├── DependencyInjectionExtensions.cs │ │ │ └── EnumerableTopologicalSortExtensions.cs │ │ ├── FodyWeavers.xml │ │ ├── Implementations │ │ │ └── Module.cs │ │ ├── Models │ │ │ └── FeatureDescriptor.cs │ │ └── Services │ │ │ ├── IFeature.cs │ │ │ ├── IModule.cs │ │ │ └── InstalledFeatureRegistry.cs │ ├── Elsa.Mediator │ │ ├── Abstractions │ │ │ └── ChannelBase.cs │ │ ├── Channels │ │ │ ├── CommandsChannel.cs │ │ │ ├── JobsChannel.cs │ │ │ └── NotificationsChannel.cs │ │ ├── CommandStrategies │ │ │ ├── BackgroundStrategy.cs │ │ │ └── DefaultStrategy.cs │ │ ├── CommandStrategy.cs │ │ ├── Contexts │ │ │ ├── CommandStrategyContext.cs │ │ │ └── NotificationStrategyContext.cs │ │ ├── Contracts │ │ │ ├── ICommand.cs │ │ │ ├── ICommandHandler.cs │ │ │ ├── ICommandSender.cs │ │ │ ├── ICommandStrategy.cs │ │ │ ├── ICommandsChannel.cs │ │ │ ├── IConsumer.cs │ │ │ ├── IEventPublishingStrategy.cs │ │ │ ├── IJobQueue.cs │ │ │ ├── IJobsChannel.cs │ │ │ ├── IMediator.cs │ │ │ ├── INotification.cs │ │ │ ├── INotificationHandler.cs │ │ │ ├── INotificationSender.cs │ │ │ ├── INotificationsChannel.cs │ │ │ ├── IRequest.cs │ │ │ ├── IRequestHandler.cs │ │ │ └── IRequestSender.cs │ │ ├── Elsa.Mediator.csproj │ │ ├── Extensions │ │ │ ├── DependencyInjectionExtensions.cs │ │ │ ├── HandlerExtensions.cs │ │ │ └── MediatorExtensions.cs │ │ ├── FodyWeavers.xml │ │ ├── HostedServices │ │ │ ├── BackgroundCommandSenderHostedService.cs │ │ │ ├── BackgroundEventPublisherHostedService.cs │ │ │ ├── JobRunnerHostedService.cs │ │ │ └── MessageProcessorHostedService.cs │ │ ├── Middleware │ │ │ ├── Command │ │ │ │ ├── CommandContext.cs │ │ │ │ ├── CommandMiddlewareDelegate.cs │ │ │ │ ├── CommandPipeline.cs │ │ │ │ ├── CommandPipelineBuilder.cs │ │ │ │ ├── CommandPipelineBuilderExtensions.cs │ │ │ │ ├── Components │ │ │ │ │ ├── CommandHandlerInvokerMiddleware.cs │ │ │ │ │ └── CommandLoggingMiddleware.cs │ │ │ │ ├── Contracts │ │ │ │ │ ├── ICommandMiddleware.cs │ │ │ │ │ ├── ICommandPipeline.cs │ │ │ │ │ └── ICommandPipelineBuilder.cs │ │ │ │ └── MiddlewareExtensions.cs │ │ │ ├── MiddlewareHelpers.cs │ │ │ ├── Notification │ │ │ │ ├── Components │ │ │ │ │ ├── NotificationHandlerInvokerMiddleware.cs │ │ │ │ │ └── NotificationLoggingMiddleware.cs │ │ │ │ ├── Contracts │ │ │ │ │ ├── INotificationMiddleware.cs │ │ │ │ │ ├── INotificationPipeline.cs │ │ │ │ │ └── INotificationPipelineBuilder.cs │ │ │ │ ├── MiddlewareExtensions.cs │ │ │ │ ├── NotificationContext.cs │ │ │ │ ├── NotificationMiddlewareDelegate.cs │ │ │ │ ├── NotificationPipeline.cs │ │ │ │ ├── NotificationPipelineBuilder.cs │ │ │ │ └── NotificationPipelineBuilderExtensions.cs │ │ │ └── Request │ │ │ │ ├── Components │ │ │ │ ├── RequestHandlerInvokerMiddleware.cs │ │ │ │ └── RequestLoggingMiddleware.cs │ │ │ │ ├── Contracts │ │ │ │ ├── IRequestMiddleware.cs │ │ │ │ ├── IRequestPipeline.cs │ │ │ │ └── IRequestPipelineBuilder.cs │ │ │ │ ├── MiddlewareExtensions.cs │ │ │ │ ├── RequestContext.cs │ │ │ │ ├── RequestMiddlewareDelegate.cs │ │ │ │ ├── RequestPipeline.cs │ │ │ │ ├── RequestPipelineBuilder.cs │ │ │ │ └── RequestPipelineBuilderExtensions.cs │ │ ├── Models │ │ │ ├── EnqueuedJob.cs │ │ │ └── Unit.cs │ │ ├── NotificationStrategy.cs │ │ ├── Options │ │ │ └── MediatorOptions.cs │ │ ├── PublishingStrategies │ │ │ ├── BackgroundProcessingStrategy.cs │ │ │ ├── ParallelProcessingStrategy.cs │ │ │ └── SequentialProcessingStrategy.cs │ │ └── Services │ │ │ ├── DefaultMediator.cs │ │ │ └── JobQueue.cs │ ├── Elsa.Testing.Shared.Component │ │ ├── Activities │ │ │ └── TriggerSignal.cs │ │ ├── Elsa.Testing.Shared.Component.csproj │ │ ├── EventArgs │ │ │ ├── TriggerChangeTokenSignalEventArgs.cs │ │ │ ├── WorkflowDefinitionDeletedEventArgs.cs │ │ │ ├── WorkflowFinishedEventArgs.cs │ │ │ └── WorkflowInstanceSavedEventArgs.cs │ │ ├── Extensions │ │ │ └── HttpResponseMessageExtensions.cs │ │ ├── FodyWeavers.xml │ │ ├── Handlers │ │ │ └── WorkflowEventHandlers.cs │ │ └── Services │ │ │ ├── SignalManager.cs │ │ │ ├── StaticValueHolder.cs │ │ │ ├── TestTenantResolver.cs │ │ │ ├── TestTenantsProvider.cs │ │ │ ├── TriggerChangeTokenSignalEvents..cs │ │ │ ├── WorkflowDefinitionEvents.cs │ │ │ └── WorkflowEvents.cs │ ├── Elsa.Testing.Shared.Integration │ │ ├── DispatchWorkflowExtensions.cs │ │ ├── Elsa.Testing.Shared.Integration.csproj │ │ ├── FodyWeavers.xml │ │ ├── RunActivityExtensions.cs │ │ ├── RunWorkflowExtensions.cs │ │ ├── ServiceProviderExtensions.cs │ │ ├── TestApplicationBuilder.cs │ │ └── TestWorkflow.cs │ └── Elsa.Testing.Shared │ │ ├── CapturingTextWriter.cs │ │ ├── CombinedTextWriter.cs │ │ ├── Elsa.Testing.Shared.csproj │ │ ├── FodyWeavers.xml │ │ ├── UnicodeRangeGenerator.cs │ │ ├── XunitConsoleTextWriter.cs │ │ ├── XunitLogger.cs │ │ └── XunitLoggerProvider.cs ├── extensions │ └── Elsa.Testing.Extensions │ │ ├── Elsa.Testing.Extensions.csproj │ │ ├── Extensions │ │ └── WebApplicationFactoryExtensions.cs │ │ └── README.md ├── modules │ ├── Elsa.Caching │ │ ├── Contracts │ │ │ ├── ICacheManager.cs │ │ │ ├── IChangeTokenSignalInvoker.cs │ │ │ └── IChangeTokenSignaler.cs │ │ ├── Elsa.Caching.csproj │ │ ├── Elsa.Caching.csproj.DotSettings │ │ ├── Extensions │ │ │ └── ModuleExtensions.cs │ │ ├── Features │ │ │ └── MemoryCacheFeature.cs │ │ ├── FodyWeavers.xml │ │ ├── Options │ │ │ └── CachingOptions.cs │ │ └── Services │ │ │ ├── CacheManager.cs │ │ │ ├── ChangeTokenSignalInvoker.cs │ │ │ └── ChangeTokenSignaler.cs │ ├── Elsa.Common │ │ ├── Attributes │ │ │ └── ForwardedTypeAttribute.cs │ │ ├── Codecs │ │ │ ├── GZip.cs │ │ │ ├── None.cs │ │ │ └── Zstd.cs │ │ ├── Contracts │ │ │ ├── BackgroundTask.cs │ │ │ ├── IBackgroundTask.cs │ │ │ ├── ICompressionCodec.cs │ │ │ ├── ICompressionCodecResolver.cs │ │ │ ├── IFormatter.cs │ │ │ ├── IJsonSerializer.cs │ │ │ ├── ILogRecord.cs │ │ │ ├── IRecurringTask.cs │ │ │ ├── ISerializationOptionsConfigurator.cs │ │ │ ├── IStartupTask.cs │ │ │ ├── ISystemClock.cs │ │ │ ├── ITask.cs │ │ │ └── RecurringTask.cs │ │ ├── Converters │ │ │ ├── BigIntegerJsonConverter.cs │ │ │ ├── DecimalJsonConverter.cs │ │ │ ├── IntegerJsonConverter.cs │ │ │ ├── VersionOptionsJsonConverter.cs │ │ │ └── VersionOptionsTypeConverter.cs │ │ ├── DistributedHosting │ │ │ ├── DistributedLocks │ │ │ │ └── Noop │ │ │ │ │ ├── NoopDistributedLock.cs │ │ │ │ │ ├── NoopDistributedSynchronizationHandle.cs │ │ │ │ │ └── NoopDistributedSynchronizationProvider.cs │ │ │ └── Options │ │ │ │ └── DistributedLockingOptions.cs │ │ ├── Elsa.Common.csproj │ │ ├── Elsa.Common.csproj.DotSettings │ │ ├── Entities │ │ │ ├── Entity.cs │ │ │ ├── ManagedEntity.cs │ │ │ ├── OrderDefinition.cs │ │ │ ├── OrderDirection.cs │ │ │ └── VersionedEntity.cs │ │ ├── Exceptions │ │ │ └── MissingConfigurationException.cs │ │ ├── Extensions │ │ │ ├── CollectionExtensions.cs │ │ │ ├── ConfigurationExtensions.cs │ │ │ ├── DependencyInjectionExtensions.cs │ │ │ ├── EnumerableExtensions.cs │ │ │ ├── JsonSerializerOptionsExtensions.cs │ │ │ ├── PropertyAccessorExtensions.cs │ │ │ ├── QueryableExtensions.cs │ │ │ ├── ServiceCollectionExtensions.cs │ │ │ ├── StringExtensions.cs │ │ │ ├── TypeExtensions.cs │ │ │ └── VersionedEntityExtensions.cs │ │ ├── Features │ │ │ ├── CompressionFeature.cs │ │ │ ├── DefaultFormattersFeature.cs │ │ │ ├── MediatorFeature.cs │ │ │ ├── MultitenancyFeature.cs │ │ │ └── SystemClockFeature.cs │ │ ├── FodyWeavers.xml │ │ ├── Helpers │ │ │ └── TypeHelper.cs │ │ ├── Models │ │ │ ├── Page.cs │ │ │ ├── PageArgs.cs │ │ │ └── VersionOptions.cs │ │ ├── Multitenancy │ │ │ ├── Abstractions │ │ │ │ └── TenantResolverBase.cs │ │ │ ├── Contexts │ │ │ │ └── TenantResolverContext.cs │ │ │ ├── Contracts │ │ │ │ ├── IBackgroundTaskStarter.cs │ │ │ │ ├── ITaskExecutor.cs │ │ │ │ ├── ITenantAccessor.cs │ │ │ │ ├── ITenantActivatedEvent.cs │ │ │ │ ├── ITenantDeactivatedEvent.cs │ │ │ │ ├── ITenantFinder.cs │ │ │ │ ├── ITenantResolver.cs │ │ │ │ ├── ITenantScopeFactory.cs │ │ │ │ ├── ITenantService.cs │ │ │ │ └── ITenantsProvider.cs │ │ │ ├── Entities │ │ │ │ └── Tenant.cs │ │ │ ├── EventArgs │ │ │ │ ├── TenantActivatedEventArgs.cs │ │ │ │ ├── TenantDeactivatedEventArgs.cs │ │ │ │ └── TenantEventArgs.cs │ │ │ ├── EventHandlers │ │ │ │ ├── RunBackgroundTasks.cs │ │ │ │ ├── RunStartupTasks.cs │ │ │ │ └── StartRecurringTasks.cs │ │ │ ├── Extensions │ │ │ │ └── TenantsProviderExtensions.cs │ │ │ ├── HostedServices │ │ │ │ └── ActivateTenants.cs │ │ │ ├── Implementations │ │ │ │ ├── DefaultTenantAccessor.cs │ │ │ │ ├── DefaultTenantFinder.cs │ │ │ │ ├── DefaultTenantResolver.cs │ │ │ │ ├── DefaultTenantScopeFactory.cs │ │ │ │ ├── DefaultTenantService.cs │ │ │ │ ├── DefaultTenantsProvider.cs │ │ │ │ ├── TaskExecutor.cs │ │ │ │ └── TenantEventsManager.cs │ │ │ ├── Models │ │ │ │ ├── TenantFilter.cs │ │ │ │ └── TenantScope.cs │ │ │ └── Results │ │ │ │ └── TenantResolverResult.cs │ │ ├── RecurringTasks │ │ │ ├── CronSchedule.cs │ │ │ ├── ISchedule.cs │ │ │ ├── IntervalExpression.cs │ │ │ ├── IntervalExpressionType.cs │ │ │ ├── IntervalSchedule.cs │ │ │ ├── OrderAttribute.cs │ │ │ ├── RecurringTaskOptions.cs │ │ │ ├── RecurringTaskSchedule.cs │ │ │ ├── RecurringTaskScheduleManager.cs │ │ │ ├── ScheduledTimer.cs │ │ │ └── SingleNodeTaskAttribute.cs │ │ ├── Serialization │ │ │ ├── ConfigurableSerializer.cs │ │ │ ├── ConfigurationJsonConverter.cs │ │ │ ├── JsonSerializer.cs │ │ │ ├── ModifiableJsonTypeInfoResolver.cs │ │ │ ├── SerializerOptions.cs │ │ │ ├── Serializers.cs │ │ │ ├── TypeAliasRegistry.cs │ │ │ └── TypeTypeConverter.cs │ │ └── Services │ │ │ ├── CompressionCodecResolver.cs │ │ │ ├── JsonFormatter.cs │ │ │ ├── MemoryStore.cs │ │ │ └── SystemClock.cs │ ├── Elsa.Expressions.CSharp │ │ ├── Activities │ │ │ └── RunCSharp │ │ │ │ ├── RunCSharp.cs │ │ │ │ └── RunCSharpOptionsProvider.cs │ │ ├── Contexts │ │ │ ├── ScriptConfigurationContext.cs │ │ │ └── ScriptOptionsConfigurationContext.cs │ │ ├── Contracts │ │ │ └── ICSharpEvaluator.cs │ │ ├── Elsa.Expressions.CSharp.csproj │ │ ├── Expressions │ │ │ └── CSharpExpressionHandler.cs │ │ ├── Extensions │ │ │ ├── CSharpEvaluatorExtensions.cs │ │ │ ├── ModuleExtensions.cs │ │ │ └── VariableNameExtensions.cs │ │ ├── Features │ │ │ └── CSharpFeature.cs │ │ ├── FodyWeavers.xml │ │ ├── Handlers │ │ │ ├── AddAssembliesAndReferencesFromOptions.cs │ │ │ ├── ConfigureScriptsFromOptions.cs │ │ │ ├── GenerateArgumentAccessors.cs │ │ │ ├── GenerateWorkflowInputAccessors.cs │ │ │ └── GenerateWorkflowVariableAccessors.cs │ │ ├── Models │ │ │ ├── ExecutionContextProxy.cs │ │ │ ├── Globals.cs │ │ │ ├── OutcomeProxy.cs │ │ │ └── OutputProxy.cs │ │ ├── Notifications │ │ │ └── EvaluatingCSharp.cs │ │ ├── Options │ │ │ └── CSharpOptions.cs │ │ ├── Providers │ │ │ └── CSharpExpressionDescriptorProvider.cs │ │ └── Services │ │ │ └── CSharpEvaluator.cs │ ├── Elsa.Expressions.JavaScript.Libraries │ │ ├── ClientLib │ │ │ ├── dist │ │ │ │ ├── lodash.js │ │ │ │ ├── lodashFp.js │ │ │ │ └── moment.js │ │ │ ├── package-lock.json │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── lodash.js │ │ │ │ ├── lodashFp.js │ │ │ │ └── moment.js │ │ │ └── webpack.config.js │ │ ├── Elsa.Expressions.JavaScript.Libraries.csproj │ │ ├── Elsa.Expressions.JavaScript.Libraries.csproj.DotSettings │ │ ├── Extensions │ │ │ └── JavaScriptFeatureExtensions.cs │ │ ├── Features │ │ │ ├── LodashFeature.cs │ │ │ ├── LodashFpFeature.cs │ │ │ ├── MomentFeature.cs │ │ │ └── ScriptModuleFeatureBase.cs │ │ └── FodyWeavers.xml │ ├── Elsa.Expressions.JavaScript │ │ ├── Activities │ │ │ └── RunJavaScript │ │ │ │ ├── RunJavaScript.cs │ │ │ │ ├── RunJavaScriptFunctionsDefinitionProvider.cs │ │ │ │ └── RunJavaScriptOptionsProvider.cs │ │ ├── Contracts │ │ │ ├── IJavaScriptEvaluator.cs │ │ │ └── ITypeAliasRegistry.cs │ │ ├── Elsa.Expressions.JavaScript.csproj │ │ ├── Endpoints │ │ │ └── TypeDefinitions │ │ │ │ └── Endpoint.cs │ │ ├── Expressions │ │ │ └── JavaScriptExpressionHandler.cs │ │ ├── Extensions │ │ │ ├── DependencyInjectionExtensions.cs │ │ │ ├── EngineExtensions.cs │ │ │ ├── ModuleExtensions.cs │ │ │ ├── TypeAliasRegistryExtensions.cs │ │ │ └── VariableNameExtensions.cs │ │ ├── Features │ │ │ └── JavaScriptFeature.cs │ │ ├── FodyWeavers.xml │ │ ├── Handlers │ │ │ ├── ConfigureEngineWithCommonFunctions.cs │ │ │ ├── ConfigureEngineWithCommonTypes.cs │ │ │ ├── ConfigureEngineWithVariables.cs │ │ │ └── ConfigureEngineWithVariablesAndInputOutputAccessors.cs │ │ ├── Helpers │ │ │ ├── ObjectArrayHelper.cs │ │ │ ├── ObjectConverterHelper.cs │ │ │ └── VariableNameValidator.cs │ │ ├── HostedServices │ │ │ └── RegisterVariableTypesWithJavaScriptHostedService.cs │ │ ├── Models │ │ │ └── Expression.cs │ │ ├── Notifications │ │ │ ├── CreatingJavaScriptEngine.cs │ │ │ ├── EvaluatedJavaScript.cs │ │ │ └── EvaluatingJavaScript.cs │ │ ├── ObjectConverters │ │ │ ├── ByteArrayConverter.cs │ │ │ ├── EnumToStringConverter.cs │ │ │ └── JsonElementConverter.cs │ │ ├── Options │ │ │ └── JintOptions.cs │ │ ├── Providers │ │ │ ├── ActivityOutputFunctionsDefinitionProvider.cs │ │ │ ├── CommonFunctionsDefinitionProvider.cs │ │ │ ├── CommonTypesDefinitionProvider.cs │ │ │ ├── InputFunctionsDefinitionProvider.cs │ │ │ ├── JavaScriptExpressionSyntaxProvider.cs │ │ │ ├── VariableTypeDefinitionProvider.cs │ │ │ ├── WorkflowVariablesTypeDefinitionProvider.cs │ │ │ └── WorkflowVariablesVariableProvider.cs │ │ ├── Services │ │ │ ├── JintJavaScriptEvaluator.cs │ │ │ └── TypeAliasRegistry.cs │ │ └── TypeDefinitions │ │ │ ├── Abstractions │ │ │ ├── FunctionDefinitionProvider.cs │ │ │ ├── TypeDefinitionProvider.cs │ │ │ └── VariableDefinitionProvider.cs │ │ │ ├── Builders │ │ │ ├── FunctionDefinitionBuilder.cs │ │ │ ├── TypeDefinitionBuilder.cs │ │ │ └── VariableDefinitionBuilder.cs │ │ │ ├── Contracts │ │ │ ├── IFunctionDefinitionProvider.cs │ │ │ ├── ITypeDefinitionDocumentRenderer.cs │ │ │ ├── ITypeDefinitionProvider.cs │ │ │ ├── ITypeDefinitionService.cs │ │ │ ├── ITypeDescriber.cs │ │ │ └── IVariableDefinitionProvider.cs │ │ │ ├── Models │ │ │ ├── FunctionDefinition.cs │ │ │ ├── ParameterDefinition.cs │ │ │ ├── PropertyDefinition.cs │ │ │ ├── TypeDefinition.cs │ │ │ ├── TypeDefinitionContext.cs │ │ │ ├── TypeDefinitionsDocument.cs │ │ │ └── VariableDefinition.cs │ │ │ └── Services │ │ │ ├── TypeDefinitionDocumentRenderer.cs │ │ │ ├── TypeDefinitionService.cs │ │ │ └── TypeDescriber.cs │ ├── Elsa.Expressions.Liquid │ │ ├── Contracts │ │ │ ├── ILiquidFilter.cs │ │ │ └── ILiquidTemplateManager.cs │ │ ├── Elsa.Expressions.Liquid.csproj │ │ ├── Expressions │ │ │ └── LiquidExpressionHandler.cs │ │ ├── Extensions │ │ │ ├── DependencyInjectionExtensions.cs │ │ │ ├── ModuleExtensions.cs │ │ │ └── TemplateContextExtensions.cs │ │ ├── Features │ │ │ └── LiquidFeature.cs │ │ ├── Filters │ │ │ ├── Base64Filter.cs │ │ │ └── DictionaryKeysFilter.cs │ │ ├── FodyWeavers.xml │ │ ├── Handlers │ │ │ └── ConfigureLiquidEngine.cs │ │ ├── Helpers │ │ │ ├── ConfigurationSectionWrapper.cs │ │ │ ├── LiquidActivityModel.cs │ │ │ ├── LiquidObjectAccessor.cs │ │ │ └── LiquidPropertyAccessor.cs │ │ ├── Notifications │ │ │ └── RenderingLiquidTemplate.cs │ │ ├── Options │ │ │ └── FluidOptions.cs │ │ ├── Providers │ │ │ └── LiquidExpressionSyntaxProvider.cs │ │ └── Services │ │ │ ├── LiquidParser.cs │ │ │ └── LiquidTemplateManager.cs │ ├── Elsa.Expressions.Python │ │ ├── Activities │ │ │ └── RunPython │ │ │ │ ├── RunPython.cs │ │ │ │ └── RunPythonOptionsProvider.cs │ │ ├── Contracts │ │ │ └── IPythonEvaluator.cs │ │ ├── Elsa.Expressions.Python.csproj │ │ ├── Expressions │ │ │ └── PythonExpressionHandler.cs │ │ ├── Extensions │ │ │ └── ModuleExtensions.cs │ │ ├── Features │ │ │ └── PythonFeature.cs │ │ ├── FodyWeavers.xml │ │ ├── Handlers │ │ │ ├── AddInputAccessors.cs │ │ │ ├── ConfigurePythonFromOptions.cs │ │ │ └── GenerateWorkflowVariableAccessors.cs │ │ ├── HostedServices │ │ │ └── PythonGlobalInterpreterManager.cs │ │ ├── Models │ │ │ ├── ExecutionContextProxy.cs │ │ │ ├── InputProxy.cs │ │ │ ├── OutcomeProxy.cs │ │ │ └── OutputProxy.cs │ │ ├── Notifications │ │ │ └── EvaluatingPython.cs │ │ ├── Options │ │ │ └── PythonOptions.cs │ │ ├── Providers │ │ │ └── PythonExpressionSyntaxProvider.cs │ │ └── Services │ │ │ └── PythonNetPythonEvaluator.cs │ ├── Elsa.Expressions │ │ ├── Contracts │ │ │ ├── IExpressionDescriptorProvider.cs │ │ │ ├── IExpressionDescriptorRegistry.cs │ │ │ ├── IExpressionDescriptorRegistryPopulator.cs │ │ │ ├── IExpressionEvaluator.cs │ │ │ ├── IExpressionHandler.cs │ │ │ └── IWellKnownTypeRegistry.cs │ │ ├── DelegateExpressionHandler.cs │ │ ├── Elsa.Expressions.csproj │ │ ├── Exceptions │ │ │ └── TypeConversionException.cs │ │ ├── Extensions │ │ │ ├── ExpressionOptionsExtensions.cs │ │ │ ├── JsonElementExtensions.cs │ │ │ ├── ModuleExtensions.cs │ │ │ ├── TypeExtensions.cs │ │ │ └── WellKnowTypeRegistryExtensions.cs │ │ ├── Features │ │ │ └── ExpressionsFeature.cs │ │ ├── FodyWeavers.xml │ │ ├── Helpers │ │ │ ├── ObjectConverter.cs │ │ │ └── ObjectFormatter.cs │ │ ├── LiteralExpression.cs │ │ ├── Models │ │ │ ├── Brackets.cs │ │ │ ├── Expression.cs │ │ │ ├── ExpressionDescriptor.cs │ │ │ ├── ExpressionEvaluatorOptions.cs │ │ │ ├── ExpressionExecutionContext.cs │ │ │ ├── ExpressionSerializationContext.cs │ │ │ ├── Literal.cs │ │ │ ├── MemoryBlock.cs │ │ │ ├── MemoryBlockReference.cs │ │ │ ├── MemoryRegister.cs │ │ │ ├── ObjectLiteral.cs │ │ │ └── Result.cs │ │ ├── Options │ │ │ └── ExpressionOptions.cs │ │ └── Services │ │ │ ├── ExpressionEvaluator.cs │ │ │ └── WellKnownTypeRegistry.cs │ ├── Elsa.Hosting.Management │ │ ├── Contracts │ │ │ └── IApplicationInstanceNameProvider.cs │ │ ├── Elsa.Hosting.Management.csproj │ │ ├── Extensions │ │ │ └── ModuleExtensions.cs │ │ ├── Features │ │ │ └── ClusteringFeature.cs │ │ ├── FodyWeavers.xml │ │ ├── HostedServices │ │ │ ├── InstanceHeartbeatMonitorService.cs │ │ │ └── InstanceHeartbeatService.cs │ │ ├── Notifications │ │ │ └── HeartbeatTimedOut.cs │ │ ├── Options │ │ │ └── HeartbeatOptions.cs │ │ └── Services │ │ │ ├── RandomApplicationInstanceNameProvider.cs │ │ │ └── RandomIntIdentityGenerator.cs │ ├── Elsa.Http │ │ ├── Abstractions │ │ │ ├── DownloadableContentHandlerBase.cs │ │ │ ├── HttpCorrelationIdSelectorBase.cs │ │ │ └── HttpWorkflowInstanceIdSelectorBase.cs │ │ ├── Activities │ │ │ ├── DownloadHttpFile.cs │ │ │ ├── FlowSendHttpRequest.cs │ │ │ ├── HttpEndpoint.cs │ │ │ ├── HttpEndpointBase.cs │ │ │ ├── SendHttpRequest.cs │ │ │ ├── SendHttpRequestBase.cs │ │ │ ├── WriteFileHttpResponse.cs │ │ │ └── WriteHttpResponse.cs │ │ ├── BookmarkMetadata.cs │ │ ├── Bookmarks │ │ │ └── HttpEndpointBookmarkPayload.cs │ │ ├── Constants │ │ │ ├── HttpFaultCategories.cs │ │ │ └── HttpFaultCodes.cs │ │ ├── ContentWriters │ │ │ ├── BinaryContentFactory.cs │ │ │ ├── FormUrlEncodedHttpContentFactory.cs │ │ │ ├── IHttpContentFactory.cs │ │ │ ├── JsonContentFactory.cs │ │ │ ├── RawStringContent.cs │ │ │ ├── TextContentFactory.cs │ │ │ └── XmlContentFactory.cs │ │ ├── Contexts │ │ │ ├── DownloadableContext.cs │ │ │ ├── HttpEndpointRouteProviderContext.cs │ │ │ └── HttpResponseParserContext.cs │ │ ├── Contracts │ │ │ ├── IAbsoluteUrlProvider.cs │ │ │ ├── IDownloadableContentHandler.cs │ │ │ ├── IDownloadableManager.cs │ │ │ ├── IFileCacheStorageProvider.cs │ │ │ ├── IFileDownloader.cs │ │ │ ├── IHttpContentParser.cs │ │ │ ├── IHttpCorrelationIdSelector.cs │ │ │ ├── IHttpEndpointAuthorizationHandler.cs │ │ │ ├── IHttpEndpointBasePathProvider.cs │ │ │ ├── IHttpEndpointFaultHandler.cs │ │ │ ├── IHttpEndpointRoutesProvider.cs │ │ │ ├── IHttpWorkflowInstanceIdSelector.cs │ │ │ ├── IHttpWorkflowLookupService.cs │ │ │ ├── IHttpWorkflowsCacheManager.cs │ │ │ ├── IRouteMatcher.cs │ │ │ ├── IRouteTable.cs │ │ │ └── IRouteTableUpdater.cs │ │ ├── DownloadableContentHandlers │ │ │ ├── BinaryDownloadableContentHandler.cs │ │ │ ├── DownloadableDownloadableContentHandler.cs │ │ │ ├── FormFileDownloadableContentHandler.cs │ │ │ ├── HttpFileDownloadableContentHandler.cs │ │ │ ├── MultiDownloadableContentHandler.cs │ │ │ ├── StreamDownloadableContentHandler.cs │ │ │ ├── StringDownloadableContentHandler.cs │ │ │ └── UrlDownloadableContentHandler.cs │ │ ├── Elsa.Http.csproj │ │ ├── Elsa.Http.csproj.DotSettings │ │ ├── Exceptions │ │ │ └── HttpBadRequestException.cs │ │ ├── Extensions │ │ │ ├── ApplicationBuilderExtensions.cs │ │ │ ├── ExpressionExecutionContextExtensions.cs │ │ │ ├── HeadersExtensions.cs │ │ │ ├── HttpActivityExecutionContextExtensions.cs │ │ │ ├── HttpContextTenantExtensions.cs │ │ │ ├── HttpEndpointActivityExecutionContextExtensions.cs │ │ │ ├── HttpStatusCodeExtensions.cs │ │ │ ├── ModuleExtensions.cs │ │ │ ├── RouteExtensions.cs │ │ │ ├── ServiceCollectionExtensions.cs │ │ │ ├── StringArrayExtensions.cs │ │ │ └── StringValueExtensions.cs │ │ ├── Features │ │ │ ├── HttpCacheFeature.cs │ │ │ ├── HttpFeature.cs │ │ │ └── HttpJavaScriptFeature.cs │ │ ├── FileCaches │ │ │ └── BlobFileCacheStorageProvider.cs │ │ ├── FodyWeavers.xml │ │ ├── Handlers │ │ │ ├── AllowAnonymousHttpEndpointAuthorizationHandler.cs │ │ │ ├── AuthenticationBasedHttpEndpointAuthorizationHandler.cs │ │ │ ├── ConfigureWorkflowStateSerialization.cs │ │ │ ├── DefaultHttpEndpointFaultHandler.cs │ │ │ ├── DetailedHttpEndpointFaultHandler.cs │ │ │ ├── InvalidateHttpWorkflowsCache.cs │ │ │ └── UpdateRouteTable.cs │ │ ├── HttpStimulusNames.cs │ │ ├── Middleware │ │ │ └── HttpWorkflowsMiddleware.cs │ │ ├── Models │ │ │ ├── AuthorizeHttpEndpointContext.cs │ │ │ ├── Downloadable.cs │ │ │ ├── EventTokenPayload.cs │ │ │ ├── HttpEndpointFaultContext.cs │ │ │ ├── HttpEndpointOptions.cs │ │ │ ├── HttpFile.cs │ │ │ ├── HttpHeaders.cs │ │ │ ├── HttpRouteData.cs │ │ │ ├── HttpStatusCodeCase.cs │ │ │ └── HttpWorkflowLookupResult.cs │ │ ├── Options │ │ │ ├── DownloadableOptions.cs │ │ │ ├── FileDownloadOptions.cs │ │ │ ├── HttpActivityOptions.cs │ │ │ └── HttpFileCacheOptions.cs │ │ ├── Parsers │ │ │ ├── FileHttpContentParser.cs │ │ │ ├── JsonHttpContentParser.cs │ │ │ ├── PlainTextHttpContentParser.cs │ │ │ ├── TextHtmlHttpContentParser.cs │ │ │ └── XmlHttpContentParser.cs │ │ ├── PortResolvers │ │ │ └── SendHttpRequestActivityPortResolver.cs │ │ ├── Resilience │ │ │ └── HttpResilienceStrategy.cs │ │ ├── Scripting │ │ │ └── JavaScript │ │ │ │ └── HttpJavaScriptHandler.cs │ │ ├── Selectors │ │ │ ├── HeaderHttpCorrelationIdSelector.cs │ │ │ ├── HeaderHttpWorkflowInstanceIdSelector.cs │ │ │ ├── QueryStringHttpCorrelationIdSelector.cs │ │ │ └── QueryStringHttpWorkflowInstanceIdSelector.cs │ │ ├── Serialization │ │ │ ├── HttpHeadersConverter.cs │ │ │ └── HttpStatusCodeCaseForWorkflowInstanceConverter.cs │ │ ├── Services │ │ │ ├── CachingHttpWorkflowLookupService.cs │ │ │ ├── DefaultAbsoluteUrlProvider.cs │ │ │ ├── DefaultDownloadableManager.cs │ │ │ ├── DefaultHttpEndpointBasePathProvider.cs │ │ │ ├── DefaultHttpEndpointRoutesProvider.cs │ │ │ ├── DefaultRouteTableUpdater.cs │ │ │ ├── HttpClientFileDownloader.cs │ │ │ ├── HttpWorkflowLookupService.cs │ │ │ ├── HttpWorkflowsCacheManager.cs │ │ │ ├── RouteMatcher.cs │ │ │ ├── RouteTable.cs │ │ │ └── ZipManager.cs │ │ ├── Tasks │ │ │ └── UpdateRouteTableStartupTask.cs │ │ ├── TriggerPayloadValidators │ │ │ └── HttpEndpointTriggerPayloadValidator.cs │ │ └── UIHints │ │ │ ├── HttpContentTypeOptionsProvider.cs │ │ │ └── HttpEndpointPathUIHandler.cs │ ├── Elsa.Identity │ │ ├── Constants │ │ │ ├── CharacterSequences.cs │ │ │ └── CustomClaimTypes.cs │ │ ├── Contracts │ │ │ ├── IAccessTokenIssuer.cs │ │ │ ├── IApiKeyGenerator.cs │ │ │ ├── IApiKeyParser.cs │ │ │ ├── IApplicationCredentialsValidator.cs │ │ │ ├── IApplicationProvider.cs │ │ │ ├── IApplicationStore.cs │ │ │ ├── IClientIdGenerator.cs │ │ │ ├── IRandomStringGenerator.cs │ │ │ ├── IRoleProvider.cs │ │ │ ├── IRoleStore.cs │ │ │ ├── ISecretGenerator.cs │ │ │ ├── ISecretHasher.cs │ │ │ ├── IUserCredentialsValidator.cs │ │ │ ├── IUserProvider.cs │ │ │ └── IUserStore.cs │ │ ├── Elsa.Identity.csproj │ │ ├── Endpoints │ │ │ ├── Applications │ │ │ │ └── Create │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ ├── Login │ │ │ │ ├── Endpoint.cs │ │ │ │ ├── Models.cs │ │ │ │ └── RequestValidator.cs │ │ │ ├── RefreshToken │ │ │ │ └── Endpoint.cs │ │ │ ├── Roles │ │ │ │ └── Create │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ ├── Secrets │ │ │ │ └── Hash │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ ├── Models.cs │ │ │ │ │ └── Validators.cs │ │ │ └── Users │ │ │ │ └── Create │ │ │ │ ├── Endpoint.cs │ │ │ │ └── Models.cs │ │ ├── Entities │ │ │ ├── Application.cs │ │ │ ├── Role.cs │ │ │ └── User.cs │ │ ├── Extensions │ │ │ ├── ApplicationProviderExtensions.cs │ │ │ ├── ModuleExtensions.cs │ │ │ ├── RoleProviderExtensions.cs │ │ │ └── UserProviderExtensions.cs │ │ ├── Features │ │ │ ├── DefaultAuthenticationFeature.cs │ │ │ └── IdentityFeature.cs │ │ ├── FodyWeavers.xml │ │ ├── IdentityPolicyNames.cs │ │ ├── Models │ │ │ ├── ApiKey.cs │ │ │ ├── ApplicationFilter.cs │ │ │ ├── HashedSecret.cs │ │ │ ├── IssuedTokens.cs │ │ │ ├── LoginResponse.cs │ │ │ ├── RoleFilter.cs │ │ │ └── UserFilter.cs │ │ ├── Multitenancy │ │ │ ├── ClaimsTenantResolver.cs │ │ │ └── CurrentUserTenantResolver.cs │ │ ├── OptionConfigurators │ │ │ ├── ConfigureJwtBearerOptions.cs │ │ │ └── ValidateIdentityTokenOptions.cs │ │ ├── Options │ │ │ ├── ApplicationsOptions.cs │ │ │ ├── IdentityTokenOptions.cs │ │ │ ├── RolesOptions.cs │ │ │ └── UsersOptions.cs │ │ ├── Providers │ │ │ ├── AdminApiKeyProvider.cs │ │ │ ├── AdminRoleProvider.cs │ │ │ ├── AdminUserProvider.cs │ │ │ ├── ConfigurationBasedApplicationProvider.cs │ │ │ ├── ConfigurationBasedRoleProvider.cs │ │ │ ├── ConfigurationBasedUserProvider.cs │ │ │ ├── DefaultApiKeyProvider.cs │ │ │ ├── StoreBasedApplicationProvider.cs │ │ │ ├── StoreBasedRoleProvider.cs │ │ │ └── StoreBasedUserProvider.cs │ │ └── Services │ │ │ ├── DefaultAccessTokenIssuer.cs │ │ │ ├── DefaultApiKeyGeneratorAndParser.cs │ │ │ ├── DefaultApplicationCredentialsValidator.cs │ │ │ ├── DefaultClientIdGenerator.cs │ │ │ ├── DefaultRandomStringGenerator.cs │ │ │ ├── DefaultSecretGenerator.cs │ │ │ ├── DefaultSecretHasher.cs │ │ │ ├── DefaultUserCredentialsValidator.cs │ │ │ ├── MemoryApplicationStore.cs │ │ │ ├── MemoryRoleStore.cs │ │ │ └── MemoryUserStore.cs │ ├── Elsa.KeyValues │ │ ├── Contracts │ │ │ └── IKeyValueStore.cs │ │ ├── Elsa.KeyValues.csproj │ │ ├── Entities │ │ │ └── SerializedKeyValuePair.cs │ │ ├── Features │ │ │ └── KeyValueFeature.cs │ │ ├── FodyWeavers.xml │ │ ├── Models │ │ │ └── KeyValueFilter.cs │ │ └── Stores │ │ │ └── MemoryKeyValueStore.cs │ ├── Elsa.Resilience.Core │ │ ├── Attributes │ │ │ └── ResilienceCategoryAttribute.cs │ │ ├── Contracts │ │ │ ├── IResilienceStrategy.cs │ │ │ ├── IResilienceStrategyCatalog.cs │ │ │ ├── IResilienceStrategyConfigEvaluator.cs │ │ │ ├── IResilienceStrategySource.cs │ │ │ ├── IResilientActivity.cs │ │ │ ├── IResilientActivityInvoker.cs │ │ │ ├── IRetryAttemptReader.cs │ │ │ └── IRetryAttemptRecorder.cs │ │ ├── Elsa.Resilience.Core.csproj │ │ ├── Elsa.Resilience.Core.csproj.DotSettings │ │ ├── Entities │ │ │ └── RetryAttemptRecord.cs │ │ ├── Extensions │ │ │ └── ActivityExecutionExtensions.cs │ │ ├── FodyWeavers.xml │ │ ├── Models │ │ │ ├── RecordRetryAttemptsContext.cs │ │ │ ├── ResilienceStrategyConfig.cs │ │ │ ├── ResilienceStrategyConfigMode.cs │ │ │ └── RetryAttempt.cs │ │ ├── Options │ │ │ └── ResilienceOptions.cs │ │ ├── Serialization │ │ │ └── ResilienceStrategySerializer.cs │ │ └── Services │ │ │ ├── ResilienceStrategyCatalog.cs │ │ │ ├── ResilienceStrategyConfigEvaluator.cs │ │ │ ├── ResilientActivityInvoker.cs │ │ │ ├── RetryTelemetryListener.cs │ │ │ ├── VoidRetryAttemptReader.cs │ │ │ └── VoidRetryAttemptRecorder.cs │ ├── Elsa.Resilience │ │ ├── Elsa.Resilience.csproj │ │ ├── Endpoints │ │ │ ├── ResilienceStrategies │ │ │ │ └── List │ │ │ │ │ └── Endpoint.cs │ │ │ ├── Retries │ │ │ │ └── List │ │ │ │ │ └── Endpoint.cs │ │ │ └── SimulateResponse │ │ │ │ ├── Endpoint.cs │ │ │ │ ├── Models.cs │ │ │ │ └── StatusCodeMessageLookup.cs │ │ ├── Extensions │ │ │ └── ModuleExtensions.cs │ │ ├── Features │ │ │ └── ResilienceFeature.cs │ │ ├── FodyWeavers.xml │ │ ├── Handlers │ │ │ └── PropagateRetryAttemptedFlag.cs │ │ ├── Modifiers │ │ │ └── ResilientActivityDescriptorModifier.cs │ │ ├── Recorders │ │ │ ├── ActivityExecutionContextRetryAttemptReader.cs │ │ │ └── ActivityExecutionContextRetryAttemptRecorder.cs │ │ └── StrategySources │ │ │ └── ConfigurationResilienceStrategySource.cs │ ├── Elsa.SasTokens │ │ ├── Contracts │ │ │ ├── DataProtectorTokenService.cs │ │ │ └── ITokenService.cs │ │ ├── Elsa.SasTokens.csproj │ │ ├── Extensions │ │ │ └── ModuleExtensions.cs │ │ ├── Features │ │ │ └── SasTokensFeature.cs │ │ └── FodyWeavers.xml │ ├── Elsa.Scheduling │ │ ├── Activities │ │ │ ├── Cron.cs │ │ │ ├── Delay.cs │ │ │ ├── StartAt.cs │ │ │ ├── Timer.cs │ │ │ └── TimerBase.cs │ │ ├── Bookmarks │ │ │ ├── CronBookmarkPayload.cs │ │ │ ├── CronTriggerPayload.cs │ │ │ ├── DelayPayload.cs │ │ │ ├── StartAtPayload.cs │ │ │ ├── TimerBookmarkPayload.cs │ │ │ └── TimerTriggerPayload.cs │ │ ├── Commands │ │ │ └── RunScheduledTask.cs │ │ ├── Contracts │ │ │ ├── IBookmarkScheduler.cs │ │ │ ├── ICronParser.cs │ │ │ ├── ISchedule.cs │ │ │ ├── IScheduledTask.cs │ │ │ ├── IScheduler.cs │ │ │ ├── ITask.cs │ │ │ ├── ITriggerScheduler.cs │ │ │ └── IWorkflowScheduler.cs │ │ ├── Elsa.Scheduling.csproj │ │ ├── Elsa.Scheduling.csproj.DotSettings │ │ ├── Extensions │ │ │ ├── DelayActivityExecutionContextExtensions.cs │ │ │ ├── ModuleExtensions.cs │ │ │ └── TimerActivityExecutionContextExtensions.cs │ │ ├── Features │ │ │ └── SchedulingFeature.cs │ │ ├── FodyWeavers.xml │ │ ├── Handlers │ │ │ ├── DeleteSchedules.cs │ │ │ ├── RunScheduledTaskHandler.cs │ │ │ ├── ScheduleWorkflows.cs │ │ │ └── UpdateTenantSchedules.cs │ │ ├── HostedServices │ │ │ └── CreateSchedulesBackgroundTask.cs │ │ ├── Models │ │ │ ├── ScheduleContext.cs │ │ │ └── TaskExecutionContext.cs │ │ ├── Requests │ │ │ ├── ScheduleExistingWorkflowInstanceRequest.cs │ │ │ └── ScheduleNewWorkflowInstanceRequest.cs │ │ ├── ScheduledTasks │ │ │ ├── ScheduledCronTask.cs │ │ │ ├── ScheduledRecurringTask.cs │ │ │ └── ScheduledSpecificInstantTask.cs │ │ ├── Schedules │ │ │ ├── CronSchedule.cs │ │ │ ├── RecurringSchedule.cs │ │ │ └── SpecificInstantSchedule.cs │ │ ├── SchedulingStimulusNames.cs │ │ ├── Services │ │ │ ├── CronosCronParser.cs │ │ │ ├── DefaultBookmarkScheduler.cs │ │ │ ├── DefaultTriggerScheduler.cs │ │ │ ├── DefaultWorkflowScheduler.cs │ │ │ └── LocalScheduler.cs │ │ ├── Tasks │ │ │ ├── DelegateTask.cs │ │ │ ├── ResumeWorkflowTask.cs │ │ │ └── RunWorkflowTask.cs │ │ └── TriggerPayloadValidators │ │ │ └── CronTriggerPayloadValidator.cs │ ├── Elsa.Tenants.AspNetCore │ │ ├── Elsa.Tenants.AspNetCore.csproj │ │ ├── Elsa.Tenants.AspNetCore.csproj.DotSettings │ │ ├── Extensions │ │ │ ├── ModuleExtensions.cs │ │ │ ├── TenantExtensions.cs │ │ │ └── TenantResolutionMiddlewareExtensions.cs │ │ ├── Features │ │ │ └── MultitenantHttpRoutingFeature.cs │ │ ├── FodyWeavers.xml │ │ ├── Middleware │ │ │ └── TenantResolutionMiddleware.cs │ │ ├── Options │ │ │ └── MultitenancyHttpOptions.cs │ │ ├── Resolvers │ │ │ ├── HeaderTenantResolver.cs │ │ │ ├── HostTenantResolver.cs │ │ │ └── RoutePrefixTenantResolver.cs │ │ ├── Services │ │ │ ├── TenantPrefixHttpEndpointBasePathProvider.cs │ │ │ └── TenantPrefixHttpEndpointRoutesProvider.cs │ │ └── Settings │ │ │ └── HttpEndpointOptions.cs │ ├── Elsa.Tenants │ │ ├── Contracts │ │ │ ├── ITenantResolutionPipeline.cs │ │ │ ├── ITenantResolverPipelineInvoker.cs │ │ │ └── ITenantStore.cs │ │ ├── Elsa.Tenants.csproj │ │ ├── Elsa.Tenants.csproj.DotSettings │ │ ├── Endpoints │ │ │ └── Tenants │ │ │ │ ├── Add │ │ │ │ └── Endpoint.cs │ │ │ │ ├── Delete │ │ │ │ └── Endpoint.cs │ │ │ │ ├── Get │ │ │ │ └── Endpoint.cs │ │ │ │ ├── List │ │ │ │ └── Endpoint.cs │ │ │ │ ├── Refresh │ │ │ │ └── Endpoint.cs │ │ │ │ └── Update │ │ │ │ └── Endpoint.cs │ │ ├── Extensions │ │ │ └── ModuleExtensions.cs │ │ ├── Features │ │ │ ├── TenantManagementEndpointsFeature.cs │ │ │ ├── TenantManagementFeature.cs │ │ │ └── TenantsFeature.cs │ │ ├── FodyWeavers.xml │ │ ├── Options │ │ │ ├── MultitenancyOptions.cs │ │ │ └── TenantsOptions.cs │ │ ├── Providers │ │ │ ├── ConfigurationTenantsProvider.cs │ │ │ └── StoreTenantsProvider.cs │ │ └── Services │ │ │ ├── DefaultTenantResolverPipelineInvoker.cs │ │ │ ├── MemoryTenantStore.cs │ │ │ └── TenantResolutionPipelineBuilder.cs │ ├── Elsa.WorkflowProviders.BlobStorage │ │ ├── Contracts │ │ │ └── IBlobStorageProvider.cs │ │ ├── Elsa.WorkflowProviders.BlobStorage.csproj │ │ ├── Extensions │ │ │ └── ModuleExtensions.cs │ │ ├── Features │ │ │ └── BlobStorageFeature.cs │ │ ├── FodyWeavers.xml │ │ └── Providers │ │ │ ├── BlobStorageProvider.cs │ │ │ └── BlobStorageWorkflowsProvider.cs │ ├── Elsa.Workflows.Api │ │ ├── AssemblyInfo.cs │ │ ├── Constants │ │ │ └── AuthorizationPolicies.cs │ │ ├── Contracts │ │ │ └── IWorkflowDefinitionLinker.cs │ │ ├── Elsa.Workflows.Api.csproj │ │ ├── Elsa.Workflows.Api.csproj.DotSettings │ │ ├── Endpoints │ │ │ ├── ActivityDescriptorOptions │ │ │ │ └── Get │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ ├── ActivityDescriptors │ │ │ │ ├── Get │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ └── List │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ ├── ActivityExecutionSummaries │ │ │ │ └── ListSummaries │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ ├── ActivityExecutions │ │ │ │ ├── Count │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── Get │ │ │ │ │ └── Endpoint.cs │ │ │ │ ├── List │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ └── Report │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ ├── CommitStrategies │ │ │ │ ├── Activities │ │ │ │ │ └── List │ │ │ │ │ │ └── Endpoint.cs │ │ │ │ ├── Models.cs │ │ │ │ └── Workflows │ │ │ │ │ └── List │ │ │ │ │ └── Endpoint.cs │ │ │ ├── Events │ │ │ │ ├── TriggerAuthenticated │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ └── TriggerPublic │ │ │ │ │ └── Endpoint.cs │ │ │ ├── Features │ │ │ │ ├── Get │ │ │ │ │ └── Endpoint.cs │ │ │ │ └── List │ │ │ │ │ └── Endpoint.cs │ │ │ ├── IncidentStrategies │ │ │ │ └── List │ │ │ │ │ └── Endpoint.cs │ │ │ ├── LogPersistenceStrategies │ │ │ │ └── List │ │ │ │ │ └── Endpoint.cs │ │ │ ├── Package │ │ │ │ ├── Endpoint.cs │ │ │ │ └── Models.cs │ │ │ ├── Scripting │ │ │ │ └── ExpressionDescriptors │ │ │ │ │ └── List │ │ │ │ │ └── Endpoint.cs │ │ │ ├── StorageDrivers │ │ │ │ └── List │ │ │ │ │ ├── Constants.cs │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ ├── Tasks │ │ │ │ └── Complete │ │ │ │ │ ├── Constants.cs │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ ├── VariableTypes │ │ │ │ └── List │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ ├── WorkflowActivationStrategies │ │ │ │ └── List │ │ │ │ │ └── Endpoint.cs │ │ │ ├── WorkflowDefinitions │ │ │ │ ├── BulkDelete │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── BulkDeleteVersions │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── BulkDispatch │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── BulkPublish │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── BulkRetract │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── Count │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── Delete │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── DeleteVersion │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── Dispatch │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── Execute │ │ │ │ │ ├── EndpointBase.cs │ │ │ │ │ ├── GetEndpoint.cs │ │ │ │ │ ├── Models.cs │ │ │ │ │ └── PostEndpoint.cs │ │ │ │ ├── Export │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── GetByDefinitionId │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── GetById │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── GetManyById │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── Graph │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ ├── Models.cs │ │ │ │ │ └── Segments │ │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ │ └── Models.cs │ │ │ │ ├── Import │ │ │ │ │ └── Endpoint.cs │ │ │ │ ├── ImportFiles │ │ │ │ │ └── Endpoint.cs │ │ │ │ ├── IsNameUnique │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── List │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── Post │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── Publish │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── Refresh │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── Reload │ │ │ │ │ └── Endpoint.cs │ │ │ │ ├── Retract │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── UpdateReferences │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ └── Version │ │ │ │ │ ├── Delete.cs │ │ │ │ │ ├── List.cs │ │ │ │ │ └── Revert.cs │ │ │ └── WorkflowInstances │ │ │ │ ├── BulkCancel │ │ │ │ ├── Endpoint.cs │ │ │ │ ├── Models.cs │ │ │ │ └── RequestValidator.cs │ │ │ │ ├── BulkDelete │ │ │ │ ├── Endpoint.cs │ │ │ │ └── Models.cs │ │ │ │ ├── Cancel │ │ │ │ ├── Endpoint.cs │ │ │ │ └── Models.cs │ │ │ │ ├── Delete │ │ │ │ ├── Endpoint.cs │ │ │ │ └── Models.cs │ │ │ │ ├── ExecutionState │ │ │ │ ├── Endpoint.cs │ │ │ │ └── Models.cs │ │ │ │ ├── Export │ │ │ │ ├── Endpoint.cs │ │ │ │ └── Models.cs │ │ │ │ ├── Get │ │ │ │ ├── Endpoint.cs │ │ │ │ ├── Mappers.cs │ │ │ │ └── Models.cs │ │ │ │ ├── Import │ │ │ │ ├── Endpoint.cs │ │ │ │ └── Models.cs │ │ │ │ ├── Journal │ │ │ │ ├── FilteredList │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── GetLastEntry │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ └── List │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ └── Models.cs │ │ │ │ ├── List │ │ │ │ ├── Endpoint.cs │ │ │ │ └── Models.cs │ │ │ │ └── Variables │ │ │ │ ├── List │ │ │ │ └── Endpoint.cs │ │ │ │ └── Post │ │ │ │ └── Endpoint.cs │ │ ├── Extensions │ │ │ ├── ApplicationBuilderExtensions.cs │ │ │ ├── ModuleExtensions.cs │ │ │ └── WorkflowsApiFeatureExtensions.cs │ │ ├── Features │ │ │ ├── RealTimeWorkflowUpdatesFeature.cs │ │ │ └── WorkflowsApiFeature.cs │ │ ├── FodyWeavers.xml │ │ ├── Middleware │ │ │ └── JsonSerializationErrorHandlerMiddleware.cs │ │ ├── Models │ │ │ ├── ActivityPathSegment.cs │ │ │ ├── ExecutionLogRecord.cs │ │ │ ├── ExportedWorkflowState.cs │ │ │ ├── LinkedWorkflowDefinitionModel.cs │ │ │ ├── LinkedWorkflowDefinitionSummary.cs │ │ │ ├── OrderByWorkflowDefinition.cs │ │ │ ├── OrderByWorkflowInstance.cs │ │ │ └── WorkflowInstanceModel.cs │ │ ├── Options │ │ │ └── ApiEndpointOptions.cs │ │ ├── RealTime │ │ │ ├── Contracts │ │ │ │ └── IWorkflowInstanceClient.cs │ │ │ ├── Extensions │ │ │ │ └── ApplicationBuilderExtensions.cs │ │ │ ├── Handlers │ │ │ │ └── BroadcastWorkflowProgress.cs │ │ │ ├── Hubs │ │ │ │ └── WorkflowInstanceHub.cs │ │ │ └── Messages │ │ │ │ ├── ActivityExecutedMessage.cs │ │ │ │ ├── ActivityExecutingMessage.cs │ │ │ │ ├── ActivityExecutionLogUpdatedMessage.cs │ │ │ │ ├── WorkflowExecutionLogUpdatedMessage.cs │ │ │ │ └── WorkflowInstanceUpdatedMessage.cs │ │ ├── Requirements │ │ │ └── NotReadOnlyRequirement.cs │ │ ├── Serialization │ │ │ ├── ArgumentJsonConverter.cs │ │ │ ├── ArgumentJsonConverterFactory.cs │ │ │ └── SerializationConfigurator.cs │ │ └── Services │ │ │ └── StaticWorkflowDefinitionLinker.cs │ ├── Elsa.Workflows.Core │ │ ├── Abstractions │ │ │ ├── Activity.cs │ │ │ ├── ActivityStateFilterBase.cs │ │ │ ├── ActivityT.cs │ │ │ ├── Behavior.cs │ │ │ ├── CodeActivity.cs │ │ │ ├── PropertyUIHandlerBase.cs │ │ │ ├── SerializationOptionsConfiguratorBase.cs │ │ │ ├── Trigger.cs │ │ │ └── WorkflowBase.cs │ │ ├── ActivationValidators │ │ │ └── AllowAlwaysStrategy.cs │ │ ├── Activities │ │ │ ├── Break.cs │ │ │ ├── Complete.cs │ │ │ ├── Composite.cs │ │ │ ├── Container.cs │ │ │ ├── Correlate.cs │ │ │ ├── DynamicActivity.cs │ │ │ ├── End.cs │ │ │ ├── Fault.cs │ │ │ ├── Finish.cs │ │ │ ├── Flowchart │ │ │ │ ├── Activities │ │ │ │ │ ├── FlowDecision.cs │ │ │ │ │ ├── FlowFork.cs │ │ │ │ │ ├── FlowJoin.cs │ │ │ │ │ ├── FlowNode.cs │ │ │ │ │ ├── FlowSwitch.cs │ │ │ │ │ ├── Flowchart.Counters.cs │ │ │ │ │ ├── Flowchart.Tokens.cs │ │ │ │ │ └── Flowchart.cs │ │ │ │ ├── Attributes │ │ │ │ │ └── FlowNodeAttribute.cs │ │ │ │ ├── Contracts │ │ │ │ │ └── IJoinNode.cs │ │ │ │ ├── Extensions │ │ │ │ │ ├── ActivityExecutionContextExtensions.cs │ │ │ │ │ ├── ActivityExtensions.cs │ │ │ │ │ ├── ConnectionsExtensions.cs │ │ │ │ │ └── FlowchartExtensions.cs │ │ │ │ ├── Models │ │ │ │ │ ├── Connection.cs │ │ │ │ │ ├── Endpoint.cs │ │ │ │ │ ├── FlowGraph.cs │ │ │ │ │ ├── FlowJoinMode.cs │ │ │ │ │ ├── FlowScope.cs │ │ │ │ │ ├── FlowSwitchCase.cs │ │ │ │ │ ├── MergeMode.cs │ │ │ │ │ ├── ObsoleteConnection.cs │ │ │ │ │ ├── Outcomes.cs │ │ │ │ │ ├── Position.cs │ │ │ │ │ └── Token.cs │ │ │ │ └── Serialization │ │ │ │ │ ├── ConnectionComparer.cs │ │ │ │ │ ├── ConnectionJsonConverter.cs │ │ │ │ │ ├── FlowchartJsonConverter.cs │ │ │ │ │ ├── FlowchartSerializationOptionConfigurator.cs │ │ │ │ │ └── ObsoleteConnectionJsonConverter.cs │ │ │ ├── For.cs │ │ │ ├── ForEach.cs │ │ │ ├── ForEachT.cs │ │ │ ├── Fork.cs │ │ │ ├── If.cs │ │ │ ├── Inline.cs │ │ │ ├── NotFoundActivity.cs │ │ │ ├── Parallel.cs │ │ │ ├── ParallelForEach.cs │ │ │ ├── ParallelForEachT.cs │ │ │ ├── ReadLine.cs │ │ │ ├── Sequence.cs │ │ │ ├── SetName.cs │ │ │ ├── SetVariable.cs │ │ │ ├── Start.cs │ │ │ ├── Switch.cs │ │ │ ├── While.cs │ │ │ ├── Workflow.cs │ │ │ └── WriteLine.cs │ │ ├── Attributes │ │ │ ├── ActivityAttribute.cs │ │ │ ├── ExcludeFromHashAttribute.cs │ │ │ ├── InboundAttribute.cs │ │ │ ├── InputAttribute.cs │ │ │ ├── JsonIgnoreCompositeRootAttribute.cs │ │ │ ├── OutputAttribute.cs │ │ │ ├── PortAttribute.cs │ │ │ └── StateAttribute.cs │ │ ├── Behaviors │ │ │ ├── AutoCompleteBehavior.cs │ │ │ ├── BreakBehavior.cs │ │ │ └── ScheduledChildCallbackBehavior.cs │ │ ├── Builders │ │ │ ├── WorkflowBuilder.cs │ │ │ └── WorkflowBuilderFactory.cs │ │ ├── CommitStates │ │ │ ├── CommitStrategiesFeature.cs │ │ │ ├── Contracts │ │ │ │ ├── IActivityCommitStrategy.cs │ │ │ │ ├── ICommitStateHandler.cs │ │ │ │ ├── ICommitStrategyRegistry.cs │ │ │ │ └── IWorkflowCommitStrategy.cs │ │ │ ├── Extensions │ │ │ │ └── ModuleExtensions.cs │ │ │ ├── Helpers │ │ │ │ ├── ObjectMetadataDescriber.cs │ │ │ │ └── ObjectRegistrationFactory.cs │ │ │ ├── Models │ │ │ │ ├── ActivityCommitStateStrategyContext.cs │ │ │ │ ├── ActivityCommitStrategyRegistration.cs │ │ │ │ ├── ActivityLifetimeEvent.cs │ │ │ │ ├── ActivityStrategyDescriptor.cs │ │ │ │ ├── CommitAction.cs │ │ │ │ ├── CommitStrategyMetadata.cs │ │ │ │ ├── ObjectRegistration.cs │ │ │ │ ├── WorkflowCommitStateStrategyContext.cs │ │ │ │ ├── WorkflowCommitStrategyRegistration.cs │ │ │ │ ├── WorkflowLifetimeEvent.cs │ │ │ │ └── WorkflowStrategyDescriptor.cs │ │ │ ├── Options │ │ │ │ └── CommitStateOptions.cs │ │ │ ├── Services │ │ │ │ └── DefaultCommitStrategyRegistry.cs │ │ │ ├── Strategies │ │ │ │ ├── Activities │ │ │ │ │ ├── CommitAlwaysActivityStrategy.cs │ │ │ │ │ ├── CommitNeverActivityStrategy.cs │ │ │ │ │ ├── ExecutedActivityStrategy.cs │ │ │ │ │ └── ExecutingActivityStrategy.cs │ │ │ │ └── Workflows │ │ │ │ │ ├── ActivityExecutedWorkflowStrategy.cs │ │ │ │ │ ├── ActivityExecutingWorkflowStrategy.cs │ │ │ │ │ ├── PeriodicWorkflowStrategy.cs │ │ │ │ │ ├── WorkflowExecutedWorkflowStrategy.cs │ │ │ │ │ └── WorkflowExecutingWorkflowStrategy.cs │ │ │ └── Tasks │ │ │ │ └── PopulateCommitStrategyRegistry.cs │ │ ├── Constants │ │ │ └── DefaultFaultTypes.cs │ │ ├── Contexts │ │ │ ├── ActivityCompletedContext.cs │ │ │ ├── ActivityExecutionContext.Cancel.cs │ │ │ ├── ActivityExecutionContext.Complete.cs │ │ │ ├── ActivityExecutionContext.ExecutionLogEntry.cs │ │ │ ├── ActivityExecutionContext.cs │ │ │ ├── ActivityStateFilterContext.cs │ │ │ ├── ResumedBookmarkContext.cs │ │ │ ├── SignalContext.cs │ │ │ ├── StorageDriverContext.cs │ │ │ ├── TriggerIndexingContext.cs │ │ │ ├── WorkflowExecutionContext.Cancel.cs │ │ │ ├── WorkflowExecutionContext.ExecutionLogEntry.cs │ │ │ ├── WorkflowExecutionContext.cs │ │ │ └── WorkflowIndexingContext.cs │ │ ├── Contracts │ │ │ ├── IActivity.cs │ │ │ ├── IActivityDescriber.cs │ │ │ ├── IActivityDescriptorModifier.cs │ │ │ ├── IActivityExecutionMiddleware.cs │ │ │ ├── IActivityExecutionPipeline.cs │ │ │ ├── IActivityExecutionPipelineBuilder.cs │ │ │ ├── IActivityFactory.cs │ │ │ ├── IActivityInvoker.cs │ │ │ ├── IActivityPropertyDefaultValueProvider.cs │ │ │ ├── IActivityPropertyOptionsProvider.cs │ │ │ ├── IActivityProvider.cs │ │ │ ├── IActivityRegistry.cs │ │ │ ├── IActivityRegistryLookupService.cs │ │ │ ├── IActivityResolver.cs │ │ │ ├── IActivityScheduler.cs │ │ │ ├── IActivitySchedulerFactory.cs │ │ │ ├── IActivitySerializer.cs │ │ │ ├── IActivityStateFilter.cs │ │ │ ├── IActivityStateFilterManager.cs │ │ │ ├── IActivityVisitor.cs │ │ │ ├── IActivityWithResult.cs │ │ │ ├── IApiSerializer.cs │ │ │ ├── IBehavior.cs │ │ │ ├── IBookmarkPayloadSerializer.cs │ │ │ ├── IComposite.cs │ │ │ ├── IEventGenerator.cs │ │ │ ├── IExecutionContext.cs │ │ │ ├── IHasher.cs │ │ │ ├── IIdentityGenerator.cs │ │ │ ├── IIdentityGraphService.cs │ │ │ ├── IIncidentStrategy.cs │ │ │ ├── IIncidentStrategyResolver.cs │ │ │ ├── IInitializable.cs │ │ │ ├── ILoggerStateGenerator.cs │ │ │ ├── IMissingActivityTypesRegistry.cs │ │ │ ├── IPayloadSerializer.cs │ │ │ ├── IPropertyDefaultValueResolver.cs │ │ │ ├── IPropertyUIHandler.cs │ │ │ ├── IPropertyUIHandlerResolver.cs │ │ │ ├── ISafeSerializer.cs │ │ │ ├── ISignalHandler.cs │ │ │ ├── IStandardInStreamProvider.cs │ │ │ ├── IStandardOutStreamProvider.cs │ │ │ ├── IStartNode.cs │ │ │ ├── IStimulusHasher.cs │ │ │ ├── IStorageDriver.cs │ │ │ ├── IStorageDriverManager.cs │ │ │ ├── ITerminalNode.cs │ │ │ ├── ITrigger.cs │ │ │ ├── IUIHintHandler.cs │ │ │ ├── IVariableContainer.cs │ │ │ ├── IVariablePersistenceManager.cs │ │ │ ├── IWorkflow.cs │ │ │ ├── IWorkflowActivationStrategy.cs │ │ │ ├── IWorkflowBuilder.cs │ │ │ ├── IWorkflowBuilderFactory.cs │ │ │ ├── IWorkflowExecutionMiddleware.cs │ │ │ ├── IWorkflowExecutionPipeline.cs │ │ │ ├── IWorkflowExecutionPipelineBuilder.cs │ │ │ ├── IWorkflowGraphBuilder.cs │ │ │ ├── IWorkflowInstanceVariableReader.cs │ │ │ ├── IWorkflowInstanceVariableWriter.cs │ │ │ ├── IWorkflowRunner.cs │ │ │ ├── IWorkflowStateExtractor.cs │ │ │ └── IWorkflowStateSerializer.cs │ │ ├── Elsa.Workflows.Core.csproj │ │ ├── Elsa.Workflows.Core.csproj.DotSettings │ │ ├── Enums │ │ │ ├── ActivityKind.cs │ │ │ ├── ActivityStatus.cs │ │ │ ├── ForkJoinMode.cs │ │ │ ├── SwitchMode.cs │ │ │ ├── TypeKind.cs │ │ │ ├── WorkflowStatus.cs │ │ │ └── WorkflowSubStatus.cs │ │ ├── Exceptions │ │ │ ├── ActivityNotFoundException.cs │ │ │ ├── DataProcessingException.cs │ │ │ ├── FaultException.cs │ │ │ └── UniqueKeyConstraintViolationException.cs │ │ ├── Expressions │ │ │ ├── ObjectExpressionHandler.cs │ │ │ ├── OutputExpressionHandler.cs │ │ │ └── VariableExpressionHandler.cs │ │ ├── Extensions │ │ │ ├── ActivityDescriptorExtensions.cs │ │ │ ├── ActivityExecutionContextExtensions.InputEvaluation.cs │ │ │ ├── ActivityExecutionContextExtensions.InputOutput.cs │ │ │ ├── ActivityExecutionContextExtensions.cs │ │ │ ├── ActivityExtensions.cs │ │ │ ├── ActivityNodeExtensions.cs │ │ │ ├── ActivityPropertyExtensions.cs │ │ │ ├── ActivityRegistryExtensions.cs │ │ │ ├── BackgroundActivityExecutionContextExtensions.cs │ │ │ ├── BehaviorCollectionExtensions.cs │ │ │ ├── BookmarkExtensions.cs │ │ │ ├── BreakBehaviorActivityExecutionContextExtensions.cs │ │ │ ├── DictionaryExtensions.cs │ │ │ ├── ExpressionEvaluatorExtensions.cs │ │ │ ├── ExpressionExecutionContextExtensions.cs │ │ │ ├── InputExtensions.cs │ │ │ ├── ItemSourceActivityExecutionContextExtensions.cs │ │ │ ├── JsonElementExtensions.cs │ │ │ ├── MemoryBlockReferenceExtensions.cs │ │ │ ├── ModuleExtensions.cs │ │ │ ├── ObjectExtensions.cs │ │ │ ├── OutputExtensions.cs │ │ │ ├── ServiceCollectionExtensions.cs │ │ │ ├── TriggerExtensions.cs │ │ │ ├── VariableCollectionExtensions.cs │ │ │ ├── VariableExtensions.cs │ │ │ ├── WorkflowBuilderExtensions.cs │ │ │ ├── WorkflowExecutionContextExtensions.cs │ │ │ ├── WorkflowExecutionResultExtensions.cs │ │ │ ├── WorkflowExtensions.cs │ │ │ └── WorkflowRunnerExtensions.cs │ │ ├── Features │ │ │ ├── FlowchartFeature.cs │ │ │ └── WorkflowsFeature.cs │ │ ├── FodyWeavers.xml │ │ ├── Handlers │ │ │ └── EvaluateParentInputProperties.cs │ │ ├── Helpers │ │ │ ├── ActivityTypeNameHelper.cs │ │ │ ├── Diff.cs │ │ │ └── TypeNameHelper.cs │ │ ├── IncidentStrategies │ │ │ ├── ContinueWithIncidentsStrategy.cs │ │ │ └── FaultStrategy.cs │ │ ├── IsExternalInit.cs │ │ ├── LogPersistence │ │ │ ├── Contexts │ │ │ │ └── LogPersistenceStrategyContext.cs │ │ │ ├── Contracts │ │ │ │ ├── ILogPersistenceStrategy.cs │ │ │ │ └── ILogPersistenceStrategyService.cs │ │ │ ├── Enums │ │ │ │ └── LogPersistenceMode.cs │ │ │ ├── Options │ │ │ │ └── LogPersistenceOptions.cs │ │ │ ├── Services │ │ │ │ └── DefaultLogPersistenceStrategyService.cs │ │ │ └── Strategies │ │ │ │ ├── Configuration.cs │ │ │ │ ├── Exclude.cs │ │ │ │ ├── Include.cs │ │ │ │ └── Inherit.cs │ │ ├── Memory │ │ │ └── Variable.cs │ │ ├── Middleware │ │ │ ├── Activities │ │ │ │ ├── DefaultActivityInvokerMiddleware.cs │ │ │ │ ├── ExceptionHandlingMiddleware.cs │ │ │ │ ├── ExecutionLogMiddleware.cs │ │ │ │ ├── LoggingMiddleware.cs │ │ │ │ └── NotificationPublishingMiddleware.cs │ │ │ └── Workflows │ │ │ │ ├── DefaultActivitySchedulerMiddleware.cs │ │ │ │ ├── EngineExceptionHandlingMiddleware.cs │ │ │ │ └── ExceptionHandlingMiddleware.cs │ │ ├── Models │ │ │ ├── ActivityDescriptor.cs │ │ │ ├── ActivityHandle.cs │ │ │ ├── ActivityIncident.cs │ │ │ ├── ActivityNode.cs │ │ │ ├── ActivityOutputRecord.cs │ │ │ ├── ActivityOutputRegister.cs │ │ │ ├── ActivityOutputs.cs │ │ │ ├── ActivityPort.cs │ │ │ ├── ActivityStateFilterResult.cs │ │ │ ├── ActivityWorkItem.cs │ │ │ ├── Argument.cs │ │ │ ├── ArgumentDefinition.cs │ │ │ ├── BackgroundExecutionOutcome.cs │ │ │ ├── BackgroundExecutionResult.cs │ │ │ ├── Bookmark.cs │ │ │ ├── BookmarkInfo.cs │ │ │ ├── ChangeTrackingDictionary.cs │ │ │ ├── CreateBookmarkArgs.cs │ │ │ ├── EventGenerator.cs │ │ │ ├── Input.cs │ │ │ ├── InputDefinition.cs │ │ │ ├── InputDescriptor.cs │ │ │ ├── InvokeWorkflowResult.cs │ │ │ ├── MissingActivityType.cs │ │ │ ├── NamedOutput.cs │ │ │ ├── Output.cs │ │ │ ├── OutputDefinition.cs │ │ │ ├── OutputDescriptor.cs │ │ │ ├── Port.cs │ │ │ ├── PortType.cs │ │ │ ├── PropertyDescriptor.cs │ │ │ ├── ResolvedVariable.cs │ │ │ ├── RunWorkflowResult.cs │ │ │ ├── ScheduledActivity.cs │ │ │ ├── ScheduledActivityOptions.cs │ │ │ ├── SignalHandlerRegistration.cs │ │ │ ├── TriggerType.cs │ │ │ ├── TypeDescriptor.cs │ │ │ ├── VariableDefinition.cs │ │ │ ├── VariableModel.cs │ │ │ ├── VariableUpdateValue.cs │ │ │ ├── WorkflowDefinitionHandle.cs │ │ │ ├── WorkflowExecutionLogEntry.cs │ │ │ ├── WorkflowExecutionLogEventNames.cs │ │ │ ├── WorkflowExecutionMode.cs │ │ │ ├── WorkflowExecutionState.cs │ │ │ ├── WorkflowGraph.cs │ │ │ ├── WorkflowIdentity.cs │ │ │ ├── WorkflowInput.cs │ │ │ ├── WorkflowMetadata.cs │ │ │ ├── WorkflowOptions.cs │ │ │ └── WorkflowPublication.cs │ │ ├── Notifications │ │ │ ├── ActivityCancelled.cs │ │ │ ├── ActivityCompleted.cs │ │ │ ├── ActivityExecuted.cs │ │ │ ├── ActivityExecuting.cs │ │ │ ├── InvokingActivityCallback.cs │ │ │ ├── WorkflowExecuted.cs │ │ │ ├── WorkflowExecuting.cs │ │ │ ├── WorkflowFinished.cs │ │ │ └── WorkflowStarted.cs │ │ ├── Options │ │ │ ├── ActivityInvocationOptions.cs │ │ │ ├── DynamicOutcomesOptions.cs │ │ │ ├── IncidentOptions.cs │ │ │ ├── RunWorkflowOptions.cs │ │ │ └── ScheduleWorkOptions.cs │ │ ├── Pipelines │ │ │ ├── ActivityExecution │ │ │ │ ├── ActivityExecutionMiddlewareExtensions.cs │ │ │ │ ├── ActivityExecutionPipeline.cs │ │ │ │ ├── ActivityExecutionPipelinePipelineBuilder.cs │ │ │ │ └── ActivityMiddlewareDelegate.cs │ │ │ ├── MiddlewareHelpers.cs │ │ │ └── WorkflowExecution │ │ │ │ ├── WorkflowExecutionMiddleware.cs │ │ │ │ ├── WorkflowExecutionMiddlewareExtensions.cs │ │ │ │ ├── WorkflowExecutionPipeline.cs │ │ │ │ ├── WorkflowExecutionPipelineBuilder.cs │ │ │ │ └── WorkflowMiddlewareDelegate.cs │ │ ├── PortResolvers │ │ │ ├── OutboundActivityPortResolver.cs │ │ │ └── SwitchActivityPortResolver.cs │ │ ├── Serialization │ │ │ ├── Configurators │ │ │ │ ├── AdditionalConvertersConfigurator.cs │ │ │ │ └── CustomConstructorConfigurator.cs │ │ │ ├── Converters │ │ │ │ ├── ActivityJsonConverter.cs │ │ │ │ ├── ActivityJsonConverterFactory.cs │ │ │ │ ├── ExcludeFromHashConverter.cs │ │ │ │ ├── ExpandoObjectConverter.cs │ │ │ │ ├── ExpandoObjectConverterFactory.cs │ │ │ │ ├── ExpressionJsonConverter.cs │ │ │ │ ├── ExpressionJsonConverterFactory.cs │ │ │ │ ├── FuncExpressionValueConverter.cs │ │ │ │ ├── FuncExpressionValueConverterFactory.cs │ │ │ │ ├── InputJsonConverter.cs │ │ │ │ ├── InputJsonConverterFactory.cs │ │ │ │ ├── JsonIgnoreCompositeRootConverter.cs │ │ │ │ ├── JsonIgnoreCompositeRootConverterFactory.cs │ │ │ │ ├── JsonPrimitiveToStringConverter.cs │ │ │ │ ├── OutputJsonConverter.cs │ │ │ │ ├── OutputJsonConverterFactory.cs │ │ │ │ ├── PolymorphicDictionaryConverter.cs │ │ │ │ ├── PolymorphicObjectConverter.cs │ │ │ │ ├── PolymorphicObjectConverterFactory.cs │ │ │ │ ├── RootActivityNodeConverter.cs │ │ │ │ ├── SafeDictionaryConverter.cs │ │ │ │ ├── SafeValueConverter.cs │ │ │ │ ├── SafeValueConverterFactory.cs │ │ │ │ ├── TypeJsonConverter.cs │ │ │ │ ├── VariableConverter.cs │ │ │ │ └── VariableConverterFactory.cs │ │ │ ├── Helpers │ │ │ │ ├── ActivityWriter.cs │ │ │ │ └── SyntheticPropertiesWriter.cs │ │ │ ├── ReferenceHandlers │ │ │ │ ├── CrossScopedReferenceHandler.cs │ │ │ │ └── CustomPreserveReferenceResolver.cs │ │ │ └── Serializers │ │ │ │ ├── ApiSerializer.cs │ │ │ │ ├── BookmarkPayloadSerializer.cs │ │ │ │ ├── JsonActivitySerializer.cs │ │ │ │ ├── JsonPayloadSerializer.cs │ │ │ │ ├── JsonWorkflowStateSerializer.cs │ │ │ │ ├── SafeSerializer.cs │ │ │ │ └── SerializationOptionsConfigurator.cs │ │ ├── Services │ │ │ ├── ActivityDescriber.cs │ │ │ ├── ActivityFactory.cs │ │ │ ├── ActivityInvoker.cs │ │ │ ├── ActivityLoggerStateGenerator.cs │ │ │ ├── ActivityRegistry.cs │ │ │ ├── ActivityRegistryLookupService.cs │ │ │ ├── ActivitySchedulerFactory.cs │ │ │ ├── ActivityVisitor.cs │ │ │ ├── DefaultActivityStateFilterManager.cs │ │ │ ├── DefaultIncidentStrategyResolver.cs │ │ │ ├── DefaultWorkflowInstanceVariableReader.cs │ │ │ ├── DefaultWorkflowInstanceVariableWriter.cs │ │ │ ├── Delegates.cs │ │ │ ├── GuidIdentityGenerator.cs │ │ │ ├── Hasher.cs │ │ │ ├── IdentityGraphService.cs │ │ │ ├── MemoryStorageDriver.cs │ │ │ ├── NoopCommitStateHandler.cs │ │ │ ├── PropertyDefaultValueResolver.cs │ │ │ ├── PropertyOptionsResolver.cs │ │ │ ├── PropertyUIHandlerResolver.cs │ │ │ ├── QueueBasedActivityScheduler.cs │ │ │ ├── RandomLongIdentityGenerator.cs │ │ │ ├── ShortGuidIdentityGenerator.cs │ │ │ ├── StackBasedActivityScheduler.cs │ │ │ ├── StandardInStreamProvider.cs │ │ │ ├── StandardOutStreamProvider.cs │ │ │ ├── StimulusHasher.cs │ │ │ ├── StorageDriverManager.cs │ │ │ ├── VariableMapper.cs │ │ │ ├── VariablePersistenceManager.cs │ │ │ ├── WorkflowGraphBuilder.cs │ │ │ ├── WorkflowLoggerStateGenerator.cs │ │ │ ├── WorkflowRunner.cs │ │ │ └── WorkflowStateExtractor.cs │ │ ├── Signals │ │ │ ├── ActivityCompleted.cs │ │ │ ├── BreakSignal.cs │ │ │ ├── CancelSignal.cs │ │ │ ├── CompleteCompositeSignal.cs │ │ │ ├── ScheduleActivityOutcomes.cs │ │ │ └── ScheduleChildActivity.cs │ │ ├── State │ │ │ ├── ActivityExecutionContextState.cs │ │ │ ├── ActivityWorkItemState.cs │ │ │ ├── CompletionCallbackState.cs │ │ │ ├── ExceptionState.cs │ │ │ ├── PersistentVariableState.cs │ │ │ └── WorkflowState.cs │ │ ├── UIHints │ │ │ ├── CheckList │ │ │ │ ├── CheckList.cs │ │ │ │ ├── CheckListItem.cs │ │ │ │ ├── CheckListOptionsProviderBase.cs │ │ │ │ ├── CheckListProps.cs │ │ │ │ ├── CheckListUIHintHandler.cs │ │ │ │ └── StaticCheckListOptionsProvider.cs │ │ │ ├── CodeEditor │ │ │ │ ├── CodeEditorOptions.cs │ │ │ │ ├── CodeEditorOptionsProviderBase.cs │ │ │ │ ├── EditorHeight.cs │ │ │ │ └── MultiLineOptions.cs │ │ │ ├── Dropdown │ │ │ │ ├── DropDownOptionsProviderBase.cs │ │ │ │ ├── DropDownProps.cs │ │ │ │ ├── DropDownUIHintHandler.cs │ │ │ │ ├── SelectList.cs │ │ │ │ ├── SelectListItem.cs │ │ │ │ └── StaticDropDownOptionsProvider.cs │ │ │ ├── InputUIHints.cs │ │ │ ├── JsonEditor │ │ │ │ ├── JsonCodeOptionsProvider.cs │ │ │ │ └── JsonEditorUIHintHandler.cs │ │ │ ├── RadioList │ │ │ │ ├── RadioList.cs │ │ │ │ ├── RadioListItem.cs │ │ │ │ ├── RadioListOptionsProviderBase.cs │ │ │ │ ├── RadioListProps.cs │ │ │ │ ├── RadioListUIHintHandler.cs │ │ │ │ └── StaticRadioListOptionsProvider.cs │ │ │ └── SingleLine │ │ │ │ └── SingleLineProps.cs │ │ └── VariableStorageDrivers │ │ │ ├── WorkflowInstanceStorageDriver.cs │ │ │ └── WorkflowStorageDriver.cs │ ├── Elsa.Workflows.Management │ │ ├── Activities │ │ │ ├── SetOutput │ │ │ │ └── SetOutput.cs │ │ │ └── WorkflowDefinitionActivity │ │ │ │ ├── PropertyNameHelper.cs │ │ │ │ ├── WorkflowDefinitionActivity.cs │ │ │ │ ├── WorkflowDefinitionActivityPortResolver.cs │ │ │ │ └── WorkflowDefinitionActivityProvider.cs │ │ ├── Contracts │ │ │ ├── IActivityRegistryPopulator.cs │ │ │ ├── IWorkflowDefinitionActivityRegistryUpdater.cs │ │ │ ├── IWorkflowDefinitionCacheManager.cs │ │ │ ├── IWorkflowDefinitionImporter.cs │ │ │ ├── IWorkflowDefinitionManager.cs │ │ │ ├── IWorkflowDefinitionPublisher.cs │ │ │ ├── IWorkflowDefinitionService.cs │ │ │ ├── IWorkflowDefinitionStore.cs │ │ │ ├── IWorkflowInstanceFactory.cs │ │ │ ├── IWorkflowInstanceManager.cs │ │ │ ├── IWorkflowInstanceStore.cs │ │ │ ├── IWorkflowInstanceVariableManager.cs │ │ │ ├── IWorkflowMaterializer.cs │ │ │ ├── IWorkflowReferenceUpdater.cs │ │ │ ├── IWorkflowSerializer.cs │ │ │ └── IWorkflowValidator.cs │ │ ├── Elsa.Workflows.Management.csproj │ │ ├── Elsa.Workflows.Management.csproj.DotSettings │ │ ├── Entities │ │ │ ├── WorkflowDefinition.cs │ │ │ └── WorkflowInstance.cs │ │ ├── Enums │ │ │ └── TimestampFilterOperator.cs │ │ ├── Extensions │ │ │ ├── ActivityDescriberExtensions.cs │ │ │ ├── ActivityFactoryExtensions.cs │ │ │ ├── ModuleExtensions.cs │ │ │ ├── ServiceCollectionExtensions.cs │ │ │ ├── WorkflowDefinitionExtensions.cs │ │ │ ├── WorkflowDefinitionHandleExtensions.cs │ │ │ ├── WorkflowExtensions.cs │ │ │ ├── WorkflowInstanceStoreExtensions.cs │ │ │ └── WorkflowManagementFeatureExtensions.cs │ │ ├── Features │ │ │ ├── CachingWorkflowDefinitionsFeature.cs │ │ │ ├── WorkflowDefinitionsFeature.cs │ │ │ ├── WorkflowInstancesFeature.cs │ │ │ └── WorkflowManagementFeature.cs │ │ ├── Filters │ │ │ ├── WorkflowDefinitionFilter.cs │ │ │ ├── WorkflowDefinitionOrder.cs │ │ │ ├── WorkflowInstanceFilter.cs │ │ │ └── WorkflowInstanceOrder.cs │ │ ├── FodyWeavers.xml │ │ ├── Handlers │ │ │ └── Notifications │ │ │ │ ├── DeleteWorkflowInstances.cs │ │ │ │ ├── EvictWorkflowDefinitionServiceCache.cs │ │ │ │ ├── RefreshActivityRegistry.cs │ │ │ │ ├── UpdateConsumingWorkflows.cs │ │ │ │ └── ValidateWorkflow.cs │ │ ├── Mappers │ │ │ ├── VariableDefinitionMapper.cs │ │ │ ├── WorkflowDefinitionMapper.cs │ │ │ └── WorkflowStateMapper.cs │ │ ├── Materializers │ │ │ ├── ClrWorkflowMaterializer.cs │ │ │ ├── JsonWorkflowMaterializer.cs │ │ │ └── TypedWorkflowMaterializer.cs │ │ ├── Models │ │ │ ├── AffectedWorkflows.cs │ │ │ ├── ImportWorkflowResult.cs │ │ │ ├── PublishWorkflowDefinitionResult.cs │ │ │ ├── SaveWorkflowDefinitionRequest.cs │ │ │ ├── TimestampFilter.cs │ │ │ ├── UpdateWorkflowReferencesResult.cs │ │ │ ├── VariableDescriptor.cs │ │ │ ├── WorkflowDefinitionModel.cs │ │ │ ├── WorkflowDefinitionSummary.cs │ │ │ ├── WorkflowInstanceId.cs │ │ │ ├── WorkflowInstanceSummary.cs │ │ │ └── WorkflowValidationError.cs │ │ ├── Notifications │ │ │ ├── WorkflowDefinitionCreated.cs │ │ │ ├── WorkflowDefinitionDeleted.cs │ │ │ ├── WorkflowDefinitionDeleting.cs │ │ │ ├── WorkflowDefinitionPublished.cs │ │ │ ├── WorkflowDefinitionPublishing.cs │ │ │ ├── WorkflowDefinitionRetracted.cs │ │ │ ├── WorkflowDefinitionRetracting.cs │ │ │ ├── WorkflowDefinitionValidating.cs │ │ │ ├── WorkflowDefinitionVersionDeleted.cs │ │ │ ├── WorkflowDefinitionVersionDeleting.cs │ │ │ ├── WorkflowDefinitionVersionRetracted.cs │ │ │ ├── WorkflowDefinitionVersionsDeleted.cs │ │ │ ├── WorkflowDefinitionVersionsDeleting.cs │ │ │ ├── WorkflowDefinitionVersionsUpdated.cs │ │ │ ├── WorkflowDefinitionVersionsUpdating.cs │ │ │ ├── WorkflowDefinitionsDeleted.cs │ │ │ ├── WorkflowDefinitionsDeleting.cs │ │ │ ├── WorkflowInstanceSaved.cs │ │ │ ├── WorkflowInstancesDeleted.cs │ │ │ └── WorkflowInstancesDeleting.cs │ │ ├── Options │ │ │ ├── ManagementOptions.cs │ │ │ └── WorkflowInstanceOptions.cs │ │ ├── Providers │ │ │ ├── DefaultExpressionDescriptorProvider.cs │ │ │ └── TypedActivityProvider.cs │ │ ├── Services │ │ │ ├── ActivityRegistryPopulator.cs │ │ │ ├── CachingWorkflowDefinitionService.cs │ │ │ ├── ExpressionDescriptorRegistry.cs │ │ │ ├── WorkflowDefinitionActivityRegistryUpdater.cs │ │ │ ├── WorkflowDefinitionCacheManager.cs │ │ │ ├── WorkflowDefinitionImporter.cs │ │ │ ├── WorkflowDefinitionManager.cs │ │ │ ├── WorkflowDefinitionPublisher.cs │ │ │ ├── WorkflowDefinitionService.cs │ │ │ ├── WorkflowInstanceFactory.cs │ │ │ ├── WorkflowInstanceManager.cs │ │ │ ├── WorkflowInstanceVariableManager.cs │ │ │ ├── WorkflowReferenceUpdater.cs │ │ │ ├── WorkflowSerializer.cs │ │ │ └── WorkflowValidator.cs │ │ └── Stores │ │ │ ├── CachingWorkflowDefinitionStore.cs │ │ │ ├── MemoryWorkflowDefinitionStore.cs │ │ │ └── MemoryWorkflowInstanceStore.cs │ ├── Elsa.Workflows.Runtime.Distributed │ │ ├── Elsa.Workflows.Runtime.Distributed.csproj │ │ ├── Elsa.Workflows.Runtime.Distributed.csproj.DotSettings │ │ ├── Extensions │ │ │ └── ModuleExtensions.cs │ │ ├── Features │ │ │ └── DistributedRuntimeFeature.cs │ │ ├── FodyWeavers.xml │ │ └── Services │ │ │ ├── DistributedBookmarkQueueWorker.cs │ │ │ ├── DistributedWorkflowClient.cs │ │ │ ├── DistributedWorkflowRuntime.Obsolete.cs │ │ │ └── DistributedWorkflowRuntime.cs │ ├── Elsa.Workflows.Runtime.ProtoActor │ │ └── Extensions │ │ │ └── ProtoOutputExtensions.cs │ ├── Elsa.Workflows.Runtime │ │ ├── ActivationValidators │ │ │ ├── CorrelatedSingletonStrategy.cs │ │ │ ├── CorrelationStrategy.cs │ │ │ └── SingletonStrategy.cs │ │ ├── Activities │ │ │ ├── BulkDispatchWorkflows.cs │ │ │ ├── DispatchWorkflow.cs │ │ │ ├── Event.cs │ │ │ ├── EventBase.cs │ │ │ ├── ExecuteWorkflow.cs │ │ │ ├── PublishEvent.cs │ │ │ └── RunTask.cs │ │ ├── Bookmarks │ │ │ ├── BackgroundActivityBookmark.cs │ │ │ ├── BulkDispatchWorkflowBookmark.cs │ │ │ ├── DispatchWorkflowBookmark.cs │ │ │ ├── EventBookmarkPayload.cs │ │ │ ├── ExecuteWorkflowPayload.cs │ │ │ └── RunTaskBookmarkPayload.cs │ │ ├── Commands │ │ │ ├── CancelWorkflowsCommand.cs │ │ │ ├── DispatchResumeWorkflowsCommand.cs │ │ │ ├── DispatchStimulusCommand.cs │ │ │ ├── DispatchTriggerWorkflowsCommand.cs │ │ │ ├── DispatchWorkflowDefinitionCommand.cs │ │ │ └── DispatchWorkflowInstanceCommand.cs │ │ ├── Comparers │ │ │ └── WorkflowTriggerEqualityComparer.cs │ │ ├── Constants │ │ │ ├── RuntimeFaultCategories.cs │ │ │ └── RuntimeFaultCodes.cs │ │ ├── Contexts │ │ │ └── WorkflowActivationStrategyEvaluationContext.cs │ │ ├── Contracts │ │ │ ├── IActivityExecutionManager.cs │ │ │ ├── IActivityExecutionStatsService.cs │ │ │ ├── IActivityExecutionStore.cs │ │ │ ├── IActivityExecutonMapper.cs │ │ │ ├── IBackgroundActivityInvoker.cs │ │ │ ├── IBackgroundActivityScheduler.cs │ │ │ ├── IBookmarkBoundWorkflowService.cs │ │ │ ├── IBookmarkManager.cs │ │ │ ├── IBookmarkPersister.cs │ │ │ ├── IBookmarkQueue.cs │ │ │ ├── IBookmarkQueueProcessor.cs │ │ │ ├── IBookmarkQueuePurger.cs │ │ │ ├── IBookmarkQueueSignaler.cs │ │ │ ├── IBookmarkQueueStore.cs │ │ │ ├── IBookmarkQueueWorker.cs │ │ │ ├── IBookmarkResumer.cs │ │ │ ├── IBookmarkStore.cs │ │ │ ├── IBookmarkUpdater.cs │ │ │ ├── IBookmarksPersistedHandler.cs │ │ │ ├── IEventPublisher.cs │ │ │ ├── ILogRecordExtractor.cs │ │ │ ├── ILogRecordSink.cs │ │ │ ├── ILogRecordStore.cs │ │ │ ├── IRegistriesPopulator.cs │ │ │ ├── IStimulusDispatcher.cs │ │ │ ├── IStimulusSender.cs │ │ │ ├── ITaskDispatcher.cs │ │ │ ├── ITaskReporter.cs │ │ │ ├── ITriggerBoundWorkflowService.cs │ │ │ ├── ITriggerIndexer.cs │ │ │ ├── ITriggerInvoker.cs │ │ │ ├── ITriggerPayloadValidator.cs │ │ │ ├── ITriggerStore.cs │ │ │ ├── IWorkflowActivationStrategyEvaluator.cs │ │ │ ├── IWorkflowCanceler.cs │ │ │ ├── IWorkflowCancellationDispatcher.cs │ │ │ ├── IWorkflowCancellationService.cs │ │ │ ├── IWorkflowClient.cs │ │ │ ├── IWorkflowDefinitionRefresher.cs │ │ │ ├── IWorkflowDefinitionStorePopulator.cs │ │ │ ├── IWorkflowDefinitionsReloader.cs │ │ │ ├── IWorkflowDispatcher.cs │ │ │ ├── IWorkflowExecutionLogStore.cs │ │ │ ├── IWorkflowHost.cs │ │ │ ├── IWorkflowHostFactory.cs │ │ │ ├── IWorkflowInbox.cs │ │ │ ├── IWorkflowInvoker.cs │ │ │ ├── IWorkflowMatcher.cs │ │ │ ├── IWorkflowRegister.cs │ │ │ ├── IWorkflowRestarter.cs │ │ │ ├── IWorkflowRuntime.cs │ │ │ ├── IWorkflowStarter.cs │ │ │ └── IWorkflowsProvider.cs │ │ ├── Elsa.Workflows.Runtime.csproj │ │ ├── Elsa.Workflows.Runtime.csproj.DotSettings │ │ ├── Entities │ │ │ ├── ActivityExecutionRecord.cs │ │ │ ├── ActivityExecutionRecordSummary.cs │ │ │ ├── BookmarkQueueItem.cs │ │ │ ├── StoredBookmark.cs │ │ │ ├── StoredTrigger.cs │ │ │ ├── WorkflowExecutionLogRecord.cs │ │ │ └── WorkflowInboxMessage.cs │ │ ├── Exceptions │ │ │ ├── WorkflowGraphNotFoundException.cs │ │ │ └── WorkflowInstanceNotFoundException.cs │ │ ├── Extensions │ │ │ ├── ActivityExecutionContextExtensions.cs │ │ │ ├── BookmarkExtensions.cs │ │ │ ├── BookmarkQueueItemExtensions.cs │ │ │ ├── DeferredTasksExecutionContextExtensions.cs │ │ │ ├── DependencyInjectionExtensions.cs │ │ │ ├── LogExtensions.cs │ │ │ ├── ModuleExtensions.cs │ │ │ ├── PipelineWorkflowsFeatureExtensions.cs │ │ │ ├── RateLimitedFuncExtensions.cs │ │ │ ├── StoredBookmarkExtensions.cs │ │ │ ├── StoredTriggerExtensions.cs │ │ │ ├── StoredTriggerStoreExtensions.cs │ │ │ ├── WorkflowBrokerExtensions.cs │ │ │ ├── WorkflowClientExtensions.cs │ │ │ ├── WorkflowDictionaryExtensions.cs │ │ │ ├── WorkflowDispatcherExtensions.cs │ │ │ ├── WorkflowExecutionPipelineBuilderExtensions.cs │ │ │ ├── WorkflowInstanceStoreExtensions.cs │ │ │ ├── WorkflowTriggerExtensions.cs │ │ │ └── WorkflowsFeatureExtensions.cs │ │ ├── Features │ │ │ ├── CachingWorkflowRuntimeFeature.cs │ │ │ ├── DefaultWorkflowRuntimeFeature.cs │ │ │ └── WorkflowRuntimeFeature.cs │ │ ├── Filters │ │ │ ├── ActivityExecutionRecordFilter.cs │ │ │ ├── BookmarkFilter.cs │ │ │ ├── BookmarkQueueFilter.cs │ │ │ ├── TriggerFilter.cs │ │ │ ├── WorkflowExecutionLogRecordFilter.cs │ │ │ ├── WorkflowInboxMessageFilter.cs │ │ │ └── WorkflowsFilter.cs │ │ ├── FodyWeavers.xml │ │ ├── Handlers │ │ │ ├── CancelBackgroundActivities.cs │ │ │ ├── CancelWorkflowsCommandHandler.cs │ │ │ ├── DeleteActivityExecutionLogRecords.cs │ │ │ ├── DeleteBookmarks.cs │ │ │ ├── DeleteTriggers.cs │ │ │ ├── DeleteWorkflowExecutionLogRecords.cs │ │ │ ├── DispatchStimulusCommandHandler.cs │ │ │ ├── DispatchWorkflowRequestHandler.cs │ │ │ ├── IndexTriggers.cs │ │ │ ├── InvalidateTriggersCache.cs │ │ │ ├── InvalidateWorkflowsCache.cs │ │ │ ├── RefreshActivityRegistry.cs │ │ │ ├── ResumeBulkDispatchWorkflowActivity.cs │ │ │ ├── ResumeDispatchWorkflowActivity.cs │ │ │ ├── ResumeExecuteWorkflowActivity.cs │ │ │ ├── SignalBookmarkQueueWorker.cs │ │ │ └── ValidateWorkflowRequestHandler.cs │ │ ├── IsExternalInit.cs │ │ ├── LogPersistence │ │ │ ├── Contracts │ │ │ │ └── IActivityPropertyLogPersistenceEvaluator.cs │ │ │ ├── Extensions │ │ │ │ ├── ActivityExecutionContextExtensions.cs │ │ │ │ └── ActivityExecutionPipelineBuilderExtensions.cs │ │ │ ├── Handlers │ │ │ │ └── EvaluateParentInputProperties.cs │ │ │ ├── Middleware │ │ │ │ └── EvaluateLogPersistenceModesMiddleware.cs │ │ │ ├── Models │ │ │ │ ├── ActivityLogPersistenceModeMap.cs │ │ │ │ ├── LogPersistenceConfiguration.cs │ │ │ │ └── LogPersistenceEvaluationMode.cs │ │ │ └── Services │ │ │ │ └── ActivityPropertyLogPersistenceEvaluator.cs │ │ ├── Matches │ │ │ ├── ResumableWorkflowMatch.cs │ │ │ ├── StartableWorkflowMatch.cs │ │ │ └── WorkflowMatch.cs │ │ ├── Messages │ │ │ ├── CreateAndRunWorkflowInstanceRequest.cs │ │ │ ├── CreateWorkflowInstanceRequest.cs │ │ │ ├── CreateWorkflowInstanceResponse.cs │ │ │ ├── RunWorkflowInstanceRequest.cs │ │ │ └── RunWorkflowInstanceResponse.cs │ │ ├── Middleware │ │ │ ├── Activities │ │ │ │ └── BackgroundActivityInvokerMiddleware.cs │ │ │ └── Workflows │ │ │ │ ├── CancelWorkflowMiddleware.cs │ │ │ │ ├── HeartbeatMiddleware.cs │ │ │ │ ├── PersistActivityExecutionLogMiddleware.cs │ │ │ │ ├── PersistBookmarkMiddleware.cs │ │ │ │ ├── PersistWorkflowExecutionLogMiddleware.cs │ │ │ │ └── PersistentVariablesMiddleware.cs │ │ ├── Models │ │ │ ├── ActivityExecutionStats.cs │ │ │ ├── BookmarkBoundWorkflow.cs │ │ │ ├── CancellationFailureReason.cs │ │ │ ├── DispatchWorkflowOptions.cs │ │ │ ├── DispatcherChannel.cs │ │ │ ├── ExecuteWorkflowResult.cs │ │ │ ├── MaterializedWorkflow.cs │ │ │ ├── NewBookmarkQueueItem.cs │ │ │ ├── NewWorkflowInboxMessage.cs │ │ │ ├── ReloadedWorkflowDefinition.cs │ │ │ ├── ResumeBookmarkResult.cs │ │ │ ├── ScheduledBackgroundActivity.cs │ │ │ ├── StimulusMetadata.cs │ │ │ └── TriggerBoundWorkflow.cs │ │ ├── Notifications │ │ │ ├── ActivityExecutionLogUpdated.cs │ │ │ ├── ActivityExecutionRecordDeleted.cs │ │ │ ├── ActivityExecutionRecordUpdated.cs │ │ │ ├── BackgroundActivityExecutionCompleted.cs │ │ │ ├── BookmarkSaved.cs │ │ │ ├── BookmarkSaving.cs │ │ │ ├── BookmarksDeleted.cs │ │ │ ├── BookmarksDeleting.cs │ │ │ ├── IndexedWorkflowBookmarks.cs │ │ │ ├── IndexedWorkflowTriggers.cs │ │ │ ├── RunTaskRequest.cs │ │ │ ├── WorkflowBookmarksDeleted.cs │ │ │ ├── WorkflowBookmarksIndexed.cs │ │ │ ├── WorkflowBookmarksPersisted.cs │ │ │ ├── WorkflowCancelled.cs │ │ │ ├── WorkflowCancelling.cs │ │ │ ├── WorkflowDefinitionsRefreshed.cs │ │ │ ├── WorkflowDefinitionsReloaded.cs │ │ │ ├── WorkflowExecutionLogUpdated.cs │ │ │ └── WorkflowTriggersIndexed.cs │ │ ├── Options │ │ │ ├── BookmarkQueuePurgeOptions.cs │ │ │ ├── BroadcastWorkflowInboxMessageOptions.cs │ │ │ ├── FindBookmarkOptions.cs │ │ │ ├── ResumeBookmarkOptions.cs │ │ │ ├── RuntimeOptions.cs │ │ │ ├── TriggerWorkflowsOptions.cs │ │ │ ├── WorkflowDispatcherOptions.cs │ │ │ ├── WorkflowHostOptions.cs │ │ │ └── WorkflowInboxCleanupOptions.cs │ │ ├── OrderDefinitions │ │ │ ├── ActivityExecutionRecordOrder.cs │ │ │ ├── BookmarkQueueItemOrder.cs │ │ │ ├── StoredTriggerOrder.cs │ │ │ └── WorkflowExecutionLogRecordOrder.cs │ │ ├── Parameters │ │ │ ├── ResumeWorkflowRuntimeParams.cs │ │ │ ├── StartWorkflowHostParams.cs │ │ │ └── StartWorkflowRuntimeParams.cs │ │ ├── Params │ │ │ ├── ExecuteWorkflowParams.cs │ │ │ └── WorkflowInboxMessageDeliveryParams.cs │ │ ├── Providers │ │ │ └── ClrWorkflowsProvider.cs │ │ ├── Requests │ │ │ ├── CountRunningWorkflowsRequest.cs │ │ │ ├── DispatchCancelWorkflowRequest.cs │ │ │ ├── DispatchResumeWorkflowsRequest.cs │ │ │ ├── DispatchStimulusRequest.cs │ │ │ ├── DispatchTriggerWorkflowsRequest.cs │ │ │ ├── DispatchWorkflowDefinitionRequest.cs │ │ │ ├── DispatchWorkflowInstanceRequest.cs │ │ │ ├── InvokeTriggerRequest.cs │ │ │ ├── RefreshWorkflowDefinitionsRequest.cs │ │ │ ├── ResumeBookmarkRequest.cs │ │ │ ├── StartWorkflowRequest.cs │ │ │ └── UpdateBookmarksRequest.cs │ │ ├── Responses │ │ │ ├── DispatchCancelWorkflowsResponse.cs │ │ │ ├── DispatchResumeWorkflowsResponse.cs │ │ │ ├── DispatchStimulusResponse.cs │ │ │ ├── DispatchTriggerWorkflowsResponse.cs │ │ │ ├── DispatchWorkflowDefinitionResponse.cs │ │ │ ├── DispatchWorkflowInstanceResponse.cs │ │ │ ├── RefreshWorkflowDefinitionsResponse.cs │ │ │ └── StartWorkflowResponse.cs │ │ ├── Results │ │ │ ├── CanStartWorkflowResult.cs │ │ │ ├── CancellationResult.cs │ │ │ ├── DeliverWorkflowInboxMessageResult.cs │ │ │ ├── RunWorkflowResult.cs │ │ │ ├── SendStimulusResult.cs │ │ │ ├── SubmitWorkflowInboxMessageResult.cs │ │ │ ├── TriggerWorkflowsResult.cs │ │ │ └── WorkflowExecutionResult.cs │ │ ├── RuntimeStimulusNames.cs │ │ ├── Services │ │ │ ├── ActivityExecutionService.cs │ │ │ ├── BackgroundActivityInvoker.cs │ │ │ ├── BackgroundStimulusDispatcher.cs │ │ │ ├── BackgroundTaskDispatcher.cs │ │ │ ├── BackgroundWorkflowCancellationDispatcher.cs │ │ │ ├── BackgroundWorkflowDispatcher.cs │ │ │ ├── BookmarkBoundWorkflowService.cs │ │ │ ├── BookmarkPersister.cs │ │ │ ├── BookmarkQueueProcessor.cs │ │ │ ├── BookmarkQueueSignaler.cs │ │ │ ├── BookmarkQueueWorker.cs │ │ │ ├── BookmarkResumer.cs │ │ │ ├── BookmarkUpdater.cs │ │ │ ├── DefaultActivityExecutionManager.cs │ │ │ ├── DefaultActivityExecutionMapper.cs │ │ │ ├── DefaultBookmarkManager.cs │ │ │ ├── DefaultBookmarkQueuePurger.cs │ │ │ ├── DefaultCommitStateHandler.cs │ │ │ ├── DefaultRegistriesPopulator.cs │ │ │ ├── DefaultWorkflowActivationStrategyEvaluator.cs │ │ │ ├── DefaultWorkflowDefinitionStorePopulator.cs │ │ │ ├── DefaultWorkflowRegistry.cs │ │ │ ├── DefaultWorkflowRestarter.cs │ │ │ ├── DefaultWorkflowStarter.cs │ │ │ ├── EventPublisher.cs │ │ │ ├── HeartbeatGenerator.cs │ │ │ ├── LocalBackgroundActivityScheduler.cs │ │ │ ├── LocalWorkflowClient.cs │ │ │ ├── LocalWorkflowRuntime.Obsolete.cs │ │ │ ├── LocalWorkflowRuntime.cs │ │ │ ├── ObsoleteWorkflowRuntime.cs │ │ │ ├── StimulusProxyWorkflowInbox.cs │ │ │ ├── StimulusSender.cs │ │ │ ├── StoreActivityExecutionLogSink.cs │ │ │ ├── StoreBookmarkQueue.cs │ │ │ ├── StoreWorkflowExecutionLogSink.cs │ │ │ ├── SynchronousTaskDispatcher.cs │ │ │ ├── TaskReporter.cs │ │ │ ├── TriggerBoundWorkflowService.cs │ │ │ ├── TriggerIndexer.cs │ │ │ ├── TriggerInvoker.cs │ │ │ ├── ValidatingWorkflowDispatcher.cs │ │ │ ├── WorkflowCanceler.cs │ │ │ ├── WorkflowCancellationService.cs │ │ │ ├── WorkflowDefinitionRefresher.cs │ │ │ ├── WorkflowDefinitionsReloader.cs │ │ │ ├── WorkflowExecutionLogRecordExtractor.cs │ │ │ ├── WorkflowHeartbeatGeneratorFactory.cs │ │ │ ├── WorkflowHost.cs │ │ │ ├── WorkflowHostFactory.cs │ │ │ ├── WorkflowInvoker.cs │ │ │ └── WorkflowMatcher.cs │ │ ├── Stimuli │ │ │ ├── BackgroundActivityStimulus.cs │ │ │ ├── BulkDispatchWorkflowsStimulus.cs │ │ │ ├── DispatchWorkflowStimulus.cs │ │ │ ├── EventStimulus.cs │ │ │ ├── ExecuteWorkflowStimulus.cs │ │ │ └── RunTaskStimulus.cs │ │ ├── Stores │ │ │ ├── CachingTriggerStore.cs │ │ │ ├── MemoryActivityExecutionStore.cs │ │ │ ├── MemoryBookmarkQueueStore.cs │ │ │ ├── MemoryBookmarkStore.cs │ │ │ ├── MemoryTriggerStore.cs │ │ │ ├── MemoryWorkflowExecutionLogStore.cs │ │ │ ├── NoopActivityExecutionStore.cs │ │ │ └── NoopWorkflowExecutionLogStore.cs │ │ ├── Tasks │ │ │ ├── PopulateRegistriesStartupTask.cs │ │ │ ├── PurgeBookmarkQueueRecurringTask.cs │ │ │ ├── RestartInterruptedWorkflowsTask.cs │ │ │ └── TriggerBookmarkQueueRecurringTask.cs │ │ └── UIHints │ │ │ └── DispatcherChannelOptionsProvider.cs │ └── Elsa │ │ ├── Elsa.csproj │ │ ├── Extensions │ │ ├── DependencyInjectionExtensions.cs │ │ └── ServiceProviderExtensions.cs │ │ ├── Features │ │ ├── AppFeature.cs │ │ └── ElsaFeature.cs │ │ └── FodyWeavers.xml └── samples │ ├── IntegrationTestSample.cs │ └── README.md ├── tempvalidator ├── Program.cs └── tempvalidator.csproj └── test ├── Directory.Build.props ├── component ├── Directory.Build.props └── Elsa.Workflows.ComponentTests │ ├── Elsa.Workflows.ComponentTests.csproj │ ├── Elsa.Workflows.ComponentTests.csproj.DotSettings │ ├── Helpers │ ├── Abstractions │ │ └── AppComponentTest.cs │ ├── Activities │ │ └── TriggerSignal.cs │ ├── Decorators │ │ └── EventPublishingChangeTokenSignaler.cs │ ├── Fixtures │ │ ├── App.cs │ │ ├── AppCollection.cs │ │ ├── Cluster.cs │ │ ├── Infrastructure.cs │ │ └── WorkflowServer.cs │ ├── Materializers │ │ └── TestWorkflowMaterializer.cs │ └── WorkflowProviders │ │ └── TestWorkflowProvider.cs │ ├── Scenarios │ ├── Activities │ │ └── FlowJoins │ │ │ ├── Tests.cs │ │ │ └── Workflows.cs │ ├── BasicWorkflows │ │ ├── HelloWorldTests.cs │ │ └── hello-world.json │ ├── BulkDispatchWorkflows │ │ ├── BulkDispatchWorkflowsTests.cs │ │ └── Workflows │ │ │ ├── EmployeeGreetingWorkflow.cs │ │ │ ├── FruitWorkflow.cs │ │ │ ├── GreetEmployeesWorkflow.cs │ │ │ └── MixFruitsWorkflow.cs │ ├── CachingAndWorkflowDefinitionActivity │ │ ├── WorkflowDefinitionActivityTests.cs │ │ └── Workflows │ │ │ ├── workflow-definition-child.json │ │ │ ├── workflow-definition-grand-child.json │ │ │ └── workflow-definition-parent.json │ ├── ClusteredHosting │ │ └── ActivityRegistrySyncTests.cs │ ├── DispatchWorkflows │ │ ├── DispatchWorkflowsTests.cs │ │ └── Workflows │ │ │ ├── ChildWorkflow.cs │ │ │ └── DispatchAndWaitWorkflow.cs │ ├── ExecuteWorkflows │ │ ├── ExecuteWorkflowsTests.cs │ │ └── Workflows │ │ │ ├── MainWorkflow.cs │ │ │ └── SubroutineWorkflow.cs │ ├── HttpWorkflows │ │ ├── HttpHelloWorldTests.cs │ │ ├── ResumeSpecificHttpWorkflowInstanceTests.cs │ │ ├── RouteDataTests.cs │ │ └── Workflows │ │ │ ├── RouteDataWorkflow.cs │ │ │ ├── SimpleHttpApiWorkflow.cs │ │ │ └── http-hello-world.json │ ├── InputOutput │ │ ├── InputOutputTests.cs │ │ └── Workflows │ │ │ ├── consumer.json │ │ │ └── provider.json │ ├── JavaScriptVariables │ │ ├── JavaScriptVariablesWorkflow1.cs │ │ ├── JavaScriptVariablesWorkflow2.cs │ │ ├── JavaScriptVariablesWorkflow3.cs │ │ └── JavaScriptVariablesWorkflowTests.cs │ ├── LogPersistenceModes │ │ ├── InputOutputLoggingTests.cs │ │ ├── input-output-logging-1.json │ │ ├── input-output-logging-2.json │ │ ├── input-output-logging-3-child.json │ │ └── input-output-logging-3.json │ ├── Multitenancy │ │ ├── MultitenancyTests.cs │ │ └── Workflows │ │ │ ├── WorkflowForTenant1.cs │ │ │ └── WorkflowForTenant2.cs │ ├── Variables │ │ ├── Activities │ │ │ └── CountdownStep.cs │ │ ├── CountdownWorkflowTests.cs │ │ └── Workflows │ │ │ └── CountdownWorkflow.cs │ ├── WorkflowActivities │ │ ├── AutoUpdateTests.cs │ │ ├── DeleteWorkflowTests.cs │ │ ├── SaveWorkflowTests.cs │ │ └── Workflows │ │ │ ├── CacheInvalidation_Child.json │ │ │ ├── CacheInvalidation_Childv2.json │ │ │ ├── CacheInvalidation_Parent.json │ │ │ ├── DeleteWorkflow.cs │ │ │ └── DeleteWorkflowClustered.cs │ ├── WorkflowCompletion │ │ ├── WorkflowCompletionTests.cs │ │ ├── fork.json │ │ └── hello-world.json │ ├── WorkflowDefinitionRefresh │ │ ├── DynamicEndpointTests.cs │ │ └── dynamic-endpoint-http-workflow.json │ ├── WorkflowDefinitionReload │ │ ├── ReloadWorkflowTests.cs │ │ └── Workflows │ │ │ └── http-workflow.json │ └── WorkflowJsonStructures │ │ ├── WorkflowJsonStructureTests.cs │ │ ├── main.json │ │ └── sub.json │ └── xunit.runner.json ├── integration ├── Elsa.Activities.IntegrationTests │ ├── Elsa.Activities.IntegrationTests.csproj │ ├── SetNameTests.cs │ ├── Usings.cs │ └── WriteLineTests.cs ├── Elsa.JavaScript.IntegrationTests │ ├── Elsa.JavaScript.IntegrationTests.csproj │ ├── JsonConverterTest.cs │ ├── JsonElementConverterTests.cs │ └── ToJsonTests.cs ├── Elsa.Resilience.IntegrationTests │ ├── Elsa.Resilience.IntegrationTests.csproj │ ├── FlowSendHttpRequestResilienceTests.cs │ ├── SequentialStatusHandler.cs │ ├── TestRetryAttemptRecorder.cs │ └── Usings.cs └── Elsa.Workflows.IntegrationTests │ ├── Activities │ ├── Break │ │ ├── BreakTests.cs │ │ └── Workflows │ │ │ ├── BreakForEachWorkflow.cs │ │ │ ├── BreakForWorkflow.cs │ │ │ ├── BreakWhileForkWorkflow.cs │ │ │ └── BreakWhileWorkflow.cs │ ├── Finish │ │ ├── FinishForkedWorkflow.cs │ │ ├── FinishSequentialWorkflow.cs │ │ └── FinishTests.cs │ ├── ForEach │ │ ├── ForEachTests.cs │ │ ├── ForEachWorkflow.cs │ │ └── NestedForEachWithBreakWorkflow.cs │ ├── Fork │ │ ├── BasicForkWorkflow.cs │ │ ├── ForkTests.cs │ │ └── JoinAnyForkWorkflow.cs │ ├── If │ │ └── IfTests.cs │ ├── Sequence │ │ ├── NestedSequentialWorkflow.cs │ │ ├── SequenceTests.cs │ │ └── SequentialWorkflow.cs │ └── WriteLine │ │ └── WriteLineTests.cs │ ├── Core │ ├── ScheduleActivityExecutionContextTests.cs │ └── SerializerEncodingTests.cs │ ├── Elsa.Workflows.IntegrationTests.csproj │ ├── Elsa.Workflows.IntegrationTests.csproj.DotSettings │ ├── Scenarios │ ├── ActivityNotificationsMiddleware │ │ ├── Spy.cs │ │ ├── TestHandler.cs │ │ ├── Tests.cs │ │ └── Workflows.cs │ ├── ActivityOutputs │ │ ├── LoopingWorkflow.cs │ │ ├── SumActivity.cs │ │ ├── SumWorkflow.cs │ │ └── Tests.cs │ ├── Blocking │ │ ├── Tests.cs │ │ └── Workflows.cs │ ├── BlockingAndBreaking │ │ ├── Tests.cs │ │ └── Workflows │ │ │ ├── BreakWhileFromForkWorkflow.cs │ │ │ ├── WaitAllForkWorkflow.cs │ │ │ └── WaitAnyForkWorkflow.cs │ ├── CanExecute │ │ ├── Activities │ │ │ └── CustomActivity.cs │ │ ├── Tests.cs │ │ └── Workflows │ │ │ └── MagicWorkflow.cs │ ├── Composites │ │ ├── Tests.cs │ │ └── Workflows.cs │ ├── CompositesAndOutcomes │ │ ├── CompositesAndOutcomeWaitAnyTests.cs │ │ └── Workflows │ │ │ ├── completor.json │ │ │ ├── consumer.json │ │ │ └── tester.json │ ├── CompositesPassingData │ │ ├── Tests.cs │ │ └── Workflows.cs │ ├── DependencyWorkflows │ │ ├── Tests.cs │ │ └── Workflows │ │ │ ├── atom-activity.json │ │ │ ├── matter-activity.json │ │ │ └── molecule-activity.json │ ├── DependencyWorkflowsPublishing │ │ ├── Tests.cs │ │ └── Workflows │ │ │ ├── child.json │ │ │ └── parent.json │ ├── ExplicitJoins │ │ ├── ExplicitJoinWaitAnyTests.cs │ │ └── Workflows │ │ │ ├── join-all-1.json │ │ │ ├── join-all-2.json │ │ │ └── join-any-1.json │ ├── FlowchartCompletion │ │ ├── Tests.cs │ │ └── Workflows │ │ │ ├── workflow1.json │ │ │ ├── workflow2.json │ │ │ ├── workflow3.json │ │ │ ├── workflow4.json │ │ │ ├── workflow5.json │ │ │ └── workflow6.json │ ├── FlowchartNextActivity │ │ ├── Activities │ │ │ └── CustomActivity.cs │ │ ├── Tests.cs │ │ └── Workflows │ │ │ └── FlowchartWorkflow.cs │ ├── HttpRequestWithLiquid │ │ ├── JavascriptAndLiquidWorkflow.cs │ │ └── Tests.cs │ ├── ImplicitJoins │ │ ├── BraidedWorkflowTests.cs │ │ ├── ImplicitLoopWorkflowTests.cs │ │ ├── JoinRunsOnceTests.cs │ │ ├── ParallelJoinCompletesTests.cs │ │ └── Workflows │ │ │ ├── BraidedWorkflow.cs │ │ │ ├── ImplicitLoopWorkflow.cs │ │ │ ├── join.json │ │ │ └── parallel-join.json │ ├── ImportAndExecute │ │ ├── Tests.cs │ │ └── Workflows │ │ │ ├── implicit-loop.json │ │ │ └── writeline.json │ ├── ImportAndPublish │ │ ├── ImportAndPublishCronTests.cs │ │ ├── ImportAndPublishHttpEndpointsTests.cs │ │ ├── ImportAndPublishTimerTests.cs │ │ └── Workflows │ │ │ ├── bad-cron-expression.json │ │ │ ├── cron-every-hour.json │ │ │ ├── http-workflow.json │ │ │ └── timer-workflow.json │ ├── Incidents │ │ ├── IncidentStrategyTests.cs │ │ ├── Statics │ │ │ └── TestSettings.cs │ │ └── Workflows │ │ │ └── FaultyWorkflow.cs │ ├── JavaScriptFunctions │ │ └── BytesAndStringEncodingTests.cs │ ├── JavaScriptListsAndArrays │ │ └── Tests.cs │ ├── JavaScriptNativeVariables │ │ ├── Data.cs │ │ ├── Tests.cs │ │ └── Workflows.cs │ ├── JsonObjectSerialization │ │ ├── Tests.cs │ │ └── Workflows │ │ │ └── instance-serialization.json │ ├── JsonObjectToObjectRemainsJsonObject │ │ ├── Activities │ │ │ ├── JsonObjectProducer.cs │ │ │ └── ObjectProcessor.cs │ │ ├── Tests.cs │ │ └── Workflows │ │ │ └── TestWorkflow.cs │ ├── ParentChildCompletion │ │ ├── Tests.cs │ │ └── Workflows │ │ │ ├── child.json │ │ │ └── parent.json │ ├── ParentChildInputs │ │ ├── Tests.cs │ │ └── Workflows │ │ │ ├── child.json │ │ │ ├── parent1.json │ │ │ └── parent2.json │ ├── ParentChildOutputMapping │ │ ├── Tests.cs │ │ └── Workflows │ │ │ ├── a.json │ │ │ ├── b.json │ │ │ ├── c.json │ │ │ ├── calculator.json │ │ │ ├── consumer.json │ │ │ ├── d.json │ │ │ ├── producer.json │ │ │ └── sum.json │ ├── RunAsynchronousActivityOutput │ │ ├── Activities │ │ │ └── SampleActivity.cs │ │ └── Tests.cs │ ├── Serialization │ │ └── Tests.cs │ ├── SetGetVariables │ │ ├── Tests.cs │ │ └── Workflows.cs │ ├── SetGetVariablesFromActivities │ │ ├── Activities │ │ │ ├── CreateVariableActivity.cs │ │ │ └── ReadVariableActivity.cs │ │ ├── Tests.cs │ │ └── Workflows │ │ │ └── SampleWorkflow.cs │ ├── WorkflowCancellation │ │ ├── DefaultRuntimeTests.cs │ │ └── Workflows │ │ │ ├── BulkSuspendedWorkflow.cs │ │ │ ├── ResumeDispatchWorkflow.cs │ │ │ ├── SimpleChildWorkflow.cs │ │ │ └── SimpleSuspendedWorkflow.cs │ ├── WorkflowInstanceName │ │ ├── WorkflowInstanceNameTests.cs │ │ └── Workflows │ │ │ └── NamedWorkflow.cs │ ├── WorkflowOutputMapping │ │ ├── Tests.cs │ │ └── Workflows │ │ │ └── workflow-output.json │ └── WorkflowResults │ │ └── Tests.cs │ ├── Serialization │ ├── ContainerSerialization │ │ └── Tests.cs │ ├── JsonSerialization │ │ ├── JArrayIsland.json │ │ ├── JArrayWithoutType.json │ │ ├── JObjectIsland.json │ │ ├── JObjectWithoutType.json │ │ ├── JsonArrayIsland.json │ │ ├── JsonArrayWithoutType.json │ │ ├── JsonObjectIsland.json │ │ ├── JsonObjectWithoutType.json │ │ └── Tests.cs │ ├── Polymorphism │ │ ├── Models.cs │ │ ├── Tests.cs │ │ └── data.json │ ├── ProgrammaticWorkflowsAndDelegates │ │ ├── Tests.cs │ │ └── Workflows.cs │ ├── SpecialPropertySerialization │ │ └── Tests.cs │ ├── UIHintSerializiation │ │ ├── ActivityUIHintDescriberTests.cs │ │ ├── TestActivity.cs │ │ └── TestEnumType.cs │ ├── VariableExpressions │ │ ├── Activities.cs │ │ ├── Tests.cs │ │ └── Workflows.cs │ └── VariableTypes │ │ ├── Models.cs │ │ ├── Tests.cs │ │ └── Workflows.cs │ └── Usings.cs ├── performance ├── Directory.Build.props └── Elsa.Workflows.PerformanceTests │ ├── Config.cs │ ├── ConsoleActivitiesBenchmark.cs │ ├── Elsa.Workflows.PerformanceTests.csproj │ └── Program.cs └── unit ├── Elsa.Common.Core ├── Elsa.Common.Core.csproj └── EnumerableExtensionsTests.cs ├── Elsa.Http.UnitTests ├── ContentWriters │ ├── ContentFactoryTests.cs │ └── RawStringContentTests.cs └── Elsa.Http.UnitTests.csproj ├── Elsa.Workflows.Core.UnitTests ├── Elsa.Workflows.Core.UnitTests.csproj ├── ExpressionExecutionContextExtensionsTests.cs ├── Flowchart │ ├── FlowGraphExtensions.cs │ └── FlowGraphTests.cs ├── ObjectConversion │ ├── Person.cs │ └── Tests.cs └── Usings.cs └── Elsa.Workflows.Runtime.UnitTests ├── Elsa.Workflows.Runtime.UnitTests.csproj ├── Services └── DefaultWorkflowDefinitionStorePopulatorTests.cs └── Usings.cs /.nuke/parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "./build.schema.json", 3 | "Solution": "Elsa.sln" 4 | } 5 | -------------------------------------------------------------------------------- /build.cmd: -------------------------------------------------------------------------------- 1 | :; set -eo pipefail 2 | :; SCRIPT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd) 3 | :; ${SCRIPT_DIR}/build.sh "$@" 4 | :; exit $? 5 | 6 | @ECHO OFF 7 | powershell -ExecutionPolicy ByPass -NoProfile -File "%~dp0build.ps1" %* 8 | -------------------------------------------------------------------------------- /build/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | false 5 | 6 | 7 | -------------------------------------------------------------------------------- /design/artwork/android-elsa-portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/artwork/android-elsa-portrait.png -------------------------------------------------------------------------------- /design/artwork/creative-elsa-animation.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/artwork/creative-elsa-animation.gif -------------------------------------------------------------------------------- /design/artwork/elsa-3.1-art.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/artwork/elsa-3.1-art.png -------------------------------------------------------------------------------- /design/artwork/elsa-logo-art.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/artwork/elsa-logo-art.png -------------------------------------------------------------------------------- /design/artwork/elsa-logo-art.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/artwork/elsa-logo-art.psd -------------------------------------------------------------------------------- /design/artwork/elsa-v3-avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/artwork/elsa-v3-avatar.png -------------------------------------------------------------------------------- /design/artwork/glass.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/artwork/glass.ai -------------------------------------------------------------------------------- /design/custom/1x/Artboard 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/custom/1x/Artboard 1.png -------------------------------------------------------------------------------- /design/custom/2x/Artboard 1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/custom/2x/Artboard 1@2x.png -------------------------------------------------------------------------------- /design/custom/2x/elsa-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/custom/2x/elsa-logo.png -------------------------------------------------------------------------------- /design/custom/icon.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/custom/icon.ai -------------------------------------------------------------------------------- /design/custom/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/custom/icon.png -------------------------------------------------------------------------------- /design/custom/icon.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/custom/icon.psd -------------------------------------------------------------------------------- /design/github-social-preview-banner-for-elsa.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/github-social-preview-banner-for-elsa.psd -------------------------------------------------------------------------------- /design/icon/dark/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/android-icon-144x144.png -------------------------------------------------------------------------------- /design/icon/dark/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/android-icon-192x192.png -------------------------------------------------------------------------------- /design/icon/dark/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/android-icon-36x36.png -------------------------------------------------------------------------------- /design/icon/dark/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/android-icon-48x48.png -------------------------------------------------------------------------------- /design/icon/dark/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/android-icon-72x72.png -------------------------------------------------------------------------------- /design/icon/dark/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/android-icon-96x96.png -------------------------------------------------------------------------------- /design/icon/dark/apple-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/apple-icon-114x114.png -------------------------------------------------------------------------------- /design/icon/dark/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/apple-icon-120x120.png -------------------------------------------------------------------------------- /design/icon/dark/apple-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/apple-icon-144x144.png -------------------------------------------------------------------------------- /design/icon/dark/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/apple-icon-152x152.png -------------------------------------------------------------------------------- /design/icon/dark/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/apple-icon-180x180.png -------------------------------------------------------------------------------- /design/icon/dark/apple-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/apple-icon-57x57.png -------------------------------------------------------------------------------- /design/icon/dark/apple-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/apple-icon-60x60.png -------------------------------------------------------------------------------- /design/icon/dark/apple-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/apple-icon-72x72.png -------------------------------------------------------------------------------- /design/icon/dark/apple-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/apple-icon-76x76.png -------------------------------------------------------------------------------- /design/icon/dark/apple-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/apple-icon-precomposed.png -------------------------------------------------------------------------------- /design/icon/dark/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/apple-icon.png -------------------------------------------------------------------------------- /design/icon/dark/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | #ffffff -------------------------------------------------------------------------------- /design/icon/dark/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/favicon-16x16.png -------------------------------------------------------------------------------- /design/icon/dark/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/favicon-32x32.png -------------------------------------------------------------------------------- /design/icon/dark/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/favicon-96x96.png -------------------------------------------------------------------------------- /design/icon/dark/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/favicon.ico -------------------------------------------------------------------------------- /design/icon/dark/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/ms-icon-144x144.png -------------------------------------------------------------------------------- /design/icon/dark/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/ms-icon-150x150.png -------------------------------------------------------------------------------- /design/icon/dark/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/ms-icon-310x310.png -------------------------------------------------------------------------------- /design/icon/dark/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/dark/ms-icon-70x70.png -------------------------------------------------------------------------------- /design/icon/light/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/android-icon-144x144.png -------------------------------------------------------------------------------- /design/icon/light/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/android-icon-192x192.png -------------------------------------------------------------------------------- /design/icon/light/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/android-icon-36x36.png -------------------------------------------------------------------------------- /design/icon/light/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/android-icon-48x48.png -------------------------------------------------------------------------------- /design/icon/light/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/android-icon-72x72.png -------------------------------------------------------------------------------- /design/icon/light/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/android-icon-96x96.png -------------------------------------------------------------------------------- /design/icon/light/apple-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/apple-icon-114x114.png -------------------------------------------------------------------------------- /design/icon/light/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/apple-icon-120x120.png -------------------------------------------------------------------------------- /design/icon/light/apple-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/apple-icon-144x144.png -------------------------------------------------------------------------------- /design/icon/light/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/apple-icon-152x152.png -------------------------------------------------------------------------------- /design/icon/light/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/apple-icon-180x180.png -------------------------------------------------------------------------------- /design/icon/light/apple-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/apple-icon-57x57.png -------------------------------------------------------------------------------- /design/icon/light/apple-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/apple-icon-60x60.png -------------------------------------------------------------------------------- /design/icon/light/apple-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/apple-icon-72x72.png -------------------------------------------------------------------------------- /design/icon/light/apple-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/apple-icon-76x76.png -------------------------------------------------------------------------------- /design/icon/light/apple-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/apple-icon-precomposed.png -------------------------------------------------------------------------------- /design/icon/light/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/apple-icon.png -------------------------------------------------------------------------------- /design/icon/light/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | #ffffff -------------------------------------------------------------------------------- /design/icon/light/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/favicon-16x16.png -------------------------------------------------------------------------------- /design/icon/light/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/favicon-32x32.png -------------------------------------------------------------------------------- /design/icon/light/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/favicon-96x96.png -------------------------------------------------------------------------------- /design/icon/light/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/favicon.ico -------------------------------------------------------------------------------- /design/icon/light/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/ms-icon-144x144.png -------------------------------------------------------------------------------- /design/icon/light/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/ms-icon-150x150.png -------------------------------------------------------------------------------- /design/icon/light/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/ms-icon-310x310.png -------------------------------------------------------------------------------- /design/icon/light/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/icon/light/ms-icon-70x70.png -------------------------------------------------------------------------------- /design/logo/40w/Asset 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/40w/Asset 1.png -------------------------------------------------------------------------------- /design/logo/40w/Asset 3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/40w/Asset 3.png -------------------------------------------------------------------------------- /design/logo/40w/Asset 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/40w/Asset 4.png -------------------------------------------------------------------------------- /design/logo/Elsa-20-transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/Elsa-20-transparent.png -------------------------------------------------------------------------------- /design/logo/Elsa.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/Elsa.ai -------------------------------------------------------------------------------- /design/logo/Esla-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/Esla-12.png -------------------------------------------------------------------------------- /design/logo/Esla-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/Esla-13.png -------------------------------------------------------------------------------- /design/logo/Esla-14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/Esla-14.png -------------------------------------------------------------------------------- /design/logo/Esla-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/Esla-15.png -------------------------------------------------------------------------------- /design/logo/Esla-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/Esla-16.png -------------------------------------------------------------------------------- /design/logo/Esla-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/Esla-17.png -------------------------------------------------------------------------------- /design/logo/Esla-18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/Esla-18.png -------------------------------------------------------------------------------- /design/logo/Esla-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/Esla-19.png -------------------------------------------------------------------------------- /design/logo/Esla-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/Esla-20.png -------------------------------------------------------------------------------- /design/logo/Esla-21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/Esla-21.png -------------------------------------------------------------------------------- /design/logo/Esla-22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/Esla-22.png -------------------------------------------------------------------------------- /design/logo/Esla_Source.ai: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/Esla_Source.ai -------------------------------------------------------------------------------- /design/logo/elsa-logo-glass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/logo/elsa-logo-glass.png -------------------------------------------------------------------------------- /design/screenshots/elsa-studio-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/screenshots/elsa-studio-login.png -------------------------------------------------------------------------------- /design/screenshots/http-hello-world-workflow-designer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/screenshots/http-hello-world-workflow-designer.png -------------------------------------------------------------------------------- /design/screenshots/http-send-email-workflow-designer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/design/screenshots/http-send-email-workflow-designer.png -------------------------------------------------------------------------------- /doc/adr/toc.md: -------------------------------------------------------------------------------- 1 | # Architecture Decision Records 2 | 3 | * [1. Record architecture decisions](0001-record-architecture-decisions.md) 4 | * [2. Fault Propagation from Child to Parent Activities](0002-fault-propagation-from-child-to-parent-activities.md) 5 | * [3. Direct Bookmark Management in WorkflowExecutionContext](0003-direct-bookmark-management-in-workflowexecutioncontext.md) -------------------------------------------------------------------------------- /docker/.dockerignore: -------------------------------------------------------------------------------- 1 | **/.dockerignore 2 | **/.env 3 | **/.git 4 | **/.gitignore 5 | **/.project 6 | **/.settings 7 | **/.toolstarget 8 | **/.vs 9 | **/.vscode 10 | **/.idea 11 | **/*.*proj.user 12 | **/*.dbmdl 13 | **/*.jfm 14 | **/azds.yaml 15 | **/bin 16 | **/charts 17 | **/docker-compose* 18 | **/Dockerfile* 19 | **/node_modules 20 | **/npm-debug.log 21 | **/obj 22 | **/secrets.dev.yaml 23 | **/values.dev.yaml 24 | LICENSE 25 | README.md -------------------------------------------------------------------------------- /docker/init-db-postgres.sh: -------------------------------------------------------------------------------- 1 | echo "Starting database initialization" 2 | 3 | psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL 4 | CREATE USER tracelens WITH PASSWORD 'tracelenspass'; 5 | CREATE DATABASE tracelens; 6 | GRANT ALL PRIVILEGES ON DATABASE tracelens TO tracelens; 7 | EOSQL 8 | 9 | echo "Database initialization completed" -------------------------------------------------------------------------------- /docker/setup/oracle-setup/setup.sql: -------------------------------------------------------------------------------- 1 | alter session set "_ORACLE_SCRIPT"=true; 2 | CREATE USER ELSA IDENTIFIED BY elsa; 3 | GRANT ALL PRIVILEGES TO ELSA; -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/elsa-workflows/elsa-core/f6c069fc7816d9c6a53b768842463e3292fa91d3/icon.png -------------------------------------------------------------------------------- /scripts/docker/build-and-run-all-in-one-web-docker.sh: -------------------------------------------------------------------------------- 1 | docker build -t elsa-server:latest -f ../../docker/ElsaServer.Dockerfile . 2 | docker run -t -i -e ASPNETCORE_ENVIRONMENT='Development' -e HTTP_PORTS=8080 -p 13000:8080 elsa-server:local -------------------------------------------------------------------------------- /scripts/docker/docker-run-all-in-one-web.ps1: -------------------------------------------------------------------------------- 1 | docker build -t elsa-all-in-one-web:local -f ./src/apps/all-in-one-web/Dockerfile . 2 | docker run -t -i -e ASPNETCORE_ENVIRONMENT='Development' -p 24000:80 elsa-all-in-one-web:local -------------------------------------------------------------------------------- /scripts/k8s/elsa-server/role-binding.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: RoleBinding 3 | metadata: 4 | name: proto-cluster 5 | roleRef: 6 | apiGroup: rbac.authorization.k8s.io 7 | kind: Role 8 | name: proto-cluster 9 | subjects: 10 | - kind: ServiceAccount 11 | name: proto-cluster # this is the service account that should have the role applied -------------------------------------------------------------------------------- /scripts/k8s/elsa-server/role.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: Role 3 | metadata: 4 | name: proto-cluster 5 | rules: 6 | - apiGroups: 7 | - "" 8 | resources: 9 | - pods 10 | verbs: 11 | - get 12 | - list 13 | - watch 14 | - patch -------------------------------------------------------------------------------- /scripts/k8s/elsa-server/service-account.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: proto-cluster 5 | namespace: default # Ensure the namespace matches your deployment -------------------------------------------------------------------------------- /scripts/k8s/elsa-server/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: elsa-server-service 5 | spec: 6 | type: LoadBalancer 7 | sessionAffinity: None 8 | ports: 9 | - port: 8001 10 | targetPort: 8080 11 | selector: 12 | app: elsa-server 13 | -------------------------------------------------------------------------------- /scripts/k8s/elsa-studio/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: elsa-studio-service 5 | spec: 6 | type: LoadBalancer 7 | sessionAffinity: None 8 | ports: 9 | - port: 9001 10 | targetPort: 8080 11 | selector: 12 | app: elsa-studio 13 | -------------------------------------------------------------------------------- /scripts/k8s/postgres/service.yml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: postgres 5 | labels: 6 | app: postgres 7 | spec: 8 | type: LoadBalancer 9 | ports: 10 | - port: 5432 11 | targetPort: 5432 12 | selector: 13 | app: postgres -------------------------------------------------------------------------------- /scripts/migrations/README.md: -------------------------------------------------------------------------------- 1 | The `ef-migration-runtime-schema` package provides a runtime schema for the Entity Framework Core migrations. This schema is used to generate the migration scripts for the database. 2 | 3 | https://www.nuget.org/packages/ef-migration-runtime-schema -------------------------------------------------------------------------------- /src/apps/Elsa.Server.LoadBalancer/Elsa.Server.LoadBalancer.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/apps/Elsa.Server.LoadBalancer/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/apps/Elsa.Server.LoadBalancer/Program.cs: -------------------------------------------------------------------------------- 1 | var builder = WebApplication.CreateBuilder(args); 2 | builder.Services.AddReverseProxy().LoadFromConfig(builder.Configuration.GetSection("ReverseProxy")); 3 | var app = builder.Build(); 4 | app.MapReverseProxy(); 5 | await app.RunAsync(); -------------------------------------------------------------------------------- /src/apps/Elsa.Server.LoadBalancer/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/apps/Elsa.Server.Web/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/apps/Elsa.ServerAndStudio.Web/Enums/DistributedCachingTransport.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.ServerAndStudio.Web.Enums; 2 | 3 | /// 4 | /// Represents the transport options for distributed caching. 5 | /// 6 | public enum DistributedCachingTransport 7 | { 8 | None, 9 | Memory, 10 | MassTransit 11 | } -------------------------------------------------------------------------------- /src/apps/Elsa.ServerAndStudio.Web/Enums/MassTransitBroker.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.ServerAndStudio.Web.Enums; 2 | 3 | /// 4 | /// Represents the type of messaging broker used in MassTransit. 5 | /// 6 | public enum MassTransitBroker 7 | { 8 | Memory, 9 | AzureServiceBus, 10 | RabbitMq 11 | } -------------------------------------------------------------------------------- /src/apps/Elsa.ServerAndStudio.Web/Enums/SqlDatabaseProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.ServerAndStudio.Web.Enums; 2 | 3 | public enum SqlDatabaseProvider 4 | { 5 | SqlServer, 6 | Sqlite, 7 | MySql, 8 | PostgreSql, 9 | CockroachDb 10 | } -------------------------------------------------------------------------------- /src/apps/Elsa.ServerAndStudio.Web/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/apps/Elsa.Studio.Web/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/apps/ElsaStudioWebAssembly/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/apps/ElsaStudioWebAssembly/MainLayout.razor: -------------------------------------------------------------------------------- 1 | @inherits LayoutComponentBase 2 | 3 |
4 | @Body 5 |
-------------------------------------------------------------------------------- /src/apps/ElsaStudioWebAssembly/README.md: -------------------------------------------------------------------------------- 1 | # Server 2 | 3 | This project represents the Elsa Studio Blazor web assembly application and is hosted by Elsa.AllInOne.Web. -------------------------------------------------------------------------------- /src/apps/ElsaStudioWebAssembly/_Imports.razor: -------------------------------------------------------------------------------- 1 | @using System.Net.Http 2 | @using System.Net.Http.Json 3 | @using Microsoft.AspNetCore.Components.Routing 4 | @using Microsoft.AspNetCore.Components.Web 5 | @using Microsoft.AspNetCore.Components.WebAssembly.Http 6 | @using Microsoft.JSInterop -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/IsExternalInit.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | 3 | // ReSharper disable once CheckNamespace 4 | namespace System.Runtime.CompilerServices; 5 | 6 | [EditorBrowsable(EditorBrowsableState.Never)] 7 | internal sealed class IsExternalInit; -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/RealTime/Messages/WorkflowExecutionLogUpdatedMessage.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.RealTime.Messages; 2 | 3 | /// 4 | /// Represents a message that is sent when the workflow execution log is updated. 5 | /// 6 | public record WorkflowExecutionLogUpdatedMessage(); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/RealTime/Messages/WorkflowInstanceUpdatedMessage.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.RealTime.Messages; 2 | 3 | /// 4 | /// Represents a message that is sent when the workflow instance is updated. 5 | /// 6 | /// The ID of the workflow instance that was updated. 7 | public record WorkflowInstanceUpdatedMessage(string WorkflowInstanceId); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/ActivityDescriptorOptions/Responses/GetActivityDescriptorOptionsResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.ActivityDescriptorOptions.Responses; 2 | /// 3 | /// Represents a response from get activity descriptors Options. 4 | /// 5 | /// The options elements. 6 | public record GetActivityDescriptorOptionsResponse(IDictionary Items); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/ActivityDescriptors/Enums/PortType.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.ActivityDescriptors.Enums; 2 | 3 | /// 4 | /// The type of a port. 5 | /// 6 | public enum PortType 7 | { 8 | /// 9 | /// A port that is embedded in the activity. 10 | /// 11 | Embedded, 12 | 13 | /// 14 | /// A flow port. 15 | /// 16 | Flow 17 | } -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/ActivityDescriptors/Models/OutputDescriptor.cs: -------------------------------------------------------------------------------- 1 | using JetBrains.Annotations; 2 | 3 | namespace Elsa.Api.Client.Resources.ActivityDescriptors.Models; 4 | 5 | /// 6 | /// A descriptor of an activity's output property. 7 | /// 8 | [PublicAPI] 9 | public class OutputDescriptor : PropertyDescriptor 10 | { 11 | } -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/ActivityExecutions/Models/ActivityExecutionReport.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.ActivityExecutions.Models; 2 | 3 | /// 4 | /// Represents a report of activity executions. 5 | /// 6 | /// The activity execution stats. 7 | public record ActivityExecutionReport(ICollection Stats); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/Alterations/Models/AlterationLog.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.Alterations.Models; 2 | 3 | /// 4 | /// Represents a log of alterations. 5 | /// 6 | public class AlterationLog 7 | { 8 | 9 | /// 10 | /// The log entries. 11 | /// 12 | public ICollection LogEntries { get; set; } = new List(); 13 | } -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/Alterations/Responses/SubmitResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.Alterations.Responses; 2 | 3 | /// 4 | /// The response to the "Submit" endpoint 5 | /// 6 | public class SubmitResponse 7 | { 8 | /// 9 | /// The ID of the alteration plan created as part of the Submit request 10 | /// 11 | public string PlanId { get; set; } = string.Empty; 12 | } -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/CommitStrategies/Models/CommitStrategyDescriptor.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.CommitStrategies.Models; 2 | 3 | /// 4 | /// Represents a descriptor for a commit strategy, containing information such as its technical name, 5 | /// display name, and description. 6 | /// 7 | public record CommitStrategyDescriptor(string Name, string DisplayName, string Description); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/Identity/Requests/LoginRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.Identity.Requests; 2 | 3 | /// 4 | /// Represents a request to log in. 5 | /// 6 | /// The username. 7 | /// The password. 8 | public record LoginRequest(string Username, string Password); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/Identity/Responses/LoginResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.Identity.Responses; 2 | 3 | /// 4 | /// The response of logging in. 5 | /// 6 | public record LoginResponse(bool IsAuthenticated, string? AccessToken, string? RefreshToken); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/Package/Models/PackageVersionResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.Package.Models; 2 | 3 | /// 4 | /// Contains the installed package version of Elsa. 5 | /// 6 | /// The installed package version of Elsa. 7 | public record PackageVersionResponse(string PackageVersion); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/Resilience/Models/ResilienceStrategyConfigMode.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.Resilience.Models; 2 | 3 | public enum ResilienceStrategyConfigMode 4 | { 5 | Identifier, 6 | Expression, 7 | } -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/StorageDrivers/Responses/ListStorageDriversResponse.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Api.Client.Resources.StorageDrivers.Models; 2 | 3 | namespace Elsa.Api.Client.Resources.StorageDrivers.Responses; 4 | 5 | /// 6 | /// The response containing the storage drivers. 7 | /// 8 | /// The storage drivers. 9 | public record ListStorageDriversResponse(ICollection Items); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/Tasks/Requests/ReportTaskCompletedRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.Tasks.Requests; 2 | 3 | /// 4 | /// Represents a request to report a task has been completed. 5 | /// 6 | /// The result of the task being reported as completed. 7 | public record ReportTaskCompletedRequest(object? Result); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/VariableTypes/Responses/ListVariableTypesResponse.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Api.Client.Resources.VariableTypes.Models; 2 | 3 | namespace Elsa.Api.Client.Resources.VariableTypes.Responses; 4 | 5 | /// 6 | /// A response containing a list of variable types. 7 | /// 8 | /// A list of variable types. 9 | public record ListVariableTypesResponse(ICollection Items); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/BulkExportWorkflowDefinitionsRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Models; 2 | 3 | /// 4 | /// A request to bulk export workflow definitions. 5 | /// 6 | /// The version IDs of the workflow definitions to export. 7 | public record BulkExportWorkflowDefinitionsRequest(string[] Ids); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/ExecuteResponse.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Api.Client.Resources.WorkflowInstances.Models; 2 | 3 | namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Models; 4 | 5 | public record ExecuteResponse(WorkflowState WorkflowState); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/ImportFilesResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Models; 2 | 3 | /// 4 | /// The response of a file import operation. 5 | /// 6 | /// The number of workflows that were imported. 7 | public record ImportFilesResponse(int Count); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Models/OutputDefinition.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Models; 2 | 3 | /// 4 | /// A definition of a workflow's output. 5 | /// 6 | public class OutputDefinition : ArgumentDefinition 7 | { 8 | } -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Requests/PublishWorkflowDefinitionRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Requests; 2 | 3 | /// 4 | /// Request to publish a workflow definition. 5 | /// 6 | public record PublishWorkflowDefinitionRequest; -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Requests/RetractWorkflowDefinitionRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Requests; 2 | 3 | /// 4 | /// Request to retract a workflow definition. 5 | /// 6 | public record RetractWorkflowDefinitionRequest; -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Requests/UpdateConsumingWorkflowReferencesRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Requests; 2 | 3 | /// 4 | /// Represents a request to update the references of consuming workflow definitions to point to the latest version of the specified definition. 5 | /// 6 | public record UpdateConsumingWorkflowReferencesRequest; -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Responses/BulkDeleteWorkflowDefinitionsResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Responses; 2 | 3 | /// 4 | /// The response from a request to delete workflow definitions. 5 | /// 6 | /// The number of workflow definitions deleted. 7 | public record BulkDeleteWorkflowDefinitionsResponse(long Deleted); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Responses/BulkRetractWorkflowDefinitionsResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Responses; 2 | 3 | /// 4 | /// The response from a request to publish workflow definitions. 5 | /// 6 | public record BulkRetractWorkflowDefinitionsResponse( 7 | ICollection Retracted, 8 | ICollection AlreadyRetracted, 9 | ICollection NotFound); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Responses/CountWorkflowDefinitionsResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Responses; 2 | 3 | /// 4 | /// A response containing the number of workflow definitions. 5 | /// 6 | public record CountWorkflowDefinitionsResponse(long Count); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Responses/ExecuteWorkflowDefinitionResponse.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Api.Client.Resources.WorkflowInstances.Models; 2 | 3 | namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Responses; 4 | 5 | /// 6 | /// A response to a request to execute a workflow definition. 7 | /// 8 | public record ExecuteWorkflowDefinitionResponse(WorkflowState WorkflowState); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Responses/GetIsNameUniqueResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Responses; 2 | 3 | /// 4 | /// A response containing a value indicating whether a workflow definition name is unique. 5 | /// 6 | /// true if the name is unique, otherwise false. 7 | public record GetIsNameUniqueResponse(bool IsUnique); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/WorkflowDefinitions/Responses/GetPathSegmentsResponse.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Api.Client.Shared.Models; 2 | 3 | namespace Elsa.Api.Client.Resources.WorkflowDefinitions.Responses; 4 | 5 | public record GetPathSegmentsResponse(ActivityNode ChildNode, ActivityNode Container, ICollection PathSegments); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/WorkflowInstances/Models/BulkExportWorkflowInstancesRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.WorkflowInstances.Models; 2 | 3 | /// 4 | /// A request to bulk export workflow instances. 5 | /// 6 | /// The version IDs of the workflow instances to export. 7 | public record BulkExportWorkflowInstancesRequest(string[] Ids); 8 | -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/WorkflowInstances/Models/ResolvedVariable.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.WorkflowInstances.Models; 2 | 3 | public record ResolvedVariable(string Id, string Name, object? Value); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/WorkflowInstances/Requests/GetFilteredJournalRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Resources.WorkflowInstances.Requests; 2 | 3 | /// 4 | /// Represents a request to list journal records. 5 | /// 6 | public class GetFilteredJournalRequest 7 | { 8 | /// 9 | /// Gets or sets the filter to apply. 10 | /// 11 | public JournalFilter? Filter { get; set; } 12 | } -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Resources/WorkflowInstances/Responses/BulkDeleteWorkflowInstancesResponse.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json.Serialization; 2 | 3 | namespace Elsa.Api.Client.Resources.WorkflowInstances.Responses; 4 | 5 | internal sealed class BulkDeleteWorkflowInstancesResponse 6 | { 7 | [JsonPropertyName("deleted")] public int DeletedCount { get; } 8 | } -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Shared/Enums/LogPersistenceEvaluationMode.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Shared.Enums; 2 | 3 | public enum LogPersistenceEvaluationMode 4 | { 5 | Strategy, 6 | Expression 7 | } -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Shared/HeaderNames.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Shared; 2 | 3 | /// 4 | /// Contains header names used by the Elsa API. 5 | /// 6 | public static class HeaderNames 7 | { 8 | /// 9 | /// The name of the header that contains the workflow instance ID. 10 | /// 11 | public const string WorkflowInstanceId = "x-elsa-workflow-instance-id"; 12 | } -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Shared/Models/DynamicOutcomesOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Shared.Models; 2 | 3 | /// 4 | /// Options for dynamic outcomes. 5 | /// 6 | /// A list of fixed outcomes that will be appended to the final list of outcomes. 7 | public record DynamicOutcomesOptions(ICollection? FixedOutcomes); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Shared/Models/Entity.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Shared.Models; 2 | 3 | /// 4 | /// Represents an entity. 5 | /// 6 | public abstract class Entity 7 | { 8 | /// 9 | /// Gets or sets the ID of this entity. 10 | /// 11 | public string Id { get; set; } = default!; 12 | } -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Shared/Models/Link.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Shared.Models; 2 | 3 | public record Link(string Href, string Rel, string Method); 4 | -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Shared/Models/ListResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Shared.Models; 2 | 3 | /// 4 | /// Represents a generic list response that offers a unified format for returning list of things from API endpoints. 5 | /// 6 | public record ListResponse(ICollection Items, long Count); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Shared/Models/LogPersistenceConfiguration.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Api.Client.Resources.Scripting.Models; 2 | using Elsa.Api.Client.Shared.Enums; 3 | 4 | namespace Elsa.Api.Client.Shared.Models; 5 | 6 | public class LogPersistenceConfiguration 7 | { 8 | public LogPersistenceEvaluationMode EvaluationMode { get; set; } 9 | public string? StrategyType { get; set; } 10 | public Expression? Expression { get; set; } 11 | } -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Shared/Models/MemoryReference.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Shared.Models; 2 | 3 | /// 4 | /// Represents a reference to a memory block. 5 | /// 6 | public class MemoryReference 7 | { 8 | /// 9 | /// Gets or sets the ID of the memory block being referenced. 10 | /// 11 | public string Id { get; set; } = default!; 12 | } -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Shared/Models/OrderDirection.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Shared.Models; 2 | 3 | /// 4 | /// The order direction. 5 | /// 6 | public enum OrderDirection 7 | { 8 | /// 9 | /// Ascending order. 10 | /// 11 | Ascending, 12 | 13 | /// 14 | /// 15 | /// 16 | Descending 17 | } -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Shared/UIHints/CheckList/CheckList.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Shared.UIHints.CheckList; 2 | 3 | public record CheckList(IEnumerable Items, bool IsFlagsEnum = false); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Shared/UIHints/CheckList/CheckListProps.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Shared.UIHints.CheckList; 2 | 3 | public class CheckListProps 4 | { 5 | /// 6 | /// The select list. 7 | /// 8 | public CheckList? CheckList { get; set; } 9 | } -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Shared/UIHints/CodeEditor/MultiLineOptions.cs: -------------------------------------------------------------------------------- 1 | using JetBrains.Annotations; 2 | 3 | namespace Elsa.Api.Client.Shared.UIHints.CodeEditor; 4 | 5 | /// 6 | /// Options for the multi-line editor component. 7 | /// 8 | /// The height of the editor. 9 | [PublicAPI] 10 | public record MultiLineOptions(EditorHeight EditorHeight); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Shared/UIHints/DropDown/SelectList.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Shared.UIHints.DropDown; 2 | 3 | /// 4 | /// Represents a list of select list items. 5 | /// 6 | /// The items. 7 | /// Whether the select list represents a flags enum. 8 | public record SelectList(ICollection Items, bool IsFlagsEnum = false); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Shared/UIHints/DropDown/SelectListItem.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Shared.UIHints.DropDown; 2 | 3 | /// 4 | /// Represents an item in a . 5 | /// 6 | public record SelectListItem(string Text, string Value); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Shared/UIHints/RadioList/RadioList.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Shared.UIHints.RadioList; 2 | 3 | public record RadioList(IEnumerable Items, bool IsFlagsEnum = false); -------------------------------------------------------------------------------- /src/clients/Elsa.Api.Client/Shared/UIHints/RadioList/RadioListProps.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Api.Client.Shared.UIHints.RadioList; 2 | 3 | public class RadioListProps 4 | { 5 | /// 6 | /// The select list. 7 | /// 8 | public RadioList? RadioList { get; set; } 9 | } -------------------------------------------------------------------------------- /src/common/Elsa.Api.Common/EndpointSecurityOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa; 2 | 3 | public static class EndpointSecurityOptions 4 | { 5 | public static string AdminRoleName = "Admin"; 6 | public static string ReaderRoleName = "Reader"; 7 | public static string WriteRoleName = "Writer"; 8 | public static bool SecurityIsEnabled = true; 9 | 10 | public static void DisableSecurity() => SecurityIsEnabled = false; 11 | } -------------------------------------------------------------------------------- /src/common/Elsa.Api.Common/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/common/Elsa.Api.Common/Models/CountResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Models; 2 | 3 | /// 4 | /// Represents a count response that offers a unified format for returning count of things from API endpoints. 5 | /// 6 | /// The number of items found for a given query. 7 | public record CountResponse(long Count); -------------------------------------------------------------------------------- /src/common/Elsa.Api.Common/Models/LinkedResource.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Models; 2 | 3 | public record LinkedResource(Link[] Links) 4 | { 5 | public LinkedResource() : this([]) { } 6 | } 7 | 8 | public record Link(string Href, string Rel, string Method); -------------------------------------------------------------------------------- /src/common/Elsa.Api.Common/Models/ValidateCredentialsResult.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Models; 2 | 3 | public record ValidateCredentialsResult(bool IsValid, object? Context = null) 4 | { 5 | public static ValidateCredentialsResult Invalid() => new(false); 6 | public static ValidateCredentialsResult Valid(object? context = null) => new(true, context); 7 | } -------------------------------------------------------------------------------- /src/common/Elsa.Api.Common/PermissionNames.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa; 2 | 3 | public static class PermissionNames 4 | { 5 | public const string All = "*"; 6 | } -------------------------------------------------------------------------------- /src/common/Elsa.Features/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/common/Elsa.Mediator/Channels/CommandsChannel.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Abstractions; 2 | using Elsa.Mediator.Contracts; 3 | 4 | namespace Elsa.Mediator.Channels; 5 | 6 | /// 7 | public class CommandsChannel : ChannelBase, ICommandsChannel 8 | { 9 | } -------------------------------------------------------------------------------- /src/common/Elsa.Mediator/Channels/JobsChannel.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Abstractions; 2 | using Elsa.Mediator.Contracts; 3 | using Elsa.Mediator.Models; 4 | 5 | namespace Elsa.Mediator.Channels; 6 | 7 | /// 8 | public class JobsChannel : ChannelBase, IJobsChannel 9 | { 10 | } -------------------------------------------------------------------------------- /src/common/Elsa.Mediator/Channels/NotificationsChannel.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Abstractions; 2 | using Elsa.Mediator.Contracts; 3 | 4 | namespace Elsa.Mediator.Channels; 5 | 6 | /// 7 | public class NotificationsChannel : ChannelBase, INotificationsChannel 8 | { 9 | } -------------------------------------------------------------------------------- /src/common/Elsa.Mediator/Contracts/ICommand.cs: -------------------------------------------------------------------------------- 1 | using JetBrains.Annotations; 2 | 3 | namespace Elsa.Mediator.Contracts; 4 | 5 | /// 6 | /// Represents a command. 7 | /// 8 | [PublicAPI] 9 | public interface ICommand 10 | { 11 | } 12 | 13 | /// 14 | /// Represents a command. 15 | /// 16 | /// The type of the result. 17 | [PublicAPI] 18 | public interface ICommand : ICommand 19 | { 20 | } -------------------------------------------------------------------------------- /src/common/Elsa.Mediator/Contracts/IMediator.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Mediator.Contracts; 2 | 3 | /// 4 | /// Represents a mediator that can send requests, commands and publish events. 5 | /// 6 | public interface IMediator : IRequestSender, ICommandSender, INotificationSender 7 | { 8 | } -------------------------------------------------------------------------------- /src/common/Elsa.Mediator/Contracts/INotification.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Mediator.Contracts; 2 | 3 | /// 4 | /// Represents a notification. 5 | /// 6 | public interface INotification 7 | { 8 | } -------------------------------------------------------------------------------- /src/common/Elsa.Mediator/Contracts/IRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Mediator.Contracts; 2 | 3 | /// 4 | /// Represents a request. 5 | /// 6 | public interface IRequest 7 | { 8 | } 9 | 10 | /// 11 | /// Represents a request. 12 | /// 13 | /// The type of the response. 14 | public interface IRequest : IRequest 15 | { 16 | } -------------------------------------------------------------------------------- /src/common/Elsa.Mediator/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/common/Elsa.Mediator/Middleware/Command/CommandMiddlewareDelegate.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Mediator.Middleware.Command; 2 | 3 | /// 4 | /// Represents a command middleware delegate. 5 | /// 6 | public delegate ValueTask CommandMiddlewareDelegate(CommandContext context); -------------------------------------------------------------------------------- /src/common/Elsa.Mediator/Middleware/Command/Contracts/ICommandMiddleware.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Mediator.Middleware.Command.Contracts; 2 | 3 | /// 4 | /// Represents a command middleware. 5 | /// 6 | public interface ICommandMiddleware 7 | { 8 | /// 9 | /// Invokes the middleware. 10 | /// 11 | /// The command context. 12 | ValueTask InvokeAsync(CommandContext context); 13 | } -------------------------------------------------------------------------------- /src/common/Elsa.Mediator/Middleware/Notification/NotificationMiddlewareDelegate.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Mediator.Middleware.Notification; 2 | 3 | /// 4 | /// Represents a delegate for a notification middleware. 5 | /// 6 | public delegate ValueTask NotificationMiddlewareDelegate(NotificationContext context); -------------------------------------------------------------------------------- /src/common/Elsa.Mediator/Middleware/Request/RequestMiddlewareDelegate.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Mediator.Middleware.Request; 2 | 3 | /// 4 | /// Represents a delegate for a request middleware. 5 | /// 6 | public delegate ValueTask RequestMiddlewareDelegate(RequestContext context); -------------------------------------------------------------------------------- /src/common/Elsa.Mediator/Models/Unit.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Mediator.Models; 2 | 3 | /// 4 | /// Represents a void result. 5 | /// 6 | public record Unit 7 | { 8 | /// 9 | /// Gets the singleton instance of . 10 | /// 11 | public static readonly Unit Instance = new(); 12 | } -------------------------------------------------------------------------------- /src/common/Elsa.Testing.Shared.Component/EventArgs/TriggerChangeTokenSignalEventArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Testing.Shared; 2 | 3 | public class TriggerChangeTokenSignalEventArgs(string key) : EventArgs 4 | { 5 | public string Key { get; } = key; 6 | } -------------------------------------------------------------------------------- /src/common/Elsa.Testing.Shared.Component/EventArgs/WorkflowDefinitionDeletedEventArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Testing.Shared; 2 | 3 | public class WorkflowDefinitionDeletedEventArgs(string definitionId) : EventArgs 4 | { 5 | public string DefinitionId { get; } = definitionId; 6 | } -------------------------------------------------------------------------------- /src/common/Elsa.Testing.Shared.Component/EventArgs/WorkflowFinishedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Activities; 2 | using Elsa.Workflows.State; 3 | 4 | namespace Elsa.Testing.Shared; 5 | 6 | public class WorkflowFinishedEventArgs(Workflow workflow, WorkflowState workflowState) : EventArgs 7 | { 8 | public Workflow Workflow { get; } = workflow; 9 | public WorkflowState WorkflowState { get; } = workflowState; 10 | } -------------------------------------------------------------------------------- /src/common/Elsa.Testing.Shared.Component/EventArgs/WorkflowInstanceSavedEventArgs.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Management.Entities; 2 | 3 | namespace Elsa.Testing.Shared; 4 | 5 | public class WorkflowInstanceSavedEventArgs(WorkflowInstance workflowInstance) : EventArgs 6 | { 7 | public WorkflowInstance WorkflowInstance { get; } = workflowInstance; 8 | } -------------------------------------------------------------------------------- /src/common/Elsa.Testing.Shared.Component/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/common/Elsa.Testing.Shared.Component/Services/StaticValueHolder.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Testing.Shared.Services; 2 | 3 | public static class StaticValueHolder 4 | { 5 | public static object? Value { get; set; } 6 | } 7 | -------------------------------------------------------------------------------- /src/common/Elsa.Testing.Shared.Component/Services/TestTenantResolver.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Common.Multitenancy; 2 | 3 | namespace Elsa.Testing.Shared.Services; 4 | 5 | public class TestTenantResolver : TenantResolverBase 6 | { 7 | protected override TenantResolverResult Resolve(TenantResolverContext context) 8 | { 9 | return AutoResolve("Tenant1"); 10 | } 11 | } -------------------------------------------------------------------------------- /src/common/Elsa.Testing.Shared.Component/Services/TriggerChangeTokenSignalEvents..cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Testing.Shared.Services; 2 | 3 | public class TriggerChangeTokenSignalEvents 4 | { 5 | public event EventHandler? ChangeTokenSignalTriggered; 6 | public void RaiseChangeTokenSignalTriggered(TriggerChangeTokenSignalEventArgs args) => ChangeTokenSignalTriggered?.Invoke(this, args); 7 | } -------------------------------------------------------------------------------- /src/common/Elsa.Testing.Shared.Component/Services/WorkflowDefinitionEvents.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Testing.Shared.Services; 2 | 3 | public class WorkflowDefinitionEvents 4 | { 5 | public event EventHandler? WorkflowDefinitionDeleted; 6 | public void OnWorkflowDefinitionDeleted(WorkflowDefinitionDeletedEventArgs args) => WorkflowDefinitionDeleted?.Invoke(this, args); 7 | } -------------------------------------------------------------------------------- /src/common/Elsa.Testing.Shared.Integration/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/common/Elsa.Testing.Shared/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Caching/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Caching/Options/CachingOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Caching.Options; 2 | 3 | /// 4 | /// Provides options for configuring caching. 5 | /// 6 | public class CachingOptions 7 | { 8 | /// 9 | /// Gets or sets the duration for which cache entries are stored. 10 | /// 11 | public TimeSpan CacheDuration { get; set; } = TimeSpan.FromMinutes(1); 12 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Attributes/ForwardedTypeAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common; 2 | 3 | /// 4 | /// Helps to forward types to new types when deserializing JSON containing types that have been renamed and or moved to a different namespace. 5 | /// 6 | /// The new type to forward to. 7 | public class ForwardedTypeAttribute(Type type) : Attribute 8 | { 9 | public Type NewType { get; set; } = type; 10 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Contracts/BackgroundTask.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common; 2 | 3 | public abstract class BackgroundTask : IBackgroundTask 4 | { 5 | public virtual Task ExecuteAsync(CancellationToken cancellationToken) => Task.CompletedTask; 6 | public virtual Task StartAsync(CancellationToken cancellationToken) => Task.CompletedTask; 7 | public virtual Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask; 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Contracts/IBackgroundTask.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common; 2 | 3 | /// 4 | /// Represents a task that is executed in the background. 5 | /// In multi-tenant applications, this task is executed for each tenant. 6 | /// 7 | public interface IBackgroundTask : ITask 8 | { 9 | Task StartAsync(CancellationToken cancellationToken); 10 | Task StopAsync(CancellationToken cancellationToken); 11 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Contracts/ICompressionCodecResolver.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common; 2 | 3 | /// 4 | /// Resolves a from its name. 5 | /// 6 | public interface ICompressionCodecResolver 7 | { 8 | /// 9 | /// Resolves a from its name. 10 | /// 11 | ICompressionCodec Resolve(string name); 12 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Contracts/ILogRecord.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common; 2 | 3 | /// 4 | /// Represents a log record. 5 | /// 6 | public interface ILogRecord; -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Contracts/IRecurringTask.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common; 2 | 3 | /// 4 | /// Represents a recurring task that is executed in the background. 5 | /// In multi-tenant applications, this task is executed for each tenant. 6 | /// 7 | public interface IRecurringTask : ITask 8 | { 9 | Task StartAsync(CancellationToken cancellationToken); 10 | Task StopAsync(CancellationToken cancellationToken); 11 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Contracts/IStartupTask.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common; 2 | 3 | /// 4 | /// Represents a task that is executed during application startup. 5 | /// In multi-tenant applications, this task is executed for each tenant. 6 | /// 7 | public interface IStartupTask : ITask 8 | { 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Contracts/ISystemClock.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common; 2 | 3 | /// 4 | /// Represents a system clock. 5 | /// 6 | public interface ISystemClock 7 | { 8 | /// 9 | /// Gets the current date and time in UTC. 10 | /// 11 | DateTimeOffset UtcNow { get; } 12 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Contracts/ITask.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common; 2 | 3 | public interface ITask 4 | { 5 | Task ExecuteAsync(CancellationToken cancellationToken); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Contracts/RecurringTask.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common; 2 | 3 | public abstract class RecurringTask : IRecurringTask 4 | { 5 | public virtual Task ExecuteAsync(CancellationToken cancellationToken) => Task.CompletedTask; 6 | public virtual Task StartAsync(CancellationToken cancellationToken) => Task.CompletedTask; 7 | public virtual Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask; 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Entities/ManagedEntity.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.Entities; 2 | 3 | /// 4 | /// An entity that maintains a "created" timestamp. 5 | /// 6 | public abstract class ManagedEntity : Entity 7 | { 8 | public DateTimeOffset CreatedAt { get; set; } 9 | public DateTimeOffset UpdatedAt { get; set; } 10 | public string? Owner { get; set; } 11 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Entities/OrderDirection.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.Entities; 2 | 3 | /// 4 | /// The order direction. 5 | /// 6 | public enum OrderDirection 7 | { 8 | /// 9 | /// Ascending order. 10 | /// 11 | Ascending, 12 | 13 | /// 14 | /// 15 | /// 16 | Descending 17 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Exceptions/MissingConfigurationException.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.Exceptions; 2 | 3 | /// 4 | /// Configuration is missing. 5 | /// 6 | public class MissingConfigurationException : Exception 7 | { 8 | /// 9 | public MissingConfigurationException(string message) : base(message) 10 | { 11 | } 12 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Multitenancy/Contracts/IBackgroundTaskStarter.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.Multitenancy; 2 | 3 | public interface IBackgroundTaskStarter 4 | { 5 | Task StartAsync(IBackgroundTask task, CancellationToken cancellationToken); 6 | Task StopAsync(IBackgroundTask task, CancellationToken cancellationToken); 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Multitenancy/Contracts/ITaskExecutor.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.Multitenancy; 2 | 3 | public interface ITaskExecutor 4 | { 5 | Task ExecuteTaskAsync(ITask task, CancellationToken cancellationToken); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Multitenancy/Contracts/ITenantAccessor.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.Multitenancy; 2 | 3 | public interface ITenantAccessor 4 | { 5 | /// 6 | /// Get the current . 7 | /// 8 | /// Current tenant or null. 9 | Tenant? Tenant { get; } 10 | 11 | IDisposable PushContext(Tenant? tenant); 12 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Multitenancy/Contracts/ITenantActivatedEvent.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.Multitenancy; 2 | 3 | public interface ITenantActivatedEvent 4 | { 5 | Task TenantActivatedAsync(TenantActivatedEventArgs args); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Multitenancy/Contracts/ITenantDeactivatedEvent.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.Multitenancy; 2 | 3 | public interface ITenantDeactivatedEvent 4 | { 5 | Task TenantDeactivatedAsync(TenantDeactivatedEventArgs args); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Multitenancy/Contracts/ITenantFinder.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.Multitenancy; 2 | 3 | public interface ITenantFinder 4 | { 5 | Task FindByIdAsync(string tenantId, CancellationToken cancellationToken = default); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Multitenancy/Contracts/ITenantScopeFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.Multitenancy; 2 | 3 | public interface ITenantScopeFactory 4 | { 5 | /// 6 | /// Creates a new tenant scope. 7 | /// 8 | /// The tenant. 9 | /// The tenant scope. 10 | TenantScope CreateScope(Tenant? tenant); 11 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Multitenancy/EventArgs/TenantActivatedEventArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.Multitenancy; 2 | 3 | public record TenantActivatedEventArgs(Tenant Tenant, TenantScope TenantScope, CancellationToken CancellationToken) : TenantEventArgs(Tenant, TenantScope, CancellationToken); -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Multitenancy/EventArgs/TenantDeactivatedEventArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.Multitenancy; 2 | 3 | public record TenantDeactivatedEventArgs(Tenant Tenant, TenantScope TenantScope, CancellationToken CancellationToken) : TenantEventArgs(Tenant, TenantScope, CancellationToken); -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Multitenancy/EventArgs/TenantEventArgs.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.Multitenancy; 2 | 3 | public record TenantEventArgs(Tenant Tenant, TenantScope TenantScope, CancellationToken CancellationToken); -------------------------------------------------------------------------------- /src/modules/Elsa.Common/RecurringTasks/CronSchedule.cs: -------------------------------------------------------------------------------- 1 | using Cronos; 2 | 3 | namespace Elsa.Common.RecurringTasks; 4 | 5 | public class CronSchedule(ISystemClock systemClock, CronExpression expression) : ISchedule 6 | { 7 | public ScheduledTimer CreateTimer(Func action) 8 | { 9 | return new ScheduledTimer(action, () => expression.GetNextOccurrence(systemClock.UtcNow.DateTime)!.Value - systemClock.UtcNow.DateTime); 10 | } 11 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/RecurringTasks/ISchedule.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.RecurringTasks; 2 | 3 | public interface ISchedule 4 | { 5 | ScheduledTimer CreateTimer(Func action); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/RecurringTasks/IntervalExpressionType.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.RecurringTasks; 2 | 3 | public enum IntervalExpressionType 4 | { 5 | Cron, 6 | Interval 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/RecurringTasks/IntervalSchedule.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.RecurringTasks; 2 | 3 | public class IntervalSchedule(TimeSpan interval) : ISchedule 4 | { 5 | public ScheduledTimer CreateTimer(Func action) 6 | { 7 | return new ScheduledTimer(action, () => interval); 8 | } 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/RecurringTasks/OrderAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.RecurringTasks; 2 | 3 | /// 4 | /// Configures a task with a priority. 5 | /// 6 | [AttributeUsage(AttributeTargets.Class)] 7 | public class OrderAttribute(float order) : Attribute 8 | { 9 | public float Order { get; } = order; 10 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/RecurringTasks/RecurringTaskOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.RecurringTasks; 2 | 3 | public class RecurringTaskOptions 4 | { 5 | public RecurringTaskSchedule Schedule { get; } = new(); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/RecurringTasks/SingleNodeTaskAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.RecurringTasks; 2 | 3 | /// 4 | /// Configures a task to be executed on a single node in a multi-node environment. 5 | /// 6 | [AttributeUsage(AttributeTargets.Class)] 7 | public class SingleNodeTaskAttribute : Attribute; -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Serialization/TypeAliasRegistry.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.Serialization; 2 | 3 | public static class TypeAliasRegistry 4 | { 5 | public static Dictionary TypeAliases { get; } = new(); 6 | 7 | public static void RegisterAlias(string alias, Type type) => TypeAliases[alias] = type; 8 | 9 | public static Type? GetType(string alias) => TypeAliases.GetValueOrDefault(alias); 10 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Common/Services/SystemClock.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Common.Services; 2 | 3 | /// 4 | public class SystemClock : ISystemClock 5 | { 6 | /// 7 | public DateTimeOffset UtcNow => DateTimeOffset.UtcNow; 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions.CSharp/Activities/RunCSharp/RunCSharpOptionsProvider.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using Elsa.Workflows.UIHints.CodeEditor; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace Elsa.Expressions.CSharp.Activities; 6 | 7 | internal class RunCSharpOptionsProvider : CodeEditorOptionsProviderBase 8 | { 9 | protected override string GetLanguage(PropertyInfo propertyInfo, object? context) => "csharp"; 10 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions.CSharp/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions.JavaScript.Libraries/ClientLib/src/lodash.js: -------------------------------------------------------------------------------- 1 | module.exports = require('lodash'); -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions.JavaScript.Libraries/ClientLib/src/lodashFp.js: -------------------------------------------------------------------------------- 1 | module.exports = require('lodash/fp'); -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions.JavaScript.Libraries/ClientLib/src/moment.js: -------------------------------------------------------------------------------- 1 | module.exports = require('moment'); -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions.JavaScript.Libraries/Features/LodashFeature.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Features.Services; 2 | 3 | namespace Elsa.Expressions.JavaScript.Libraries; 4 | 5 | public class LodashFeature(IModule module) : ScriptModuleFeatureBase("lodash", module); -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions.JavaScript.Libraries/Features/LodashFpFeature.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Features.Services; 2 | 3 | namespace Elsa.Expressions.JavaScript.Libraries; 4 | 5 | public class LodashFpFeature(IModule module) : ScriptModuleFeatureBase("lodashFp", module); -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions.JavaScript.Libraries/Features/MomentFeature.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Features.Services; 2 | 3 | namespace Elsa.Expressions.JavaScript.Libraries; 4 | 5 | public class MomentFeature(IModule module) : ScriptModuleFeatureBase("moment", module); -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions.JavaScript.Libraries/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions.JavaScript/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions.JavaScript/Helpers/VariableNameValidator.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Expressions.JavaScript.Helpers; 2 | 3 | public static class VariableNameValidator 4 | { 5 | public static bool IsValidVariableName(string name) 6 | { 7 | return !string.IsNullOrWhiteSpace(name) && name.All(char.IsLetterOrDigit); 8 | } 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions.JavaScript/TypeDefinitions/Models/TypeDefinitionContext.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Models; 2 | 3 | namespace Elsa.Expressions.JavaScript.TypeDefinitions.Models; 4 | 5 | /// 6 | /// Provides context to intellisense providers. 7 | /// 8 | public record TypeDefinitionContext(WorkflowGraph WorkflowGraph, string? ActivityTypeName, string? PropertyName, CancellationToken CancellationToken); -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions.Liquid/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions.Liquid/Helpers/LiquidActivityModel.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows; 2 | 3 | namespace Elsa.Expressions.Liquid.Helpers; 4 | 5 | /// 6 | /// A model that is passed to Liquid templates when rendering an activity. 7 | /// 8 | public record LiquidActivityModel(ActivityExecutionContext ActivityExecutionContext, string? ActivityName, string? ActivityId) 9 | { 10 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions.Liquid/Notifications/RenderingLiquidTemplate.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Expressions.Models; 2 | using Elsa.Mediator.Contracts; 3 | using Fluid; 4 | 5 | namespace Elsa.Expressions.Liquid.Notifications; 6 | 7 | public record RenderingLiquidTemplate(TemplateContext TemplateContext, ExpressionExecutionContext Context) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions.Python/Activities/RunPython/RunPythonOptionsProvider.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using Elsa.Workflows.UIHints.CodeEditor; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace Elsa.Expressions.Python.Activities; 6 | 7 | internal class RunPythonOptionsProvider : CodeEditorOptionsProviderBase 8 | { 9 | protected override string GetLanguage(PropertyInfo propertyInfo, object? context) => "python"; 10 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions.Python/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Expressions/Models/ExpressionSerializationContext.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json; 2 | 3 | namespace Elsa.Expressions.Models; 4 | 5 | /// 6 | /// Defines the context for expression serialization. 7 | /// 8 | public record ExpressionSerializationContext(string ExpressionType, JsonElement JsonElement, JsonSerializerOptions Options, Type MemoryBlockType); -------------------------------------------------------------------------------- /src/modules/Elsa.Hosting.Management/Contracts/IApplicationInstanceNameProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Hosting.Management.Contracts; 2 | 3 | /// 4 | /// Provides a name of the current application instance. 5 | /// 6 | public interface IApplicationInstanceNameProvider 7 | { 8 | /// 9 | /// Returns a name for the instance. 10 | /// 11 | public string GetName(); 12 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Hosting.Management/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Hosting.Management/Notifications/HeartbeatTimedOut.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | 3 | namespace Elsa.Hosting.Management.Notifications; 4 | 5 | public record HeartbeatTimedOut(string InstanceName) : INotification; 6 | -------------------------------------------------------------------------------- /src/modules/Elsa.Http/Constants/HttpFaultCategories.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Http; 2 | 3 | public static class HttpFaultCategories 4 | { 5 | public const string Http = "HTTP"; 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Http/Constants/HttpFaultCodes.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Http; 2 | 3 | public static class HttpFaultCodes 4 | { 5 | public const string NoHttpContext = "NoHttpContext"; 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Http/Contexts/HttpEndpointRouteProviderContext.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Http.Bookmarks; 2 | using JetBrains.Annotations; 3 | 4 | namespace Elsa.Http.Contexts; 5 | 6 | [UsedImplicitly] 7 | public record HttpEndpointRouteProviderContext(HttpEndpointBookmarkPayload Payload, string? TenantId, CancellationToken CancellationToken); -------------------------------------------------------------------------------- /src/modules/Elsa.Http/Contexts/HttpResponseParserContext.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Http.Contexts; 2 | 3 | /// 4 | /// Represents the context in which an HTTP response is being parsed. 5 | /// 6 | public record HttpResponseParserContext(Stream Content, string ContentType, Type? ReturnType, IDictionary Headers, CancellationToken CancellationToken); -------------------------------------------------------------------------------- /src/modules/Elsa.Http/Contracts/IFileCacheStorageProvider.cs: -------------------------------------------------------------------------------- 1 | using FluentStorage.Blobs; 2 | 3 | namespace Elsa.Http; 4 | 5 | /// 6 | /// Represents a provider of a file cache storage. 7 | /// 8 | public interface IFileCacheStorageProvider 9 | { 10 | /// 11 | /// Gets the storage. 12 | /// 13 | /// 14 | IBlobStorage GetStorage(); 15 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Http/Contracts/IHttpEndpointBasePathProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Http; 2 | 3 | public interface IHttpEndpointBasePathProvider 4 | { 5 | string GetBasePath(); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Http/Contracts/IHttpEndpointFaultHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Http; 2 | 3 | /// 4 | /// Implement this to control what to return to the client in case an unhandled exception occurs while executing the workflow. 5 | /// 6 | public interface IHttpEndpointFaultHandler 7 | { 8 | ValueTask HandleAsync(HttpEndpointFaultContext context); 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Http/Contracts/IHttpEndpointRoutesProvider.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Http.Contexts; 2 | 3 | namespace Elsa.Http; 4 | 5 | public interface IHttpEndpointRoutesProvider 6 | { 7 | Task> GetRoutesAsync(HttpEndpointRouteProviderContext context); 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Http/Exceptions/HttpBadRequestException.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Http.Exceptions; 2 | 3 | /// 4 | /// Exception thrown when a bad request is received. 5 | /// 6 | public class HttpBadRequestException : Exception 7 | { 8 | /// 9 | public HttpBadRequestException(string message, Exception exception) : base(message, exception) 10 | { 11 | } 12 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Http/Extensions/StringArrayExtensions.cs: -------------------------------------------------------------------------------- 1 | // ReSharper disable once CheckNamespace 2 | 3 | namespace Elsa.Extensions; 4 | 5 | public static class StringArrayExtensions 6 | { 7 | public static string JoinSegments(this IEnumerable segments, string separator = "/") 8 | { 9 | return string.Join(separator, segments.Where(x => !string.IsNullOrWhiteSpace(x)).Select(x => x!.Trim('/'))); 10 | } 11 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Http/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Http/HttpStimulusNames.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Http; 2 | 3 | public class HttpStimulusNames 4 | { 5 | public const string HttpEndpoint = "Elsa.HttpEndpoint"; 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Http/Models/AuthorizeHttpEndpointContext.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Activities; 2 | using Microsoft.AspNetCore.Http; 3 | 4 | namespace Elsa.Http; 5 | 6 | /// 7 | /// Represents the context for authorizing an HTTP endpoint. 8 | /// 9 | public record AuthorizeHttpEndpointContext(HttpContext HttpContext, Workflow Workflow, string? Policy = default); -------------------------------------------------------------------------------- /src/modules/Elsa.Http/Models/EventTokenPayload.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Http; 2 | 3 | /// 4 | /// Represents the payload of an event, serialized as a secured token. 5 | /// 6 | /// The name of the event. 7 | /// The ID of the workflow instance to trigger with the event. 8 | public record EventTokenPayload(string EventName, string WorkflowInstanceId); -------------------------------------------------------------------------------- /src/modules/Elsa.Http/Models/HttpWorkflowLookupResult.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Models; 2 | using Elsa.Workflows.Runtime.Entities; 3 | 4 | namespace Elsa.Http; 5 | 6 | /// 7 | /// Represents the result of a workflow lookup. 8 | /// 9 | public record HttpWorkflowLookupResult(WorkflowGraph? WorkflowGraph, ICollection Triggers); -------------------------------------------------------------------------------- /src/modules/Elsa.Identity/Constants/CustomClaimTypes.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Identity.Constants; 2 | 3 | /// 4 | /// Constants for claims. 5 | /// 6 | public static class CustomClaimTypes 7 | { 8 | /// 9 | /// The tenant ID claim. 10 | /// 11 | public const string TenantId = "http://schemas.microsoft.com/identity/claims/tenantid"; 12 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Identity/Contracts/IAccessTokenIssuer.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Identity.Entities; 2 | using Elsa.Identity.Models; 3 | 4 | namespace Elsa.Identity.Contracts; 5 | 6 | public interface IAccessTokenIssuer 7 | { 8 | ValueTask IssueTokensAsync(User user, CancellationToken cancellationToken = default); 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Identity/Contracts/IClientIdGenerator.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Identity.Contracts; 2 | 3 | /// 4 | /// Represents a generator of client identifiers. 5 | /// 6 | public interface IClientIdGenerator 7 | { 8 | /// 9 | /// Generates a short identifier. 10 | /// 11 | /// The client ID. 12 | Task GenerateAsync(CancellationToken cancellationToken = default); 13 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Identity/Contracts/IRandomStringGenerator.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Identity.Contracts; 2 | 3 | /// 4 | /// Represents a generator of random strings. 5 | /// 6 | public interface IRandomStringGenerator 7 | { 8 | /// 9 | /// Generates a short identifier. 10 | /// 11 | /// The client ID. 12 | string Generate(int length = 32, char[]? chars = null); 13 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Identity/Contracts/ISecretGenerator.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Identity.Contracts; 2 | 3 | /// 4 | /// Generates secrets. 5 | /// 6 | public interface ISecretGenerator 7 | { 8 | /// 9 | /// Generates a secret. 10 | /// 11 | /// The length of the secret. 12 | /// The secret. 13 | string Generate(int length = 32); 14 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Identity/Endpoints/Login/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Identity.Endpoints.Login; 2 | 3 | public class Request 4 | { 5 | public string Username { get; set; } = null!; 6 | public string Password { get; set; } = null!; 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Identity/Endpoints/Login/RequestValidator.cs: -------------------------------------------------------------------------------- 1 | using FastEndpoints; 2 | using FluentValidation; 3 | using JetBrains.Annotations; 4 | 5 | namespace Elsa.Identity.Endpoints.Login; 6 | 7 | [PublicAPI] 8 | internal class RequestValidator : Validator 9 | { 10 | public RequestValidator() 11 | { 12 | RuleFor(x => x.Username).NotNull(); 13 | RuleFor(x => x.Password).NotNull(); 14 | } 15 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Identity/Endpoints/Roles/Create/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Identity.Endpoints.Roles.Create; 2 | 3 | internal class Request 4 | { 5 | public string? Id { get; set; } = null!; 6 | public string Name { get; set; } = null!; 7 | public ICollection? Permissions { get; set; } 8 | } 9 | 10 | internal record Response( 11 | string Id, 12 | string Name, 13 | ICollection Permissions 14 | ); -------------------------------------------------------------------------------- /src/modules/Elsa.Identity/Endpoints/Secrets/Hash/Validators.cs: -------------------------------------------------------------------------------- 1 | using FastEndpoints; 2 | using FluentValidation; 3 | using JetBrains.Annotations; 4 | 5 | namespace Elsa.Identity.Endpoints.Secrets.Hash; 6 | 7 | [PublicAPI] 8 | internal class RequestValidator : Validator 9 | { 10 | public RequestValidator() 11 | { 12 | RuleFor(x => x.Secret).NotEmpty(); 13 | } 14 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Identity/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Identity/IdentityPolicyNames.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Identity; 2 | 3 | /// 4 | /// Provides policy name constants. 5 | /// 6 | public static class IdentityPolicyNames 7 | { 8 | /// 9 | /// The Security Root policy represents root access to security related feature, such as hashing passwords. 10 | /// 11 | public const string SecurityRoot = "SecurityRoot"; 12 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Identity/Models/IssuedTokens.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Identity.Models; 2 | 3 | /// 4 | /// Represents issued tokens. 5 | /// 6 | /// The access token. 7 | /// The refresh token. 8 | public record IssuedTokens(string AccessToken, string RefreshToken); -------------------------------------------------------------------------------- /src/modules/Elsa.Identity/Options/ApplicationsOptions.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Identity.Entities; 2 | 3 | namespace Elsa.Identity.Options; 4 | 5 | /// 6 | /// Represents options that stores available applications. 7 | /// 8 | public class ApplicationsOptions 9 | { 10 | /// 11 | /// Gets or sets the applications. 12 | /// 13 | public ICollection Applications { get; set; } = new List(); 14 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Identity/Options/RolesOptions.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Identity.Entities; 2 | 3 | namespace Elsa.Identity.Options; 4 | 5 | /// 6 | /// Represents options that stores available roles. 7 | /// 8 | public class RolesOptions 9 | { 10 | /// 11 | /// Gets or sets the roles. 12 | /// 13 | public ICollection Roles { get; set; } = new List(); 14 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Identity/Options/UsersOptions.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Identity.Entities; 2 | 3 | namespace Elsa.Identity.Options; 4 | 5 | /// 6 | /// Represents options that stores available users. 7 | /// 8 | public class UsersOptions 9 | { 10 | /// 11 | /// Gets or sets the users. 12 | /// 13 | public ICollection Users { get; set; } = new List(); 14 | } -------------------------------------------------------------------------------- /src/modules/Elsa.KeyValues/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Resilience.Core/Attributes/ResilienceCategoryAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Resilience; 2 | 3 | [AttributeUsage(AttributeTargets.Class)] 4 | public class ResilienceCategoryAttribute(string category) : Attribute 5 | { 6 | public string Category { get; } = category; 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Resilience.Core/Contracts/IResilienceStrategy.cs: -------------------------------------------------------------------------------- 1 | using Polly; 2 | 3 | namespace Elsa.Resilience; 4 | 5 | public interface IResilienceStrategy 6 | { 7 | string Id { get; set; } 8 | string DisplayName { get; set; } 9 | Task ConfigurePipeline(ResiliencePipelineBuilder pipelineBuilder, ResilienceContext context); 10 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Resilience.Core/Contracts/IResilienceStrategyCatalog.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Resilience; 2 | 3 | public interface IResilienceStrategyCatalog 4 | { 5 | Task> ListAsync(CancellationToken cancellationToken = default); 6 | Task GetAsync(string id, CancellationToken cancellationToken = default); 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Resilience.Core/Contracts/IResilienceStrategyConfigEvaluator.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Expressions.Models; 2 | using Elsa.Resilience.Models; 3 | 4 | namespace Elsa.Resilience; 5 | 6 | public interface IResilienceStrategyConfigEvaluator 7 | { 8 | Task EvaluateAsync(ResilienceStrategyConfig? config, ExpressionExecutionContext context, CancellationToken cancellationToken = default); 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Resilience.Core/Contracts/IResilienceStrategySource.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Resilience; 2 | 3 | public interface IResilienceStrategySource 4 | { 5 | Task> GetStrategiesAsync(CancellationToken cancellationToken = default); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Resilience.Core/Contracts/IResilientActivity.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Resilience.Models; 2 | using Elsa.Workflows; 3 | 4 | namespace Elsa.Resilience; 5 | 6 | public interface IResilientActivity : IActivity 7 | { 8 | IDictionary CollectRetryDetails(ActivityExecutionContext context, RetryAttempt attempt); 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Resilience.Core/Contracts/IRetryAttemptReader.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Common.Models; 2 | using Elsa.Resilience.Entities; 3 | 4 | namespace Elsa.Resilience; 5 | 6 | public interface IRetryAttemptReader 7 | { 8 | Task> ReadAttemptsAsync(string activityInstanceId, PageArgs? pageArgs = null, CancellationToken cancellationToken = default); 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Resilience.Core/Contracts/IRetryAttemptRecorder.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Resilience.Models; 2 | 3 | namespace Elsa.Resilience; 4 | 5 | public interface IRetryAttemptRecorder 6 | { 7 | Task RecordAsync(RecordRetryAttemptsContext context); 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Resilience.Core/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Resilience.Core/Models/RecordRetryAttemptsContext.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Resilience.Entities; 2 | using Elsa.Workflows; 3 | 4 | namespace Elsa.Resilience.Models; 5 | 6 | public record RecordRetryAttemptsContext(ActivityExecutionContext ActivityExecutionContext, ICollection Attempts, CancellationToken CancellationToken); -------------------------------------------------------------------------------- /src/modules/Elsa.Resilience.Core/Models/ResilienceStrategyConfigMode.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Resilience.Models; 2 | 3 | public enum ResilienceStrategyConfigMode 4 | { 5 | Identifier, 6 | Expression, 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Resilience.Core/Models/RetryAttempt.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows; 2 | 3 | namespace Elsa.Resilience.Models; 4 | 5 | public record RetryAttempt(ActivityExecutionContext ActivityExecutionContext, int AttemptNumber, TimeSpan RetryDelay, object? Result, Exception? Exception) 6 | { 7 | internal static readonly object RetriesKey = new(); 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Resilience.Core/Options/ResilienceOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Resilience.Options; 2 | 3 | public class ResilienceOptions 4 | { 5 | public ICollection StrategyTypes { get; set; } = new List(); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Resilience/Endpoints/SimulateResponse/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Resilience.Endpoints.SimulateResponse; 2 | 3 | public record SimulatedResponse(string Message); -------------------------------------------------------------------------------- /src/modules/Elsa.Resilience/Extensions/ModuleExtensions.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Extensions; 2 | using Elsa.Features.Services; 3 | using Elsa.Resilience.Features; 4 | 5 | namespace Elsa.Resilience.Extensions; 6 | 7 | public static class ModuleExtensions 8 | { 9 | public static IModule UseResilience(this IModule module, Action? configure = null) 10 | { 11 | return module.Use(configure); 12 | } 13 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Resilience/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.SasTokens/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Scheduling/Bookmarks/CronBookmarkPayload.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Scheduling.Bookmarks; 2 | 3 | internal record CronBookmarkPayload(DateTimeOffset ExecuteAt, string CronExpression); -------------------------------------------------------------------------------- /src/modules/Elsa.Scheduling/Bookmarks/CronTriggerPayload.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Scheduling.Bookmarks; 2 | 3 | public record CronTriggerPayload(string CronExpression); -------------------------------------------------------------------------------- /src/modules/Elsa.Scheduling/Bookmarks/DelayPayload.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Scheduling.Activities; 2 | 3 | namespace Elsa.Scheduling.Bookmarks; 4 | 5 | /// 6 | /// A bookmark payload for . 7 | /// 8 | public record DelayPayload(DateTimeOffset ResumeAt); -------------------------------------------------------------------------------- /src/modules/Elsa.Scheduling/Bookmarks/StartAtPayload.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Scheduling.Bookmarks; 2 | 3 | internal record StartAtPayload(DateTimeOffset ExecuteAt); -------------------------------------------------------------------------------- /src/modules/Elsa.Scheduling/Bookmarks/TimerBookmarkPayload.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Scheduling.Bookmarks; 2 | 3 | internal record TimerBookmarkPayload(DateTimeOffset ResumeAt); -------------------------------------------------------------------------------- /src/modules/Elsa.Scheduling/Bookmarks/TimerTriggerPayload.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Scheduling.Bookmarks; 2 | 3 | public record TimerTriggerPayload(DateTimeOffset StartAt, TimeSpan Interval); -------------------------------------------------------------------------------- /src/modules/Elsa.Scheduling/Commands/RunScheduledTask.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | 3 | namespace Elsa.Scheduling.Commands; 4 | 5 | /// 6 | /// A command to run a scheduled task. 7 | /// 8 | public record RunScheduledTask(ITask Task) : ICommand; -------------------------------------------------------------------------------- /src/modules/Elsa.Scheduling/Contracts/ISchedule.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Scheduling; 2 | 3 | /// 4 | /// A schedule that can be used to schedule a task. 5 | /// 6 | public interface ISchedule 7 | { 8 | /// 9 | /// Create a scheduled task. 10 | /// 11 | /// The context. 12 | /// The scheduled task. 13 | IScheduledTask Schedule(ScheduleContext context); 14 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Scheduling/Contracts/IScheduledTask.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Scheduling; 2 | 3 | /// 4 | /// Represents a scheduled task. 5 | /// 6 | public interface IScheduledTask 7 | { 8 | /// 9 | /// Cancels the scheduled task. 10 | /// 11 | void Cancel(); 12 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Scheduling/Contracts/ITask.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Scheduling; 2 | 3 | /// 4 | /// Represents a task. 5 | /// 6 | public interface ITask 7 | { 8 | /// 9 | /// Executes the task. 10 | /// 11 | ValueTask ExecuteAsync(TaskExecutionContext context); 12 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Scheduling/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Scheduling/Models/ScheduleContext.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Scheduling; 2 | 3 | /// 4 | /// The context for scheduling a task. 5 | /// 6 | /// The service provider. 7 | /// The task to schedule. 8 | public record ScheduleContext(IServiceProvider ServiceProvider, ITask Task); -------------------------------------------------------------------------------- /src/modules/Elsa.Scheduling/Models/TaskExecutionContext.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Scheduling; 2 | 3 | /// 4 | /// Represents a task execution context. 5 | /// 6 | /// The service provider. 7 | /// The cancellation token. 8 | public record TaskExecutionContext(IServiceProvider ServiceProvider, CancellationToken CancellationToken); -------------------------------------------------------------------------------- /src/modules/Elsa.Scheduling/SchedulingStimulusNames.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Scheduling; 2 | 3 | public static class SchedulingStimulusNames 4 | { 5 | public const string Cron = "Elsa.Cron"; 6 | public const string StartAt = "Elsa.StartAt"; 7 | public const string Timer = "Elsa.Timer"; 8 | public const string Delay = "Elsa.Delay"; 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Tenants.AspNetCore/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Tenants.AspNetCore/Options/MultitenancyHttpOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Tenants.AspNetCore.Options; 2 | 3 | public class MultitenancyHttpOptions 4 | { 5 | public string TenantHeaderName { get; set; } = "X-Tenant-Id"; 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Tenants.AspNetCore/Settings/HttpEndpointOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Tenants.AspNetCore.Settings; 2 | 3 | public class HttpEndpointSettings 4 | { 5 | public string? Prefix { get; set; } 6 | public string? HeaderName { get; set; } 7 | public string? QueryStringName { get; set; } 8 | public string? Origin { get; set; } 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Tenants/Contracts/ITenantResolverPipelineInvoker.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Common.Multitenancy; 2 | 3 | namespace Elsa.Tenants; 4 | 5 | public interface ITenantResolverPipelineInvoker 6 | { 7 | Task InvokePipelineAsync(CancellationToken cancellationToken = default); 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Tenants/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.WorkflowProviders.BlobStorage/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.CompilerServices; 2 | 3 | [assembly: InternalsVisibleTo("Elsa.Workflows.IntegrationTests")] -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Constants/AuthorizationPolicies.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Constants; 2 | 3 | public static class AuthorizationPolicies 4 | { 5 | /// 6 | /// The read-only policy ensures that that workflow management is not possible when the read-only mode is enabled or when a workflow is marked as read-only. 7 | /// 8 | public const string NotReadOnlyPolicy = "NotReadOnlyPolicy"; 9 | } 10 | -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/ActivityDescriptors/Get/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Endpoints.ActivityDescriptors.Get; 2 | 3 | internal class Request 4 | { 5 | public string TypeName { get; set; } 6 | public int? Version { get; set; } 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/ActivityDescriptors/List/Models.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Models; 2 | using JetBrains.Annotations; 3 | 4 | namespace Elsa.Workflows.Api.Endpoints.ActivityDescriptors.List; 5 | 6 | [PublicAPI] 7 | internal class Response(ICollection items) 8 | { 9 | public ICollection Items { get; set; } = items; 10 | public int Count => Items.Count; 11 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/Package/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Endpoints.Package; 2 | 3 | internal record Response(string PackageVersion); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/StorageDrivers/List/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Endpoints.StorageDrivers.List; 2 | 3 | public class Response(ICollection items) 4 | { 5 | public ICollection Items { get; set; } = items; 6 | } 7 | 8 | public record StorageDriverDescriptor(string TypeName, string DisplayName, double Priority = 0, bool Deprecated = false); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/Tasks/Complete/Constants.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace Elsa.Workflows.Api.Endpoints.Tasks.Complete; 3 | 4 | /// 5 | /// Provides policy names accepted by the endpoint. 6 | /// 7 | public static class Constants 8 | { 9 | /// 10 | /// The policy name accepted by this endpoint. 11 | /// 12 | public const string PolicyName = "CompleteTask"; 13 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/Tasks/Complete/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Endpoints.Tasks.Complete; 2 | 3 | public class Request 4 | { 5 | public string TaskId { get; set; } = default!; 6 | public object? Result { get; set; } 7 | } 8 | 9 | public class Response 10 | { 11 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/VariableTypes/List/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Endpoints.VariableTypes.List; 2 | 3 | internal class Response(ICollection items) 4 | { 5 | public ICollection Items { get; set; } = items; 6 | } 7 | 8 | internal record VariableTypeDescriptor(string TypeName, string DisplayName, string Category, string? Description); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Count/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Endpoints.WorkflowDefinitions.Count; 2 | 3 | internal record Response(long Count); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Delete/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Endpoints.WorkflowDefinitions.Delete; 2 | 3 | internal class Request 4 | { 5 | public string DefinitionId { get; set; } = default!; 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/DeleteVersion/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Endpoints.WorkflowDefinitions.DeleteVersion; 2 | 3 | internal class Request 4 | { 5 | public string Id { get; set; } = default!; 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/GetByDefinitionId/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Endpoints.WorkflowDefinitions.GetByDefinitionId; 2 | 3 | internal class Request 4 | { 5 | public string DefinitionId { get; set; } = default!; 6 | public string? VersionOptions { get; set; } 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/GetById/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Endpoints.WorkflowDefinitions.GetById; 2 | 3 | internal class Request 4 | { 5 | public string Id { get; set; } = default!; 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/GetManyById/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Endpoints.WorkflowDefinitions.GetManyById; 2 | 3 | internal class Request 4 | { 5 | public ICollection Ids { get; set; } = default!; 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Post/Models.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Api.Models; 2 | 3 | namespace Elsa.Workflows.Api.Endpoints.WorkflowDefinitions.Post; 4 | 5 | internal record Response(LinkedWorkflowDefinitionModel WorkflowDefinition, bool AlreadyPublished, int ConsumingWorkflowCount); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Publish/Models.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Api.Models; 2 | 3 | namespace Elsa.Workflows.Api.Endpoints.WorkflowDefinitions.Publish; 4 | 5 | internal class Request 6 | { 7 | public string DefinitionId { get; set; } = default!; 8 | } 9 | 10 | internal record Response(LinkedWorkflowDefinitionModel WorkflowDefinition, bool AlreadyPublished, int ConsumingWorkflowCount); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/Retract/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Endpoints.WorkflowDefinitions.Retract; 2 | 3 | public class Request 4 | { 5 | public string DefinitionId { get; set; } = default!; 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/WorkflowDefinitions/UpdateReferences/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Endpoints.WorkflowDefinitions.UpdateReferences; 2 | 3 | internal record Request 4 | { 5 | public string DefinitionId { get; set; } = default!; 6 | } 7 | 8 | internal record Response(IEnumerable AffectedWorkflows); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/WorkflowInstances/Cancel/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Endpoints.WorkflowInstances.Cancel; 2 | 3 | internal class Request 4 | { 5 | public string Id { get; set; } = default!; 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/WorkflowInstances/Delete/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Endpoints.WorkflowInstances.Delete; 2 | 3 | internal class Request 4 | { 5 | public string Id { get; set; } = default!; 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/WorkflowInstances/Get/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Endpoints.WorkflowInstances.Get; 2 | 3 | internal class Request 4 | { 5 | public string Id { get; set; } = default!; 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Endpoints/WorkflowInstances/Import/Models.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.Endpoints.WorkflowInstances.Import; 2 | 3 | internal class Response 4 | { 5 | public int Imported { get; set; } 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Models/ExportedWorkflowState.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json; 2 | 3 | namespace Elsa.Workflows.Api.Models; 4 | 5 | /// 6 | /// Represents a workflow state that can be exported and imported. 7 | /// 8 | public record ExportedWorkflowState( 9 | JsonElement WorkflowState, 10 | JsonElement? Bookmarks, 11 | JsonElement? ActivityExecutionRecords, 12 | JsonElement? WorkflowExecutionLogRecords); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Models/LinkedWorkflowDefinitionModel.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Models; 2 | using Elsa.Workflows.Management.Models; 3 | 4 | namespace Elsa.Workflows.Api.Models; 5 | 6 | public class LinkedWorkflowDefinitionModel(Link[]? links) : WorkflowDefinitionModel 7 | { 8 | public Link[]? Links { get; init; } = links; 9 | } 10 | -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Models/LinkedWorkflowDefinitionSummary.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Models; 2 | using Elsa.Workflows.Management.Models; 3 | 4 | namespace Elsa.Workflows.Api.Models; 5 | 6 | public class LinkedWorkflowDefinitionSummary : WorkflowDefinitionSummary 7 | { 8 | public Link[]? Links { get; set; } 9 | } 10 | -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/Options/ApiEndpointOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api; 2 | 3 | public class ApiEndpointOptions 4 | { 5 | /// 6 | /// The prefix used for API routes. 7 | /// 8 | public string RoutePrefix { get; set; } = "elsa/api"; 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/RealTime/Messages/ActivityExecutionLogUpdatedMessage.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Runtime; 2 | 3 | namespace Elsa.Workflows.Api.RealTime.Messages; 4 | 5 | /// 6 | /// Contains information about the activity execution logs updated event. 7 | /// 8 | /// Execution stats about a set of activities. 9 | public record ActivityExecutionLogUpdatedMessage(ICollection Stats); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/RealTime/Messages/WorkflowExecutionLogUpdatedMessage.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.RealTime.Messages; 2 | 3 | /// 4 | /// Represents a message that is sent when the workflow execution log is updated. 5 | /// 6 | public record WorkflowExecutionLogUpdatedMessage(); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Api/RealTime/Messages/WorkflowInstanceUpdatedMessage.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Api.RealTime.Messages; 2 | 3 | /// 4 | /// A message representing that a workflow instance was updated. 5 | /// 6 | /// The ID of the workflow instance that was updated. 7 | public record WorkflowInstanceUpdatedMessage(string WorkflowInstanceId); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Abstractions/PropertyUIHandlerBase.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | namespace Elsa.Workflows; 4 | 5 | public abstract class PropertyUIHandlerBase : IPropertyUIHandler 6 | { 7 | public virtual float Priority => 0; 8 | public abstract ValueTask> GetUIPropertiesAsync(PropertyInfo propertyInfo, object? context, CancellationToken cancellationToken = default); 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Activities/Flowchart/Contracts/IJoinNode.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Activities.Flowchart.Contracts; 2 | 3 | /// 4 | /// Gives implementing activities a chance to customize certain flowchart execution behaviors. 5 | /// 6 | public interface IJoinNode : IActivity 7 | { 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Activities/Flowchart/Models/FlowJoinMode.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Activities.Flowchart.Models; 2 | 3 | public enum FlowJoinMode 4 | { 5 | WaitAll, 6 | WaitAny 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Activities/Flowchart/Models/Position.cs: -------------------------------------------------------------------------------- 1 | using JetBrains.Annotations; 2 | 3 | namespace Elsa.Workflows.Activities.Flowchart.Models; 4 | 5 | [UsedImplicitly] 6 | public class Position 7 | { 8 | public double X { get; set; } 9 | public double Y { get; set; } 10 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Activities/ForEach.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Attributes; 2 | 3 | namespace Elsa.Workflows.Activities; 4 | 5 | /// 6 | /// Iterate over a set of values. 7 | /// 8 | [Activity("Elsa", "Looping", "Iterate over a set of values.")] 9 | public class ForEach : ForEach 10 | { 11 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Attributes/ExcludeFromHashAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Attributes; 2 | 3 | /// 4 | /// Indicates that a property should be excluded from the hash computation. 5 | /// 6 | [AttributeUsage(AttributeTargets.Property)] 7 | public class ExcludeFromHashAttribute : Attribute 8 | { 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Attributes/InboundAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Attributes; 2 | 3 | [AttributeUsage(AttributeTargets.Property)] 4 | public class InboundAttribute : Attribute 5 | { 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Attributes/StateAttribute.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Attributes; 2 | 3 | [AttributeUsage(AttributeTargets.Property)] 4 | public class StateAttribute : Attribute 5 | { 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/CommitStates/Contracts/IActivityCommitStrategy.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.CommitStates; 2 | 3 | public interface IActivityCommitStrategy 4 | { 5 | CommitAction ShouldCommit(ActivityCommitStateStrategyContext context); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/CommitStates/Contracts/IWorkflowCommitStrategy.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.CommitStates; 2 | 3 | public interface IWorkflowCommitStrategy 4 | { 5 | CommitAction ShouldCommit(WorkflowCommitStateStrategyContext context); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/CommitStates/Models/ActivityCommitStateStrategyContext.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.CommitStates; 2 | 3 | public record ActivityCommitStateStrategyContext(ActivityExecutionContext ActivityExecutionContext, ActivityLifetimeEvent LifetimeEvent); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/CommitStates/Models/ActivityLifetimeEvent.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.CommitStates; 2 | 3 | public enum ActivityLifetimeEvent 4 | { 5 | ActivityExecuting, 6 | ActivityExecuted 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/CommitStates/Models/ActivityStrategyDescriptor.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.CommitStates; 2 | 3 | public record ActivityStrategyDescriptor(string Name, string Description, IActivityCommitStrategy Strategy); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/CommitStates/Models/CommitAction.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.CommitStates; 2 | 3 | public enum CommitAction 4 | { 5 | Default, 6 | Commit, 7 | Skip 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/CommitStates/Models/CommitStrategyMetadata.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.CommitStates; 2 | 3 | public class CommitStrategyMetadata 4 | { 5 | public string Name { get; set; } = null!; 6 | public string DisplayName { get; set; } = null!; 7 | public string Description { get; set; } = null!; 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/CommitStates/Models/ObjectRegistration.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.CommitStates; 2 | 3 | public class ObjectRegistration 4 | { 5 | public T Strategy { get; set; } = default!; 6 | public TMeta Metadata { get; set; } = default!; 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/CommitStates/Models/WorkflowCommitStateStrategyContext.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.CommitStates; 2 | 3 | public record WorkflowCommitStateStrategyContext(WorkflowExecutionContext WorkflowExecutionContext, WorkflowLifetimeEvent LifetimeEvent); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/CommitStates/Models/WorkflowLifetimeEvent.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.CommitStates; 2 | 3 | public enum WorkflowLifetimeEvent 4 | { 5 | WorkflowExecuting, 6 | ActivityExecuting, 7 | ActivityExecuted, 8 | WorkflowExecuted 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/CommitStates/Models/WorkflowStrategyDescriptor.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.CommitStates; 2 | 3 | public record WorkflowStrategyDescriptor(string Name, string Description); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Constants/DefaultFaultTypes.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | public static class DefaultFaultTypes 4 | { 5 | public const string System = "System"; 6 | public const string Business = "Business"; 7 | public const string Integration = "Integration"; 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contexts/ActivityStateFilterContext.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json; 2 | using Elsa.Workflows.Models; 3 | 4 | namespace Elsa.Workflows; 5 | 6 | public record ActivityStateFilterContext(ActivityExecutionContext ActivityExecutionContext, InputDescriptor InputDescriptor, JsonElement Value, CancellationToken CancellationToken); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contexts/ResumedBookmarkContext.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Models; 2 | 3 | namespace Elsa.Workflows; 4 | 5 | public record ResumedBookmarkContext(Bookmark Bookmark); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contexts/StorageDriverContext.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Memory; 2 | 3 | namespace Elsa.Workflows; 4 | 5 | /// 6 | /// Provides context for storage drivers. 7 | /// 8 | public record StorageDriverContext(IExecutionContext ExecutionContext, Variable Variable, CancellationToken CancellationToken); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contracts/IActivityExecutionMiddleware.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | /// 4 | /// The interface for activity execution middleware components. 5 | /// 6 | public interface IActivityExecutionMiddleware 7 | { 8 | /// 9 | /// The method that is called to execute the middleware. 10 | /// 11 | ValueTask InvokeAsync(ActivityExecutionContext context); 12 | } 13 | 14 | -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contracts/IActivityFactory.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Models; 2 | 3 | namespace Elsa.Workflows; 4 | 5 | public interface IActivityFactory 6 | { 7 | IActivity Create(Type type, ActivityConstructorContext context); 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contracts/IActivityPropertyDefaultValueProvider.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | 3 | namespace Elsa.Workflows; 4 | 5 | public interface IActivityPropertyDefaultValueProvider 6 | { 7 | object GetDefaultValue(PropertyInfo property); 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contracts/IActivitySchedulerFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | public interface IActivitySchedulerFactory 4 | { 5 | IActivityScheduler CreateScheduler(); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contracts/IActivityStateFilter.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | public interface IActivityStateFilter 4 | { 5 | Task ExecuteAsync(ActivityStateFilterContext context); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contracts/IActivityStateFilterManager.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | public interface IActivityStateFilterManager 4 | { 5 | Task RunFiltersAsync(ActivityStateFilterContext context); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contracts/IBookmarkPayloadSerializer.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | public interface IBookmarkPayloadSerializer 4 | { 5 | T Deserialize(string json) where T : notnull; 6 | object Deserialize(string json, Type type); 7 | string Serialize(T payload) where T : notnull; 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contracts/IComposite.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | public interface IComposite 4 | { 5 | void Setup(); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contracts/IIdentityGenerator.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | /// 4 | /// Represents a unique identity generator. 5 | /// 6 | public interface IIdentityGenerator 7 | { 8 | /// 9 | /// Generates a unique identifier. 10 | /// 11 | string GenerateId(); 12 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contracts/ISignalHandler.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | /// 4 | /// Handles signals. 5 | /// 6 | public interface ISignalHandler 7 | { 8 | /// 9 | /// Receives a signal. 10 | /// 11 | ValueTask ReceiveSignalAsync(object signal, SignalContext context); 12 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contracts/IStandardInStreamProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | /// 4 | /// Implementors should provide an in-stream from which a consumer can read. 5 | /// 6 | public interface IStandardInStreamProvider 7 | { 8 | TextReader GetTextReader(); 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contracts/IStandardOutStreamProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | /// 4 | /// Implementors should provide an out-stream to which a consumer can write. 5 | /// 6 | public interface IStandardOutStreamProvider 7 | { 8 | TextWriter GetTextWriter(); 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contracts/IStartNode.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | /// 4 | /// Marks an activity as a terminal activity. 5 | /// 6 | public interface IStartNode 7 | { 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contracts/ITerminalNode.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | /// 4 | /// Marks an activity as a terminal activity. 5 | /// 6 | public interface ITerminalNode 7 | { 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contracts/IWorkflowBuilderFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | /// 4 | /// A factory of workflow builders. 5 | /// 6 | public interface IWorkflowBuilderFactory 7 | { 8 | /// 9 | /// Creates a new workflow builder. 10 | /// 11 | /// A new workflow builder. 12 | IWorkflowBuilder CreateBuilder(); 13 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Contracts/IWorkflowExecutionMiddleware.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | public interface IWorkflowExecutionMiddleware 4 | { 5 | ValueTask InvokeAsync(WorkflowExecutionContext context); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Enums/TypeKind.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | /// 4 | /// Represents the switch mode. 5 | /// 6 | [Flags] 7 | public enum TypeKind 8 | { 9 | Unknown = 0, 10 | Primitive = 1, 11 | Object = 2, 12 | Activity = 4, 13 | Trigger = 8 14 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Exceptions/DataProcessingException.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Exceptions; 2 | 3 | /// 4 | /// An exception that occurs during data processing. 5 | /// 6 | public class DataProcessingException(string message, Exception exception) : Exception(message, exception); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Exceptions/UniqueKeyConstraintViolationException.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Exceptions; 2 | 3 | /// 4 | /// An exception that when a unique key constraint has been violated. 5 | /// 6 | public class UniqueKeyConstraintViolationException(string message, Exception exception) : Exception(message, exception); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Helpers/TypeNameHelper.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Helpers; 2 | 3 | public static class TypeNameHelper 4 | { 5 | public static string GenerateTypeName() => GenerateTypeName(typeof(T)); 6 | public static string GenerateTypeName(Type type) => type.FullName!; 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/LogPersistence/Contexts/LogPersistenceStrategyContext.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.LogPersistence; 2 | 3 | public record LogPersistenceStrategyContext(CancellationToken CancellationToken); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/LogPersistence/Contracts/ILogPersistenceStrategy.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.LogPersistence; 2 | 3 | public interface ILogPersistenceStrategy 4 | { 5 | Task GetPersistenceModeAsync(LogPersistenceStrategyContext context); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/LogPersistence/Contracts/ILogPersistenceStrategyService.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.LogPersistence; 2 | 3 | public interface ILogPersistenceStrategyService 4 | { 5 | IEnumerable ListStrategies(); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/LogPersistence/Options/LogPersistenceOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.LogPersistence; 2 | 3 | public class LogPersistenceOptions 4 | { 5 | public LogPersistenceMode ConfiguredPersistenceMode { get; set; } = LogPersistenceMode.Inherit; 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Models/ActivityOutputs.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Models; 2 | 3 | /// 4 | /// Represents the outputs of an activity. 5 | /// 6 | /// The activity ID. 7 | /// The activity name. 8 | /// The output names. 9 | public record ActivityOutputs(string ActivityId, string ActivityName, ICollection OutputNames); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Models/BackgroundExecutionOutcome.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Models; 2 | 3 | public record BackgroundExecutionOutcome(string Name, object? Payload); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Models/InvokeWorkflowResult.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.State; 2 | 3 | namespace Elsa.Workflows.Models; 4 | 5 | public record InvokeWorkflowResult(WorkflowState WorkflowState, ICollection Bookmarks); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Models/NamedOutput.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Models; 2 | 3 | public record NamedOutput(string Name, Output Value); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Models/OutputDefinition.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Models; 2 | 3 | /// 4 | /// A definition of a workflow's output. 5 | /// 6 | public class OutputDefinition : ArgumentDefinition 7 | { 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Models/PortType.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Models; 2 | 3 | /// 4 | /// The type of a port. 5 | /// 6 | public enum PortType 7 | { 8 | /// 9 | /// A port that is embedded in the activity. 10 | /// 11 | Embedded, 12 | 13 | /// 14 | /// A flow port. 15 | /// 16 | Flow 17 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Models/ResolvedVariable.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Memory; 2 | 3 | namespace Elsa.Workflows; 4 | 5 | /// 6 | /// Represents a variable and its value. 7 | /// 8 | public record ResolvedVariable(Variable Variable, object? Value); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Models/ScheduledActivity.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Models; 2 | 3 | public class ScheduledActivity 4 | { 5 | public string? ActivityNodeId { get; set; } 6 | public string? OwnerActivityInstanceId { get; set; } 7 | public ScheduledActivityOptions? Options { get; set; } 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Models/SignalHandlerRegistration.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Models; 2 | 3 | internal record SignalHandlerRegistration(Type SignalType, Func Handler); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Models/TriggerType.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Models; 2 | 3 | public record TriggerType(string TypeName, Type Type); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Models/TypeDescriptor.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Models; 2 | 3 | public record TypeDescriptor(string Name, Type Type, TypeKind Kind); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Models/VariableDefinition.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Models; 2 | 3 | /// 4 | /// Stores information about a workflow variable. 5 | /// 6 | public record VariableDefinition(string Id, string Name, string TypeName, bool IsArray, string? Value, string? StorageDriverTypeName); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Models/VariableUpdateValue.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | /// 4 | /// Represents a variable to update and its new value. 5 | /// 6 | /// The ID of the variable to update. 7 | /// The new value of the variable. 8 | public record VariableUpdateValue(string Id, object? Value); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Models/WorkflowExecutionLogEventNames.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Models; 2 | 3 | public static class WorkflowExecutionLogEventNames 4 | { 5 | public const string Executing = "Executing"; 6 | public const string Executed = "Executed"; 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Models/WorkflowIdentity.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Models; 2 | 3 | public record WorkflowIdentity(string DefinitionId, int Version, string Id, string? TenantId = null) 4 | { 5 | public static WorkflowIdentity VersionOne => new("1", 1, "1", null); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Models/WorkflowInput.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Models; 2 | 3 | /// 4 | /// Represents a workflow input name and value. 5 | /// 6 | public record WorkflowInput(string Name, object? Value); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Models/WorkflowPublication.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Models; 2 | 3 | public record WorkflowPublication(bool IsLatest, bool IsPublished) 4 | { 5 | public static WorkflowPublication LatestAndPublished => new(true, true); 6 | public static WorkflowPublication LatestDraft => new(true, false); 7 | public static WorkflowPublication Draft => new(false, false); 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Notifications/ActivityCancelled.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | 3 | namespace Elsa.Workflows.Notifications; 4 | 5 | /// 6 | /// A notification that is sent when an activity is cancelled. 7 | /// 8 | /// The activity execution context. 9 | public record ActivityCancelled(ActivityExecutionContext ActivityExecutionContext) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Notifications/ActivityCompleted.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | 3 | namespace Elsa.Workflows.Notifications; 4 | 5 | /// 6 | /// A notification that is sent when an activity has completed. 7 | /// 8 | /// The activity execution context. 9 | public record ActivityCompleted(ActivityExecutionContext ActivityExecutionContext) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Notifications/ActivityExecuted.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | 3 | namespace Elsa.Workflows.Notifications; 4 | 5 | /// 6 | /// A notification that is sent when an activity has executed. 7 | /// 8 | /// The activity execution context. 9 | public record ActivityExecuted(ActivityExecutionContext ActivityExecutionContext) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Notifications/ActivityExecuting.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | 3 | namespace Elsa.Workflows.Notifications; 4 | 5 | /// 6 | /// A notification that is sent when an activity is about to execute. 7 | /// 8 | /// The activity execution context. 9 | public record ActivityExecuting(ActivityExecutionContext ActivityExecutionContext) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Notifications/InvokingActivityCallback.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | 3 | namespace Elsa.Workflows.Notifications; 4 | 5 | public record InvokingActivityCallback(ActivityExecutionContext Parent, ActivityExecutionContext Child) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Notifications/WorkflowExecuting.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | using Elsa.Workflows.Activities; 3 | 4 | namespace Elsa.Workflows.Notifications; 5 | 6 | /// 7 | /// A domain event that is published before a burst of execution begins. 8 | /// 9 | public record WorkflowExecuting(Workflow Workflow, WorkflowExecutionContext WorkflowExecutionContext) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Notifications/WorkflowStarted.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | using Elsa.Workflows.Activities; 3 | 4 | namespace Elsa.Workflows.Notifications; 5 | 6 | /// 7 | /// A domain event that is published when a workflow starts. 8 | /// 9 | public record WorkflowStarted(Workflow Workflow, WorkflowExecutionContext WorkflowExecutionContext) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Options/DynamicOutcomesOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Options; 2 | 3 | /// 4 | /// Options for dynamic outcomes. 5 | /// 6 | /// A list of fixed outcomes that will be appended to the final list of outcomes. 7 | public record DynamicOutcomesOptions(ICollection? FixedOutcomes); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Options/IncidentOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Options; 2 | 3 | /// 4 | /// Options for configuring how incidents are handled. 5 | /// 6 | public class IncidentOptions 7 | { 8 | /// 9 | /// Gets or sets the default incident strategy to use when no strategy is configured on the workflow. 10 | /// 11 | public Type? DefaultIncidentStrategy { get; set; } 12 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Pipelines/ActivityExecution/ActivityMiddlewareDelegate.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Pipelines.ActivityExecution; 2 | 3 | public delegate ValueTask ActivityMiddlewareDelegate(ActivityExecutionContext context); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Pipelines/WorkflowExecution/WorkflowMiddlewareDelegate.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Pipelines.WorkflowExecution; 2 | 3 | public delegate ValueTask WorkflowMiddlewareDelegate(WorkflowExecutionContext context); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Services/ActivitySchedulerFactory.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | public class ActivitySchedulerFactory : IActivitySchedulerFactory 4 | { 5 | //public IActivityScheduler CreateScheduler() => new StackBasedActivityScheduler(); 6 | public IActivityScheduler CreateScheduler() => new QueueBasedActivityScheduler(); 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Services/GuidIdentityGenerator.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | /// 4 | /// Generates a unique identifier using . 5 | /// 6 | public class GuidIdentityGenerator : IIdentityGenerator 7 | { 8 | /// 9 | public string GenerateId() => Guid.NewGuid().ToString("N"); 10 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Services/ShortGuidIdentityGenerator.cs: -------------------------------------------------------------------------------- 1 | using DEDrake; 2 | 3 | namespace Elsa.Workflows; 4 | 5 | /// 6 | /// Generates a unique identifier using . 7 | /// 8 | public class ShortGuidIdentityGenerator : IIdentityGenerator 9 | { 10 | /// 11 | public string GenerateId() => ShortGuid.NewGuid().ToString(); 12 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Services/StandardInStreamProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | public class StandardInStreamProvider : IStandardInStreamProvider 4 | { 5 | private readonly TextReader _textReader; 6 | public StandardInStreamProvider(TextReader textReader) => _textReader = textReader; 7 | public TextReader GetTextReader() => _textReader; 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Services/StandardOutStreamProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | public class StandardOutStreamProvider : IStandardOutStreamProvider 4 | { 5 | private readonly TextWriter _textWriter; 6 | 7 | public StandardOutStreamProvider(TextWriter textWriter) 8 | { 9 | _textWriter = textWriter; 10 | } 11 | 12 | public TextWriter GetTextWriter() => _textWriter; 13 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Services/StimulusHasher.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows; 2 | 3 | /// 4 | public class StimulusHasher(IHasher hasher) : IStimulusHasher 5 | { 6 | /// 7 | public string Hash(string stimulusName, object? payload = null, string? activityInstanceId = null) 8 | { 9 | return hasher.Hash(stimulusName, payload, activityInstanceId); 10 | } 11 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Signals/ActivityCompleted.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Signals; 2 | 3 | /// 4 | /// Signaled when an activity has completed. 5 | /// 6 | /// An optional result. 7 | public record ActivityCompleted(object? Result = default); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Signals/BreakSignal.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Signals; 2 | 3 | public record BreakSignal; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Signals/CancelSignal.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Signals; 2 | 3 | public record CancelSignal; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Signals/CompleteCompositeSignal.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Signals; 2 | 3 | /// 4 | /// Sent by child activities to notify their composite container that it should complete. 5 | /// 6 | public record CompleteCompositeSignal(object? Value = default); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/Signals/ScheduleActivityOutcomes.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Signals; 2 | 3 | /// 4 | /// Signaled when an activity requests the scheduling of the specified set of outcomes. 5 | /// 6 | /// The outcomes to schedule. 7 | public record ScheduleActivityOutcomes(params string[] Outcomes); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/UIHints/CheckList/CheckList.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.UIHints.CheckList; 2 | 3 | public class CheckList 4 | { 5 | public IEnumerable Items { get; set; } 6 | public bool IsFlagsEnum { get; set; } 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/UIHints/CheckList/CheckListItem.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.UIHints.CheckList; 2 | 3 | public record CheckListItem(string Text, string Value); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/UIHints/CheckList/CheckListProps.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.UIHints.CheckList; 2 | 3 | public class CheckListProps 4 | { 5 | /// 6 | /// The select list. 7 | /// 8 | public CheckList? CheckList { get; set; } 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/UIHints/CodeEditor/MultiLineOptions.cs: -------------------------------------------------------------------------------- 1 | using JetBrains.Annotations; 2 | 3 | namespace Elsa.Workflows.UIHints.CodeEditor; 4 | 5 | /// 6 | /// Options for the multi-line editor component. 7 | /// 8 | /// The height of the editor. 9 | [PublicAPI] 10 | public record MultiLineOptions(EditorHeight EditorHeight); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/UIHints/Dropdown/SelectList.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.UIHints.Dropdown; 2 | 3 | /// 4 | /// Represents a list of select list items. 5 | /// 6 | /// The items. 7 | public record SelectList(ICollection Items); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/UIHints/Dropdown/SelectListItem.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.UIHints.Dropdown; 2 | 3 | public record SelectListItem(string Text, string Value); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/UIHints/JsonEditor/JsonCodeOptionsProvider.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using Elsa.Workflows.UIHints.CodeEditor; 3 | 4 | // ReSharper disable once CheckNamespace 5 | namespace Elsa.Workflows.UIHints.JsonEditor; 6 | 7 | internal class JsonCodeOptionsProvider : CodeEditorOptionsProviderBase 8 | { 9 | protected override string GetLanguage(PropertyInfo propertyInfo, object? context) => "json"; 10 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/UIHints/RadioList/RadioList.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.UIHints.RadioList; 2 | 3 | public class RadioList 4 | { 5 | public IEnumerable Items { get; set; } 6 | public bool IsFlagsEnum { get; set; } 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/UIHints/RadioList/RadioListItem.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.UIHints.RadioList; 2 | 3 | public record RadioListItem(string Text, string Value); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Core/UIHints/RadioList/RadioListProps.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.UIHints.RadioList; 2 | 3 | public class RadioListProps 4 | { 5 | /// 6 | /// The select list. 7 | /// 8 | public RadioList? RadioList { get; set; } 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Management/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Management/Models/AffectedWorkflows.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Management.Entities; 2 | 3 | namespace Elsa.Workflows.Management.Models; 4 | 5 | public record AffectedWorkflows(ICollection WorkflowDefinitions); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Management/Models/PublishWorkflowDefinitionResult.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Management.Models; 2 | 3 | /// 4 | /// Represents the result of publishing a workflow definition. 5 | /// 6 | public record PublishWorkflowDefinitionResult(bool Succeeded, ICollection ValidationErrors, AffectedWorkflows AffectedWorkflows); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Management/Models/WorkflowValidationError.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Management.Models; 2 | 3 | /// 4 | /// Represents a validation error. 5 | /// 6 | /// The error message. 7 | /// The Id of the activity that caused the error, if any. 8 | public record WorkflowValidationError(string Message, string? ActivityId = null); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Management/Notifications/WorkflowInstancesDeleted.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | 3 | namespace Elsa.Workflows.Management.Notifications; 4 | 5 | /// 6 | /// A notification that is sent when workflow instances are deleted. 7 | /// 8 | /// The IDs of the workflow instances. 9 | public record WorkflowInstancesDeleted(ICollection Ids) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Management/Notifications/WorkflowInstancesDeleting.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | 3 | namespace Elsa.Workflows.Management.Notifications; 4 | 5 | /// 6 | /// A notification that is sent when workflow instances are about to be deleted. 7 | /// 8 | /// The IDs of the workflow instances. 9 | public record WorkflowInstancesDeleting(ICollection Ids) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime.Distributed/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Bookmarks/EventBookmarkPayload.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Common; 2 | using Elsa.Workflows.Runtime.Stimuli; 3 | 4 | namespace Elsa.Workflows.Runtime.Bookmarks; 5 | 6 | [Obsolete("Use EventStimulus instead.")] 7 | [ForwardedType(typeof(EventStimulus))] 8 | public record EventBookmarkPayload(string EventName); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Commands/DispatchStimulusCommand.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | using Elsa.Mediator.Models; 3 | using Elsa.Workflows.Runtime.Requests; 4 | 5 | namespace Elsa.Workflows.Runtime.Commands; 6 | 7 | public record DispatchStimulusCommand(DispatchStimulusRequest Request) : ICommand; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Constants/RuntimeFaultCategories.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime; 2 | 3 | public static class RuntimeFaultCategories 4 | { 5 | public const string Dispatch = "Dispatch"; 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Constants/RuntimeFaultCodes.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime; 2 | 3 | public static class RuntimeFaultCodes 4 | { 5 | public const string UnknownChannel = "UnknownChannel"; 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Contexts/WorkflowActivationStrategyEvaluationContext.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Activities; 2 | 3 | namespace Elsa.Workflows.Runtime; 4 | 5 | public class WorkflowActivationStrategyEvaluationContext 6 | { 7 | public Workflow Workflow { get; set; } = default!; 8 | public string? CorrelationId { get; set; } 9 | public CancellationToken CancellationToken { get; set; } 10 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Contracts/IBookmarkQueueProcessor.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime; 2 | 3 | public interface IBookmarkQueueProcessor 4 | { 5 | Task ProcessAsync(CancellationToken cancellationToken = default); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Contracts/IBookmarkQueuePurger.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime; 2 | 3 | public interface IBookmarkQueuePurger 4 | { 5 | Task PurgeAsync(CancellationToken cancellationToken = default); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Contracts/IBookmarkQueueSignaler.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime; 2 | 3 | public interface IBookmarkQueueSignaler 4 | { 5 | Task AwaitAsync(CancellationToken cancellationToken = default); 6 | Task TriggerAsync(CancellationToken cancellationToken = default); 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Contracts/IBookmarkQueueWorker.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime; 2 | 3 | public interface IBookmarkQueueWorker 4 | { 5 | void Start(); 6 | void Stop(); 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Contracts/IBookmarkUpdater.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Runtime.Requests; 2 | 3 | namespace Elsa.Workflows.Runtime; 4 | 5 | public interface IBookmarkUpdater 6 | { 7 | Task UpdateBookmarksAsync(UpdateBookmarksRequest request, CancellationToken cancellationToken = default); 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Contracts/ITriggerInvoker.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime; 2 | 3 | public interface ITriggerInvoker 4 | { 5 | Task InvokeAsync(InvokeTriggerRequest request, CancellationToken cancellationToken = default); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Contracts/IWorkflowActivationStrategyEvaluator.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime; 2 | 3 | public interface IWorkflowActivationStrategyEvaluator 4 | { 5 | public Task CanStartWorkflowAsync(WorkflowActivationStrategyEvaluationContext context); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Exceptions/WorkflowGraphNotFoundException.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Models; 2 | 3 | namespace Elsa.Workflows.Runtime.Exceptions; 4 | 5 | public class WorkflowGraphNotFoundException(string message, WorkflowDefinitionHandle workflowDefinitionHandle) : Exception(message) 6 | { 7 | public WorkflowDefinitionHandle WorkflowDefinitionHandle { get; } = workflowDefinitionHandle; 8 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Exceptions/WorkflowInstanceNotFoundException.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime.Exceptions; 2 | 3 | public class WorkflowInstanceNotFoundException(string message, string instanceId) : Exception(message) 4 | { 5 | public string InstanceId { get; } = instanceId; 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Features/DefaultWorkflowRuntimeFeature.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Features.Abstractions; 2 | using Elsa.Features.Attributes; 3 | using Elsa.Features.Services; 4 | 5 | namespace Elsa.Workflows.Runtime.Features; 6 | 7 | /// 8 | /// Installs the default runtime services. 9 | /// 10 | [DependsOn(typeof(WorkflowRuntimeFeature))] 11 | public class DefaultWorkflowRuntimeFeature(IModule module) : FeatureBase(module); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/LogPersistence/Models/LogPersistenceConfiguration.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Expressions.Models; 2 | 3 | namespace Elsa.Workflows.Runtime; 4 | 5 | public class LogPersistenceConfiguration 6 | { 7 | public LogPersistenceEvaluationMode EvaluationMode { get; set; } 8 | public string? StrategyType { get; set; } 9 | public Expression? Expression { get; set; } 10 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/LogPersistence/Models/LogPersistenceEvaluationMode.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime; 2 | 3 | public enum LogPersistenceEvaluationMode 4 | { 5 | Strategy, 6 | Expression 7 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Matches/ResumableWorkflowMatch.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Management.Entities; 2 | 3 | namespace Elsa.Workflows.Runtime.Matches; 4 | 5 | public record ResumableWorkflowMatch(string WorkflowInstanceId, string? CorrelationId, string? BookmarkId, object? Payload) 6 | : WorkflowMatch(CorrelationId, Payload); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Matches/StartableWorkflowMatch.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime.Matches; 2 | 3 | public record StartableWorkflowMatch(string? CorrelationId, string? ActivityId, string? DefinitionId, object? Payload) 4 | : WorkflowMatch(CorrelationId, Payload); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Matches/WorkflowMatch.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Management.Entities; 2 | 3 | namespace Elsa.Workflows.Runtime.Matches; 4 | 5 | public record WorkflowMatch(string? CorrelationId, object? Payload); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Messages/CreateWorkflowInstanceResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime.Messages; 2 | 3 | /// 4 | /// A response to a request to create a new workflow instance. 5 | /// 6 | public record CreateWorkflowInstanceResponse; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Models/BookmarkBoundWorkflow.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Runtime.Entities; 2 | 3 | namespace Elsa.Workflows.Runtime; 4 | 5 | /// 6 | /// Represents a workflow bound to one or more bookmarks. 7 | /// 8 | public record BookmarkBoundWorkflow(string WorkflowInstanceId, ICollection Bookmarks); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Models/DispatchWorkflowOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime; 2 | 3 | public class DispatchWorkflowOptions 4 | { 5 | public string? Channel { get; set; } 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Models/DispatcherChannel.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime; 2 | 3 | /// 4 | /// Describes a workflow dispatcher channel. 5 | /// 6 | public class DispatcherChannel 7 | { 8 | /// 9 | /// Gets or sets the name of the channel. 10 | /// 11 | public string Name { get; set; } = default!; 12 | 13 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Models/TriggerBoundWorkflow.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Models; 2 | using Elsa.Workflows.Runtime.Entities; 3 | 4 | namespace Elsa.Workflows.Runtime; 5 | 6 | /// 7 | /// Represents a workflow bound to one or more triggers. 8 | /// 9 | public record TriggerBoundWorkflow(WorkflowGraph WorkflowGraph, ICollection Triggers); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Notifications/BackgroundActivityExecutionCompleted.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | 3 | namespace Elsa.Workflows.Runtime.Notifications; 4 | 5 | public record BackgroundActivityExecutionCompleted(ActivityExecutionContext ActivityExecutionContext) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Notifications/BookmarkSaved.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | using Elsa.Workflows.Runtime.Entities; 3 | 4 | namespace Elsa.Workflows.Runtime.Notifications; 5 | 6 | /// 7 | /// Triggered when a bookmark has been saved. 8 | /// 9 | /// The bookmark being saved. 10 | public record BookmarkSaved(StoredBookmark Bookmark) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Notifications/BookmarkSaving.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | using Elsa.Workflows.Runtime.Entities; 3 | 4 | namespace Elsa.Workflows.Runtime.Notifications; 5 | 6 | /// 7 | /// Triggered when a bookmark is being saved. 8 | /// 9 | /// The bookmark being saved. 10 | public record BookmarkSaving(StoredBookmark Bookmark) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Notifications/BookmarksDeleted.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | using Elsa.Workflows.Runtime.Entities; 3 | 4 | namespace Elsa.Workflows.Runtime.Notifications; 5 | 6 | /// 7 | /// Triggered when bookmarks have been deleted. 8 | /// 9 | /// The bookmarks that have been deleted. 10 | public record BookmarksDeleted(ICollection Bookmarks) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Notifications/BookmarksDeleting.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | using Elsa.Workflows.Runtime.Entities; 3 | 4 | namespace Elsa.Workflows.Runtime.Notifications; 5 | 6 | /// 7 | /// Triggered when bookmarks are being deleted. 8 | /// 9 | /// The bookmarks being deleted. 10 | public record BookmarksDeleting(ICollection Bookmarks) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Notifications/WorkflowBookmarksDeleted.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | using Elsa.Workflows.Models; 3 | 4 | namespace Elsa.Workflows.Runtime.Notifications; 5 | 6 | public record WorkflowBookmarksDeleted(List Bookmarks) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Notifications/WorkflowCancelled.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | 3 | namespace Elsa.Workflows.Runtime.Notifications; 4 | 5 | public record WorkflowCancelled(string WorkflowInstanceId) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Notifications/WorkflowCancelling.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | 3 | namespace Elsa.Workflows.Runtime.Notifications; 4 | 5 | public record WorkflowCancelling(string WorkflowInstanceId) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Notifications/WorkflowDefinitionsRefreshed.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | 3 | namespace Elsa.Workflows.Runtime.Notifications; 4 | 5 | /// 6 | /// Published when workflow definitions have been refreshed. 7 | /// 8 | public record WorkflowDefinitionsRefreshed(ICollection WorkflowDefinitionIds) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Notifications/WorkflowDefinitionsReloaded.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Mediator.Contracts; 2 | using Elsa.Workflows.Runtime.Models; 3 | 4 | namespace Elsa.Workflows.Runtime.Notifications; 5 | 6 | /// 7 | /// Published when workflow definitions have been reloaded. 8 | /// 9 | public record WorkflowDefinitionsReloaded(ICollection ReloadedWorkflowDefinitions) : INotification; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Options/FindBookmarkOptions.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime.Options; 2 | 3 | /// 4 | /// Options for triggering workflows. 5 | /// 6 | public class FindBookmarkOptions 7 | { 8 | public string? BookmarkId { get; set; } 9 | public string? CorrelationId { get; set; } 10 | public string? WorkflowInstanceId { get; set; } 11 | public string? ActivityInstanceId { get; set; } 12 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Requests/DispatchResumeWorkflowsRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime.Requests; 2 | 3 | public record DispatchResumeWorkflowsRequest( 4 | string ActivityTypeName, 5 | object BookmarkPayload, 6 | string? CorrelationId = null, 7 | string? WorkflowInstanceId = null, 8 | string? ActivityInstanceId = null, 9 | IDictionary? Input = null); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Requests/DispatchStimulusRequest.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime.Requests; 2 | 3 | public class DispatchStimulusRequest 4 | { 5 | public string? ActivityTypeName { get; set; } 6 | public object? Stimulus { get; set; } 7 | public string? StimulusHash { get; set; } 8 | public StimulusMetadata? Metadata { get; set; } 9 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Responses/DispatchCancelWorkflowsResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime.Responses; 2 | 3 | /// 4 | /// A response that indicates that one or more workflows are requested to be cancelled. 5 | /// 6 | public record DispatchCancelWorkflowsResponse; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Responses/DispatchResumeWorkflowsResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime.Responses; 2 | 3 | public record DispatchResumeWorkflowsResponse; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Responses/DispatchStimulusResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime.Responses; 2 | 3 | public record DispatchStimulusResponse 4 | { 5 | public static DispatchStimulusResponse Empty { get; } = new(); 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Responses/DispatchTriggerWorkflowsResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime.Responses; 2 | 3 | public record DispatchTriggerWorkflowsResponse; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Responses/DispatchWorkflowInstanceResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime.Responses; 2 | 3 | public record DispatchWorkflowInstanceResponse; -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Responses/RefreshWorkflowDefinitionsResponse.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime.Responses; 2 | 3 | /// 4 | /// Represents a response to a request to refresh workflow definitions. 5 | /// 6 | public record RefreshWorkflowDefinitionsResponse(ICollection Refreshed, ICollection NotFound); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Results/CanStartWorkflowResult.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime.Results; 2 | 3 | public record CanStartWorkflowResult(string? InstanceId, bool CanStart); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Results/DeliverWorkflowInboxMessageResult.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime.Results; 2 | 3 | /// 4 | /// Result of delivering a workflow inbox message. 5 | /// 6 | public record DeliverWorkflowInboxMessageResult(ICollection WorkflowExecutionResults); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Results/SendStimulusResult.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Runtime.Messages; 2 | using JetBrains.Annotations; 3 | 4 | namespace Elsa.Workflows.Runtime.Results; 5 | 6 | /// 7 | /// Represents the result of sending a stimulus the engine. 8 | /// 9 | [UsedImplicitly] 10 | public record SendStimulusResult(ICollection WorkflowInstanceResponses); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Results/TriggerWorkflowsResult.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime.Results; 2 | 3 | public record TriggerWorkflowsResult(ICollection TriggeredWorkflows); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/RuntimeStimulusNames.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime; 2 | 3 | public static class RuntimeStimulusNames 4 | { 5 | public const string Event = "Elsa.Event"; 6 | } -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Stimuli/EventStimulus.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Runtime.Stimuli; 2 | 3 | /// 4 | /// Represents a stimulus generated by an event. 5 | /// 6 | public record EventStimulus(string EventName); -------------------------------------------------------------------------------- /src/modules/Elsa.Workflows.Runtime/Stimuli/RunTaskStimulus.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Attributes; 2 | using Elsa.Workflows.Runtime.Activities; 3 | 4 | namespace Elsa.Workflows.Runtime.Stimuli; 5 | 6 | /// 7 | /// Contains information created by . 8 | /// 9 | public record RunTaskStimulus(string TaskId, [property: ExcludeFromHash]string TaskName); -------------------------------------------------------------------------------- /src/modules/Elsa/FodyWeavers.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /tempvalidator/Program.cs: -------------------------------------------------------------------------------- 1 | // See https://aka.ms/new-console-template for more information 2 | Console.WriteLine("Hello, World!"); 3 | -------------------------------------------------------------------------------- /tempvalidator/tempvalidator.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Exe 5 | net8.0 6 | enable 7 | enable 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /test/component/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /test/component/Elsa.Workflows.ComponentTests/Helpers/Fixtures/AppCollection.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.ComponentTests.Fixtures; 2 | 3 | [CollectionDefinition(nameof(AppCollection))] 4 | public class AppCollection : ICollectionFixture 5 | { 6 | // This class has no code, and is never created. Its purpose is simply 7 | // to be the place to apply [CollectionDefinition] and all the 8 | // ICollectionFixture<> interfaces. 9 | } -------------------------------------------------------------------------------- /test/component/Elsa.Workflows.ComponentTests/xunit.runner.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://xunit.net/schema/current/xunit.runner.schema.json", 3 | "parallelizeTestCollections": true 4 | } -------------------------------------------------------------------------------- /test/integration/Elsa.Activities.IntegrationTests/Usings.cs: -------------------------------------------------------------------------------- 1 | global using Xunit; -------------------------------------------------------------------------------- /test/integration/Elsa.Resilience.IntegrationTests/Usings.cs: -------------------------------------------------------------------------------- 1 | global using Xunit; 2 | -------------------------------------------------------------------------------- /test/integration/Elsa.Workflows.IntegrationTests/Scenarios/ActivityNotificationsMiddleware/Spy.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.IntegrationTests.Scenarios.ActivityNotificationsMiddleware; 2 | 3 | public class Spy 4 | { 5 | public bool ActivityExecutingWasCalled { get; set; } 6 | public bool ActivityExecutedWasCalled { get; set; } 7 | } -------------------------------------------------------------------------------- /test/integration/Elsa.Workflows.IntegrationTests/Scenarios/ActivityNotificationsMiddleware/Workflows.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Activities; 2 | 3 | namespace Elsa.Workflows.IntegrationTests.Scenarios.ActivityNotificationsMiddleware; 4 | 5 | class HelloWorldWorkflow : WorkflowBase 6 | { 7 | protected override void Build(IWorkflowBuilder workflow) 8 | { 9 | workflow.Root = new WriteLine("Hello World!"); 10 | } 11 | } -------------------------------------------------------------------------------- /test/integration/Elsa.Workflows.IntegrationTests/Scenarios/FlowchartNextActivity/Activities/CustomActivity.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.IntegrationTests.Scenarios.FlowchartNextActivity.Activities; 2 | 3 | public class CustomActivity : CodeActivity 4 | { 5 | protected override async ValueTask ExecuteAsync(ActivityExecutionContext context) 6 | { 7 | await context.CompleteActivityAsync(); 8 | } 9 | } -------------------------------------------------------------------------------- /test/integration/Elsa.Workflows.IntegrationTests/Scenarios/Incidents/Statics/TestSettings.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.IncidentStrategies; 2 | 3 | namespace Elsa.Workflows.IntegrationTests.Scenarios.Incidents.Statics; 4 | 5 | public static class TestSettings 6 | { 7 | public static Type IncidentStrategyType { get; set; } = typeof(FaultStrategy); 8 | } -------------------------------------------------------------------------------- /test/integration/Elsa.Workflows.IntegrationTests/Serialization/JsonSerialization/JArrayIsland.json: -------------------------------------------------------------------------------- 1 | { 2 | "StatusCode": "Created", 3 | "Content": { 4 | "_island": "[\r\n {\r\n \u0022path\u0022: \u0022folder1\u0022,\r\n \u0022command\u0022: \u0022add\u0022\r\n }\r\n]", 5 | "_type": "Newtonsoft.Json.Linq.JArray, Newtonsoft.Json" 6 | }, 7 | "_type": "ObjectMap" 8 | } -------------------------------------------------------------------------------- /test/integration/Elsa.Workflows.IntegrationTests/Serialization/JsonSerialization/JArrayWithoutType.json: -------------------------------------------------------------------------------- 1 | { 2 | "StatusCode": "Created", 3 | "Content": [ 4 | { 5 | "path": "folder1", 6 | "command": "add" 7 | } 8 | ], 9 | "_type": "ObjectMap" 10 | } -------------------------------------------------------------------------------- /test/integration/Elsa.Workflows.IntegrationTests/Serialization/JsonSerialization/JObjectWithoutType.json: -------------------------------------------------------------------------------- 1 | { 2 | "StatusCode": "Created", 3 | "Content": { 4 | "file1": { 5 | "script": [ 6 | { 7 | "path": "folder1", 8 | "command": "add" 9 | } 10 | ] 11 | } 12 | }, 13 | "_type": "ObjectMap" 14 | } -------------------------------------------------------------------------------- /test/integration/Elsa.Workflows.IntegrationTests/Serialization/JsonSerialization/JsonArrayIsland.json: -------------------------------------------------------------------------------- 1 | { 2 | "StatusCode": "Created", 3 | "Content": { 4 | "_island": "[\r\n {\r\n \u0022path\u0022: \u0022folder1\u0022,\r\n \u0022command\u0022: \u0022add\u0022\r\n }\r\n]", 5 | "_type": "System.Text.Json.Nodes.JsonArray, System.Text.Json" 6 | }, 7 | "_type": "ObjectMap" 8 | } -------------------------------------------------------------------------------- /test/integration/Elsa.Workflows.IntegrationTests/Serialization/JsonSerialization/JsonArrayWithoutType.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "path": "folder1", 4 | "command": "add" 5 | } 6 | ] -------------------------------------------------------------------------------- /test/integration/Elsa.Workflows.IntegrationTests/Serialization/JsonSerialization/JsonObjectWithoutType.json: -------------------------------------------------------------------------------- 1 | { 2 | "StatusCode": "Created", 3 | "Content": { 4 | "file1": { 5 | "script": [ 6 | { 7 | "path": "folder1", 8 | "command": "add" 9 | } 10 | ] 11 | } 12 | }, 13 | "_type": "ObjectMap" 14 | } -------------------------------------------------------------------------------- /test/integration/Elsa.Workflows.IntegrationTests/Serialization/UIHintSerializiation/TestEnumType.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.IntegrationTests.Serialization.UIHintSerializiation; 2 | 3 | public enum TestEnumType 4 | { 5 | OptionsAreNice, 6 | ToHave, 7 | IfYouCanChooseThem 8 | } 9 | -------------------------------------------------------------------------------- /test/integration/Elsa.Workflows.IntegrationTests/Serialization/VariableTypes/Models.cs: -------------------------------------------------------------------------------- 1 | using Elsa.Workflows.Memory; 2 | 3 | namespace Elsa.Workflows.IntegrationTests.Serialization.VariableTypes; 4 | 5 | internal record VariablesContainer(ICollection Variables); -------------------------------------------------------------------------------- /test/integration/Elsa.Workflows.IntegrationTests/Serialization/VariableTypes/Workflows.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.IntegrationTests.Serialization.VariableTypes; 2 | 3 | class SampleWorkflow : WorkflowBase 4 | { 5 | protected override void Build(IWorkflowBuilder workflow) 6 | { 7 | workflow.WithVariable(); 8 | } 9 | } -------------------------------------------------------------------------------- /test/integration/Elsa.Workflows.IntegrationTests/Usings.cs: -------------------------------------------------------------------------------- 1 | global using Xunit; -------------------------------------------------------------------------------- /test/performance/Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /test/performance/Elsa.Workflows.PerformanceTests/Config.cs: -------------------------------------------------------------------------------- 1 | using BenchmarkDotNet.Configs; 2 | using BenchmarkDotNet.Diagnosers; 3 | using BenchmarkDotNet.Exporters; 4 | 5 | namespace Elsa.Workflows.PerformanceTests; 6 | 7 | public class Config : ManualConfig 8 | { 9 | public Config() 10 | { 11 | AddExporter(MarkdownExporter.GitHub); 12 | AddDiagnoser(MemoryDiagnoser.Default); 13 | } 14 | } -------------------------------------------------------------------------------- /test/performance/Elsa.Workflows.PerformanceTests/Program.cs: -------------------------------------------------------------------------------- 1 | using BenchmarkDotNet.Running; 2 | 3 | BenchmarkSwitcher switcher = new(typeof(Program).Assembly); 4 | switcher.Run(args); -------------------------------------------------------------------------------- /test/unit/Elsa.Common.Core/Elsa.Common.Core.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /test/unit/Elsa.Http.UnitTests/Elsa.Http.UnitTests.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /test/unit/Elsa.Workflows.Core.UnitTests/Elsa.Workflows.Core.UnitTests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /test/unit/Elsa.Workflows.Core.UnitTests/ObjectConversion/Person.cs: -------------------------------------------------------------------------------- 1 | namespace Elsa.Workflows.Core.UnitTests.ObjectConversion 2 | { 3 | public class Person 4 | { 5 | public double? Age { get; set; } 6 | 7 | public string? Name { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /test/unit/Elsa.Workflows.Core.UnitTests/Usings.cs: -------------------------------------------------------------------------------- 1 | global using Xunit; -------------------------------------------------------------------------------- /test/unit/Elsa.Workflows.Runtime.UnitTests/Elsa.Workflows.Runtime.UnitTests.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /test/unit/Elsa.Workflows.Runtime.UnitTests/Usings.cs: -------------------------------------------------------------------------------- 1 | global using Xunit; --------------------------------------------------------------------------------