Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/change singleton to scope #4635

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
ef9ce4a
feat(scoped): move dependancies to scoped instead of singleton if pos…
Nov 14, 2023
c8a08f6
fix(scoped): Timer and LiveTest
Nov 17, 2023
5c02af7
fix(scoped): change scope of python and csharp features
Nov 20, 2023
9c62416
fix(scoped): remove FireAndForgetStrategy and replace if by Backgroun…
Nov 28, 2023
524a574
fix(scoped): add .editorconfig to avoid changing the sort order of us…
Dec 4, 2023
6b25231
Update title in README.md
sfmskywalker Dec 10, 2023
006db97
Remove npm-packages workflow, adjust branch triggers in workflows
sfmskywalker Dec 10, 2023
84ea6d8
Remove obsolete files from designer packages
sfmskywalker Dec 10, 2023
8bf05c7
Add badges to README.md
sfmskywalker Dec 10, 2023
49e96d5
Update README with enhanced instructions for Elsa server and studio
sfmskywalker Dec 11, 2023
e9f1aad
Add IsWorkflowDefinitionActivity method to ActivityExtensions
sfmskywalker Dec 11, 2023
0657653
Refactor MassTransit & AzureServiceBus configuration and delete unnec…
sfmskywalker Dec 11, 2023
5d9e886
Enhance configuration options for MassTransit
sfmskywalker Dec 11, 2023
41b907a
Renamed AI file
sfmskywalker Dec 13, 2023
e8e1ec7
Update Elsa.Studio package versions
sfmskywalker Dec 13, 2023
eeba1f8
Reorganize README and add Docker instructions
sfmskywalker Dec 13, 2023
318d956
Update description in README.md
sfmskywalker Dec 13, 2023
8b29388
Add tests for implicit joins and fix duplicate activity scheduling
sfmskywalker Dec 13, 2023
6a36cbd
Add ExpressionEvaluatorOptions to JavaScriptEvaluator
sfmskywalker Dec 14, 2023
3ca9b29
Update README to add access information when user tried to run elsa w…
zergmk2 Dec 14, 2023
4a8269e
[no ci] add link to Elsa 2 in README
mohdali Dec 14, 2023
1204ac0
Remove Console and ASP.NET examples, simplify README.md
sfmskywalker Dec 16, 2023
65cb264
Implement batch processing in BulkDispatchWorkflows
sfmskywalker Dec 16, 2023
6b1f29d
Merge branch 'main' of https://github.com/elsa-workflows/elsa-core
sfmskywalker Dec 16, 2023
19522e4
Refactor workflow methods for async execution
sfmskywalker Dec 16, 2023
fc878a4
Refactor background activities scheduling
sfmskywalker Dec 17, 2023
916256e
Change ActivityKind from Job to Task in BulkDispatchWorkflows
sfmskywalker Dec 17, 2023
6db3cc9
Update BulkDispatchWorkflows activity
sfmskywalker Dec 17, 2023
b5d38b6
Add methods to handle activity run asynchronously flag
sfmskywalker Dec 18, 2023
ae821b4
Add 'Persister' to UserDictionary in DotSettings
sfmskywalker Dec 18, 2023
f575d38
Add Bookmark Persister and Bookmark Updater
sfmskywalker Dec 18, 2023
cc24c5c
Add bookmarks processing to DefaultBackgroundActivityInvoker
sfmskywalker Dec 18, 2023
3aedf27
Update workflow handling and simplify codebase
sfmskywalker Dec 18, 2023
8ceb76d
Add conversion support for long type in ObjectConverter
sfmskywalker Dec 18, 2023
a9ccd4f
Add 'Noop' method to WorkflowExecutionContext
sfmskywalker Dec 18, 2023
49ba29d
Add AutoComplete option to workflow bookmarks
sfmskywalker Dec 18, 2023
32e9cbf
Refactor object initialization in ActivityExecutionContext
sfmskywalker Dec 18, 2023
5e95daa
Refactor code for readability and improved logging
sfmskywalker Dec 18, 2023
76bf3f8
Refactor code structure for ServiceBus Integration tests
sfmskywalker Dec 18, 2023
20cf5ad
Remove specific activity instance bookmarks
sfmskywalker Dec 18, 2023
c91338d
Update Elsa.Studio.Login.BlazorWasm version
sfmskywalker Dec 18, 2023
6a5835e
Update artwork
sfmskywalker Dec 25, 2023
2c0c880
Implement pagination for activity descriptor fetching
sfmskywalker Dec 25, 2023
46ba0d9
Refactor task payload extraction and update workflow builder
sfmskywalker Dec 25, 2023
2f10ef9
Update localhost port for workflow sample
sfmskywalker Dec 25, 2023
3dc7ceb
Refactor ExpressionExecutionContextExtensions module
sfmskywalker Dec 25, 2023
bcdd25f
Feature HTTP Activity : Allow adding Authorization Header without val…
jdevillard Dec 26, 2023
9175322
Add a more generic UIHandler to customize how inputAttributes can be …
jdevillard Dec 26, 2023
d9c1954
Update GitHub actions for packages publishing
sfmskywalker Dec 26, 2023
4c11545
Update FastEndpoints package and enable JWT Bearer Auth
sfmskywalker Dec 27, 2023
dd0711c
Refactor input output assignment and JSON converter
sfmskywalker Dec 27, 2023
c780cb3
Enhanced script language support in Elsa.AllInOne.Web
sfmskywalker Dec 27, 2023
6d4a428
Add logging to PythonGlobalInterpreterManager
sfmskywalker Dec 27, 2023
f17966c
Refactor project structure and Docker configurations
sfmskywalker Dec 27, 2023
3454ca0
Add GitHub Actions workflows for Elsa Docker images
sfmskywalker Dec 27, 2023
062158b
Update Dockerfiles and add Python 3.11
sfmskywalker Dec 27, 2023
e0b9356
Update Dockerfiles for Python 3.11 installation
sfmskywalker Dec 27, 2023
c01d329
Add Elsa.Studio.Web project to the solution
sfmskywalker Dec 27, 2023
b553ffe
Add Docker build script for Elsa Studio
sfmskywalker Dec 27, 2023
ddaeafc
Update Elsa.Studio package versions
sfmskywalker Dec 27, 2023
3b72157
Update Elsa.Studio packages to version 3.0.0-preview.171
sfmskywalker Dec 28, 2023
a41a542
Update Elsa.Studio package versions
sfmskywalker Dec 28, 2023
14992cf
Add CodeEditorOptions, EditorHeight, and MultiLineOptions classes
sfmskywalker Dec 28, 2023
511f5b5
Update Elsa.Studio packages to version 3.0.0-preview.172
sfmskywalker Dec 28, 2023
0bf562f
Add non-generic GetVariable method and Python accessors
sfmskywalker Dec 28, 2023
fac292a
Add UI hints to input fields in workflow core modules
sfmskywalker Dec 28, 2023
2a5cf04
Update HTTP endpoint authorization handler
sfmskywalker Dec 28, 2023
5202b39
Add JSON editor UI hint to HTTP activities
sfmskywalker Dec 28, 2023
5d936ad
Add UI hints for HTTP endpoint and single line fields
sfmskywalker Dec 28, 2023
382abfd
Update Elsa.Studio packages to version 3.0.0-preview.174
sfmskywalker Dec 28, 2023
bdc9d47
Add API key authentication for Elsa client
sfmskywalker Dec 28, 2023
6fe917c
add sample CustomUIHandler
jdevillard Dec 28, 2023
36791a5
Fix Httpendpoint Path
mohdali Dec 29, 2023
dc223bc
Refactor parameter in AddElsaClient method
sfmskywalker Dec 29, 2023
1d21cb3
Add extension method to get workflow instance ID
sfmskywalker Dec 29, 2023
704d4cd
Remove ElsaClient and related interfaces
sfmskywalker Dec 29, 2023
3acd7f7
Add condition to return json as string
sfmskywalker Dec 29, 2023
cb4dfea
Disable PythonEngine Shutdown to prevent deadlock
mohdali Dec 29, 2023
17452f7
Improve variable resolution in workflow activity
sfmskywalker Dec 29, 2023
d978151
Refactor Elsa API client to use API key authentication
sfmskywalker Dec 29, 2023
c33801d
Add workflow result variable to context scope
sfmskywalker Dec 29, 2023
cfb3d03
Merge branch 'main' into custom-uiprovider
sfmskywalker Dec 29, 2023
d635226
Refactor code by renaming and moving classes
sfmskywalker Dec 29, 2023
b7c5f81
Add sample CustomUIHandler (#4729)
jdevillard Dec 29, 2023
01c2df3
Merge branch 'custom-uiprovider' into main
sfmskywalker Dec 29, 2023
eb0395e
Update Elsa.Studio packages and modify authentication setup
sfmskywalker Dec 29, 2023
023ef26
Add System.Runtime to CSharpOptions
sfmskywalker Dec 30, 2023
af98624
Improve handling of non-HTTP context in HttpEndpoint
sfmskywalker Dec 30, 2023
cf3cab2
Add non-generic variable accessor method
sfmskywalker Dec 31, 2023
8bb36de
Add UIHint for FlowJoin activity
sfmskywalker Dec 31, 2023
6ba6556
Add Parser for Form data 'application/x-www-form-urlencoded' (#4733)
mohdali Dec 31, 2023
9c1ce0c
Update version naming in GitHub Actions
sfmskywalker Dec 31, 2023
2884969
Fix conditional formatting in GitHub workflow
sfmskywalker Dec 31, 2023
9e51aaa
Merge branch 'main' into feature/change-singleton-to-scope
sfmskywalker Jan 1, 2024
8b04596
Refactor variable names and update notification strategy
sfmskywalker Jan 1, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
230 changes: 230 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,230 @@
# Remove the line below if you want to inherit .editorconfig settings from higher directories
root = true

# C# files
[*.cs]

#### Core EditorConfig Options ####

# Indentation and spacing
indent_size = 4
indent_style = space
tab_width = 4

# New line preferences
end_of_line = crlf
insert_final_newline = false

#### .NET Coding Conventions ####

# Organize usings
dotnet_separate_import_directive_groups = false
dotnet_sort_system_directives_first = true
file_header_template = unset

# this. and Me. preferences
dotnet_style_qualification_for_event = false
dotnet_style_qualification_for_field = false
dotnet_style_qualification_for_method = false
dotnet_style_qualification_for_property = false

# Language keywords vs BCL types preferences
dotnet_style_predefined_type_for_locals_parameters_members = true
dotnet_style_predefined_type_for_member_access = true

# Parentheses preferences
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity
dotnet_style_parentheses_in_other_operators = never_if_unnecessary
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity

# Modifier preferences
dotnet_style_require_accessibility_modifiers = for_non_interface_members

# Expression-level preferences
dotnet_style_coalesce_expression = true
dotnet_style_collection_initializer = true
dotnet_style_explicit_tuple_names = true
dotnet_style_namespace_match_folder = true
dotnet_style_null_propagation = true
dotnet_style_object_initializer = true
dotnet_style_operator_placement_when_wrapping = beginning_of_line
dotnet_style_prefer_auto_properties = true
dotnet_style_prefer_compound_assignment = true
dotnet_style_prefer_conditional_expression_over_assignment = true
dotnet_style_prefer_conditional_expression_over_return = true
dotnet_style_prefer_foreach_explicit_cast_in_source = when_strongly_typed
dotnet_style_prefer_inferred_anonymous_type_member_names = true
dotnet_style_prefer_inferred_tuple_names = true
dotnet_style_prefer_is_null_check_over_reference_equality_method = true
dotnet_style_prefer_simplified_boolean_expressions = true
dotnet_style_prefer_simplified_interpolation = true

# Field preferences
dotnet_style_readonly_field = true

# Parameter preferences
dotnet_code_quality_unused_parameters = all

# Suppression preferences
dotnet_remove_unnecessary_suppression_exclusions = none

# New line preferences
dotnet_style_allow_multiple_blank_lines_experimental = true
dotnet_style_allow_statement_immediately_after_block_experimental = true

#### C# Coding Conventions ####

# var preferences
csharp_style_var_elsewhere = false
csharp_style_var_for_built_in_types = false
csharp_style_var_when_type_is_apparent = false

# Expression-bodied members
csharp_style_expression_bodied_accessors = true
csharp_style_expression_bodied_constructors = false
csharp_style_expression_bodied_indexers = true
csharp_style_expression_bodied_lambdas = true
csharp_style_expression_bodied_local_functions = false
csharp_style_expression_bodied_methods = false
csharp_style_expression_bodied_operators = false
csharp_style_expression_bodied_properties = true

# Pattern matching preferences
csharp_style_pattern_matching_over_as_with_null_check = true
csharp_style_pattern_matching_over_is_with_cast_check = true
csharp_style_prefer_extended_property_pattern = true
csharp_style_prefer_not_pattern = true
csharp_style_prefer_pattern_matching = true
csharp_style_prefer_switch_expression = true

# Null-checking preferences
csharp_style_conditional_delegate_call = true

# Modifier preferences
csharp_prefer_static_local_function = true
csharp_preferred_modifier_order = public,private,protected,internal,file,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async
csharp_style_prefer_readonly_struct = true
csharp_style_prefer_readonly_struct_member = true

# Code-block preferences
csharp_prefer_braces = true
csharp_prefer_simple_using_statement = true
csharp_style_namespace_declarations = file_scoped:warning
csharp_style_prefer_method_group_conversion = true
csharp_style_prefer_primary_constructors = true
csharp_style_prefer_top_level_statements = true

# Expression-level preferences
csharp_prefer_simple_default_expression = true
csharp_style_deconstructed_variable_declaration = true
csharp_style_implicit_object_creation_when_type_is_apparent = true
csharp_style_inlined_variable_declaration = true
csharp_style_prefer_index_operator = true
csharp_style_prefer_local_over_anonymous_function = true
csharp_style_prefer_null_check_over_type_check = true
csharp_style_prefer_range_operator = true
csharp_style_prefer_tuple_swap = true
csharp_style_prefer_utf8_string_literals = true
csharp_style_throw_expression = true
csharp_style_unused_value_assignment_preference = discard_variable
csharp_style_unused_value_expression_statement_preference = discard_variable

# 'using' directive preferences
csharp_using_directive_placement = outside_namespace

# New line preferences
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true
csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true
csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = true
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true
csharp_style_allow_embedded_statements_on_same_line_experimental = true

#### C# Formatting Rules ####

# New line preferences
csharp_new_line_before_catch = true
csharp_new_line_before_else = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_open_brace = all
csharp_new_line_between_query_expression_clauses = true

# Indentation preferences
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = true
csharp_indent_case_contents_when_block = true
csharp_indent_labels = one_less_than_current
csharp_indent_switch_labels = true

# Space preferences
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_comma = true
csharp_space_after_dot = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
csharp_space_around_declaration_statements = false
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
csharp_space_before_open_square_brackets = false
csharp_space_before_semicolon_in_for_statement = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false

# Wrapping preferences
csharp_preserve_single_line_blocks = true
csharp_preserve_single_line_statements = true

#### Naming styles ####

# Naming rules

dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i

dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case

dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case

# Symbol specifications

dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.interface.required_modifiers =

dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.types.required_modifiers =

dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.non_field_members.required_modifiers =

# Naming styles

dotnet_naming_style.pascal_case.required_prefix =
dotnet_naming_style.pascal_case.required_suffix =
dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case

dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix =
dotnet_naming_style.begins_with_i.word_separator =
dotnet_naming_style.begins_with_i.capitalization = pascal_case
61 changes: 61 additions & 0 deletions .github/workflows/elsa-server-and-studio.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Build and deploy Elsa Server + Studio reference application as Docker image
on:
workflow_dispatch:
push:
branches:
- main

jobs:
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set up QEMU
uses: docker/setup-qemu-action@v2
with:
platforms: all

- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2

- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
# list of Docker images to use as base name for tags
images: |
elsaworkflows/elsa-server-and-studio-v3
flavor: |
latest=true
# generate Docker tags based on the following events/attributes
tags: |
type=sha

- name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}

- name: Build and push
id: docker_build
uses: docker/build-push-action@v3
with:
builder: ${{ steps.buildx.outputs.name }}
context: .
file: ./docker/ElsaServerAndStudio.Dockerfile
platforms: linux/amd64,linux/arm64,linux/arm/v7
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache

- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
name: Build and deploy All In One reference application as Docker image
name: Build and deploy Elsa Server reference application as Docker image
on:
workflow_dispatch:
push:
branches:
- v3
- main

jobs:
push_to_registry:
Expand All @@ -29,7 +29,7 @@ jobs:
with:
# list of Docker images to use as base name for tags
images: |
elsaworkflows/elsa-v3
elsaworkflows/elsa-server-v3
flavor: |
latest=true
# generate Docker tags based on the following events/attributes
Expand All @@ -49,7 +49,7 @@ jobs:
with:
builder: ${{ steps.buildx.outputs.name }}
context: .
file: ./docker/Dockerfile
file: ./docker/ElsaServer.Dockerfile
platforms: linux/amd64,linux/arm64,linux/arm/v7
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
Expand Down
61 changes: 61 additions & 0 deletions .github/workflows/elsa-studio.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Build and deploy Elsa SStudio reference application as Docker image
on:
workflow_dispatch:
push:
branches:
- main

jobs:
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set up QEMU
uses: docker/setup-qemu-action@v2
with:
platforms: all

- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2

- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
# list of Docker images to use as base name for tags
images: |
elsaworkflows/elsa-studio-v3
flavor: |
latest=true
# generate Docker tags based on the following events/attributes
tags: |
type=sha

- name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}

- name: Build and push
id: docker_build
uses: docker/build-push-action@v3
with:
builder: ${{ steps.buildx.outputs.name }}
context: .
file: ./docker/ElsaStudio.Dockerfile
platforms: linux/amd64,linux/arm64,linux/arm/v7
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache

- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}