Simple Workflow Manager That Can Execute Developer Defined Methods From User Defined Workflow Files

Share Your Love

In this post, today I am going to explaining about one of another GitHub repository on Simple Workflow Manager That Can Execute Developer Defined Methods From User Defined Workflow Files.

pyconduit:

A simple workflow manager that executes pre-defined functions from user-defined workflow files. You (“developer”) create the functions, and they (“users”) will able to call the functions by typing its name and pass the required parameters.

It can be used to provide a “custom code evaluation” / “safe eval” feature to your users in your app. So they will only able to access functions that you allow. Users can also reference to other steps, set variables, and use standard functions in their workflow files.

pyconduit comes with Text, Math, Dictionary, List and Variable blocks like in Python’s standard built-in functions. So you don’t need to reinvent the wheel by writing these functions again.

It does not execute multiple functions in the same time. It executes functions step by step (because that’s a how “workflow” works), so next function will only execute after previous function has finished execution. Even if they are asynchronous / coroutines.

Features:

  • Prevent access to a block for a specific user. For example, if you have a block that makes an HTTP request, you can add a label to it, and pyconduit will not allow your users to use the function if a job doesn’t have that label too.
  • Add step limits, max usage limit for a block per workflow (it can be changed for a specific job too).
  • If you install pydantic library in your environment, pyconduit will use it automatically to enforce type hints/annotations in function parameters, so users won’t able to send the invalid type of values when the parameter expects a specific type of value.
  • Use Context Tags in the workflows to access variables, get the return value of previous steps and read object values with dotted path. For example, users can type {: my_step_id :} in the workflow to get the return value of my_step_id dynamically.

Warning:

As pyconduit can be used as “isolated space”, you should be careful about functions that you enabled to user. (for example, you shouldn’t make a function that allows users to get a global value in the runtime from their input). Also, even pyconduit blocks access to keys that starts or ends with underscore, there is no 100% warranty about security.

How to Install?

python -m pip install pyconduit

GitHub:

Please comment and share this GitHub repository and wants to submit the Github repository please WhatsApp us.

Share Your Love
Avatar photo
Lingaraj Senapati

Hey There! I am Lingaraj Senapati, the Founder of lingarajtechhub.com My skills are Freelance, Web Developer & Designer, Corporate Trainer, Digital Marketer & Youtuber.

Articles: 411

Newsletter Updates

Enter your email address below to subscribe to our newsletter