NOTE: There is no way to unpublish or otherwise modify a published app version; this ensures that executions of published app versions are always reproducible. There is, however, a way to deprecate a published app version, which forbids all future executions. This app version deprecation is meant to be used only in serious cases where a previously published app version has serious bugs and you never want users to run it. Deprecated app versions are not reproducible, so be careful when using that feature.
dx run app-cci-bwa/1.2, etc. where the command line includes
app-before the app name. You can edit the name in dxapp.json.
dxapp.json, add a key called
"openSource"with a boolean value of true or false.
dx buildof the app.
"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 (i.e.
"authorizedUsers": ["user-george", "org-cci"]). You can also manage the list of authorized users at any point via
dx list users, and
dx remove users.
dx, then omit the
"authorizedUsers"key from dxapp.json altogether. (The list of authorized users is common to all versions of the app).
dx buildtime), perform the following changes:
$DX_RESOURCES_ID, so that your script fetches the assets from the app's private container and not from inside whatever parent project it may be run. NOTE: If you want for the same script to be able to function both as an applet and as an app, then add code like the following (which introduces a new variable), and use
$DX_ASSETS_IDwhen fetching assets:
"resources"with a string value equal to the project id of the project with the assets, i.e.
dxapp.jsonwhen rebuilding the app later; but the system will still create a separate read-only copy for each version.
dxapp.json, according to the dxapp.json specification.
"version"key in dxapp.json. Note also that you can still build this as an applet, by omitting the
dx build --app --publishcommand.
dx build. Publishing an app version makes it available to authorized users and ensures that it can no longer be modified.
--publishoption. In that case, the generated app version will only be accessible by the app developers (that is, the original app author and any users added via
dx add developers), and not by authorized users. You can use that flow if you want to first test the new app version before you publish it. During testing, if you find that you must make further changes, you can update the same unpublished app version in-place, without having to generate a new version. Simply use
dx build --appagain, and if the version in dxapp.json matches an unpublished existing version, that version will be overwritten. Once you are happy with the app version, you can publish it by repeating the dx build command with the
dx build --app --publish, the published app version becomes the new default. Therefore, typically the default version is whatever version was most recently published. Users refer to the default version when using "app-name" with no version qualifier, i.e. when doing
dx run app-cci-bwa. Therefore, users who launch apps have a choice of whether to use the default version (by doing
dx run app-cci-bwa) or to use a specific version (by doing
dx run app-cci-bwa/1.0.0).
NOTE: Inside workflows, apps are always versioned; in other words, a workflow always refers to a particular app version (whichever app version was added to the workflow at the time of workflow creation). When editing the workflow in the DNAnexus web interface, if the default app version is different than the app version in the workflow (which is an indication of the app having been updated in the meantime), the website will prompt the user to optionally update the workflow to the new version.
app-cci-bwa/1.0.1), and later realize that you have made a mistake and want to "roll back" the update, you have two options:
app-cci-bwa/1.0.2) that does not have the problem and publish that. Publishing will make it the new default, so those who do "dx run app-cci-bwa" will run a working version.
dx describe, but the input/output spec, actual code and asset project of the deprecated app version will no longer be available. (See also the last paragraph of the introduction).