Code Monkey home page Code Monkey logo

wexflow's Introduction

I build innovative and scalable solutions for digital media. With several years of software engineering experience, I have a strong background in web, mobile and desktop development, as well as media asset management and digital asset management systems.

My strength lies in the development of innovative solutions and the ability to adapt them to different industries looking to streamline or automate their work process or data management.

I am passionate about learning new technologies and frameworks and applying them to solve complex and challenging problems. I am proficient in working with Node.js, React, React Native, TypeScript, C# and .NET among other languages and tools. My ultimate aim is to deliver high-quality software products that meet the requirements and expectations of our customers.

PROJECTS
  • Wexflow: .NET Workflow Engine and Automation Platform
  • BookCars: Car Rental Platform with Mobile App
  • Movin' In: Rental Property Management Platform with Mobile App
  • Wexstream: Video Conferencing Platform
  • wexCommerce: eCommerce Platform on Next.js
ARTICLES
BOOKS
AWARDS
  • Microsoft Community Contributor - Microsoft - 2011
  • Most Valuable Professional - CodeProject - 2020
  • Most Valuable Professional - CodeProject - 2023
  • Most Valuable Professional - CodeProject - 2024

wexflow's People

Contributors

aelassas avatar code-factor avatar dependabot[bot] avatar jancoyle avatar xtremeownagedotcom avatar

Stargazers

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

Watchers

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

wexflow's Issues

Adding dependencies to custom tasks

Hello, first of all love the project.
I'm trying to make a custom task and are running into an issue. I want my task to use a NuGet dependency but can't seem to get Wexflow to see the library dll I get the following error when trying to run my flow

2023-03-24 10:01:40,396 ERROR [17] - An error occured while running the workflow. Error: {id: 34, name: test, enabled: True, launchType: Periodic}
System.IO.FileNotFoundException: Could not load file or assembly 'NModbus, Version=3.0.78.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.

File name: 'NModbus, Version=3.0.78.0, Culture=neutral, PublicKeyToken=null'
   at Wexflow.Tasks.FirstTestTask.ModbusHandler..ctor(String ip, Int32 port, Byte modbusAddress)
   at Wexflow.Tasks.FirstTestTask.FirstTestTask.Run()
   at Wexflow.Core.Workflow.RunSequentialTasks(IEnumerable`1 tasks, Boolean& success, Boolean& warning, Boolean& error)
   at Wexflow.Core.Workflow.StartSync(String startedBy, Guid instanceId, Boolean& resultWarning)

I have tried placing the nmodbus dll in the same folder as my custom task dll and in the wexflow.server folder as i can other dependencies are located here.

Do I really need to download the project ad add it before publishing it or is there another way to use NuGet packages in custom workflows?

Getting my task to appear and add to designer.

Here is my task project.
I want to create a dummy task and be able to add it to a workflow, but it does not appear in the task search list.

I extracted .net core file to C:\wexflow-7.8-windows-netcore
I ran install.bat
I ran run.bat
I mapped IIS site to the backend folder under folder C:\wexflow-7.8-windows-netcore\Backend

SidekickArchiveReplyWF.zip

image

Task is not in the list

task files are in
image

[Question] Roadmap and Issue Priority for contributions?

Question

Do you have a list of Wishlist / Backlog / Roadmap features that you would like implemented? This will be for contributors to review so they know what your priorities are.

I think it would be very cool to have this, so that people can pick tickets instead of randomly implementing new features that may or may not be in scope of the project.

Thank you!

Note

Again, I very much admire this app / tool! Its very cool and well made. I very much appreciate that you used Xml compared to the more popular alternative .yaml . As a C# developer, I find XML files very comfortable and dislike whitespace so much in .Yaml and other whitespaces langues looks over at python... - So I just watnted to thank you agan.

Required information

Hello,

Open source looks really good. Could you please let me know how can we handle below features

  1. Parallel processing of work flow tasks
  2. UI based configuration for handling conditions and switches
  3. Can we keep break point at particular task in work flow and edit input to see the results

Thank you.

The current process engine is designed to be volatile and lacks persistence processing for running processes

for example.

  1. start, Workflow_Approval with new instance.
  2. before approval this instance.
  3. stop flowengine console .
  4. restart flowengine
  5. that instance is lost.

The above scenario is only to describe the need to restart the application for maintenance and other requirements during the process execution.

It is recommended to add the persistence of the process execution process to record where the current process is executed. You can reload this part of the process next time you start it.

Does not compile under visual studio 2022

The wexflow.sln does not compile. It produces numerous errors and appears to be a mix of .net 4.8 and.net core projects.

How can i compile this with .net core only?

Wexflow Wishlist and Feature Requests

Hi,

If you want a new feature in Wexflow, feel free to add your feature request on this board with a description of what you want.

If you found a bug, please open a new issue and don't leave a message on this board.

Kind regards,

Questions

Is there a way to group a collection of tasks, IE per client.
Set params per client/profile and inherit thru to jobs.

Examples:
Have N # clients, all clients have the same jobs/tasks, would like to create/copy a collection of tasks IE get files from ftp, call endpoints, etc dont matter what the tasks are per say, but the format for ever flow is the same per client, but maybe each client has a standard set of "config" variables that could be set at a "profile" level so we can say create the "Client Bobs" profile set their account id, ftp credentials, and some other "standard" things that can then be inherited down to each flow. Then have ability to copy/clone a set of "flows" and they pull the ftp creds from the profile or the accountId etc, but the code for each flow is the same, maybe the trigger time changes from 5min to 20min but the ability to pull the info from the profile is the key.

Multi server processing, due to having multi clients most likely would need to be able to have multi boxes to process.

Can flows be configured to only run 1 instanced, so if job is set to every 5min, but its taking longer than 5min to run, the next occurrence wont run, but on a diff flow it can.

[Question] - Just wanted to confirm that the SFTP plugin handles incomplete Downloads (and uplaods)

Massively look app!! This is great!

I reviewed the code for the SFTP and it looks like it does handle incomplete download and uploads by simply over-writing it?

I have a use-case where the machine that WexFlow will:

  • Wexflow installed on LocalComputerAAA
  • Connect to FTP RemoteServer123
  • Wexflow downloads files from RemoteServer123 and saves them to a NAS or Drive connected to LocalComputerAAA
  • LocalComputerAAA is frequently restarted and shut down, so I just wanted to confirm its resiliency

Questions

1.) Just to confirm - incomplete files will be 'overwrited' (upload and downloaded
2.) The FTP downloads to the / of where wexflow is hosted on? Where does the FTP task download files to?

  • I understand that first the files are downloaded (one by one)
  • Then the file mover when each task is complete, will move the file from the root / of wexflow to the destination folder.

Is this correct?

3.) Can you clarify please what the selectFiles property does?

https://github.com/aelassas/wexflow/wiki/Ftp

<?xml version="1.0" encoding="utf-8" ?>
<Tasks>
  <!--
    Ftp is a sequential task that allows to list, upload, download or delete files over FTP, FTPS or SFTP.
  -->
  <Task id="$int" name="Ftp" description="$string" enabled="true|false">
    <!--  The files loaded by the task having as id $taskId will be sent. -->
    <Setting name="selectFiles" value="$taskId" />
    <Setting name="selectFiles" value="$taskId" />
    <!-- You can add as many selecteFiles as you want.-->
    <!--- FTP command. Possible values: list|upload|download|delete-->
    <Setting name="command" value="list|upload|download|delete" />
    <!--- FTP Protocol. Possible values: ftp|ftps|sftp-->
    <Setting name="protocol" value="ftp|ftps|sftp" />

Notes

I will have to do some testing of my own to better understand how these work:

To understand how tagging and renaming files work, refer to the documentation of the ListFiles and Xslt tasks.

I read the documentation, and this is still unclear to me. It sounds like some sort of file / task monitor? I'm not quite sure.

Wiki

I will get the Wiki updated with 'Error Handling' in the FTP area once this is confirmed and I understand it.

Thanks so much!

Error ConnectionString in Helper.cs in PostgreSQL

In ConnectionString not present database name Database=" + databaseName

public void CreateDatabaseIfNotExists(string server, string userId, string password, string databaseName) { using (var conn = new NpgsqlConnection("Server=" + server + ";User Id=" + userId + ";Password=" + password))

Replacement strings in HTTP Tasks

I have tasks that simply call to apis, but the urls can change based on id. I don't want to write a custom task for every endpoint.

Is it possible to use the HTTP tasks , like HttpGet where the setting is composed of the value of an incoming variable?

Example URl Setting = http://abc.com/$VARA
where VAR A is the value of a rest variable that filled in at runtime?

If not, how should i do this?

Good to see you back, long time no see

Hey Alessas, Good to see you back, long time no see. I was searching for this project for a good 2 year and was mortified to see it missing everywhere.
All we could find was old forks that were of no use to us.

Thanks for being alive, well and back on GitHub

Docker installation fails on Windows 11, WSL 2

I have tried the both linux zip and the windows .net core zip. Neither works for me. Both lead to the same error shown below.

When running "docker compose up" I get the following:
$ sudo docker compose up
[+] Running 2/2
โœ” Container wexflow-wexflow-1 Created 0.2s
โœ” Container wexflow-wexflow-backend-1 Created 0.2s
Attaching to wexflow-wexflow-1, wexflow-wexflow-backend-1
wexflow-wexflow-backend-1 | Starting up http-server, serving ./
wexflow-wexflow-backend-1 | Available on:
wexflow-wexflow-backend-1 | http://127.0.0.1:8011
wexflow-wexflow-backend-1 | http://172.22.0.3:8011
wexflow-wexflow-backend-1 | Hit CTRL-C to stop the server
wexflow-wexflow-1 | 2023-08-18 02:45:57,837 INFO [1] -
wexflow-wexflow-1 | 2023-08-18 02:45:57,875 INFO [1] - Starting Wexflow Engine
wexflow-wexflow-1 | Unhandled exception.
wexflow-wexflow-1 | System.IO.FileNotFoundException: Could not find file '/opt/wexflow/Wexflow.Server/C:\Wexflow-netcore\Wexflow.xml'.
wexflow-wexflow-1 | File name: '/opt/wexflow/Wexflow.Server/C:\Wexflow-netcore\Wexflow.xml'
wexflow-wexflow-1 | at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirError)
wexflow-wexflow-1 | at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode, Func4 createOpenException) wexflow-wexflow-1 | at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Func4 createOpenException)
wexflow-wexflow-1 | at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
wexflow-wexflow-1 | at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize)
wexflow-wexflow-1 | at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy)
wexflow-wexflow-1 | at System.Xml.XmlTextReaderImpl.FinishInitUriString()
wexflow-wexflow-1 | at System.Xml.XmlReaderSettings.CreateReader(String inputUri, XmlParserContext inputContext)
wexflow-wexflow-1 | at System.Xml.Linq.XDocument.Load(String uri, LoadOptions options)
wexflow-wexflow-1 | at Wexflow.Core.WexflowEngine.LoadSettings() in //src/netcore/Wexflow.Core/WexflowEngine.cs:line 246
wexflow-wexflow-1 | at Wexflow.Core.WexflowEngine..ctor(String settingsFile, LogLevel logLevel, Boolean enableWorkflowsHotFolder, String superAdminUsername, Boolean enableEmailNotifications, String smtpHost, Int32 smtpPort, Boolean smtpEnableSsl, String smtpUser, String smtpPassword, String smtpFrom) in /
/src/netcore/Wexflow.Core/WexflowEngine.cs:line 188
wexflow-wexflow-1 | at Wexflow.Server.WexflowServer.Main()
wexflow-wexflow-1 exited with code 139

Docker Support?

Hey guys,

Just stumbled on this project and it looks pretty cool.

You're using net core so could we do a docker image of this?

Instead of having to install the services on a machine, we can just spin up a single or multiple containers and be OS independent.

Task timeout and Task retries

Hi,

Currently trying to use Wexflow for automation of some tasks which runs frequently.
But have few questions with implementing below functionality.Hope anyone can help me.

  1. Timing out running task if it doesnt complete in certain time limit.
  2. Retrying same task if it fails
  3. how to create a lock on a resource, so that only one task work on the resource.

Thank you

Wexflow Logs Galore

How do we minimize Webflow logs?
I love Wexflow, but I'm always frustrated when logs is a little to much.
On a server I have about 10 tasks schedule for running each 1 to 5 min.
Theese tasks generates about 1 million log/folder structure in a 2 months period, so I do a lot of clean up on theese logs, only the delete them

Wexflow needs a log strategy
Can we make a log strategy setting e.g.
None = No Logs
Minimum = Only last log
Severely = Only last log and log with errors.
All = All logs (like now)

Alternatively Logging Frameworks
We could consider supporting a external.

There are 4 logging frameworks that pretty much dominate the .NET space. Those are log4net, NLog, Serilog, and Microsoft.Extensions.Logging (only for .NET Core and ASP.NET Core). All of them are great, free, and offer similar functionality.

start muti wexflow server

i english not good

Will starting multiple Wexflow servers result in duplicate job execution? Is it possible to set it up in a cluster configuration? Can it be configured for parallel execution?

thx feeback

Custom task not showing

I am trying to make custom task for
Net core wexflow 7.5.0 but it's not showing in manager. Or while running service.. i properly follow the steps of adding custom task in .net core wexflow please help!

Question

If i have a workflow where a task or tasks fail,
how do i roll back to valid state?

Do you have a retry framework incorporated in such a case?

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

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

  • D3 photo D3

    Data-Driven Documents codes.