Studio

Delivering a Customization Package through the Nuxeo Marketplace

Updated: December 16, 2024

The Nuxeo Marketplace is the channel provided by Nuxeo to distribute addons and patches to the Nuxeo Platform. nuxeoctl provides an integrated way to browse this catalog of add-ons and install them.

This catalog of packages is public, although some addons require a valid Nuxeo Online Services account to be able to install them.

The Nuxeo Marketplace also provides a private channel to distribute packages to a specific audience. Nuxeo Online Services users can provide their own users with the same safe, integrated method of browsing and installing private packages.

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 example, if you configure your Nuxeo instance with Nuxeo Studio, or Nuxeo CLI for additional Java customization, you can create your Nuxeo Package and allow other people (e.g. a sysadmin) to install the whole project using a single package, instead of installing them separately. Once the private package is uploaded on Nuxeo Marketplace, the Application Definition screen in your Nuxeo Studio project lets you bundle them easily.

Another example is if you create your own application on top of the Nuxeo Platform and distribute it to your own clients (who may add Studio configurations themselves), you can use this private channel to provide hotfixes of your base application.

Who Can Use the Private Marketplace Channel

The Nuxeo Marketplace private channel is available to any Nuxeo Online Services user. Nuxeo Online Services trial users can also use it.

Requirements

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.

Uploading a Nuxeo Package

Using the Marketplace Interface

To provide customers with a private package:

  1. After logging in, navigate to Nuxeo Marketplace upload page page or click on the button Add your Nuxeo Package to the Marketplace, located at the bottom of the screen.
  2. Fill in the form "Upload a Marketplace package" (see below for details).
  3. Click on the Submit button.
    The package is uploaded. It can be installed using nuxeoctl
Field Description
Package ZIP file Select your Nuxeo package. Expected format is ZIP. See the documentation for Creating Nuxeo Packages and the Nuxeo Package code samples.
Owner organization Select the Nuxeo Online Services client who will have complete control over the package, including write and delete access. In most cases, the owner is your company. But typically, system integrators can act in the name of several clients.
Share with Select the organizations for which the package should be available for use, having read-only access. Sharing the package with an organization will make it available for use in all of its projects, on top of the owner's organization. Leave the field blank if you wish to keep the package only available to the owner organization.

Finding an Organization ID
When accessing a Studio project, the organization id is displayed in bold in the header bar, before the project id.
organization-id

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).

Sample calls from command-line with curl

# Upload a package: orgId parameter is required, restrictedToOrgs is optional
curl -i -u login:token -F package=@/path/to/MP.zip "https://connect.nuxeo.com/nuxeo/site/marketplace/upload?batch=true&orgId=[ownerOrgId]&restrictedToOrgs=[restrictedToOrgIds]"

# Delete a package
curl -i -u login:token -X DELETE "https://connect.nuxeo.com/nuxeo/site/marketplace/delete/PACKAGE_ID"

where:

  • the orgId parameter is the organization id that should own the package.
  • the restrictedToOrgs parameter takes a comma separated list of organization ids that should be able to use the package.
  • the PACKAGE_ID is the name property written in the package's package.xml file, along with its version, e.g. my-package-1.0.0-SNAPSHOT.

Finding an Organization ID
When accessing a Studio project, the organization id is displayed in bold in the header bar, before the project id.
organization-id

related documentation
Check our token management page to see how to create a token.

More documentation about the Marketplace