The Nuxeo Marketplace is the channel provided by Nuxeo to distribute addons and patches to the Nuxeo Platform. The Admin Center and the Control Panel (nuxeoctl) provide an integrated way to browse this catalog of add-ons and install them directly from the Nuxeo Platform interface or the server command line. This catalog of packages is public, although some addons require to be a Nuxeo Connect customer to be able to install them.
The Nuxeo Marketplace also provides a private channel to distribute packages to a specific audience. Nuxeo Connect users can thus provide their own users with the same trustful, integrated way to browse and install private packages, which are available from the Private packages tab of the Update Center.
Example Use Cases
The purpose of the private channel is to enable Nuxeo Platform users who do some customization on the Platform to easily distribute their customization. Here are some examples of how this private channel can be helpful.
For instance, if you do some customization using Nuxeo Studio and some Java customization using the Nuxeo Generator, you can create your Nuxeo Package and let other people (ex: sysadmin) easily install the whole customization through the Admin Center using a single package, instead of installing the Nuxeo Studio customization and the Nuxeo Generator customization. Worth to mention the benefits of using a Nuxeo Package such as target platform validation, various checks, rollback, dependencies or conflicts between packages, ...
As an other example, if you created your own application on top of the Nuxeo Platform and distribute to your own clients (that may do Studio customization themselves), you can use this private channel to provide hot fixes of your base application.
Who Can Use the Private Marketplace Channel
The Nuxeo Marketplace private channel is available to any Nuxeo Connect user. Nuxeo Connect trial users can also use it.
The Marketplace private channel can be used to provide any type of customization: simple XML configuration, Java code, configuration templates, libraries, etc. The only requirement is that the customization must be provided as a Nuxeo Package.
The target instance(s) can get the package from Nuxeo Connect (via Internet). Otherwise, you can upload the package via the Local packages tab in the Admin Center or from the server command line with NuxeoCtl.
Uploading a Nuxeo Package
Using the Marketplace Interface
To provide customers with a private package:
- After logging in, browse to Nuxeo Marketplace upload page or click on the button Add a package.
- Fill in the form "Upload a Marketplace package" (see below for details).
- Click on the Submit button.
The package is uploaded. It is now available in the Private packages tab of the Update Center for the instances that match your package's client(s) and project(s).
|Package data||Select your Nuxeo package. Expected format is ZIP. See the documentation for Creating Nuxeo Packages and the Nuxeo Package code samples.|
Select the Nuxeo Connect client who will own the package.
In most cases, the owner is your company. But typically, system integrators can act in the name of several clients. Once a given package name is used, the name is reserved to the owner of that initial package.
|Associated clients or projects||
Select the clients and projects for which the package must be available.
You can select a client to make the package available for all that client's projects.
Using the REST API
A REST API is available for automation (such as integrating the upload of the Nuxeo Package from a release script or from the Continuous Integration).
# Upload a package (owner parameter is required, one of client or project parameter is required) curl -i -u login:password -F [email protected]/path/to/MP.zip "https://connect.nuxeo.com/nuxeo/site/marketplace/upload?batch=true&client=CLIENT_ID&project=PROJECT_ID&owner=OWNER_ID" # Delete a package curl -i -u login:password -X DELETE "https://connect.nuxeo.com/nuxeo/site/marketplace/delete/PACKAGE_ID" # List package IDs (not yet available; owner, client or project parameter will be required) curl -i -u login:password "https://connect.nuxeo.com/nuxeo/site/marketplace/list?batch=true&client=CLIENT_ID&project=PROJECT_ID&owner=OWNER_ID"
CLIENT_ID: Comma-separated client IDs.
PROJECT_ID: Comma-separated project IDs and/or names. The parameter can also include comma-separated client IDs prefixed with
OWNER_ID: A unique client ID.