Package: laboro
gitea: none
include_toc: trueLaboroWhat isLaboro?Laborois aNO-Code / Low-Codeworkflow automation tool that helps you to build and run automated tasks with the least amount of effort and technical knowledge:You don't need to know how to install a specific development environment to useLaboro.You don't need to have advanced system administration knowledge to run yourLaboroautomated tasks.How canLaborohelp me ?Busy developers and system administrators have many task automation needs, but often don't have enough time to write and maintain their scripts and, even worse, when there are scripts, they rarely are consistent with each other, which makes their maintenance tedious.Laboroprovides a unique way toquicklywrite and execute standardized, easy to maintain automated workflows without any need to install a specific environment or dependencies of any kind.It also:checks all given parameters consistency and validitywithout having to code anyargparseor equivalentmanages sensible data encryptionsuch as login and password.keeps trace of all executions of allworkflowswith start time, end time, execution time, all given parameters and exit codeOutputs a per workflow executionstandardized, formatted and timestamped login both a file and thestandard output.Advanced users shall findLaboroas a mix between:ACI/CDtool such asGitlab CIAconfiguration provisioningtool such asAnsibleAnExtract Transform Loadtool such asTalend.Anyway, the main purpose ofLaborois to provide a tool to quickly write highly standardized and easy to maintain automation tasks with the least amount of effort and technical knowledge.What doesLaboromeanLaborois the latin expression for"I am working".Your time is valuable and tedious tasks are for robots.Laborois always pleased to perform all your repetitive tasks for you while allowing you to stay focused on the part of your job where you bring real added value.Development statusLaborois currently well tested and"without known bug"but is still inbetastage and will not be considered suitable for production untilLaboro-1.0.0release.Status of this documentationThis documentation is a work in progress and changes may occur until the release of theLaboro-1.0.0version.InstallLaboroLaboroleverages modern container environments such asPodmanorDocker.Follow thequick installation guidefor all needed details.ConfigurationSinceLaborois run as a container, it does not require any configuration tweaks.However, advanced users may have a look onhow to configureLaboroto suit specific needs.ConceptsLaborolays on the following fundamental concepts:sessionshistorysecrets and data encryptionloggingworkspacesworkflowspackages and modulesinstancesstepsactionsmethodsvariables and iterablesloopsconditionsfiles and data filesModulesLaborocapabilities are extended throughmodulesdelivered asPythonpackages.All information aboutavailable modulesandhow to write you own moduleare availablehere.Configure your first workflowConfiguring aLaboroworkflow is basically writing aYAMLfile.You may want to first have a look at theunderlying conceptsor if you feel brave enough go straight to step by step guide andconfigure you first workflowRunning your workflowsOnce all yourworkflowsare configuredand saved in the/path/to/local/workflowdir, you can run them by issuing the following command:Example:podmanrun--namelaboro\-eTZ=Pacific/Noumea\-v/path/to/local/workflowdir:/opt/laboro/workflows:Z\-v/path/to/local/workspacesdir:/opt/laboro/workspaces:Z\-v/path/to/local/logs:/opt/laboro/log:Z\mcosystem/laboro:latest\-wworkflow_demo_1.ymlworkflow_demo_2.ymlworkflow_demo_3.ymlIn this example the 3 workflowsworkflow_demo_1.yml,workflow_demo_2.yml,workflow_demo_3.ymlwill be run sequentially in the specified order within a container which time zone will be set toPacific/Noumea.The container also has three host directories mounted:/path/to/local/workflowdirmounted on/opt/laboro/workflows/path/to/local/workspacesdirmounted on/opt/laboro/workspaces/path/to/local/logsmounted on/opt/laboro/logYou may find more specific examples ofhow to run you workflowShow me more !This repository host all the necessary bits to install, configure and runLaborofor demonstration and testing purpose:https://codeberg.org/laboro/laboro_pocYou will find all needed instructions to install asimulated basic infrastructurebased on 5 containers running the following services:A basic http ReST API serverA FTP server withTLS support)A mailer host with full support of SMTP/IMAP/POP withTLSsupportAPostgresqlrelational database serverAnopenSSHserver with fullSFTPsupportThe instructions will guide you through all steps to run a workflow using mostly allLaborofeatures such asloops,variables and iterables,conditional execution,split workflowsandencrypted data,data filesetc.A lot of fun to be discovered for whom would like to understandLaboroand wants its daily cumbersome tasks automated once for all 🙂Example of aLaborocontainer running a real life workflow namedworkflow_demo.yml: