Shuffle Apps

Documentation for apps. If you'd like to make an app check out this guide

Table of contents


Introduction

Apps are the heavy lifters of workflows within Shuffle. They give access to a library of functions, and are created using OpenAPI or pure Python. Shuffle gives you access to pre-defined integrations located here.

A subset of available apps can be found at https://shuffler.io/apps.

Apps view 1


How they work

Apps are the primary building blocks in workflows. Apps can be auto-generated from OpenAPI specifications or using Shuffle's app sdk. To enforce stability and usability, we use a versioning system to prevent sudden updates to apps.

Apps can contain multiple actions, which can take multiple variables. They are made to be able to interact with eachother by using each-others' data. Apps have the ability to be in multiple environment with different data (e.g. different credentials), before passing them on.

PS: In a future iteration, focus will move to an optional hybrid execution model (e.g. use cloud resources).


Actions

An app can perform more than one task based on predefined actions. These actions are defined by the developer, and are reusable and modifyable by the user of the app. An action should (for now) be a one-to-one representation of the function to run, and usually has arguments for authentication with the target application. Actions can contain multiple arguments.

You can see what actions an app has by going to /apps, then finding the app you're looking for.

Apps view 2


Arguments

Arguments are the variables used to perform an action. Arguments with an orange dot next to them are required, with yellow ones being optional. Arguments should have example text to to indicate the expected value. The first arguments of an app are usually related to authentication or the target URL, where we suggest using variables

You can see what parameters and action has by going to /apps, selecting an app and then the action.

Apps view 3


Updating apps remotely

PS: This only applies to onprem Going to /apps, there exists a button called "Download from Github" which by default will download apps from the directory https://github.com/frikky/shuffle-apps. You can type in your own repository along with authentication options if applicable.

Apps view 11

When the modal opens, there are two buttons:

  • Submit - Downloads and builds NEW apps
  • Force update - Downloads and builds ALL apps
  • Cancel - Closes the modal with no action


Searching for apps

When you set up Shuffle for the first time, it should provide you with >100 existing Apps. These are gathered from shuffle-apps, and will grow over time. Searching for apps is done by going to /apps and writing your search term. In the example below, we searched for "TheHive", which ends in TheHive being shown.

Apps view 4

A goal for Shuffle is to make it possible to search outside the apps you currently have. This is an open issue as of 23.05.2020, but will be worked on.

PS: Extended search can be done using the shuffler search-engine


Create apps

Apps in Shuffle can be made using the App Creator or with Python directly.

Read more about how to make an app here

If you have an OpenAPI config already

  • Click the "Generate from OpenAPI", paste the URL or data for your OpenAPI specification, then validate, before submitting. This should show you the app creator. ...

If you want to create an app

Apps view 5


Edit OpenAPI app

Creating or editing an app in Shuffle is made to be as simple as possible

Prerequisite knowledge:

  • HTTP - POST, GET etc.

App creator:

  • Add name, description, authentication, endpoint etc..
  • Create Actions.
  • Save. Apps view 6

If you've created an app using the editor, or uploaded an OpenAPI specification, it's changeable. Find the app you created by searching for it, then click the "Edit app" button as seen below. You can also delete it.

Required permissions (either or):

  • Admin
  • App owner / creator

Apps view 7 TBD


Finding apps

If the app you're looking for exists, it will be available on https://shuffler.io or Github. Apps available on the Shuffle website, can further be clicked then exported or tested directly.

Apps view search 16


Testing apps

After you've found a public or private app on https://shuffler.io, it's possible to test it directly. The view you get access to has the fully featured app included, meaning you won't need to build a workflow to test it.

Options:

  • Selecting Actions
  • Configuring the action
  • Executing the action
  • Exploring the result

Apps view search 16


Downloading apps

Apps can be downloaded or exported from your local instance or https://shuffler.io as long as it's either your private app, or a public one AND is OpenAPI. If you find the "download" icon in any part of Shuffle, that means the item is exportable.

Apps view activation 18


Importing apps

If you have an OpenAPI specification, either exported from Shuffle or otherwise, it can be imported in the /apps view. You need to be logged in.

Supported filetypes:

  • .json
  • .yaml

The options for importing are:

  • URL: A URL to the file on the internet
  • Upload: A local file on your filesystem
  • Drag & drop: A local file on your filesystem. Drop it anywhere in the /apps view.

Apps view activation 17


Activating apps

Any public app can be activated, giving you access to a copy of the original app. This app is editable, meaning you can change the configuration of the app in it's entirety in your own Organization. Activation can be done by first Finding the app, then clicking the "Activate App" in the top right corner. If successful, you should se a notification that it's been activated.

Once an app is activated, you can use it within any Workflow, and find it under /apps. If you can already see the app under the /apps view, it means the app is already enabled. You need to be logged in.

If you want an app activated in your LOCAL environment, see importing apps

Apps view activation 19


Publishing apps

All apps can be published. Published apps are available to EVERYONE using Shuffle, as long as they activate it. This means if you publish an app, it is searchable AND sharable with others. The process for Python and the App Creator are different, as can be seen below.

Python:

  • App publishing with python can only be done with Github (for now). Make a pull request for shuffle-apps.

App Creator:

  • To publish an app, find an app that you made and own, which is unique, and change "Sharing" to "public" as per the image below.

Apps view 20

PS: To remove a public app, contact us


Create custom apps

Learn about app creation


Importing remote apps

NOT CLOUD

If you have a repository (private or public) of custom apps for Shuffle (or WALKOFF), Shuffle can load all the apps by using the "Download from URL" button in the /apps view.

  1. Click the "Download from URL" button Apps view 9

  2. Fill in the github/gitlab URL, and if the repo is private, your username & password. These are used for BasicAuth when running git clone. Apps view 10

  3. Hit submit. If it's unsuccessful, it will throw an error, otherwise show a loading icon. This means it's working on getting your apps.


Delete app

PS: There is nothing stopping you from deleting an app that is used by a workflow. This is a destructive action, and will make some workflows using the app unusable.

Deleting an app is done by searching for it in /apps.

Required permissions (either or):

  • Admin
  • App owner / creator

Apps view 8


API

Click here to see the App API