With Joomla4iOS you have the ability to easily implement your existing Joomla infrastructure within your iOS Apps. The framework is free and you don’t need any other dependencies.
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.
The Community Builder Module is implemented with the plg_jbackend_comprofiler plugin. It provides functions related to Community Builder extension. Here is the list of supported methods.
action=get module=comprofiler resource=users limit=<L> (optional) offset=<O> (optional)
<end-point>?action=get&module=comprofiler&resource=users
<end-point>/get/comprofiler/users?limit=10&offset=2
{ "status": "ok", "total": <total>, "limit": <limit>, "offset": <offset>, "users": [ { "id": "<userid>", ... }, ... { "id": "<userid>", ... } ] }
limit is the number of entries to return.
offset is the cursor starting point (0 based, start on record 16 means offset = 15).
If limit is not specified, offset is ignored.
Properties limit and offset in the response are present only when specified in the request.
action=get module=comprofiler resource=profile id=<id>
<end-point>?action=get&module=comprofiler&resource=profile&id=482
<end-point>/get/comprofiler/profile/482
{ "status": "ok", ... }
action=put module=comprofiler resource=profile
{ "id": "<userid>", "name": "<name>", "username": "<username>", "email": "<email>", "password": "<password>", ... }
<end-point>?action=put&module=comprofiler&resource=profile
<end-point>/put/comprofiler/profile
{ "status": "ok" }
The id parameter in the request payload is mandatory to identify the user profile to update.
Other mandatory fields are username, email, and name.
It is possible to specify any supported field in the payload.
The Search Module is implemented with the plg_jbackend_search plugin. It provides functions related to Joomla search module. Here is the list of supported methods.
action=get module=search resource=site searchword=<term> searchphrase=<all> (optional) limitstart=<offset> (optional) limit=<limit> (optional) ordering=<orderby> (optional) areas[]=<area> (optional)
<end-point>?action=get&module=search&resource=site?searchword=joomla&searchphrase=all&limitstart=10&limit=10&ordering=newest&areas[]=content
<end-point>/get/search/site?searchword=<term>
{ "status": "ok", "total": <T>, "limit": <L>, "offset": <O>, "pages_current": <C>, "pages_total": <P>, "results": [ { "title": "<title>", "metadesc": "<metadesc>", "metakey": "<metakey>", "created": "<date created>", "language": "<language>", "catid": "<cid>", "text": "<text>", "section": "<section>", "slug": "<id:slug>", "catslug": "<id:slug>", "browsernav": "<browsernav>", "href": "<href>", "jcfields": "<jcfields>" }, ... ] }
searchphrase:
any, exact, all (default)
ordering:
newest (default), oldest, popular, alpha, category
areas:
an array of search areas (e.g. content)
Created date format is YYYY-MM-DD HH:MM:SS
Language can be "*" if any.
Premium Subscription is a lifetime subscription (it never expires) as supporter user. It is intended for professional developers who use our products for their business projects, and want to award our effort to create high quality software.
With this subscription it is possible to download any paid extension:
The Premium Subscription also includes some exclusive premium downloads, that are available only for premium users. The complete list is available here.
On May 4, 2017 we get a message from Joomla Vulnerable Extensions list (VEL) reporting the following security issue about Tag Meta Community 1.7.6:
jBackend Community is the lite version of jBackend available for free, no subscription required. It provides all the basic features to integrate Joomla content with mobile apps, syndication networks, affiliate networks and any external system, and it is mainly intended to give a chance to test jBackend capabilities, to develop and test new modules, and to provide some basic REST API integration features to a Joomla site.
When the upgrade to the full jBackend version is required, it is possible to install the full jBackend package over the Community version. The two versions share the same data tables and settings, and the upgrade process will preserve the configuration and all existing data.
The Community version is completely free, but doesn't provide the full functionalities available for jBackend. Here's a comparison matrix between jBackend Community and jBackend:
Features | jBackend Community | jBackend |
---|---|---|
Extensible through plugins to increase API and support any Joomla extension | (2 plugins in the package) |
(3 plugins in the package, 7+ included with the subscription) |
Support for publishing of multiple endpoints, each with its specific settings | ||
Three endpoint access type (free access, user authenticated only, API Key required) | (free only) |
|
Tracing requests in the database for each endpoint | ||
Selection of jBackend plugins to enable for each endpoint | ||
API Key management interface | (not used) |
|
Request log management interface | ||
Each API Key can have a max daily requests limit and an expiration date | (not used) |
|
Each API Key can be targeted on separate endpoints | (not used) |
|
Access control is compliant with integrated ACL | (not used) |
|
Support for REST compliant requests | ||
JSON format for responses | ||
Support for session ID | (only cookies) |
|
Get the list of articles by tag id (content module) | ||
Support for push notifications on iOS (APNs) and Android (GCM) | ||
Custom payload for push notifications | ||
Scheduled sending of push notifications | ||
Push notifications can be create and scheduled via API call | ||
Push notifications can be targeted on selected users, groups or devices | ||
License | GPL 2.0 | GPL 2.0 |
Price | Free | 14 € (one year subscription) |
The basic extension package includes the jBackend component, that provides the general infrastructure for endpoints, and plugins support system. Also the following plugins are already included in the basic package:
Additional plugins are available only with a valid jBackend Subscription and can be downloaded from here and installed separately. More info about jBackend can be found here
jBackend Community is released under GPL 2.0 license.
Just received this email and we are really proud that our work is still really appreciated.