Pushing Podio

Fun Experiments pushing Citrix Podio to the limit so you can get more done.
... with a little help from GlobiFlow, ProcFu, and other friends ...

Manage Deployments of Podio Apps and GlobiFlow Flows

- Posted in Uncategorized by

For Citrix Partners, it can easily be argued that Podio+GlobiFlow is no longer an online tool, but more of a development platform.

Working in production spaces is difficult and error-prone, and manually trying to keep development and production spaces in sync is a nightmare.

In software development we have tools for this. For example, for ProcFu, I develop locally on a virtual machine, and when I've tested my new code, I push it to the production servers, knowing that everything will be OK.

I wanted the same for Podio:

  • complete separation of development and production spaces
  • easy migration of changes from development to production
  • be able to pull apps and flows into spaces not related to my org
  • be able to have per-install configuration options for subtle differences between source and destination installations

Introducing ProcFu's Deployment Manager

ProcFu's Deployment Manager provides 2 main objects:

  • Repositories (or Repos): collections of apps and flows that you control and publish
  • Installations (or Installs): repos (your own or from others) that you have installed into your org.

Publishing

In order to publish a collection of apps and flows, you first need to create new Repo. Repos can be:

  • Public - everyone can install them
  • Hidden - you need a secret key to install them
  • Private - only you can install them in your own account

From the Deployment Manager, click on the "Create Repo" button and select the space and apps and flows you want to include in the repo:

Once you have saved your repo, you can select it from the Deployment Manager and Publish it by clicking on the "Publish" button. This will pull in all the necessary objects from Podio (apps and views) and GlobiFlow (flows):

Once published, the repo version will be set to 1 and will be incremented whenever you publish updates.

To publish updates, you simply need to select the "Re-Publish" button from the repo, however if you're adding apps or flows to the repo, you need to edit it first and include those new apps and flows before re-publishing.

Installing

To install a repo, you simply need to click on the "Install Repo" button in the Deployment Manager. From here you can select any public or private repo, or enter the secret key of a hidden repo if one was provided to you:

Once selected, you will be able to choose the space to install the repo to, and it will be installed for you:

Updates

When a repo is updated, you will see that a new version is available in the Deployment Manager:

Simply select the installation and click on the "Update" button to commence the update process.

Note that any changes you have made to the installed apps or flows will be overwritten.

Configuration Variables

To allow your repos to be versatile and have install-specifc customizations, you can use GF variables with a comment containing "#pfconf". These variables can be used as usual in your flows, but users will be able to change their values when installing the repo.

For example, if you set up these vars set in GF:

The user will be allowed to change them when installing:

If a user wants to change these values after installing a repo, they can simply select the installation, change the values, and update the installed repo.

Existing Assets

Now, the above functionality is only useful going forward. What if you already have collections of apps and flows in development and production spaces?

When trying to install a repo into a space where some of the apps already appear to exist, the Deployment Manager will let you know, and ask whether to connect the repo to the existing assets:

And if you choose to do this, you will be give the opportunity to map the assets from the repo to the assets you already have installed:

Please note that those assets will be over-written, so make sure they are mapped correctly.

Wrap-Up

You now have a complete deployment system for Podio Apps and GlobiFlow Flows, including both user-specific configuration variables, and version management.

How cool is that?

Comments