Publishing Cloud Apps

After using the local development environment to build your Cloud App, you are ready to publish your app and allow others to install and use it. The following sections are in the document:

Click below to view a walk-though of publishing your application:
6:38

Publishing a new app

The process for publishing your app is as follows:

Build the app locally

Use the eca build command to build the app for production. Address any compilation errors and rebuild until there are no errors.

Create a release in your Github repository

In the interest of transparency, community involvement, and best security practices, Cloud Apps are built and installed directly from Github. If you don’t yet have a Github account, you can create one for free. If your app is not yet in a public Github repository, you can follow the guide below to create a new repository and publish it to Github.

Once your app is in a Github repository, you can create a release to be used to publish your app to the Cloud App directory. Navigate to the releases tab and click the “New release” button. Fill in the details and click “Publish release.”

Add your app to the Ex Libris App Center on the Developer Network

If you don’t yet have an account on the Developer Network, you can create one here. To add your app to the App Center, click on your name on the upper right and then click on My Apps. Click the “Create new app” button and fill in the details. Please include any user roles required to use your Cloud App in the “App Description”. Select “Cloud App” for the app type and enter the URL for your Github repository in the “App homepage” field.

For more information on adding apps to the App Center, see this blog post.

Await manual review

Your app is now awaiting manual review. You may be contacted by the review team to answer questions to make changes to your app to conform with our Cloud App guidelines.

Your app is available in Alma

You will receive an email when your app has been built and released. It is now available for installation in the Cloud App panel.

 

This process is summarized in the diagram below:

 

 

Publishing an update to your app

Once your app has been published for the first time, the process for publishing an update can be automated. You can set up a webhook in Github to automatically trigger a build when your app is updated.

Setting up a Github webhook

This step is optional but will allow your app updates to be automatically published.

  1. Log into your Github repository and click the settings tab. Then click webhooks and add a new webhook.
  2. For the payload URL, enter https://api01.ext.exlibrisgroup.com/cloudapps/build. For the content type, select application/json
  3. In the section “Which events would you like to trigger”, select “Let me select individual events”. Then check only the Releases option.
  4. Click the “Add webhook” button

Updating your app

The process for publishing an update to your app is as follows:

Build the app locally

Use the eca build command to build the app for production. Address any compilation errors and rebuild until there are no errors.

Create a release in your Github repository

Follow the instructions above to create a new release in your repository. If you have configured a Github webhook (see above), your app will be automatically submitted to be re-published. If you need to republish your app for any reason (e.g. if you created the Github release before you added the webhook), you can click the “Edit” button, and then “Update release”, which will trigger Github to resend the webhook. If you choose not to configure a webhook, you can edit your app in the App Center and click the publish button. Your app will then be submitted for manual review and re-publish.

This process is summarized in the diagram below:

 

 

Note: Even if you have configured a Github webhook, some changes to your app may require manual review. You will be notified if your app is being reviewed.

Updates as a Beta Version

If you would like to have some users review/test your update before replacing the previous version completely, you can tag your Release with a “-beta” suffix (e.g. v1.1-beta)

The webhook-initiate process will keep the existing version in place, and store the new beta version in parallel.

To access the beta version from the UI, end-users will need to open the app’s details and click on “(Try v1.1-beta)”:

After the changes were reviewed/tested you can create a regular release (or another “-beta” release if additional changes are needed).

Publishing a new Github repository

There are several ways to create a new repository with various guides available on the web. However, we’ve found that the workflow described below works well, so unless you have a preference, we recommend you follow these instructions.

    1. Install Github for Desktop on your workstation. Once installed and opened, you’ll have the opportunity to log in with your Github account.
    2. Click File->Add Local Repository
    3. Click “Choose” next to the Local Path text box. Browse to the root of your project and click “Open”
    4. Since there is not currently a git repository there, the dialog will offer the opportunity to “create a repository.” Click the link to open the Create Repository dialog.
    5. Name your repository and add a description. We recommend that you click the “Initialize this repository with a README” option and select a license (BSD 3-Clause is recommended). Then click “Create Repository”
    6. Your local repository will be created and the initial files committed. Click the “Publish Repository” button to push the repository to Github.
    7. Click Repository->View on Github to open the newly created repository on Github. Then you can proceed with the instructions above to create a release.

Cloud App Vulnerabilities

Upon initial publication, Cloud Apps are reviewed for vulnerabilities, and all third-party packages used in the app are screened for critical vulnerabilities. If anything questionable is found during manual review, or a package has a critical vulnerability, the Cloud App is not be published and the developer is notified of the issues.

If a vulnerability is reported in an update to a Cloud App published by the developer/publisher, we will:

  1. Disable the Cloud App, removing it from the list of available Cloud Apps.
  2. Notify the developer.
  3. Work with the developer to resolve the issue, if help is requested.
  4. Republish the Cloud App once fixed.