⏩ Meet Spade - Free and Open Source Interface to All Automated Workflows🚀

Wojciech Mikusek Tech Lead

Meet Spade

Using developer’s skills to automate frequent tasks in business projects is a great way to accelerate teams in your organisation, but keeping all scripts and tools in check can quickly become a headache. Sounds familiar? Spade is the missing link you need, and we at Exlabs already love it!

  

What is Spade?

Developed in collaboration between Exlabs and our partners from CRU Group, Spade is a web interface to organise, browse and trigger automated workflows. Furthermore, Spade is:
  • easy to use for anyone (no technical knowledge needed),
  • extremely customizable for developers to fit any kind of automation they maintain (be it an Airflow DAG, Jenkins pipeline or a plain Python script)
  • if that’s not enough, it’s also open source and free for everyone!
From a technical perspective, you can think of Spade as a web UI where any authorised user can trigger a predefined workflow. Workflows can be of varying complexity, but the interface remains simple and the same for all automations in your organization. The more types of automations you have – the more Spade is simplifying user experience, as it doesn’t bother the users with becoming experts in, let’s say, navigating Airflow or installing Python packages on their own machine.

How do I know if I need Spade in my life?

Great question! If you have at least one technical tool or automated workflow that would be beneficial to become accessible to a larger audience in your organisation, then you can already consider Spade as the missing link you need.
On the other hand, if you are yet to automate frequent tasks, but it takes too much resources to implement a solution which is accessible enough to become part of your everyday processes, you can use Spade to lift the heavy part. Usually, for scripts and automations, it’s the user interface part which drains most of developers’ time, and not the actual workflow under the hood.

  

Deep Dive Into Spade Ecosystem

In Spade, there are two primary user spaces:

  • Work, which consists of Files and Processes,
  • Admin, which consists primarily of File Processors and Executors.
The front page of Spade is the Work space, which all authorised users can access. This space can be used to browse, search, filter and trigger workflows. There are two types of workflows, Files and Processes. Intuitively, the earlier one lets the user attach a file to their trigger request. It can be used for any kind of automation which requires a data file as an input, for example a one that transforms data from Excel spreadsheet and uploads it to a database.

Details view on a file workflow. Note the “History” tab – Spade is auditable and keeps activity logs from previous runs, so you can always trace back to who and when triggered a workflow.

The other kind of workflow,

After we hit “File Upload” button, a form is displayed. The form is defined using JSON Schema, which allows the developer to specify fields, their types and simple checks – separately for each File and Process.

On the other hand, there is an Admin space which is restricted to… you guessed it, admins. In this space, one can define new File Processors and Executors. Those entities represent a link between Spade’s interface and underlying workflow, defined in Python code.

The architecture of Spade – Spade Documentation © 2024 CRU International Ltd.

  

How to start using Spade?

If you feel like Spade is a good fit for your team, then there’s nothing blocking you from starting using it! Since Spade is a free and open source project, you can set up your own instance of it within your organization’s network.

 

The official documentation on Spade provides step-by-step instructions how to get started with Spade. You can get a working local app in minutes thanks to Docker, and for production, we recommend using Kubernetes with a predefined Helm chart.

  

That’s it.

Thank you for reading this post! We hope that Spade will help many teams organise their work more efficiently. Also, we wholeheartedly invite everyone willing to involve in open source initiatives to contribute! There are endless ways to support Spade libraries by adding extensions consisting of generic workflows, which could be useful for a broader audience.