Skip to content

Release System Module API

The Release System Module is implemented with the plg_jbackend_release plugin. It provides functions to implement a full Joomla Update Server and/or a generic Package Distribution System based on Joomla. It supports both free and paid packages, and it is seamlessly integrated with Joomla user's groups for authorization and license key generation. Here is the list of supported methods.

Generate key by email

Sends an email to the user with the license key for the specified package group.

Request parameters

text
action=post
module=release
resource=keybyemail
id=<package group>
email=<user email>

Example

text
<end-point>?action=post&module=release&resource=keybyemail&id=redj_ent&[email protected]

Example (REST format)

text
<end-point>/post/release/keybyemail/[email protected]

Response

json
{
    "status": "ok"
}

Notes

email is the user's account email on Joomla.

Generate key by authentication

Returns the license key for the specified package group.

Request parameters

text
action=post
module=release
resource=keybyauth
id=<package group>
username=<username>
password=<password>

Example

text
<end-point>?action=post&module=release&resource=keybyauth&id=redj_ent&username=user123&password=pass123

Example (REST format)

text
<end-point>/post/release/keybyauth/redj_ent?username=user123&password=pass123

Response

json
{
    "status": "ok",
    "email": "user email",
    "key": "license key"
}

Notes

username and password are the credentials used for the user's account on Joomla.

Validate key

Checks if a license key is valid for the specified package group.

Request parameters

text
action=post
module=release
resource=validate
id=<package group>
email=<user email>
key=<license key>

Example

text
<end-point>?action=post&module=release&resource=validate&id=redj_ent&[email protected]&key=fd8s809f89ds8f90sd81231sdsds323

Example (REST format)

text
<end-point>/post/release/validate/[email protected]&key=fd8s809f89ds8f90sd81231sdsds323

Response

json
{
    "status": "ok"
}

Verify key

Checks if a license key is valid for the specified package id.

Request parameters

text
action=post
module=release
resource=verify
id=<package id>
email=<user email>
key=<license key>

Example

text
<end-point>?action=post&module=release&resource=verify&id=redj_ent_190&[email protected]&key=fd8s809f89ds8f90sd81231sdsds323

Example (REST format)

text
<end-point>/post/release/verify/[email protected]&key=fd8s809f89ds8f90sd81231sdsds323

Response

json
{
    "status": "ok"
}

Notes

This method is intended to verify a license key over a specific package id before to download it.

Download package

Download the package for the specified package id.

Request parameters

text
action=post
module=release
resource=download
id=<package id>
email=<user email>
key=<license key>

Example

text
<end-point>?action=post&module=release&resource=download&id=redj_ent_190&[email protected]&key=fd8s809f89ds8f90sd81231sdsds323

Example (REST format)

text
<end-point>/post/release/verify/[email protected]&key=fd8s809f89ds8f90sd81231sdsds323

Response

text
The binary package (as application/octet-stream)

Plugin Settings

jBackend Release System Plugin Settings

The following options are available for release system plugin:

OptionDescription
FolderPackages distribution folder path relative to Joomla root folder (JPATH_ROOT).
Package groupsList of package groups. Packages in the same group share the same license key. Format is 'package group;groups[;hash;package name]' where package group is an unique identifier (e.g. redj_enterprise), groups is a list of user groups allowed to download packages in this group separated by commas (e.g. 1,3,5), hash is an optional random string used as seed for the generation of group's license keys, and package name is the human readable name of the package (e.g. ReDJ Enterprise).
PackagesList of packages to distribute. Format is 'package id;package path[;package group]' where package id is an unique identifier (e.g. redj_ent_190), package path is the path of the package file relative to the packages distribution folder (e.g. private/joomla/redj/ReDJ1.9.0.zip), and package group is the group identifier (optional, not required for free downloads).