This is the monthly report of August 2022.
August was a good month and many parts of the software continues to be added at a good pace.
The base of the software begins to be a rock.
Marien has added code for developers to run the backend into a docker (container).
Near to be finished, David has added code to manage roles and permissions.
The role is defined by:
If the permission for structure is custom, have a sublevel of permissions. For each endpoint (config/type, config/properties…), we define:
If some of these permissions are defined in custom, we have a third and last level of permissions. The ids of the endpoint (for examples the type Organization, the type Users, the property address) are defined:
For the roles, it will not be possible to create a role & permissions with more permissions the current user have. It’s a security behavior.
For the data, if defined as custom, we define the permissions of all items of a type (Organization, Users, Laptop, Tickets…):
If the properties of items is defined as custom, you must define permissions to each property of the type of items to:
With an example, it can be better to understand:
You can have tickets, refuse to create it, but can view and update it only, and not have permission to view the property related to the location.
We have defined 1 user = 1 role. We started thinking to have 1 role per organization (so multiple roles per user), but not sure yet about that.
The code is near to be finished and more than 200 tests added.
Many big parts begin to be added in the backend, David has coded a script that analyze all queries to detect queries not used indexes correctly or missing, in the goal to optimize them. With the simplicity of the database schema, putting the right indexes is simple.
This task will be executed many times in the development process to optimize as possible the queries.
Only with the tests, we execute more than 25 000 SELECT request in the DB in 1 minute.
Performance tests have begun to be written, but we will explain them in a future monthly report ;)
The specifications about the new FusionInventory protocol (version 3: JSON format and containers structure) continues, but require again couple weeks.
Marien works on the frontend, he discover some problems in the backend to get data in specific cases. Code and tests will be added in the September month to manage these cases.
Marien has added code for developers to run the frontend into a docker (container).
Marien has coded the pages to view, create and delete organizations.
Marien has coded the pages to view, create and delete users.
Interactive messages have been added when do an action and the software need to prevent the user for some reasons:
Marien has started the translation of the interface and added the command to extract strings to be translated in the Makefile.
Marien has made modifications to re-organize the code for:
This reorganization will help to manage all items and types of items in FusionSuite (laptop, tickets, contracts…).
We written specification about the menu issue #60. Like we can have many and many type of items, try to make a list and dispatch them the best possible to have a simple menu.
Marien has begun implement tests on the frontend.
This kind of tests starts a browser engine (chrome, firefox…) and does the actions like a normal user and check if actions works well (fill a form, click on a button, check the interactive message…).
These tests will prevent problems for the user when the developers add/update pieces of code.
Quality of FusionSuite is one of the priority ^_^
Many changes, and the works continues.
David Durieux - Leader of FusionSuite project