Bug 38627

Summary: Add pipelines support to Koha
Product: Koha Reporter: Martin Renvoize (ashimema) <martin.renvoize>
Component: Staff interfaceAssignee: Jake Deery <jake.deery>
Status: NEW --- QA Contact: Testopia <testopia>
Severity: enhancement    
Priority: P5 - low CC: gmcharlt, magnus
Version: Main   
Hardware: All   
OS: All   
See Also: https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=38115
GIT URL: Change sponsored?: ---
Patch complexity: --- Documentation contact:
Documentation submission: Text to go in the release notes:
Version(s) released in:
Circulation function:
Bug Depends on:    
Bug Blocks: 37248    

Description Martin Renvoize (ashimema) 2024-12-05 07:51:18 UTC
We have lots of scripts and tools available to us on the Koha server, however many of these have no staff side UI and many of them work in combinations one after the other.

It would be great to have a pipeline management tool to allow certain actions to trigger various tasks and have the successful completion of one task trigger the execution of the next task in a pipeline, likely one that uses the output of the previous task.

An obvious use case is runreport.pl followed by a file transfer or email etc.
Comment 1 Magnus Enger 2024-12-05 09:24:20 UTC
Interesting! Is this just an idea, or something you plan working on?
Comment 2 Martin Renvoize (ashimema) 2024-12-05 10:27:29 UTC
It's part of an evolving idea.. Jake is working on a specification now.  It comes out of a series of 'Power to the user' developments that ByWater are sponsoring us to do which include making a generic FTP configuration page (pulling a lot of the EDI Transport code into a more generic module), and then allowing said (S)FTP setups to be used by Reports, Exports, Imports, EDI, MARCOrdering etc etc.

It basically occurred to me that if we created a pipeline builder utilising some of the existing background job infrastructure for describing 'tasks' and added some of my crontab plugin work for setting initial triggers we could have pipelines that trigger at certain times and then use background jobs to, for example, run a report -> FTP the result somewhere... similarly one could trigger a FTP download -> load the downloaded file via patron load, marc import or whatever.. etc, etc.