New features
- Added Role-Based Access Control (RBAC) support to the ZendHQ daemon and PHP extension
Implemented the local RBAC. Local RBAC uses the user.db
database to store usernames, password hashes, groups (roles) and permissions.
A default user admin
and default group admin
are automatically created with full permissions to access all the services. The zendhqctl
command-line tool can be used to manage the ZendHQ local RBAC database. The tool allows adding, removing and querying users, groups, services and permissions.
The Z-Ray activation token is now checked on the ZendHQ PHP extension for appropriate permissions before activating Z-Ray requests.
-
The ZendHQ daemon application can now be started with the
--init_only|-I
command-line argument. The application will initialize itself and then quit immediately. This command-line argument is useful when there is a need to create or upgrade ZendHQ databases without running the daemon. -
Added Z-Ray SQL queries support for the PHP
sqlsrv
andoci8
modules. -
Job Queue functionality in the ZendHQ PHP extension is now enabled also in the PHP CLI mode.
Internal changes
- Implemented the
IUserManager
interface
The IUserManager interface is used to authenticate users and authorize their access to ZendHQ. All the ZendHQ JSON-RPC handlers now use the IUserManager
interface to check that the user is authorized to use these services.
- Updated the JSON-RPC
session
namespace handler
The JSON-RPC session
namespace handler now accepts an username when creating or restoring the session. The username field can be left empty and defaults to admin
.
The JSON-RPC session.namespaces
method now returns permissions for the currently logged in user to use available JSON-RPC namespaces.
The session ID value now embeds Z-Ray access information and only users with appropriate permissions receive session ID values that can be used to activate Z-Ray requests.
JSON-RPC session
namespace API version is now 1.5
.
ZendHQ daemon extension interface API version is now 20231205
.
Bug fixes
- Fixed a bug where the ZendHQ PHP extension would consume 100% of CPU
This bug happened when ZendHQ daemon and PHP extension versions did not match and daemon refused to talk to the extension or daemon was not running at all.