Publishing Applets to Apps
Why would you transition from an applet to an app?
Applet
App
Purpose
Early development, experiment with analyses
Applet is stable, ready to use and possibly moved to a wider audience
Perks of Each
Easy to collaborate, members of the project can edit the code, and publish
Once published, the app cannot be modified version control enforced can carry assets in their own private container.
Goal
Adding executable in to an application for increased efficiency in usage + ability to edit code efficiently
Adding executable in to an application for increased efficiency in usage + enhance reproducibility and minimize risk
Differences between an App and Applet
Applets
Apps
Location
in projects
in the Tool Library, if you are the developer or an authorized user
Naming Structure
project:/applet_ID
project:/folder/name
app-name
Can they be shared?
Through projects, as a data object
App developer manages a list of users authorized to access the app
Updating
Deleting the previous applet with the same name, and creating a new one
New version per release
Versioning
None is present at the applet creation
Each time the app is built, it must be given a new version.
Checklist of items to keep in mind:
When publishing an app, the following items are needed:
A working applet that you have tested
A name that is unique. Generally, the recommendation is to have an abbreviation for your org as part of the name. Example: If the org is named “academy_demos” and the app is for fastqc, then the name of the app could be “academy-fastqc”, “academy_demo-fastqc”, or “academydemo-fastqc”.
Documentation to add to a README.md for users to understand what your app does
Developer notes for you to keep track of version information and added to the Developer README.md
A default spending account set up for yourself as the app author. For published apps, they will require storage for their resources and assets, and the storage will be billed on a monthly basis to the billing account of the original author of each app. You can set multiple authors, but the original author is where the billing is tied to.
Decide if you want the app to be open source. In dxapp.json, add a key called "openSource" with a boolean value of true or false.
A consistent version policy for your meaningful updates. DNAnexus suggests Semantic Versioning.
Add authorized users. In dxapp.json, add a key called "authorizedUsers" with a value being an array of strings, corresponding to the entities allowed to run the app. Entities are encoded as user-username for single users, or org-orgname for organizations.
To Publish the App
Use dx get applet-name to have the most recent version of your applet
Make your changes to the dxapp.json
Then use
dx build app_name --publish --app
Helpful Trick
Forget to add users or need to add more users? Use:
Resources
To create a support ticket if there are technical issues:
Go to the Help header (same section where Projects and Tools are) inside the platform
Select “Contact Support”
Fill in the Subject and Message to submit a support ticket.
Last updated
Was this helpful?