Administration Console¶
Note
The screens described below are restricted to users with administrator profile.
Users with other profiles can not access it, whether display or access rights are granted or not.
Administration console allows to execute administration tasks on application.
Background tasks¶
the CRON¶
The CRON program starts and stops background jobs that process and periodically check indicators to generate the corresponding alerts, warnings or even automatic imports if necessary.
This program automatically runs scripts, commands, or software at a specified date and time, or a pre-defined cycle.
You can activate or deactivate CRON directly from the info bar.
See also
Send an internal alert¶
Allows to send an internal alert to users.
Internal alerts can be sent to users.
You can define a date and time for sending, specific adressees or all users, the type of message that users will receive: information, an alert or a warning…
This can be a good step to warn users before a temporary shutdown of ProjeQtOr for update for example.
An internal alert can be sent by the administrator or by monitoring indicators.
By the administrator
The administrator can send internal alert by administration console.
The message will be received by user via message pop-up.
Monitoring indicators
Monitoring indicators send only warning and alert message.
The message contains information that explains the alert:
Item id and type.
Indicator description.
Target value.
Alert or warning value.
See also
The indicators are defined in Indicators screen .
Manage connections¶
Allows to force disconnection of active users and close the application for new connections.
Disconnect all users
The button Disconnect all users allows to disconnect all connected users except your own connection.
The application status is displayed below.
Disconnection will be effective for each user when his browser will ckeck for alerts to be displayed.
The delay for the effective disconnection of users will depend on the parameter “delay (in second) to check alerts” in Global parameters screen.
Open/Close application
The button Open/Close application
Allows to open and close application.
When the application is closed the message below will appear on login screen.
Consistency check¶
on the WBS sequence search for duplicates, sequence holes, incorrect order
on the presence of one and only one line of “PlanningElement” for the planifiable elements
on the consolidation of ticket work
on consolidation of work on activities
on assignments
You can program the search for the consistency check as well as its execution.
Set the desired frequency settings and activate the service.
Maintenance of Data¶
The administrator has the possibility to:
Close and delete sent emails and alerts.
Delete history of connections.
Updating references for any kind of element.
You can automate these cleanings by activating them using the corresponding buttons.
Log files maintenance¶
The administrator has the possibility to choose the level of the log files among debug, trace, script and errors.
delete files on a given number of days.
Show the list of logs
Show the last logs list.
API REST 2¶
ProjeQtOr provides an API to interact with its elements. It is provided as a REST web service.
The GET, PUT, POST and DELETE methods are used for elements.
For security reasons, the API is not enabled by default.
Generate a .htpasswd file to see related topics on the net. A template is provided in /api/.htpasswd, referencing the user projeqtor and password projeqtor.
It is provided for testing purposes only. Do not use it in a production environment as it will expose all your data.
Update the .htaccess file to specify the location of your .htpasswd file:
AuthUserFile “/pathToFile/.htpasswd” The default location is the Apache directory.
How the API works¶
The user used, the one defined in. htpassword, must exist as a user in the database. The access rights: read, create, update, delete, must be defined for this user. This allows you to provide some access to external users and control the visibility they get on your data.
METHODS
GET : read
PUT : create and update
POST : create, update
DELETE : delete
Important
For PUT, PUSH and DELETE methods, the data must be encrypted with the AES-256 algorithm, with the key as the API key defined for the user.
The administrator must provide this API key to the API consumer. You can use the AESCRT library provided in the /external directory for encryption.
PUT and PUSH methods are similar and can both be used to create or update items.
The only difference is in the way of sending data: as a Post table for POST, as a file for PUT.
The DELETE method requires data, formatted as for a PUT, but only the ID is required.
For PUT, POST and DELETE, you can provide:
A single element: {“id”: “1”,…}
A list of elements: {“identified”: “id”, “elements”: [{“id”: “1”,…}, {“id”: “2”,…}]}
The Json format retrieved from GET can be used for PUT, POST and DELETE.
Queries in Json¶
Some examples of queries in Json format.
GET
URL: http://myserver/api/{objectclass}/{objectid} - (EX: http://myserver/api/Project/1)
Full description of the object of the given class with the given ID
URL: http://myserver/api/{objectclass}/all - (EX: http://myserver/api/Project/all)
Full description of all objects of the given class
URL: http://myserver/api/{objectclass}/filter/{filterid} - (EX: http://myserver/api/Project/filter/1)
Full description of all objects of the given class matching the given stored filter. Filter id can be retrieved when saving the filter. Using a filter of a different class may lead to unexpected results
URL: http://myserver/api/{objectclass}/search/{crit1}/{critN} - (EX: http://myserver/api/Activity/search/idProject=1/name like ‘%error%’)
Full description of all objects of the given class matching the given criteria. You can provide as many criteria as you want, they will be included in the where clause with the AND operator. Unlike the example, the criteria must be “url encoded” use the PHP function urlencode() for example
URL: http://myserver/api/{objetcclass}/updated/{start date}/{end date} - (EX: http://myserver/api/Project/updated/20231101000000/20231231235959)
Full description of all objects updated between start date and end date. Date format is YYYYMMDDHHMMSS. Date> = “date stard” and date < “end date”
No matter where you go, there you are.
—Buckaroo Banzai
POST
URL: http://myserver/api/{objectclass}
EX: Data provided in json format as a POST value
Full description of updated or created objects with 2 additional fields: apiResult: update status and apiResultMessage
PUT
URL: http://myserver/api/{objectclass}
EX: Data provided in json format as a file
Full description of updated or created objects with 2 additional fields: apiResult: update status and apiResultMessage
DELETE
URL: http://myserver/api/{objectclass}
EX: Data provided in json format as a file
Full description of updated or created objects with 2 additional fields: apiResult: update status and apiResultMessage
Here is an example of PHP code calling the API for PUT and POST request (create, update). This request lists all Tickets:
$fullUrl="http://myserver/api/Ticket/list/all";
$curl = curl_init($fullUrl);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "projeqtor:projeqtor");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$curl_response = curl_exec($curl);
echo $curl_response;
curl_close($curl);
Avec DELETE (suppression) qui permet de supprimer le ticket ID #1 :
$fullUrl="http://myserver/api/Ticket";
$data='{"id":"1"}';
$data=AesCtr::encrypt($data, 'ApiKeyForUserProjeqtor', 256);
$curl = curl_init($fullUrl);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "projeqtor:projeqtor");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$curl_response = curl_exec($curl);
echo $curl_response;
curl_close($curl);
Avec PUT et POST (création et mise à jour) qui permet de mettre à jour le nom du ticket ID #1 :
$fullUrl="http://myserver/api/Ticket";
$data='{"id":"1", "name":"name to be changed for Ticket 1"}';
$data=AesCtr::encrypt($data, 'ApiKeyForUserProjeqtor', 256);
$curl = curl_init($fullUrl);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "projeqtor:projeqtor");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$curl_response = curl_exec($curl);
echo $curl_response;
curl_close($curl);
$fullUrl="http://myserver/api/Ticket";
$data='{"id":"1", "name":"name to be changed for Ticket 1"}';
$data=AesCtr::encrypt($data, 'ApiKeyForUserProjeqtor', 256);
$curl = curl_init($fullUrl);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "projeqtor:projeqtor");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$curl_response = curl_exec($curl);
echo $curl_response;
curl_close($curl);