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.
Sends an email to the user with the license key for the specified package group.
action=post module=release resource=keybyemail id=<package group> email=<user email>
<end-point>?action=post&module=release&resource=keybyemail&id=redj_ent&email=This email address is being protected from spambots. You need JavaScript enabled to view it.
<end-point>/post/release/keybyemail/redj_ent?email=This email address is being protected from spambots. You need JavaScript enabled to view it.
{ "status": "ok" }
email is the user's account email on Joomla.
Returns the license key for the specified package group.
action=post module=release resource=keybyauth id=<package group> username=<username> password=<password>
<end-point>?action=post&module=release&resource=keybyauth&id=redj_ent&username=user123&password=pass123
<end-point>/post/release/keybyauth/redj_ent?username=user123&password=pass123
{ "status": "ok", "email": "user email", "key": "license key" }
username and password are the credentials used for the user's account on Joomla.
Checks if a license key is valid for the specified package group.
action=post module=release resource=validate id=<package group> email=<user email> key=<license key>
<end-point>?action=post&module=release&resource=validate&id=redj_ent&email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323
<end-point>/post/release/validate/redj_ent?email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323
{ "status": "ok" }
Checks if a license key is valid for the specified package id.
action=post module=release resource=verify id=<package id> email=<user email> key=<license key>
<end-point>?action=post&module=release&resource=verify&id=redj_ent_190&email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323
<end-point>/post/release/verify/redj_ent_190?email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323
{ "status": "ok" }
This method is intended to verify a license key over a specific package id before to download it.
Download the package for the specified package id.
action=post module=release resource=download id=<package id> email=<user email> key=<license key>
<end-point>?action=post&module=release&resource=download&id=redj_ent_190&email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323
<end-point>/post/release/verify/redj_ent_190?email=This email address is being protected from spambots. You need JavaScript enabled to view it.&key=fd8s809f89ds8f90sd81231sdsds323
The binary package (as application/octet-stream)
The following options are available for release system plugin:
Option | Description |
Folder | Packages distribution folder path relative to Joomla root folder (JPATH_ROOT). |
Package groups | List 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). |
Packages | List 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). |
Since version 1.6 Joomla has an Update System that allows you to update installed extensions automatically. And since January 10th 2017 supporting this system is almost mandatory for each extension.
jBackend Release System is a jBackend module that provides all features to implement a full Joomla Update Server and/or a generic Package Distribution System based on Joomla. It works with both jBackend and jBackend Community.
It can be used to distribute free packages, and paid packages as well. For paid packages the download restrictions are based on license keys, that are automatically generated and securely distributed to licensed users, authorized thorugh Joomla user's groups. Technical documentation is available here. An article that describes how it works can be found here.
jBackend Release System is released under GPL 2.0 license.